NeverRed – Update your Software, the lazy way

NeverRed
Download Version 2.09.11

NeverRed ist ein einfaches PowerShell-Skript zum Herunterladen und Installieren der neuesten Version für mehrere gängige Windows Standard Anwendungen. Das Skript besteht aus einer Reihe einfacher Funktionen zur Verwendung in EUC-Umgebungen wie:

  • Deaktivieren der automatischen Aktualisierung der Software (z.B. Adobe Reader, Microsoft Edge, Google Chrome, etc.)
  • Richtige Installationsprogramme oder Parameter während der Installation (z.B. Machine-Based Installation für Microsoft OneDrive, Slack oder Microsoft Teams)
  • Hinzufügen von Anpassungen nach der Installation (z.B. Reg-Hacks oder Anpassungen an Dateien bei Microsoft FSLogix oder Microsoft Teams)
  • Suche nach aktuellen Versionen auf obskuren Seiten (z.B. Cisco Webex)

Genau an dieser Stelle wollte ich mit NeverRed Abhilfe schaffen.

  • Die Suche nach der aktuellen Version auf den verwirrenden Herstellerseiten entfällt
  • Vergleich der installierten Version auf dem System, mit der aktuellen Version aus dem Internet
  • Automatischer Download der aktuellen Version (und bei manchen Programmen sogar der aktuellen ADMX-Dateien)
  • Deinstallation (falls erforderlich) der Software und Installation der aktuellen neuen Version mit den richtigen Parametern
  • Anpassung der geplanten Aufgaben und Dienste, so dass keine automatischen Aktualisierungen das System stören kann
  • Anpassung der neuen Software an die Besonderheiten des Betriebssystems (z.B. Hinzufügen des geplanten Tasks für Windows Server 2019 und neuer bei der Installation von Microsoft FSLogix für den Fehler „Event ID 2 wsearch“)

So funktioniert NeverRed

NeverRed verwendet mehrere Methoden, um automatisch die Versionsnummer und die Download-URL für die Anwendungen zu ermitteln.

Zu diesem Zweck werden verschiedene Strategien und PowerShell-Module verwendet:

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

Warum

Es gibt bereits gemeinschaftliche und kommerzielle Produkte, die die Bereitstellung und Aktualisierung von Anwendungen verwalten. Dieses Skript ist nicht dazu gedacht, mit diesen zu konkurrieren.

NeverRed hat es sich zur Aufgabe gemacht, eine einfache Lösung zu bieten, um Standardsoftware auf dem neuesten Stand zu halten, ohne sie paketieren oder Versionen auf Herstellerseiten suchen und vergleichen zu müssen.

Versionierung

Das Skript verwendet eine enumerierte Versionsnotation. Es kann davon ausgegangen werden, dass das Skript regelmäßig Änderungen erfährt. Die Versionsnummerierung soll es daher so einfach wie möglich machen, nachzuvollziehen, ob die aktuelle Version verwendet wird. Einzelheiten zu den einzelnen Änderungen sind im Changelog zu finden.

Das Skript erkennt automatisch, ob es aktuell ist, wenn es auf einem System mit Internetanschluss gestartet wird, und wenn dies nicht der Fall ist, wird eine automatische Aktualisierung angeboten.

„Installation des Skripts“

PowerShell Support

NeverRed unterstützt Windows PowerShell 5.1 und PowerShell 7.0+. NeverRed sollte mit PowerShell Core 6.x funktionieren; ich teste jedoch nicht aktiv mit dieser Version von PowerShell, daher kann die Unterstützung nicht garantiert werden.

Einige Downloads funktionieren leider nur noch mit PowerShell 7.x, daher wird diese Version empfohlen. PowerShell 7 kann über NeverRed nachinstalliert werden. Das Skript erkennt dies beim nächsten Start und ändert den Desktop Shortcut, damit PowerShell 7 beim nächsten Start genutzt wird.

Download von GitHub

Das NeverRed Skript ist auf GitHub veröffentlicht und kann hier gefunden werden: NeverRed
Dies ist die beste und empfohlene Methode, um NeverRed zu bekommen.

Starten des Skripts

Das Skript kann direkt nach dem Download in einem administrativen PowerShell Fenster gestartet werden.

GUI Methode

! Wichtig !

NeverRed kann sowohl lokal als auch über einen UNC-Pfad aufgerufen und gestartet werden.

Administrative PowerShell Console

Das Skript wird standardmäßig mit der Datei LastSetting.txt gestartet, die sich im selben Ordner befindet. Wenn die GUI mit einer anderen Konfigurationsdatei gestartet werden soll, soll der Parameter -GUIfile verwendet werden.

Administrative PowerShell Console GUIFile Parameter

Die GUI von NeverRed erscheint mit der auswählbaren Software auf der Seite General.

NeverRed GUI General Page

Über die oben angeordneten Select Mode Optionen kann Folgendes festgelegt werden.

  • Download
    • Wenn die ausgewählte Software nur heruntergeladen werden soll
  • Install
    • Wenn die ausgewählte Software installiert werden soll (wenn die Installationsdateien bereits im Voraus über NeverRed heruntergeladen wurden)
  • Download & Install
    • Wenn die Software erst heruntergeladen und dann installiert werden soll

Die Aufteilung der Funktionen für das Herunterladen und die Installation wird häufig verwendet, wenn der Zielcomputer nicht über eine Internetverbindung verfügt.

NeverRed Select Mode Download Install

Globale Einstellungen für die ausgewählte Software können über die Optionen Select Language, Select Architecture und Select Installer Type vorgenommen werden.

Dies wird natürlich nur berücksichtigt, wenn das Programm diese Auswahl beim Download oder bei der Installation zur Verfügung stellt.

Die Einstellungen zu Sprache (Select Language), Architektur (Select Architecture) und Installationsmechanismus (Select Installer Type) können auf der Detailseite für jede Software individuell angepasst werden. Die Einstellungen auf der Detailseite überschreiben die globalen Einstellungen für die Software.

Unter Select Installer Type wird zwischen User Based (Laptop, Static Citrix Worker, etc.) und Machine Based (Random Citrix Worker, RDS Host) unterschieden.

NeverRed GUI Select Language Select Architecture Select Installer Type

Für einige Programme stehen weitere wählbare Optionen zur Verfügung, wie z.B. der Updatekanal / -ring oder die Lizenzversion.

NeverRed GUI Channel Ring

Alle Einstellungen werden lokal in der Datei LastSetting.txt gespeichert, wenn Sie auf Save oder Start klicken, und werden beim nächsten Programmstart automatisch von dort gelesen. Durch Klicken auf Save wird die Datei LastSetting.txt erstellt, ohne eine Installation zu starten.

NeverRed GUI Select All

Auf der Detail Seite ist die unter General ausgewählte Software ebenfalls bereits ausgewählt. Wenn auf der Detail Seite etwas an der ausgewählten Software geändert wird, wird dies ebenfalls übertragen.

NeverRed GUI Detail Page

Die globalen Einstellungen bezüglich Sprache (Select Language), Architektur (Select Architecture) und Installationsmechanismus (Select Installer Type) können für jede Software auf der Detailseite individuell angepasst werden. Damit wird die globale Einstellung für diese Software überschrieben.

Zusätzlich können Microsoft Visio und Microsoft Project ausgewählt werden. Ist dies der Fall, wird die install.xml für Microsoft 365 Apps oder Microsoft Office um die ausgewählten Optionen erweitert.

NeverRed GUI Detail Page Select Software

Vier Optional Modes sind auf der Detailseite verfügbar:

Evergreen Script GUI Detail Page Optional Mode
  • WhatIf Mode
    • Wenn diese Option aktiviert ist, werden die eingestellten Aktivitäten simuliert
    • Es werden keine Installationsprogramme heruntergeladen oder installiert
    • Sie können in der Ausgabe nur sehen, ob es neuere Software gibt
    • Die einzige Aktivität, die das Skript durchführt, ist die Erstellung des FW Logs, des General Logs und des Installation Logs.
Evergreen Script WhatIf Mode Download

Es wird eine Meldung angezeigt, dass Sie sich im WhatIf Mode befinden.

Evergreen Script WhatIf Mode Install
  • Installer Repository Mode
    • Im Installer Repository Mode werden die Installer der ausgewählten Software in den Ordner _Repository kopiert, bevor der neue Download gestartet wird
Evergreen Script Installer Repository Mode
  • Installer CleanUp Mode
    • Im Installer CleanUp Mode werden die Installer der ausgewählten Software nach der Installation gelöscht
    • Dies kann auf Golden Image Servern verwendet werden, um diese sauber zu halten
