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\

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:
Update 17.03.2016: – Version 7.21 getestet und läuft.
Das im Skript verwendete Programm VersionCompare ist eine Eigenprogrammierung und hier als Download verfügbar.

@echo off && 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=7.21
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 taskkill
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 taskkill
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

:taskkill
start /wait "" cmd /c  %exepath% /shutdown
taskkill /F /IM Skype.exe
taskkill /F /IM SkypePM.exe
goto install

:install
echo %date% %time:~0,8% - %computername% installiert... >> %log%
::msiexec.exe /i %wd%\deploy\%newversion%\SkypeSetup.msi /qn /norestart FEATURE_IEPLUGIN=0 FEATURE_FFPLUGIN=0
msiexec.exe /i %wd%\deploy\%newversion%\SkypeSetup.msi /qn /norestart
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
if %skypeEL%==1625 goto uninstall REM:: skype installer sometimes threw this one, don't know why
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 500Sek... >> %log%
set retry=1
REM:: 5 Minuten warten
ping localhost -n 500 > nul
goto taskkill

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

:uninstall
if %retry%==1 goto retryfailed
start /wait "" cmd /c  %exepath% /shutdown
taskkill /F /IM Skype.exe
taskkill /F /IM SkypePM.exe
echo %date% %time:~0,8% - %computername% deinstalliert Version %instversion% aufgrund EL 1638/1625 Fehler... >> %log%
msiexec /qn /norestart /X{1845470B-EB14-4ABC-835B-E36C693DC07D}
msiexec /qn /norestart /X{744A328E-3CC5-4008-BC6E-97C8FB3EAAF8}
msiexec /qn /norestart /X{E633D396-5188-4E9D-8F6B-BFB8BF3467E8}
wmic product where "name like 'Skype%%'" call uninstall /nointeractive
wmic product where "name like 'Skype(tm)%%'" call uninstall /nointeractive
echo %date% %time:~0,8% - %computername% - %instversion% deinstalliert, retry... >> %log%
set retry=1
goto taskkill

: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
exit

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
– 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 ergeben.

Hier ein Auszug aus der Logdatei:
skype-script-deployment-log
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
Download section
skype [.zip]

Ziel ist es, die aktuellste Version Adobe Reader auf allen Computern eines AD Netzwerks zu verteilen. Es handelt sich um die Version 11.0.10 (Update 13.3.2015), die speziell angepasst (deutsche Sprache, keine EULA, paar Features deaktiviert) installiert werden soll. Da ich bei diesem Prozess auf verschiedenste Fehler und Probleme stieß, werde ich die Verteilung hier detailliert erläutern.

Seit 2010/2011 gibt es ja den Hintergrundupdater in Adobe Produkten. Eigentlich gehören Verteilungen dieser Art also der Geschichte an. Jedoch kann es trotzdem notwendig werden, wenn erstmal eine Basis geschaffen werden muss, weil beispielsweise kein einheitlicher Standard des Produkts installiert ist. Einige haben Version X, andere Version Y, einige PCs haben die Software nicht einmal installiert. In diesem Fall ist ein komplettes Rollup inklusive Cleaning, also Deinstallation aller Versionen vor der Verteilung, sinnvoll und empfehlenswert.

Wie üblich gibt es mehrere Herangehensweisen, bei Adobe habe ich im Laufe der Jahre folgende Methode als sicherste empfunden:
Installer laden -> AIP lokal erstellen -> Patches slipstreamen -> mit Customization Wizard anpassen -> mit Orca optimieren -> Verteilen,
wobei der Verteilen-Punkt je nach Produkt und Situation natürlich zwischen Script oder GPO Installation unterschieden wird.
Das hier sagt Adobe zu den „Best Practices“.

Schritt 1: Installer laden

Adobe bietet für ihre Produkte teilsweise 2 verschiedene Downloadseiten an. Die typisch einfache Seite und die Seite für Administratoren, hier am Beispiel vom Reader (bei Acrobat ist das ebenfalls so).
adobe-reader-scriptbased-deployment-mst-changes-cleaning-logging-installerIhr braucht natürlich das komplette Paket: 11.0.0 Basis plus aktuellstes Update, am besten in der MUI Variante.
Für die Pro’s auch ohne viel Schickschnack via FTP.

Schritt 2: AIP erstellen

Falls die Grundversion (z.B. 11.0.0) eine .zip Datei war, entpackt diese. Geht per CMD in diesen Ordner und führt den Befehl

msiexec /a "AcroRead.msi"

Der Installer startet, installiert am besten lokal, C:/Reader11/ oder so. AIP fertig!

Schritt 3: Patches integrieren

Geht per CMD in den Ordner des Updates und führt den Befehl aus:

msiexec /a "C:\Reader11\AcroRead.msi" /p "AdbeRdrUpd11004_MUI.msp"

