Powershell 从不等于文件夹名称的子项中获取 acl
Powershell get-acl from childitems that not equals foldername
在工作中,我们有一个文件夹,其中包含许多名为 "MeyerS" 的子文件夹。 (姓氏和姓氏首字母)
当我查看 Get-ChildItem $path | Get-Acl
时,用户名等于子文件夹名称。但是"MeyerS"前面还有一个"SCHUELER\"。这就是输出的样子 a.e.: SCHUELER\MeyerS Allow Write, ReadAndExecute, Synchronize
有些子文件夹没有这种用户名。现在我想输出所有这些没有这个用户名的子文件夹 - "combination"。
在我的第一个代码片段中,我得到了所有这些代码片段,但我真的只想要这些特定的代码片段。
我查了一些类似的问题,发现了一些东西。我修改了它,但它显示 all 个子文件夹,只是没有 SCHUELER\MeyerS
。我想我只需要稍微推动一下正确的方式。
目前的代码:
$path = "R:\HOME"
$folders = Get-ChildItem $path | where {$_.psiscontainer}
foreach ($folder in $folders){
$domain = "domname"
$aclname = "ACLname"
$aclfullname ="$domain$aclname"
Get-Acl | select -ExpandProperty Access | where {$_.identityreference -notcontains $aclfullname}
Write-Host $folder.FullName}
简短说明:我尝试了很多 -noteq
或 -notlike
的变体。
我必须改变什么?
如果已经有答案我真的不知道。
有时真的很难用另一种语言表达自己。我希望你明白我的意思。
谢谢。
$path = "R:\HOME"
$folders = Get-ChildItem $path | where {$_.psiscontainer}
foreach ($folder in $folders)
{
$domain = "domname"
$aclname = "ACLname"
$aclfullname ="$domain$aclname"
$FoldersWithAclFullName = $null
$FoldersWithAclFullName = Get-Acl -Path $Folder `
| Select-Object -ExpandProperty Access `
| Where-Object -Property IdentityReference -ne -Value $aclfullname
if ( -not $FoldersWithAclFullName )
{
Write-Host $folder.FullName
}
}
在工作中,我们有一个文件夹,其中包含许多名为 "MeyerS" 的子文件夹。 (姓氏和姓氏首字母)
当我查看 Get-ChildItem $path | Get-Acl
时,用户名等于子文件夹名称。但是"MeyerS"前面还有一个"SCHUELER\"。这就是输出的样子 a.e.: SCHUELER\MeyerS Allow Write, ReadAndExecute, Synchronize
有些子文件夹没有这种用户名。现在我想输出所有这些没有这个用户名的子文件夹 - "combination"。 在我的第一个代码片段中,我得到了所有这些代码片段,但我真的只想要这些特定的代码片段。
我查了一些类似的问题,发现了一些东西。我修改了它,但它显示 all 个子文件夹,只是没有 SCHUELER\MeyerS
。我想我只需要稍微推动一下正确的方式。
目前的代码:
$path = "R:\HOME"
$folders = Get-ChildItem $path | where {$_.psiscontainer}
foreach ($folder in $folders){
$domain = "domname"
$aclname = "ACLname"
$aclfullname ="$domain$aclname"
Get-Acl | select -ExpandProperty Access | where {$_.identityreference -notcontains $aclfullname}
Write-Host $folder.FullName}
简短说明:我尝试了很多 -noteq
或 -notlike
的变体。
我必须改变什么?
如果已经有答案我真的不知道。
有时真的很难用另一种语言表达自己。我希望你明白我的意思。
谢谢。
$path = "R:\HOME"
$folders = Get-ChildItem $path | where {$_.psiscontainer}
foreach ($folder in $folders)
{
$domain = "domname"
$aclname = "ACLname"
$aclfullname ="$domain$aclname"
$FoldersWithAclFullName = $null
$FoldersWithAclFullName = Get-Acl -Path $Folder `
| Select-Object -ExpandProperty Access `
| Where-Object -Property IdentityReference -ne -Value $aclfullname
if ( -not $FoldersWithAclFullName )
{
Write-Host $folder.FullName
}
}