Windows - VBScript - определить IP-адрес компьютера в сети - PullRequest
1 голос
/ 06 февраля 2009

Я написал несколько VBScripts для автоматизации задач, которые я выполняю на компьютерах по сети. Они отлично подходят для большинства задач, однако в нашей сети у нас возникают проблемы с правильностью IP-адреса в DNS. Это в основном происходит с ноутбуками, где у нас разные диапазоны IP-адресов для компьютеров в беспроводной и проводной сети.

Например, машина может загрузиться по утрам и получить IP-адрес: 10.10.10.1

Когда он переключается на беспроводную связь, он получает адрес в другой подсети: 10.11.10.1

Когда вы пытаетесь подключиться к этому компьютеру, он по-прежнему возвращает старый IP-адрес (10.10.10.1), даже если у компьютера теперь есть новый.

Я обнаружил, что все еще могу подключиться к общему ресурсу C $ этого компьютера через \ computer name \ c $, даже если компьютер не пингуется. Очевидно, что происходит какое-то другое разрешение адресов, мой вопрос: как мне использовать это, чтобы позволить моим VBScripts подключаться к WMI?

Спасибо!

Ответы [ 3 ]

1 голос
/ 13 февраля 2009

Если DNS не имеет правильного адреса, возможно, он решается с помощью NetBios. То, что вам нужно сделать, это разрешить имя компьютера либо с помощью WINS-сервера, либо через широковещательные рассылки в сеть. В зависимости от вашей сетевой среды вы можете использовать одну или обе эти опции.

У Microsoft есть инструмент под названием NBLookup , который должен как минимум искать имя из WINS.

Вы можете позвонить в NBLookup и проанализировать результаты. Я не помню другого метода разрешения NetBios изначально в VBScript, но в последнее время я не выглядел очень усердно.

1 голос
/ 21 мая 2009

Ваша проблема в разрешении имен. Windows использует 2 типа разрешения имен: DNS и NetBIOS.

DNS разрешит имя, например .comcast.net или www.google.com. NetBIOS разрешает имена длиной не более 15 символов, как, например, имя вашего компьютера.

Когда ваш компьютер ищет имя, он не знает, как превратить его в IP-адрес, он идет на DNS-сервер и / или использует разрешение имен NetBIOS. После поиска имени оно сохраняет его в кэше в течение некоторого периода времени (обычно около часа), а затем снова ищет его.

Вы можете посмотреть список имен, которые ваш компьютер кэшировал для каждого типа разрешения имен, используя командную строку следующим образом:

DNS
ipconfig -displaydns
NetBIOS
nbtstat -c

Каждая из этих команд также позволяет вам очистить этот кеш, что заставит вашу систему заново узнать, на какой IP-адрес указывает имя. Вот эти команды:

DNS
ipconfig -flushdns
NetBIOS
nbtstat -R

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

0 голосов
/ 06 февраля 2009

Исходя из собственного опыта, я обнаружил, что Microsoft TechNet ScriptCenter имеет практически все, что вы когда-либо хотели бы иметь отношение к VBScript. Обычно я начинаю с того, что хочу углубиться в новую область VBScript, которую я ранее не изучал.

FAQ по WMI на веб-сайте Microsoft TechNet содержит ссылки на ScripCenter, а также ссылки на многие другие полезные сайты для изучения сценариев WMI. Я бы порекомендовал найти скрипт, который уже делает то, что вы хотите, так как кто-то обязательно уже написал то, что вам нужно.

Статья Автоматизация работы в сети TCP / IP на клиентах может иметь то, что вам нужно для начала решения этой проблемы.

...