Обновлено 29.08.2022
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в рунете Pyatilistnik.org. В прошлый раз мы с вами мы с вами разбирали процедуру создания центрального хранилища административных шаблонов GPO. Движемся дальше и сегодня мы рассмотрим, самую распространенную задачу связанную с групповыми политиками, а именно научимся ее обновлять локально и удаленно, я расскажу в каких ситуациях данная информация вам можете помочь. Мы рассмотрим, какие инструменты у вас есть в арсенале, и я уверяю вас, что вы явно знали не обо всех.
Для чего нужно уметь обновлять групповую политику?
Перед тем, как перейти к практической части я бы хотел описать ряд ситуаций, которые вы можете встретить в своей практике, где вам можете потребоваться ручное обновление GPO. Еще хочу напомнить, что по умолчанию, любая операционная система Windows, являющаяся членом домена AD сама, автоматически производит обновление групповых политик каждые 90-120 минут, это позволяет не генерировать много сетевого трафика и сделать балансировку при обращении к мастеру PDC, но бывают и другие ситуации.
Предположим, что вы внесли важные обновления настроек для ваших серверов, например для авторизации CredSSP, или закрываете какую-то дыру безопасности, логично, что в Active Directory, это делается через групповые политики. Когда у вас 5-10 серверов, то нет проблем чтобы зайти на каждый из них через удаленный рабочий стол и выполнить команду, а когда серверов сотни, тут уже нужна массовость. Еще не нужно сбрасывать со счетов ситуации, когда вы по RDP не можете зайти, через редактор политик обновить не получается, что делать, тут можно сделать все удаленно через PowerShell или командную строку, об этом то же поговорим.
Вы всегда должны уметь и иметь возможность вносить массовые изменения на ваших серверах, и применять их как можно скорее
Методы обновления GPO
Давайте составим список способов и инструментов, которые вы можете использовать:
- Командная строка Windows — позволяет быстро выполнить обновление, работает локально
- Оболочка PowerShell — так же, как и cmd позволяет сделать обновление, как локально, так и удаленно
- Оснастка «Управление групповой политикой» — удаленное обновление GPO, есть возможность выбрать отдельные объекты
- Утилита PsExec — позволяет удаленно выполнить задачу
Давайте теперь опробуем каждый из этих методов.
Как обновить GPO через командную строку
Для выполнения этого метода, вы должны зайти локально на компьютер или сервер, открыть командную строку и ввести вот такую, небольшую команду:
Ключ /force произведет принудительное обновление групповой политики. Хочу отметить, что некоторые настройки могут применяться, только после выхода из системы. Если политика показала, что успешно обновилась, но эффекта не произошло, то смотрите мою статью «Почему не применяются GPO», придется делать траблшутинг.
Как вы можете обратить внимание, что команда выше производит обновление политик, как для пользователя, так и для компьютера, но при желании вы можете этим манипулировать и явным образом указать, что подлежит апдейту. Для этого есть ключ /Target:{Computer | User}. Предположим, что мне нужно выполнить только для пользователя, для этого пишем:
gpupdate /force /target:User
Еще интересный ключик, это выполнить задержку /Wait:{ваше значение}.По умолчанию значение 600 секунд.
Как обновить 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: (:) [Invoke-GPUpdate], 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:tempcomps.txt»
foreach ($comp in $comps)
{
Invoke-GPUpdate –Computer $_.name -Force -RandomDelayInMinutes 0
}
Я также добавил здесь параметр -Force, чтобы обеспечить повторное применение параметров групповой политики, даже если клиент замечает, что новые версии GPO недоступны. Таким образом, когда мы говорим о принудительном обновлении групповой политики, мы на самом деле имеем в виду две разные вещи. Без параметра Force мы просто незамедлительно инициируем обновление; если мы добавим параметр Force, мы форсируем обновление, даже если обновлять нечего. Параметр Force вступает в игру, если вы считаете, что что-то пошло не так в предыдущем обновлении объекта групповой политики.
Очень важно выполнять скрипт в системе, на которой установлен пакет RSAT, или отдельный его компонент консоль управления групповой политикой, инача вы будите получать ошибку.
Invoke-GPUpdate : The term ‘Invoke-GPUpdate’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, o
r if a path was included, verify that the path is correct and try again.
At C:TempGPupdate-Force.ps1:12 char:5
+ Invoke-GPUpdate -ComputerName $server -AsJob -Target «Computer»-R …
+ ~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Invoke-GPUpdate:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Обновление групповой политики через оснастку GPMC
Начиная с операционной системы Windows Server 2012 R2, компания Microsoft расширила функционал оснастки по управлению политиками. Разработчики внедрили механизм, массового и точечного инициирования применения политик GPO к нужным объектам и заметьте через графический интерфейс. Откройте оснастку «Управление групповой политикой«, проще всего, это сделать через окно «Выполнить«, введя там там команду gpmc.msc.
Далее, что вы делаете. Находите нужную вам OU, щелкнуть правым кликом и из контекстного меню выбрать пункт «Обновление групповой политики«.
У вас появится окно «Принудительное обновление групповой политики», в котором вы увидите количество объектов, к которым будет применено действие
На следующем экране вы увидите результат отработки команды, в первом моем примере политики успешно применилась.
При желании все результаты команды можно сохранить в CSV файле
Вот пример содержимого такого файла
на компьютерах, где таким методом была запущена процедура принудительного применения GPO, вы в логах Windows можете обнаружить событие с кодом 1704:
Политика безопасности в объектах групповой политики успешно применена.
То же самое можно посмотреть и в Windows Admin Center, где нужно зайти в раздел события.
Иногда в консоли GPMC вы можете получать ошибку:
8007071a «Удаленный вызов процедуры был отменен»
Связана она с тем, что на удаленных компьютерах у вас брандмауэр Windows блокирует эти вызовы, чтобы это поправить я вам советую сделать разрешающую политику, подробнее читайте, как исправить ошибку 8007071a.
Обновление GPO через PSexec
Я вам очень часто рассказываю в своих примерах из моей практики, об утилите PSexec и сборнике SysInternals от Марка Руссиновича. Суть метода в том, что с помощью специальной утилиты вы сможете выполнить удаленную команду, ранее я так удаленно включал RDP на сервере или клиентской машинке.
Далее вы распаковываете архив, если он в таком виде и открываете папку с утилитами SysInternals в командной строке, напомню сделать, это можно через команду cd или через правый клик с зажатым Shift по нужной папке, выбрав пункт «Открыть окно команд».
Обращаю внимание, что у вас должны быть соблюдены несколько требований:
- Как и в случае Invoke-GPUpdate, вы должны изменить настройки брандмауэра на своих клиентах. Поскольку PsExec использует протокол SMB, вам нужно открыть TCP-порт 445. Как открыть порт я уже подробно рассказывал, можете посмотреть, советую использовать для этого групповую политику.
- Второе, это наличие прав на удаленном компьютере, чтобы запустить там Gpupdate
Теперь выполните команду:
psexec имя компьютера –i gpupdate
Обратите внимание, что параметр -i здесь важен. Это гарантирует, что PsExec взаимодействует с удаленным рабочим столом, что необходимо для обновления пользовательских политик. Если этот параметр не указан, будут обновлены только конфигурации компьютера, хотя ни PsExec, ни gpupdate не выдадут сообщение об ошибке. Без параметра –i gpupdate обновит пользовательские настройки, только если вы вошли в систему с одинаковой учетной записью на исходном и целевом компьютере.
В результате будет удаленный запуск утилиты gpupdate, если все хорошо, то вы получите сообщение «gpupdate exited on svt2019s01.root.pyatilistnik.org with error code 0«.
на удаленном компьютере в журналах системы вы увидите два события 1500 и 1501.
Событие 1500: Параметры групповой политики для этого компьютера обработаны успешно. Не обнаружено изменений со времени последней успешной обработки групповой политики.
Событие 1501: Параметры групповой политики для этого пользователя обработаны успешно. Не обнаружено изменений со времени последней успешной обработки групповой политики.
Так же вы можете подключиться вообще к удаленной командной строке, через команду:
psexec имя компьютера –i cmd
Далее просто пишите gpupdate /force, обратите внимание я через команду hostname показал, что подключение идет с одного компьютера на другой.
Если компьютер не подключен к сети, вы получите следующее сообщение об ошибке:
Couldn’t access ComputerName:The network name cannot be found.
Make sure that the default admin$ share is enabled on ComputerName
Чтобы массово обновить групповую политику на всех компьютерах домена, воспользуйтесь знаком звездочки «*»:
Если это не помогло и выскочила ошибка, то может воспользоваться через PowerShell. В оболочке перейдите в каталог с утилитами PSTools и выполните:
Get-ADComputer –filter ‘Name -like «*»‘ | Select-Object -ExpandProperty Name | foreach{ Invoke-Expression –Command «.psexec.exe $_ -i gpupdate.exe»}
Или можно из конкретного OU добавив
Get-ADComputer –filter ‘Name -like «*»‘-Searchbase «OU=Windows10,OU=Компьютеры,OU=Оргструктура,DC=root, DC=pyatilistnik,DC=org» | Select-Object -ExpandProperty Name | foreach{ Invoke-Expression –Command «.psexec.exe $_ -i gpupdate.exe»}
Другой вариант — сначала экспортировать все имена компьютеров из контейнера Active Directory в текстовый файл с помощью командлета Get-ADComputer:
Get-ADComputer –filter ‘Name -like «win*»‘ -Searchbase «OU=Windows10,OU=Компьютеры,OU=Оргструктура,DC=root, DC=pyatilistnik,DC=org» | Select-Object -ExpandProperty Name | Out-File -Encoding ascii c:tmpComputerList.txt
Обратите внимание, что мы должны кодировать выходной файл с помощью ASCII, чтобы мы могли прочитать его содержимое из пакетного файла следующим образом:
For /f «tokens=*» %%a in (c:tmpComputerList.txt) Do psexec %%a -i gpupdate
PsExec против Invoke-GPUpdate
Основным недостатком метода PsExec является то, что он относительно медленный. Это может занять от 3 до 4 секунд на компьютер, а для компьютеров, которые не подключены к сети, это может занять еще больше времени. PsExec иногда даже зависал во время моих тестов.
Разрешение входящих подключений через порт 445 является угрозой безопасности. Компьютерные черви могут использовать этот порт, а хакеры могут делать много неприятных вещей с помощью PsExec. Открытие порта планировщика заданий для Invoke-GPUpdate также проблематично, но я думаю, что порт 445 более популярен среди программистов вредоносных программ.
Таким образом, в большинстве сценариев Invoke-GPUpdate является лучшим вариантом. Однако, если вы все равно открыли порт 445 по другим причинам и не хотите открывать порты Invoke-GPUpdate, вы можете предпочесть PsExec для принудительного обновления групповой политики.
Удаленное обновление GPO через Enter-PSSession
Еще в PowerShell есть командлет для удаленного подключения к компьютеру, называется он Enter-PSSession, его принцип работ, как у PsExec. Откройте оснастку PowerShell и введите:
Enter-PSSession -ComputerName svt2019s01
Далее вы подключитесь к удаленному компьютеру, где потом просто введите gpupdate /force.
Удаленное обновление GPO через Windows Admin Center
Если вы в своей практике используете утилиту удаленного администрирования Windows Admin Center, то вы легко можете подключиться к удаленному серверу и обновить политики GPO все через тот же gpupdate /force.
На этом у меня все. Я вам постарался подробно рассказать, о всех методах локального и дистанционного обновления групповых политик пользователя и компьютера на ваших компьютерах домена. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
В этой статье мы покажем, как актуализировать параметры групповой политики (GPO) на компьютерах Windows в домене Active Directory: как автоматически обновлять (актуализировать) групповые политики, как использовать команду GPUpdate, как обновлять их удалённо с помощью Group Policy Management Console, GPMC.msc (консоль Управления групповой политикой) или командлет PowerShell Invoke-GPUpdate.
Как изменить интервал актуализации групповой политики?
Прежде чем новые параметры, заданные вами в локальной или доменной групповой политике (GPO), будут применены к клиентам Windows, служба клиента групповой политики должна прочитать политики и внести изменения в настройки Windows. Этот процесс называется Group Policy Update (актуализация групповой политики). Параметры GPO обновляются при загрузке компьютера, входе пользователя в систему и автоматически обновляются в фоновом режиме каждые 90 минут + случайное смещение времени 0–30 минут (это означает, что параметры политики обязательно будут применены к клиентам через 90–120 минут после обновления файлов GPO на контроллере домена).
По умолчанию контроллеры домена обновляют настройки GPO чаще: каждые 5 минут.
Вы можете изменить интервал обновления GPO, используя параметр Set Group Policy refresh interval for computers («Установить интервал обновления групповой политики для компьютеров»). В редакторе управления групповыми политиками эта настройка находится поо пути Computer Configuration → Administrative Templates → System → Group Policy (в русскоязычной версии «Конфигурация компьютера» → «Административные шаблоны» → «Система» → «Групповая политика»).
Включите политику и установите время (в минутах) для следующих параметров:
- Первое значение позволяет настроить частоту применения групповой политики к компьютерам (от 0 до 44640 минут), как часто клиент должен обновлять параметры GPO в фоновом режиме. Если вы установите здесь 0, то политики будут обновляться каждые 7 секунд (делать этого не стоит);
- Второе значение — это случайная величина, добавляемая к интервалу времени обновления, во избежание одновременных запросов групповой политики всеми клиентами (от 0 до 1440 минут). Это максимальное значение случайного временного интервала, добавляемого в качестве смещения к предыдущему параметру (используется для уменьшения количество одновременных обращений клиентов к DC для загрузки файлов GPO).
Обратите внимание, что частое обновление GPO приводит к увеличению трафика на контроллеры домена и приводит к увеличению нагрузки на сеть.
Использование команды GPUpdate.exe для принудительного обновления настроек GPO
Все администраторы знают команду gpupdate.exe, которая позволяет обновлять параметры групповой политики на компьютере:
gpupdate /force
Эта команда заставляет ваш компьютер читать все объекты групповой политики с контроллера домена и повторно применять все настройки. Это означает, что когда используется ключ /force, клиент подключается к контроллеру домена, чтобы получить файлы для ВСЕХ политик, нацеленных на него. Это может привести к увеличению нагрузки на вашу сеть и контроллер домена.
Команда gpudate без каких-либо параметров применяет только новые и изменённые настройки GPO.
В случае успеха появится следующее сообщение:
Updating policy... Computer Policy update has completed successfully. User Policy update has completed successfully.
В русифицированной версии:
Выполняется обновление политики... Обновление политики для компьютера успешно завершено. Обновление политики пользователя завершено успешно.
Если некоторые политики или параметры не были применены, используйте команду GPResult для диагностики проблемы и следуйте инструкциям в статье «Устранение неполадок: групповая политика (GPO) не применяется».
Вы можете обновить только настройки GPO пользователя:
gpupdate /target:user
или только параметры политики компьютера:
gpupdate /target:computer /force
Если некоторые политики не могут быть обновлены в фоновом режиме, gpupdate может завершить сеанс текущего пользователя:
gpupdate /target:user /logoff
Или перезагрузить компьютер (если изменения GPO можно применить только при загрузке Windows):
gpupdate /Boot
Как принудительно обновить удалённый объект групповой политики из консоли управления групповой политикой (GPMC)?
В Windows Server 2012 и новее вы можете обновлять параметры групповой политики на компьютерах домена удалённо, используя GPMC.msc (консоль управления групповой политикой).
В Windows 10 вам нужно будет установить RSAT, чтобы использовать консоль GPMC:
Add-WindowsCapability -Online -Name Rsat.GroupPolicy.Management.Tools
Затем после изменения каких-либо параметров или создания и сопряжения нового объекта групповой политики достаточно щёлкнуть правой кнопкой мыши нужное организационное подразделение (OU) в консоли управления групповыми политиками и выбрать в контекстном меню пункт Group Policy Update («Обновление групповой политики»). В новом окне вы увидите количество компьютеров, на которых будет обновлён GPO. Подтвердите принудительное обновление политик, нажав Yes («Да»).
Затем GPO будет удалённо обновляться на каждом компьютере в OU один за другим, и вы получите результат со статусом обновления групповой политики на компьютерах Succeeded/Failed («Успешно / Не удалось»).
Эта функция создаёт задачу в Планировщике задач с помощью команды «GPUpdate.exe /force» для каждого вошедшего в систему пользователя на удалённом компьютере. Задача запускается в произвольный период времени (до 10 минут), чтобы снизить нагрузку на сеть.
Чтобы функция обновления удалённого объекта групповой политики GPMC работала на клиенте, должны быть выполнены следующие условия:
- TCP-порт 135 должен быть открыт в правилах брандмауэра Защитника Windows;
- Должны быть включены службы Windows Management Instrumentation and Task Scheduler («Инструментария управления Windows и планировщика задач»).
Если компьютер выключен или брандмауэр блокирует к нему доступ, то рядом с именем компьютера появляется сообщение ‘The remote procedure call was canceled. Error Code 8007071a‘ («Удалённый вызов процедуры был отменен. Сообщение с кодом ошибки 8007071a»).
Фактически, эта функция работает так же, как если бы вы обновили настройки GPO вручную с помощью команды «GPUpdate /force» на каждом компьютере.
Invoke-GPUpdate: принудительное обновление удалённой групповой политики через PowerShell
Вы также можете вызвать удалённое обновление GPO на компьютерах с помощью командлета PowerShell Invoke-GPUpdate (являющегося частью RSAT). Например, чтобы удалённо обновить параметры политики пользователя на определённом компьютере, вы можете использовать следующую команду:
Invoke-GPUpdate -Computer "frparsrv12" -Target "User"
Если вы запустите командлет Invoke-GPUpdate без каких-либо параметров, он обновит настройки GPO на текущем компьютере (как и gpudate.exe).
Вместе с командлетом Get-ADComputer вы можете обновить объект групповой политики на всех компьютерах в определённом подразделении:
Get-ADComputer -filter * -Searchbase "OU=Computes,OU=Mun,OU=DE,dc=hackware,dc=ru" | foreach{ Invoke-GPUpdate -computer $_.name -force}
или на всех компьютерах, отвечающих определенным требованиям (например, на всех хостах Windows Server в домене):
Get-ADComputer -Filter {enabled -eq "true" -and OperatingSystem-Like '* Windows Server *'} | foreach {Invoke-GPUpdate -computer $ _. name -RandomDelayInMinutes 10 -force}
Вы можете установить случайное смещение для обновления GPO с помощью -RandomDelayInMinutes. Благодаря этой опции вы можете снизить нагрузку на сеть, если обновляете параметр групповой политики одновременно на нескольких компьютерах. Для немедленного применения параметров групповой политики на всех компьютерах используется параметр -RandomDelayInMinutes 0.
Команда Invoke-GPUpdate возвращает следующую ошибку для недоступных компьютеров:
Invoke-GPUpdate: Computer "frparsrv12" is not responding. The target computer is either turned off or Remote Scheduled Tasks Management Firewall rules are disabled.
Если вы запустите командлет Invoke-GPUpdate удаленно или обновите объект групповой политики из консоли управления групповыми политиками, на рабочем столе пользователя на короткое время может появиться окно консоли с запущенной командой gpupdate.
Связанные статьи:
- Настройка политики паролей домена в Active Directory (86.4%)
- Использование инструмента GPResult для проверки того, какие объекты групповой политики применяются (72.8%)
- Устранение неполадок: групповая политика (GPO) не применяется (72.8%)
- Устранение неполадок, связанных с медленной обработкой GPO и снижением скорости входа в систему (72.8%)
- Fine-Grained Password Policy: Как создать детальную политику паролей в Active Directory (59.1%)
- Get-ADDomainController: получение информации о контроллерах домена через PowerShell (RANDOM — 50%)
Error Code 8007071a The remote procedure call was cancelled Windows error is basically an Active directory replication error. This error occurs in several scenarios. When you perform a remote procedure call through Active Directory. The process gets canceled due to time out, and the error occurs. Furthermore, the error also occurs while synchronizing a specific partition directory, some issues with the parameters, protocols, or services. The cause behind such error is the lack of acknowledgment of the replication changes to the Domain Controller. With the help of this article, you will understand the causes and resolution of the error.
Causes of The Remote Procedure Call Was Cancelled Error Problem:
The major cause behind this error is default timeout settings, on Windows 2000 based system the default timeout settings for RPC is 45 minutes. While on Windows Server 2003 based system, it is 5 minutes. Now when a user upgrades their system from windows 2000 to 2003, their default timeout settings change. When the domain controller does not receive these changes, it throws out Error Code 8007071a The Remote Procedure Call Was Cancelled Windows Error.
- System Upgrade
- Issues With the registry
- Timeout settings
- Outdated Network adapter
- Poor network connection
Similar Types of The Remote Procedure Call Was Cancelled Error Issue:
- remote scheduled tasks management (rpc)
- 0x8007071a
- RightFax error 1818
- the rpc server is unavailable
- 1818
- Gpo
- Fix 8007071a
- Enable remote procedure call group policy
Troubleshooting Error Code 8007071a The Remote Procedure Call Was Cancelled Windows Error could be made in the following four ways. In the first method using the registry editor, we will manually increase the default timeout limit. In the second method, we will update the network adapter. In the third method, we will manually enable PMTU Black Hole Detection on Windows-based hosts. Finally, we will try to resolve the issue by verifying the network binding order.
1. Manually Increase the Default Timeout Limit in the Registry –
In this method, we will try to resolve Error Code 8007071a The Remote Procedure Call was Cancelled 1818 issue by modifying the default timeout limit in the registry. If you have recently updated your system, chances are your timeout settings have been changes. Follow this method to fix the issue.
- STEP 1. Open up a Run window by pressing Windows key + R simultaneously
- STEP 2. Now, type regedit in the search field and hit Enter
- STEP 3. In the Registry Window Navigate to the following location
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNTDSParameters
- STEP 4. Now Right Click on the Parameters Key, then click on New > DWORD value
- STEP 5. Name this new DWORD RPC Replication Timeout (mins)
- STEP 6. Now double click on RPC Replication Timeout (mins)
- STEP 7. In the Value data box type your desired number of minutes, and it will be the timeout limit for Active Directory Replication
- STEP 8. After entering the time limit, click OK and save changes
- STEP 9. Finally, Restart your system and check if veeam The Remote Procedure Call was Cancelled windows error still occurs
2. Updating the Network Adapters –
If the above Error Code 8007071a The Remote Procedure Call was Cancelled windows method does not work for you, try updating your network driver. Follow the steps to see how it is done.
- STEP 1. Open up a Run window by pressing Windows key + R simultaneously
- STEP 2. Now, type devmgmt.msc in the search field and hit Enter
- STEP 3. In the Device Manager, locate Network adapters
- STEP 4. Now right click on the network driver and in the context menu click on Update Driver
- STEP 5. Your system will automatically download and update the driver
- STEP 6. Finally, restart your system and check if Error Code 8007071a The Remote Procedure Call was Cancelled windows error still persists
3. Manually Enabling the PMTU Black Hole Detection –
In this method, we will manually enable PMTU Black Hole Detection on Windows-based host using the registry editor. Let’s proceed to Error Code 8007071a The Remote Procedure Call was Cancelled windows steps.
- STEP 1. Press Windows key + R simultaneously to open up a Run window
- STEP 2. Now, type regedit in the search field and hit Enter
- STEP 3. In the Registry Window Navigate to the following location
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicestcpipparameters
- STEP 4. Now on the top click on Edit, select Add Value
- STEP 5. In the name field put EnablePMTUBHDetect
- STEP 6. Put REG_DWORD in the Data type field, and put 1 in the Value Date filed
- STEP 7. Finally, restart your system, and check if Error Code 8007071a The Remote Procedure Call was Cancelled windows error occurs
4. Verifying the Network Binding Order –
If any of the above methods fail to work, the chances are that the Network binding order has been changed. Follow the step to fix Error Code 8007071a The Remote Procedure Call was Cancelled windows issue.
- STEP 1. In the Start menu click on the Settings icon
- STEP 2. Now Click on Network & Internet settings
- STEP 3. On the left click on Status
- STEP 4. Now in the right click on Change Adapter option
- STEP 5. Right Click on the network adapter and go to Properties
- STEP 6. Now simply select the Internet Protocol Version 4 (TCP/IPv4)
- STEP 7. Below click on Properties > Advanced
- STEP 8. Now under the IP Settings tab clear the Interface metric field
**NOTE: Lower the metric number equals higher in the priority,
and a higher number will lower the priority
- STEP 9. Now make sure the order is
- 1 Network adapter one
- 2 Network adapter two (if exits)
- 3 Remote Access WAN Wrapper
- STEP 10. Save all the changes, restart your system
Conclusion:
In this troubleshooting, we have gone through various methods that will help you in fixing Error Code 8007071a The Remote Procedure Call Was Cancelled windows Error’. Furthermore, this article gives you all the information regarding the causes and resolution of the error.
We hope this article is helpful to you. For more troubleshooting guides, follow us. Thank You!
- Remove From My Forums
-
Общие обсуждения
-
Hi, I have been messing with the Group Policy Management Editor this week. I have already set up the policy settings that I need for the clients to work on the domain. As you know, I am new to this – so I have made lots of mistakes so far, but I have managed
to fix a few!Although, this is a new domain – so everything is all set-up ready to update to the clients. But for some reason, that when I was trying to update the OU policies by pressing the
“Group Policy Update“, after the dialog box comes up. It shows the error.Below this image, it tells you that the client it was trying to update has failed with a error code (8007071a) and the description
“The remote procedure call was cancelled”. So, is there a way to solve this problem?-
Изменено
27 июня 2015 г. 22:12
Image Added
-
Изменено
В этой статье мы покажем, как актуализировать параметры групповой политики (GPO) на компьютерах Windows в домене Active Directory: как автоматически обновлять (актуализировать) групповые политики, как использовать команду GPUpdate, как обновлять их удалённо с помощью Group Policy Management Console, GPMC.msc (консоль Управления групповой политикой) или командлет PowerShell Invoke-GPUpdate.
Как изменить интервал актуализации групповой политики?
Прежде чем новые параметры, заданные вами в локальной или доменной групповой политике (GPO), будут применены к клиентам Windows, служба клиента групповой политики должна прочитать политики и внести изменения в настройки Windows. Этот процесс называется Group Policy Update (актуализация групповой политики). Параметры GPO обновляются при загрузке компьютера, входе пользователя в систему и автоматически обновляются в фоновом режиме каждые 90 минут + случайное смещение времени 0–30 минут (это означает, что параметры политики обязательно будут применены к клиентам через 90–120 минут после обновления файлов GPO на контроллере домена).
По умолчанию контроллеры домена обновляют настройки GPO чаще: каждые 5 минут.
Вы можете изменить интервал обновления GPO, используя параметр Set Group Policy refresh interval for computers («Установить интервал обновления групповой политики для компьютеров»). В редакторе управления групповыми политиками эта настройка находится поо пути Computer Configuration → Administrative Templates → System → Group Policy (в русскоязычной версии «Конфигурация компьютера» → «Административные шаблоны» → «Система» → «Групповая политика»).
Включите политику и установите время (в минутах) для следующих параметров:
- Первое значение позволяет настроить частоту применения групповой политики к компьютерам (от 0 до 44640 минут), как часто клиент должен обновлять параметры GPO в фоновом режиме. Если вы установите здесь 0, то политики будут обновляться каждые 7 секунд (делать этого не стоит);
- Второе значение — это случайная величина, добавляемая к интервалу времени обновления, во избежание одновременных запросов групповой политики всеми клиентами (от 0 до 1440 минут). Это максимальное значение случайного временного интервала, добавляемого в качестве смещения к предыдущему параметру (используется для уменьшения количество одновременных обращений клиентов к DC для загрузки файлов GPO).
Обратите внимание, что частое обновление GPO приводит к увеличению трафика на контроллеры домена и приводит к увеличению нагрузки на сеть.
Использование команды GPUpdate.exe для принудительного обновления настроек GPO
Все администраторы знают команду gpupdate.exe, которая позволяет обновлять параметры групповой политики на компьютере:
gpupdate /force
Эта команда заставляет ваш компьютер читать все объекты групповой политики с контроллера домена и повторно применять все настройки. Это означает, что когда используется ключ /force, клиент подключается к контроллеру домена, чтобы получить файлы для ВСЕХ политик, нацеленных на него. Это может привести к увеличению нагрузки на вашу сеть и контроллер домена.
Команда gpudate без каких-либо параметров применяет только новые и изменённые настройки GPO.
В случае успеха появится следующее сообщение:
Updating policy... Computer Policy update has completed successfully. User Policy update has completed successfully.
В русифицированной версии:
Выполняется обновление политики... Обновление политики для компьютера успешно завершено. Обновление политики пользователя завершено успешно.
Если некоторые политики или параметры не были применены, используйте команду GPResult для диагностики проблемы и следуйте инструкциям в статье «Устранение неполадок: групповая политика (GPO) не применяется».
Вы можете обновить только настройки GPO пользователя:
gpupdate /target:user
или только параметры политики компьютера:
gpupdate /target:computer /force
Если некоторые политики не могут быть обновлены в фоновом режиме, gpupdate может завершить сеанс текущего пользователя:
gpupdate /target:user /logoff
Или перезагрузить компьютер (если изменения GPO можно применить только при загрузке Windows):
gpupdate /Boot
Как принудительно обновить удалённый объект групповой политики из консоли управления групповой политикой (GPMC)?
В Windows Server 2012 и новее вы можете обновлять параметры групповой политики на компьютерах домена удалённо, используя GPMC.msc (консоль управления групповой политикой).
В Windows 10 вам нужно будет установить RSAT, чтобы использовать консоль GPMC:
Add-WindowsCapability -Online -Name Rsat.GroupPolicy.Management.Tools
Затем после изменения каких-либо параметров или создания и сопряжения нового объекта групповой политики достаточно щёлкнуть правой кнопкой мыши нужное организационное подразделение (OU) в консоли управления групповыми политиками и выбрать в контекстном меню пункт Group Policy Update («Обновление групповой политики»). В новом окне вы увидите количество компьютеров, на которых будет обновлён GPO. Подтвердите принудительное обновление политик, нажав Yes («Да»).
Затем GPO будет удалённо обновляться на каждом компьютере в OU один за другим, и вы получите результат со статусом обновления групповой политики на компьютерах Succeeded/Failed («Успешно / Не удалось»).
Эта функция создаёт задачу в Планировщике задач с помощью команды «GPUpdate.exe /force» для каждого вошедшего в систему пользователя на удалённом компьютере. Задача запускается в произвольный период времени (до 10 минут), чтобы снизить нагрузку на сеть.
Чтобы функция обновления удалённого объекта групповой политики GPMC работала на клиенте, должны быть выполнены следующие условия:
- TCP-порт 135 должен быть открыт в правилах брандмауэра Защитника Windows;
- Должны быть включены службы Windows Management Instrumentation and Task Scheduler («Инструментария управления Windows и планировщика задач»).
Если компьютер выключен или брандмауэр блокирует к нему доступ, то рядом с именем компьютера появляется сообщение ‘The remote procedure call was canceled. Error Code 8007071a‘ («Удалённый вызов процедуры был отменен. Сообщение с кодом ошибки 8007071a»).
Фактически, эта функция работает так же, как если бы вы обновили настройки GPO вручную с помощью команды «GPUpdate /force» на каждом компьютере.
Invoke-GPUpdate: принудительное обновление удалённой групповой политики через PowerShell
Вы также можете вызвать удалённое обновление GPO на компьютерах с помощью командлета PowerShell Invoke-GPUpdate (являющегося частью RSAT). Например, чтобы удалённо обновить параметры политики пользователя на определённом компьютере, вы можете использовать следующую команду:
Invoke-GPUpdate -Computer "frparsrv12" -Target "User"
Если вы запустите командлет Invoke-GPUpdate без каких-либо параметров, он обновит настройки GPO на текущем компьютере (как и gpudate.exe).
Вместе с командлетом Get-ADComputer вы можете обновить объект групповой политики на всех компьютерах в определённом подразделении:
Get-ADComputer -filter * -Searchbase "OU=Computes,OU=Mun,OU=DE,dc=hackware,dc=ru" | foreach{ Invoke-GPUpdate -computer $_.name -force}
или на всех компьютерах, отвечающих определенным требованиям (например, на всех хостах Windows Server в домене):
Get-ADComputer -Filter {enabled -eq "true" -and OperatingSystem-Like '* Windows Server *'} | foreach {Invoke-GPUpdate -computer $ _. name -RandomDelayInMinutes 10 -force}
Вы можете установить случайное смещение для обновления GPO с помощью -RandomDelayInMinutes. Благодаря этой опции вы можете снизить нагрузку на сеть, если обновляете параметр групповой политики одновременно на нескольких компьютерах. Для немедленного применения параметров групповой политики на всех компьютерах используется параметр -RandomDelayInMinutes 0.
Команда Invoke-GPUpdate возвращает следующую ошибку для недоступных компьютеров:
Invoke-GPUpdate: Computer "frparsrv12" is not responding. The target computer is either turned off or Remote Scheduled Tasks Management Firewall rules are disabled.
Если вы запустите командлет Invoke-GPUpdate удаленно или обновите объект групповой политики из консоли управления групповыми политиками, на рабочем столе пользователя на короткое время может появиться окно консоли с запущенной командой gpupdate.
Связанные статьи:
- Настройка политики паролей домена в Active Directory (86.4%)
- Использование инструмента GPResult для проверки того, какие объекты групповой политики применяются (72.8%)
- Устранение неполадок: групповая политика (GPO) не применяется (72.8%)
- Устранение неполадок, связанных с медленной обработкой GPO и снижением скорости входа в систему (72.8%)
- Fine-Grained Password Policy: Как создать детальную политику паролей в Active Directory (59.1%)
- Как определить причину блокировки учётной записи в домене Active Directory (RANDOM – 50%)
- Remove From My Forums
-
General discussion
-
Hi, I have been messing with the Group Policy Management Editor this week. I have already set up the policy settings that I need for the clients to work on the domain. As you know, I am new to this – so I have made lots of mistakes so far, but I have managed
to fix a few!Although, this is a new domain – so everything is all set-up ready to update to the clients. But for some reason, that when I was trying to update the OU policies by pressing the
“Group Policy Update“, after the dialog box comes up. It shows the error.Below this image, it tells you that the client it was trying to update has failed with a error code (8007071a) and the description
“The remote procedure call was cancelled”. So, is there a way to solve this problem?-
Edited by
Saturday, June 27, 2015 10:12 PM
Image Added
-
Edited by
6 Replies
-
I would check the Windows Firewall settings and make sure Remote Scheduled Task Management (RPC), Remote Scheduled Task Management (RPC-EPMAP) and Windows Management Instrumentation (WMI-In) are allowed in Inbound Rules. It’s easiest to set this within Group Policy:
Also check that Symantec is not additionally blocking ports 135 and 445:
https://community.spiceworks.com/topic/919920-remote-group-policy-error-8007071a-the-remote-procedur…
nate
Was this post helpful?
thumb_up
thumb_down
-
It was in fact the Symantec that did not allow the connection. I saw in the console right away that it was blocking ports 445 and 135.
Although, one without the Symantec Endpoint Protection still fail despite opening the ports and allowing the services.
Was this post helpful?
thumb_up
thumb_down
-
Ya, one of the comments in the link I provided states:
”
Strange problem though, if I restart the computer the policies will not update until I turn the firewall on the client PC off (not through Symantec, through Windows), update GP, then turn it back on. Then I can continue to update the GP as normal through the firewalls.”
Personally, I’m not a fan of Windows’ firewall(s) and turn them off for Domain (via GP).
nate
Was this post helpful?
thumb_up
thumb_down
-
Pushing out the GPO with the firewall rules. Hopefully it goes in effect soon.
Now it’s the waiting game.
Was this post helpful?
thumb_up
thumb_down
-
Lol. It’s one thing after another.
After applying GPO for firewall, it’s giving me error for RDC Unavailable for all PCs.
Was this post helpful?
thumb_up
thumb_down
-
Got it resolved.
Not sure why but DNS server was pointing to quad 8 and 8.8.4.4 rather than itself (127.0.0.1 and DC IP).As soon as we did that, it was resolved quickly.
Thanks for the help.
Was this post helpful?
thumb_up
thumb_down