2012-09-03 60 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