Давайте снова вернемся к сценарию под названием ChangeIPAddress.vbs, который мы разработали для изменения IP адреса сетевого адаптера (network adapter):
Обратите внимание, что я удалил комментарии из кода, а также код, который позволял вывести результат.
Теперь вспомните, что делает этот сценарий:
Предположим, что мы сохранили этот сценарий в папке C:\localtest на компьютере с операционной системой Windows XP, статический IP адрес которой 172.16.11.43. Если мы откроем командную строку под учетной записью администратора на компьютере и запустим этот сценарий, то IP адрес компьютера поменяется на 172.16.11.54:
Подсказка #1: Не забудьте, что для изменения IP адреса на компьютере с операционной системой Windows XP требуются права локального администратора (local administrator). Поэтому, если в настоящий момент вы зашли на компьютер с правами пользователя домена (как это сделал я), то вы должны открыть командную строку (command prompt) и набрать runas /user:administrator cmd.exe для того, чтобы открыть вторую командную строку, которая работает с правами администратора, а затем запустить сценарий из этой второй командной строки (command prompt).
Но что, если мы хотим запустить этот сценарий на одной машине (например, xp2.contoso.com) и использовать его для изменения IP адреса на другой машине (например, xp.contoso.com)? Другими словами, мы хотим запустить этот сценарий удаленно для удаленного компьютера с операционной системой Windows XP. Как мы можем это сделать?
Давайте начнем с того, что зайдем на рабочую станцию нашего администратора xp2.contoso.com с правами администратора домена (domain admin), которые в нашей сети имеет Мари Джонс (Mary Jones) – наш администратор. Мы должны сделать это потому, что администраторы домена (domain admin) имеют права локальных администраторов на всех компьютерах в домене, поэтому, когда мы запустим наш сценарий с рабочей станции нашего администратора, то он должен сработать, верно?
Давайте предположим, что наш сценарий под названием ChangeIPAddress.vbs находится в папке C:\tools на компьютере нашего администратора под названием xp.contoso.com. Давайте запустим командную строку на этом компьютере и наберем следующую строку:
Наш сценарий откроется в Блокноте (Notepad), и мы изменим следующую строку:
чтобы прочитать следующее:
Затем мы выберем File | Save для сохранения изменений, а затем закроем Блокнот (Notepad). Теперь давайте запустим наш сценарий:
Обратите внимание, что пройдет некоторое количество времени, прежде чем наконец появится сообщение об ошибке, о котором мы упоминали ранее. Но сработала ли вся операция? Хорошо, если я зайду на удаленный компьютер под названием xp2.contoso.com, открою командную строку и наберу команду ipconfig, то увижу следующее:
Итак, я могу увидеть, что адрес этой машины по-прежнему 172.16.11.43, таким образом сценарий не сработал.
Так что же прошло не так? Обратите внимание, что ошибка времени выполнения (runtime error), которая возникла, сообщает о проблеме при выполнении 20 строки сценария, а в нашем случае 20 строка выглядит так:
Возникает ощущение, что сценарий не может подключиться к службе WMI на удаленной машине. Из-за чего такое могло произойти?
Может быть, что-то нужно сделать с брандмауэром Windows Firewall на удаленном компьютере (remote machine).
Помните, что в операционной системе Windows XP с установленным пакетом обновления SP2 есть брандмауэр (firewall), который блокирует основной входящий трафик, за исключением того, который настроен в качестве исключения. Самый простой способ проверить наше предположение – это отключить брандмауэр Windows Firewall на удаленном компьютере. Давайте сделаем это, зайдя на компьютер под названием xp2.contoso.com с правами администратора, откроем апплет Windows Firewall (Брандмауэр) на Control Panel (панель управления), и выберем настройку Off (выключить) на закладке General (Общие).
Теперь давайте снова запустим сценарий с рабочей станции администратора:
Хмм, появилась другая ошибка, и снова пройдет некоторое количество времени, до тех пор пока эта ошибка появится. Но по крайней мере в этот раз возникла другая ошибка, на этот раз в строке 23, которая в нашем случае:
Однако, теперь, когда я наберу команду ipconfig в командной строке на удаленном компьютере, то увижу следующее:
Итак, кажется, что сценарий сработал! У нас получилось! Но остается две загадки:
Давайте снова включим брандмауэр Windows Firewall на удаленном компьютере. Это приведет к блокировке нашего сценария на этом компьютере. Теперь из командной строки с правами администратора на удаленной машине наберите команду gpedit.msc. В результате этого на этом компьютере запустится Local Group Policy (локальная политика группы). Перейдите к следующей настройке политики (смотрите Рисунок 1):
Computer Configuration\Administrative Templates\Network\Network Connections\Domain Profile\Windows Firewall: Allow remote administration exception
Дважды щелкните правой кнопкой мыши на этой настройке политики и подключите ее для локальной подсети (local subnet) (Рисунок 2). Мы делаем это потому, что знаем, что рабочая станция нашего администратора находится в той же подсети, что и наш компьютер.
Подсказка #2: Конечно, вы можете захотеть сделать это по-другому, и настроить эту политику для объекта политики группы (Group Policy Object или GPO) в домене, вместо того, чтобы делать это локально. Таким способом вам не нужно даже прикасаться к удаленной машине, чтобы задать это исключения для брандмауэра (firewall)!
Теперь давайте запустим сценарий снова с рабочей станции администратора и попытаемся изменить IP адрес удаленной машины с 172.16.11.65 на 172.16.11.66:
Та же самая ошибка, что и прежде, но теперь, когда я набрал команду ipconfig в командной строке на удаленной машине, я увидел следующее:
Это сработало! Итак, при включенном брандмауэре Windows Firewall на удаленной машине с помощью политики группы (Group Policy), которая позволяет подключить удаленное администрирование для брандмауэра, мы можем удаленно изменять IP адрес компьютера, путем запуска сценария с рабочей станции администратора.
Итак, мы решили первую загадку, а как насчет второй?
Я люблю загадки, поэтому давайте оставим ее до следующей статьи из этого цикла.
www.windowsnetworking.com
Tags: dns, domain, mac, Windows XP