NeverRed – Update your Software, the lazy way

Download Version 2.09.03

NeverRed is a simple PowerShell script to download and install the latest version for several common enterprise Windows applications. The script consists a number of simple functions to use in EUC environments like:

  • Disabling the auto update of the software (e.g. Adobe Reader, Microsoft Edge, Google Chrome, etc.)
  • Right installers or parameters during installation (e.g. machine-based install for Microsoft OneDrive, Slack or Microsoft Teams)
  • Add customizations after installation (e.g. reg hacks or customizations to files at Microsoft FSLogix or Microsoft Teams)
  • Search for current versions on obscure pages (e.g. Cisco Webex)

Exactly this is where I wanted to remedy with NeverRed.

  • No more searching for the current version on the confusing manufacturer pages.
  • Comparison of the installed version, with the current one from the Internet
  • Automatic download of the current version (and for some software, even the current ADMX files)
  • Uninstalling (if necessary) the software and installing (with the correct parameters) the current new version
  • Adjustment of the scheduled tasks and services, so that no automatic updates can interfere with them
  • Adaptation of the new software to the specifics of the operating system (e.g. addition of the Scheduled Task for Windows Server 2019 and newer when installing Microsoft FSLogix for the “Event ID 2 wsearch” bug)

How NeverRed Works

NeverRed uses several approaches to automatically get the version number and download URL for the applications.

Various strategies and PowerShell modules are used for this purpose:

  1. Evergreen PowerShell Module by Aaron Parker
  2. Nevergreen PowerShell Module by Dan Gough
  3. Custom web scraping functions by Manuel Winkel

Why

There are community and commercial products that manage application deployment and updates already. This script isn’t intended to compete against those.

NeverRed’s focus is to provide a simple solution to keep standard software up to date without having to package it or search and compare versions on vendor sites.

Versioning

The script uses an enumerated version notation. It can be assumed that the script undergoes changes on a regular basis. The version numbering is therefore intended to make it as easy as possible to track whether you are using the current version. See the Changelog for details of each change.

The script automatically detects if it is up to date when started on a system with internet, and if it is not, an automatic update is offered.

“Installing the Script”

PowerShell Support

NeverRed supports Windows PowerShell 5.1 and PowerShell 7.0+. NeverRed should work on PowerShell Core 6.x; however, I’m not actively testing on that version of PowerShell, so support cannot be guaranteed.

Download from GitHub

The NeverRed script is published to GitHub and can be found here: NeverRed This is the best and recommend method to get NeverRed.

Start the script

The script can be started directly after download in an administrative PowerShell window.

GUI Method

Important!
NeverRed can be accessed and started both locally and from a UNC path.

Administrative PowerShell Console

The script is started by default with LastSetting.txt stored in the same folder. If you want to start the GUI with another file, use the -GUIfile parameter.

Administrative PowerShell Console GUIFile Parameter

The GUI of NeverRed appears with the selectable software on the General page.

NeverRed GUI General Page

Via the Select Mode options arranged above, the following can be defined.

  • If the selected software is to be downloaded only
  • If the selected software is to be installed (if the installation files have already been downloaded in advance via NeverRed)
  • If the software is to be downloaded first and then installed

Splitting the functions related to downloading and installing is often used when the target computer does not have an Internet connection.

NeverRed Select Mode Download Install

Global settings for the selected software can be set via the options Select Language, Select Architecture and Select Installer Type.

Of course, this is only taken into effect if the program makes this selection available during download or installation.

The settings regarding language (Select Language), architecture (Select Architecture) and installer type (Select Installer Type) can be adjusted individually for each software on the detail page. The settings on the detail page overwrite the global settings for the software.

Under Select Installer Type, a differentiation is made between User Based (Laptop, Static Citrix Worker, etc.) and Machine Based (Random Citrix Worker, RDS Host).

NeverRed GUI Select Language Select Architecture Select Installer Type

For some software further selectable options are available, like the update channel / ring or the license version.

NeverRed GUI Channel Ring

All settings are saved locally in the LastSetting.txt file when you click on Save or Start and are automatically read from there the next time you start the program. By clicking on Save, the LastSetting.txt is created without starting an installation.

NeverRed GUI Select All

On the Detail page, the software selected under General is also already selected. If something is changed to the selected software on the Detail page, this is also transferred.

NeverRed GUI Detail Page

The global settings regarding language (Select Language), architecture (Select Architecture) and installer type (Select Installer Type) can be adjusted individually for each software on the detail page. This overwrites the global setting for this software.

Additionally, Microsoft Visio and Microsoft Project can be selected. If this is the case, the install.xml for Microsoft 365 Apps or Microsoft Office is extended with the selected options.

NeverRed GUI Detail Page Select Software

Four optional modes are available on the detail page:

Evergreen Script GUI Detail Page Optional Mode
  • WhatIf Mode: If this is active, the set activities are simulated. No installers are downloaded or installed. You can only see in the output if there is newer software.

    The only activity the script performs is the creation of the FW log and the install log.
