Edit Comment
IT-Stuff, Tutorials, Software, Internet, Unterhaltung Willkommen auf IMA

Flash ist eine weitere Standardsoftware auf den meisten Windows PCs, die regelmäßig aktualisiert werden muss. Also wieder ein Fall für eine Verteilung im Netzwerk. Nach den letzten Deployments [Skype, Java, Reader (Update), Firefox/Thunderbird (Update)] ist die Verteilung von Flash fast ein Kinderspiel.

Anmerkungen

Wie üblich wird zuerst die Version aus der Registry gelesen, überprüft und schlussendlich erfolgt die Installation .exe Dateien:

start /w flash-%version%_IE.exe -install
start /w flash-%version%_OTHER.exe -install

Achtung: Flash muss in 2 verschiedenen Ausführungen installiert werden. Auf der Downloadseite ist die Rede vom Internet Explorer und “Plug-In basierten Browsern”; also praktisch allen anderen Browsern. Daher 2 aufeinanderfolgende Installationen.
In 99% der Fälle bereitet die Installation keine Probleme. Für die restlichen 1% habe ich auch in diese Verteilung Fehlererkennung und ein Retry eingebaut. Die Fehler 1618, 1602 und 1603 resultieren in einem erneuten Installationsversuch 5 Minuten später.

Konfiguration

Nach der Installation wird noch eine Konfigdatei kopiert, die Flash mit einigen wenigen Einstellungen versieht.
mms.cfg:

AutoUpdateDisable=1
SilentAutoUpdateEnable=0
SilentAutoUpdateVerboseLogging=0

flash deployment working dir mms config file scriptbasiertes Flash Deployment im AD – flexibel, angepasste Einstellungen, Logging, Retry
Die Datei könnt ihr natürlich so anpassen, wie ihr die Einstellungen wollt.

Verteilung

Hier das Installer Script für die aktuellste Flash Version:
flash-installer.bat:

@echo off & Color 9f & setlocal

set wd=\\lea\Deployment\Software\Flash
set log=%wd%\flash-log.txt
REM --- Version hier ändern ---
set version=12.0.0.38
REM ---------------------------
set tools=\\lea\Deployment\Sonstiges\tools
set flashieEL=999
set flashplEL=999
set combinedEL=999
set versionEL=999
set instversion=000
set retry=0

REM Clientfilter: nur die Computer aus der allowedPCs.txt dürfen installieren
::for /f %%f in (%wd%\allowedPCs.txt) do if "%computername%"=="%%f" goto check
::goto end

REM Clientfilter: die Computer aus der deniedPCs.txt dürfen nicht installieren
for /f %%f in (%wd%\deniedPCs.txt) do if "%computername%"=="%%f" goto end

:check
REM check installed version
for /f "tokens=1,2,3 delims= " %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayerPlugin" /v "Version"^|findstr "Version"') do set instversion=%%c
if "%instversion%"=="000" goto install
%tools%\VersionCompare.exe %instversion% %version%
set versionEL=%errorlevel%
if "%versionEL%"=="-1" goto install
if "%versionEL%"=="0" echo %date% %time:~0,8% - %computername% hat bereits %instversion% installiert >> %log% & goto end
if "%versionEL%"=="1" echo %date% %time:~0,8% - %computername% hat bereits %instversion% (neu) installiert >> %log% & goto end

:install
echo %date% %time:~0,8% - %computername% (%instversion%) startet die Installation... >> %log%
start /w %wd%\flash-%version%_IE.exe -install
set flashieEL=%errorlevel%
start /w %wd%\flash-%version%_OTHER.exe -install
set flashplEL=%errorlevel%

if %flashieEL%==1618 goto retry REM msiexec process in use, installation already in progress
if %flashieEL%==1602 goto retry REM user canceled installation
if %flashieEL%==1603 goto retry REM fatal error, some use it for "already installed" (eg. java)
if %flashplEL%==1618 goto retry REM msiexec process in use, installation already in progress
if %flashplEL%==1602 goto retry REM user canceled installation
if %flashplEL%==1603 goto retry REM fatal error, some use it for "already installed" (eg. java)
if %flashieEL%==1041 echo %date% %time:~0,8% - %computername% strange 1041 open browser fail, end >> %log% & goto end
if %flashplEL%==1041 echo %date% %time:~0,8% - %computername% strange 1041 open browser fail, end >> %log% & goto end

set combinedEL=%flashieEL%%flashplEL%
echo %date% %time:~0,8% - %computername% hat die Installation abgeschlossen, errorlevel: %combinedEL% >> %log%
goto finish

:retry
if %retry%==1 goto retryfailed
echo %date% %time:~0,8% - %computername% hat nicht Errorlevel 00 erreicht, retry in 5min... >> %log%
set retry=1
ping localhost -n 300 > nul
goto install

:retryfailed
echo _!_ %date% %time:~0,8% - %computername% hat die Installation abgebrochen, RETRY FAILED! EL: %flashieEL% %flashplEL% >> %log%
goto end

:finish
REM copy flash config file for silent background updates
if "%processor_architecture%"=="x86" xcopy "%wd%\mms.cfg" "%systemroot%\System32\Macromed\Flash" /y & goto end
xcopy "%wd%\mms.cfg" "%systemroot%\SysWOW64\Macromed\Flash" /y
xcopy "%wd%\mms.cfg" "%systemroot%\System32\Macromed\Flash" /y
goto end

:end
endlocal

Anpassungen

In dem Script tragt ihr in Zeile 8 immer die gewünschte Version ein und benennt die Installationsdateien nach folgendem Schema um:
flash-[Version]_IE.exe (z.B. flash-12.0.0.38_IE.exe)
flash-[Version]_OTHER.exe (z.B. flash-12.0.0.38_OTHER.exe)
Die Verteilung besteht wie üblich aus den üblichen Verteilungsdateien, eurer angepassten Konfigurationsdatei mms.cfg und den umbenannten Installationsdateien.

Fertig!
script based flash deployment ad gpo files log 460x336 scriptbasiertes Flash Deployment im AD – flexibel, angepasste Einstellungen, Logging, Retry

Weiterführende Links:
Flash Downloads for Deployment
Ivan Dretvic’s Guide zu Flash 11 Deployment via GPO / 11.2 with auto-update
Adobe Flash Player Administration Guide


Datenschutz und Verschlüsselung sind große Themen zurzeit, seit der NSA Story wichtiger als je zuvor. In Zeiten von Whatsapp und Facebook wird trotzdem fröhlich weiter offen kommuniziert. Oftmals werden auch private, geheime oder sicherheitskritische Informationen in diesen Netzwerken verschickt, beispielsweise Bankdaten, Zugänge oder Passwörter.

Was nun aber tun, wenn man eine geheime Information schnell und einmalig an eine andere Person schicken muss?

OneTimeSecret.com! Diese Seite bietet einen unschätzbaren Service an, super einfach zu benutzen.
Informationen eingeben (bis zu 25.000 Zeichen sind möglich), ggf. ein Zugangsschlüssel (“Passphrase”)eingeben, Link generieren lassen.
onetimesecret.com generate secret 460x297 Private/Geheime Informationen einmalig im Internet teilen mit OneTimeSecret.com
Ist der Link erst einmal generiert kann die Information nicht mehr verändert werden. Mit Passphrases verschlüsselte Informationen werden nicht einmal mehr angezeigt.
onetimesecret.com generated secret page 460x250 Private/Geheime Informationen einmalig im Internet teilen mit OneTimeSecret.com
Tipp: speichert euch den Link dieser Seite. später könnt ihr auf dieser Seite erfahren, wann das Geheimnis abgerufen wurde.

Die Information kann nur ein einziges Mal über den generierten Link abgerufen werden. Danach wird sie direkt unwiderruflich gelöscht. Für Geheimnisse, die mit einer Passphrase verschlüsselt wurden, muss der Empfänger des Links natürlich auch die Passphrase erhalten.
onetimesecret.com view secret reply Private/Geheime Informationen einmalig im Internet teilen mit OneTimeSecret.com

Wie gesagt kann der Ersteller des Geheimnisses mit dem gespeicherten Link nach dem Erstellen seines Links jederzeit abfragen, ob seine Information abgerufen wurde.
onetimesecret.com generated secret recieved Private/Geheime Informationen einmalig im Internet teilen mit OneTimeSecret.com

Ich finde die Seite echt super praktisch und ebenso einfach zu benutzen. Ich werde sie bestimmt noch oft gebrauchen. Meine Empfehlung: niemals sensible Informationen in den heutigen Netzwerken oder Kommunikationswegen verteilen. Ein wenig paranoid könnte man eigentlich schon behaupten: Alles ist einsehbar icon wink Private/Geheime Informationen einmalig im Internet teilen mit OneTimeSecret.com


Die aktuelle Version von KMPlayer, Version 3.7, bringt neue Funktionen, leider aber auch neue Schwierigkeiten. Während der Installation wird, relativ unscheinbar, ein Feature namens Pandora TV installiert. Es steht in der Feature-Liste ganz unten.
kmp player 3.7 pandora service installation1 KMPlayer 3.7 mit umstrittenem Pandora TV Service
Pandora TV ist ein Video-Hoster wie Youtube, der vor allem in Korea einen großen Marktanteil hält. Von Pandora gibt es sowohl Software als auch Plugins, die sich leider sehr tief in das System eingraben. KMPlayer scheint ein Kooperation eingegangen zu sein und installiert nun auch Pandora TV Dienste im Rahmen seiner KMP+ Dienste, die direkt an mehreren Stellen im System abgelegt werden.
Ab diesem Moment fängt bei mir der Malwarebytes Anti-Malware Scanner an, ausgehende Verbindungen von einer kmpservice.exe zu der IP 111.111.111.111 zu blockieren; im 60 Sekunden Takt! Außerdem kursieren Gerüchte, dass KMPlayer oder Pandora anhand dieser ständigen Abfragen das Verhalten des Nutzers protokollieren.

Wer ähnliche Probleme hat bzw. wie ich dieses Feature während der Installation weder entdeckt noch deaktiviert hat, hat nun 2 Möglichkeiten:

1. Deinstallation von KMPlayer
Während des Updates von KMPlayer 3.6 auf 3.7 durch den Auto-Updater musste ich 4 oder 5 Adware/Toolbar Installationen abwenden, die standardmäßig mitinstalliert werden. Das ist schon ziemlich heftig. Die dicke Kooperation mit Pandora TV macht mich ebenfalls stutzig.
In einem Bereich wie Video Player Freeware ist das alles Grund genug nach Alternativen zu suchen. Es gibt relativ viele Freeware Player, einige davon bekannter, einige weniger. Daher mal die Frage an meine Leser: Welche Video Player Software nutzt ihr? Habt ihr verschiedene Player für verschiedene Zwecke oder diesen einen perfekten multifunktionalen Player?

2. Deaktivierung und Deinstallation von Pandora
Wer das KMP+ Feature sowie die Pandora Dienste im KMPlayer nicht nutzt, kann diese Dinge deaktivieren bzw. deinstallieren. Dadurch wird der KMPlayer als solches nicht verändert, er funktioniert danach immernoch.

Zuerst empfehle ich die Deaktivierung des Pandora Dienstes. Dies geht ganz normal über die services.msc Dienste Übersicht:
kmp player 3.7 pandora service beenden 460x296 KMPlayer 3.7 mit umstrittenem Pandora TV Service
Anschließend sollte Pandora TV komplett deinstalliert werden. Das Programm erscheint natürlich nicht in der Programme Übersicht von Windows und hat keine Startmenüeinträge, also muss die Deinstallation manuell über die unins000.exe im Ordner
c:\Program Files (x86)\PANDORA.TV\PanService\
bzw.
c:\Program Files\PANDORA.TV\PanService\
gestartet werden.
In diesem Ordner liegen auch die ganzen KMPlayer Dateien, die das Programm zum Dienst befördern: KMPServiceStarter.exe, KMPService.exe, KMPProcess.exe, KMPElevateExecutor.exe. Das klingt schon alles ganz schön heftig dafür, dass der vom Nutzer eingegebene Installationspfad ganz woanders ist.
Nach der Deinstallation sollte Pandora auch aus der Dienste Liste verschwunden sein.
Das müsste reichen um KMPlayer etwas sicherer zu nutzen.


Letzte Woche hatte ich das skriptbasierte Skype Deployment im AD gezeigt. Wie das Glück so will wurde kurz darauf die neue Version 6.11.32.102 freigegeben und ich darf nochmal verteilen. Ich nutze die Gelegenheit um die Vorbereitung und Verteilung des Updates nochmal im Schnelldurchlauf durchzugehen, diesmal sogar mit Bildern! icon smile Skype Update (6.11.32.102) Deployment Kurzfassung

Schritt 1: Download

Auf skype.com/go/getskype-msi gibt es wieder die aktuellste MSI.

Schritt 2: AIP erstellen

msiexec /a SkypeSetup.msi TARGETDIR=c:\skype\6.11

Schon ca. 1 Sekunde nach dem Befehl sollten alle Daten entpackt worden sein:
skype script deployment update install 460x146 Skype Update (6.11.32.102) Deployment Kurzfassung

Schritt 3: MST erstellen/überprüfen (optional)

Anmerkung: Dieser Schritt ist optional, die Installation ist auch ohne MST möglich. Dabei wird dann eine Standardinstallation durchgeführt. Mit msiexec Parametern wie “FEATURE_IEPLUGIN=0 FEATURE_FFPLUGIN=0″ lassen sich bestimmte Einstellungen auch ohne MST anpassen. Mehr Links dazu im originalen Artikel.
MSI mit Orca öffnen, die (von der Version 6.10) bereits existierende MST (Download) anwenden und nachschauen ob alle Änderungen noch stimmen:
skype script deployment update orca msi mst 460x286 Skype Update (6.11.32.102) Deployment Kurzfassung

Schritt 4: Kopieren

Damit die Skriptverteilung mit meinem Deployment Skript (siehe unten) funktioniert, müssen die in Schritt 2 entpackten AIP Installationsdateien sowie die MST aus Schritt 3 in einem bestimmten Ordner liegen.
Und zwar, relativ vom Skype Deployment Ordner gesehen, in einem Unterordner \deploy\[Version], also in diesem Fall:
\\server\Software\Skype\deploy\6.11.32.102\*AIP-Daten*
skype script deployment update dir Skype Update (6.11.32.102) Deployment Kurzfassung

Schritt 5: Deployment

Holt euch das Installationsskript aus meinem Skype Deployment Post, es wurde seit dem nicht verändert.
Dann muss nur noch in Zeile 13 die neue Version “6.11.32.102” eingetragen werden.
Und los gehts!
skype script deployment update log 460x193 Skype Update (6.11.32.102) Deployment Kurzfassung


Skype Deployment via Startscript im AD

Thema heute: Skype Deployment im Active Directory via GPO Startscript.

Ziemlich straight forward eigentlich:

Schritt 1: Download

Es gibt immer die aktuellste MSI unter dieser statischen URL.

Schritt 2: AIP erstellen

Damit könnt ihr dann direkt mit folgendem CMD Befehl in einem temporären Ordner ein AIP erstellen:

msiexec /a SkypeSetup.msi TARGETDIR=c:\skype\6.10

Schritt 3: MST erstellen

Ihr könnt eure eigene MST erstellen (MSI mit Orca öffnet, Transform -> New Transform) oder meine MST hier herunterladen. Meine MST enthält die folgenden Änderungen:
Property -> ProductLanguage: 1031
Property -> ProductLanguageCode: de
Registry -> “Software\Microsoft\Windows\CurrentVersion\Run” gelöscht
Shortcut -> “SkypeDesktopShortcut” gelöscht

Mehr Hinweise zur MSI, MST und den Parametern hier, hier und hier.

Schritt 4: Skript

Nachdem ihr die fertigen AIP Daten auf ein Netzlaufwerk geschoben habt, kann es eigentlich auch schon losgehen mit der Skriptverteilung.
Ein Skript überprüft die Version der installierten Skype Version und patcht dann auf die neue Version falls nötig.
Hier also das install Script:
Stand: 15.01.2014 (Skype 6.11.32.102), working

@echo on && color 9f && setlocal
set wd=\\lea\Deployment\Software\Skype
set log=%wd%\skype.log
set tools=\\lea\Deployment\Sonstiges\tools
set skypedir=none
set skypeEL=999
set instversion=0.0
set versionEL=9
set regEL=999
set exepath=none
set retry=0
REM ######## EDIT THIS ####
set newversion=6.11.32.102
REM #######################

REM insert all sysinternals eula accepts
start /wait "" cmd /c \\lea\Deployment\Sonstiges\sysinternals\sysinternalseulaaccept.bat

REM Clientfilter: nur die Computer aus der allowedPCs.txt dürfen installieren
::for /f %%f in (%wd%\allowedPCs.txt) do if "%computername%"=="%%f" goto check
::goto end

REM Clientfilter: die Computer aus der deniedPCs.txt dürfen nicht installieren
for /f %%f in (%wd%\deniedPCs.txt) do if "%computername%"=="%%f" goto end

:check
if exist "c:\Program Files\Skype\Phone\skype.exe" set exepath="c:\Program Files\Skype\Phone\skype.exe"
if exist "c:\Program Files (x86)\Skype\Phone\skype.exe" set exepath="c:\Program Files (x86)\Skype\Phone\skype.exe"
if %exepath%==none goto install
goto checkversion

:checkversion
for /f "tokens=1-3" %%i in ('%tools%\sigcheck %exepath%') do ( if "%%i %%j"=="File version:" set instversion=%%k )
%tools%\VersionCompare.exe %instversion% %newversion%
set versionEL=%errorlevel%
if "%versionEL%"=="-1" goto install
if "%versionEL%"=="0" echo %date% %time:~0,8% - %computername% hat bereits %instversion% installiert >> %log% & goto end
if "%versionEL%"=="1" echo %date% %time:~0,8% - %computername% hat bereits %instversion% (neuer) installiert >> %log% & goto end

:install
echo %date% %time:~0,8% - %computername% installiert... >> %log%
msiexec.exe /i %wd%\deploy\%newversion%\SkypeSetup.msi /qn /norestart TRANSFORMS=%wd%\deploy\%newversion%\DE-norun-nodesktopshortcut.mst FEATURE_IEPLUGIN=0 FEATURE_FFPLUGIN=0
set skypeEL=%errorlevel%
if %skypeEL%==1618 goto retry REM msiexec process in use, installation already in progress (eg. windows updates running)
if %skypeEL%==1602 goto retry REM user canceled installation (eg. taskkill)
if %skypeEL%==1603 goto retry REM fatal error, some use it for "already installed" (eg. java)
if %skypeEL%==1638 goto uninstall REM another product is already installed, denies an update
echo %date% %time:~0,8% - %computername% hat Version %newversion% mit EL %skypeEL% abgeschlossen >> %log%
if %processor_architecture%==x86 goto reg32
if %processor_architecture%==AMD64 goto reg64
goto end

:retry
if %retry%==1 goto retryfailed
echo %date% %time:~0,8% - %computername% hatte den Fehler %skypeEL%, retry in 5min... >> %log%
set retry=1
REM 5 Minuten warten
ping localhost -n 300 > nul
goto install

:retryfailed
echo _!_ %date% %time:~0,8% - %computername% hat die Installation abgebrochen, RETRY FAILED! >> %log%
goto end

:uninstall
if %retry%==1 goto retryfailed
echo %date% %time:~0,8% - %computername% deinstalliert Version %instversion% aufgrund EL 1638 Fehler... >> %log%
msiexec /x {1845470B-EB14-4ABC-835B-E36C693DC07D} /qn /norestart
echo %date% %time:~0,8% - %computername% - %instversion% deinstalliert, retry... >> %log%
set retry=1
goto install

:reg32
%COMSPEC% /C reg add "HKLM\Software\Policies\Skype\Phone" /v "DisableVersionCheck" /d "1" /t REG_DWORD /f
set regEL=%errorlevel%
%COMSPEC% /C reg add "HKLM\Software\Policies\Skype\Phone" /v "DisableSupernode" /d "1" /t REG_DWORD /f
set regEL=%regEL%%errorlevel%
echo %date% %time:~0,8% - %computername% hat die (32bit) Reg Keys mit EL %regEL% importiert >> %log%
goto end

:reg64
%COMSPEC% /C reg add "HKLM\Software\Wow6432Node\Policies\Skype\Phone" /v "DisableVersionCheck" /d "1" /t REG_DWORD /f
set regEL=%errorlevel%
%COMSPEC% /C reg add "HKLM\Software\Wow6432Node\Policies\Skype\Phone" /v "DisableSupernode" /d "1" /t REG_DWORD /f
set regEL=%regEL%%errorlevel%
echo %date% %time:~0,8% - %computername% hat die (64bit) Reg Keys mit EL %regEL% importiert >> %log%
goto end

:end
endlocal

Hm ja, wurschtelt euch durch, hier die Key-Features kurz gefasst:
Sysinternals EULA Accept (siehe unten)
Clientfilter
– Versionsüberprüfung anhand der .exe (32bit/64bit angepasst) mit Sigcheck statt per Registry. Ich bin mir noch unsicher ob ich in Zukunft auf die .exe oder Registry setze
skype script deployment version 460x115 Skype Deployment via Startscript im AD
– Versionsvergleich mit versioncompare.exe
– Installation per MSI mit einer MST Anpassung für: Allusers, kein Desktop Shortcut, kein Autorun, deutsche Sprache.
- Fehlermanagement für typische Fehler: 1618, 1602 und 1603 mit 5 Minuten warten Retry und 1638 mit Uninstall und Retry. Der Uninstall Product Code müsste für Skype 5.9 und aufwärts stimmen
– Registry Key Imports für no-Autoupdate und “DisableSupernode”, was auch immer das ist, sieht man aber sehr häufig, 32bit/64bit angepasst
– alles wird gut in einer Logdatei festgehalten (siehe unten)

Die in Zeile 17 verwendete sysinternalseulaaccept.bat gebe ich euch auch noch. Sie bewirkt, dass die Sysinternals Tools benutzt werden können, ohne, dass das “EULA akzeptieren” Popup erscheint. Denn ich glaube, dass die Tools sich per Kommandozeile nicht verwenden lassen, solange man nicht diese EULA einmal händisch akzeptiert hat. Nach dem Ausführen dieser Batch Datei sollte das keine Probleme mehr machen.

REM  Thanks: Peter Hahndorf
REM  URL: http://peter.hahndorf.eu/blog/2010/03/07/WorkAroundSysinternalsLicensePopups.aspx

reg.exe ADD "HKCU\Software\Sysinternals\AccessChk" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\AccessEnum" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\AdExplorer" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\AdInsight" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\AdRestore" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\Autologon" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\Autoruns" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\BgInfo" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\BlueScreen" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\CacheSet" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\ClockRes" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\Contig" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\Coreinfo" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\Ctrl2cap" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\DebugView" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\Desktops" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\Disk Usage" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\Disk2vhd" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\DiskExt" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\Diskmon" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\DiskView" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\EFSDump" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\Handle" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\Hex2dec" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\Junction" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\LDMDump" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\ListDLLs" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\LiveKd" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\LoadOrder" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\LogonSessions" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\MoveFile" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\NTFSInfo" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\PageDefrag" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\PendMoves" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\PipeList" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\PortMon" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\ProcDump" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\Process Explorer" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\Process Monitor" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\ProcFeatures" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\PsExec" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\PsFile" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\PsGetSid" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\PsInfo" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\PsKill" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\PsList" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\PsLoggedOn" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\PsLogList" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\PsPasswd" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\PsService" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\PsShutdown" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\PsSuspend" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\PsTools" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\RAMMap" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\RegDelNull" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\RegJump" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\RootkitRevealer" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\SDelete" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\ShareEnum" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\ShellRunas" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\Sigcheck" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\Streams" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\Strings" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\Sync" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\TCPView" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\VMMap" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\VolumeId" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\Whois" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\WinObj" /v EulaAccepted /t REG_DWORD /d 1 /f
reg.exe ADD "HKCU\Software\Sysinternals\ZoomIt" /v EulaAccepted /t REG_DWORD /d 1 /f
exit

Sie muss eigentlich nur einmal pro PC ausgeführt werden, danach sind die Reg Keys ja drin. Jedoch dauert die Ausführung eh nur 1-2 Sekunden, eine Überprüfung würde da kaum Sinn machen.

Hier ein Auszug aus der Logdatei:
skype script deployment log 460x274 Skype Deployment via Startscript im AD
Hier sieht man gut die verschiedenen Abläufe:

  • Rechner 60, 42 und 28 deinstallieren zuerst eine alte Version, bei der die Installation der neuen Version mit Fehlercode 1638 abbrach. Nach der Deinstallation erfolgt die Neuinstallation problemfrei.
  • Rechner 9 und 54 haben bereits diese oder eine neuere Version installiert.
  • Und der Rechner 36 hatte eine ältere Version installiert, die ohne Deinstallation erfolgreich aktualisiert werden konnte.

Somit wurden bisher alle Computer letztendlich mit Errorlevel 0 erfolgreich bedient.

Download

Ich habe mal alle nötigen Dateien zu einem Download zusammengefasst:
skype script deployment download Skype Deployment via Startscript im AD
download b Skype Deployment via Startscript im AD
skype [.zip]


Im Windows Netzwerk Schriftarten zu verteilen war komplexer als gedacht. Daher möchte ich mal oberflächlich die möglichen Verteilungsmethoden erläutern und meine Empfehlung geben.
Ziel ist die Verteilung (also Installation zur Verwendung) von Schriftarten in Windows Netzwerken über Gruppenrichtlinien.
 Schriftarten im Netzwerk verteilen mit Batch, GPO, VBS

Dafür gibt es verschiedene Methoden: Batch, GPO, VBS.

Batch

REM alle Schriftarten aus dem fonts Unterordner in den Fonts Systemordner kopieren
xcopy fonts\*.* "%windir%\Fonts\" /v /c /l /y /i
REM jede Schriftart einzeln in der Registry anmelden
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "OpenSans-Bold (True Type)" /t REG_SZ /d "OpenSans-Bold.ttf" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "OpenSans-BoldItalic (True Type)" /t REG_SZ /d "OpenSans-BoldItalic.ttf" /f
...

Der Registry Befehl muss für jede gewünschte Schriftart ausgeführt werden.

GPO

Wie schon GPO Meister Heitbrink erklärt hat:
In der Gruppenrichtlinie unter Computerkonfiguration\Einstellungen\Windows-Einstellungen\Dateien folgende Einstellung für jede Schriftart erstellen:
schriftarten über das netzwerk verteilen mit batch gpo vbs register font file gpo Schriftarten im Netzwerk verteilen mit Batch, GPO, VBS
In der Quelle bitte den korrekten \\server\pfad\ angeben. Dadurch werden die Schriften in den Windows Ordner kopiert.

Nun noch in Computerkonfiguration\Einstellungen\Windows-Einstellungen\Registry folgende Einstellungen, ebenfalls einmal pro Schriftart:
schriftarten über das netzwerk verteilen mit batch gpo vbs copy font file gpo Schriftarten im Netzwerk verteilen mit Batch, GPO, VBS
Den Registry Pfad so übernehmen wie auf dem Bild, “Name” enthält den Anzeigenamen innerhalb von Programmen, bei der Fontdatei kein Pfad mehr davor packen, nur der Dateiname.

Nachteil

Beide Lösungen sind nicht sehr aufwändig, 2 Batch Befehle bzw. 2 GPO Einstellungen, simpel. Viel eher hat es den Nachteil, dass man bei einer größeren Menge an Schriftarten dann doch recht viel zu tun hat. 20 Schriftarten? Das bedeutet viel rumgetippe.
Besser ist in diesem Fall folgende Lösung:

VBS

Dieses VBS installiert alle Fontdateien, die sich im selben Ordner befinden.

' gebastelt mit Hilfe von:
' http://superuser.com/questions/201896/how-do-i-install-a-font-from-the-windows-command-prompt
' http://forum.chip.de/c-visual-basic-net/vbs-if-file-exists-then-starts-program-1550358.html

Set ofso = CreateObject("Scripting.FileSystemObject")
Set shell = CreateObject("WScript.Shell")
SourceFolder = ofso.GetParentFolderName(Wscript.ScriptFullName)

Const FONTS = &H14&

Set objShell  = CreateObject("Shell.Application")
Set oSource   = objShell.Namespace(SourceFolder)
Set oWinFonts = objShell.Namespace(FONTS)
sFontFolder   = shell.ExpandEnvironmentStrings("%windir%") & "\Fonts\"

' Lame VBscript needs 4 f*ing lines instead of "if (/\.ttf$/i) " ...
Set rxTTF = New RegExp
rxTTF.IgnoreCase = True
rxTTF.Pattern = "\.ttf$"

FOR EACH FontFile IN oSource.Items()
    IF rxTTF.Test(FontFile.Path) THEN
		IF NOT ofso.FileExists(sFontFolder & FontFile) THEN
			oWinFonts.CopyHere FontFile.Path
		END IF
    END IF
NEXT

Die Einbindung in das Netzwerk könnte direkt als Startscript erfolgen. Wenn man jedoch einen leichten Überblick haben möchte, welche Computer die Schriften schon installiert haben, empfiehlt sich dieses Script:

@echo on & color 9f & setlocal
set wd=\\server\Deployment\Sonstiges\fonts
set log=%wd%\fonts.log

echo %date% %time:~0,8% - %computername% startet die Fontinstallation >> %log%

start /wait "" cmd /c cscript //nologo "%wd%\fonts\install-all-fonts.vbs"

REM eine Schriftart als Test überprüfen
if exist "%windir%\fonts\OpenSans-SemiboldItalic.ttf" echo %date% %time:~0,8% - %computername% hat die Schriften installiert >> %log%

:end
endlocal

Das Script loggt Start und Ende der Schriftinstallation und prüft die erfolgreiche Installation mit 1 beliebigen Schriftart.

Ein Neustart muss aber auch bei dieser Methode sein.


Dieser Artikel soll nochmal als eine Kurzfassung meines kürzlich veröffentlichten Reader Deployment Guides, inklusive einer Anleitung für das Update der Verteilung auf Version 11.0.05, die kürzlich veröffentlicht wurde.
 Adobe Reader Deployment aktualisieren   Update (11.0.05) verteilen

Die Schritte bleiben sehr ähnlich:

Schritt 1: Installer laden

Beachtet, dass das Update 11.0.04 als Grundlage braucht. Also holt euch 11.0.0, 11.0.04 und 11.0.05.
you know how…

Schritt 2: AIP lokal erstellen

msiexec /a AcroRead.msi
und einen lokalen Pfad angeben (z.B. “C:\Reader11.0.0mui”)

Schritt 3: Patchen

Erst 11.0.04 integrieren, dann 11.0.05:

X:\Software\Reader\installer>cd 11.0.04.63-mui
X:\Software\Reader\installer\11.0.04.63-mui>msiexec /a "C:\Reader11.0.0mui\AcroRead.msi" /p "AdbeRdrUpd11004_MUI.msp"
X:\Software\Reader\installer\11.0.04.63-mui>cd..
X:\Software\Reader\installer>cd 11.0.05-all
X:\Software\Reader\installer\11.0.05-all>msiexec /a "C:\Reader11.0.0mui\AcroRead.msi" /p "AdbeRdrSecUpd11005.msp"

adobe reader 11 0 05 update deployment install 460x163 Adobe Reader Deployment aktualisieren   Update (11.0.05) verteilen

Schritt 4: Customization Wizard

Mit dem Customization Wizard die .msi bearbeiten und speichern. Wenn dabei ein setup.ini Fehler kommt, einfach eine leere setup.ini im selben Ordner wie die Installation erstellen, der Wizard füllt die dann.
adobe reader 11 0 05 update deployment customization wizard 460x219 Adobe Reader Deployment aktualisieren   Update (11.0.05) verteilen

Schritt 5: MST Eigenschaften überprüfen

Wie schon im letzten Artikel erwähnt, kann es sein, dass trotz Customization Wizard Anpassung einige Einstellungen der MST nicht ganz stimmen und dadurch z.B. die Sprache nicht korrekt auf Deutsch gestellt wird.
Öffnet also die Installationsdatei .msi und ladet die angepasste .mst Datei mit Orca über Transform -> “Apply Transform” ein.
Überprüft in der Property Tabelle folgende Wertepaare:

Property alter Wert neuer Wert
ProductLanguage 1033 1031
ISLANGFLAG ENU DEU
ProductCode {AC76BA86-7AD7-FFFF-7B44-AB0000000001} {AC76BA86-7AD7-1031-7B44-AB0000000001}
AgreeToLicense No Yes
ENABLE_CACHE_FILES Yes No
EULA_ACCEPT No Yes
RebootYesNo Yes No

Schritt 6: Deployment

Nun könnt ihr dieses fertig geschnürte Paket in den deploy/[version] Ordner ablegen und das Verteilungsscript (siehe Deployment Artikel) anpassen, damit die neue Version verteilt wird. Dazu reicht es, die neue Version (muss dem Ordnernamen im deploy Ordner entsprechen) in Zeile 11 einzutragen.

Fertig!
Dieser Prozess, inklusive Tests auf einigen Rechnern, dauerte bei mir weniger als 30 Minuten. Ein Update ist also relativ schnell eingespielt.




Translator

Categories

Admin

Sie möchten hier werben oder Sponsor auf längere Zeit werden? Ich garantiere Ihnen unschlagbare Preise bei meinen Besucherzahlen. Egal ob Banner, Textlinks oder andere Werbeformen. Informieren Sie sich bei mir unter werbung@hannes-schurig.de