我在Windows 7中使用PowerShell我有下面的代碼片段,並想知道列表和它的子文件夾
爲什麼我沒有得到SID翻譯成一個友好的用戶名(在域)?
$OutFile = "I:\Permissions.csv"
$RootPath = "K:\FolderName"
$Folders = dir $RootPath -recurse | where {$_.psiscontainer -eq $true}
foreach ($Folder in $Folders)
{
$ACLs = get-acl $Folder.fullname | ForEach-Object { $_.Access }
Foreach ($ACL in $ACLs)
{
$objSID = New-Object System.Security.Principal.SecurityIdentifier($ACL.IdentityReference.Value)
#$objUser = $objSID.Translate([System.Security.Principal.NTAccount])
$objUser = $objSID.Translate([System.Security.Principal.SecurityIdentifier])
$objUser.Value
#Show User
Write-Host 「`r`nThe user mapped to SID $($objSID) is $($objUser.value)`r`n」 -f 「Red」
$OutInfo = $Folder.Fullname + "," + $objUser.Value + "," + $ACL.AccessControlType + "," + $ACL.IsInherited + "," + $ACL.InheritanceFlags + "," + $ACL.PropagationFlags
Add-Content -Value $OutInfo -Path $OutFile
}
}
所需輸出將是SAM帳戶名稱。 (不顯示名稱)
John.Smith1
John.Smith
請提供工作示例。從不聲明'$ ACL'。 –
在這裏你去。你怎麼看? –
更好,仍然缺少'$ Dname'和'$ outfile',但我創建了一個虛擬對象來過去。看到更新的答案。 –