我正在使用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
}
答案 0 :(得分: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
}
}