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.1 | powershell: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 = " | ||
+ | |||
+ | # Создаём массив для результатов | ||
+ | $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 " | ||
+ | $Enforced = $Link.NoOverride -eq " | ||
+ | |||
+ | # формируем инф для выгрузки в csv | ||
+ | $result = [PSCustomObject]@{ | ||
+ | PolicyName | ||
+ | OU = $SOMPath | ||
+ | LinkEnabled = $LinkEnabled | ||
+ | Enforced | ||
+ | } | ||
+ | |||
+ | # Добавляем массив | ||
+ | $results += $result | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | # Экспортируем в CSV | ||
+ | $results | Export-Csv -Path $Report -NoTypeInformation -Encoding UTF8 -Delimiter ";" | ||
+ | </ | ||
+ | |||
+ | Получение списка групповых политик, | ||
+ | |||
+ | <code powershell> | ||
+ | # Путь до отчёта | ||
+ | $Report = " | ||
+ | |||
+ | # Создаём массив для результатов | ||
+ | $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 | ||
+ | GPOID = $GPO.Id | ||
+ | CreatedBy = $GPO.Owner | ||
+ | Created | ||
+ | Modified | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | # Экспортируем в CSV | ||
+ | $unlinkedGPOs | Export-Csv -Path $Report -NoTypeInformation -Encoding UTF8 -Delimiter ";" | ||
+ | </ | ||
+ | |||
+ | |||
+ | \\ | ||
+ | ---- | ||
+ | Проверено на следующих конфигурациях: | ||
+ | ^ Версия ОС ^ Версия PowerShell ^ | ||
+ | | Windows 10 Pro 10.0.19045 | PowerShell 5.1 | | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | |||
+ | {{tag> | ||
+ | |||
+ | ~~DISCUSSION~~ |