Gpupdate

Результаты групповой политики

В оснастке GPMC есть возможность посмотреть какие политики применяются к нужному объекту групповой политики. Данный мастер называется «Результат моделирования групповой политики». Щелкаем по нему правым кликом и открываем мастер.

Выбираем нужный компьютер, к которому мы хотим проверить применение политики.

Если в момент добавления компьютера у вас выскочит ошибка «Сервер RPC-недоступен«, то проверьте, что у вас запущена на нем служба WMI и в брандмауэре открыты порты для подключения к ней.

Так как я проверяю GPO для компьютера, то мне нет смысла отображать политику для пользователей.

Нажимаем далее. У вас появится отчет. Раскрыв его на вкладке «Сведения» вы увидите, какие политики применены, а какие нет.

Раскрыв подробнее политику, которая не смогла примениться, я вижу, что причиной всему был WMI фильтр.

Последним удобным инструментом диагностики и моделирования групповой политики, выступает функционал GPMC, под названием «Моделирование групповой политики». В задачи которого входит проверка применения политики в существующей ситуации, так и просто тест без реальной прилинковки к OU, указав нужный объект. В оснастке GPMC выберите пункт «Моделирование групповой политикой» и щелкните по нему правым кликом, выбрав «Мастер моделирования групповой политики».

На первом шаге мастера моделирования групповой политики, будет простое уведомление, что к чему, нажимаем далее.

Далее вам будет предложен выбор, дабы указать нужный контроллер домена.

Теперь выбираем нужную OU, для которой мы будем тестировать групповую политику. Делается все через кнопку «Обзор». Я выбрал «Client Computers»

Нажимаем далее.

На следующем шаге мастера моделирования групповой политики, вам предоставят сэмулировать таки параметры:

  • Медленное сетевое подключение, меньше 500 кб/с
  • Обработка петлевого адреса (Замыкание групповой политики — loopbacl policy) — это опция когда вы применяете для OU в которой находятся компьютеры, например терминальные сервера, политики для пользователя. Делается это для того, чтобы политики применяемые к пользователю на его рабочей станции или другом сервере от тех, что в данной OU. Можете подробно почитать, что такое замыкание групповой политики.
  • Выбор сайта.

Указываем в какой группе находится наш объект, к которому будет применяться политика.

далее вы можете применить любой из фильтров WMI, который вы хотите тестировать.

Нажимаем далее.

В итоге мы получаем результат моделирования групповой политики, тут можно посмотреть, что применилось, что нет.

На этом у меня все. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org. Надеюсь, что статья оказалась полезной.

Обновление за декабрь 2021 года:

Теперь вы можете предотвратить проблемы с ПК с помощью этого инструмента, например, защитить вас от потери файлов и вредоносных программ. Кроме того, это отличный способ оптимизировать ваш компьютер для достижения максимальной производительности. Программа с легкостью исправляет типичные ошибки, которые могут возникнуть в системах Windows — нет необходимости часами искать и устранять неполадки, если у вас под рукой есть идеальное решение:

  • Шаг 1: (Windows 10, 8, 7, XP, Vista — Microsoft Gold Certified).
  • Шаг 2: Нажмите «Начать сканирование”, Чтобы найти проблемы реестра Windows, которые могут вызывать проблемы с ПК.
  • Шаг 3: Нажмите «Починить все», Чтобы исправить все проблемы.

Удаленное обновление политик AD с Powershell Invoke-GPUpdate на примере

Для обновления политик Active Directory, вместо команды CMD gpudate, в Powershell используется Invoke-GPUpdate. В этом статье будут рассмотрены примеры обновления политик как для всего AD, так и для отдельной OU.

Сама команда идет в комплекте с ролью AD или установленным RSAT.

Обновление GPO на одном компьютере

Представим, что у нас есть компьютер ‘CL5’ и мы хотим обновить политики, которые предназначены для компьютера или пользователя. Это можно сделать так:

Invoke-GPUpdate -Computer ‘CL5’

Для работы этой команды, а так же большинства других с возможностью удаленного подключения, должен работать PSRemoting.

По умолчанию эта команда не применяет новые политики моментально, а делает это с определенным интервалом. Что бы избежать этого нужно указать параметр:

RandomDelayInMinutes – где значение 0 обозначает “моментальное обновление”. Кроме этого можно указать значение в минутах, которое будет определять время обновления политик после запуска команды.

В документации Microsoft написано, что для значений больших чем 0 так же применяется “случайное смещение”, но как оно вычисляется мне выяснить не удалось. Такой подход используется, если вы ожидаете какую-то большую нагрузку на сеть или сервер.

В этом примере политики будут применены моментально:

Invoke-GPUpdate -Computer ‘CL5’ -RandomDelayInMinutes 0

При этом у пользователей появится следующее окно, которое нельзя никак скрыть:

Как и с gpupdate в CMD мы можем указать источник применения политики в Target:

  • User – обновить GPO предназначенные для пользователя;
  • Computer – обновить GPO для компьютера.

Сами политики могут не применяться, например, до повторного входа пользователя или перезагрузки. Если такие действия необходимы можно использовать следующие ключи:

  • Boot – компьютер будет перезагружен после того, как политика будет скачена;
  • LogOff – после применения политики пользователю выйдет из под своей учетной записи для повторного входа.

Пример работы с обоими ключами:

Invoke-GPUpdate -Computer ‘CL5’ -RandomDelayInMinutes 0 -Target ‘User’ -LogOff -Force

Force исключает ситуацию, где у пользователя будет запрошено подтверждение на какое-то действия (на выход например). Окно с примером, где этого ключа не было:

Возможные проблемы

Некоторые GPO так и не вступили в действие при использовании ключей Boot и LogOff. Просто отображалось окно аналогичное показанному на изображении выше. После закрытия окна перезагрузка или выход пользователя тоже не произошел.

Команда Boot не перезагружает компьютер, а только выбрасывает пользователя для повторного входа. Возможно это связано с самой политикой, так как она не требовала перезагрузку.

Так же читал про проблемы, которые связаны с отсутствием или использованием старой версии RSAT. Об этом говорят следующие ошибки:

  • Invoke-GPUpdate: The term ‘Invoke-GPUpdate’ not recognized as the name of a cmdlet…
  • Invoke-GPUpdate : Имя “Invoke-GPUpdate” не распознано как имя командлета, функции…

Вам так же будет интересно:

Обновление с использованием AD

Имя каждого компьютера можно найти через следующий запрос:

Get-ADComputer -Filter *

У меня есть организационная единица ‘Moscow’, в домене ‘domain.local’. Что бы найти компьютеры в этом OU можно использовать следующий синтаксис:

Get-ADComputer -Filter * -SearchBase “OU=Moscow,DC=domain,DC=local”

Обновление политик можно сделать через конвейер следующим образом:

(Get-ADComputer -Filter * -SearchBase “OU=Moscow,DC=domain,DC=local”).Name | Invoke-GPUpdate -RandomDelayInMinutes 0 -Force -ErrorAction SilentlyContinue

Ключ -ErrorAction SilentlyContinue позволяет исключить вывод ошибок, которые связаны с выключенными компьютерами.

Если компьютеров в AD много и вам важна скорость обновления – лучше использовать циклы с задержкой:

