added userprincipal support

This commit is contained in:
Hans-Joachim Kliemeck 2015-10-17 23:05:51 +02:00
parent 71dc569566
commit 21c564848d

View file

@ -51,8 +51,7 @@ Function UserSearch
$accountname = $env:COMPUTERNAME + "\" + $AccountName $accountname = $env:COMPUTERNAME + "\" + $AccountName
$IsLocalAccount = $true $IsLocalAccount = $true
} }
if ($IsLocalAccount -eq $true) if ($IsLocalAccount -eq $true)
{ {
# do not use Win32_UserAccount, because e.g. SYSTEM (BUILTIN\SYSTEM or COMPUUTERNAME\SYSTEM) will not be listed. on Win32_Account groups will be listed too # do not use Win32_UserAccount, because e.g. SYSTEM (BUILTIN\SYSTEM or COMPUUTERNAME\SYSTEM) will not be listed. on Win32_Account groups will be listed too
@ -62,13 +61,19 @@ Function UserSearch
return $localaccount.SID return $localaccount.SID
} }
} }
ElseIf (($IsDomainAccount -eq $true) -and ($IsUpn -eq $false)) ElseIf ($IsDomainAccount -eq $true)
{ {
#Search by samaccountname #Search by samaccountname
$Searcher = [adsisearcher]"" $Searcher = [adsisearcher]""
$Searcher.Filter = "sAMAccountName=$($accountname.split("\")[1])"
$result = $Searcher.FindOne() If ($IsUpn -eq $false) {
$Searcher.Filter = "sAMAccountName=$($accountname.split("\")[1])"
}
Else {
$Searcher.Filter = "userPrincipalName=$($accountname)"
}
$result = $Searcher.FindOne()
if ($result) if ($result)
{ {
$user = $result.GetDirectoryEntry() $user = $result.GetDirectoryEntry()
@ -80,7 +85,6 @@ Function UserSearch
return (New-Object System.Security.Principal.SecurityIdentifier($binarySID,0)).Value return (New-Object System.Security.Principal.SecurityIdentifier($binarySID,0)).Value
} }
} }
} }
$params = Parse-Args $args; $params = Parse-Args $args;
@ -225,4 +229,4 @@ Catch {
Fail-Json $result "an error occured when attempting to $state $rights permission(s) on $path for $($Params.User)" Fail-Json $result "an error occured when attempting to $state $rights permission(s) on $path for $($Params.User)"
} }
Exit-Json $result Exit-Json $result