MySQL Autostart Probleme unter Ubuntu

Auf einem Ubuntu 14.04 Server startet MySQL nicht automatisch obwohl per

sudo update-rc.d mysql defaults

der Autostart aktiviert wurde. Grund ist die Datei

/etc/init/mysql.override

Diese Datei löschen, dann klappt der Autostart.

Microsoft .NET Framework 3.5 auf Server 2012 R2 installieren

Man benötigt den Installationsdatenträger von Windows Server 2012 R2. Von diesem läßt sich das .NET Framework 3.5 nachinstallieren wenn die Installation per Gui (Hinzufügen von Rollen und Features) fehlschlägt.

dism /online /enable-feature /featurename:NetFX3 /all /Source:d:\sources\sxs /LimitAccess

Windows 10 – Massenaktivierung

Das Zeitfenster für das kostenlose Upgrade von Windows 7/8 auf Windows 10 endet bekannterweise am 29.7.2016.

Da ich im Unternehmen nicht mal schnell hop hop die Rechner auf Windows 10 upgraden möchte/kann, mir aber die Option für ein späteres (kostenloses) Upgrade wahren möchte, kam mir die Idee die Windows 10 Aktivierung der Rechner schon im Vorfeld durchzuführen. Hintergrund ist die Vorgehensweise zur Aktivierung von Windows 10 aus einem installierten aktiviertem Windows 7/8 ohne dabei das Setup zu bemühen.

Wie auf zahlreichen Seiten beschrieben (Bsp. heise.de) läßt sich mit dem Programm gatherosstate.exe aus dem Installationsdatenträger von Windows 10 eine sog GenuineTicket.xml erzeugen. Mit dieser Datei läßt sich eine frische Windows 10 Installation auf diesem Rechner aktivieren (Nach der Installation einfügen in C:\ProgramData\Microsoft\Windows\ClipSVC\GenuineTicket, Neustart, Onlinezwang!).

Die Idee ist nun also, einfach gatherosstate.exe auf jedem Rechner im Netz auszuführen der für ein evtl. Windows 10 Upgrade in Frage kommt. Um das ganze zu automatisieren, habe ich ein kurzes AutoIt Script geschrieben welches ich in kompilierter Fassung (als Win10UpdPrep.exe Datei) zusammen mit gatherosstate.exe per OCS Client Management auf alle betreffenden Rechner im Netz verteile. Das Script ruft gatherosstate.exe auf, wartet bis es fertig ist, prüft ob die XML Datei vorhanden ist, benennt diese um (Computernamen voranstellen) und mailt diese Datei dann an ein IT Postfach. Somit sammle ich die XML Files von allen Rechnern ein. Eine lokale Kopie lasse ich auch noch auf dem jeweiligen Rechner liegen.

Das AutoIt Script stelle ich HIER zur Verfügung.

Bleibt jetzt noch die Frage, ob die Aktivierung auf diesem Wege auch noch nach dem 29.7.2016 funktioniert.

Ich werds berichten.

[UPDATE 04.08.2016]

Wie beinah zu erwarten war, funktioniert die Aktivierung in dieser Form jetzt nicht mehr.

Flashplayer – eigener interner Update Service

flash-logoDie Anzahl gefährlicher Sicherheitsücken im Flashplayer zwingt Hersteller Adobe immer wieder, selbst zwischen den festgelegten Patchdays, Korrekturen für den Flashplayer zu veröffentlichen. Um diese schnellstmöglichst weitgehend automatisiert auszurollen, nutz(t)e ich für die Updates auf den Rechnern im Unternehmen die Funktion des Flashplayers, einen internen Webserver ansprechen zu können. In diversen Anleitungen und Dokus seitens Adobe wird dieses Szenario mehr oder weniger (eigentlich eher weniger) ausführlich beschrieben. Darum bereite ich das hier mal etwas auf.

Konfiguration des Flashplayers:

Der Flashplayer läßt sich mittels einer lokalen Konfigurationsdatei namens mms.cfg konfigurieren. Diese Datei befindet sich, je nach Ausführung des Flashplayers und der Windowsversion, ob 32 oder 64 bit , im Verzeichnis C:\Windows\SysWOW64\Macromed\Flash\mms.cfg (32 bit Flashplayer auf 64 bit Windows) oder C:\Windows\System32\Macromed\Flash\mms.cfg (64 bit Flashplayer oder 32 bit Flashplayer auf 32 bit Windows). Ist sie nicht vorhanden, kann man sie mittels Texteditor erstellen.

Folgende Parameter gehören in die Datei:

AutoUpdateDisable=0
SilentAutoUpdateEnable=1
SilentAutoUpdateServerDomain=Updateservername

AutoUpdateDisable setzt man auf 0 und aktiviert somit AutoUpdate. SilentAutoUpdateEnable bedeutet dem Updatedienst, seine Dienste unauffällig im Hintergrund zu erledigen, SilentAutoUpdateServerDomain betitelt schließlich den Server, auf welchem der Updatedienst nach Updates suchen soll. Dieser letzte Eintrag ist wichtig im Hinblick auf die folgende Beschreibung des Webservices.

Ein vorhandener Webserver stellt in einem fest von Adobe vorgegebenen Pfad die Dateien für das Update des Flashplayers zur Verfügung. Der Client spricht zwingend per https mit dem Webserver was bei der Einrichtung etwas mehr Aufwand wg. einem vertrauenswürdigen Zertifikat mit sich bringt (Sofern keine eigene CA im Einsatz, ggf. selbst signiert und über AD auf die Clients verteilt, es darf beim Aufruf der Serveradressen KEIN ssl Fehler auftreten).

Im Webrootverzeichnis muss folgender Ordnerpfad angelegt werden:

/pub/flashplayer/update/current/sau

Ein Aufruf mittels Browser sollte keine Fehlermeldung (auch keinen SSL-Fehler) produzieren:

https://Updateservername/pub/flashplayer/update/current/sau

In diesen Ordner muss nun ein Updatepaket von Adobe entpackt werden. Adobe verteilt es über die Seite https://www.adobe.com/de/products/flashplayer/distribution3.html und nennt das Paket dort „Ressourcen für Updates im Hintergrund herunterladen“. Gemeint ist das .cab Archiv fp_background_update.cab. Diese Datei lädt man also herunter, entpackt sie und lädt die entpackten Daten dann samt Unterordnerstruktur in o.g. Pfad. Die Pfadstruktur sieht dann in etwa so aus (Stand Nov. 2015, Versionen variieren):

https://Updateservername/pub/flashplayer/update/current/sau/currentmajor.xml
https://Updateservername/pub/flashplayer/update/current/sau/11/install/install_all_mac_pl_sgn.z
https://Updateservername/pub/flashplayer/update/current/sau/11/install/install_all_win_ax_sgn.z
https://Updateservername/pub/flashplayer/update/current/sau/11/install/install_all_win_pl_sgn.z
https://Updateservername/pub/flashplayer/update/current/sau/11/xml/version.xml
https://Updateservername/pub/flashplayer/update/current/sau/18/install/install_all_win_ax_sgn.z
https://Updateservername/pub/flashplayer/update/current/sau/18/install/install_all_win_pl_sgn.z
https://Updateservername/pub/flashplayer/update/current/sau/18/xml/version.xml
https://Updateservername/pub/flashplayer/update/current/sau/19/install/install_all_win_ax_sgn.z
https://Updateservername/pub/flashplayer/update/current/sau/19/install/install_all_win_pl_sgn.z
https://Updateservername/pub/flashplayer/update/current/sau/19/xml/version.xml

Der Webserver läuft bei mir auf einer vorhandenen Ubuntu VM mit. Ein Shellscript prüft jede Nacht ob eine neue Updatedatei (fp_background_update.cab) bei Adobe zum Download bereit liegt. Das erledigt das Tools wget mit der Option –spider welche Dateien nicht herunterlädt sondern nur deren Existenz überprüft. Das Ergebnis wird nach dem String „Last-Modified“ geparst und eigentlich wird nicht das Datum sondern nur der Ergebnisstring verglichen. Das reicht aber aus um festzustellen, daß sich etwas an der Datei geändert hat. Ist dies der Fall, wird diese heruntergeladen, entpackt und ersetzt die alten Dateien auf dem Webserver.

Mein Script downloadflash.sh welches jede Nacht ausgeführt wird:

#!/bin/bash
#
# Update der Adobe Flashkomponenten fuer internen Update Service
# Die Fortschrittsanzeige beim Download, für Testzwecke , stammt von:
# http://fitnr.com/showing-file-download-progress-using-wget.html
#
# 02.11.2015, kw
#

#aktuelles Datum
currentDate= date
#Logfile
log=/flashupdate/update.log

#Downloadfunktion zeigt einen prozentualen Downloadfortschritt an
download()
{
 local url=$1
 local targ=$2
 echo -n " "
 wget --progress=dot $url -O $targ 2>&1 | grep --line-buffered "%" | \
 sed -u -e "s,\.,,g" | awk '{printf("\b\b\b\b%4s", $2)}'
 echo -ne "\b\b\b\b"
 echo " DONE"
}
#Pruefung aktueller Status der Updatedatei und Bindung an Variable $adobecabdate -> Suche (grep) nach "Last Modified" -> xargs entfernt ggf. Leerzeichen/Tabs vor und nach String
adobecabdate=$(wget --server-response --spider http://download.macromedia.com/pub/flashplayer/current/licensing/win/fp_background_update.cab 2>&1 |grep Last-Modified | xargs)


#Prüfung aktueller Status der Updatedatei auf dem lokalen Server und Bindung an Variable $localcabdate
localcabdate=$(wget --server-response --spider http://localhost/pub/flashplayer/update/current/sau/fp_background_update.cab 2>&1 |grep Last-Modified | xargs)

# Zugriff Logfile
touch $log

# Vergleich letzter Status gg. aktueller Status. Wenn gleich, Scriptende. Wenn nicht gleich, Download.
if [ "$adobecabdate" = "$localcabdate" ]
 then
 echo $currentDate >>$log 2>1
 echo "Aktueller Wert Adobe: " $adobecabdate " - Letzer Wert lokal: " $localcabdate >>$log 2>1
 echo "Keine neue Version." >>$log 2>&1
 exit 1
 else
 # Zielordner bereinigen
 echo $currentDate >>$log 2>1
 echo "Aktueller Wert Adobe: " $adobecabdate " - Letzer Wert lokal: " $localcabdate >>$log 2>1
 echo "Neue Version Adobe: " $adobecabdate >>$log 2>&1
 echo "Zielordner bereinigen" >>$log 2>&1
 rm -rf /var/www/html/pub/flashplayer/update/current/sau/* >>$log 2>&1

 download http://download.macromedia.com/pub/flashplayer/current/licensing/win/fp_background_update.cab /var/www/html/pub/flashplayer/update/current/sau/fp_background_update.cab
fi


# Datei entpacken (-d = Zielverzeichnis)
cabextract -d /var/www/html/pub/flashplayer/update/current/sau/ /var/www/html/pub/flashplayer/update/current/sau/fp_background_update.cab >>$log 2>1

Und damit wars das auch schon mit der Konfiguration. Ein simpler https erreichbarer Webspace genügt um dem Flashplayer mittels einer Konfigdatei das leise Updaten über einen internen Server zu vermitteln. Das macht dann Sinn, wenn die Clients nicht ungezügelt externe Updatedienste im Internet kontaktieren sollen oder dürfen.

Stolpersteine:

Es gibt für dieses Szenario ein paar kleine Hürden.

Wie konfiguriere ich den Webserver bzw. die Clients für den fehlerfreien https Zugriff .

Eine hilfreiche Anleitung, wie man selbstsignierte Zertifikate erstellt und auch verteilt bietet dieser Artikel von Mark Heidbrink auf faq-o-matic.net. Wichtig hierbei ist, daß der gewählte Common Name (CN) für das Zertifikat dem Wert von SilentAutoUpdateServerDomain aus der mms.cfg entspricht. Erstellt man ein Zertifikat mittels selfcert, gehört dieses auf jedem PC in den Speicher für Vertrauenswürdige Stammzertifizierungsstellen. Darum bietet sich ein Rollout per Gruppenrichtlinie an.

Wie bekomme ich die Datei mms.cfg auf die Clients

Die mms.cfg kann man manuell, per Loginscript oder bspw. Clientmanagement, in meinem Fall OCS Inventory, auf die Clients kopieren.

Wie zwinge ich den Flashplayer JETZT ein Update zu suchen.

Zum Update des Flashplayers wird zusammen mit diesem ein Dienst namens „Adobe Flash Player Update Service“ installiert. Dieser steht auf Startart Manuell und ist beendet. Startet man ihn von Hand, beendet er sich augenblicklich wieder. Dieser Dienst startet standardmäßig jede Stunde. Dabei prüft er aber nicht, ob ein Update vorliegt sondern er prüft nur ob es mal wieder an der Zeit ist, nach neuen Updates zu suchen. Ich meine irgendwo gelesen zu haben, daß er erst nach mind 24 Std. seit dem letzten Update erneut nach Updates sucht. Daher verbraucht der Dienst sehr wenig Resourcen. Er prüft lediglich anhand eines Zeitstempels in der Registry ob die Zeit für eine neue Updatesuche gekommen ist.

Um nun nach der Einrichtung oder bei einer evtl. Fehlersuche den Flashplayer Update Service zum Update zu zwingen, genügt es, den Wert des Registrykeys

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Macromedia\FlashPlayerSAU\LastUpdateCheck

zu löschen (32 bit Flashplayer auf 64 bit Win). Wenn man anschließend den Update Service einmal von Hand startet, lößt dieser eine echte Updatesuche aus.

Windows 10 Build 10130 – Update mittels ISO File

Teste zur Zeit Windows 10 am eigenen Arbeitsplatz. Habe dabei immer Probleme mit Windows Update sodass bspw. ein Upgrade auf eine neuere Build Version nicht auf diesem Wege funktioniert. (bspw. Fehler 0x80072efd)

Mittlerweile nun schon zum zweiten Mal habe ich ein Update mittels ISO File aus Windows heraus gestartet. Dafür habe ich dieses in einen Ordner auf die Platte entpackt und per Setup.exe die Installation angeworfen. Läuft soweit durch, dauert ca ne Stunde und behält alle Einstellungen bei.

Beim letzten Build 10074 ging hinterher das Startmenü und die Suche mal wieder nicht (Dieses Problem hatte ich schon nach meinen ersten Tests mit einer früherern Buildversion). Habe heute mittels eines 10130 ISOs erneut ein Update gemacht welches erfolgreich durchlief. Jetzt passen auch Startmenü und Suche wieder. Leider gibt’s für Build 10130 kein offizielles ISO File weshalb man sich aus fragwürdigen Quellen bedienen muss. Ich habe mich bei einem dieser Links bedient: Deskmodder

Shortcut zu Modern UI Apps

Um einen Shortcut zu Modern UI Apps auf dem Desktop zu erstellen, kann man sich folgende Verknüpfung anlegen:

%windir%\explorer.exe shell:::{4234d49b-0245-4df3-b780-3893943456e1}

modui1

Hintergrund: Ich wollte mir die Tech. Preview von Windows 10 Enterprise ansehen. Beim installierten Build 9926 kann der Fehler auftreten, daß das Startmenü nicht funktioniert und auch die Suchfunktion nicht auf Eingabe reagiert. Per Windows Update gibt es bereits Abhilfe. Allerdings läßt sich Windows Update nicht mehr über einen Link in der Systemsteuerung aufrufen sondern nur über die Modern UI. Und an die kam ich nicht mehr heran, da das Startmenü nicht funktionierte.

Mit o.g. Shurtcut kann man anschließend die Settings und damit Windows Update aufrufen.

modui2

Veeam Endpoint Backup FREE

Der neueste Wurf aus dem Hause Veeam ist die kostenlose Backuplösung „Veeam Endpoint Backup FREE“ (i.folg. VEBF). Laut Produktbeschreibung ist man bei Veeam der Ansicht, daß Backuplösungen für Endgeräte wichtig sind aber dennoch nichts kosten sollten. Eine lobenswerte Einstellung wenn auch sicher nicht selbstlos. Sein Geld verdient das Unternehmen mit Backuplösungen für virtuelle Umgebungen. Am bekanntesten dürfte wohl „Veeam Backup & Replication“ sein. „Endpoint Backup FREE“ auf ein Anfixprodukt für das restliche Produktportfolio zu reduzieren wird dem aber nicht gerecht. Das Tool scheint mächtig und bietet eine Menge Potential für die kleinen und großen Stolpersteine im Backup Alltag.

Installation:

Für den Download muss man sich, sofern man noch kein Konto bei Veeam besitzt, kostenlos registrieren. Hier sammelt der Hersteller fleißig Kontaktdaten. Ein Lizenzschlüssel ist für die Installation der Software nicht erforderlich. Die Größe des Downloadpakets beträgt ca. 178 MB.

Beim Start des Setup wird geprüft, ob DotNet 4.x installiert ist. Fehlt es, bricht das Setup ab. DotNet 4.x kommt nicht mit dem Installer mit sondern muss manuell installiert werden. Passen die Systemvoraussetzungen, spült die Installation auch eine MS SQL Express Installation (LocalDB) mit auf den Rechner. Unterstützt werden lt. Hersteller die Windows Versionen ab 7 SP1 über Windows 8/8.1 bis hin zu Server 2008 R2 sowie Server 2012 R2. Eine Installation in der Tech. Preview von Windows 10 (Build 10041) klappt nicht.

Konfiguration:

Ist die Installation erfolgreich abgeschlossen, startet, Veeam üblich, ein Assistent um ein sog. Recoverymedium zu erzeugen. Dabei wird (standardmäßig) ein ISO File mit einer Bootumgebung inkl der aktuell installierten und notwendigen Treiber erstellt. Dieses ISO File läßt sich später auf CD oder USB Stick (siehe Rufus) entpacken um im Desasterfall den zu recovernden Rechner damit zu booten.

Soll das Backup auf eine externe USB Disk/Stick erfolgen, kann dieser im nachfolgenden Schritt ebenfalls mittels eines Assistenten geführten Setups vorbereitet werden.

Job Setup/Backup:

Nun zum eigentlichen Kernpunkt der Software, dem Backup. Die Konfiguration erfolgt, wie sollte es anders sein, per Assistent. Die Auswahlmöglichkeiten sind klar beschrieben. Ob nun kompletter Rechner, volumebasiert oder doch dateibasiert, man hat reichlich Auswahl die zu sichernden lokalen Daten zu bestimmen. Dann noch ein Backupziel gewählt, ein Zeitpunkt und fertig ist der Sicherungsauftrag. Die zeitlichen Auswahlkriterien fallen mit täglich – ja / nein – etwas spärlich aus.  Anonsten wirklich simpel zusammen zu klicken und wenn man möchte, rennt die erste Sicherung im Anschluss auch sofort los.

Interessant dabei, daß das Backup die VSS Möglichkeiten des Systems nutzt und damit auch ein konsistentes Backup bspw. eines Exchange Servers möglich ist. Die Exchange Logs werden nach erfolgreichem Backup entsprechend gelöscht.

In einem zweiten Test wurde eine Workstation, welche sonst mit Acronis True Image 2014 Home gesichert wird, mit VEBF gesichert. Dabei fiel auf, daß das initiale Vollbackup deutlich kleiner ausfällt als das Acronis File (Einstellung Komprimierung: Standard).

veeam_acronis_comp

Veeam vs. Acronis Vollbackup

vebf_backupprogress

Fortschrittsanzeige während des Backup

Recovery:

Ein Backup ist nur so gut wie die tatsächlich wiederherstellbaren Daten. Auch wenn es ausgelutscht klingt, zu einer Datensicherung gehört unbedingt auch ein (bestenfalls regelmäßiger) Test, ob eine Wiederherstellung funktioniert. Das spart im Falle eines Notfalls Zeit, Nerven und schützt entsprechend vor Datenverlust.

Das Recovery erfolgt unter Windows, na wie wohl, per Assistent. Es läßt sich auswählen ob Dateibasiert oder Volumebasiert wiederhergestellt werden soll. Das Recovery des Systemlaufwerks läßt sich unter Windows nicht anstarten.

Will man eine Windowsinstallation aus einer Sicherung zurück spielen, benötigt man das eingangs erstellte Wiederherstellungsmedium. Damit wird ein eine WinPE Umgebung gebootet die den Zugriff auf die Backupfiles ermöglicht. Das Tastaturlayout ist dabei Englisch. Gut zu wissen wenn man Zugangsdaten bspw. zu einem Netzwerkshare eintippen möchte. Eine Wiederherstellung eines kompletten Rechner funktionierte in einem ersten Test (Win Server 2008 R2 mit Exch 2010 – VM) problemlos. Darüber hinaus bringt die Boot-CD noch interessante weitere Tools mit. Eines davon ist ein Tool für ein Passwort-Reset. Damit läßt sich das Kennwort des lokalen Administrator Accounts löschen (es läßt sich kein eigenes neues vergeben). Startet man den bearbeiteten Rechner anschließend normal neu, kann man sich als lokaler Administrator ohne Kennwort anmelden. Kann man sich mal merken. Funktionierte auf der beschriebenen Test-VM fehlerlos.

veeamtools

Fazit:

Simple und effektiv. Die schmale Oberfläche ist zweckmäßig, die Kompression der Backupdaten beeindruckend und das Ganze für lau. Meiner Acronissicherung droht wohl in naher Zukunft das Aus. Darüber hinaus gefällt, daß es keine Einschränkung auf Client Betriebssysteme gibt. Somit lassen sich auch kleine Serverumgebungen kostengünstig und effektiv sichern. Für die virtuelle Welt bietet Veeam bereits das kostenlose „Veeam Backup Free Edition“ welches den lizenzrechtlichen und somit funktionellen Beschränkungen des Hpyervisors (in der kostenfreien Version) unterliegt. Darüber hinaus steht auch nicht immer ein Backupserver zur Verfügung sondern nur ein NAS als Datengrab in der Ecke. Mit VEBF kann man nun, neben physischen Maschinen, zwar nicht hypervisorbasiert aber immerhin aus der VM heraus, effizient und kostengünstig komplette Systeme sichern.

Wünschenswert wäre für die Zukunft eine flexiblere Zeitplanung sowie die Möglichkeit von Statusbenachrichtigungen.

Anmerkung: zum Zeitpunkt dieses Review verwendete Version: 1.0.0.1954