kurt.maurer
Goto Top

Adobe Flash Player Update ohne Nachfrage per (Startup) Skript starten

Hallo zusammen,

in unserer Windows-Domänenumgebung (Server 2003, 2008 R2, XP, 7) habe ich den Flash Player bisher immer über ein Startup-Skript installiert und dabei auf die .exe-Version des Installers zurückgegriffen da ich mit der MSI-Version (10.0.32.18) schlechte Erfahrungen gemacht habe (während der Installation hängengeblieben, keine saubere Deinstallation möglich etc.). Ich lasse vorher den FlashPlayerUninstaller laufen, dann wird jeweils die ActiveX und Plugin-Version installiert. Läuft wunderbar und nach meiner Erfahrung schneller als die MSI-Installation (kann aber inzwischen natürlich schon wieder anders sein).
Es ist allerdings relativ viel Aufwand, immer die neuesten Versionen herunterzuladen, die Ordnerstruktur für die Deployment-Freigabe zur erstellen und das Skript anzupassen. Deshalb würde ich gerne folgendes umsetzen:

-Es soll weiterhin ein Startup-Skript zum Einsatz kommen (wegen der benötigten Adminrechte zur Installation)
-Das Skript soll den Updateprozess des Flash Players in Gang setzen. Dies ist nur umsetzbar falls es hier einen silent-Modus gibt, ihr kennt ja alle dieses Fenster:
2443c3c4596272ca05a4422f02efac63
-Es gilt, über einen Proxy auf das Internet zuzugreifen

Dadurch ist der Flash Player immer aktuell und der administrative Aufwand verringert sich.
Mir ist natürlich klar, dass es heikel sein kann, Updates ohne Test einzuspielen. Aber: Immer den Updates hinterherzulaufen ist stressig und falls mal etwas schief geht habe ich ja immer noch die Möglichkeit eine ältere Version zu verteilen. Ich würde dieses Risiko bewusst eingehen (wird meiner Meinung nach durch das zeitnahe Einspielen der Updates wieder wettgemacht).

Bin gespannt auf eure Vorschläge!

*edit*
Hier noch ein interessanter Link zum Thema, so ungefähr stelle ich mir das vor, ob das Update nun vom Browser initiiert wird oder über ein Skript ist mir egal:
http://www.computerworld.com/s/article/9174581/Google_s_Chrome_now_sile ...

Content-Key: 165153

Url: https://administrator.de/contentid/165153

Printed on: April 25, 2024 at 19:04 o'clock

Mitglied: 60730
60730 Apr 25, 2011 at 19:35:57 (UTC)
Goto Top
moin,

Es ist allerdings relativ viel Aufwand, immer die neuesten Versionen herunterzuladen, die Ordnerstruktur für die Deployment-Freigabe zur erstellen und das Skript anzupassen.

  • nein ist es nicht....

  • auf deinem Kasten siehst du, das dein Flash aktualisiert werden möchte
  • die Ordnerstruktur kannst du mit einer Batch erstellen und das Script ebenso anpassen.

Ich mache das zwar etwas anders, aber da man Adobelinks nicht veröffentlichen darf, lasse ich das - Hab ich aber schon mehrmals hier so geschrieben

Gruß
Member: Kurt.Maurer
Kurt.Maurer Apr 25, 2011 at 19:55:50 (UTC)
Goto Top
Zitat von @60730:
moin,

> Es ist allerdings relativ viel Aufwand, immer die neuesten Versionen herunterzuladen, die Ordnerstruktur für die
Deployment-Freigabe zur erstellen und das Skript anzupassen.

  • nein ist es nicht....

Es wäre für mich (subjektiv) eine mittelgroße Erleichterung wenn ich mich nicht länger um das "Patchmanagement" des Flash Players kümmern müsste, klar, im Prinzip ist es ein Klacks, das Problem sind die vielen anderen "Kläckse" die dazu kommen und sich ansammeln ;)
Falls also jemand noch konkrete Vorschläge hat meine oben genannten Vorstellungen umzusetzen würde ich mich freuen. Ob es dann wirklich Sinn macht, dass werde ich zusammen mit meinen Kollegen nach der Testphase entscheiden.

  • auf deinem Kasten siehst du, das dein Flash aktualisiert werden möchte
  • die Ordnerstruktur kannst du mit einer Batch erstellen und das Script ebenso anpassen.

Ich mache das zwar etwas anders, aber da man Adobelinks nicht veröffentlichen darf, lasse ich das - Hab ich aber schon
mehrmals hier so geschrieben


Gruß
Mitglied: 60730
60730 Apr 25, 2011 at 21:14:49 (UTC)
Goto Top
moin,

ich schreibs nochmal leicht anders....

Es wäre für mich und den Betreiber dieses Forums objektiv ein Rechtsverstoß, wenn ich dir meinen Weg hier nennen würde, wie ich das mache.
es wäre den anderen gegenüber jedoch unfair - wenn ich mein Script, das ich mir für meine Arbeitserleichterung gzimmert habe - per PN zu verteilen.

Von daher wirst du hier mit dem Wunsch nach Konkreten fertigen Lösungen nicht wirklich erfolgreich sein.
DU mußt dir selber etwas ausdenken.

http://www.adobe.com/de/products/players/fpsh_distribution1.html
Überblick über die Lizenzierung

Sie können Adobe Flash Player im Firmen-Intranet oder in lokalen Netzwerken bereitstellen. Darüber hinaus haben Sie die Möglichkeit, Flash Player auf CD-ROM, DVD oder einem anderen Speichermedium anzubieten, sofern Sie die Bedingungen der Lizenzvereinbarung zur Player-Verteilung einhalten.

Gruß
Mitglied: 99045
99045 Apr 25, 2011 at 21:23:22 (UTC)
Goto Top
Moin,

nur mal so am Rande, ohne jede Diskussion meinerseits:

BGH-Urteil vom 6. Juli 2000
Im Urteil vom 6. Juli 2000 entschied der Bundesgerichtshof (BGH), dass der Erschöpfungsgrundsatz nicht durch Lizenzbestimmungen der Hersteller ausgehebelt werden kann (Az. I ZR 244/97 - OEM-Entscheidung - Urteilsbesprechung in GRUR 2001, 153).

Laut § 69 c Nr. 3 Satz 2 UrhG erschöpft sich das Verbreitungsrecht eines Herstellers an seinem Produkt in dem Moment, in dem es erstmalig mit seiner Zustimmung in Verkehr gebracht wird. Sodann erschöpft sich das Verbreitungsrecht bzgl. des gesamten Binnenmarktes der Europäischen Union bzw. Europäischen Wirtschaftsgemeinschaft (gemeinschaftsweite Erschöpfung).

Aus Wikipedia

Frei nach
Die spinnen, die Römer!
lässt sich für Römer ein beliebiger Name einsetzen. face-wink

Gruß
Member: simsons
simsons Apr 26, 2011 at 07:56:47 (UTC)
Goto Top
@timobeil

Es wäre jedoch interessant zu erfahren was du machen würdest wenn es sich nicht um den Flashplayer handeln würde.
Die zu installierende Software jedoch über die gleichen Hindernisse bei der Installation verfügen würde.

Wie zum Beispiel die Software "Adura" von lmaa-adroba.

mfg
Member: Kurt.Maurer
Kurt.Maurer Apr 26, 2011 at 10:37:41 (UTC)
Goto Top
Zitat von @60730:
moin,

ich schreibs nochmal leicht anders....

Es wäre für mich und den Betreiber dieses Forums objektiv ein Rechtsverstoß, wenn ich dir meinen Weg hier
nennen würde, wie ich das mache.
es wäre den anderen gegenüber jedoch unfair - wenn ich mein Script, das ich mir für meine Arbeitserleichterung
gzimmert habe - per PN zu verteilen.

Ich denke, ein Rechtsverstoß würde vorliegen, wenn du konkrete URLs nennen würdest. Kaum aber, wenn du lediglich die Prinzipien deines Skriptes / deiner Updatelösung skizzierst (ist schließlich dein eigenes "Gedankengut" und es könnte vielen Leuten ausreichend helfen um eine eigene Lösung danach zu basteln).
Von daher wirst du hier mit dem Wunsch nach Konkreten fertigen Lösungen nicht wirklich erfolgreich sein.
DU mußt dir selber etwas ausdenken.
An welcher Stelle habe ich nach einer konkreten Lösung verlangt? Es geht erstmal noch darum zu überprüfen, ob Überhaupt die Voraussetzungen für ein solches Skript vorhanden sind:

-manueller Aufruf des Updateprozesses. Ich kenne die silent-switches nicht.
Der Update-Prozess läuft meines Wissens grob so ab: Man ruft IE oder z.B. FF auf, je nachdem ist die Plugin-Version oder die ActiveX-Version betroffen. Dann ruft man eine Seite mit Flash-Content auf. Falls keine mms.cfg vorhanden ist, die ein Updateprozess unterbindet, überprüft der Flash Player in diesem Augenblick ob neue Updates vorhanden sind. Falls ja, werden die Updates heruntergeladen (in ein temporäres Verzeichnis? und eine Log erstellt?) und ein RunOnce-Eintrag angelegt, z.B. für activex:
[HKEY_USERS\Benutzer-SID\Software\Microsoft\Windows\CurrentVersion\RunOnce]
"FlashPlayerUpdate"="E:\\WINDOWS\\system32\\Macromed\\Flash\\FlashUtil10l_ActiveX.exe -update activex"
Beim nächsten Anmelden wird das Updatefenster erscheinen und die Installation kann bei vorhandenen Adminrechten beginnen.
Evtl interessant: Wenn ich beim manuellen Aufruf an die Zeile E:\\WINDOWS\\system32\\Macromed\\Flash\\FlashUtil10l_ActiveX.exe -update activex -install als Parameter -s oder -silent anhänge kommt die Meldung "Ungültiges Argument oder ungültige Verwendung von Argument xy". Hänge ich dagegen -install an, kommt "Schwerwiegender Fehler 1001. Es sind keine weiteren Informationen verfügbar.

Würde mich interessieren, ob jemand noch mehr über den Updateprozess weiß.

Hier noch ein interessanter Link:
http://c-ko.blogspot.com/2009/09/uber-adobe-flash-player-teil-2-update. ...

-Download der Updates über Proxy (evtl. hilft hier Netsh.exe and ProxyCfg.exe?)


http://www.adobe.com/de/products/players/fpsh_distribution1.html
> Überblick über die Lizenzierung
> 
> Sie können Adobe Flash Player im Firmen-Intranet oder in lokalen Netzwerken bereitstellen. Darüber hinaus haben Sie die
> Möglichkeit, Flash Player auf CD-ROM, DVD oder einem anderen Speichermedium anzubieten, sofern Sie die Bedingungen der
> Lizenzvereinbarung zur Player-Verteilung einhalten.
> 
Darüber bin ich mir im klaren.


Gruß
Member: MReimer
MReimer May 02, 2011 at 11:44:00 (UTC)
Goto Top
Hallo,

da mich die Flash Player Updates auch immer den letzten Nerv gekostet haben (vorallem dass Problem mit den Admin Rechten), benutze ich seit ein paar Wochen folgendes Tool zum Updaten des Flash Players.

http://www.wecode.biz/p/alternative-flash-player-auto-updater.html

Ich kann das Tool durchaus empfehlen es geht einfach! Der Entwickler baut auch sehr schnell Änderungen / Vorschläge in den Code ein.

Gruss

Manuel
Mitglied: 99536
99536 May 11, 2011 at 11:08:12 (UTC)
Goto Top
Moin Moin,

Das ist natürlich die Premium Klasse ...

Perfekt !!

Genau das, was ich gesucht habe.

Merse und Ciao Ciao

NexXxuS
Member: Kurt.Maurer
Kurt.Maurer May 12, 2011 at 16:15:41 (UTC)
Goto Top
Ich sehe bei dem Programm "Alternative Flash Player Auto-Updater " folgende Probleme:

1. Es muss genauso wie der Flash Player auf alle Rechner drauf und aktuell gehalten werden

2. Zentrale Administration nur eingeschränkt möglich (keine explizite Angabe möglich, welche Version installiert werden darf, keine Angabe möglich, welche Rechner einbezogen werden sollen)

3. Ob Updates eingespielt werden oder nicht liegt in der Hand des Benutzers, nicht des Admins.
D.h. hier geht die Kontrolle verloren, evtl. sollte vorher ja auch noch getestet werden ob die neue Version in Ordnung ist.
Zitat aus Website:
- Kann komplett unerkannt arbeiten (abgesehen von Benachrichtigungen, wenn Updates verfügbar sind)
- Nutzer kann sich entscheiden, das Programm automatisch mit Windows starten zu lassen

Bei dem Programm gibt es zwar die Option "Install updates without user interaction", allerdings steht dahinter in Klammer: does not always work :P

Ich habe vor, ein Skript zu schreiben welches diese Nachteile nicht hat. Wahrscheinlich wird es dem Skript von TimoBeil ziemlich nahe kommen.
Da er uns aber nix verraten will, muss ich halt das Rad nochmal neu erfinden ;)
Selbstverständlich werde ich das Skript im Forum veröffentlichen (allerdings ohne kritische URLs von Adobe, die müsst ihr dann selber herausfinden).

Gruß,
Mitglied: 60730
60730 May 12, 2011 at 18:08:36 (UTC)
Goto Top
moin,

tust du mal schauen was der T-Mo in der letzten Zeit so an leitungen hier Angemalt hat?

Gruß
Member: Kurt.Maurer
Kurt.Maurer May 13, 2011 at 10:15:55 (UTC)
Goto Top
Merci Timo, dass du mich darauf gestoßen hast ;)
So in etwa hatte ich mir dass auch vorgestellt (mit wget), ich werde das Skript allerdings in vbs schreiben (was ja Nebensache ist).

Die Skriptlösung für den Flash Player wird voraussichtlich aus 3 Teilen bestehen:

Skript 1: "Flash Player Update Notifier"

Installierte Version auslesen (jeweils activex und plugin) oder aus einer Textdatei die zuletzt verteilte / heruntergeladene Version auslesen.
Überprüfen, ob eine neuere Version vorhanden ist.
(Teilweise sind diese Anforderungen bereits gelöst:
http://c-ko.blogspot.com/2009/09/flash-player-updater.html
Vorstellbar wäre hier, einen Task einzurichten, der einmal jeden Tag läuft und eine Email-Benachrichtigung verschickt)

Skript 2: "Flash Player Pre-Deployment Steps"
Auf Wunsch automatischer Download der Datei (evtl mit wget) in ein definiertes
Verzeichnis (z.B. in einen Unterordner der den Namen der Versions-Nr hat).
Automatische Anpassung des Verteilungs-Skriptes an die neue
Version. Am besten sollte das Skript zuerst nur auf bestimmten
Test-Rechnern laufen, bei Erfolg auf allen Rechnern.

Skript 3: "Flash Player Installer / Uninstaller"
Läuft als Startup-Skript. Da ich dieses Skript schon fertig habe, möchte ich es euch hier vorstellen:

'Dieses Skript deinstalliert den Flashplayer und installiert  
'im Anschluss die aktuellen Versionen für IE und FF.  
'Korrupte MSI-Installationen werden durch MsiZap ebenfalls  
'entfernt (nur bei Bedarf anwenden)  

Option Explicit

Dim objFSO, strPathLog, strPathUninstaller
Dim strPathFlashAX, strPathFlashPlugin, strPathMmsCfgSource
Dim strPathMsiZap, strSilentSwitch1

'Tip: Wenn sich alle Dateien im selben Verzeichnis befinden:   
	'Einfach Find&Replace benutzen um Pfad anzugeben  
strPathLog = 			"\\servername(keine IP wenn Startupskript)\freigabename\dateiname.txt"  
strPathUninstaller = 	"\\servername(keine IP wenn Startupskript)\freigabename\uninstall_flash_player.exe"  
strPathFlashAX = 		"\\servername(keine IP wenn Startupskript)\freigabename\install_flash_player_ax.exe"  
strPathFlashPlugin = 	"\\servername(keine IP wenn Startupskript)\freigabename\install_flash_player_plugin.exe"  
strPathMmsCfgSource = 	"\\servername(keine IP wenn Startupskript)\freigabename\mms.cfg"  
strPathMsiZap =			"\\servername(keine IP wenn Startupskript)\freigabename\MsiZap.exe"  
strSilentSwitch1 = 		" -install" 'früher /s, hätte man auch so lassen können...  
'###############################################################  
'###############################################################  
Set objFSO = CreateObject("Scripting.FileSystemObject")  

If objFSO.FileExists(strPathLog) Then
	'MsgBox "Datei Log existtiert"  
	Const ForReading = 1, ForWriting = 2, ForAppending = 8
	Dim objLogTxt, blnHostnameFound, strLine
	Dim arrFields
	'Datei öffnen  
	'Was passiert, wenn Datei schon geöffnet ist?  
	Set objLogTxt = objFSO.OpenTextFile(strPathLog, ForReading)
	blnHostnameFound = False
	'Prüfen, ob Computername bereits vorhanden ist  
	Do Until objLogTxt.AtEndOfStream
		strLine = objLogTxt.ReadLine
		arrFields = Split(strLine, vbTab, 1, 1)
		'Prüfen, ob mind. 1 Arrayelement exist.  
		If UBound(arrFields) <> -1 Then
			If InStr(1, arrFields(0), getHostname(), 1) Then
				blnHostnameFound = True
				'MsgBox "Hostname gefunden"  
				'Da Computername schon in der Log-Datei vorkommt _  
				'keine Änderungen vornehmen.  
				objLogTxt.Close
				WScript.Quit
			End If
		'Wenn Hostname nicht gefunden wurde und als letzes eine leere Zeile _  
			'an die Split-Funktion übergeben wurde   
			'(Log-Datei endet immer mit neuer leerer Zeile)  
		ElseIf UBound(arrFields) = -1 Then
			Err.Clear 'Muss gemacht werden, damit nicht ErrorLog geschrieben wird  
		End If
	Loop
	objLogTxt.Close
	
	If blnHostnameFound = False Then
		'MsgBox "Hostname nicht gefunden"  
		UnInstallFlashPlayer()
		CopyMmsCfg()
		Set objLogTxt = objFSO.OpenTextFile(strPathLog,ForAppending)
		objLogTxt.Write getHostname() & vbCrLf
		objLogTxt.Close
	End If	
Else
	WScript.Quit
End If

Set objLogTxt = Nothing
Set objFSO = Nothing
'MsgBox "Erfolgreich ausgeführt"  
WScript.Quit
'###############################################################  
'###############################################################  
Function getHostname()
	Dim objWSHNet
	Set objWSHNet = WScript.CreateObject("WScript.Network")  
	getHostname = objWSHNet.ComputerName
	If (Err.Number <> 0) Then
		GetHostname = "Fehler beim Lesen"  
	End If
End Function
'###############################################################  
'###############################################################  
Function UnInstallFlashPlayer()
	Set objFSO = CreateObject("Scripting.FileSystemObject")  
	If objFSO.FileExists(strPathUninstaller) And _
	objFSO.FileExists(strPathMsiZap) And _
	objFSO.FileExists(strPathFlashAX) And _
	objFSO.FileExists(strPathFlashPlugin) Then
		Dim objShell
		Set objShell = WScript.CreateObject("Wscript.Shell")  
		objShell.Run strPathUninstaller & strSilentSwitch1,0,True
		'Flashplayer 10.0.32.18 Active X: Entfernung eventueller korrupter MSI-Installation.  
		'TWA! funktionierte nicht, es klappt aber mit TWG!  
		objShell.Run strPathMsiZap & " TWG! {B7B3E9B3-FB14-4927-894B-E9124509AF5A}",0,True  
		'Flashplayer 10.0.32.18 Plugin: Entfernung eventueller korrupter MSI-Installation.  
		objShell.Run strPathMsiZap & " TWG! {0DFB3DE8-65B9-44FF-AA0A-3BECC5A2BFD1}",0,True  
		objShell.Run strPathFlashAX & strSilentSwitch1,0,True
		objShell.Run strPathFlashPlugin & strSilentSwitch1,0,True	
		'MsgBox "Erfolgreich deinstalliert"  
	Else
		'MsgBox "Adobe_Flash_Un_Installer: Eine oder mehrere Dateien nicht gefunden."  
		WScript.Quit
	End If
End Function
'###############################################################  
'###############################################################  
Function CopyMmsCfg()
	Set objFSO = CreateObject("Scripting.FileSystemObject")  
	Dim strComputer, objWMIService, colItems, objItem
	Dim strPathSystemDirectory, strPathMmsCfgTarget
	
	strComputer = "."  
	Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
	Set colItems = objWMIService.ExecQuery("Select * From Win32_OperatingSystem")  

	For Each objItem in colItems
		strPathSystemDirectory = objItem.SystemDirectory
	Next
	strPathMmsCfgTarget = strPathSystemDirectory & "\Macromed\Flash\mms.cfg"  
	objFSO.CopyFile strPathMmsCfgSource, strPathMmsCfgTarget, True
		
	'MsgBox "MMS erfolgreich kopiert"  
End Function
'###############################################################  
'###############################################################  

Ich denke, das Skript ist selbsterklärend. Die Logdatei ist essenziell da die Software
nur auf Rechnern installiert wird, deren Name nicht in der Log auftaucht. Nach der
Installation wird der Rechnername in die Logdatei geschrieben. In Zukunft soll der Rechnername
nur dann in die Logdatei kommen, wenn die Installation tatsächlich auch erfolgreich war.
Alle MsgBox sind auskommentiert und können zur Fehlersuche wieder aktiviert werden.

Grüßle,

Kurt