Я проверял другие сообщения и даже после этого я не могу заставить это функционировать.Get-ChildItem Рекурсивное исключение НЕ исключая папку
Я пытаюсь извлечь всю информацию ACL с диска, но исключаю папку Windows.
Это код, который я использую, но он всегда пытается включить эту папку. Может кто-нибудь сказать мне, почему это не работает?
Я также пробовал Where-Object
.
$containers = Get-ChildItem -Path $Path -Recurse -Exclude $exclude |
? {$_.FullName -notmatch '\\windows\\?'}
Основной код:
function Get-PathPermissions {
param ([Parameter(Mandatory=$true)] [System.String]${Path})
begin {
$root = Get-Item $Path
($root | Get-Acl).Access |
Add-Member -MemberType NoteProperty -Name "Path" -Value $($root.fullname).ToString() -PassThru
}
process {
$exclude = @('C:\Windows\*')
$containers = Get-ChildItem -Path $Path -Recurse -Exclude $exclude |
? {$_.psIscontainer -eq $true}
if ($containers -eq $null) {break}
foreach ($container in $containers)
{
(Get-Acl $container.FullName).Access |
? { $_.IsInherited -eq $false } |
Add-Member -MemberType NoteProperty -Name "Path" -Value $($container.fullname).ToString() -PassThru
}
}
}
Get-PathPermissions $args[0]
Попробуйте Get-ChildItem 'C: \ *' -Exclude 'Windows' –
Спасибо, но это тоже не работает. Командная строка, которую я вводил, -. \ NTFSPermissions.ps1 "C: \" | Export-Csv C: \ Permissions \ output.csv -NoTypeInformation. Также попробовали Исключить 'Windows' –
Попробуйте вызвать скрипт с \ NTFSPermissions.ps1 "C: *" | Export-Csv C: \ Permissions \ output.csv -NoTypeInformation –