vSphere: Alle eingelegten ISO-Dateien in VMs finden (via PowerCLI)

Alle CD’s in VMs finden: Ab und zu möchte ich eine ISO aus einem Datastore löschen, das dann mit einem Fehler fehlschlägt.

Die Datei [DATASTORE] isos/SW_DVD9_Win_Server_STD_CORE_2019_64Bit_German_DC_STD.ISO kann nicht gelöscht werden.

Das liegt meistens daran, das die ISO noch in einem Gast gemountet oder sogar verbunden ist.

Wie kann man also ISO Dateien in allen seinen VMs suchen?

Lösung

Alle VMs mit verbundenen ISO-Dateien via PowerCLI auflisten:

Get-VM | Get-CDDrive | select @{N="VM";E="Parent"},IsoPath | where {$_.IsoPath -ne $null}

… ISO-Dateien aus allen VM’s entfernen:

Get-VM | Get-CDDrive | where {$_.IsoPath -ne $null} | Set-CDDrive -NoMedia -Confirm:$False

vSphere ESXi ISO Image download mit ESXi-Customizer-PS Fehler [WinError 10054]

In letzter Zeit häufen sich die Fälle, in denen man mit dem bewährten PowerShell Script ESXi-Customizer-PS.ps1 von V-Front keine aktuelle ISO mehr herunterladen kann.

Windows Meldet dann nur noch einnen „enexpected error“.

An unexpected error occurred:
[WinError 10054] Eine vorhandene Verbindung wurde vom Remotehost geschlossen

Lösung

Die Ursache des Fehler kennen wir nicht, aber es funktioniert dann immernoch sofort der „Umweg“ über das Offline Zip-Bundle:

.\ESXi-Customizer-PS.ps1 -ozip

gefolgt von

.\ESXi-Customizer-PS.ps1 -izip <ESXi-bundle-ZIP-File>.zip

Dann hat man nach praktisch der selben Zeit das selbe ISO fertig.

KB4056892 und Intel-CPU unter Windows 10: Ereignis „Es ist ein korrigierter Hardwarefehler aufgetreten“ WHEA Logger ID 17

Manchmal tritt der Fehler 17 des WHAE-Loggers (Windows Hardware Error Architecture) auf. Diese Meldung besagt in der Regel nur lapidar:

Es ist ein korrigierter Hardwarefehler aufgetreten

Dies ganze Fehlermeldung lautet in etwa so:

Komponente: PCI Express Root Port
Fehlerquelle: Advanced Error Reporting (PCI Express)
Primär Bus:Gerät:Funktion: ...
Sekundär Bus:Gerät:Funktion: ...
Primärer Gerätename: PCI\VEN_ ...
Sekundärer Gerätename:

Das tritt häufiger bei älteren Maschinen mit einer Intel CPU der 4. Generation (Intel® Core™ i*‑4xxx) auf. In den meisten Fällen hat es was mit „interessanten“ BIOS-Updates gegen die Spectre-Lücke zu tun, manchmal ist es auch ein Treiber-Effekt.

Auf jeden Fall sollte BEVOR man das hier ausprobiert, das aktuellste BIOS für die Maschine installiert sein.

Bei einigen Maschinen hat es uns geholfen, den „PCI Express Native Control“ Modus abzuschalten. Wenn Windows die PCIe Native Control startet, erzwingt es einige PCIe Features, die nicht immer (korrekt) in der Hardware implementiert sind. Wenn das der Fall ist, kann Windows den „Standard-PCI-to-PCI-Bridge“ Treiber nicht mehr starten und der Fehler tritt auf.

PCI Express Native Control Feature in Windows abschalten („Legacy Mode“)

Einfach eine CMD Shell „Als Administrator“ starten und den Modus konfigurieren.

bcdedit /set {current} pciexpress forcedisable

Ein paar Sachen funktionieren dann manchmal nicht mehr, wie Hot Plug (an intregrierten SAS-Ports) oder integrierte (nicht-intel) Netzwerkkarten. Die brauchen normalerweise den Native Mode für Ihre Features.

Zurücksetzen (= Einschalten)

bcdedit /deletevalue {current} pciexpress

Oder auch:

bcdedit /set {current} pciexpress default

Windows Server 2019 RDS ändert Standarddrucker beim an/abmelden

Bei mehreren Servern sehen wir das Phänomen, das der Standarddrucker von Benutzern „verstellt“ wird. Der Benutzer wählt korrekt einen Standarddrucker aus, der funktioniert auch für die ganze Sitzung richtig und beim nächsten Anmelden ist plötzlich wieder ein lokal installierter Drucker (PDF24 oder Ähnliches) der Standarddrucker.

Das passiert (scheinbar) immer wenn:

  • eine RDP-Verbindung getrennt wird
  • eine RDP Verbindung nicht ganz sauber abgemeldet wurde (Abmelden + Schließen)
  • der RDSH mit angemeldeten Benutzer neu gestartet wird

Lösung

Auf allen (!) Servern diesen Registry-Key setzen:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider]

"RemovePrintersAtLogoff"=dword:00000000

Das geht natürlich auch mit einer GPO. Wenn der Key gesetzt ist haben wir die Maschinen neu gestartet und der Effekt war verschwunden.

VPN mit Zertifikaten von iOS zu Windows RRAS mit Endpoint Manager (Intune) konfigurieren

Wir möchten erfolgreich eine VPN-Verbindung auf iOS-Endgeräte verteilen. Das „OnDemand“ VPN soll verwendet werden und daher muss der Nutzer mit Zertifikaten authentifiziert werden. die Authentifizierung am NPS (Radius) ist noch eine andere Sache, dieser Beitrag konzentriert sich auf das IKEv2 zwischen iOS und Windows Server RRAS.

Unsere iOS-VPN-Intune Checkliste

  • Microsoft Endpoint Manager (ehemals Intune) soll die VPN-Verbindung via Konfigurationsprofil verteilen
    • Die Devices sind schon im EPM angekommen und synchronisieren fröhlich Richtlinien
  • Microsoft Endpoint Manager soll den Nutzern (auf den Geräten) automatisch ein Zertifikat ausstellen (via „Certificate Connector“)
    • Funktioniert perfekt mit einer Microsoft CA
    • Die CA und NPS sind nicht Teil dieses Beitrages, aber mit Anleitung durchaus machbar
  • Die iPhone/iPads Geräte haben iOS 14.2 oder neuer (!)
  • Es wird IKEv2 verwendet
    • Denn das ist die einzige Möglichkeit, iOS mit RRAS unter der Verwendung von Zertifikaten zu verbinden
  • Der RRAS Server ist ein Windows Server 2019
  • RRAS ist korrekt konfiguriert (Ports, Erreichbarkeit, Radius …)
  • NPS ist korrekt konfiguriert (Verbindungsanforderungs- und die Verbindungsrichtlinie …)

Im Prinzip folgen wir dem brauchbaren „Deploy Always On VPN“ Guide von Microsoft unter https://docs.microsoft.com/en-us/windows-server/remote/remote-access/vpn/always-on-vpn/deploy/always-on-vpn-deploy-deployment

Der Trick ist eine funktionierende Kombination aus iOS IKEv2-Parametern und den zugehörigen Phase1/2 Parametern auf der RRAS-Gegenstelle zu erstellen. Denn das ist nicht Default und leider auch praktisch nirgends dokumentiert.

RRAS-Server

Um erfolgreich eine IKEv2 Verbindung von iOS zum RRAS Server herzustellen, ist dem RRAS-Server (und iOS) die richtige Kombination der Ciphersuits vorzugeben. Das geht am RRAS via CustomPolicy. Natürlich exklusiv an der PowerShell.

Viele Kombinationen funktionieren nicht. Diese hier funktioniert:

Set-VpnServerConfiguration -CustomPolicy -AuthenticationTransformConstants SHA256128 -CipherTransformConstants AES256 -DHGroup Group14 -EncryptionMethod AES256 -IntegrityCheckMethod SHA256 -PfsGroup PFS2048 -SALifeTimeSeconds 28800 -MMSALifeTimeSeconds 86400 -SADataSizeForRenegotiationKilobytes 1024000

Dann muss man dem RRAS-Server in aller Regel erklären, das er auch fragmentierte IKE Pakete annehmen soll. Bei einer Schlüsselgröße von 2048bit mit Zertifikaten und einer MTU von 1492 oder 1500byte wird es oft knapp und Pakete fragmentieren:

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\RemoteAccess\Parameters\Ikev2\" -Name EnableServerFragmentation -PropertyType DWORD -Value 1 -Force

Wenn beides geschehen ist, muss der RRAS neu starten:

Restart-Service RemoteAccess

Microsoft Endpoint Manager

Innerhalb der VPN-Richtlinie kommt es auf die IKEv2 Parameter an. Die sind in einer bestehenden Richtlinie erreichbar unter Devices > Richtlinie (Name) > Properties > Configuration settings > IKEv2 Settings. Dort gibt es ab etwa der Mitte die „wichtigen“ (und nicht offensichtlichen) Einstellungen:

Perfect forward secrecy: Enable

Certificate revocation check: Disable

Use IPv4/IPv6 internal subnet attributes: Disable

Mobility and multihoming (MOBIKE): Enable

Redirect: Enable

Security Association Parameters

Encryption algorithm: AES-256

Integrity algorithm: SHA2-256

Diffie-Hellman group: 14

Lifetime (minutes): 1440

Child Security Association Parameters

Encryption algorithm: AES-256

Integrity algorithm: SHA2-256

Diffie-Hellman group: 14

Lifetime (minutes): 480

… und schon geht’s. Also schon ging es bisher bei unseren Systemen 🙂

Vielleicht schreiben wir irgendwann noch einen großen Artikel mit allen Schritten, also von der Zertifizierungsstelle bis zum Endgerät … oder jemand anderes tut das. Oder, wenn ihr sowas braucht, ruft ihr uns an 😋