Evergreen Script WhatIf Mode Download

A message is displayed that you are in WhatIf mode.

Evergreen Script WhatIf Mode Install
  • Installer Repository Mode: In Installer Repository Mode, the installers of the selected software are copied to the folder _Repository before the new download.
Evergreen Script Installer Repository Mode
  • Installer CleanUp Mode: In Installer CleanUp Mode, the installers of the selected software are deleted after installation. This can be used on Golden Image servers to keep it clean.
Evergreen Script CleanUp Mode
  • Start Menu CleanUp Mode: In Start Menu CleanUp Mode, the start menu entries of the installed software are deleted after installation. This can be used on Golden Image servers to keep the start menu clean.

In addition, you can select your own XML file under Custom Microsoft 365 Apps or Microsoft Office XML File and this will then be copied (overwrites any install.xml). The process for copying and renaming is triggered via Save and Start.

Evergreen Script Custom Microsoft 365 Apps XML File

Important!
When this is used, the options set via NeverRed (Add Visio / Project, Language, Architecture) are not applied.

Unattended Method

If NeverRed is to be started via a scheduled task or third-party software, this can be preconfigured via parameters.

Download the script and run it in an Administrative PowerShell Console.

NeverRed -File unattended Mode

With the parameter -ESFile the GUI is not started to define the settings, but the passed configuration file is read, which was created before via the GUI method (LastSetting.txt).

-File Parameter NeverRed

The file does not have to be named LastSetting.txt, but is created by the script and can be adapted to the needs.

XML Setting files

Third-Party Method (e.g. BIS-F)

Adaptation of the StartNeverRed.ps1 script to the correct path and the required configuration file. Store the customized script, for example, in BIS-F under Custom Scripts.

Updating the Script

If you have started a previous version of the script in GUI Mode, you get a message that an update is available and whether it should be executed.

NeverRed Auto Update Pop Up


When starting with the -ESFile & -GUIfile parameter, this is done automatically and then the new script version is started again with the configuration file.

NeverRed Auto Update

LastSetting.txt

To create a LastSetting.txt GUI-based, simply run NeverRed without parameters and select your settings and software in the GUI.

NeverRed GUI

Click on Save and then cancel the script via Cancel. You can use the LastSetting.txt file created in NeverRed folder for your parameter start.

NeverRed LastSetting.txt

Of course, you can also build the file manually. Here is a short explanation of the individual lines (settings).

Background information

For each selected and downloaded software, a new folder is created under NeverRed folder. A version file is created in this folder when downloading and a log file is created when installing.

Files NeverRed

During the download run, the version available on the Internet is compared with the local version, from the version file. If a newer version is available, the local installation files and the version file are deleted and the new software is downloaded and a new version file is created.

Before downloading the completed software, the download link is placed in the firewall log under _Install Logs.

Example

.\NeverRed.ps1 -ESFile Download.txt

Loads the configuration from the Download.txt file and processes this.

NeverRed -ESFile Parameter

.\NeverRed.ps1 -GUIfile Download.txt

Start the GUI with the options out of the Download.txt file.

NeverRed -GUIfile Parameter

.\NeverRed.ps1

Starts the GUI to select the mode (Install and/or Download) and the software (Release, Update Ring, Language, etc.).

NeverRed GUI

Notes

Evergreen PowerShell Module

If Download is selected, the module is checked each time the script is executed, installed or updated if a new version is available.

Nevergreen PowerShell Module

If Download is selected, the module is checked each time the script is executed, installed or updated if a new version is available.

VcRedist PowerShell Module

If Download is selected, the module is checked each time the script is executed, installed or updated if a new version is available.

1Password

Installation arguments:

7 Zip

These architectures are selectable:

Installation arguments:

Adobe Pro DC

These architectures are selectable:

Installation arguments:

After the update, the Adobe service and scheduled tasks will be stopped and disabled.

Adobe Reader DC

These architectures are selectable:

The following languages are selectable:

Installation arguments:

After installation, the Adobe service and scheduled tasks are stopped and disabled.

Autodesk DWG TrueView

Unpacking the installer:

Installation arguments:

BIS-F

Installation arguments:

After the installation, the scripts will be adjusted regarding task offload, RSS activation and DEP deactivation.

The BIS-F admx and adml files are stored in the ADMX folder.

Cisco Webex Teams

Installation options:

These architectures are selectable:

Installation arguments:

Citrix Files

Installation arguments:

Citrix Hypervisor Tools

These architectures are selectable:

Installation arguments::

Citrix WorkspaceApp

Installation options:

Before installing the new receiver, the old receiver is uninstalled using the Receiver CleanUp Tool.

Installation arguments:

After the installation, various registry keys are set.

As always, after installing the new Workspace App, the system should be rebooted.

ControlUp Agent

Installation options:

Installation options:

These architectures are selectable:

Installation arguments:

deviceTRUST

Installation options:

These architectures are selectable:

Installation arguments:

The deviceTrust admx and adml files are stored in the ADMX folder.

Filezilla

Installation arguments:

Foxit PDF Editor

The following languages are selectable:

Installation arguments:

Foxit Reader

The following languages are selectable:

Installation arguments:

GIMP

Installation arguments:

Git for Windows

These architectures are selectable:

Installation arguments:

Google Chrome

Installation options:

These architectures are selectable:

Installation arguments:

After installation, Chrome services and scheduled tasks will be stopped and disabled.

The Google Chrome admx and adml files are stored in the ADMX folder.

Greenshot

Installation arguments:

ImageGlass

These architectures are selectable:

Installation arguments:

IrfanView

These architectures are selectable:

The following languages are selectable:

Installation arguments:

KeePass

The following languages are selectable:

Installation arguments:

LogMeIn GoToMeeting

Installation arguments:

Microsoft .Net Framework

Installation options:

These architectures are selectable:

Installation arguments:

Microsoft 365 Apps

Installation options:

These architectures are selectable:

The following languages are selectable:

The download not only downloads setup.exe, but also creates the following xml files if they are not already in the folder:

remove.xml

install.xml

Afterward, the install.xml is used during the Install phase to download the required installation files.

Before installing the new Microsoft 365 Apps version, the previous Office installation is removed (remove.xml).

After that, the reinstallation of the software (install.xml) begins.

An install.xml with the specifics of your own installation can be stored and used in advance (e.g. languages, app exclusion or inclusion (Visio & Project)).

By default, the selected one is defined in the install.xml (here 64Bit / Match OS Language / Semi Annual Channel):

Microsoft AVD Remote Desktop

Installation options:

These architectures are selectable:

Installation arguments:

Microsoft Azure CLI

Installation arguments:

Microsoft Azure Data Studio

Installation options:

These architectures are selectable:

Installation arguments:

Microsoft Edge

Installation options:

These architectures are selectable:

Installation arguments:

After the installation, the auto update scheduled tasks of Microsoft Edge are disabled and the Citrix API Hooks are set in the registry.

Microsoft Edge WebView2

These architectures are selectable:

Installation arguments:

Microsoft FSLogix

During the FSLogix installation, the old installation, if present, is first uninstalled and a restart is requested.

After that, the script must be started again so that the new version is installed cleanly.

Installation options:

These architectures are selectable:

Installation arguments:

The Microsoft FSLogix admx and adml files are stored in the ADMX folder.

Not only the FSLogix Agent is installed, but also the FSLogix AppRule Editor.

After the installation the following tasks are still done (For Windows Server 2019, Server 2021 and Windows 10 Enterprise for Virtual Desktops):

  • Deactivate FSLogix RoamSearch
  • Deactivate FSLogix GroupPolicy
  • Add Schedulded Task “Restart Windows Search Service on Event ID 2”

Microsoft Office

Installation options:

These architectures are selectable:

The following languages are selectable:

The download not only downloads setup.exe, but also creates the following xml files if they are not already in the folder:

remove.xml

install.xml

After that, the install.xml is used during the Install phase to download the required installation files.

Before installing the new Microsoft Office 2019 version, the previous Office installation is removed (remove.xml).

After that, the reinstallation of the software (install.xml) begins.

An install.xml with the specifics of your installation can be stored and used in advance (e.g. languages or architecture).

By default, the selected one is defined in the install.xml (here 64Bit / Match OS Language):

Microsoft OneDrive

Installation options:

These architectures are selectable:

Installation arguments:

After installation, the Microsoft OneDrive auto update scheduled task will be stopped and disabled.

The Microsoft OneDrive admx and adml files are stored in the ADMX folder.

Microsoft Power BI Desktop

These architectures are selectable:

Installation arguments:

Microsoft Power BI Report Builder

Installation arguments:

Microsoft PowerShell

Installation options:

These architectures are selectable:

Installation arguments:

Microsoft PowerToys

Installation arguments:

Microsoft SQL Server Management Studio

The following languages are selectable:

Installation arguments:

Microsoft Teams

Installation options:

These architectures are selectable:

Installation arguments:

Also selectable is the option to remove the Autostart registry entry from the system.

After the installation, the Outlook Add-Ins are registered again.

Microsoft Visual C++ Runtime

Installation options:

These architectures are selectable:

Installation arguments:

Microsoft Visual Studio 2019

Installation options:

These architectures are selectable:

Installation arguments:

Microsoft Visual Studio Code

Installation options:

Installation arguments:

MindView 7

The following languages are selectable:

Installation arguments:

Mozilla Firefox

Installation options:

These architectures are selectable:

The following languages are selectable:

Installation arguments:

Firefox is installed with the parameter that disables the icons and the creation of the maintenance service.

Mozilla Thunderbird

These architectures are selectable:

The following languages are selectable:

Installation arguments:

mRemoteNG

Installation arguments:

Nmap

The installation is not silent.

NotePad++

These architectures are selectable:

Installation arguments:

OpenJDK

Installation options:

These architectures are selectable:

Installation arguments:

Open-Shell Menu

Installation arguments:

Oracle Java 8

These architectures are selectable: