Ich habe Flash Player über eine Softwareinstallationsrichtlinie bereitgestellt. Wie aktualisiere ich?

8

Ich habe einen Windows Server 2008-Computer als DC. Anfang dieses Jahres habe ich ein Gruppenrichtlinienobjekt für die Softwareinstallation erstellt, um das Adobe Flash Player-Plugin MSI bereitzustellen. Ich habe die Richtlinie den Computern zugewiesen, etwa die Hälfte läuft unter Windows XP x86 und die andere Hälfte unter Windows 7 x64. Das alles funktioniert wie am Schnürchen.

Als ich die Softwareinstallationsrichtlinie erstellt habe, habe ich die automatische Aktualisierungsfunktion des Flash Player-Plugins deaktiviert, indem ich die MSI in Orca bearbeitet habe. Ich habe dies getan, weil ich wollte, dass auf allen meinen Computern genau dieselbe Version des Plugins ausgeführt wird.

Nun ist einige Zeit vergangen und eine neuere Version des Flash Player-Plugins wurde veröffentlicht. Es ist Zeit für mich, die aktualisierte Version des Plugins herauszubringen. Ich habe bereits das neue MSI, aber ich weiß nicht, was ich als nächstes tun soll.

  • Ich sehe die Registerkarte Upgrades im Gruppenrichtlinienobjekt für die Softwareinstallation, aber alles, was dort so liest, wird für Add-Ons zu einem größeren Masterprogramm verwendet und nicht für Updates, die im Laufe der Zeit veröffentlicht werden.
  • Ich habe gelesen, dass es am besten ist, eine neue Softwareinstallationsrichtlinie mit der neuen MSI zu erstellen, das alte Gruppenrichtlinienobjekt zu widerrufen und das neue Gruppenrichtlinienobjekt zuzuweisen. Ich habe das Gefühl, dass ich im Laufe der Zeit mehr widerrufene als aktive Richtlinien haben werde.
  • Ich habe auch gelesen, dass einige Leute Erfolg hatten, indem sie das alte MSI durch das neue MSI ersetzten und dem Gruppenrichtlinienobjekt einfach sagten, es solle erneut bereitgestellt werden. Dies scheint eine Backdoor-Methode zu sein, die mich nur in Schwierigkeiten bringt.

Kurz gesagt, was ist die richtige, bewährte oder bevorzugte Methode, um die neue Version über Gruppenrichtlinien einzuführen?

elf81
quelle

Antworten:

16

Ich habe das schon oft mit Flash Player (und anderer Software) gemacht. Was Sie tun möchten, ist:

  • Verwenden Sie ORCA, um es mit einer beliebigen Anpassung zu bearbeiten und als Transformation zu speichern (oder speichern Sie es als ganz neues MSI, was auch immer für Sie funktioniert).

  • Fügen Sie diese neue MSI (und Transformationen) in Ihre Softwarebereitstellungsfreigabe ein.

  • Fügen Sie diese Software (und Transformationen) zu Ihrer vorhandenen Richtlinie hinzu. Es wird automatisch als Upgrade auf Ihre früheren Versionen von Flash Player erkannt. Sie können alle Versionen in derselben Richtlinie hinzufügen, wenn Sie sie zuvor so konfiguriert haben (x86: Plugin und ActiveX, x64: Plugin und ActiveX), oder Sie können mit dem bereits vorhandenen GPO-Layout fortfahren. Stellen Sie einfach sicher, dass Sie Ihrer Richtlinie "Like-for-Like" hinzufügen, damit diese automatisch als Upgrades erkannt werden.

  • Wenn sie aus irgendeinem Grund nicht automatisch als Upgrades erkannt werden, können Sie dies selbst in der Richtlinie festlegen. Dies ist der richtige Weg, um mit dieser Situation umzugehen.

Das ist wirklich nichts Besonderes.

Eine Sache, über die Sie nachdenken sollten, ist, anstatt die MSI jedes Mal mit ORCA zu bearbeiten, wenn es eine neue Version gibt, eine mms.cfg-Datei zu erstellen, wie hier mit den Flash Player- Einstellungen beschrieben . Diese Datei wird bei Upgrades nicht berührt, sodass Sie diese Datei nur einmal herausschieben müssen und dann eine Vanilla Flash Player-Installation bereitstellen können. Ich habe Gruppenrichtliniendateieinstellungen mit Targeting auf Elementebene verwendet, um dies auf x86- und x64-Computern in einer gemischten Umgebung an der richtigen Stelle zu platzieren.

MDMarra
quelle
5

Ich glaube, das Upgrade ist die Best-Practice-Methode dafür. Ich habe diese Methode in der Vergangenheit ohne Probleme ziemlich ausgiebig angewendet.

Fügen Sie die neue MSI als weiteres Paket zum Gruppenrichtlinienobjekt hinzu, und wählen Sie die erweiterte Bereitstellungsmethode aus. Es sollte als Upgrade auf den zuvor bereitgestellten Flash Player erkannt werden. Wenn dies nicht der Fall ist, können Sie es manuell zur Registerkarte "Updates" hinzufügen.

John
quelle
5

Ich hatte eine schreckliche Anzahl von scheinbar zufälligen Fehlern (siehe meinen Hinweis am Ende dieser Antwort), bei denen einige der Adobe Flash-MSIs der Versionen 9, 10 und 11 nicht ordnungsgemäß deinstalliert oder aktualisiert wurden und die MSI-Datenbank auf dem PC in einem Zustand belassen wurde das macht mich vorsichtig. Am Ende habe ich ein Startskript verwendet, das:

  • Überprüft den HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayer\CurrentVersionRegistrierungswert, um festzustellen, ob die aktuell installierte Version aktuell ist ( WOW6432NODEggf. Hinzufügen eines Pfads zu diesem Pfad) und ob die Version aktuell ist

  • Verwendet das alte, nicht unterstützte und jetzt msizap.exenahezu unmögliche Dienstprogramm, um bekannte fehlerhafte MSIs aus "back in the day" zu entfernen (einschließlich {2BD2FA21-B51D-4F01-94A7-AC16737B2163}, {B7B3E9B3-FB14-4927-894B- E9124509AF5A} und {FA1D6742-0515-4A94-AD5D-F0484026E4A2}).

  • Verwendet das von Adobe bereitgestellte Deinstallationsprogramm EXE, um aktuelle Flash-Versionen stillschweigend zu entfernen

  • Verwendet das aktuelle von Adobe bereitgestellte EXE-Installationsprogramm mit dem -install activexArgument (ich installiere nur das ActiveX-Steuerelement auf den meisten Websites), um die aktuelle Version zu installieren

  • Schreibt eine 'mms.cfg. Datei, um automatisierte Upgrades zu verhindern

Hier ist eine bereinigte Version meines Startskripts. Sie müssten rausgehen und sich die entsprechenden EXE-Dateien schnappen, wenn Sie dies schaffen möchten.

@echo off
SET MSIZAP=\\my.domain.com\netlogon\bin\msizap.exe
SET DFSPATH=\\my.domain.com\dfsroot\Packages\Adobe

SET UNINSTALL=%DFSPATH%\uninstall_flash_player_x86.exe
SET INSTALL=%DFSPATH%\install_flash_player_11.4.402.278_active_x.exe 

rem Detect 64-bit Windows
IF NOT "%ProgramFiles(x86)%"=="" SET WOW6432NODE=WOW6432NODE\

SET VER_FLAG_KEY=HKEY_LOCAL_MACHINE\SOFTWARE\%WOW6432NODE%Macromedia\FlashPlayer
SET VER_FLAG_VALUE=11,4,402,278

REG QUERY "%VER_FLAG_KEY%" /v CurrentVersion | find /i "%VER_FLAG_VALUE%" > NUL 2>NUL
if errorlevel 1 goto do_install
goto :EOF

:do_install
rem Uninstall all old versions of Flash.
start /wait /min "" "%UNINSTALL%" -uninstall activex

rem MSIZAP all old versions
start /wait /min "" "%MSIZAP%" TW! {2BD2FA21-B51D-4F01-94A7-AC16737B2163}
start /wait /min "" "%MSIZAP%" TW! {B7B3E9B3-FB14-4927-894B-E9124509AF5A}
start /wait /min "" "%MSIZAP%" TW! {FA1D6742-0515-4A94-AD5D-F0484026E4A2}

rem Run new installer
start /wait /min "" "%INSTALL%" -install activex

rem Block future automatic updates
SET DEST="%windir%\system32\Macromed\Flash\mms.cfg"

rem Detect 64-bit Windows
IF NOT "%ProgramFiles(x86)%"=="" SET DEST="%windir%\SysWOW64\Macromed\Flash\mms.cfg"

rem I'm using "sort" here because the redirect is being interpreted as "1>" and
rem doing "1 >" causes a space to be stored in the file, which "breaks" the file.
echo AutoUpdateDisable=1|sort>%DEST%

Die Probleme, die ich beim Deinstallieren alter Flash-MSIs gesehen habe, waren hauptsächlich:

  • "Adobe Flash Player 11 ActiveX - Fehler 1714. Die ältere Version von Adobe Flash Player 11 ActiveX kann nicht entfernt werden. Wenden Sie sich an Ihren technischen Support. Systemfehler 1612."

  • "Fehler 2753: Die Datei 'installax.exe' ist nicht für die Installation markiert."

Der Strohhalm, der dem Kamel den Rücken gebrochen hat, war für mich, dass diese Fehler zufällig auf einer Kundenseite mit mehr als 1.000 Client-PCs auftraten. Ich muss sicherstellen, dass Flash-Updates stattfinden und dass eine zufällige Deinstallation von MSIs keine Option ist. Die Tatsache, dass die MSI-Fehler bei jedem nachfolgenden Start auftreten und den Startvorgang verlangsamen, führt nur zu einer Beleidigung der Verletzung.

Ich habe mir ein v11 MSI nicht im Detail angesehen. Die MSIs v9 und v10 sind nichts anderes als eine benutzerdefinierte Aktion zum Ausführen des EXE-basierten Flash-Installationsprogramms mit Befehlszeilenargumenten. Ich war in der Qualität der MSIs nicht beeindruckt, denn mit dem Windows Installer nur Ihrem EXE-basierten Setup ausgeführt wird , nicht mit Windows Installer.

Evan Anderson
quelle
Gleiche Probleme auch mit späteren Versionen (14-16). Ich habe mehrere Stunden damit verbracht, ein einzelnes beschädigtes MSI zu sortieren, und schließlich alles durch Löschen und Herunterladen einer neuen MSI-Datei für die beschädigte Version behoben. Der schwierige Teil ist, dass die ursprüngliche Installation ausgeblendet ist, da das beschädigte MSI nicht installiert werden kann. Ein Cleaner (oder ein Skript zum Bereinigen über das Gruppenrichtlinienobjekt) muss zuerst ausgeführt werden, um die fehlgeschlagene Installation zu entfernen, bevor das neue Paket ohne Fehler installiert wird.
Fyrye
1
@fyrye - Ich habe vor einigen Jahren die Verwendung der MSI-basierten Flash-Distributionen eingestellt, weil sie so schlecht waren. Ich entschied mich dafür, ein Skript für msizapdie fehlgeschlagenen Installationen zu verwenden.
Evan Anderson
@Evan Anderson, ich habe die gleichen Erfahrungen mit Flash Player-Upgrades gemacht. Große Anzahl von Fehlern und Ausfällen mit denselben Ereignisprotokolleinträgen, die Sie beschreiben. In letzter Zeit habe ich die alte Version entfernt und an der nächsten Eingabeaufforderung "Sofort deinstallieren" ausgewählt. Dann füge ich die neue Version demselben Gruppenrichtlinienobjekt hinzu. Ich frage mich, ob das Hinzufügen der neuen Version als Upgrade besser funktioniert. In der Zwischenzeit wollte ich fragen, ob Sie MSIZAP auf Windows 7-Computern verwendet haben. Ich glaube nicht, dass es von Microsoft unterstützt wird, aber wenn es in den meisten Fällen funktioniert, wäre ich bereit, es auszuprobieren.
satchel_74
1
@ satchel_74 - Ich war in der Vergangenheit sehr vorsichtig mit der Einstellung "Sofort deinstallieren ..." in Gruppenrichtlinienobjekten, da Sie im Grunde genommen eine Deinstallationsanweisung in das Gruppenrichtlinienobjekt einfügen, die mit unterstützten Tools nicht entfernt werden kann. Ich habe MSIZAP auf 32-Bit-Windows 7-Computern ohne Probleme verwendet. Ich habe es nicht ausführlich getestet und bin mir ehrlich gesagt nicht sicher, wie sich das auf 64-Bit-Computern verhalten würde. (Ich glaube nicht, dass es jemals eine x64-Version von MSIZAP gegeben hat.) Es ist ein Tool, das ich letztendlich vermeiden möchte, wann immer es möglich ist.
Evan Anderson
1

Wenn Sie demselben Gruppenrichtlinienobjekt eine neuere Version von flash.msi hinzufügen, erkennt Windows, dass es sich um ein Update des vorherigen handelt (das ältere wird auf der Registerkarte "Updates" aufgeführt). Es wird auch wissen, dass es das neue über das alte installieren kann, ohne das alte zuerst zu entfernen (das Kontrollkästchen auf der Registerkarte "Update" ist aktiviert).

Diese Magie wird durch die GUIDs in der MSI-Datei ermöglicht, die von Adobe eingegeben werden.

Sie können dem gleichen Gruppenrichtlinienobjekt eine beliebige Anzahl neuer flash.msi hinzufügen, aber Sie können eventuell auch alte entfernen.

Eine Ausnahme war die Version 11.4.402.278, da Adobe in diesem Fall an einigen Stellen die falsche Versionsnummer eingegeben hatte und sich daher nicht korrekt aktualisieren konnte.

Aus diesem Grund empfehle ich dringend, immer ein separates Gruppenrichtlinienobjekt zu haben, das nur für einen Testcomputer gilt, und es dort für jede neue Version zu versuchen: Upgrade, Downgrade, Upgrade.

Bitte beachten Sie, dass diese Magie nicht mit allen MSI-Dateien funktioniert. Dann müssen Sie die alten manuell zur Liste auf der Registerkarte "Updates" hinzufügen und das Kontrollkästchen deaktivieren.

Klaus Hartnegg
quelle