(ihr müsst natürlich Pfade und Dateinamen entsprechend anpassen…)
Der grafische Installer für den Patch erscheint, durchklicken, fertig. Verfahrt so mit allen Patches, wenn ihr mehrere habt. Für gewöhnlich lässt sich aber das aktuellste Update auf die Basisversion anwenden, mehr dazu steht auf der Detailseite des Updates bei den „Installation Instructions“ („This update requires that Adobe Reader 11.0 MUI or later is installed on your system.“).
adobe-reader-scriptbased-deployment-mst-changes-cleaning-logging-update-slipstream

Schritt 4: mit dem Customization Wizard anpassen

Wie bei Acrobat kann man auch den Reader mit dem Adobe Customization Wizard anpassen:
adobe-reader-scriptbased-deployment-mst-changes-cleaning-logging-customization-wizard
EULA deaktivieren, Sprache wählen, Deinstallation alter Versionen aktivieren, paar Online Features deaktivieren, Shortcuts anpassen, tobt euch aus und speichert das Ergebnis als MST Anpassungsdatei ab.

Fertig, ihr habt jetzt eine geupdatete AIP Installation, C:/Reader11. Die könnt ihr auf das Netzlaufwerk schieben. Dazu die gerade erstellte MST. Beides zusammen könnt ihr nun Verteilen. Entweder via GPO Softwareinstallation oder per Script. Letzteres bevorzuge ich aus Gründen der Funktionalität.
Kommen wir also zum letzten Schritt.

Schritt 5: Verteilung via Script

Hier wird es nochmal spannend.
Das Installer-Script
– hat einen Clientfilter, kann also einzelne Rechner zulassen oder ignorieren
– räumt alte Reader Installationen auf (Version 9 und 10) – siehe Acrobat & Reader Cleaner Tools
– besitzt umfangreiche Logging-Möglichkeiten
reagiert auf die Fehlercodes 1618 (Installer Prozess wird gerade verwendet), 1602 (Installation vom Nutzer abgebrochen) und 1603 (Installationsfehler) mit einem Retry nach 5 Minuten

Update: 28.07.2015 Version 11.0.12, getestet und läuft.

@echo on & Color 9f & setlocal
set wd=\\server\Deployment\Software\Reader
set log=%wd%\reader-log.txt
set readerEL=999
set retry=0
set forcecleanup=yes
REM:: ******************
set version=11.0.12
REM:: ******************

REM:: Clientfilter: nur die Computer aus der allowedPCs.txt dürfen installieren
::for /f %%f in (%wd%\allowedPCs.txt) do if "%computername%"=="%%f" goto start
::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

:start
if not exist %wd%\deploy\%version%\complete md %wd%\deploy\%version%\complete
if exist %wd%\deploy\%version%\complete\%computername% goto end

if "%forcecleanup%"=="yes" goto cleanup
goto install

:cleanup
echo %date% %time:~0,8% - %computername% deinstalliert alle Reader Versionen... >> %log%
REM:: uninstall all reader versions
start /w %wd%\cleaner\reader-cleaner-9.exe /silent /product=1
start /w %wd%\cleaner\reader-cleaner-10-above.exe /silent /product=1
echo %date% %time:~0,8% - %computername% hat alle Reader Versionen deinstalliert... >> %log%
goto install

:install
echo %date% %time:~0,8% - %computername% startet die Installation... >> %log%
start /w msiexec /i "%wd%\deploy\%version%\AcroRead.msi" /qn TRANSFORMS="%wd%\deploy\%version%\AcroRead.mst"
set readerEL=%errorlevel%

if %readerEL%==1618 goto retry REM:: msiexec process in use, installation already in progress
if %readerEL%==1602 goto retry REM:: user canceled installation
if %readerEL%==1603 goto retry REM:: fatal error, some use it for "already installed" (eg. java)
echo %date% %time:~0,8% - %computername% hat die Installation abgeschlossen, Errorlevel: %readerEL%... >> %log%
if %readerEL%==0 md %wd%\deploy\%version%\complete\%computername%
goto end

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

:retryfailed
echo %date% %time:~0,8% - %computername% hat die Installation abgeschlossen, Errorlevel: %readerEL%, retry failed, end >> %log%
goto end

:end
endlocal
exit

Damit das Script funktioniert, braucht ihr allerdings eine spezielle Ordnerstruktur. Ich skizziere sie mal eben schriftlich, ggf. mit Dateien:
Reader\cleaner\reader-cleaner-10-above.exe (Cleanup Tools, umbenannt)
Reader\cleaner\reader-cleaner-9.exe (Cleanup Tools, umbenannt)
Reader\deploy\[version](die in der Batch als Variable gesetzt wird)\[Dateien: AIP,.mst,usw]
Reader\deploy\[version]\complete\

Wenn ihr also in der Batch beispielsweise die Version 11.0.04.63 verteilen wollt, tragt die Version in Zeile 11 so ein und der Ordner lautet:
Reader\deploy\11.0.04.63\
adobe-reader-scriptbased-deployment-mst-changes-cleaning-logging-deploy-dir

Hier ein Beispielausschnitt der Logdatei:
adobe-reader-scriptbased-deployment-mst-changes-cleaning-logging-logfile

Probleme mit der Sprache?

acrobat-multilanguage-testsIst das Produkt trotz Anpassung nicht auf Deutsch? Das Problem hatte ich auch und habe einige Stunden mit verschiedensten Tests an der MST, der setup.ini und den MSI Parametern verbracht. So richtig klar wurde mir das alles nicht, ich habe nun aber einige Anpassungstipps, die das Sprachproblem beheben sollten. Lest vorher nochmal die paar Infos des Admin Guides zu den Sprachen, das erleichtert das Verständnis der folgenden Punkte.

Also, MSI in Orca laden, über Transform -> „Apply Transform“ die angepasste MST des Customization Wizards laden und ab in die Property Tabelle.
(Das ginge übrigens auch über den Customization Wizard -> Direct Editor)
Schaut hier nach folgenden Schlüsseln und passt diese ggf. an, um die deutsche Sprache einzustellen:

Propertyalter Wertneuer Wert
ProductLanguage10331031
ISLANGFLAGen_USde_DE
ProductCode{AC76BA86-7AD7-FFFF-7B44-AB0000000001}{AC76BA86-7AD7-1031-7B44-AB0000000001}

(zum Product Code lest bitte den Admin Guide)
Speichert diese Anpassungen über Transform -> Generate Transform am besten in einer seperaten MST.

Editiert dann die setup.ini vorsichthalber, sodass sie nur noch die deutsche Sprache und die neue Transorm enthält:
adobe-reader-scriptbased-deployment-mst-changes-cleaning-logging-setup-ini

[Product]
msi=AcroRead.msi
Languages=1031
1031=German (Germany)	
CmdLine=TRANSFORMS="AcroRead-deu.mst"

Installiert dann den Reader entsprechend dem oben gezeigten Script, dann sollte die Installation die Anpassungen der MST beinhalten und auf deutsch sein.

Kürzer, schneller, härter

Die richtigen Pro’s werden bei den ersten Schritten den Kopf schütteln, „das geht ja alles viel einfacher, schneller, in weniger Schritten“ usw.
Ja, man kann die Anpassungen, AIP und Patches mit viel weniger Schritten abarbeiten. Der Admin Guide hat an vielen Stellen diese komplizierteren Schritte beschrieben.
2 Beispiele:
Gleich am Anfang nach dem Download per Customization Wizard die Version angepasst und dann direkt diesen Befehl genutzt:

msiexec /i AcroRead.msi PATCH="AdbeRdrUpd11001.msp; AdbeRdrSecUpd11002.msp" TRANSFORMS="AcroRead.mst"

Damit wird der angepasste Reader installiert und daraufhin mit den Patches versehen. Mehrere Patches lassen sich wie gezeigt aneinanderreihen, die Pfade sollte man lieber noch ergänzen; habe ich der Übersicht wegen weggelassen.
Oder: alternativ kann man ohne Anpassung auch die wichtigsten Eigenschaften direkt bei der Installation mit den Property-Parametern setzen:

msiexec /i AcroRead.msi PATCH="AdbeRdrUpd11004_MUI.msp" LANG_LIST=de_DE SUPPRESSLANGSELECTION=1 REMOVE_PREVIOUS=YES EULA_ACCEPT=YES SYNCHRONIZER=NO

Die CMD Möglichkeiten beim Erstellen des AIP und der Installation sind vielfältig, aber benötigen auch weit mehr Expertise.
Außerdem machen sie die Fehlersuche viel komplizierter, sollte es während eines 1-Liner zu einem Fehler kommen.
Ich war deswegen immer der Freund von ausführlichen Schritt-für-Schritt Herangehensweisen. Entscheidet selbst.


Ja, es ist mal wieder soweit, Dropbox verschenkt Speicherplatz. Caschy berichtete.
Es gibt insgesamt 5GB für das Testen der neuen Beta Version + Upload Feature!.
Tipp: hier gibts weitere 2GB for free.

Das Vorgehen ist nicht ganz so trivial. Deswegen hat Tobi von Antary auch nochmal eine kurzgefasste Anleitung geschrieben, mit der diese 5GB im Handumdrehen gutgeschrieben sind. Ich erlaube mir mal eine Kopie mit einigen Ergänzungen:

Hinweis: Seit Ende Februar werden nur noch bis zu 3GB vergeben, nicht mehr 5GB.
  1. Dropbox 1.3.13 herunterladen (alternativ Mac OS X, Linux, Linux x64) und installieren
  2. Einen USB-Stick anstecken und mit NTFS formatieren
    Tip für Mac Nutzer: den Stick mit exFAT formatieren, DCIM Ordner erstellen und die IMG datei entpackt reinkopieren. Danach funktioniert es wie beschrieben.
  3. Einen Ordner mit dem Namen “DCIM” auf dem USB-Stick erstellen
  4. Das “4,4-GB-Bild” herunterladen und in den erstellten Ordner “DCIM” entpacken
  5. USB-Stick abziehen und erneut anstecken, auf das Autoplay Fenster warten (ggf. vorher Autoplay aktivieren, siehe FAQ)
  6. Im Autoplay-Menü die Option “Import pictures and videos” wählen
  7. Dropbox wird jetzt den Stick ca. 7 Minuten lang nach Bildern und Videos scannen und dann die 1 Bilddatei etwa 5 Minuten lang indizieren, so lange müsst ihr geduldig warten.
  8. Es ist möglich dass am Ende sowas kommt wie „Dropbox ist voll“ und es wird etwas angezeigt wie „160% von 4GB verwendet“ oder so. Das wird wenige Minuten später aktualisiert und ihr bekommt euren Speicherplatz, nur die Ruhe.
  9. Jetzt könnt ihr den „Camera Imports“ Ordner wieder löschen und 4,5/5 leere GB stehen euch zur Verfügung 😉

Letztendlich ist es soweit, +4,5GB:

Die restlichen 500MB bekam ich als ich tatsächlich meine Kamera ansteckte und meine letzten Urlaubsfotos importierte. Nach 3, 4 hochgeladenen Fotos wurden mir 500MB zugeschrieben. Das habe ich noch vor dem 4,5GB Trick gemacht. Somit sind die 5GB komplett! 🙂

Update: Ich bekam soeben nochmal 500MB. Ich weiß nicht ganz wofür. Dropbox war voll, die 8,5GB wurden gerade mit Urlaubsfotos meiner Kamera überschwemmt. Ich hab den „Camera Uploads“ Ordner gelöscht, eigentlich brauchte ich die Urlaubsfotos ja nicht. Da noch nicht alle Fotos von der Kamera hochgeladen waren wurde der Upload fröhlich im Hintergrund fortgesetzt, ich habe ihn einfach nicht abgebrochen. Und plötzlich wurde ich auf 9GB angehoben.
Also, nach dem Trick den „Camera Uploads“ Ordner löschen und am besten von ner echten Kamera gleich nochmal Fotos importieren, bis die Dropbox wieder voll ist. Dauert je nach Upload Speed etwas länger aber ggf. bekommt ihr nochmal 500MB. Alternativ den DCIM Ordner des Sticks mit echten Bildern füllen statt dem 4,4GB „Bild“ und dann import starten.

FAQ

1) Ich habe keinen so großen USB Stick, SD Karte oder sonstigen Wechseldatenträger, geht es nicht auch anders?
Jain. Ja, es geht tatsächlich auch ohne das Formatieren des geliebten Sticks oder ohne jegliche Datenträger. Jedoch dauert der Vorgang länger weil ihr tatsächlich über 4GB echte Fotos in die Dropbox hochladen müsst. Je nach Upload Speed kann das eine ganze Nacht dauern.
Nice-to-have: Erstellt euch ein (Double Layer) DVD Image mit der 4,4GB Bilddatei als Inhalt. Nutzt dazu z.B. „Free ISO Creator„; nur 1MB groß, schnell installiert und funktioniert 1A.
Das Problem: ich habe es mit 3 Tools versucht, eine Datei dieser Größe scheint sich nicht in ein ISO Image integrieren zu lassen.
Meine Lösung: packt tatsächlich 4-5GB Fotos (ja das wäre durchaus eine Menge…) in ein DVD Image.
Mountet nun das Image mit Daemon Tools Lite oder einer anderen Image Software und nun könnt ihr Dropbox auch auf diese virtuelle DVD hetzen, funktioniert ebenfalls.

Wie gesagt der Nachteil: Dropbox muss nun tatsächlich 4-5GB Bilder in euren Dropbox Speicher hochladen (dabei wird euer Speicherplatz vermutlich in 500MB Schritten vergrößert immer wenn er voll ist) und das dauert bei 100kb/s ganze 11 Stunden. Also am Abend anschmeißen und über Nacht laufen lassen 😉

2) Autoplay ist bei mir nicht aktiviert/erkennt den USB Stick nicht. Was tun?
Start -> Systemsteuerung -> Automatische Wiedergabe -> Häkchen ganz oben muss gesetzt sein, damit Autoplay aktiv ist. Ggf. nachm aktivieren erst neustarten.

3) Autoplay läuft immernoch nicht. Was tun?
Wenn Autoplay trotz Systemsteuerung nicht greift dann wurde vermutlich die Registry verändert. Öffnet in regedit folgenden Key:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
Hier müsste das Attribut „NoDriveTypeAutoRun“ den hexadezimalen Wert 91 (dezimal 145) besitzen. Ist das nicht so, z.B. 0xFF (255), dann setzt den Wert auf 91 (hexadezimal).
Wieder Neustart.

4) Geht es auch ohne das Autoplay Feature von Windows?
Laut Screenshot eines Kommentars bei Tobi ist dieses Dropbox Feature auch in den Hardware Eigenschaften bestimmter Geräte implementiert.
Start -> Geräte und Drucker -> Kamera doppelklicken

5) Dropbox meldet „Failed to upload 1 of 1 file“ weil nicht genug Speicherplatz vorhanden sei. Was tun?
Natürlich habt ihr (vermutlich) keine 4GB freien Dropbox Speicher, trotzdem sollte das Importieren dieses Bilder funktionieren. Tut es nicht? Bei mir anfangs auch nicht. Ich habe es an diesem Rechner, wo es nicht funktionierte, auch nicht zum Laufen bekommen, auch noch 60min Probieren nicht.
Lösung: nehmt einen anderen Rechner. Ich habe mir meinen Laptop geschnappt, Dropbox geupdatet und den Stick eingesteckt, “Import pictures and videos” und siehe da, der Import wird angeschmissen ohne jegliche Fehler und wenig später war der Konto größer. Also sucht einen anderen PC und führt die Anleitung nochmal durch.

