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 –
完美的我得到它的工作 還有一件事,它增加了一個新的訪問規則,但離開舊域的一個 我將如何刪除它? –