Export Permissions for multiple Shares



由于我正在处理的敏感数据,我无法使用第三方工具(我知道它们存在但无法使用它们)

我真的需要创建一个脚本,导出多个共享的权限(我只需要父文件夹,因为它们包含数千个子文件夹)我的想法是我不知道如何写"-递归的"这样整个输出将导出到同一个工作表中,而不是为每个共享创建一个新的工作表。已经排除了用户类型,我得到了Get-Item,所以不会有任何子文件夹

如果我尝试下面的一个,它只是覆盖下一行,在同一工作表上。如有任何支持,不胜感激

"

$Folder="\storage1abcd"
$Folder="\storage2abcde"
$Folder="\storage2alm"
$AllFolders = Get-Item -Path $Folder -Force --recurse
$Results = @() 
Foreach ($Folder in $AllFolders) {
$Acl = Get-Acl -Path $Folder.FullName
foreach ($Access in $acl.Access) {
if ($Access.IdentityReference -notlike "BUILTINAdministrators" -and $Access.IdentityReference -notlike "domainDomain Admins" -and $Access.IdentityReference -notlike "CREATOR OWNER" -and $access.IdentityReference -notlike "NT AUTHORITYSYSTEM") {
$Properties = [ordered]@{'FolderName'=$Folder.FullName;'AD Group'=$Access.IdentityReference;'Permissions'=$Access.FileSystemRights;'Inherited'=$Access.IsInherited}
$Results += New-Object -TypeName PSObject -Property $Properties
}
}
}
$Results | Export-Csv -path "C:ScriptsPermissionstest.csv"

"

看起来在路径下必须将所有值放在同一行,这是有道理的。你不能声明一个对象有多个值。现在,它工作了:)

**$Folder="\storage1abcd" , "\storage2abcde" , "\storage2alm"
$AllFolders = Get-Item -Path $Folder -Force
$Results = @() 
Foreach ($Folder in $AllFolders) {
$Acl = Get-Acl -Path $Folder.FullName
foreach ($Access in $acl.Access) {
if ($Access.IdentityReference -notlike "BUILTINAdministrators" -and $Access.IdentityReference -notlike "domainDomain Admins" -and $Access.IdentityReference -notlike "CREATOR OWNER" -and $access.IdentityReference -notlike "NT AUTHORITYSYSTEM") {
$Properties = [ordered]@{'FolderName'=$Folder.FullName;'AD Group'=$Access.IdentityReference;'Permissions'=$Access.FileSystemRights;'Inherited'=$Access.IsInherited}
$Results += New-Object -TypeName PSObject -Property $Properties
}
}
}
$Results | Export-Csv -path "C:ScriptsPermissionstest.csv"**

最新更新