Evergreen Script CleanUp Mode
  • Start Menu CleanUp Mode
    • Im Start Menu CleanUp Mode werden die Startmenüeinträge der installierten Software nach der Installation gelöscht
    • Dies kann auf Golden Image Servern verwendet werden, um das Startmenü sauber zu halten

Zusätzlich können unter Custom Microsoft 365 Apps or Microsoft Office XML File eigene XML-Dateien ausgewählt werden, die dann umkopiert werden (überschreibt eine eventuelle vorhandene install.xml). Der Vorgang des Kopierens und Umbenennens wird über Save und Start ausgelöst.

Evergreen Script Custom Microsoft 365 Apps XML File

! Wichtig !

In diesem Fall werden die über NeverRed eingestellten Optionen (Add Visio / Project, Language, Architecture) nicht angewendet.

Unattended Method

Wenn NeverRed über eine geplante Aufgabe oder eine Drittanbietersoftware gestartet werden soll, kann dies über Parameter vorkonfiguriert werden.

Ladet das Skript herunter und führt es in einer administrativen PowerShell-Konsole aus.

NeverRed -File unattended Mode

Mit dem Parameter -ESFile wird nicht die GUI gestartet, um die Einstellungen zu definieren, sondern die übergebene Konfigurationsdatei wird gelesen, die zuvor über die GUI-Methode erstellt wurde (LastSetting.txt).

-File Parameter NeverRed

Die Datei muss nicht LastSetting.txt heißen, sondern wird vom Skript so erstellt und kann an die Bedürfnisse angepasst werden.

XML Setting files

Third-Party Method (z.B. BIS-F)

Hierfür sollte das Skript StartNeverRed.ps1 bezüglich des richtigen Pfades und die erforderliche Konfigurationsdatei angepasst werden. Danach sollte das angepasste Skript z.B. im BIS-F unter Custom Scripts gespeichert werden.

Aktualisierung des Skripts

Wenn eine frühere Version des Skripts im GUI-Modus gestartet wird, erhält man eine Meldung, dass ein Update verfügbar ist und eine Abfrage ob es ausgeführt werden soll.

NeverRed Auto Update Pop Up


Beim Start mit den Parametern -ESFile & -GUIfile erfolgt dies automatisch und anschließend wird die neue Skriptversion erneut mit der Konfigurationsdatei gestartet.

NeverRed Auto Update

LastSetting.txt

Um eine LastSetting.txt auf GUI-Basis zu erstellen, führt einfach NeverRed ohne Parameter aus und definiert die Einstellungen und Software in der GUI.

NeverRed GUI

Klickt auf Save und brecht dann das Skript mit Cancel ab. Die im Ordner NeverRed erstellte Datei LastSetting.txt kann für den Parameterstart verwendet werden.

NeverRed LastSetting.txt

Natürlich kann die Datei auch manuell erstellt werden. Hier ist eine kurze Erklärung der einzelnen Zeilen (Einstellungen).

Hintergrundinformationen

Für jede ausgewählte und heruntergeladene Software wird ein neuer Ordner unter dem Ordner NeverRed erstellt. In diesem Ordner wird beim Herunterladen eine Versionsdatei und bei der Installation eine Protokolldatei erstellt.

Files NeverRed

Während des Download Laufs wird die im Internet verfügbare Version mit der lokalen Version aus der Versionsdatei verglichen. Wenn eine neuere Version verfügbar ist, werden die lokalen Installationsdateien und die Versionsdatei gelöscht und die neue Software heruntergeladen und eine neue Versionsdatei erstellt.

Bevor die fertige Software heruntergeladen wird, wird der Download Link im FW Log unter _Install Logs angegeben.

Beispiel

.\NeverRed.ps1 -ESFile Download.txt

Lädt die Konfiguration aus der Datei Download.txt und verarbeitet diese.

NeverRed -ESFile Parameter

.\NeverRed.ps1 -GUIfile Download.txt

Startet die GUI mit den Optionen aus der Datei Download.txt.

NeverRed -GUIfile Parameter

.\NeverRed.ps1

Startet die GUI zur Auswahl des Modus (Install und / oder Download) und der Software (Release, Update Ring, Language usw.).

NeverRed GUI

Notes

Evergreen PowerShell Module

Wenn Download ausgewählt ist, wird das Modul bei jeder Ausführung des Skripts überprüft, installiert oder upgedatet wenn eine neue Version verfügbar ist.

Nevergreen PowerShell Module

Wenn Download ausgewählt ist, wird das Modul bei jeder Ausführung des Skripts überprüft, installiert oder upgedatet wenn eine neue Version verfügbar ist.

VcRedist PowerShell Module

Wenn Download ausgewählt ist, wird das Modul bei jeder Ausführung des Skripts überprüft, installiert oder upgedatet wenn eine neue Version verfügbar ist.

1Password

Installationsargumente:

7 Zip

Diese Architekturen sind wählbar:

Installationsargumente:

Adobe Pro DC

Diese Architekturen sind wählbar:

Installationsargumente:

Nach dem Update wird der Adobe Dienst und die geplanten Tasks gestoppt und deaktiviert.

Adobe Reader DC

Diese Architekturen sind wählbar:

Wählbar sind die folgenden Sprachen:

Installationsargumente:

Nach der Installation wird der Adobe Dienst und die geplanten Tasks gestoppt und deaktiviert.

Autodesk DWG TrueView

Entpacken der Installer:

Installationsargumente:

BIS-F

Installationsargumente:

Nach der Installation, werde die Skripte noch bezüglich Task Offload, RSS Aktivierung und DEP Deaktivierung angepasst.

Die BIS-F admx und adml Dateien werden im Ordner ADMX gespeichert.

Cisco Webex Teams

Installationsvarianten:

Diese Architekturen sind wählbar:

Installationsargumente:

Citrix Files

Installationsargumente:

Citrix Hypervisor Tools

Diese Architekturen sind wählbar:

Installationsargumente:

Citrix WorkspaceApp

Installationsvarianten:

Vor der Installation des neuen Receivers wird der alte Receiver über das Receiver CleanUp Tool deinstalliert.

Installationsargumente:

Nach der Installation werden noch verschiedene Registry Schlüssel gesetzt.

Wie immer sollte nach der Installation des neuen Workspace App das System neu gebootet werden.

ControlUp Agent

Installationsvarianten:

Installationsvarianten:

Diese Architekturen sind wählbar:

Installationsargumente:

deviceTRUST

Installationsvarianten:

Diese Architekturen sind wählbar:

Installationsargumente:

Die deviceTrust admx und adml Dateien werden im Ordner ADMX gespeichert.

Filezilla

Installationsargumente:

Foxit PDF Editor

Wählbar sind die folgenden Sprachen:

Installationsargumente:

Foxit Reader

Wählbar sind die folgenden Sprachen:

Installationsargumente:

GIMP

Installationsargumente:

Git for Windows

Diese Architekturen sind wählbar:

Installationsargumente:

Google Chrome

Installationsvarianten:

Diese Architekturen sind wählbar:

Installationsargumente:

Nach der Installation werden die Chrome-Dienste und geplanten Tasks gestoppt und deaktiviert.

Die admx und adml Dateien von Google Chrome werden im Ordner ADMX gespeichert.

Greenshot

Installationsargumente:

ImageGlass

Diese Architekturen sind wählbar:

Installationsargumente:

IrfanView

Diese Architekturen sind wählbar:

Wählbar sind die folgenden Sprachen:

Installationsargumente:

KeePass

Wählbar sind die folgenden Sprachen:

Installationsargumente:

LogMeIn GoToMeeting

Installationsargumente:

Microsoft .Net Framework

Installationsvarianten:

Diese Architekturen sind wählbar:

Installationsargumente:

Microsoft 365 Apps

Installationsvarianten:

Diese Architekturen sind wählbar:

Wählbar sind die folgenden Sprachen:

Beim Download wird nicht nur die setup.exe heruntergeladen, sondern es werden auch die folgenden xml-Dateien erstellt, wenn sie nicht bereits im Ordner vorhanden sind:

remove.xml

install.xml

Anschließend wird die install.xml während der Install Phase verwendet, um die erforderlichen Installationsdateien herunterzuladen.

Vor der Installation der neuen Microsoft 365 Apps Version, wird die vorherige Office Installation entfernt (remove.xml).

Danach beginnt die Neuinstallation der Software (install.xml).

