Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
$gpmNewGpo = $gpmDomain.CreateGPO()
# С именем PowerShell GPO
$gpmNewGpo.DisplayName = "PowerShell GPO"
Рассмотрим более подробно данный сценарий, так как в нем отражены преимущества PowerShell. В начале сценария мы создаем экземпляр класса GPMgmt.GPM, который дает доступ к большинству функций GPMC:
$gpm = New-Object -ComObject GPMgmt.GPM
Строка является точкой входа, которая позволяет нам редактировать групповые политики. В этом случае нам нужно создать новый объект групповой политики, для этого мы подключаемся к домену командой:
$gpmDomain =$gpm.GetDomain("Mydomain.local", "", $gpmConstants.UseAnyDC)
И затем, собственно, создается новый объект групповой политики:
$gpmNewGpo = $gpmDomain.CreateGPO()
$gpmNewGpo.DisplayName = "PowerShell GPO"
Теперь, когда вы знаете, как создать объект GPO, давайте откроем существующий объект. Для этого нам придется немного модифицировать уже имеющуюся программу. У вас все еще есть ссылка на домен, $gpmDomain, поэтому добавьте следующее:
Листинг 4. Получение информации о групповой политике
$gpmExistingGpo = $gpmDomain.GetGPO("{31B2F340-016D-11D2-945F-00C04FB984F9}")
# Открываем уже существующую групповую политику, используя ее GUID
$gpmExistingGpo.DisplayName
# Получаем имя данной политики. Сохраняем отчет в файл
$gpmExistingGpo.GenerateReportToFile($gpmConstants.ReportHTML,".DefaultDomainPolicyReport.html")
Вы получите полный отчет в формате HTML о параметрах политики домена по умолчанию, но вы можете использовать любой из методов и свойств, например, ModificationTime, который сообщит вам, когда объект GPO в последний раз изменялся, чтобы узнать, когда изменялись какие-либо из параметров объекта GPO.
Напишем еще один небольшой сценарий на PowerShell, который предоставит нам сведения об объектах групповой политики, изменявшихся за последние сутки:
Листинг 5. Получение информации об изменениях GPO за последние сутки
$gpmSearchCriteria = $gpm.CreateSearchCriteria()
# Мы хотим получить информацию обо всех групповых политиках
# в домене, поэтому критерий поиска нам вводить не нужно
$gpmAllGpos = $gpmDomain.SearchGPOs($gpmSearchCriteria)
# Ищем все групповые политики в домене
foreach ($gpmGpo in $gpmAllGpos)
{
if ($gpmGpo.ModificationTime -ge (get-date).AddDays(-1)) {$gpmGpo.DisplayName}
# Проверяем, какие групповые политики изменялись за последние 24 часа
}
Обратите внимание на знак операции -ge, означающий «больше или равно». Он может показаться вам странным, если вы привыкли к знакам операций «и» в других языках написания сценариев или программирования. Однако эти знаки операций используются для перенаправления, например, для перенаправления выходных данных в файл, и поэтому не могут использоваться в качестве знаков операций сравнения в Windows PowerShell.