6) Ich habe 5GB zusätzlichen Speicher, den Ordner „Camera Uploads“ gelöscht und trotzdem sind diese 5GB immernoch belegt und nicht frei. Was tun?
Gelöschte Dateien/Ordner werden vom Dropbox erstmal im Cache gehalten, denn gelöschte Dinge lassen sich im Dropbox Management auf der Webseite wiederherstellen.
Also loggt euch auf Dropbox.com ein, klickt in der „Dateien“ Übersicht auf „Gelöschte Dateien anzeigen“, sucht den „Camera Uploads“ Ordner, klickt rechts auf den kleinen blauen Pfeil bzw. Rechtsklick und dann auf „Dauerhaft löschen„.

7) Wo kann ich mehr über diese Dropbox Version erfahren?
Hier ist die offizielle Ankündigung dieser Version mitsam Changelog, Downloads und einigen FAQs.

8) Diese neue Version ist cool! Welche neuen Funktionen sind in Dropbox noch geplant?
In der sogenannten Votebox sammelt das Dropbox Team Uservorschläge für neue Funktionen und Verbesserungen. Hier könnt ihr mit abstimmen um Neuerungen schneller zum Release zu verhelfen.

Weitere Fragen werden z.B. aus den Kommentaren übernommen.

Tobi, danke für die Anleitung mit Links und den Upload des „Bildes“ 😉

[Trigami-Review]

Okay, heute möchte ich euch von dem Digitus KM Switch Cable berichte, dass ich zum Testen kostenlos bekommen habe. Wie der Name schon sagt ist es ein Keyboard-Mouse-Switch und ermöglicht es, Maus und Tastatur an 2 Computern zu nutzen, ohne umstecken zu müssen. Beide Computersysteme brauchen nur einen USB Port und ein Windows Betriebssystem (XP oder höher).

Das Produkt hebt sich unter Anderem dadurch von der kostenlosen softwareseitigen Konkurrenz ab, dass es einen Dateiaustausch durch einfaches Drag&Drop zwischen den verbundenen Computern ermöglicht, es einen Bild-in-Bild (PIP) Modus gibt und zwischen den Computern automatisch die Zwischenablage synchronisiert (Clipboard).

In folgendem Video-Review habe ich das Wichtigste erwähnt und getestet:

Nochmal kurz ein paar zusammenfassende Stichpunkte:

  • einfache Installation und fortwährende Nutzung; aber Achtung beim Abziehen, vorher unbedingt Beenden!
  • Treiber sind enthalten aber Windows XP muss den Treiberassistenten durchklickern | Update: ein weiteres System mit Windows XP hat die Software und alle Funktionalitäten ohne jegliche Benutzerinteraktion installiert und gestartet. Dauer: ca 1 Minute. Also ich korrigiere die Aussage, bei neueren Windows XP Systemen (SP3) scheint die Software optimal zu laufen. Mein Testlaptop im Video hatte leider noch SP2, uralt also.
  • Windows Systeme werden unterstützt, Linux, Mac und mobile Betriebssysteme jedoch nicht
  • nach dem Anstecken wird die Software automatisch gestertet und die Computer verbunden
  • es gibt keine GUI, dadurch ist die Software nur 2MB groß aber es sind auch keinerlei Einstellungsmöglichkeiten gegeben
  • die Software installiert sich automatisch in den Windows Autostart
  • Dateitransfer per Drag&Drop allerdings nur vom Desktop zum Desktop
  • Clipboard wird synchronisiert allerdings nur Text, keine Bilder oder Dateien
  • Bild-in-Bild (PIP) Modus ermöglicht teilweise KVM Funktionalität, deaktiviert aber gleichzeitig die KM Switch Funktionalität, nach dem Schließen des PIP muss der KM Switch Modus manuell wieder ausgewählt werden
  • 2. Bildschirm wird gut unterstützt, der KM Switch setzt also erst einen Bildschirmrand weiter ein, möglicherweise sind Windows 7 Aero Glass Effekte beim KM Switch etwas fehlerhaft (erst einmal beobachtet)
  • Handbuch auf Deutsch und Englisch, 5 Jahre Garantie

Fazit: Das Produkt ermöglicht mit Datenaustausch, Clipboard und PIP schon durchaus fortschrittliche Sachen. Jedoch scheint die ganze Software noch ein wenig Arbeit zu benötigen, es gibt überall Einschränkungen, die meistens nicht sein müssten. Es ist nicht allzu lange her da habe ich Synergy (auch mit Video) getestet. Diese softwareseitige Lösung bewerkstelligt das Gleiche mit etwas mehr Stabilität, bietet dafür aber nicht die oben erwähnten Features an. Man muss also abschätzen, welche Funktionalitäten man braucht (Transfer, PIP usw).

Ein Online Verkäufer der Digitus Produkte ist z.B. Conrad. Hier gibt es das KM Switch Cable für 29,95€.

Memo an mich,
Office 2010 per Kommandozeile unbemerkt repaieren:

setup.exe /repair "ProPlus" /config "SilentRepairConfig.xml"

Pfad zur .exe und zur .xml angeben, Produktnamen „ProPlus“ ggf. duch das vorhandene Produkt (steht in der setup.xml Zeile 3 am Anfang) ersetzen.
Setup.exe Parameter

SilentRepairConfig.xml erstellen, wenn im Ordner ProPlus.WW nicht vorhanden:

<Configuration Product="ProPlus">
<Display Level="none" CompletionNotice="no" SuppressModal="yes" AcceptEula="yes" />
<USERINITIALS Value="IQB" />
<USERNAME Value="IQB" />
<Setting Id="SETUP_REBOOT" Value="Never" />
</Configuration>

XML Elemente
Ganz wichtig ist das Element

Setting

, mit dem sich viele wichtige Dinge wie Reboot steuern lassen: Setup/Setting Properties

Grundlegende Batch:

set o2k10=\\server\pfad\Office2010
set log="\\server\pfad\Logs\%computername%.txt"
if exist %windows%\checks\repairo2k10 goto end
echo Repariere Office 2010...
%o2k10%\setup.exe /repair ProPlus /config %o2k10%\ProPlus.WW\SilentRepairConfig.xml
echo %date% %time% - Office repariert, errorlevel: %errorlevel% >> %log%
md %windows%\checks\repairo2k10
:end

Update:
Bei einigen Office Repairs verhält sich Office 2010 anders. Mal startet es den Computer direkt nach der Reperatur neu, mal nicht. Ich hatte < setting Id="SETUP_REBOOT" Value="Never" /> in die .xml genommen damit der Rechner nie neu gestartet wird. Das resultiert bei den Rechnern, die neu gestartet hätten, im Fehlercode 3010: ein Neustart wird benötigt (Mögliche Errorlevel). Die Computer haben dann ein fehlerhaftes Office 2010 solange der Rechner nicht neu gestartet wird. Andere Microsoft Programme (Visual Studio z.B.) laufen dann auch fehlerhaft.

Also passe ich die Batch an, speicher den errorlevel des Repair-Vorgangs ab und reagiere auf den 1030 Code mit einem Reboot nachdem das Script beendet wurde.

set o2k10=\\server\pfad\Office2010
set log="\\server\pfad\Logs\%computername%.txt"
if exist %windows%\checks\repairo2k10 goto end
echo Repariere Office 2010...
%o2k10%\setup.exe /repair ProPlus /config %o2k10%\ProPlus.WW\SilentRepairConfig.xml
set repairerrorlevel=%errorlevel%
REM weitere Befehle...
echo %date% %time% - Office repariert, errorlevel: %repairerrorlevel% >> %log%
REM weitere Befehle...
md %windows%\checks\repairo2k10
:end
if %repairerrorlevel%==1030 shutdown -r -f -t 120 -c "Um die Office Reperatur erfolgreich abzuschliessen muss der Computer neugestartet werden. Der Computer wird in 120 Sekunden neugestartet!"

Einfach < setting Id="SETUP_REBOOT" Value="Never" /> aus der .xml zu löschen würde den Computer direkt nach dem Repair-Vorgang neustarten, die Batch würde nicht zu Ende ausgeführt!

Mein letzter Post erklärte die spezielle Behandlung von Internet Explorer 6 (und jünger) in meinem Blog. Es wird statt dem eigentlich Inhalt ein bisschen Text und Links zu vernünftigen Browsern angezeigt.
Ich wollte dieses „Feature“ jetzt mit nur 1 Zeile realisieren. Den CSS und HTML Code in der tatsächlich index stehen zu haben ist unschön.
Daher präsentiere ich:

IE-Buster

a small jQuery Anti-IE Plugin

Frei nach dem Motto:
„If there’s something strange
in the internet.
Who ya gonna call?“

IE-Buster!!!
😉



Das Plugin ist nur 2,3KB groß und damit ein Leichtgewicht im Anti IE Geschäft. Es epfiehlt sich also wenn man keinen besonders hübschen und funktionsreichen Abgang beim IE sucht, sondern etwas kleines, schnelles und unkompliziertes.
Einzige Voraussetzung: jQuery muss eingebunden sein!

