Windows-Server-2008

查詢 GPO 詳情

  • March 26, 2014

我需要一些關於查詢 GPO 的幫助。

  1. 我想知道為每個 OU 申請了多少 GPO。
  2. 沒有參數和連結的 GPO
  3. GPO 的參數少於 2 個,連結少於 2 個

任何人都可以幫助解決如何在 GPO 中查詢這些詳細資訊。我們有大約 1000 多個 GPO。

問候, 卡西克五世

我會為此使用一些小Powershell腳本,主要使用:

  • 獲取 ADOrganizationalUnit
  • 獲取 GPO
  • 獲取 GPOReport

從模組:

  • 活動目錄
  • 組策略
import-module ActiveDirectory
import-module grouppolicy

像這樣的東西:

我想知道為每個 OU 申請了多少 GPO。

$OUs = Get-ADOrganizationalUnit -filter * -properties DistinguishedName,LinkedGroupPolicyObjects
foreach($OU in $OUs) {
  write-host $OU.DistinguishedName : $OU.LinkedGroupPolicyObjects.count
}

沒有參數和連結的 GPO

$GPOS = get-gpo -All | select-object DisplayName
foreach($GPO in $GPOS) {
  $myGPO = $GPO.DisplayName
  Get-GPOReport -Name "$myGPO" -ReportType Xml >tmp.xml
  [xml]$xmldata = get-content "tmp.xml"
  $computerLevel = $xmldata.GPO.Computer.ExtensionData | Measure-Object
  $userLevel = $xmldata.GPO.User.ExtensionData | Measure-Object
  $links = $xmldata.GPO.Linksto | Measure-Object

  $NbreLinks = $links.count
  $NbreComputerLevel = $computerLevel.Count
  $NbreUserLevel = $userLevel.count
  $totalParams = $NbreComputerLevel + $NbreUserLevel

  if (($totalParams -eq 0) -and ($NbreLinks -eq 0)) {
     write-host $myGPO
  }   
}

GPO 的參數少於 2 個,連結少於 2 個

與上面相同,但將if語句替換為:

if(($totalParams -lt 2) -and ($NbreLinks -lt 2)) {
  write-host $myGPO
}

引用自:https://serverfault.com/questions/584588