VMware ESXi: Lokale Festplatte als Raw Device Mapping (RDM) einbinden

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Keine Bewertung vorhanden)
Loading...

In der kostenlosen bzw. Free Variante von VMWare ESXi Hypervisor ist es mit dem VSphereClient als auch der WebUI nicht möglich, eine lokale Festplatte direkt in eine VM zu mounten.

Jedoch Mithilfe des CLI Tools vmkfstools vom VMWare lässt sich dies manuell erledigen. Das Tool erzeugt eine Art symbolischen Link zu der Festplatte und erzeugt eine vmdk Datei, welche dann einfach einer VM als neue Festplatte zugeordnet werden kann.

Verbinden Sie sich via SSH zu Ihrem ESXi Host

Lassen Sie sich alle verfügbaren Festplatten anzeigen mit dem Befehl: ls -l /vmfs/devices/disks. Ihre Festplatte ist dort nun mehrfach gelistet, im Regelfall beginnt der Name der Festplatte mit t10.* oder vml.*. Der korrekte Name ist der Eintrag, der mit dem genannten Prefix beginnt ohne z.B. „:1“ endet, somit wäre das hier der korrekte Name: t10.ATA_____WDC_WD40EFRX2873DSFHR_________________________WD2DWCC46DFS7GSA.

Nun ist entscheidend in welchem Modus Sie die Festplatte einbinden möchten, mehr Details verrät der KB2009226 Eintrag bei vmware. Ich habe mich für den physikalischen Modus entschieden, da dieser keine Daten zwischenspeichert sondern direkt auf die Festplatte schreibt.

virtual compatibility RDM:
vmkfstools -r /vmfs/devices/disks/ /vmfs/volumes///.vmdk
 
physical compatibility RDM:
vmkfstools -z /vmfs/devices/disks/ /vmfs/volumes///.vmdk

Mit echten Daten sieht das dann so aus:

vmkfstools -z /vmfs/devices/disks/t10.ATA_____WDC_WD40EFRX2873DSFHR_________________________WD2DWCC46DFS7GSA /vmfs/volumes/datastore1/internal_disks/wd40.vmdk

Rechtsklick auf eine VM -> Einstellungen bearbeiten -> Hinzufügen -> Festplatte -> Vorhandene Festplatte verwenden -> Suchen Sie Ihren Ordner mit der vmdk Datei, wählen danach noch den Disk-Controller und Bestätigen das Hinzufügen.
Das ganze sieht dann so aus:

Entfernen kann man die Festplatte am einfachsten über den Datastore-Browser.

Twonky Media Server auf der Synology DiskStation (DS914+)

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Keine Bewertung vorhanden)
Loading...

Der in die Synology integrierte DLNA Media Server hat mich nicht zufriedengestellt, zumal ich schon lange Nutzer von TwonkyMedia Server bin.

Um TwonkyMediaServer auf der Synology Diskstation installieren zu können, müssen Sie zuerst herausfinden, welche CPU in Ihrem NAS steckt, dies können Sie via folgendem Befehl tun.
(Ich setze vorraus, dass Sie bereits mit dem admin-Konto per SSH verbunden sind)

cat /proc/cpuinfo

Im Falle der DS914+ ist es eine Intel CPU, wir setzen daher also die 64Bit Linux Variante von TwonkyMediaServer ein. Im Falle einer Marvell CPU ist es die ARM Version von TwonkyMediaServer.
Downloaden Sie hier im (aktuellen) Verzeichnis 8.3 -> Linux x86-64 glibc 2.9

Ab jetzt wirds etwas kniffelig, wir brauchen 2 Ordner, den Programm-Ordner und einen AppData Ordner. Letzter liegt normal unter /var/twonky, das /var Verzeichnis ist aber auf der Synology Diskstation im Volumen begrenzt, dafür haben wir eine andere Lösung.

Als Programm-Ordner wählen wir /opt/twonky, als AppData Ordner legen Sie einen Ordner unter /volume1/@twonky an und legen eine symbolische Verknüpfung aus /var/twonky dort hin.

# Zu root wechseln
sudo su -
 
# Programm-Ordner
mkdir /opt/twonky
 
# AppData-Ordner
mkdir /volume1/@twonky
ln -s /volume1/@twonky/ /var/twonky
ln -s /volume1/@twonky/ /var.defaults/twonky

Entpacken Sie nun das heruntergeladene ZIP Archiv in den Ordner /opt/twonky und passen Sie in der twonky.sh Datei die Variable WORKDIR1 auf /opt/twonky an.

Starten Sie nun den TwonkyMediaServer kurz und beenden Sie Ihn daraufhin direkt wieder, damit wird unter /var/twonky die Datenbank initial angelegt.

/opt/twonky/twonky.sh start
/opt/twonky/twonky.sh stop

Zur Sicherheit noch folgendes hinterher:

killall twonkystarter
killall twonkyserver

Passen Sie nun noch folgende Parameter initial in der /volume1/@twonky/twonkyserver-default.ini an:

contentbase=/volume1/
ignoredir= Ans Ende setzen: ,@eaDir

Das wars, jetzt kann der Server erneut gestartet werden und über den Browser konfiguriert werden

/opt/twonky/twonky.sh start

Aufrufbar ist er unter http://IP-der-NAS:9000
Das Logfile ist hier zu finden: /tmp/twonkyserver-log.txt bzw. hier aufrufbar: http://IP-der-NAS:9000/rpc/log_getfile

Nun benötigen wir noch das Startscript, welches TwonkyMedia bei jedem Start der NAS automatisch startet, hierzu ist es notwendig Root Rechte zu erlangen, dazu wechseln Sie ins root Konto:

sudo su -
cd /usr/local/etc/rc.d

Legen Sie dort nun folgende Datei via „vim S99twonky.sh“ an:

# Twonky DLNA Server
cd /opt/twonky && [ -x /opt/twonky/twonky.sh ] && /opt/twonky/twonky.sh start > /tmp/twonkystart.log 2>&1

Speichern Sie und ab sofort startet TwonkyMediaServer automatisch beim Boot Ihrer NAS.

Windows Defender Updates per WindowsUpdate API installieren

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Keine Bewertung vorhanden)
Loading...

Wir standen vor der Herausforderung, dass es Systeme bei unseren Kunden gibt, welche zwar Windows Updates herunterladen dürfen, diese aber erst nach Prüfung installiert werden. Bis Windows 10 wurden die Windows Defender Updates unabhängig von der Windows Update Einstellung installiert. Mit Windows 10 ist das jetzt anders, d.h. auch die Defender Updates werden nur heruntergeladen aber nicht installiert.

Lange haben wir nach einer passenden Lösung gesucht -> und gefunden. Wir setzen jetzt auf ein Windows Powershell Modul, ein kleines Script sowie die Windows Aufgabenplanung.

Das Modul nennt sich PSWindowsUpdate und kann via folgendem Befehl installiert werden:
Öffnen Sie eine Powershell mit Adminrechten, geben Sie dann folgenden Befehl ein:

Install-Module -Name PSWindowsUpdate

Es wird nun gefragt, ob Sie das Modul installieren wollen, weiterhin ist noch ein Zusatzmodul NuGet provider benötigt. Alle Details zu dem Zusatzmodul finden Sie hier. Bestätigen Sie beide Nachfragen jeweils mit y.

Nun muss die ExecutionPolicy noch angepasst werden:

Set-ExecutionPolicy RemoteSigned

Damit sind alle Vorbereitungen abgeschlossen. Speichern Sie folgendes Skript als Powershell Skript ab:

$basePath = "C:\Users\User1\Downloads\DefenderWsusUpdater"
$pidFile = "$basePath\defenderUpdateTool.pid"
$logFile = "$basePath\defenderUpdate.log"
 
$date = Get-Date
 
If (Test-Path $pidFile){
  # // File exists
  $id = Get-Content -Path $pidFile
  Stop-Process -id $id -Force
 
    while ($true)
    {
      Try {
            [IO.File]::OpenWrite($pidFile).close()
            echo "[$date] Process $id kill" >> $logFile
            Break
          }
 
        Catch {}
     }
  del $pidFile
}
 
echo "[$date] Process $pid successfully started" >> $logFile
 
