Dieser Beitrag soll nur alle meine Batch-Softwaredeployments in einer Übersicht zusammenfassen:

Firefox

Stand: 19.09.2016 – Version: 48.0.2 getestet und läuft
Beitrag

Flash

Stand: 19.09.2016 – Version: 23.0 getestet und läuft
Beitrag

Java

Stand: 16.08.2016 – Version: 8u101 getestet und läuft
Beitrag

Neu: Reader DC

Stand: Feb 2018 – Version 2018.009 getestet und läuft
Neue Methode: super-simple Deployment-Guide
AIP Methode: Deployment-Guide

Reader (oldschool, Reader XI)

Stand: 28.07.2015 – Version: 11.0.12 getestet und läuft (deaktiviert)
Beitrag, Update-Kurzfassund 1 und 2

Skype

Stand: 17.03.2016 – Version: 7.21 getestet und läuft (deaktiviert)
Beitrag, Update-Kurzfassung

KeePass 2

Stand: 11.07.2016 – Version: 2.34 getestet und läuft
Beitrag

HipChat (inkl. Uninstaller)

Stand: 19.09.2016 – Version: 4.27.1.1658 getestet und läuft
Beitrag, Uninstaller

Die Aufgabe ist eigentlich trivial: in GMail ein „Senden als“-Konto einzurichten ist kinderleicht, eigentlich. Man benötigt den SMTP Server des Mailservers, inklusive Zugangsdaten. Ist bei 98% der Mailserver und Mailanbieter auch kein Problem, nur die Office365 Kunden müssen aufpassen. Denn Office365 in GMail als „Senden als“ Konto einzurichten erfordert jetzt etwas Recherche.

Der Fehler: smtp.office365.com

Wer mal googelt oder einfach öfter mit Office365 arbeitet, kennt einen SMTP Server: smtp.office365.com
Diesen findet man auch auf so ziemlich jeder Internetseite, egal ob von Microsoft oder anderen Seiten: 0 (Office365 Account-interne Hilfe), 1, 2, 3, 4, 5, usw…

Wer es damit versucht, bekommt vielleicht das hier zu sehen:
Das Bild zeigt den GMail Dialog, in dem das Office365 Konto als Senden Als Account hinzugefügt werden soll. Allerdings erscheint der Fehler "Server response: read error: generic::deadline_exceeded: read timeout code(0)"

„Authentication failed. Please check your username/password.
[Server response: read error: generic::deadline_exceeded: read timeout code(0) ]“

Die Nutzerdaten sind natürlich korrekt, der Fehler steckt woanders. Weder ein Mailverkehr mit dem Domainhoster noch ein Telefonat mit Microsoft (und das ist eigentlich das Traurige daran) brachte Erleuchtung.

Die Lösung: Lokalisierte SMTP-Server

Einige Google Anfragen später wurde ich endlich HIER fündig: Microsoft nutzt für sein Office365 zwar den Ober-Alias smtp.office365.com, dahinter stecken aber lokalisierte Kontinent-SMTP-Server mit eigenen Namen. Und aus irgendeinem Grund – ich weiß an der Stelle auch noch nicht ob das ein Problem von GMail, Office365 oder einer Kombination aus GMail-Domainhoster-Office ist – funktioniert das Einrichten in GMail nicht (mehr?) mit diesem SMTP Alias.
Stattdessen brauch man die SMTP Servernamen des passenden lokalisierten Servers, den bekommt ihr so:

Das Bild zeigt die Recherche des lokalisierten SMTP-Servers mit nslookup in der Windows CMD
outlook-emeaeast.office365.com für Deutschland beispielsweise.

Dass der Hinweis nicht mal von einem Microsoft Supportmitarbeiter kommt, wenn man von Fehlern beim Verbinden mit smtp.office365.com erzählt und sogar den Fehlerscreenshot von oben zeigt, ist beunruhigend.

Nur ein kurzer Beitrag zur Thematik, wie man gelöschte Benutzer eines Active Directory wiederherstellen kann.

Laut eines Microsoft Hilfeartikels kann man das integrierte Windows Server Tool ldp.exe benutzen, welches das Anzeigen und Wiederherstellen von gelöschten Elementen ermöglicht. Dieses Tool ist unglaublich einfach zu bedienen, übersichtlich sowie besonders effektiv…
Das Bild zeigt das unübersichtliche Windows Server Tool ldp.exe, mit dem (angeblich laut Microsoft Hilfe) gelöschte AD-Benutzer wiederhergestellt werden können

Also, Finger weg von ldp.exe.
Statt dessen mal wieder ein Blick auf die Sysinternals Tools, vor allem ADRestore.exe.
Dieses einfache Kommandozeilentool kann in wenigen Sekunden ein AD Objekt wiederherstellen:
Das Bild zeigt die Kommandozeilenausgabe des Sysinternals Tools adrestore.exe, welches recht einfach zu bedienen ist. Mit "adrestore.exe -r [name]" wird ein gelöschtes Benutzerobjekt gefunden und einfach wiederhergestellt.

Vielleicht ebenfalls interessant: die GUI-Version von ADRestore namens „ADRestore.NET:
Das Bild zeigt eine grafische Oberfläche des Kommandozeilentools ADRestore mit vielen Extras und Informationen zu den Objekten

Und ebenfalls einen Blick wert ist diese Sammlung von verschiedensten Active Directory Restore Tools für jede Art von Wiederherstellung: LINK

Google scannt die meisten Webseiten täglich mehrmals. Wenn dabei Malware gefunden wird, wird diese Webseite auf eine Blacklist gesetzt, auf die alle größeren Browser zugreifen. So kann es schnell passieren, dass die eiene Seite bzw. eine bestimmte Unterseite so aussieht:
website-von-google-malware-warnung-befreien-warnung

Wenn nicht die komplette Webseite sondern nur eine Unterseite betroffen ist, sieht die detaillierte Google Malware Warnung vielleicht so aus:
website-von-google-malware-warnung-befreien-detaillierte-warnung

[…] 131 Seiten der Webseite überprüft. Dabei haben wir auf 1 Seite(n) festgestellt, dass Malware […]

Natürlich hat das Bereinigen der Seite, Entfernen von Schadcode und Schließen von Sicherheitslücken die oberste Priorität. Sollte das aber länger dauern oder die Unterseite muss am besten sofort wieder ohne Malware-Warnung erreichbar sein, muss eine schnelle Alternative her.

In diesem Fall ist es eventuell möglich die Malware Meldung mit einem Trick zu umgehen, ohne dass der Nutzer das merkt und ohne ihn zu gefährden.

How-To

1) Erstellt eine Kopie der Unterseite, also eine neue Seite mit exakt den gleichen Inhalten. Diese Seite sieht nun genauso aus wie die Malware-betroffene Seite, ist Malware-frei (wenn tatsächlich nur die eine Unterseite und nicht alle Seiten von der Malware betroffen war), allerdings unter einer anderen URL erreichbar.

2) Richtet eine Weierleitung der URL der beschädigten Seite zur URL der neuen Seite ein. Nutzt dazu entweder die Möglichkeiten eures CMS, eures DNS/Domain-Anbieters oder benutzt .htaccess Weiterleitungen:

Redirect 301 /about /z-portable

Dies würde die Kontaktseite meines Blogs direkt auf die Z-Portable Seite umleiten, mit dem HTTP Statuscode 301.

3) Nun wird der Besucher bei Eingabe der üblichen Malware-URL auf die Malware-freie Seite geleitet. Der Nutzer merkt das nur noch an der falschen URL, das verwirrt natürlich. Also sollte man noch die URL anpassen, damit für den Nutzer nicht mehr ersichtlich ist, dass er auf der Kopie-Seite befindet.
Am einfachsten geht das mit der Browser history API, um genau zu sein

history.pushState

:

// URL Fake
if(window.location.pathname=="/neue-url/") history.pushState({id: 'SOME ID'}, '', '/alte-url');

Damit wird, wenn im Browser die URL domain.tld/neu-url aufgerufn wird, die URL in domain.tld/alte-url in die URL Zeile gepackt. Nun ist nur noch mit Tools ersichtlich, dass eine andere URL aufgerufen wurde.

Beispiel

Die Unterseite meines Blogs /about/, also die Über Mich Seite, wurde von Malware infiziert; jedoch nur diese Unterseite.
Ich erstelle eine Kopie dieser Seite (exemplarisch nehme ich jetzt die Z-Portable Seite als „Kopie“) und leite die About Seite per htaccess darauf um. Nach einem Klick auf „About“ im Menü muss der Inhalt der Z-Portable Seite erscheinen, jedoch muss in der URL /about/ stehen, nicht /z-portable/.
website-von-google-malware-warnung-befreien-trick
Sichtbar ist ein anderer Inhalt, die URL passt.

Anschließen kann man über die Google Webmaster Tools die Neubewertung der Seite initiieren und sollte spätestens 12 Stunden später eigentlich diese Meldung erhalten:

Congratulations! Google has received and processed your malware review request. We did not detect any malware on your site.

Hier noch ein Guide zum Thema Google Malware Warnung: Link.

Nur eine kurze Zusammenfassung, wie ich den Bildschirm meines Android Smartphones gerade auf meinen PC geschickt habe. Live Screen Sharing eben, ziemlich easy:

Android -> PC

Installiert die Mirror Beta App auf eurem Smartphone und die AllCastReciever Extension in eurem Chrome auf dem PC. Letztere startet ihr dann über das Windows Statmenü, es ist keine typische Chrome Erweiterung.

Wenn nun beide Geräte im selben Netzwerk und gestartet sind, müssten sie sich sehen:
android-smartphone-screen-sharing-to-pc-mirror-allcast-devicesandroid-smartphone-screen-sharing-to-pc-mirror-allcast-screen

AllCast fähige Geräte

Aber…

Das Bild ist von der Qualität her okay, es läuft mit ca. 10fps, also leicht ruckelig. Ansonsten macht es aber einen guten Eindruck. Touch wird mit einem Punkt und einer kleinen von dem Punkt ausgehenden „Welle“ auf dem PC symbolisiert.
Ich weiß nicht ob es möglich ist auf ein Gerät zu streamen, dass nicht im selben LAN/WLAN ist, praktisch via IP. Neben PCs funktioniert das auch auf Apple TV und Fire TV. Übertragung zum Chromebook funktioniert angeblich nicht.
Und ich habe, weil es schnell gehen musste, mir noch keine alternativen Anbieter für Android->PC-Screensharing rausgesucht, vielleicht gibt es bessere Apps dafür. Die Bewertungen des AllCast Recievers sind auch mäßig, vermutlich gibt es für die PC-Seite auch bessere Empfänger.
Kennt jemand gute Screensharing Lösungen?

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)