$computers = (Get-ADComputer -Filter * -SearchBase “OU=Moscow,DC=domain,DC=local”).Name foreach ($computer in $computers){ # Получаем случайное число от 1 до 10 $random_number = Get-Random -Minimum 1 -Maximum 10 # Выполняем обновление с использованием случайного числа для задержки Invoke-GPUpdate -RandomDelayInMinutes $random_number -Force -ErrorAction SilentlyContinue } Вам так же будет интересно:

#powershell #ad

Обновление GPO через PSexec

Я вам очень часто рассказываю в своих примерах из моей практики, об утилите PSexec и сборнике SysInternals от Марка Руссиновича. Суть метода в том, что с помощью специальной утилиты вы сможете выполнить удаленную команду, ранее я так удаленно включал RDP на сервере или клиентской машинке.

Далее вы распаковываете архив, если он в таком виде и открываете папку с утилитами SysInternals в командной строке, напомню сделать, это можно через команду cd или через правый клик с зажатым Shift по нужной папке, выбрав пункт «Открыть окно команд».

Обращаю внимание, что у вас должны быть соблюдены несколько требований:

  • Как и в случае Invoke-GPUpdate, вы должны изменить настройки брандмауэра на своих клиентах. Поскольку PsExec использует протокол SMB, вам нужно открыть TCP-порт 445. Как открыть порт я уже подробно рассказывал, можете посмотреть, советую использовать для этого групповую политику.
  • Второе, это наличие прав на удаленном компьютере, чтобы запустить там Gpupdate

Теперь выполните команду:

Обратите внимание, что параметр -i здесь важен. Это гарантирует, что PsExec взаимодействует с удаленным рабочим столом, что необходимо для обновления пользовательских политик

Если этот параметр не указан, будут обновлены только конфигурации компьютера, хотя ни PsExec, ни gpupdate не выдадут сообщение об ошибке. Без параметра –i gpupdate обновит пользовательские настройки, только если вы вошли в систему с одинаковой учетной записью на исходном и целевом компьютере.

В результате будет удаленный запуск утилиты gpupdate, если все хорошо, то вы получите сообщение «gpupdate exited on svt2019s01.root.pyatilistnik.org with error code 0«.

на удаленном компьютере в журналах системы вы увидите два события 1500 и 1501.

Так же вы можете подключиться вообще к удаленной командной строке, через команду:

Далее просто пишите gpupdate /force, обратите внимание я через команду hostname показал, что подключение идет с одного компьютера на другой. Если компьютер не подключен к сети, вы получите следующее сообщение об ошибке:

Если компьютер не подключен к сети, вы получите следующее сообщение об ошибке:

Чтобы массово обновить групповую политику на всех компьютерах домена, воспользуйтесь знаком звездочки «*»:

Если это не помогло и выскочила ошибка, то может воспользоваться через PowerShell. В оболочке перейдите в каталог с утилитами PSTools и выполните:

Или можно из конкретного OU добавив

Другой вариант — сначала экспортировать все имена компьютеров из контейнера Active Directory в текстовый файл с помощью командлета Get-ADComputer:

Обратите внимание, что мы должны кодировать выходной файл с помощью ASCII, чтобы мы могли прочитать его содержимое из пакетного файла следующим образом:

PsExec против Invoke-GPUpdate

Основным недостатком метода PsExec является то, что он относительно медленный. Это может занять от 3 до 4 секунд на компьютер, а для компьютеров, которые не подключены к сети, это может занять еще больше времени. PsExec иногда даже зависал во время моих тестов.

Разрешение входящих подключений через порт 445 является угрозой безопасности. Компьютерные черви могут использовать этот порт, а хакеры могут делать много неприятных вещей с помощью PsExec. Открытие порта планировщика заданий для Invoke-GPUpdate также проблематично, но я думаю, что порт 445 более популярен среди программистов вредоносных программ.

Таким образом, в большинстве сценариев Invoke-GPUpdate является лучшим вариантом. Однако, если вы все равно открыли порт 445 по другим причинам и не хотите открывать порты Invoke-GPUpdate, вы можете предпочесть PsExec для принудительного обновления групповой политики.

Методика диагностики причин долгого применения GPO в Windows

Медленная загрузка компьютера, вызванная долгим применением групповых политик, является одной из частых проблем в домене, на которые жалуются пользователи. С точки зрения пользователя компьютер загружается очень долго, и как будто зависает на несколько минут на этапе «Применение параметров компьютера / пользователя». В этой статье я попробую собрать полезные диагностические инструменты и приемы, позволяющие администратору выявить причины медленного применения GPO на компьютерах домена.

На самом деле причин, из-за которых на компьютере долго применяются групповые политики может быть множество: это и проблемы с DNS, доступностью и скоростью подключения к DC, неправильной настройкой сайтов AD или проблемы с репликацией, неверно настроенные групповых политики и кривые скрипты и т.п. Проблематично описать универсальный алгоритм по диагностике всех этих проблем. При решении таких проблем, как правило, большую роль имеет опыт и навыки специалиста, производящего диагностику. В этой статье мы остановимся только на диагностики проблем, связанных с самими механизмами работы GPO и клиента GPClient.

Планирование создания правил политики

Планируя применение политик ограниченного использования программ, всегда полезно и настоятельно рекомендуется предварительно провести их «обкатку» в тестовой среде. Ввиду сложности структуры на первоначальном этапе возможны ошибки, которые, конечно, лучше исправлять не на рабочей системе. В случае «срабатывания» правила политики в локальный журнал компьютера заносится событие. Код содержит тип правила, его вызвавшего (865 — уровень безопасности по умолчанию, 866 — правило для пути, 867 — правило для сертификата, 868 — правило для зоны Интернета или правило для хеша).

При создании политики, имеющей уровень безопасности Не разрешено, необходимо будет определить, какой код может быть разрешен для запуска пользователем. Как отмечалось выше, эта задача может быть достаточно трудоемкой. Для облегчения процесса инвентаризации программ можно задействовать их отслеживание с помощью расширенного ведения журнала. Этот способ достаточно прост и эффективен.

На тестовом компьютере активируется политика ограничения программ, и в качестве уровня безопасности устанавливается параметр Неограниченный. Все дополнительные правила из политики удаляются. Суть в том, что, несмотря на отсутствие ограничений, при активировании политики можно включить функцию расширенного ведения журнала, в который будет заноситься информация о запущенных программах. Выполнив на тестовом компьютере запуск минимально необходимого пользователю набора программ, а затем, проанализировав этого журнал, можно разработать все необходимые правила для политики.

Для включения режима расширенного ведения журнала на тестовом компьютере создайте параметр реестра в ветви HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers с именем LogFileName. Его значение должно содержать путь к каталогу, где будет расположен файл журнала. Содержимое журнала выглядит следующим образом: winlogon.exe (PID = 452) identified C:\WINDOWS\system32\userinit.exe as Unrestricted using path rule, Guid = {191cd7fa-f240-4a17-8986-94d480a6c8ca}

Эта запись «переводится» так: родительский процесс winlogon.exe, имеющий значение идентификатора (PID) 452, выполнил запуск C:\Windows\system32\userinit.exe; правило, вызвавшее «срабатывание» — правило для пути с уровнем безопасности Неограниченный (Unrestricted), имеет код GUID {191cd7fa-f240-4a17-8986-94d480a6c8ca}. Каждое правило имеет свой идентификатор GUID. После того, как политика ограниченного использования программ применена, ее конфигурация хранится в системном реестре. Список контроля доступа, защищающий разделы реестра, позволяет только администраторам и учетной записи SYSTEM изменять ее. Политика пользователя хранится в разделе HKCU\Software\Policies\Microsoft\Windows\, политика компьютера хранится в разделе HKLM\SOFTWARE\Policies\Microsoft\Windows\.

Параметры политик в реестре

В случае каких-либо ошибок можно найти правило по его коду GUID и выяснить причину ошибки. По окончании отладки всех правил, на рабочей системе ведение журнала желательно прекратить, удалив параметр LogFileName из реестра для уменьшения использования дискового пространства и снижения быстродействия системы. В случае, если политика содержит параметры только для компьютера или пользователя, для ускорения обработки политики следует отключить неиспользуемые компоненты GPO.

Также для определения тех программ, которым потребуется создать разрешающие правила, можно воспользоваться утилитой msinfo32.exe. Для этого запустите все необходимые приложения, после этого нажмите кнопку Пуск, выберите Выполнить и введите команду msinfo32.exe. В окне программы msinfo32 разверните узел Программная среда и выберите Выполняемые задачи.

Принудительное использование

Первый параметр определяет, следует ли проверять библиотеки DLL, и возможность применения ограничений, накладываемых политикой на локальных администраторов компьютеров. DLL – это библиотеки динамической компоновки, которые являются частью некоторых исполняемых программ. По умолчанию, проверка DLL отключена.

Опции принудительного применения

Без особой нужды нет необходимости переключать этот параметр в положение проверки всех файлов программ. Причин для этого несколько. Во-первых, при большом количестве исполняемых файлов и «прицепленных» к ним библиотек (а в Windows их предостаточно) резко снижается производительность системы — параметры политики будут просматриваться при каждом вызове программой библиотеки DLL. Во-вторых, если исполнение файла будет запрещено политикой, то не возникнет и необходимости проверки сопутствующих библиотек.

Второй параметр позволяет исключить локальных администраторов компьютеров из списка пользователей, к которым будет применяться политика. Он используется только для политик компьютера. Включается, если необходимо позволить локальным администраторам запускать любые приложения. Более предпочтительный способ предоставить эту возможность – либо временное перемещение учетной записи компьютера в организационную единицу, на которую не распространяются данные политики, либо убрать разрешение Применение групповой политики в свойствах группы GPO, в состав которой входят администраторы.

Как обновить GPO через PowerShell

Оболочка PowerShell так же имеет отдельный командлет, который легко может инициировать запрос на обновление групповой политики, называется он Invoke-GPUpdate.

Invoke-GPUpdate — это командлет обновляющий параметры групповой политики, включая настройки безопасности, которые установлены на удаленных компьютерах с помощью планирования хода выполнения команды Gpupdate. Вы можете комбинировать этот командлет по сценарию, чтобы запланировать команду Gpupdate на группе компьютеров. Обновление может быть запланировано для немедленного запуска параметров политики или ожидания в течение определенного периода времени, максимум до 31 дня. Чтобы избежать нагрузки на сеть, время обновления будет смещено на случайную задержку.

Давайте запросим обновление политик GPO на моем тестовом сервере с Windows Server 2019, для этого запускаем оболочку PowerShell и вводим команду:

Invoke-GPUpdate –RandomDelayInMinutes 0

Ключ –RandomDelayInMinutes 0 установит задержку в выполнении на ноль секунд, в противном случае обновление будет выполнено рандомно, через некоторое время.

Обратите внимание, что командлет не выдает никаких результатов, если все работает нормально. В некоторых случаях ваши пользователи могут увидеть всплывающее окно командной строки с заголовком taskeng.exe, которое отображает сообщение «Политика обновления»

Через секунду окно исчезает.

Если нужно произвести обновление на удаленном компьютере, то нужно воспользоваться ключом -Computer, команда примет вот такой вид:

Invoke-GPUpdate -Computer dc01.root.pyatilistnik.org –RandomDelayInMinutes 0

Если нужно выполнить принудительно без запроса подтверждения пользователя, то укажите ключ -Force.

Если нужно указать явно, что необходимо запросить политики только для пользователя или компьютера, то можно использовать ключ -Target, который имеет значения User или Computer. Кстати если удаленный компьютер не отвечает, то вы получите ошибку:

Invoke-GPUpdate : Компьютер «dc01.root.pyatilistnik.org» не отвечает. Целевой компьютер выключен или отключены правила брандмауэра удаленного управления запланированными задачами (Invoke-GPUpdate : Computer «dc01.root.pyatilistnik.org» is not responding. The target computer is either turned off or Remote Scheduled Tasks Management Firewall rules are disabled.). Имя параметра: computer строка:1 знак:1 + Invoke-GPUpdate -Computer dc01.root.pyatilistnik.org -Target User –Ra … + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationTimeout: (:) , ArgumentException + FullyQualifiedErrorId : COMException,Microsoft.GroupPolicy.Commands .InvokeGPUpdateCommand

Еще одним преимуществом командлета PowerShell является то, что у вас есть больше возможностей в выборе машин, которые вы хотите обновить. Например, с помощью приведенной ниже команды вы должны выбрать все компьютеры, которые начинаются с «Note*».

Get-ADComputer –Filter ‘Name -like «Note*»‘ | foreach{ Invoke-GPUpdate –Computer $_.name -Force -RandomDelayInMinutes 0}

Если нужно выбрать все компьютеры, то ставим звездочку «*»

Get-ADComputer –Filter * | foreach{ Invoke-GPUpdate –Computer $_.name -Force -RandomDelayInMinutes 0}

При желании вы можете найти все компьютеры по версиям операционных систем и сделать обновление групповых политик по данному критерию.

Не забываем, что можно ограничить поиск отдельным организационным подразделением, для этого есть ключ -Searchbase и команда примет вот такой вид:

Get-ADComputer –Filter * -Searchbase «OU=Windows10,OU=Компьютеры,OU=Оргструктура,DC=root, DC=pyatilistnik,DC=org» | foreach{ Invoke-GPUpdate –Computer $_.name -Force -RandomDelayInMinutes 0}

Еще вы можете подготовить текстовый файл со списком серверов, который так же можно через цикл обработать, вот по такому принципу:

$comps = Get-Content «C:\temp\comps.txt» foreach ($comp in $comps) { Invoke-GPUpdate –Computer $_.name -Force -RandomDelayInMinutes 0 }

Я также добавил здесь параметр -Force, чтобы обеспечить повторное применение параметров групповой политики, даже если клиент замечает, что новые версии GPO недоступны. Таким образом, когда мы говорим о принудительном обновлении групповой политики, мы на самом деле имеем в виду две разные вещи. Без параметра Force мы просто незамедлительно инициируем обновление; если мы добавим параметр Force, мы форсируем обновление, даже если обновлять нечего. Параметр Force вступает в игру, если вы считаете, что что-то пошло не так в предыдущем обновлении объекта групповой политики.

Симптомы

В ответ на пандемию Covid-19 все большее число пользователей теперь работают, учатся и социализируют из дома. Они подключаются к рабочему месту с помощью VPN-подключений. Эти пользователи VPN сообщают, что при добавлении или удалении из групп безопасности изменения могут не действовать, как ожидалось. Они сообщают о таких симптомах, как следующие:

  • Изменения в доступе к сетевым ресурсам не вступает в силу.
  • Объекты групповой политики (GPOs), нацеленные на определенные группы безопасности, применяются неправильно.
  • Политика перенаправления папок применяется неправильно.
  • Правила Applocker, нацеленные на конкретные группы безопасности, не работают.
  • Скрипты logon, которые создают карты дисков, включая домашняя папка пользователя или карты дисков GPP, не работают.
  • Команда (запуск по командной подсказке) сообщает устарелый список членов группы для локального контекста безопасности пользователя.
  • Команда (запуск по командной подсказке) сообщает о устарелом списке членов группы.

Если пользователь блокирует, а затем Windows, пока клиент остается подключен к VPN, некоторые из этих симптомов устраняются сами. Например, некоторые изменения доступа к ресурсам вступает в силу. Впоследствии, если пользователь выходит из Windows, а затем возвращается (закрывая все сеансы, которые используют сетевые ресурсы), симптомы устраняются. Однако скрипты с логотипами могут функционировать неправильно, и команда может по-прежнему не отражать изменения в составе группы. Пользователь не может обойти проблему, используя команду для запуска нового сеанса Windows клиента. Эта команда просто использует те же данные учетных данных для запуска нового сеанса.

Область этой статьи включает среды, которые реализовали в домене механизмы проверки подлинности (AMA) и в которых пользователям необходимо проверить подлинность с помощью смарт-карты для доступа к сетевым ресурсам. Дополнительные сведения см. в описании использования AMA в интерактивныхсценариях логотипов в Windows.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: