a
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
$RootPath = Split-Path $MyInvocation.MyCommand.Path -Parent
|
||||
$RootPath = Split-Path $RootPath -Parent
|
||||
. "$RootPath\Helpers\AuditGroupFunctions.ps1"
|
||||
$hyperVStatus = CheckHyperVStatus
|
||||
# Common
|
||||
function ConvertTo-NTAccountUser {
|
||||
[CmdletBinding()]
|
||||
[OutputType([hashtable])]
|
||||
Param(
|
||||
[Parameter(Mandatory = $true, ValueFromPipeline = $true)]
|
||||
[string] $Name
|
||||
)
|
||||
|
||||
process {
|
||||
try {
|
||||
# Convert Domaingroups to german
|
||||
$language = Get-UICulture
|
||||
if ($language.Name -match "de-DE"){
|
||||
if ($name -eq "Enterprise Admins"){
|
||||
$name = "Organisations-Admins"
|
||||
}
|
||||
elseif ($name -eq "Domain Admins"){
|
||||
$name = "Domänen-Admins"
|
||||
}
|
||||
}
|
||||
|
||||
# Convert friendlynames to SID
|
||||
$map = @{
|
||||
"Administrators" = "S-1-5-32-544"
|
||||
"Guests" = "S-1-5-32-546"
|
||||
"Local account" = "S-1-5-113"
|
||||
"Local Service" = "S-1-5-19"
|
||||
"Network Service" = "S-1-5-20"
|
||||
"NT AUTHORITY\Authenticated Users" = "S-1-5-11"
|
||||
"Remote Desktop Users" = "S-1-5-32-555"
|
||||
"Service" = "S-1-5-6"
|
||||
"Users" = "S-1-5-32-545"
|
||||
"NT VIRTUAL MACHINE\Virtual Machines" = "S-1-5-83-0"
|
||||
}
|
||||
|
||||
if ($map.ContainsKey($name)) {
|
||||
$name = $map[$name]
|
||||
}
|
||||
|
||||
# Identity doesn't exist on when Hyper-V isn't installed
|
||||
if ($Name -eq "S-1-5-83-0" -and $hyperVStatus -ne "Enabled") {
|
||||
return $null
|
||||
}
|
||||
|
||||
Write-Verbose "[ConvertTo-NTAccountUser] Converting identity '$Name' to NTAccount"
|
||||
if ($Name -match "^(S-[0-9-]{3,})") {
|
||||
$sidAccount = [System.Security.Principal.SecurityIdentifier]$Name
|
||||
}
|
||||
else {
|
||||
$sidAccount = ([System.Security.Principal.NTAccount]$Name).Translate([System.Security.Principal.SecurityIdentifier])
|
||||
}
|
||||
return @{
|
||||
Account = $sidAccount.Translate([System.Security.Principal.NTAccount])
|
||||
Sid = $sidAccount.Value
|
||||
}
|
||||
}
|
||||
catch {
|
||||
return @{
|
||||
Account = "Orphaned Account"
|
||||
Sid = $Name
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Tests
|
||||
Reference in New Issue
Block a user