android-smartphones-sichern-fehlerVor Kurzem ging mein Smartphone einfach nicht mehr an und es schien sich auch nicht mehr laden zu lassen. Angesteckt an Ladegeräte leuchtete keine rote Lade-LED. Das tolle HTC Unibody-Gerät kann man dann ja nicht einmal öffnen um den Akku zu tauschen oder die SD-Karte zu entnehmen.
Hättest du mal vorher regelmäßig Backups gemacht…“ dachte ich mir so.

9 kostenlose Tools zum Sichern von Android Daten

Vorbereitung

Für die meisten Schritte solltet ihr USB-Debugging aktivieren. Das geht unter „Einstellungen > Entwickleroptionen“. Falls die Einstellung „Entwickleroptionen“ nicht gelistet wird, müsst ihr diese zunächst freischalten. Navigiert dazu nach „Einstellungen > Über das Telefon“ und
android-smartphone-sichern-htc-verbunden tippt sieben Mal auf den Eintrag „Build-Nummer“.
Außerdem braucht ihr oftmals eine aktive USB Verbindung zum Smartphone und dafür die richtigen USB Treiber. Dieser ADB Installer ist vermutlich der einfachste und schnellste Weg diese zu installieren, 3x „y“ eingegeben und alles wird auf eurem System automatisch installiert. Ansonsten erhaltet ihr die Treiber vom Hersteller, durch die Hersteller-Software (siehe nächste Überschrift) oder über das Android Studio (nicht empfehlenswert, da sehr groß).

Herstellersoftware – Kies/HTC Sync Manager/…

Jeder größere Smartphonehersteller hat eine Software, mit der das Smartphone verbunden und fast immer auch gesichert werden kann. Bei Samsung wäre es „Kies“, bei HTC der „HTC Sync Manager“ usw.
Die Software hat den Vorteil, dass sie gleichzeitig die aktuellsten USB Treiber für dieses Gerät mitbringen und vom Hersteller extra auf die Gerätereihe hin optimiert wurde. Somit ist ein Backup hier oftmals besonders einfach.
android-smartphones-sichern-htc-sync-manager-sicherung

MobileGo – Mittlerweile eingeschränkt

Hinweis: Die Software wurde in der kostenlosen Version eingeschränkt, sodass z.B. kein Dateiaustausch mehr möglich ist.
Die Software MobileGo von Wondershare ist vielseitig und bietet Sicherungen für fast alles, sehr übersichtlich und hübsch in einer Software verpackt. Außerdem bietet es viele Features, unter anderem 1-Click-Root, Vollbackup, Dateimanager, SMS-Viewer sowie verschiedenste Im- und Exports. Achja, Downloader für Google Music, MP3s und Youtubes gibt es auch noch.
android-smartphone-sichern-wondershare-mobilego-tool-downloadersandroid-smartphone-sichern-wondershare-mobilego-tool-vollbackup

android-smartphone-sichern-wondershare-mobilego-tool-smsandroid-smartphone-sichern-wondershare-mobilego-tool-filemanager

android-smartphone-sichern-wondershare-mobilego-tool-appsandroid-smartphone-sichern-wondershare-mobilego-tool-menu

AirDroid – Dateien und Fernsteuerung

AirDroid ermöglichst das Verwaltung via Webanwendung oder installiertem Programm. Dateien können übertragen, das Telefon ferngesteuert und viele Informationen ausgelesen werden.
Ein ausführlicheren Blogeintrag über den Dienst habe ich hier geschrieben.
Das Bild zeigt den Dateimanager von AirDroid und die Möglichkeit, mehrere Dateien als ZIP herunterzuladen

Super Backup – Alles

Die App Super Backup bietet fast alles, was man braucht. Apps (ohne App-Daten wenn nicht gerootet!), SMS, Kontakte, Anrufliste, Kalender, Lesezeichen. Das alles ohne Root in einer einfachen und übersichtlichen Oberfläche. Automatische Sicherungen nach Zeitplan sind möglich, lassen sich gleichzeitig automatisch zu Cloud Diensten hochladen (ggf. nur über Wifi und ggf. anschließend lokal löschen) und die Anzahl der Sicherungen lässt sich einschränken; TOP.
Hinweis: Ohne Root werden von den Apps nur die APKs gesichert, nicht die Daten. Für App-Daten könnt ihr Helium (weiter unten) benutzen.
android-smartphone-sichern-app-super-backup-menuandroid-smartphone-sichern-app-super-backup-appsandroid-smartphone-sichern-app-super-backup-sms

android-smartphone-sichern-app-super-backup-contactsandroid-smartphone-sichern-app-super-backup-calendarandroid-smartphone-sichern-app-super-backup-bookmarks-lesezeiche

Helium – Apps & App-Daten

Helium, ehemals Carbon, ist eine Kombination aus Android App und PC Software zur Sicherung von Apps und App-Daten. Die Android App kann App-Daten mit und ohne der App selbst lokal sichern, auch die SMS, Anrufliste und das persönliche Wörterbuch können gesichert werden.
Für die Einrichtung muss die Helium PC Software sowie die Android App installiert werden. Danach das Smartphone per USB mit dem PC verbinden, beide Programme starten und dann sollte die Verbindung hergestellt werden. Nun könnt ihr Sicherungen lokal vornehmen. Die Sicherungen landen in storage/[sdcard0]/carbon.
android-smartphone-sichern-helium-carbon-enabled-2 android-smartphone-sichern-app-helium-carbon-appdata

Ein besonderes Schmankerl dieser App ist die PC Sicherung über einen auf dem Handy simulierten Server. Dazu müssen das Smartphone und der PC im selben Netzwerk/[W]LAN sein, ihr braucht also kein USB mehr. Öffnet die App, geht in das Menü und aktiviert „PC Download“. Ihr bekommt dann die URL angezeigt, die ihr mit dem Browser eures PCs aufrufen müsst. Dort könnt ihr sehr bequem und einfach Apps und App-Daten sichern (und natürlich wiederherstellen) und bekommt diese dann direkt als .zip Download auf den PC geladen:
android-smartphone-sichern-app-helium-carbon-server android-smartphone-sichern-helium-carbon-server-pc

Alternative Apps

Die folgenden Apps haben nur begrenzte Sicherungsmöglichkeiten, sind umständlicher zu bedienen oder sind risikobehaftet. Als Alternativen funktionieren aber auch sie meistens.

MyPhoneExplorer

Das könnte der kleine Bruder von MobileGo sein. Kann auch das übliche, allerdings ist die Anwendung veraltet, sieht auch so aus, und die Sicherungsmöglichkeiten sind begrenzt. Eventuell braucht ihr, damit die Software funktioniert, auf eurem Smartphone die App dazu.
android-smartphone-sichern-my-phone-explorer

SMS Backup+ – SMS & Anrufliste

android-smartphone-sichern-app-sms-backup-plusDiese App überträgt eure SMS und Anrufliste in euren GMail Account. Dazu wird für jede SMS eine E-Mail in einem bestimmten Label (GMail „Unterordner“) erstellt, sodass euer Postfach dadurch nicht verunreinigt wird. Dies kann manuell, per Zeitplan oder direkt nach dem Erhalt einer Nachricht geschehen. Somit habt ihr immer alle SMS direkt online verfügbar, könnt sie ausrucken oder weiterleiten.

Holo – Apps & Vollbackup

android-smartphone-sichern-holoHolo Backup ist besonders schnell und einfach zu benutzen, da es weder eine Installation noch eine App auf dem Smartphone braucht. Es greift über Android Tools (ADB Backup) direkt auf das Handy zu und holt sich die Daten. Jedoch wird schon beim Start der Anwendung auf die Gefahren hingewiesen: Holo nutzt ADB Features, die nicht vollkommen ausgereift sein, wodurch leere Backups, fehlerhafte Backups oder teilweise gar keine Backups erstellt werden. Manche Modellreihen (HTC One, 2011er Sony, Motorola) sind besonders unzuverlässig mit diesem Tool, dazu mehr hier.
Demnach sollte Holo nicht eure einzige Sicherungsquelle sein, sondern ausschließlich eine zusätzliche. Die Android Version des Geräts muss 4.0 oder höher sein.

Android ADB Backup – Apps & Vollbackup

Die Komponente, die Holo nutzt um Backups zu erstellen, könnt ihr auch ohne zusätzliche Tools selber benutzen. Auf dieser Seite erfahrt ihr, was ihr alles installieren müsst, damit das funktioniert.
Anschließend kann über die Windows Konsole das Tool adb backup angesprochen werden:
android-smartphone-sichern-adb-backup-restore

Die Nutzung sollte jedoch nur mit Vorsicht über die Kommandozeile erfolgen. Oder mit einem weiteren Tool, dass ebenfalls diese Schnittstelle nutzt: Android Ultimate Backup Tool. Dieses erleichtert euch die Nutzung von ADB Backup durch eine Oberfläche. Avira meckerte bei dem Tool ziemlich viel rum und entdeckte die Virensignaturen „Android\GetRoot.A“ bzw. „TR/Lockspop.A“; die Nutzung erfolgt also auf eigenem Risiko und am einfachsten mit Ordner-Ausnahme.
android-smartphone-sichern-adb-backup-restore-ultimate-backup-tool

java7-java8u25-upgrade-silent-deployment-msiJava 8 ist mittlerweile bei Update 25 angekommen und ein Upgrade von 7u67 auf 8u25 ist sicher eine gute Idee. Also wollte ich mein bestehendes Verteilungsscript für Java im Unternehmen auf die neue Version umstellen. Das war jedoch nicht so einfach und die Verteilung musste umgebaut werden. Demnach hier das Update der Verteilung.

exe Installer

Die .exe Installer, die auf der Java Homepage zur Verfügung stehen, funktionieren gut für die Verteilung:

start /w %wd%\%version%-64.exe /s WEB_JAVA=1 REBOOT=REALLYSUPPRESS /norestart REBOOT=SUPPRESS

MSI Installer

Sollte eine Verteilung über MSI gewünscht werden, geht das natürlich auch. Dazu einfach den .exe Installer per Doppelklick starten und die MSI aus dem Ordner AppData\LocalLow\Sun\Java\[Version] ziehen.
java-8-update-cmd-ordner-msi

Das MSI Paket muss jedoch erst angepasst werden, es werden sonst verschiedene 16XX msiexec Fehlercodes zurückgeliefert.
Hier sind zwei Seiten, mit denen ich gearbeitet habe: diese Seite und diese Seite.
Da sollten keine Fragen offen bleiben.

Den fertigen Installer kann man jetzt mit folgender Zeile verscripten:

msiexec /i %wd%\%version%-32.msi /qn INSTALL_SILENT=1 WEB_ANALYTICS=0 EULA=0 REBOOT=0

Die aktuellen Parameter für die 8er Version findet ihr hier.

Alte Versionen aufräumen

Neu in meinem Script ist die Deinstallation alter Versionen. Dies ist mit 3 Methoden machbar: über WMIC (Windows Management Instrumentation Commandline), einen generellen

msiexec /x{GUID}

Befehl oder mit der Installations-MSI.

WMIC:

Über den WMIC-Befehl

wmic product where "[filter product]" call uninstall" können Programme gezielt deinstalliert werden. Folgender Code deinstalliert Java-Produkte:
[crayon-5851b00cbfa96616214862 lang="shell" ]
wmic product where "name like 'Java %%'" call uninstall /nointeractive
wmic product where "name like 'Java%%'" call uninstall /nointeractive
wmic product where "name like 'Java(tm) %%'" call uninstall /nointeractive
wmic product where "name like 'J2SE Runtime Environment%%'" call uninstall /nointeractive

Mittlerweile setze ich ausschließlich auf die WMIC Variante, da diese zuverlässig und einfacher zu warten ist als die anderen Methoden.

GUID:

msiexec /x{26A24AE4-039D-4CA4-87B4-2F83217055FF} /qn /norestart

Wobei die GUID dieses Format hat:
[/crayon]

{26A24AE4-039D-4CA4-87B4-2F8YY1XXXXFF}

wobei YY die Prozessorbits sind (32/64) und XXXX die Versionsnummer: 7065 für 7u65 oder 8011 für 8u11.

Die GUIDs aller 7er und 8er Versionen, inklusive Batchbefehle, findet ihr auf dieser IT-Ninja Seite (ganz unten).
Hier wäre die aufgeräumte Variante:

Code anzeigenDen Code könnt ihr bequem mit den Links/Rechts Pfeiltasten horizontal bewegen.

REM 7er Versionen
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217067FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417067FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217065FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417065FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217060FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417060FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217055FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417055FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217051FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417051FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217045FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417045FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217040FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417040FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217025FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417025FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217021FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417021FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217017FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417017FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217015FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417015FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217013FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417013FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217011FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417011FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217010FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417010FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217009FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417009FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217007FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417007FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417006FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217006FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417005FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217005FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417004FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217004FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417003FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217003FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417002FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217002FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417001FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217001FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86417000FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83217000FF}

REM 8er Versionen (Update: 17.03.2016, Uninstall bis Update 71, aktuell ist 73)
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83218071F0}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86418071FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83218066F0}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86418066FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83218065F0}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86418065FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83218060F0}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86418060FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83218051F0}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86418051FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83218045F0}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86418045FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83218040F0}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86418040FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83218031F0}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86418031FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83218020F0}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86418020FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83218011FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86418011FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83218005FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86418005FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F83218000FF}
msiexec.exe /qn /norestart /X{26A24AE4-039D-4CA4-87B4-2F86418000FF}
REM ... usw

MSI:

Die MSIs erhaltet ihr aus dem AppData\LocalLow\Sun\Java\[Version] Ordner.
java-8-update-cmd-ordner
Damit dann:

msiexec /x "%wd%\uninstall\jre1.7.0_67\jre1.7.0_67.msi" /qn /norestart

Alternative Deinstallationen / Uninstaller

Man kann aus der Registry auf jeden Fall die aktuellste Version auslesen, HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment.
Problem: hier steht nur die aktuellste Version drin. Ich habe beispielsweise 7u71 und 8u25 installiert, da drin ist nur die 8er gelistet. Ist also schonmal riskant damit zu arbeiten.
Alternativ könnte man im Windows Uninstall Key (HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall) nach Java Versionsnummern suchen, hier wird es erklärt. Aber auch hier müsste man alle Versionsnummern durchprobieren und auf Funde reagieren.
Es gibt bereits ein Script, das mit dieser Uninstall Key Methode sucht und deinstalliert. Ist zwar vbs, aber egal. Hier auf IT-Ninja gleich das erste.
Außerdem gibt es auch weitere Java Uninstaller/Cleanup Tools wie z.B. JavaRA (mehr dazu).
Die Möglichkeiten sind also vielseitig.

Noch ein paar grundlegende Hinweise zur Installation und Deinstallation von Java per MSI auf dieser aktuellen Hilfeseite oder aus der (veralteten) Java Hilfe.

Deployment Script

Die neue Variable

cleanup

ermöglicht das Überspringen der Deinstallation der alten Java-Versionen.

cleanup=1

räumt dagegen alle Versionen (auch die aktuell installierte) einmal auf und installiert frisch. Das Cleanup ist standardmäßig deaktiviert.
Update: 16.08.2016: Version 8u101 getestet und läuft.
Info: Das im Skript verwendete Programm VersionCompare ist eine Eigenprogrammierung und hier als Download verfügbar.

Code anzeigenDen Code könnt ihr bequem mit den Links/Rechts Pfeiltasten horizontal bewegen.

@echo on && color 9f && setlocal
set wd=\\lea\Deployment\Software\Java
set tools=\\lea\Deployment\Sonstiges\tools
set cleanup=0
set versionEL=9
set javaEL32=9
set javaEL64=9
set javaregEL32=9
set javaregEL64=9
set retry=0
set instversion=0
set uninst=x
set pa=%processor_architecture%
REM:: ### HIER VERSION NACH UPDATE ANPASSEN ###
set main=8
set update=101
REM:: ############
set version=%main%u%update%
set alllog=%wd%\java-all.log

REM:: Clientfilter: nur die Computer aus der allowedPCs.txt dürfen installieren
REM::for /f %%f in (%wd%\allowedPCs.txt) do if "%computername%"=="%%f" goto check
REM::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:: alte Kontrollen: Registry, Programmordner
REM:: 1) for /f "tokens=1,2,3 delims= " %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment" /v "Java7FamilyVersion"^|findstr "Java7FamilyVersion"') do set instversion=%%c
REM::    if not "%instversion%"=="1.%main%.0_%update%" goto cleanup
REM:: 2) if not exist "%programfiles%\Java\jre1.%main%.0_%update%" goto install
REM:: Aktuelle Kontrolle: Version aus java -version entnehmen und mit VersionCompare vergleichen
for /f "tokens=3" %%g in ('java -version 2^>^&1 ^| findstr /i "version"') do set instversion=%%g
if "%instversion%" == "0" goto check2
if "%instversion%" == "" goto check2
set instversion=%instversion:~1,-1%
for /f "delims=._ tokens=1-4" %%v in ("%instversion%") do (
	set instmain=%%w
	set instupdate=%%y
)
goto compare

