Sehr langer Shutdown oder Reboot des Microsoft Hyper-V Server 2016

In den Windows Server 2016 haben sich je eine Reihe von Eigenheiten eingeschlichen, die mir immer wieder Probleme bereiten. Kürzlich hatte ich mit dem Microsoft Hyper-V Server 2016, wieder das Problem, dass einige Hosts für den Shutdown sehr lange benötigt haben. Mit sehr lange meine ich, bis zu einigen Stunden!

Daher habe ich mir das Problem genauer angeschaut und dabei die Lokation des Pagefiles als Auslöser ausmachen können. Damit kann die in diesem Blog beschriebene Lösung auch hier zum Einsatz kommen. Da der Microsoft Hyper-V Server keine Benutzeroberfläche hat, muss das Pagefile über WMIC neu konfiguriert werden.

Anzeige des aktuell konfigurierten Pagefiles.

wmic pagefile list full

Umstellung auf ein nicht durch das Betriebssystem konfiguriertes Pagefile.

wmic computersystem where name=”%computername%” set AutomaticManagedPagefile=False

Konfiguration des Pagefiles auf Laufwerk C: mit einer Startgröße von 16GB und einer maximalen Größe von 32GB. Soll das Pagefile mit einer festen Größe angelegt werden, dann ist es notwendig InitialSize und MaximalSize auf den gleichen Wert zu setzen.

wmic pagefileset where name=”C:\\pagefile.sys” set InitialSize=16384,MaximumSize=32768

Die Änderungen werden erst nach einem Neustart des Servers durch WMIC angezeigt, hier sollte man sich also nicht beirren lassen. Insofern WMIC keine Fehlermeldungen zurück gibt, ist die Konfiguration korrekt erfolgt.

Abschließend habe ich mir die Frage gestellt, wieso das Problem eigentlich auftritt. Ich kann dieses Verhalten nämlich nicht bei allen Hyper-V Hosts mit der Version 2016 feststellen. Microsoft selbst liefert in einer Reihe von Artikeln und Blogs Empfehlungen zur Dimensionierung von Pagefiles. Für Hyper-V Systeme, kann man das kurz abfassen.

  1. Geht dem Host der Speicher aus, und ist eine VM mit dynamisch allokiertem Speicher unterwegs dann erfolgt ein Paging in der VM und nicht auf dem Host
  2. Es genügt, dass der Host einen Kernel- oder von mir aus noch Active-Dump schreiben kann. Kernel-Dumps habe ich bisher, auch bei sehr großen Systemen (1TB … und mehr) keinen größer als 20GB gesehen und damit war er für eingehende Analysen immer ausreichend

Darum habe ich auf kleinen Hyper-V Hosts (32GB RAM und 64 bzw. 72GB Systemlaufwerk) keine Probleme gehabt und auch auf zwei meiner größeren Systeme mit 128GB RAM und einem 256GB großem Systemlaufwerk, ist das Problem nicht aufgetreten.

image

Lediglich auf mehreren Hosts mit 256GB RAM und einem 72GB großen Systemlaufwerk, bin ich auf dieses Problem getroffen und habe es wie oben beschrieben gelöst. Dabei ist verständlich, dass das Betriebssystem bei 256GB Hauptspeicher das Pagefile auf ein Laufwerk mit hinreichend viel Platz legt und es dadurch zu dem Verhalten kommen kann.

Enjoy it, b!

Visual Studio Code “Convert to Lower and Upper Case”

Wenn ich “code”, nehme ich dazu fast nur noch Visual Studio Code und in seltenen Fällen auch Notepad++. In Visual Studio Code ist mir aufgefallen, dass eine Konvertierung von Textblöcken in Groß- oder Kleinschreibung nicht ohne weiteres funktioniert. Eine in Visual Studio Code immer sehr gute Idee, wenn man eine Funktion sucht, ist der Aufruf der Behelfs Palette (command palette) mit CTRL+SHIFT+P und dort die Eingabe des Suchbegriffs wie z.B. transform.

image

Trotzdem wollte ich zusätzlich einen Shortcut damit belegen, Möglich ist das in den Einstellungen für die Shortcuts (oder Tastenabkürzungen) unter Manage/ Keyboard Shortcuts. Manage ist unten links als “Zahnrad”, analog zu Windows 10 im Editor zu finden. In dem nun sich öffnenden Dialog kann man nach entsprechen Funktionen und damit verknüpften Shortcuts suchen. In der folgenden Abbildung habe ich das Wort transform eingegeben.

image

Unter Keybinding sind hier keine Shortcuts zu sehen, können aber entsprechend definiert werden. Will man nun einen Shortcut definieren, genügt ein Klick auf das vor dem jeweiligen Command (Befehl) erscheinende Plus und ein Dialog zur Belegung öffnet sich. Die Idee, eine Kovertierung auf kleine Buchstaben mit STRG+SHIFT+L und große Buchstaben STRG+SHIFT+U zu ermöglichen, was der Belegung in Visual Studio entspricht, stellte sich als schlechte Idee heraus da diese Kombination schon belegt ist.

image

Auch die in Notepad++ vorgegebene Kombination aus STRG + L war ebenfalls nicht möglich und so habe ich mich für die folgenden Kombinationen entschieden.

  • Lowercase = STRG+ALT+L
  • Uppercase = STRG+ALT+U
  • Title Case = STRG+ALT+T

image

Für Coder die generell die gleiche Belegung wie Visual Studio verwenden wollen, sei hier noch auf die Extension Visual Studio Keymap aus dem Marketplace hingewiesen oder auch die Möglichkeit Notepad++ Mappings zu verwenden.

image

Ich will es aber erstmal bei meinen Shortcuts belassen.

Happy Coding, b!

Windows Backup und das erste Mal

Willkommen zu einem neuen Beitrag über Windows Backup. Was passiert den genau beim Backup und was kann, besonders wenn dieses erstmals ausgeführt wird, schief gehen.

Ein wenig Backup Anatomie

Windows Backup arbeitet nach einem Prinzip das als “Inkremental forever” beschrieben werden kann.Nach dem ersten erfolgreichen Backup werden immer nur die Veränderungen zwischen den einzelnen Backups gesichert. Das hat prinzipiell den Vorteil, dass wenn einmal alle Dateien gesichert wurden (auch wenn es viele sind) nur noch wenige Veränderungen ins Backup aufgenommen werden und damit die weiteren Sicherungen schnell fertig sind.

Herausforderungen

Wird Windows Backup das erste Mal ausgeführt, steht abhängig von der Konfiguration, möglicher Weise eine Vollsicherung des Servers an und das kann dauern und von den Einstellungen des Backup-Tasks sabotiert werden. Die Zeit, welche für ein Backup benötigt wird hängt im Wesentlichen von den Faktoren Performance, Größe und Anzahl der zu sichernden Dateien ab.

Einstellungen für Windows Backup

Damit Windows Backup ungestört seine initiale Sicherung des Servers fertigstellen kann, gibt es zwei Möglichkeiten.

  1. Einstellungen des Backup Tasks
  2. Menge der zu sichernden Dateien

Einstellungen des Backup Tasks

Wie schon in diesem Beitrag beschrieben, bergen die Einstellungen des Backup Tasks einige Unsicherheiten welche ein erstes und erfolgreiches Backup schwierig machen können. Die einfachste Möglichkeit hier ist, dem Backup die notwendige Zeit (auch wenn es mehrere Tage sind) für die Vollsicherung ein zu räumen. Dabei sind die folgenden Einstellungen sinnvoll.

  • Stop the task if it runs longer than … = deaktivieren
  • If the task is already running, then the following rule applies = Do not start a new instance

image

Damit geben wir dem Backup die Möglichkeit, so lange zu laufen bis die erste Sicherung erfolgt ist und vermeiden zusätzliche Windows Backup Failed Meldungen im Backup selbst.

Nach erfolgreicher erster Sicherung, kann die Einstellung wieder aktiviert werden.

  • Stop the task if it runs longer than [3 days] = aktiv

Menge der zu sichernden Dateien

Als weiterer und nicht nur alternativer Ansatzpunkt kann eine Reduktion der zu sichernden Menge an Daten während des ersten Backups sein. Dazu werden einfach nicht alle Laufwerke ausgewählt sondern nur das Systemlaufwerk und zum Beispiel ein Datenvolume, hier F:

image

Ist die Sicherung damit erfolgreich zu ihrem Abschluss gekommen, kann für den nächsten Zyklus das Laufwerk D: hinzugefügt werden, bis alle Laufwerke in der Sicherung enthalten sind.

Eine weiter Option, an Stelle von ganzen Laufwerken mit der Inklusion von einzelnen Verzeichnissen zu arbeiten ist nur dann sinnvoll, wenn KEINE Deduplizierung auf den Volume stattfindet.

image

Diese kleine Warnung wird gerne überlesen und es kommt damit zu sehr langen Laufzeiten des Backups und einer Reihe von anderen Problemen.

Enjoy it, b!

Windows Backup (schlägt fehl)

Es gibt einige Gründe wieso Windows Backup nicht richtig funktionieren kann. Mit diesem Beitrag möchte ich eine Kleinserie beginnen und eine Reihe von Problemen in Windows Backup analysieren und falls vorhanden, eine Lösung beschreiben.

Doch erstmal an dieser Stelle, hallo und ein gutes Neues Jahr 2020 – dazu wünsche ich Euch allen viel Gesundheit und möglichst wenig Stress mit Euren laufenden IT-Systemen.

Windows Backup Failed

Der Start der Serie ist ein gelegentlicher Fehler, dass Windows Backup fehlgeschlagen ist. Wie das folgende Bild zeigt, läuft Windows Backup manchmal und dann wieder nicht.image

