Мы проходим реконструкцию сети, и у меня есть 35 серверов Windows 2003/2008 в удаленном месте, для которых мне нужно изменить IP-адрес, шлюз и информацию DNS.
В идеале я хотел бы иметь возможность удаленно выполнить это из командной строки в моей локальной системе (Windows 7), чтобы я мог написать сценарий для быстрого обновления всех систем.
Я заглянул в netsh, но у меня возникли проблемы с удаленным изменением адреса. Для тестирования я пытаюсь запустить следующую команду, которая должна вернуть текущую конфигурацию сети на удаленном компьютере:
netsh -r \\server interface ip show config
Однако возвращается следующая ошибка:
ВНИМАНИЕ! Не удалось получить информацию о хосте с машины: [\ server]. Некоторые команды могут быть недоступны.
Неверный параметр.
Следующая команда не найдена: interface ip show config.
Если я вхожу на сервер через RDP, я могу запустить команду netsh interface ip show config и получаю ожидаемые результаты.
Это, по-видимому, указывает, поскольку ошибка говорит, что не все команды и функции доступны с удаленного компьютера, как могут быть доступны из локального сеанса.
Есть ли какой-либо другой метод, который я могу использовать для удаленного выполнения задачи изменения информации об IP-адресах этих серверов?
Подойдет ли для этого PSTOOLS psexec? Вы можете открыть командную строку на удаленном компьютере с локального рабочего стола с помощью:
psexec \\ servername -u имя пользователя -p пароль cmd
Использовать xcmd инструмент чтобы сначала войти в систему на удаленном компьютере, затем выполнить команду netsh, как если бы вы делали это локально.
xCmd.exe \\remoteserver /user:Administrator /pwd:* netsh interface ip set address "Local Area Connection" static ipaddr subnetmask gateway metric
Может быть, вы можете написать пакет (файл .bat), загрузить его, войти в систему через RDP и запустить?
Если вы не против изменить подход и можете использовать Python, я считаю Ткань может быть хорошим решением для ваших нужд, хотя я никогда не тестировал его на машинах Windows.
HTH.