Назад | Перейти на главную страницу

Запрос сведений о GPO

Мне нужна помощь при запросе GPO.

  1. Я хочу знать, сколько всего GPO было применено для каждого OU.

  2. GPO без параметров и без ссылки

  3. GPO с менее чем 2 параметрами и менее чем 2 ссылками

Может ли кто-нибудь помочь в этом, как запросить эти данные в GPO. У нас около 1000+ GPO.

С уважением, Картик V

Я бы использовал небольшой Powershell сценарии для этого, в основном используя:

  • Get-ADOrganizationalUnit
  • Get-GPO
  • Get-GPOReport

Из модулей:

  • ActiveDirectory
  • групповая политика

    import-module ActiveDirectory
    import-module grouppolicy
    

что-то вроде этого :

Я хочу знать, сколько всего GPO было применено для каждого OU.

$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
}