Synology Directory Server | Passwort beim Zugriff auf ein Netzlaufwerk

image

An dieser Stelle möchte ich auf den vielleicht wichtigsten Artikel im Synology Knowledge Center hinweisen Smile

https://kb.synology.com/en-id/DSM/tutorial/domain_user_not_get_group_permission

Es geht hier um eine nicht korrekte Auswertung von Gruppenmitgliedschaften beim Zugriff auf ein Netzlaufwerk.

Technischer Hintergrund

Einem Benutzer in der Domain wird über ein Anmeldeskript (login.cmd) ein neues Netzlaufwerk verbunden. Die Vergabe der Berechtigungen dazu erfolgt relativ einfach indem der Benutzer Mitglied in einer dafür erstellen Gruppe in der Domain wird. Diese Gruppe hat wiederum entsprechende Berechtigungen auf dem Netzlaufwerk.

  • Sepp (Benutzer) – Mitglied in der Gruppe “_ SN Immobilien Users”
  • Die Gruppe “_ SN Immobilien Users” hat R/W-Zugriff auf den Share \\sn-nas-15\immo

Das Problem

Für das neue Netzlaufwerk, muss auf einmal im Fenster des Anmeldeskript ein Passwort angegeben werden, das funktionale Passwort von Sepp wird hier aber nicht akzeptiert. Es bleibt nur die Möglichkeit das Fenster zu schließen und damit die darauffolgenden Maßnahmen (weitere Laufwerke usw.) abzubrechen.

Das erwartete Verhalten wäre, dass Sepp durch seine Mitgliedschaft in der Gruppe “_ SN Immobilien Users” die entsprechenden Berechtigungen auf dem Netzlaufwerk besitzt. Durch seine neue Anmeldung, wird der Security-Token neu erstellt und die (neue) Gruppen-Mitgliedschaft fließt in diesen mit ein.

Die Lösung

Auf dem Synology NAS müssen die folgenden beiden Änderungen durchgeführt werden.image

https://kb.synology.com/en-id/DSM/tutorial/domain_user_not_get_group_permission

Der Windows Client muss wie folgt behandelt werden, wobei bei mir ein Neustart genügte.

image

Danach war das Netzlaufwerk über die passende Gruppenmitgliedschaft im Zugriff.

Update: Ein defektes Computerkonto, kann ebenfalls den Zugriff auf ein Laufwerk verhindern. Die Symptome sind dabei die gleichen, es wird ebenfalls nach einem Benutzer und Passwort gefragt und dieses nicht akzeptiert. Es genügt dann den PC aus der Domäne heraus- und wieder reinzunehmen.

Enjoy it, b!

PowerShell Convert UNIX to DOS

Leider läuft Notepad++ auf Windows Server Core nicht mehr zuverlässig und so habe ich mich auf die Suche nach Alternativen gemacht und auch eine gefunden. Nun verwende ich seit geraumer Zeit Micro (a modern and intuitive terminal-based text editor).

Allerdings habe ich gelegentlich ein Problem mit der Darstellung und Verarbeitung von Dateien die unter UNIX / Linux abgespeichert wurden.

image

Damit diese problemlos bearbeitet werden können, konvertiere ich sie mit dem folgendem Einzeiler in PowerShell in das ASCII-Format.

Get-Content -Path .\vm-export-v029.ps1 | Out-File -Encoding ascii .\vm-export-v029.txt

Danach öffnet Micro die konvertierte Datei problemlos.

image

Enjoy it, b!

Windows 11 | SYSTEM_THREAD_EXECPTION_NOT_HANDLED

So sollte ein Tag nicht beginnen.

IMG_20220630_063001_ON1_Cloud

Mein Lenovo P1 ist heute genau drei Jahre im Betrieb und ich kann in dieser Zeit auf insgesamt 10 BSODs (Stopp-Fehler) zurück blicken, dass waren einige mehr als ich mit meinen Microsoft Surface Book 2 (insgesamt vier) hatte. Nun könnte man von mangelnder Qualität bei Lenovo sprechen, was ich aber so nicht unterschreiben werde, denn alle der 10 Fehler hat mehr oder weniger mit der im Notebook verbauten Nvidia Grafikkarten zu tun.

Im Gegensatz zu früheren BSODs, wo eindeutig ein Nvidia-Treiber auf dem Stack zu sehen war, hat dieses Mal der DirectX Graphics MMS den BSOD verursacht und damit könnte der Fehler im Betriebssystem direkt zu suchen sein.

image

Der erste Blick in dem korrekt geschriebenen Dump mit dem Debugger ( !analyze –v) zeigte zumindest den Stop-Code (7E) und die lapidare Meldung, dass dieser Fehler wohl des Öfteren auftaucht. Auch der Treiber kann über den Dump zweifelsfrei dem Betriebssystem zugeordnet werden.

image

Trotzdem tat ich mich schwer, die eigentliche Ursache zu finden. Ein ganz guter Punkt zum suchen ist der folgende Link bei Microsoft, wo die Bug Check Code Reference zu sehen ist.

https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/bug-check-code-reference2

Von dort geht es weiter zum eigentlichen Code dem 7E, der in insgesamt drei Varianten hier beschrieben ist.

https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/bug-check-0x7e–system-thread-exception-not-handled

Ich hatte die Exception 0xC0000005, eine Zugriffsverletzung oder auch Access Denied

  • 0xC0000005: STATUS_ACCESS_VIOLATION indicates a memory access violation occurred

Letztendlich hat mich die Analyse nicht weitergebracht, aber immerhin den Hinweis darauf gegeben, dass ein Problem im Bereich der Grafiktreiber vorhanden sein könnte. Was mich wiederum zu einer holistischen Suche nach “dxgmms2.sys blue screen nvidia” verlasst hat und mir nicht wenige Einträge im NVIDIA Forum offenbarte.

Meine bisher abschließende Lösung ist damit, den NVIDIA Treiber zu aktualisieren.

image

Enjoy it, b!

Hyper-V 18560, Triple Fault

Es gibt Probleme, die erwischen einen auf dem falschen Fuß. Während der Einführung und Konfiguration von Synology Active Backup for Business musste ich feststellen, dass eine wichtige VM noch auf einem Windows Server 2012 R2 Hyper-V Host lief. Das tat sie seit Jahren sehr zuverlässig und vfel damit in die Kategorie “never touch a running system …”

Synology Active Backup for Business benötigt aber mindestens die Hyper-V Version 6 der VM oder besser und damit einen Hyper-V Host der mindestens mit Windows Server 2016 oder höher läuft. Damit war notgedrungen eine Neuinstallation des Servers notwendig, da ich in diesem Fall auf den kostenlosen Microsoft Hyper-V Server 2019 zurückgreifen wollte.

Vor dem Upgrade dachte ich mir das bestimmt ein Updates des BIOS sinnvoll wäre, das auf dem Server verwendete war von 2014 und Supermicro hat für dieses Board nochmals 2021 ein neues BIOS bereitgestellt. Damit also zuerst den Microsoft Hyper-V Server 2019 installiert und gleich im Anschluss das BIOS aktualisiert. Für den Server war das eine so große Neuerung, dass er mir den konfigurierten SET weggeworfen hat und den Ethernet-Adapter 2 als Nummer 3 präsentierte. Kein Thema, ließ sich alles fixen.

Der Import der einzigen darauf verbliebenen VM (die zwar Generation 2, aber mit Version 5.0 lief) funktionierte funktionierte ebenfalls ohne Probleme, aber der Start wollte nicht gelingen und nach ca. 2min befand sich die VM wieder im ausgeschalteten Zustand.

Zuerst hatte ich das BIOS im Verdacht, aber eine neu eingerichtete VM mal schnell mit OpenSuse installiert, funktionierte ohne Probleme und auch die Hyper-V Replika zu dem anderen Windows Server 2019 Hyper-V Host lief ohne Probleme. Was also tun?

Ein Blick in das Eventlog offenbarte die beiden folgenden Events.

Critical 03/18/2022 20:13:12 Hyper-V-Worker 18604 None
'mt-app-1' has encountered a fatal error but a memory dump could not be generated. Error 0x2. If the problem persists, contact
Product Support for the guest operating system. (Virtual machine ID 0FDEE7BD-2627-4EC8-BE76-5EDF093B447B)
Critical 03/18/2022 20:13:12 Hyper-V-Worker 18560 None
'mt-app-1' was reset because an unrecoverable error occurred on a virtual processor that caused a triple fault. If the problem persists,
contact Product Support. (Virtual machine ID 0FDEE7BD-2627-4EC8-BE76-5EDF093B447A)

Der Fehler wurde zwar schon 2019 mit dem Update KB4497934 behoben, dass hatte aber noch nicht den Weg auf den neu installierten Hyper-V Host gefunden und damit musste ich auf den Workaround zur  Änderung des MAC Address Ranges greifen, was mit einem Aufruf in PowerShell recht einfach funktioniert.

Die folgende Abbildung zeigt den alten Adress-Bereich.

image

Für die Änderung muss man wissen wie eine MAC-Adresse überhaupt aufgebaut ist. Die ersten drei Oktette, also 11-22-33 oder in diesem Fall 00-15-5D sind dem jeweiligem Hardware-Hersteller zugeordnet, hier also Microsoft. Wenn nun der Bereich geändert werden soll, ist es am einfachsten das 4te Oktett zu inkrementieren.

# Anzeigen des aktuellen MAC-Adress Pools auf dem Hyper-V Host
Get-VMHost | Select ComputerName, MacAddressMinimum, MacAddressMaximum | ft
# Konfiguration eines neuen MAC-Adress Bereichs auf dem Hyper-V Host, das 4te Oktett wurde von 23 auf 24 geändert
Set-VMHost -MacAddressMinimum 00155D24AE00 -MacAddressMaximum 00155D24AEFF

Danach habe ich der VM den Netzwerk-Adapter entfernt und im Anschluss gleich wieder reinkonfiguriert. Danach startete mein Sorgenkind ohne Probleme.

Enjoy it, b!

Fix der SysVol-Replikation (DFS-R)

Neulich stand ich vor dem Problem, dass nach dem Einspielen von neuen Windows 10 ADMX-Dateien diese nicht zwischen den Domain Controllern (DCs) repliziert wurden.

Einen ersten Hinweis gab dazu das DFS Replication Event-Log, mit dem Event 4012.

image

Der Vorschlag direkt im Text ist, den DC der nicht an der Replikation teil nimmt aus der Replication Group zu entfernen und wieder hinzuzufügen ist ehrlichgesagt Bullshit, dass ist bei der SysVol Relikation mit DSF-R nicht möglich. Vielmehr muss man eine authoritative synchronization für das mit DFS-R replizierte SysVol durchführen.

Um trotzdem einen Blick auf die SysVol Replication Group werfen zu können, installiere ich gerne auf allen DCs oder in größeren Umgebungen auf Management Servern die DFS Management Tools aus dem Windows RSAT.

image

Mit PowerShell ist das ebenfalls möglich und kann für viele DCs automatisiert werden.

# Hinzufügen der RSAT DFS-Management Tools
Add-WindowsFeature -Name RSAT-DFS-Mgmt-Con

So, wie funktioniert nun die authoritative synchronization des SysVol?

Authoritative SysVol Replikation

Start von ADSIEDIT (über die Suchfunktion auf dem DC) oder das Startmenü, dort liegt das Tool unter Windows Administrative Tools / ADSI Edit.

image

In diesem Fall war die Ausgangslage wie folgt

  • slabad01.vmlabs.local (DC = OK)
  • slabad02.vmlabs.local (Replikation schlägt fehl)

Der slabad01 sollte also die Autorität für die SysVol Replikation werden und obwohl die Replikation ohnehin nicht mehr funktioniert, muss davor auf allen DCs die DFS Replication beendet und auf Manual gestellt werden.

image

image

Nachdem ADSI Edit (mit administrativen Rechten) gestartet wurde, bleiben die Standard-Einstellungen wie sie sind.

image

Nach dem Klick auf OK, steht uns ein Klick-Marathon bevor. Die KB von Microsoft referenziert hier wie folgt:

CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=,OU=Domain Controllers,DC=msDFSR-Enabled=FALSE

Das ist zwar korrekt stellt aber die genau umgekehrte Reihenfolge dar wie der eigentliche Weg ist. Dazu folgen wir dem nächsten Bild.

image

In den SYSVOL Subscription Properties setzen wir nun die beiden folgenden Werte:

msDFSR-Enabled=FALSE
msDFSR-options=1

Das nächste Bild zeigt beide Einstellungen.

image

Für alle anderen DC (bei mir ist es nur ein weiterer) muss ebenfalls msDFSR-Enabled=FALSE gesetzt werden.

msDFSR-Enabled=FALSE

Nun wird auf dem DC von dem die Replikation (Authoritative) aus erfolgen soll, die DFS Replikation wieder gestartet und auf Automatic gesetzt.

image

Nun findet sich im Event-Log der DFS Replication die ID 4114, diese indiziert das die Replikation dieses DC nicht aktiv ist (haben wir ja auch mit msDFSR-Enabled=FALSE deaktiviert).

Hoffentlich habt ihr ADSI Edit offen gelassen, nun wird nämlich der Wert für msDFSR-Enabled=TRUE gesetzt und eine Replikation mit DFSRDIAG POLLAD erzwungen.

DFSRDIAG POLLAD

image

Nun finden sich im Event-Log der DFS Replication die ID 4602, die besagt das auf diesem DC das SysVol wieder erfolgreich repliziert wird.

image

Für alle anderen DCs wird nun zuerst der Dienst für die die DFS Replication auf Automatic gesetzt und gestartet. Sobald der Event 4114 im DFS Replication Event-Log aufgetaucht ist, muss mit ADSI Edit für die restlichen DCs msDFSR-Enabled=FALSE wieder auf msDFSR-Enabled=TRUE gesetzt werden.

Im Anschluss muss auch auf jedem anderen DC ein DFSRDIAG POLLAD ausgeführt werden.

Dazu kann man einfach mal nachschauen ob im SysVol die fehlenden Richtlinien ankommen.image

Das Ereignis mit er ID 4604 meldet dann, dass die Replikation mit den anderen DCs eingesetzt hat und damit wäre auch das Problem gelöst.

Zusammenfassung

Zuerst wird auf dem DC der die autoritative Rolle einnehmen soll, die SysVol Replication wieder in Gang gebracht (er repliziert dann mit sich selbst) und im Anschluss die restlichen DCs mit eingebunden.

Enjoy it, b!

Bluetooth-Maus hängt unter Windows

Wenn unter Windows (egal ob Version 10 oder 11) immer mal wieder die Bluetooth-Maus hängt und das zum Beispiel besonders gerne in RDP-Sitzungen macht, kann das mit einer Einstellung im Intel® Wireless Bluetooth® Gerät (Device) zusammen hängen.image

In den Eigenschaften dieses Devices, muss die Option Allow the computer to turn off this device to save power im Power Management deaktiviert werden.

image

Damit sind die Hänger verschwunden und die Maus läuft ohne Probleme.

Enjoy it, b!

Mit dem Windows 11 Update KB5009566 keine L2TP VPN Verbindungen mehr möglich

Im Moment bin ich über das folgende Problem gestolpert. Nach der Installation von KB5009566 unter Windows 11 schlägt der Aufbau einer VPN-Verbindung mit L2TP fehl.

"The L2TP connection attempt failed because the security layer encountered a 
processing error during initial negotiations with the remote computer"

Eine Deinstallation des Updates bringt die verlorene Funktionalität zurück, diese kann über die Eingabeaufforderung (als Admin, also elevated / mit erhöhten Rechten) mit dem folgenden Befehl durchgeführt werden.

# Deinstallieren von KB5009566
wusa /uninstall /kb:5009566

Mal schauen, wann und wie Microsoft hier reagiert und hoffentlich nachbessert.

Update: Unter Windows 10 ist es wohl das Update KB5009543.

Enjoy it, b!

Windows 11 | Stop Code PAGE_FAULT_IN_NONPAGED_AREA (50)

Heute Morgen hat sich mein Arbeitspferd, ein Lenovo P1, mit einem BSOD (Blue Screen of Death) verabschiedend.

Der STOP-Code lautete PAGE_FAULT_IN_NONPAGED_AREA und deutete gefühlt auf ein Treiber Problem hin. Da Windows den Memory-Dump (MEMORY.DMP) sauber geschrieben hat, war mein erster Weg sich die Sache einmal mit WinDBG (den Windows Debugger) anzuschauen.

image

WinDBG identifiziert hier schnell den Nvidia-Treiber als Verursacher.

nvlddmkm.sys

image

Und auch der Stack zeigt den Treiber, kurz vor der Exception. Diesen (also den Stack) liest man übrigens von unten nach oben.

image

Das Problem konnte ich durch ein Update des Nvidia-Treibers lösen. Installiert war die folgende Version.

image

Die Nvidia Homepage bietet dagegen schon einen neueren WHQL zertifizierten Treiber an.

image

Nach dem Update zeigt auch der Geräte Manager eine neuere Version an.

image

Vielen Dank für das Vorbeischauen.

!analyze –b Smile

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!