Использование 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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *