2013-11-25 3 views
2

Итак, мне нужно установить статические IP-шлюзы по умолчанию, а также WINS и dns, а также то, что не так много для Windows-систем и Windows 7 и XP. Я сделал пакетный скрипт, чтобы помочь мне использовать netsh. Проблема заключается не в том, что все имена сетевого интерфейса одинаковы. По большей части это «Подключение по локальной сети», но некоторые из них - «Ethernet» или «Беспроводное соединение» и еще много чего. Так вот строка из моего сценария:..Настройка сетевого адаптера в переменной в партии

Netsh интерфейс IP-адрес набор "Local Area Connection" статические 192,168% Диапазон%% IP_Last% 255.255.255.0 192,168% Диапазон% .1

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

netsh interface ip set address "% NIC_NAME%" static 192.168.% Диапазон%.% IP_Last% 255.255.255.0 192.168.% Диапазон % .1

Чтобы он работал в любой системе. Я просто хочу, чтобы он использовал текущее имя активной сетевой карты. Большое спасибо за любую помощь!!

ответ

0

Вы можете использовать WMI, чтобы найти активные адаптеры, настроить ниже код вашей потребности и выбрать имя вместо IP-адрес:

strComputer = "." 
Set objWMIService = GetObject(_ 
"winmgmts:\\" & strComputer & "\root\cimv2") 
Set IPConfigSet = objWMIService.ExecQuery _ 
("Select IPAddress from Win32_NetworkAdapterConfiguration" _ 
    & " where IPEnabled=TRUE") 

For Each IPConfig in IPConfigSet 
If Not IsNull(IPConfig.IPAddress) Then 
    For i=LBound(IPConfig.IPAddress) _ 
    to UBound(IPConfig.IPAddress) 
    If Instr(1, IPConfig.IPAddress(i), "169.") = 0 Then 


     WScript.Echo IPConfig.IPAddress(i) 
     ELSE 
     END IF 
    Next 
End If 
Next