Code
$(document).ready(function() {
  $("head").append('<!--[if lte IE 6]><style type="text/css">#ie6-warning { display: block; width: 100%; height: 100%; background-color: white; position: absolute; z-index: 1111; top: 0px; left: 0px; color: black; padding: 10%; font-size: 17px; } #ie6-warning td { border: 1px solid #eee; padding: 4px; color: white; } #ie6-warning a { color: blue; }</style><![endif]--><!--[if gt IE 6]><style type="text/css">#ie6-warning { display: none!important; }</style><![endif]-->');
  $("body").append('<div id="ie6-warning">Ihr Browser ist zu alt um diese Internetseite korrekt darzustellen.<br/>Bitte aktualisieren Sie Ihren Browser oder installieren Sie einen anderen modernen Browser.<br/><br/>Your browser is too old to display this website correctly.<br/>Please update your browser or install another modern browser.<br/><br/><br/><table cellpadding="10"><tr><td></td><td>Google Chrome</td><td>Mozilla Firefox</td><td>Opera</td><td>Apple Safari</td><td>Microsoft Internet Explorer</td></tr><tr><td>Download (DE):</td><td><a href="http://www.google.de/chrome/">Link</a></td><td><a href="http://www.mozilla-europe.org/de/firefox/">Link</a></td><td><a href="http://de.opera.com/">Link</a></td><td><a href="http://www.apple.com/de/safari/">Link</a></td><td><a href="http://www.microsoft.com/germany/windows/internet-explorer/">Link</a></td></tr><tr><td>Download (EN):</td><td><a href="http://www.google.com/chrome/">Link</a></td><td><a href="http://www.mozilla-europe.org/en/firefox/">Link</a></td><td><a href="http://www.opera.com/">Link</a></td><td><a href="http://www.apple.com/safari/">Link</a></td><td><a href="http://www.microsoft.com/windows/internet-explorer/">Link</a></td></tr><tr><td>Suchen/Search for:</td><td><a href="http://www.google.com/search?q=chrome">Link</a></td><td><a href="http://www.google.com/search?q=firefox">Link</a></td><td><a href="http://www.google.com/search?q=opera">Link</a></td><td><a href="http://www.google.com/search?q=safari">Link</a></td><td><a href="http://www.google.com/search?q=internet+explorer">Link</a></td></tr></table><br/><br/><span>by <a href="http://it-stack.de">Hannes Schurig</a></span></div>');
});
Download

Download des Plugins v1.2

ie-buster-1.2 [.js] (Rechtsklick -> Speichern unter)
Nicht vergessen, regelmäßig nach Updates schauen.

oder

Einbinden der neuesten Version von meinem Server

<!-- <script type="text/javascript" src="jquery-min.js"></script> // (noch) Voraussetzung: jQuery! -->
<script type="text/javascript" src="http://public.hannes-schurig.de/IE-Buster/ie-buster-latest.js"></script>
Changelog


v1.2 – Anzeigefehler behoben
v1.1 – Anzeigefehler behoben

Sooo, es gibt eine neue Kategorie in meinem Blog: „Android“!
Seit Mitte Dezember bin ich recht stolzer Besitzer eines HTC Desire Z (nachfolgend nur als „Handy“ bezeichnet) und wühle mich seitdem voller Begeisterung durch das Informations-Dickicht.
Ich hoffe euch in Zukunft hin und wieder mit Android Themen erfreuen zu können.

Aber bevor ich hier Android Kram schreibe gibt es natürlich 1 wichtige Sache zu erledigen: Screenshots vom Android Smartphone ermöglichen!
Mein Blog liebt Screenshots also müssen auch Android Screens gemacht werden können.
Das ist jetzt Thema, denn es ist einfacher als gesagt, zumindest in meinem unglücklichen Fall.

2 Möglichkeiten

Es gibt 2 verschiedene Möglichkeiten, Screenshots in Android zu ermöglichen:
1. Das Handy rooten und ein App installieren, dass dazu fähig ist.
2. Die nötige Software auf dem Computer installieren, das Handy per USB zum PC verbinden und mit dem Tools ein Foto machen.

Die Vorteile von Punkt 1 gegenüber Punkt 2 sind klar. Man braucht nicht immer den PC vor der Nase, wo die nötige Software/Treiber installiert ist. Und man kann sogar unterwegs, wenn sich grad ein Event auf dem Bildschirm abspielt das schlecht rekonstruierbar ist (Fehler etc), einen Screenshot machen.

Punkt 1

Ich empfehle also Punkt 1, falls es möglich ist. Die meisten HTC Modelle können relativ einfach gerootet werden, siehe unrevoked.
Leider: Das Desire Z gehört leider noch nicht zum Arsenal. Momentan kann auch VISIONary nicht helfen, da durch das aktuellste Firmware Update die genutzte Lücke geschlossen wurde.
Rooting fällt also momentan für das DZ flach.
Da das Thema aber täglich neu entschieden wird werde ich mich hier nicht weiter festlegen oder über rooten quatschen. Informiert euch einfach, wie sich euer Phone rooten lässt und zieht es, nach Backup, durch.

Punkt 2

Dann eben Punkt 2, wir haben ja nicht ewig Zeit auf root zu warten.
Dieser Prozess ist jetzt etwas aufwändiger aber ist zu schaffen.

Schritt 1-5 sind in beliebiger Reihenfolge. Habt ihr einen dieser Schritte schon gemacht oder sowieso schon installiert, nicht alles deinstallieren und neumachen sondern einfach die anderen Schritte ergänzen.

