查询 GPO 详细信息

查询 GPO 详细信息

我需要一些有关查询 GPO 的帮助。

  1. 我想知道每个 OU 总共申请了多少个 GPO。

  2. 没有参数和链接的 GPO

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

有谁能帮我查询一下 GPO 中的详细信息吗?我们有大约 1000 多个 GPO。

问候,Karthick V

答案1

我将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
   }   
}

具有少于 2 个参数和少于 2 个链接的 GPO

与上面相同,但将if语句替换为:

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

相关内容