2012-09-03 58 views
3

根据Microsoft该cmdlet Set-GPPermissions接受选项“-replace”:GPO设置安全过滤器使用PowerShell设置GPPermissions cmdlet的

“这确保了现有权限级别由新的权限级别所取代。”

我从PowerShell导入GPO。之后,我想设置安全过滤器。导入之后,在设置安全筛选器之前,GPO的安全筛选是“已验证用户”。现在我想删除该过滤器选项并将其替换为“myGroup”。要做到这一点我用下面的命令:

Set-GPPermissions -Name "myGPO" -PermissionLevel GpoApply -TargetName "myGroup" -TargetType Group -replace 

的结果是,有一个新的安全过滤器添加它引用“为myGroup”,但该集团“验证用户”不被删除。 Powershell cmdlet并非取代的过滤器,而是加入它。

提示?

在此先感谢!

回答

1

如您在引用的页面上所记录的,该命令将替换组“myGroup”中已有的permissions。它不会替换具有组“myGroup”权限的组“身份验证用户”的权限。从Technet引述:

-replace < SwitchParameter>

指定所设置的新的权限级别之前的组或用户的现有权限级别被去除。

你将不得不使用Set-GPPermissions将权限授予“为myGroup”和Set-GPPermissions -TargetName "Authenticated Users -PermissionLevel None删除权限“验证用户”。

+0

感谢您的答复,但我仍然不明白。没有称为'Remove-GPPermission'的命令。 除了我想知道这是否是正确的cmdlet,因为我想添加安全筛选器,而不是权限。那不是相反的吗? – user1458620

+0

我发现将'Authenticated User'权限级别设置为'none'就足够了: 'Set-GPPermissions -Name“MyGPO”-PermissionLevel None -TargetName“Authenticated Users”-Tgetget Group' 就是这样。 还是谢谢! – user1458620

+0

对不起,我很困惑。事实上,没有cmdlet'Remove-GPPermission',你必须使用'Set-GPPermission -PermissionLevel None'来撤销现有的权限。现在我的答案已经修复了。我的意思是'-Replace'选项指的是'-TargetName',因此使用'-TargetName“myGroup”-Replace'将替换“myGroup”的权限,**不替代任何其他现有目标。 –

1

我发现,它足以设置身份验证的用户permissionlevel首屈一指这样的:

Set-GPPermissions -Name "MyGPO" -PermissionLevel None -TargetName "Authenticated Users" -TargetType Group 

即去掉了“已验证用户”安全过滤器。

0

我想你应该接受Ansgar或user1458620的回答;他们是正确的。 这是一个最终的解决方案合并相同:

$gpo | Set-GPPermissions -Replace -PermissionLevel None -TargetName 'Authenticated Users' -TargetType group 
$gpo | Set-GPPermissions -PermissionLevel gpoapply -TargetName 'MyGroup' -TargetType group