Schritt 1: Android SDK herunterladen, installieren und einrichten.
Downloadlink – Installer für euer System ziehen und installieren.
Startet den „SDK Manager“ (bzw. er wird nach der Installation automatisch gestartet) und es öffnet sich ein Paket Installer, der euch gleich ein paar Pakete aufdrücken will. Schließt das Fenster erstmal.
Klickt auf den Menüpunkt „Available Packages“. Ehrlich gesagt bin ich nicht so sicher, welche Pakete ihr als Minimum braucht. Meine momentane Konfiguration ermöglicht Screenshots, ich habe nur folgende Pakete:
Die ersten 3 Pakete stehen unter „Android Repository“, das „Google USB Driver package“ findet ihr in der Kategorie „Third Party Add-ons“.

Sollte es später mal zu Problemen oder Fehlern kommen könnt ihr hier ALLE Pakete ziehen und somit ausschließen, dass es an fehlenden SDK Paketen liegt. Aber da das große Datenmengen sind (mehrere Gigabyte) würde ich erst ab Schritt 8 darüber nachdenken.

Schritt 2: Java SDK herunterladen und installieren.
Downloadlink – Klick auf den Button „Download SDK“, wählt euer System aus, installiert das Ganze, fertig.

Schritt 3: Eclipse installieren
Downloadlink – Zieht euch die Classic Version von Eclipse, alternativ gingen auch die Java oder RCE Varianten.
Installieren und starten.

Schritt 4: Eclipse ADT Plugin installieren
In Eclipse klickt ihr auf „Help“ > „Install New Software…“. Es erscheint ein neues Fenster, in dem ihr die URL https://dl-ssl.google.com/android/eclipse/ eintragt und die gefundenen Pakete installiert. Beim Installieren müsst ihr 3 Sachen zustimmen, eine Sicherheitswarnung bestätigen und Eclipse neustarten, alles kein Problem.
Geht nun zu „Window“ -> „Preferences“ -> „Android“ und tragt bei „SDK Location:“ den Pfad zu eurem Android SDK ein.

Schritt 5: USB-Debugging aktivieren
Fast geschafft. Nehmt das Handy in die Hand und aktiviert das USB Debugging. Das geht unter Einstellungen -> Anwendungen -> Entwicklung -> USB-Debugging, Häkchen rein.

Schritt 6: Testen
Okay, Android SDK schließen, Eclipse schließen, Handy vom USB trennen, alles auf 0. (Diesen pseudo-hilfreichen „Alles auf 0“ Zwischenschritt baue ich nur vorsichtshalber ein, da bei mir das alles nicht so glatt lief)

Handy wieder anstöpseln, „Nur Laden“ als USB Aktion reicht aus.
Eclipse öffnen, „Window“ -> „Show View“ -> „Other…“ -> „Android“ -> „Devices“

Hier steht nun, wenn die Schritte korrekt befolgt wurden und mit etwas Glück, 1 Eintrag drin; euer Handy.
Das Icon rechts macht ein Screenshot vom Gerät:

Hat das nicht funktioniert? Wird kein Gerät angezeigt oder kommt es zu Fehlern? Dann gehts weiter:

ggf. Schritt 7: Neustart!
Viel wurde installiert, viel gefummelt, vielleicht hat das System einen typischen Windows Schluckauf. Aber auch für Macs kann es nicht schaden.
Neustart des Systems!
Öffnet jetzt die Konsole und navigiert in den „platform-tools“ Ordner des Android SDK. Setzt dort die Befehle

adb kill-server

und

adb start-server

ab. Mit

adb devices

seht ihr die erkannten Geräte.

P:\Android SDK\platform-tools>adb.exe kill-server
P:\Android SDK\platform-tools>adb.exe start-server
P:\Android SDK\platform-tools>adb.exe devices
List of devices attached
HT0BBRT01206 device

Wird nichts gelistet und auch nach den Neustarts meckert Eclipse? Ab zu Schritt 8.

ggf. Schritt 8: Treiber installieren
Schaut mal in euren Geräte-Manager. Steht dort ein unbekannter Eintrag, der vorher noch nicht da war? Dann weiter.
Besucht die Homepage eures Handyherstellers und zieht euch die offiziellen Treiber. Für mein HTC Desire Z hab ich mir einfach die Synchronisationssoftware geladen. Diese hat sich dann auch um die korrekten Device Driver gekümmert.

Eine alternative Beschreibung der Treiberinstallation, die man recht oft bei dem Thema im Netz findet, steht sehr ausführlich und mit Screens auf groovypost.com.

Achja, wie in Schritt 1 kurz angemerkt, solltet ihr bis hierhin Probleme oder Fehler haben, zieht euch mal ALLE Pakete mit dem Android SDK Manager um ausschließen, dass es an fehlenden SDK Paketen liegt. Achtung, mehrere Gigabyte werden geladen und installiert, das kann dauern.

Gegebenenfalls jetzt nochmal Schritt 7 wiederholen, nur um sicherzugehen.
Dann sollte es aber wirklich funktionieren.
Wenn nicht, schreibt mir; mal sehen ob ich helfen kann.

Weitere Hilfen:
Android SDK Installation
Eclipse ADT Plugin Installation