1

我正在编写一个脚本来使用 ShareUtils 模块设置文件权限,由于某种原因,它没有继续我的第二和第三阶段循环。不知道为什么?

$input | Where-Object {$_.AccessMask -like 2032127} | Foreach-Object {
Get-Share -Name $_.Name | Add-SharePermission $_.User Allow FullControl | Set-Share
}

$input | Where-Object {$_.AccessMask -like 1245631} | Foreach-Object {
Get-Share -Name $_.Name | Add-SharePermission $_.User Allow Change | Set-Share
}

$input | Where-Object {$_.AccessMask -like 1179817} | Foreach-Object {
Get-Share -Name $_.Name | Add-SharePermission $_.User Allow Read | Set-Share
}
4

1 回答 1

1

尝试重置 $input。一旦 $input 被调用,它就会处理它的所有元素并继续前进,直到它到达最后一项。

$input.reset()

更新

您还可以重写解决方案,例如:

$input | Foreach-Object {

    $perm = switch($_.AccessMask)
    {
        2032127 {'FullControl'; break}
        1245631 {'Change'; break}
        1179817 {'Read'; break}
    }

    if($perm)
    {
       Get-Share -Name $_.Name | Add-SharePermission $_.User Allow $perm | Set-Share        
    }       

}
于 2013-08-13T18:31:40.317 回答