Es kann eine install.xml mit den Besonderheiten der eigenen Installation hinterlegt und vorab verwendet werden (z.B. Sprachen, App Exclusion oder Inclusion (Visio & Project)).

Standardmäßig ist das ausgewählte in der install.xml definiert (hier 64Bit / Match OS Language / Semi Annual Channel):

Microsoft AVD Remote Desktop

Installationsvarianten:

Diese Architekturen sind wählbar:

Installationsargumente:

Microsoft Azure CLI

Installationsargumente:

Microsoft Azure Data Studio

Installationsvarianten:

Diese Architekturen sind wählbar:

Installationsargumente:

Microsoft Edge

Installationsvarianten:

Diese Architekturen sind wählbar:

Installationsargumente:

Nach der Installation werden die geplanten Tasks für das Auto Update von Microsoft Edge deaktiviert und der Citrix API Hooks in der Registry gesetzt.

Microsoft Edge WebView2

Diese Architekturen sind wählbar:

Installationsargumente:

Microsoft FSLogix

Bei der FSLogix Installation wird zunächst die alte Installation, falls vorhanden, deinstalliert und ein Neustart angefordert.

Danach muss das Skript erneut gestartet werden, damit die neue Version sauber installiert wird.

Installationsvarianten:

Diese Architekturen sind wählbar:

Installationsargumente:

Die Microsoft FSLogix admx und adml Dateien werden im Ordner ADMX gespeichert.

Es wird nicht nur der FSLogix Agent installiert, sondern auch der FSLogix AppRule Editor.

Nach der Installation sind noch folgende Aufgaben zu erledigen (Für Windows Server 2019, Server 2021 und Windows 10 Enterprise für virtuelle Desktops):

  • Deaktiviert FSLogix RoamSearch
  • Deaktiviert FSLogix GroupPolicy
  • Hinzunahme des Geplanten Tasks „Restart Windows Search Service on Event ID 2“

Microsoft Office

Installationsvarianten:

Diese Architekturen sind wählbar:

Wählbar sind die folgenden Sprachen:

Beim Download wird nicht nur die setup.exe heruntergeladen, sondern es werden auch die folgenden xml-Dateien erstellt, wenn sie nicht bereits im Ordner vorhanden sind:

remove.xml

install.xml

Anschließend wird die install.xml während der Install Phase verwendet, um die erforderlichen Installationsdateien herunterzuladen.

Vor der Installation der neuen Microsoft Office 2019-Version wird die vorherige Office Installation entfernt (remove.xml).

Danach beginnt die Neuinstallation der Software (install.xml).

Es kann eine install.xml mit den Besonderheiten der eigenen Installation hinterlegt und vorab verwendet werden (z.B. Sprachen oder Architektur).

Standardmäßig ist das ausgewählte in der install.xml (hier 64Bit / Match OS Language) definiert:

Microsoft OneDrive

Installationsvarianten:

Diese Architekturen sind wählbar:

Installationsargumente:

Nach der Installation wird der Geplante Task zur automatischen Aktualisierung von Microsoft OneDrive gestoppt und deaktiviert.

Die Microsoft OneDrive admx und adml Dateien werden im Ordner ADMX gespeichert.

Microsoft Power BI Desktop

Diese Architekturen sind wählbar:

Installationsargumente:

Microsoft Power BI Report Builder

Installationsargumente:

Microsoft PowerShell

Installationsvarianten:

Diese Architekturen sind wählbar:

Installationsargumente:

Microsoft PowerToys

Installationsargumente:

Microsoft SQL Server Management Studio

Wählbar sind die folgenden Sprachen:

Installationsargumente:

Microsoft Teams

Installationsvarianten:

Diese Architekturen sind wählbar:

Installationsargumente:

Ebenfalls wählbar ist die Option, den Autostart Registrierungseintrag aus dem System zu entfernen.

Nach der Installation werden die Outlook Add-Ins nochmals registriert.

Microsoft Visual C++ Runtime

Installationsvarianten:

Diese Architekturen sind wählbar:

Installationsargumente:

Microsoft Visual Studio 2019

Installationsvarianten:

Diese Architekturen sind wählbar:

Installationsargumente:

Microsoft Visual Studio Code

Installationsvarianten:

Installationsargumente:

MindView 7

Wählbar sind die folgenden Sprachen: