备份和恢复权限
backup and restore permissions
我目前正在使用以下脚本导出权限,获取文件夹的所有权,然后从该文件夹中删除所有权限。文件夹列表取自文本文件。
$InputFile = "C:\temp\Folders.txt"
$OutputFile = "C:\temp\FolderPermissions.txt"
$FolderList = Get-Content $InputFile
foreach ($Folder in $FolderList) {
Get-Acl $folder | Format-List >>$OutputFile
$acl = Get-ACL -Path $folder
$acl.SetAccessRuleProtection($True, $True)
Set-Acl -Path $folder -AclObject $acl
$ACL = Get-ACL -Path $Folder
$Rules = $ACL.Access | Where-Object {$_.IdentityReference -notmatch 'Admin'}
foreach ($Rule in $Rules) {
[void]$ACL.RemoveAccessRule($Rule)
}
Set-Acl -Path $folder -AclObject $acl
}
我真的很想扭转这个局面,但不知道如何从它导出的文件中重新应用权限。
列表格式对人类读者来说还可以,但它不太适合从文件中恢复数据。将每个文件夹的完整路径和 SDDL 保存到 CSV:
foreach ($Folder in $FolderList) {
Get-Acl $folder | Select-Object @{n='Path';e={$Folder.FullName}}, Sddl |
Export-Csv $OutputFile -NoType -Append
...
}
这应该允许您恢复安全信息,例如 this:
Import-Csv $OutputFile | ForEach-Object {
$acl = Get-Acl -Path $_.Path
$acl.SetSecurityDescriptorSddlForm($_.Sddl)
Set-Acl -Path $_.Path -AclObject $acl
}
我目前正在使用以下脚本导出权限,获取文件夹的所有权,然后从该文件夹中删除所有权限。文件夹列表取自文本文件。
$InputFile = "C:\temp\Folders.txt"
$OutputFile = "C:\temp\FolderPermissions.txt"
$FolderList = Get-Content $InputFile
foreach ($Folder in $FolderList) {
Get-Acl $folder | Format-List >>$OutputFile
$acl = Get-ACL -Path $folder
$acl.SetAccessRuleProtection($True, $True)
Set-Acl -Path $folder -AclObject $acl
$ACL = Get-ACL -Path $Folder
$Rules = $ACL.Access | Where-Object {$_.IdentityReference -notmatch 'Admin'}
foreach ($Rule in $Rules) {
[void]$ACL.RemoveAccessRule($Rule)
}
Set-Acl -Path $folder -AclObject $acl
}
我真的很想扭转这个局面,但不知道如何从它导出的文件中重新应用权限。
列表格式对人类读者来说还可以,但它不太适合从文件中恢复数据。将每个文件夹的完整路径和 SDDL 保存到 CSV:
foreach ($Folder in $FolderList) {
Get-Acl $folder | Select-Object @{n='Path';e={$Folder.FullName}}, Sddl |
Export-Csv $OutputFile -NoType -Append
...
}
这应该允许您恢复安全信息,例如 this:
Import-Csv $OutputFile | ForEach-Object {
$acl = Get-Acl -Path $_.Path
$acl.SetSecurityDescriptorSddlForm($_.Sddl)
Set-Acl -Path $_.Path -AclObject $acl
}