我正在获取一些文件夹权限,但是,我只希望权限不是" NT AUTHORITY \ SYSTEM"或" BUILTIN \ Administrators"
我的代码是:
$acl = Get-Acl $path
$perm = $acl.Access | where{$_.IdentityReference -notmatch "NT AUTHORITY\SYSTEM"}
Write-Output $perm
但它仍然显示" NT AUTHORITY \ SYSTEM"许可,如何过滤掉我不想要的记录?
答案 0 :(得分:3)
TL; DR:
-notmatch
正在使用正则表达式,并且您的字符串包含\S
,它将匹配任何非空白字符(这不是您想要的)。
使用-notlike
代替-notmatch
:
$acl = Get-Acl $path
$perm = $acl.Access | where{$_.IdentityReference -notlike "NT AUTHORITY\SYSTEM"}
Write-Output $perm
要过滤多个条目,我会使用-notin
:
$acl = Get-Acl $path
$perm = $acl.Access | where{$_.IdentityReference -notin @("BUILTIN\Administrators", "NT AUTHORITY\SYSTEM")}
Write-Output $perm