3
这是我需要做的。我们已经迁移到一个新的域,我基本上需要一个脚本,我们可以运行在一个服务器上,它将重新审查所有目录和文件,查看ACL的每个目录和文件。它将搜索OLDDOMAIN \ USER等ACL如果发现变化的ACL来NEWDOMAIN \用户,但保持所有权限
这里是我到目前为止
$access = ""
$accessarray = @()
$filesarray = @()
$permarray = @()
$filesarray = Get-ChildItem C:\Users -Recurse
ForEach($path in $filesarray) {
$pathcheck = $path.fullname
$access = get-acl $pathcheck
$accessarray = $access.AccessToString.Split(",")
foreach ($item in $accessarray) {
if ($item -match "OLDDOMAIN") {
Write-Host $pathcheck
Write-Host $item
$item = $item -replace ("OLDDOMAIN","NEWDOMAIN")
$permarray = $item.split(” “) | where-object {$_ -ne ”“}
foreach($perm in $permarray) {
$ar = New-Object system.security.accesscontrol.filesystemaccessrule $perm
$acl.SetAccessRule($ar)
$acl | Set-Acl $pathcheck
}
}
}
}
它的工作原理样的,但问题是,当它重新申请权限时,阵列的顺序不正确,并且在set-acl命令时失败
任何想法?拉我的头发在这里:P
感谢
感谢的人,真的需要看起来更到PowerShell的 –
收到以下错误现在 套装-Acl:安全标识符不被允许为此对象的所有者。 任何想法,我如此接近:P –
完美的我得到它的工作 还有一件事,它增加了一个新的访问规则,但离开旧域的一个 我将如何删除它? –