Okay, die SID (Security Identifier) ist quasi das Rückgrat der Windows-Berechtigungen. Jeder Benutzer, jede Gruppe und jeder Computer erhält bei der Erstellung eine eindeutige SID – egal ob lokal oder in einer Active Directory-Domäne. Diese wird im Hintergrund verwendet, um den Zugriff auf freigegebene Ordner, Registrierungsschlüssel, Dateien, Drucker usw.zu steuern. Ehrlich gesagt, kann das Wissen, wie man SIDs findet oder konvertiert, viel Ärger ersparen, insbesondere bei der Behebung von Zugriffsproblemen oder beim Bereinigen von Berechtigungen nach einer Neuinstallation oder Migration. Diese Anleitung zeigt, wie man SIDs für lokale Konten und solche in Active Directory findet und wie man eine SID wieder in einen lesbaren Namen umwandelt – besonders hilfreich, wenn man eine Liste von SIDs aus Ereignisprotokollen oder Fehlermeldungen erhält. Sie lernen die Befehlszeilentools, PowerShell-Tricks und die Registrierungsmanipulation kennen, die sich in der Praxis bewährt haben.
So finden Sie die SID eines Benutzers oder Computers in Windows
Methode 1: Verwendung von PowerShell (die neue Methode)
Die meisten neueren Windows-Versionen (wie Win11 24H2 oder Windows Server 2025) haben PowerShell als Standardlösung etabliert. Es ist mittlerweile zuverlässiger, da andere Systeme wmiczunehmend an Bedeutung verlieren. Die Ermittlung der SID eines lokalen Benutzers mit PowerShell ist recht einfach und bietet, insbesondere für Skriptersteller, einige Flexibilität.
- Öffnen Sie PowerShell als Administrator. Dies können Sie tun, indem Sie mit der rechten Maustaste auf die Schaltfläche „Start“ klicken und „Windows PowerShell (Administrator)“ auswählen.
- Führen Sie diesen Befehl aus:
(Get-CimInstance -Class win32_userAccount -Filter "name='test_user' and domain='$env:COMPUTERNAME'").SID
Dies gibt die SID für den Benutzer test_user zurück.
Hinweis: In manchen Umgebungen oder neueren PowerShell-Versionen müssen Sie möglicherweise die entsprechende Funktion verwenden, Get-LocalUsersofern diese verfügbar ist:
Get-LocalUser -Name 'test_user' | Select-Object Name, SID- Oder listen Sie alle lokalen Accounts mit ihren SIDs auf:
Get-LocalUser | Select-Object Name, SID
Hinweis: Um eine SID einem Profil zuzuordnen, können Sie in der Registrierung unter HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList nachsehen. Die Registrierungsschlüsselnamen entsprechen den SIDs und verweisen auf die Profilpfade. Dies ist die beste Methode, um die Zusammenhänge herzustellen, wenn Sie Benutzerprofile analysieren.
Methode 2: Verwendung der Eingabeaufforderung mit WMIC
Wenn Sie die klassische Kommandozeile bevorzugen, können Sie Folgendes versuchen wmic: Beachten Sie, dass diese Option in einigen neueren Windows-Versionen nicht mehr verfügbar ist, aber auf vielen Systemen weiterhin funktioniert. So erhalten Sie eine lokale Benutzer-SID:
- Öffnen Sie die Eingabeaufforderung als Administrator.
- Typ:
wmic useraccount where name='test_user' get sid
Falls dabei Fehler auftreten oder falls Sie sich auf einem System befinden, auf dem wmices fehlt, ist es möglicherweise sinnvoller, bei PowerShell zu bleiben.
Zusätzlicher Tipp: Verwendung des PowerShell-Moduls LocalAccounts
Für einen natürlicheren Ansatz, insbesondere beim Testen oder Skripten, versuchen Sie Folgendes:
Get-LocalUser -Name 'test_user' | Select-Object Name, SID- Oder listen Sie alles auf einmal auf:
Get-LocalUser | Select-Object Name, SID
Es ist eine schnelle Möglichkeit, SIDs zu erhalten, ohne unnötigen Aufwand.
Ermitteln der SID eines Benutzers oder einer Gruppe in Active Directory
Active Directory hat seine Eigenheiten, aber die Befehlszeilen sind ziemlich ähnlich. So ermitteln Sie die SID eines aktuellen Domänenbenutzers:
- Öffnen Sie PowerShell mit geladenem Active Directory-Modul. Falls dieses nicht vorhanden ist, müssen Sie es möglicherweise über die RSAT-Tools installieren.
- Laufen:
Get-ADUser -Identity 'jabrams' | select SID
Bei Gruppen ersetzen Sie Get-ADUserdurch Get-ADGroup. Zum Beispiel:
Get-ADGroup -Filter {Name -like "fr-sales-*"} | Select SID
Eine weitere Möglichkeit, falls Sie das AD-Modul nicht installieren möchten oder es fehlt, ist die Erstellung eines SecurityIdentifier-Objekts in PowerShell, wie folgt:
$objUser = New-Object System. Security. Principal. NTAccount("domain\\username")$sid = $objUser. Translate([System. Security. Principal. SecurityIdentifier])- Dadurch wird die SID in einem lesbaren Format ausgegeben.
Wie man die SID eines Computers in AD oder lokal ermittelt
Wenn der Computer einer Active Directory-Domäne beigetreten ist, besitzt er eine eigene SID (die sogenannte Maschinen-SID).So finden Sie diese in Active Directory:
- Laufen:
Get-ADComputer -Identity 'mun-rds1' -Properties sid | Select-Object Name, sid
Nun können Sie bei der SID des lokalen Rechners kreativ werden:
- Verwenden Sie das Tool PsGetSid – herunterladen und ausführen
.\PsGetsid64.exe. - Oder man schneidet einfach die letzten 4 Zeichen der SID eines lokalen Benutzers ab, wie mit diesem PowerShell-Codeausschnitt:
$sid = (Get-LocalUser 'Administrator').SID -replace ".{4}$"
Denken Sie daran: Beim Klonen oder Bereitstellen von Images ist es unerlässlich, die Maschinen-SID mit sysprep zurückzusetzen. Andernfalls können doppelte SIDs in einer Domäne Vertrauensstellungen unterbrechen. Windows reagiert empfindlich auf solche doppelten IDs.
Umwandlung einer SID in einen Benutzer- oder Gruppennamen
Manchmal erhält man eine mysteriöse SID und möchte wissen, zu welchem Konto sie gehört. Der einfachste Weg in PowerShell:
$sidObj = New-Object System. Security. Principal. SecurityIdentifier('S-1-5-21-XXXXXXXXXX')$ntAccount = $sidObj. Translate([System. Security. Principal. NTAccount])- Gibt den Kontonamen aus, z. B.
DOMAIN\username.
Oder über WMIC, falls die SID in Ihrer Umgebung noch sinnvoll ist:
wmic useraccount where sid='S-1-5-21-XXXXXXXXXX' get name
Gleiches gilt für AD-Objekte, aber die Verwendung Get-ADObjectkann gründlicher sein, wenn Sie gelöschte Objekte oder Inhalte im Papierkorb durchsuchen:
$sid = 'S-1-5-21-XXXXXX'Get-ADObject -IncludeDeletedObjects -Filter "objectSid -eq '$sid'" | Select-Object name, objectClass
Das kann helfen, herauszufinden, auf welches Objekt eine SID tatsächlich verweist, insbesondere wenn es umbenannt oder verschoben wurde. So funktioniert das in der Praxis.
Hoffentlich spart das jemandem ein paar Stunden. Oft geht es einfach darum, zu wissen, welcher Befehl welche Informationen wann liefert, und sich daran zu erinnern, dass Windows bei Berechtigungen und Kennungen manchmal etwas eigenwillig ist. Trotzdem funktionieren diese Tricks – keine Zauberei, nur der richtige Befehl zur richtigen Zeit.
Zusammenfassung
- Verwenden Sie PowerShell oder WMIC, um die SIDs lokaler Benutzer und Gruppen zu ermitteln.
- Nutzen Sie AD-Cmdlets oder. NET-Klassen für Domänenkonten.
- Überprüfen Sie den Registrierungsschlüssel oder den Schlüssel „ProfileList“, um Informationen zum Benutzerprofil zu erhalten.
- Konvertieren Sie SIDs mithilfe von PowerShell-Objekten oder WMIC wieder in Namen.
Zusammenfassung
Die Verwaltung von SIDs ist kein Hexenwerk, sobald man die richtigen Befehle kennt. Manchmal genügt es, die passenden PowerShell-Befehle auszuführen oder in der Registry nachzusehen. Sobald man diese Schritte verstanden hat, wird die Fehlersuche bei Berechtigungen oder die Bereinigung von Benutzerkonten deutlich einfacher. Wichtig: Nach jedem Klonen eines Rechners oder Änderungen an Profilen ist das Zurücksetzen der SID oder die erneute Systemvorbereitung entscheidend, um zukünftige Probleme zu vermeiden. Ich hoffe, das hilft. Viel Erfolg bei der Suche nach diesen schwer auffindbaren SIDs!