:check2
REM:: workaround if java -version check doesn't work
echo %date% %time:~0,8% - %computername% kann die Version nicht durch java -version bestimmen >> %alllog% 
for /f "tokens=1-3" %%i in ('%tools%\sigcheck %ProgramData%\Oracle\Java\javapath\java.exe') do ( if "%%i %%j"=="File version:" set instversion=%%k )
if "%instversion%" == "0" set cleanup=1 & goto cleanup
if "%instversion%" == "" set cleanup=1 & goto cleanup
set instversion=%instversion: =%
set instversion=%instversion:~0,6%
for /f "delims=. tokens=1-4" %%v in ("%instversion%") do (
	set instmain=%%v
	set instupdate=%%x
)
goto compare

:compare
echo %date% %time:~0,8% - %computername% hat %instmain%.%instupdate% (%instversion%) installiert >> %alllog% 
REM:: compare installed and desired versions now
%tools%\VersionCompare.exe "%instmain%.%instupdate%" "%main%.%update%"
set versionEL=%errorlevel%
if "%versionEL%"=="-1" goto cleanup
if "%versionEL%"=="0" echo %date% %time:~0,8% - %computername% hat bereits %instversion% installiert >> %alllog% & goto end
if "%versionEL%"=="1" echo %date% %time:~0,8% - %computername% hat bereits %instversion% (neuer) installiert >> %alllog% & goto end
goto end

:cleanup
if "%cleanup%"=="0" goto install
REM:: Deinstalliere 8er Versionen
taskkill /F /IM iexplorer.exe
taskkill /F /IM iexplore.exe
taskkill /F /IM firefox.exe
taskkill /F /IM chrome.exe
taskkill /F /IM jusched.exe
taskkill /F /IM jp2launcher.exe
taskkill /F /IM java.exe
taskkill /F /IM javaw.exe
taskkill /F /IM jqs.exe
wmic product where "name like 'Java %%'" call uninstall /nointeractive
wmic product where "name like 'Java%%'" call uninstall /nointeractive
wmic product where "name like 'Java(tm) %%'" call uninstall /nointeractive
wmic product where "name like 'J2SE Runtime Environment%%'" call uninstall /nointeractive
goto install

:install
if "%processor_architecture%"=="AMD64" goto inst64
REM:: .exe format: [version]u[update]-32/-64.exe, Beispiel: 7u45-32.exe, 7u45-64.exe
start /w %wd%\%version%-32.exe /s WEB_JAVA=1 SPONSORS=0 EULA=1 AUTO_UPDATE=0 INSTALL_SILENT=1 WEB_ANALYTICS=0
REM:: MSI INSTALLER CMD LINE: msiexec /i %wd%\%version%-32.msi /qn INSTALL_SILENT=1 WEB_ANALYTICS=0 EULA=0 REBOOT=0 SPONSORS=0
set javaEL32=%errorlevel%

:inst64
start /w %wd%\%version%-64.exe /s WEB_JAVA=1 SPONSORS=0 EULA=1 AUTO_UPDATE=0 INSTALL_SILENT=1 WEB_ANALYTICS=0
REM:: MSI INSTALLER CMD LINE: msiexec /i %wd%\%version%-64.msi /qn INSTALL_SILENT=1 WEB_ANALYTICS=0 EULA=0 REBOOT=0 SPONSORS=0
set javaEL64=%errorlevel%

REM:: 10 Sekunden Pause nach der Installation
ping localhost -n 10 >> nul

:verfication
REM:: existieren die Java Reg-Keys nach der Installation?
REM:: reg query "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment" /f "1.%main%.0_%update%" /k
REM:: set javaregEL32=%errorlevel%
REM:: reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment" /f "1.%main%.0_%update%" /k
REM:: set javaregEL64=%errorlevel%

echo %date% %time:~0,8% - %computername%: %version%, install-errorlevel: 32: %javaEL32%, 64: %javaEL64% >> %alllog%

REM:: Error-Handling, Reaktion auf die 3 häufigsten msiexec Fehlercodes
if %javaEL32%==1618 goto retry REM:: msiexec process in use, installation already in progress
if %javaEL32%==1602 goto retry REM:: user canceled installation
if %javaEL32%==1603 goto retry REM:: fatal error, some use it for "already installed" (eg. java)
if %javaEL64%==1618 goto retry REM:: msiexec process in use, installation already in progress
if %javaEL64%==1602 goto retry REM:: user canceled installation
if %javaEL64%==1603 goto retry REM:: fatal error, some use it for "already installed" (eg. java)
goto end

:retry
if %retry%==1 goto retryfailed
echo %date% %time:~0,8% - %computername% hat nicht Errorlevel 00 erreicht, retry in 150Sek... >> %alllog%
set retry=1
REM:: 5 Minuten warten
ping localhost -n 150 > nul
goto install

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

:end
endlocal
exit

Das funktioniert immernoch problemlos:
java7-java8u73-upgrade-silent-deployment-msi-log
(Errorcode 9 bei 32bit heißt, dass auf dem System keine 32bit Installation gefunden und diese übersprungen wurde)

whatsapp-bald-mit-sicherer-ende-zu-ende-verschluesselung-logoFreudige Nachrichten sprechen sich rum: Whatsapp arbeitet zusammen mit Open WhisperSystems seit über einem halben Jahr daran alle Nachrichten zu verschlüsseln. Erst einmal nur die Nachrichten, später Medien und Gruppen. Erst einmal nur Android, später iOS. Ich denke das ist ein guter erster Schritt.

Das Problem:

Damit die Verschlüsselung überhaupt aktiv wird, gibt es eine Voraussetzung: beide Chatpartner müssen die neue Version 2.11.448 installiert haben. Diese ist jedoch noch gar nicht im deutschen Android Markt angekommen. Man kann sie zwar schon auf einzelnen Seiten als .apk herunterladen, jedoch würde das nur etwas bringen, wenn das Gegenüber dies ebenfalls gemacht hat. Also warten wir erst einmal in voller Erwartung auf die neue Version.
whatsapp-bald-mit-sicherer-ende-zu-ende-verschluesselung-messenger-version

Aber es ist verständlich, wenn sich die komplette Umstellung noch einige Tage ziehen wird. Bei rund 600 Millionen Whatsapp Nutzern ist es schließlich sogar die größte Implementierung einer Verschlüsselung aller Zeiten.

WhatsApp deserves enormous praise for devoting considerable time and effort to this project. Even though we’re still at the beginning of the rollout, we believe this already represents the largest deployment of end-to-end encrypted communication in history.

WhisperSystems Blog

Die Verschlüsselung erledigt das „TextSecure“ Protokoll, welches auf einer Technik namens Forward Secrecy basiert, die verschlüsselte Nachrichten auch dann noch schützt, wenn Hacker den für den Austausch zwischen den Nutzern verwendeten Schlüssel geknackt haben.

Open WhisperSystems haben durchaus bereits Erfahrungen in diesem Bereich: Ihr eigener Messenger „TextSecure“ gehört zu den sichersten der Art, Whatsapp ist davon (noch) weit entfernt. Mit den neuen Techniken wird Whatsapp aber vermutlich einige Häkchen dazubekommen.
whatsapp-bald-mit-sicherer-ende-zu-ende-verschluesselung-messenger

via, via

Ein Leser berichtete mir von seinen Erfahrungen mit Kommentaren in Batch:
REM ist gut, :: ist BÖSE!

Seine Erklärung dazu:

Grund: die ‚::‘-Kommentare sind syntaktisch anscheinend nichts anderes als Sprungmarken (die eben nie angesprungen werden). Funktioniert ja auch immer schön, und man kann sogar (vermeintlich) diese Sprungmarken doppelt definieren, also mehrfach denselben „Kommentar“ schreiben.
Probleme macht das aber in for-Schleifen. Konkret schicke ich dir mal ein Beispiel, bei dem die Meldung „Das System kann das angegebene Laufwerk nicht finden.“ erscheint.
Das wird noch viel lustiger, wenn man ein längeres Skript in dieser for-Schleife hat. Ich habe schon drei verschiedene sinnlose Fehlermeldungen wegen dieser Sache erhalten. War nicht leicht herauszufinden, was die Ursache war. Umstellen auf REM hat alle Probleme auf einmal behoben.

Hier der Start-Code für den Test:

@echo off
for /f "tokens=*" %%a in (test.bat) do (
    ::test
    ::echo
    echo %%a
)

Diesen Code habe ich Stück für Stück verändert und mir die Resultate angesehen. Und diese waren, wie vom Leser berichtet, erstaunlich fehlerhaft:
batch-kommentare-rem-statt-doppelpunkt-test-cmd
Ausführungen:

  1. Start-Code wie oben mit ::test und ::echo
  2. nur ::echo
  3. nur ::test
  4. ohne ::test und ::echo
  5. ::test an verschiedenen Stellen zw. echo %%a und der schließenden Klammer
  6. ::test außerhalb der for Schleife
  7. ::test2 innerhalb der for Schleife
  8. ::test2 in ::test umbenannt
  9. ::test und eine leere Zeile davor
  10. ::echo hinzugefügt, ::test und ::echo innerhalb, Start-Code
  11. ::echo wieder entfernt, nur ::test

Also bei :: Kommentaren innerhalb der for Schleife kommt es unter Umständen zu Fehlern. Mal triggert ein :: Kommentar („test“ in diesem Fall) einen Fehler, mal nicht. Zukünftig werde ich alles mit REM auskommentieren.

Ich habe letztens die App von SURPRICE Hotels benutzt und möchte meine Erfahrungen mit euch teilen. Bei SURPRICE Hotels gibt es Hotels aus aller Welt, noch einmal bis zu 60% günstiger als in den bekannten Hotelvergleichsportalen. Warum? Weil das System nach dem Prinzip des „Blind Booking“ funktioniert – das heißt, dass die Namen der Hotels nicht bekannt sind. Bekannt sind die ungefähre Lage, Hotelbewertungen aus 4 Portalen, Bilder und die üblichen Hotelinformationen. Damit können bekannte und gute Hotels noch ihre letzten Hotelzimmer günstig loswerden, ohne damit ihrem Namen und dem Image zu schaden. So die Theorie.
Nun, verlängertes Wochenende stand bevor, Städereisen war gewünscht, die App kam also sehr gelegen.

Nach der Installation startet die App mit einer Art Tour und zeigt mit einfachen Hinweisbildschirmen, wie das Prinzip von Blind Booking und die Erkundung der Hotels funktioniert:
surprice-hotels-guenstiger-blind-booking-android-app-start-hilfe-2surprice-hotels-guenstiger-blind-booking-android-app-start-hilfe

Recht schnell fällt schon auf, dass die App sehr übersichtlich gestaltet und einfach zu bedienen ist. Die Hotels werden unter einer Google Maps Karte in einer Liste mit Sternen, Preis und einem Bild gezeigt. Dort können sie sortiert und gefiltert werden. Filtern kann man nach Tagespreis, Sternen und Bewertung. Ich hätte mir an der Stelle ein paar mehr Filtermöglichkeiten gewünscht; Sauna oder ähnliches. Außerdem steht in der Übersicht immer nur der Tagespreis, interessanter wäre für mich der Gesamtpreis des Aufenthaltes gewesen; aber so wird immerhin das Gehirn ein bisschen angestrengt um den Tagespreis mit der Anzahl der Nächte zu multiplizieren 😉
surprice-hotels-guenstiger-blind-booking-android-app-start-mapsurprice-hotels-guenstiger-blind-booking-android-app-start-hotels

surprice-hotels-guenstiger-blind-booking-android-app-stadtsucheBei der Suche nach einer Stadt hilft notfalls auch die Autovervollständigung. Wir hatten bei der Suche nach „München“ irgendwie das Problem, dass er „München“ nicht annahm und uns stattdessen das englische Pendant dazu anbot. Dieses seltsame Verhalten konnte ich jedoch gerade nicht mehr nachvollziehen, ich denke also mal, dass das behoben wurde.

Die Suche nach dem richtigen Hotel war super easy. Bilder und Bewertungen sind zahlreich vorhanden, die ungefähre Lage der Hotels reicht aus um den Weg zu naheliegenden öffentlichen Verkehrsmitteln einzuschätzen, man bekommt also ein umfangreiches Profil von jedem Hotel. Dann fehlt ja nur noch die Buchung.
Die Buchung war ebenfalls sehr einfach und bestand nur aus 3 Schritten: Daten angeben, Zahlungsinformationen angeben und dann folgt der Prozess des „Aufdeckens“. Dabei wird nach einem Countdown der Hotelname und weitere exakte Informationen wie die Adresse, sowie die Kontaktinformationen angezeigt.
surprice-hotels-guenstiger-blind-booking-android-app-buchung-uebersichtsurprice-hotels-guenstiger-blind-booking-android-app-buchung-countdownsurprice-hotels-guenstiger-blind-booking-android-app-buchung-finale

Ich habe nach der Buchung natürlich dieses Hotel mal in den üblichen Hotelvergleichsportalen gesucht und war erstaunt: tatsächlich gab es das Hotel in den Portalen auch und tatsächlich war der App Preis durchschnittlich 30% günstiger als in den Vergleichsportalen! Und das nur, weil man nicht genau weiß wie das Hotel heißt, damit kann ich leben.

Fazit: Ich denke, dass ich in Zukunft SURPRICE Hotels regelmäßig verwenden und den normalen Hotelportalen vorziehen werde. Oder ich informiere mich in den üblichen Portalen und schaue dann bei SURPRICE nach, ob es meine Auswahlhotels dort zufälligerweise günstiger gibt. Denn von den Vergleichsportalpreisen nochmal 20-40% runter ist ja durchaus ein guter Deal.

Dieser Text ist die Kopie einer Rundmail an die Mitarbeiter auf Arbei. Es ist also mehr eine Handlungsempfehlung an Nicht-ITler. Ich denke aber die Tipps sind sehr grundlegend und könnten für viele ITler interessant sein, bzw. so gut wie fertig zum Rumschicken. Von daher:

Große Benutzerprofile und das Problem mit den Anmeldezeiten

Lange PC-Anmeldezeiten, Fehler bei der Profilsynchronisierung, gelöschte Dateien tauchen bei der nächsten Anmeldung wieder auf; (oftmals) typische Anzeichen eines zu großen Benutzerprofils.
benutzerprofile-im-unternehmen-rundmail-vorlage-windows8-anmeldung

Bitte überprüft regelmäßig die Größe eures Benutzerprofils: Im Explorer unter C:/Benutzer Rechtsklick auf euren Benutzernamen -> Eigenschaften. Dort seht ihr die Größe und die Anzahl der Dateien in eurem Benutzerprofil.
benutzerprofile-im-unternehmen-rundmail-vorlage-profileigenschaften

Empfehlenswert: bis 8GB und 20.000 Dateien, alles darüber sollte zum Aufräumen und zur Vorsicht aufrufen.

Anmeldezeit = 30 Sekunden pro 2GB Größe + 30 Sekunden pro 5000 Dateien
Das ist natürlich eine Schätzung und von einigen Faktoren abhängig.

Benutzerprofil reinigen

  • KEINE Cloud-Speicher-Dienste im Benutzerprofil ablegen – Dropbox, Drive, OneDrive usw. legen gerne als Standardordner der Daten das Benutzerprofil fest, das ist SCHLECHT im Unternehmen.
  • Benutzerprofil -> Downloads regelmäßig aufräumen
  • Benutzerprofil -> Desktop regelmäßig aufräumen
  • Regelmäßig die Browserdaten löschen:
    • Firefox -> Einstellungen -> Datenschutz -> „kürzlich angelegte Chronik“ -> [Alles] im Dropdown wählen und die Häkchen bei (mindestens!) „Besuchte Seiten & Download Chronik“, „Cache“, „Offline-Website-Daten“ aktivieren. Cookies, Aktive Logins und eingegeben Formulardaten können das Browsen u.U. erstmal wieder um einen kleinen Prozentsatz beschleunigen.
    • Chrome -> Weitere Tools -> Browserdaten löschen… -> „Gesamter Zeitraum“ im Dropdown wählen, und Häkchen bei (mindestens!) „Browserverlauf“, „Downloadverlauf“, „Bilder und Dateien im Cache“ aktivieren. „Cookies und andere Website- und Plug-in-Daten“ können ebenfalls etwas helfen.
    • Internet Explorer: Diesen Browser bitte NICHT nutzen! Nie. Weder privat noch im Unternehmen.
  • Daten, die ihr über längere Zeit braucht, aber nicht mit einem Projekt (also Gruppenlaufwerk) zu tun hat -> auf Z:/ verschieben. Dies ist euer privates Netzlaufwerk, auf das sonst niemand Zugriff hat. Dieses Laufwerk belastet eure Anmeldezeit nicht.
  • CCleaner

    Zusätzlich dazu mit CCleaner das System reinigen: Auf fast allen PCs sollte mittlerweile CCleaner standardmäßig installiert sein: Startmenü -> CCleaner suchen -> folgende Einstellungen setzen:

    benutzerprofile-im-unternehmen-rundmail-vorlage-ccleaner-windows benutzerprofile-im-unternehmen-rundmail-vorlage-ccleaner-anwendung

    Per Klick auf „Analysieren“ erhaltet ihr eine Schätzung der Daten, die gelöscht werden können. Mit „CCleaner starten“ startet ihr den Reinigungsprozess:
    benutzerprofile-im-unternehmen-rundmail-vorlage-ccleaner-resultat

    Treesize

    Analysiert euer Profil mit den kostenlosen Tool TreeSize Free: Download (im Dropdown bitte „TreeSize.zip (Ausführbar ohne Installation)“ auswählen). Das Tool hilft euch besonders große Ordner oder Dateien ausfindig zu machen:
    benutzerprofile-im-unternehmen-rundmail-vorlage-treesize-free-portable