Hoe converteer je een SID naar een gebruikers- of groepsnaam en vice versa?

Oké, dus SID (Security IDentifier) ​​is eigenlijk de ruggengraat van Windows-machtigingen. Elke gebruiker, groep of computer krijgt een unieke SID toegewezen op het moment dat deze wordt aangemaakt, of het nu lokaal is of onderdeel van een Active Directory-domein. Deze SID wordt achter de schermen gebruikt om de toegang tot gedeelde mappen, registersleutels, bestanden, printers, noem maar op, te beheren. Eerlijk gezegd kan het vinden of converteren van SID’s een hoop problemen voorkomen, vooral bij het oplossen van vreemde toegangsproblemen of het opschonen van machtigingen na een herinstallatie of migratie. Deze handleiding laat zien hoe je SID’s kunt vinden, zowel voor lokale accounts als voor accounts in Active Directory, en hoe je een SID weer kunt omzetten naar een leesbare naam – superhandig als je een lijst met SID’s uit gebeurtenislogboeken of foutmeldingen krijgt. Verwacht dat je een goed begrip krijgt van de opdrachtregeltools, PowerShell-trucs en wat registeronderzoek dat in de praktijk werkt.

Hoe vind ik de SID van een gebruiker of computer in Windows?

Methode 1: PowerShell gebruiken (de nieuwe manier)

De meeste recente Windows-versies (zoals Win11 24H2 of Windows Server 2025) hebben PowerShell als standaardtool vervangen. Het is nu betrouwbaarder, omdat wmichet eigenlijk op zijn retour is. Het vinden van de SID van een lokale gebruiker met PowerShell is vrij eenvoudig en biedt de nodige flexibiliteit als je van scripten houdt.

  • Open PowerShell als beheerder. Dit kunt u doen door met de rechtermuisknop op de Startknop te klikken en ‘Windows PowerShell (beheerder)’ te kiezen.
  • Voer dit commando uit: (Get-CimInstance -Class win32_userAccount -Filter "name='test_user' and domain='$env:COMPUTERNAME'").SID

Dit geeft de SID terug voor de gebruiker test_user

Let op: in sommige omgevingen of nieuwere PowerShell-versies moet je mogelijk de optie gebruiken Get-LocalUserdie beschikbaar is.

  • Get-LocalUser -Name 'test_user' | Select-Object Name, SID
  • Of geef een lijst van alle lokale accounts met hun SID’s: Get-LocalUser | Select-Object Name, SID

Terzijde: als u een SID aan een profiel wilt koppelen, kunt u in het register kijken op HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList. De namen van de registersleutels zijn de SID’s, die verwijzen naar profielpaden. Dat is de beste manier om verbanden te leggen als u gebruikersprofielen analyseert.

Methode 2: De opdrachtprompt gebruiken met WMIC

Als je de voorkeur geeft aan de ouderwetse opdrachtregel, kun je proberen wmic. Houd er rekening mee dat deze optie in sommige nieuwere Windows-versies is verdwenen, maar hij werkt nog steeds in veel configuraties. Om een ​​lokale gebruikers-SID te verkrijgen:

  • Open de opdrachtprompt als beheerder.
  • Type:wmic useraccount where name='test_user' get sid

Als dat fouten oplevert, of als je op een systeem werkt waar wmichet ontbreekt, is het wellicht verstandiger om PowerShell te blijven gebruiken.

Extra tip: Gebruik de LocalAccounts-module van PowerShell

Voor een meer “natuurlijke” aanpak, vooral als je aan het testen of scripten bent, probeer het volgende:

  • Get-LocalUser -Name 'test_user' | Select-Object Name, SID
  • Of som alles in één keer op: Get-LocalUser | Select-Object Name, SID

Het is een snelle manier om SIDs te bemachtigen zonder allerlei ingewikkelde procedures.

De SID van een gebruiker of groep in Active Directory opvragen

Active Directory heeft zo zijn eigen werkwijzen, maar de commandoregels zijn vrijwel hetzelfde. Om de huidige SID van een domeingebruiker op te vragen:

  • Open PowerShell met de Active Directory-module geladen. Als deze niet aanwezig is, moet u deze mogelijk installeren via RSAT-tools.
  • Loop:Get-ADUser -Identity 'jabrams' | select SID

Voor groepen vervang je dit Get-ADUserdoor Get-ADGroup. Bijvoorbeeld:

  • Get-ADGroup -Filter {Name -like "fr-sales-*"} | Select SID

Een andere manier, als je de AD-module niet wilt installeren of als deze ontbreekt, is om een ​​SecurityIdentifier-object in PowerShell aan te maken, zoals hieronder:

  • $objUser = New-Object System. Security. Principal. NTAccount("domain\\username")
  • $sid = $objUser. Translate([System. Security. Principal. SecurityIdentifier])
  • Dat geeft de SID weer in een leesbaar formaat.

Hoe krijg ik de SID van een computer in Active Directory of lokaal?

Als de computer is toegevoegd aan een Active Directory-domein, heeft deze een eigen SID (de zogenaamde machine-SID).Om deze in Active Directory te verkrijgen:

  • Loop:Get-ADComputer -Identity 'mun-rds1' -Properties sid | Select-Object Name, sid

Voor de SID van de lokale machine kunt u nu creatief te werk gaan:

  • Gebruik de PsGetSid- tool — download en voer deze uit .\PsGetsid64.exe.
  • Of verwijder gewoon de laatste 4 tekens van de SID van een lokale gebruiker, zoals in dit PowerShell-fragment:

    $sid = (Get-LocalUser 'Administrator').SID -replace ".{4}$"

Onthoud dat het bij het klonen of implementeren van images cruciaal is om de machine-SID opnieuw in te stellen met sysprep. Anders kunnen dubbele SID’s in een domein vertrouwensrelaties verbreken. Windows heeft een hekel aan dergelijke dubbele ID’s.

Een SID omzetten naar een gebruikers- of groepsnaam

Soms krijg je een mysterieuze SID en wil je weten bij welk account deze hoort. De eenvoudigste manier in PowerShell:

  • $sidObj = New-Object System. Security. Principal. SecurityIdentifier('S-1-5-21-XXXXXXXXXX')
  • $ntAccount = $sidObj. Translate([System. Security. Principal. NTAccount])
  • Geeft de accountnaam weer, bijvoorbeeld DOMAIN\username.

Of via WMIC, als de SID nog steeds zinvol is in uw omgeving:

  • wmic useraccount where sid='S-1-5-21-XXXXXXXXXX' get name

Hetzelfde geldt voor AD-objecten, maar het gebruik ervan Get-ADObjectkan grondiger zijn als je verwijderde objecten of items in de prullenbak bekijkt:

  • $sid = 'S-1-5-21-XXXXXX'
  • Get-ADObject -IncludeDeletedObjects -Filter "objectSid -eq '$sid'" | Select-Object name, objectClass

Dit kan helpen om te achterhalen naar welk object een SID daadwerkelijk verwijst, vooral als het is hernoemd of verplaatst. Zo werkt het in de praktijk eigenlijk.

Hopelijk scheelt dit iemand een paar uur. Vaak draait het erom te weten welke opdracht welke informatie geeft en te onthouden dat Windows soms eigenzinnig is als het gaat om machtigingen en identificaties. Toch werken deze trucs prima – geen magie, gewoon de juiste opdracht op het juiste moment.

Samenvatting

  • Gebruik PowerShell of WMIC om de SID’s van lokale gebruikers en groepen te vinden.
  • Gebruik AD-cmdlets of. NET-klassen voor domeinaccounts.
  • Controleer het register of de ProfileList-sleutel voor gebruikersprofielinformatie.
  • Converteer SID’s terug naar namen met behulp van PowerShell-objecten of WMIC.

Samenvatting

Het begrijpen van SID’s is geen hogere wiskunde als je eenmaal de juiste commando’s hebt. Soms is het een kwestie van de juiste PowerShell-commando’s uitvoeren of in het register duiken. Zodra je dat onder de knie hebt, wordt het oplossen van problemen met machtigingen of het opschonen van accounts een stuk eenvoudiger. Vergeet niet dat het resetten van de SID of het opnieuw uitvoeren van Sysprep essentieel is om toekomstige problemen te voorkomen, telkens wanneer je een machine kloont of profielen wijzigt. Ik hoop dat dit helpt. Veel succes met het vinden van die lastige SID’s!