查询GPO详细信息

我需要一些帮助来查询GPO。

  1. 我想知道每个OU应用了多less个GPO。

  2. 没有参数和链接的GPO

  3. GPO具有less于2个参数和less于2个链接

任何请帮助这个如何在GPO中查询这些细节。 我们有大约1000多个GPO。

问候,Karthick V

我会使用一些小的Powershell脚本,主要使用:

  • GET-ADOrganizationalUnit
  • 获取的GPO
  • GET-GPOReport

来自模块:

  • 活动目录
  • 组策略

     import-module ActiveDirectory import-module grouppolicy 

像这样的东西:

我想知道每个OU应用了多less个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具有less于2个参数和less于2个链接

和上面一样,但是用下面的语句replaceif语句:

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