Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


powershell:active-directory:get-list-of-group-policies-with-and-without-ou-link-in-powershell

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
powershell:active-directory:get-list-of-group-policies-with-and-without-ou-link-in-powershell [10.10.2024 11:49] – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1powershell:active-directory:get-list-of-group-policies-with-and-without-ou-link-in-powershell [10.10.2024 11:53] (текущий) Алексей Максимов
Строка 1: Строка 1:
 +===== Получение списка групповых политик со связями с OU и без связей с OU =====
  
 +Получение списка групповых политик со связями с OU:
 +
 +<code powershell># Путь до отчёта
 +$Report = "C:\Temp\LinkedGPOReport.csv"
 +
 +# Создаём массив для результатов
 +$results = @()
 +
 +# Получаем все GPO
 +$AllGPOs = Get-GPO -All
 +
 +# Проходим по каждой GPO
 +foreach ($GPO in $AllGPOs) {
 +    # Получаем политику в формате XML
 +    $GPOReport = Get-GPOReport -Name $GPO.DisplayName -ReportType xml
 +
 +    # Конвертируем в XML
 +    $GPOXml = [xml]$GPOReport
 +
 +    # Получаем связи с OU
 +    $Links = $GPOXml.GPO.LinksTo
 +
 +    # Если связь существует
 +    if ($Links) {
 +        # Проходим по каждой связи
 +        foreach ($Link in $Links) {
 +            # Получаем инф о связи и параметрах
 +            $SOMPath = $Link.SOMPath # Путь к OU
 +            $LinkEnabled = $Link.Enabled -eq "true" # Статус
 +            $Enforced = $Link.NoOverride -eq "true" # Принудительное применение
 +
 +            # формируем инф для выгрузки в csv
 +            $result = [PSCustomObject]@{
 +                PolicyName  = $GPO.DisplayName
 +                OU          = $SOMPath
 +                LinkEnabled = $LinkEnabled
 +                Enforced    = $Enforced
 +            }
 +
 +            # Добавляем массив
 +            $results += $result
 +        }
 +    }
 +}
 +
 +# Экспортируем в CSV
 +$results | Export-Csv -Path $Report -NoTypeInformation -Encoding UTF8 -Delimiter ";" 
 +</code>
 +
 +Получение списка групповых политик, не имеющих связей с OU:
 +
 +<code powershell>
 +# Путь до отчёта
 +$Report = "C:\Temp\UnLinkedGPOReport.csv"
 +
 +# Создаём массив для результатов
 +$unlinkedGPOs = @()
 +
 +# Получаем все GPO
 +$AllGPOs = Get-GPO -All
 +
 +# Проходим по каждой GPO
 +foreach ($GPO in $AllGPOs) {
 +    # Получаем политику в формате XML
 +    $GPOReport = Get-GPOReport -Name $GPO.DisplayName -ReportType xml
 +
 +    # Конвертируем в XML
 +    $GPOXml = [xml]$GPOReport
 +
 +    # Если связи нет
 +    if (-not $GPOXml.GPO.LinksTo) {
 +        # формируем инф для выгрузки в csv
 +        $unlinkedGPOs += [PSCustomObject]@{
 +            GPOName   = $GPO.DisplayName
 +            GPOID     = $GPO.Id
 +            CreatedBy = $GPO.Owner
 +            Created   = $GPO.CreationTime
 +            Modified  = $GPO.ModificationTime
 +        }
 +    }
 +}
 +
 +# Экспортируем в CSV
 +$unlinkedGPOs | Export-Csv -Path $Report -NoTypeInformation -Encoding UTF8 -Delimiter ";"
 +</code>
 +
 +
 +\\
 +----
 +Проверено на следующих конфигурациях:
 +^ Версия ОС ^ Версия PowerShell ^
 +| Windows 10 Pro 10.0.19045 | PowerShell 5.1 | 
 +
 +----
 +{{:user:vyakob.png?50&nolink |}} Автор первичной редакции:\\ [[user:vyakob|Виталий Якоб]] \\ Время публикации: 10.10.2024 11:43 
 +
 +{{tag>PowerShell "Active Directory" ADDS "Group Policy" GPO}}
 +
 +~~DISCUSSION~~

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki