Ik ben stumped!
Dit is wat ik moet doen. We zijn gemigreerd naar een nieuw domein, ik heb in principe een script nodig dat we kunnen uitvoeren op een server die alle mappen en bestanden opnieuw vervloekt door naar de ACL's voor elk domein te kijken. Het zoekt in de ACL naar OLDDOMAIN \ USER enz. Als dit wordt gevonden, wijzigt u de ACL in NEWDOMAIN \ USER, maar behoudt u alle machtigingen
Dit is wat ik tot nu toe heb gedaan
$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
}
}
}
}
Het werkt een beetje, maar het probleem is dat wanneer de rechten opnieuw worden toegepast de array niet in de juiste volgorde staat en deze mislukt bij de opdracht set-acl
Om het even welke ideeën? Mijn haar hier uittrekken: P
Bedankt