Использование netsh удаленно

В прошлой заметке я упомянул использование команды netsh для добавления дополнительного IP адреса на сетевом интерфейсе и проблему со skipassource. У вас, как администратора, желающего все автоматизировать, может возникнуть желание использовать netsh удаленно. В сети можно найти синтаксис команды netsh и для удаленного выполнения он будет выглядеть примерно так:

netsh -r «remotehost» -u «domain\username» -p «password» int ipv4 add address «Local Area Connection» 192.168.1.2 255.255.255.0 skipassource=true

Но не спешите выполнять. Опыт показывает, что команда выполнится, но только на локальном хосте (в случае, если название сетевых интерфейсов совпадает). На удаленном хосте не произойдет ничего. Причина — netsh в полной мере в 2008 R2 не поддерживается, в справках мелькает слово deprecated и рекомендация использовать PowerShell. Я подумал о том, чтобы на 2008 R2 поставить 4-ю версию PowerShell для манипуляций с сетевыми интерфейсами, но для 2008 R2 необходимый модуль NetAdapter в пакет не включили.
Для выхода из ситуации можно использовать утилиту PsExec от Марка Руссиновича. Тогда команда для добавления дополнительного IP адреса будет выглядеть так:

psexec \\remotehost -d cmd.exe /c netsh.exe int ipv4 add address «Local Area Connection» 192.168.1.2 255.255.255.0 skipassource=true

psexec

Для Windows Server 2012 R2 в этих целях можно использовать следующую команду PowerShell:

New-NetIPAddress -CimSession remotehost -InterfaceAlias Ethernet -IPAddress 192.168.1.2 -PrefixLength 24 -SkipAsSource $true

Как запустить gpupdate удаленно

Классический способ, это использование psexec:

Параметром /target:user вы можете указать обновление политики только для пользователя, параметром /target:computer — только для компьютера.

Есть способ, как можно запустить gpupdate удаленно без использования psexec. Это PowerShell командлет Invoke-GPUpdate.

Чтобы запустить форсированное обновление политик компьютера, используйте:

Параметр Target определяет, производить обновление для компьютера или пользователя. Для запуска обновления политик пользователя, замените Target на user.

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

Если вы не укажете параметр Target, то обновление затронет как пользовательские политики, так и политики компьютера.

Должен предупредить, что процесс на конечной машине не останется незамеченным, т.к. появится окно CMD, в котором отображается процесс обновления политик.

А теперь запустим обновление для компьютеров в определенной OU: