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 08:49] – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1 | powershell:active-directory:get-list-of-group-policies-with-and-without-ou-link-in-powershell [10.10.2024 08: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~~ | ||