Dec 04, 2019 09:24
Скрипт запускать из Posh окна с административными правами (.\script.ps1 -path d:\), в качестве параметра -path правильнее давать корень диска, поскольку наследованные права скрипт не удаляет.
Param(
[Parameter(HelpMessage = 'Enter a directory or file path')]
[ValidateScript({if ($_ -match '\\'){Test-Path $_}else{$True}})]
[string]$path
)
$global:arr = @()
Get-ChildItem -Path $path -Recurse | ForEach-Object -Process {
$path = $_.fullname.Replace("[", "`[").Replace("]", "`]")
$acl = Get-Acl -LiteralPath $path
$sid = $acl.access | Where-Object -FilterScript {
$_.identityreference -match 'S-1-.*' -and !($_.isinherited)
}
if($sid)
{
$sid| ForEach-Object -Process {
$co = [pscustomobject]@{
Path = $path
RemovedSID = $_.identityreference
}
$co|Format-List
$arr += $co
$null = $acl.removeaccessrule($_)
}
Set-Acl -LiteralPath $path -AclObject $acl
}
}
'- Report'
$arr|Format-Table -AutoSize
powershell,
напоработать