PowerShell Funktionen zur User <> SID Umwandkung

Kleine Samlung an Funktionen rund um das Thema User SID

function Get-SidFromName ($user) {
    (New-Object System.Security.Principal.NTAccount($user)).Translate([System.Security.Principal.SecurityIdentifier]).Value
}

function Get-NameFromSid ($sid) {
    (New-Object System.Security.Principal.SecurityIdentifier($sid)).Translate([System.Security.Principal.NTAccount]).Value
}

function Get-CurrentUserSid {
    [System.Security.Principal.WindowsIdentity]::GetCurrent().User.Value
}

function Get-UserSidFromWildcard ($sid) {
    ([ADSI]"WinNT://$env:COMPUTERNAME").Children | ?{$_.SchemaClassName -eq 'User'} | %{(New-Object Security.Principal.SecurityIdentifier($_.objectSid.Value, 0)).Value} | ?{$_ -like $sid}
}

function Get-GroupSidFromWildcard ($sid) {
    ([ADSI]"WinNT://$env:COMPUTERNAME").Children | ?{$_.SchemaClassName -eq 'Group'} | %{(New-Object Security.Principal.SecurityIdentifier($_.objectSid.Value, 0)).Value} | ?{$_ -like $sid}
}

function Get-ServiceSidFromWildcard ($sid) {
    ([ADSI]"WinNT://$env:COMPUTERNAME").Children | ?{$_.SchemaClassName -eq 'Service'} | %{(New-Object Security.Principal.SecurityIdentifier($_.objectSid.Value, 0)).Value} | ?{$_ -like $sid}
}

function Get-SidFromWildcard ($sid) {
    ([ADSI]"WinNT://$env:COMPUTERNAME").Children | ?{'Group', 'User' -contains $_.SchemaClassName} | %{(New-Object Security.Principal.SecurityIdentifier($_.objectSid.Value, 0)).Value} | ?{$_ -like $sid}
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert