Fix: Windows 10 Update 21H2 und der Essentials Connector

Info: Bitte die Update Historie unten lesen, ursprünglich wurde das Script für Windows 10 Version 1903 entwickelt und seitdem immer wieder getestet und aktualisiert. Für alle die nicht lesen wollen, die aktuelle Version des Scripts befindet sich hier .

For the english version, please follow this Link.

Zumindest aus Sicht des Windows Server Essentials Connector ist jedes Update von Windows 10 spannend. Die seit gestern offiziell verfügbaren Version 1903 für Windows 10 versäumt es beim Upgrade, die für die Ausführung des Windows Server Essentials Connectors notwendigen Dienste (Services) zu migrieren. Die sind nach dem Update nicht mehr vorhanden.WSE-1903

Damit ist der Windows 10 Client nicht mehr in der Lage sich am Windows Server Essentials an zu melden um seinen Status zu kommunizieren oder eine Sicherung durch zu führen. Im Dashboard des Server erscheint der Client Offline.

image

Damit das wieder klappt, müssen die Services hergestellt werden. Das geht am einfachsten durch das folgende Script, welches die Services in Form von REG-Dateien in die Registry importiert. Im Anschluss, nach einem Neustart funktioniert der Connector ohne Probleme.

image

Das Script und die dazu notwendigen REG-Dateien sind in der ZIP Datei als Download verfügbar. Für eventuelle Schäden lehne ich jegliche Haftung ab.

  • Die Ausführung des Scripts muss in einer PowerShell-Session als Administrator erfolgen
  • Script und REG-Dateien müssen zwingend im gleichen Verzeichnis liegen
  • Das Script prüft ob es sich um den Version 1903 oder höher handelt. Nur dann werden die REG-Dateien in die lokale Registry des Windows 10 Clients eingetragen

Möglicher Weise können Probleme mit der PowerShell Execution-Policy auftreten, dazu wende ich den folgenden Workaround an.

Get-Content -Path .\Fix-WSeLaunchpad-1903.ps1 | PowerShell.exe -NoProfile -

image

Update 30.05.2019:

Inzwischen ist es mir gelungen, dass Microsoft dieses Problem als Bug (Fehler) betrachtet und an einem Fix arbeitet. Wie schnell damit zu rechnen ist, kann ich nicht sagen melde mich aber wenn ich weiteres weiß.

Update 15.07.2019


Das Script, und damit der Workaround funktionieren mit dem WSE 2016 und dem WSE 2012R2, dass mag im Blog nicht richtig rüber gekommen sein. Für die anderen Versionen (WSE 2011 und 2012) müsste man die Registry-Einträge des Connectors vergleichen.

Update 21.07.2019


Ich hatte nun die Gelegenheit Windows 10 Clients an einem SBE 2012 (ohne R2) um zu stellen und muss gestehen, dass das Script hier definitiv nicht funktioniert. Der Clientconnector dort verwendet wohl andere Einträge in der Registry als unter Windows Server 2012R2/2016.

Update 18.11.2019


Mit dem Update auf Windows 10 1909 gibt es keine Probleme, dass liegt an der von Microsoft geänderten Bereitstellung. Dazu werden vornehmlich nur Features freigeschaltet, die schon in früheren Versionen vorhanden waren.

Update 11.12.2019


Wird ein ISO mit Windows 10 1909 für einen Upgrade, zum Beispiel von Windows 7 auf Windows 10 verwendet. Schlägt der Bug wieder zu und das bisherige Script funktioniert leider nicht. Darum habe ich eine kleine Änderung durchgeführt und eine Version erstellt (steht nun auch in der History), die mit 1903 und neuer funktioniert.

Update 15.05.2020

Auch mit Windows 10 2004 tritt dieses Problem auf und kann über das Script behoben werden. Ich habe an diesem eine Reihe kleinerer Korrekturen durchgeführt und hier zum Download bereitgestellt.

Update 23.10.2020

Seit dem letzten Jahr, oder denken wir in Updates, seit Windows 10 Version 1909, liefert Microsoft das Herbstupdate als normales Windows Update aus, dass Features die im Verlauf der letzten Monate durch Updates (in 2004) installiert wurden aktiviert. Damit funktioniert das Update auf diesem Weg ohne Probleme und das Script ist nicht notwendig. Erfolgt aber ein Upgrade, zum Beispiel der Version 1909, durch das Windows 10 20H2 ISO, kann das Script im Anschluss den Connector reparieren.

Update 05.06.2021

Mit dem Windows 10 21H1 Update funktioniert das Script in der aktuellen Version ohne Änderungen. Wird das Update über den WSUS oder Windows Update installiert, dann funktioniert der Windows Essentials Connector ohne Probleme und das Script ist nicht notwendig. Erfolgt das Update hingegen über eine ISO Datei, die es als Download bei Microsoft gibt, kann der Essential Connector im Anschuss über das Script repariert werden.

Enjoy it, b!

Auslesen der Seriennummer einer SSD mit PowerShell

Nachdem ich in ein Notebook eine neue SSD eingebaut hatte und das Gerät auch schon zuverlässig seinen Dienst tat, fiel mir auf das ich mir die Seriennummer nicht notiert hatte.

Wenn man nochmals, z.B. über die Fernwartung oder RDP Zugriff auf das Gerät erhält kann man die Seriennummer über PowerShell und das WMI auslesen.

# Auslesen der Seriennummer
Get-WmiObject -Class Win32_PhysicalMedia | Format-List Tag, Serialnumber

image

PowerShell braucht dazu nicht einmal mit administrativen Rechten gestartet werden.

Enjoy it, b!

Windows 10 21H1 verfügbar

Hallo zusammen,

für die Besitzer eine Visual Studio Subscription steht Windows 10 21H1 zum Download bereit.

image

Darüber hinaus bietet Microsoft das Windows 10 May 2021 Update, ebenfalls zum Download über seine Webseite an:

https://www.microsoft.com/de-de/software-download/windows10

image

Wer das ISO möchte, dem sei dieser Blog eine Hilfe. Alternativ kann man aber den Microsoft Edge Browser ebenfalls in den Entwicklermodus schalten und damit ebenfalls das ISO herunterladen.

Update 19.05.2021
Zusätzlich zu den ISO-Dateien liefert auch der Windows Update Service und Microsoft Update 21H1 als enablement package aus.

https://support.microsoft.com/en-us/topic/kb5000736-featured-update-to-windows-10-version-21h1-by-using-an-enablement-package-75a01e67-3b5f-4677-8efe-42852e41c7cf

Enjoy it, b!

Windows Update Error 0x80080005

Im Verlauf der letzten Update-Installation, hatte ich einige (drei) Windows Server 2016 die entweder die Updates nicht herunterladen oder sie im Anschluss nicht installieren wollten.

Die Installation blieb dabei bei einem Prozentwert (häufig 9 und 3%) stehen, oder der Download dauerte Stunden!

Ein manueller Versuch die Updates zu installieren endete mit einem 0x80080005 und der Windows Troubleshooter war ebenfalls nicht in der Lage einen von ihm erkannten Fehler im Windows Update zu beheben. Vielleicht habe ich mit 3 Stunden auch nicht lange genug gewartet, aber letztendlich musste eine funktionierende Lösung her.

Das Problem welches hier zu Grunde liegt, ist eine Korruption der Datenbank von Windows Update. Eine mögliche Lösung ist, dass man diese oder genauer gesagt den Ordner in dem diese liegt löscht. Damit geht aber die Option verloren, alte Updates zu entfernen.

Grundlagen

Die Lösung an sich ist recht einfach, den im Betriebssystem müssen lediglich zwei Ordner gelöscht werden:

# Löschen des Ordners SoftwareDistribution
%WINDIR%\SoftwareDistribution
# Löschen des Ordners Catroot2
%WINDIR%\System32\catroot2

Allerding sind die Ordner/Dateien von einer Reihe von Diensten im Zugriff und diese müssen zuerst einmal beendet werden. Darüber hinaus sind diese Dienste (Services) so konfiguriert, dass sie nicht immer laufen, sondern bei Bedarf getriggert werden. Ein simples net stop würde die laufenden Dienste beenden, was aber nicht sonderlich elegant ist.

net stop wuauserv
net stop cryptSvc
net stop bits
net stop msiserver

Code / Script

Mit PowerShell lässt sich das auf elegantere Weise lösen, allerdings wollte ich die Prüfung ob noch Dateien im SoftwareDistribution-Verzeichnis geöffnet sind nicht zu komplex gestalten. Darum habe ich handle.exe von Sysinternals als externes Programm verwendet.

Das Script kann über diesen Link heruntergeladen werden.

image

Code [Line 14 – 19]
Im Array $Services (Line 5) werden die zu stoppenden Dienste definiert und im Anschluss erfolgt eine Abfrage ob diese auch wirklich am laufen “Running” sind und nur dann werden sie auch gestoppt.

Code [Line 22]
Handle.exe (optional kann auch handle64.exe hier verwendet werden) liefert die Information zurück, ob eine Datei (die DataStore.ebd) noch geöffnet ist. Damit hat möglicher Weise das Beenden von einem der Dienste nicht funktioniert.

Code [Line 25 – 29]
Für den Fall, dass hier noch einer der Dienste die DataStore.ebd geöffnet hat, wird dessen Prozess über Stop-Process beendet. Spätestens jetzt wurde damit die Grundlage geschaffen das Windows System im Anschluss neu zu starten.

Code [Line 32 – 33]

Die beiden Verzeichnisse SoftwareDistribution und CatRoot2 sollten sich nun ohne Probleme löschen lassen.

Code [Line 36]

Nach einem erfolgtem Neustart werden die Verzeichnisse SoftwareDistribution und CatRoot2 vom Windows Update Dienst wieder angelegt und auch die darin notwendigen Dateien neu erstellt.

Darum können wir auf den Start der Dienste verzichten, sondern überlassen diese Aufgabe dem Neustart des Betriebssystems. Ein Aufruf von Update zeigte dann auch alle notwendigen Updates an und konnte auch diese Installieren.

image

Enjoy it, b!

LANCOM – Dead Peer Connection Timeout

Nach einem Abbruch einer VPN-Verbindung eines Windows Clients, konnten mit einem LANCOM Router keine VPN-Verbindungen mehr aufgebaut werden. Um eine Lösung für dieses Problem zu finden, war ich mit dem Hersteller mehrere Wochen in Kontakt. Starten möchte ich aber mit dem Setup der Umgebung.

Ausgangsituation

LANCOM 1781VA Router mit mehreren VPN-Verbindungen. Zwei davon sind permanente VPN-Tunnels zu Partnern und Standorten, dazu existiert für 5 Clients die Möglichkeit sich über VPN in das Firmennetzwerk einzuwählen.

Die folgende Abbildung zeigt aktuell drei Verbindungen mit den folgenden Funktionen.

image

  • HI-VPN stellt eine von Router ausgehende Verbindung zu einem Partner-Netzwerk dar
  • LC-1781VAW ist die eingehende Verbindung einer Zweigstelle
  • XX-NBK-<?>-VPN die Einwahl der Mitarbeiter aus dem Homeoffice durch den LANCOM Advanced VPN Client

Problem

Wurde von einem der Mitarbeiter im Homeoffice die Verbindung nicht ordentlich getrennt, sondern das Notebook nur in den Sleepmodus gesetzt. Dann zeigte nach ungefähr 2min das VPN auf dem LANCOM 1781VA Router einen Fehler mit einem “Dead Peer Connection Timeout”.

Keine der vorhandenen VPN-Verbindungen (sowohl Partner als auch Zweigstelle) konnte danach aufgebaut werden.

Beheben ließ sich dieses Problem nur, durch einen Neustart des Routers. Dieser funktionierte dann wieder problemlos, bis der nächste Mitarbeiter das Notebook schlafen legte.

Lösung

Der Verursacher des Problems war,  das sowohl im IDS und im DoS die Option Lock target port aktiviert war. Anscheinend erkennt der LANCOM Router den Abbruch der Verbindung als IDS/DoS und sperrt daraufhin die Ports welche für das VPN notwendig sind.

image

image

Nachdem die Option Lock target port deaktiviert wurde, läuft der Router wieder ohne Probleme wie ein Schweizer-Uhrwerk.

Enjoy it, b!

Windows 10 Home, Password will never expire …

Oft bekomme ich eine Home-Edition von Windows 10 in die Finger, meistens erfolgt gleich ein Upgrade auf Windows 10 Professional da eine Mitgliedschaft in einer Domäne notwendig ist. Kürzlich war es aber mal wieder soweit und dieses System sollte auf Windows 10 Home belassen werden, damit wollte auf das in diesem Blog beschriebene Script zurück greifen, um das Passwort auf nicht ablaufend zu setzen. Bei einer Passwortlänge von 16 Zeichen, halte ich diese Einstellung für vertretbar.

Gleich vorneweg, ja das Script funktioniert nach wie vor. Mir ist aber aufgefallen, dass ich zum einen weitere Parameter für das Benutzer-Konto setzen will und darüber hinaus PowerShell das doch noch viel besser machen kann  Thumbs up Dazu muss aber mindestens die Version Windows 10 1607 oder neuer im Einsatz sein. Das Script unter der Verwendung von WMIC wurde davor entwickelt.

Aufgabe

Ein Benutzer mit dem, zugegebenen Maßen kurzem Namen “kn” soll erstellt werden. Ich mache das auf Home Systemen oder auch in kleinen Netzwerken gerne da damit der Name des Windows Benutzer Profils hinreichend kurz wird und z.B. OneDrive ein paar Zeichen mehr im Pfadnamen hat. Durch das zusätzliche Setzen eines vollen Namens, erscheint dann dieser am Anmeldebildschirm.

  1. Benutzername = kn
  2. Vollständiger Name = “Karl Napf”
  3. Passwort-Ablauf = nicht ablaufend / never expires

PowerShell Befehle

Mit dem PowerShell-Befehl New-LocalUser erfolgen. Vor dem eigentlichen Befehl, besteht die Möglichkeit das Passwort vertraulich an der Eingabeaufforderung mit Read-Host einzulesen.

Alle PowerShell-Befehle mitt in einer PowerShell-Sitzung mit erhöhten Rechten ausführen.

# Einlesen des Passworts
$Password = Read-Host -AsSecureString

# Anlegen des Benutzers
New-LocalUser -Name 'kn' -FullName 'Karl Napf' -Password $Password -PasswordNeverExpires -Description 'Karl Napf, der Erfinder der Brotsuppe'

Die Kontrolle mit net user, zeigt ein zufriedenstellendes Ergebnis.

image

Enjoy it, b!

RSAT und Windows 10 20H2

Mit jeder neuen Version von Windows 10 erfolgt eine weitere und bessere Integration von Funktionen in die neue Benutzeroberfläche. Konnte ursprünglich über die klassische Systemsteuerung die Remote Server Administration Tools (RSAT) installiert oder aktiviert werden, so sind dazu inzwischen die folgenden Schritte notwendig. Ein Download wie bis zum Herbst 2018 ist nicht mehr notwendig, da RSAT inzwischen ein “Feature on Demand” ist.

Nach dem Öffnen der Windows-Einstellungen, wird dort die Option Apps ausgewählt.

image

Innerhalb von Apps & Features die Optionale Features auswählen.

image

Über Feature hinzufügen erscheint ein Dialog, in dem nach dem gewünschten Feature gesucht werden kann.

image

Im Falle der RSAT hier dann die gewünschten Tools auswählen. In diesem Fall waren es die Tools zur Gruppenrichtlinienverwaltung und für die Active Directory Domain Services

image

Dann auf Installieren klicken und die Installation erfolgt.

image

image

Nach dem erfolgreichen Abschluss sind die RSAT im Startmenü von Windows 10 sichtbar und können mit entsprechenden Rechten verwendet verwendet werden.

image

Enjoy it, b!

Windows SBE remotewebaccess.com Update schlägt fehlt

Mit dem Beginn dieser Woche (KW11/2021) waren einige meiner auf Windows Server 2012R2 basierenden Small Business Essential Server nicht mehr in der Lage ihre für den Anywhere-Access notwendige Sub-Domain unter remotewebaccess.com zu aktualisieren. Genau genommen betrifft das Problem alle SBE, aber manche haben eine statische IP-Adresse und was sich nicht ändert, muss man auch nicht aktualisieren. Die Problem-Kandidaten waren also Kunden (Telekom- und 1&1 ) die täglich eine neue dynamische IPv4-Adresse vom Provider bekommen.
image

Damit klappte natürlich auch der Zugang auf https://sbe.remotewebaccess.com/remote nicht mehr. Da hinter dem Zugang über remotewebaccess.com ein Zertifikat steckt, hat auch ein Zugang über “nur” die IP nicht gut funktioniert.

Das Fehlerbild war dubios, bis ich die Idee hatte das möglicher Weise der auf dem SBE laufende Update Client ein Problem mit der Verschlüsselung haben könnte. Stichwort TLS 1.0, TLS 1.1 Deaktivierung durch Microsoft.

Wenn man einen Blick auf die Release Documentation for Windows Server Essentials wirft, findet man zum eine Aktualisierung von 10.03.2021 …

image

… und dazu den folgenden Absatz.

image

Auch der Windows Server Essentials soll TLS 1.2 nutzen, Nach diesem Absatz dachte ich, OK – das ist es nicht, der Windows Server 2012R2 und neuer verwenden automatisch TLS.

image

Diese Aussage trifft zwar auf den Windows Server selbst zu, aber für das .Net Framework war dennoch ein wenig Nacharbeit notwendig und damit war ich auch auf die Lösung des Problems gestoßen.

Für beide auf dem Server installierten .Net Versionen (v2.0.50727 und v4.0.30319) mussten die folgenden Einträge in die Registry zusätzlich eingetragen werden.

# 64-bit OS
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions" = dword:00000001
"SchUseStrongCrypto" = dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions" = dword:00000001
"SchUseStrongCrypto" = dword:00000001
# 32-bit Applications running on 64-bit OS
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions" = dword:00000001
"SchUseStrongCrypto" = dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions" = dword:00000001
"SchUseStrongCrypto" = dword:00000001

Mit PowerShell geht das sehr einfach die Befehle müssen als Administrator in PowerShell (elevated Session) ausgeführt werden.

# PowerShell
New-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727" -Name "SystemDefaultTlsVersions" -Value 1 -PropertyType DWORD -Force
New-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727" -Name "SchUseStrongCrypto" -Value 1 -PropertyType DWORD -Force
New-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319" -Name "SystemDefaultTlsVersions" -Value 1 -PropertyType DWORD -Force
New-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -Value 1 -PropertyType DWORD -Force

New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v2.0.50727" -Name "SystemDefaultTlsVersions" -Value 1 -PropertyType DWORD -Force
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v2.0.50727" -Name "SchUseStrongCrypto" -Value 1 -PropertyType DWORD -Force
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" -Name "SystemDefaultTlsVersions" -Value 1 -PropertyType DWORD -Force
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -Value 1 -PropertyType DWORD -Force

Danach noch den Server neu starten (Restart-Computer).

Update 20.03.2021
Für den Windows Server 2012 (OHNE R2) sind neben den oben beschriebenen Einträgen noch die folgenden Keys in der Registry zu setzen

# PowerShell
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp" -Name "DefaultSecureProtocols" -Value '0xAA0' -PropertyType DWORD -Force
New-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp" -Name "DefaultSecureProtocols" -Value '0xAA0' -PropertyType DWORD -Force

Microsoft bietet hier auch ein eigene Lösung an um den Fix zu installieren. Dazu gibt es weitere Infos hier.

Update 22.03.2021
Das Problem tritt natürlich auch auf dem Windows Server 2016 SBE auf, und kann mit den gleichen Einträgen in der Registry wie für Windows Server 2012R2 behoben werden.

image

Die Abbildung oben zeigt den Fehler des Update-Mechanismus auch im Windows Eventlog unter Microsoft-Windows-ServerEssentials/Admin.

Enjoy it, b!

SQL Server Configuration Manager [0x80041010]

Nachdem ich auf einem Microsoft SQL Server eine Instanz deinstalliert hatte, wurde Start des SQL Server Configuration Manager, mit der folgenden Fehlermeldung quittiert und ich eine Konfiguration war nicht mehr möglich.

image

Microsoft selbst beschreibt in diesem Artikel sehr gut, wie das Problem gelöst werden kann. Da bei mir die Datei sqlmgmproviderxpsp2up.mof  fehlte, kam ich um eine Reparatur des SQL Server nicht umhin.

image

Dazu ist im übrigen das SQL Server Installationsmedium notwendig (bei mir lag das ISO-File noch im Verzeichnis c:\temp\sql2019).

Nach der Reparatur und einem Neustart, funktioniert auch der Sql Server Configuration Manager wieder.

image

Enjoy it, b!

Windows 10 KB5000802 Update 03/2021

Neben den schon mehrfach publizierten Problemen mit dem März-Update (KB5000802), konnte ich auf zwei PCs ein “Hängen” des Windows Explorers feststellen.

image

Der Explorer selbst oder auch das Startmenü haben nach der Installation des Updates ihren Dienst komplett oder Teilweise eingestellt. Eine Deinstallation des Updates hat das Problem dann wieder behoben.

Da beide PCs eine ähnliche Ausstattung an Hard- und Software hatten (Lenovo L14 AMD), kann ich natürlich nicht zu 100% die Schuld bei dem Update suchen. Es könnte auch ein spezifisches Problem zwischen dieses Notebooks und dem Patch sein.

# Deinstallation ohne Neustart
wusa /uninstall /kb:5000802 /quiet /norestart

# Deinstallation mit Neustart
wusa /uninstall /kb:5000802 /quiet /forcerestart

Da der Windows Explorer nicht richtig mehr funktionierte, aber der Taskmanager noch zu starten war, habe ich von diesem aus eine cmd.exe oder PowerShell.exe mit Administratoren-Rechten gestartet um den Befehl oben auszuführen.

Enjoy it, b!