Der Grund dafür ist relativ einfach und liegt in der Konfiguration des Tasks welcher von Windows Backup selbst angelegt wird.

Die Lösung für fehlgeschlagene Backups (Failed)

Ich habe festgestellt, dass zwei Backup-Jobs nur in seltenen Fällen parallel laufen können. Auf keinen Fall klappt das, wenn die gleichen Laufwerke und Dateien gesichert werden sollen. Genau das wird aber vom Backup Task nicht berücksichtigt und kommt es dann zu einer Überschneidung beider Backup Jobs geht die Sache daneben.

image

Der Job war erst um 21:21 Uhr fertig und der fehlgeschlagene wurde wie eingestellt um 21:00 Uhr gestartet. Die folgende Einstellung sorgt für die oben gezeigte Meldung.

If the task is already running, then the following applies = Run a new instance in parallel

image

Obwohl das vorherige Backup noch nicht fertig ist, wird hier einfach der nächste Job gestartet und das geht mit der Fehlermeldung oben schief. Die Lösung für dieses Problem ist eine Änderung auf die folgend GRÜN markierte Einstellung.

If the task is already running, then the following applies = Do not start a new instance

image

Nun wird gewartet (maximal drei Tage), bis Windows Backup fertig ist. Nach drei Tagen wird dieser Task ebenfalls beendet und ein neuer kann seine Arbeit aufnehmen. Aber auch diese Einstellung sollte für ein initiales Backup überdacht werden. Mehr dazu in einem der nächsten Blogs.

Weitere Blogs

Weitere Beiträge zu dem Thema werden die folgenden Bereiche behandeln:

  • Das erste Mal
  • Performance
  • Anzahl der Dateien

Stay tuned Smile

Enjoy it, b!

Lancom Router und der TI-Konnektor

Seit Juli diesen Jahres (2019) müssen Arzt-Praxen die Telematik-Infrastruktur (TI) und damit den TI-Konnektor verwenden. Eine Bewertung dazu will ich mir an dieser Stelle ersparen, aber einen Hinweis auf die Verwendung des TI-Konnektor in Verbindung mit Lancom Routern (VoIP) geben. Sollte es hier zu Problemen mit der Verbindung ins Internet kommen, kann die folgende Konfiguration Abhilfe schaffen.

Voice Call Manager / Erweitert/ Quality of Service/ Abgehende Pakete bevorzugen = keine Veränderung

image

Auf Routen mit englischer Oberfläche / Spracheinstellung zeigt die nächste Abbildung die richtige Einstellung.

image

Enjoy it, b!

Windows 10 Update 1903 und der Essentials Connector – Fix

Info: Bitte die Update Historie unten lesen! Für alle die nicht lesen wollen, die aktuelle Version des Scripts befindet sich hier.

Zumindest aus Sicht des Windows Server Essentials Connector ist jedes Update von Windows 10 spannend. Der seit gestern offiziell verfügbare Build 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. Diese sind nach dem Update einfach 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 Build 1903 handelt, akzeptiert aber auch aktuellere Versionen. Nur dann werden die REG-Dateien in die lokale Registry des Rechners 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.

Enjoy it, b!

Windows und der Secure-Channel

Einer meiner Windows 10 PC hatte das Problem, dass ich auf eine Reihe von Ordnern im Netzwerk nicht zugreifen konnte. Hauptsächlich waren es umgeleitet Ordner aus dem Benutzerprofil. Ich leite gerne die Eigenen Dateien / Documents auf den Server um.

Das Problem war, dass der Secure-Channel zum Server nicht mehr sauber funktionierte. Wie so oft lag die Lösung in PowerShell vergraben, und das sage ich weil man einfach wissen muss das es mit diesem Befehl so einfach geht.

Test-ComputerSecureChannel liefert True oder False zurück, je nachdem wie der Zustand der Verbindung zwischen dem PC und der Domain (Domain-Controller) ist.

Im Fall von False, lohnt sich die Verwendung des Parameters –Verbose um genauere Informationen zu erhalten.

Test-ComputerSecureChannel -Verbose
VERBOSE: Performing the operation "Test-ComputerSecureChannel" on target "ws1"
False
VERBOSE: The secure channel between the local computer and the domain sbsland.local is broken.

Eine Reparatur erfolgt dann unter der Verwendung eines Domänen-Administrators.

Test-ComputerSecureChannel -Repair -Credential (Get-Credential)

Darüber hinaus lässt sich über den Parameter –Server auch die Verbindung zu weiteren PCs oder Servern in der Domäne prüfen.

Test-ComputerSecureChannel -Server sbs.sbsland.local -Verbose
VERBOSE: Performing the operation "Test-ComputerSecureChannel" on target "ws1"
False
VERBOSE: The secure channel between the local computer and the domain sbsland.local is in good condition.

image

Enjoy it, b!