echo $pid > $pidFile
 
Get-WUInstall -title "Windows Defender" -AcceptAll -verbose >> $logFile
 
C:\Windows\System32\wuauclt.exe /reportnow
 
del $pidFile
 
echo "[$date] Process $pid successfully finished" >> $logFile

Hier gilt es anzumerken, über die API bleibt das Installieren von Windows Defender Updates regelmäßig hängen und das Script beendet sich nicht. Hierfür habe ich bis heute keine Lösung gefunden, daher beendet das Script beim erneuten Start automatisch den Vorgängerlauf. Spannend, trotz des Hängenbleibens wird das Update aber fertig installiert.

Das Skript können Sie jetzt in der Powershell schon einmal manuell an der Konsole starten, es sollte ein Logfile angelegt werden und Sie sehen eine Ausgabe in der Konsole. Im nächsten Schritt werden wir dies noch automatisieren.

Öffnen Sie dazu den Aufgabenplaner und legen eine neue Aufgabe an. Ich empfehle den Task als Administrator ausführen zu lassen, Unabhängig von der Benutzeranmeldung und auf höchsten Berechtigungen.
Den Trigger konfigurieren Sie wie folgt:

Aufgabenplaner Trigger

Als Aktion fügen Sie einen Programmstart hinzu: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe mit den folgenden Argumenten: -command „C:\Users\User1\Downloads\DefenderWsusUpdater\installWindowsDefenderUpdates.ps1“.

Letzter wichtiger Schritt, auf dem Reiter Einstellungen müssen Sie ganz unten die Regel, falls die Aufgabe bereits ausgeführt wird anpassen auf: Neue Instanz parallel ausführen

Wir nutzen das Script in Verbindung mit einem lokalen WSUS, welcher alle 4 Stunden nach neuen Updates sucht. Das Script funktioniert aber auch Problemlos wenn kein eigener WSUS betrieben wird.

WSUS: Windows 10 Anniversary Update 1607 lädt nicht herunter

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Keine Bewertung vorhanden)
Loading...

Wir betreiben bei unseren Kunden u.a. auch WSUS Server (Windows Update Server), seit 16.08. wird darüber auch das Windows 10 Anniversary Update 1607 verteilt. Leider brach der Download regelmäßig auf den Clients ab. Im Report des WSUS Servers konnten wir diese Fehlermeldung finden:

Das folgende Update konnte wegen des Fehlers 0x8024200d nicht installiert werden

In diesem Fall handelt es sich um ein Windows Server 2012 Standard. Vorraussetzung damit das Update grundsätzlich funktioniert, ist das Update KB3095113 für den WSUS Server. Dies war hier aber bereits installiert.

Dieser Fehler weißt im Regelfall auf ein Download/Zugriffsproblem hin. Die Suche nach der Ursache gestaltete sich extrem schwierig. In der Umgebung beim Kunden setzen wir mehrere PC-Gruppen ein, u.a. auch eine PreLive Gruppe auf der wir große Updates verproben. Der erste Ansatz, es ist ein Client Problem und auf anderen PCs funktioniert es, war nicht der richtige Weg, denn auch dort funktionierte es nicht. Nach stundenlangem Durchsuchen der Client-Logs konnten wir dort keinen Fehler erkennen, auch die WSUS Logs sahen sauber aus.

Da der gesamte WSUS Inhalt per IIS durchs Netzwerk gestreamed wird, haben wir uns dann die IIS Logs (c:\inetpub\logs\LogFiles) angesehen, dort konnten wir feststellen, dass die *.esd Dateien aus dem Update nicht gefunden wurden und ein 404 Fehler geworfen wurde:

HEAD /Content/A5/97864A30A8060D33CDE0C31801B38432085BE8A5.esd - 8530 - *********** Microsoft-Delivery-Optimization/10.0 - 404 3 50 1

Weitere Recherchen haben ergeben, dass dem IIS scheinbar ein MIME Type dafür fehlt. Über die Serververwaltungstools haben wir nun in der IIS-Administration -> MIME-Typ -> einen neuen Mime-Type hinzugefügt:

.esd
application/octet-stream

Sofort funktionierte nun der Download via WSUS.