2013-09-03 3 views
0

Я пытаюсь создать сценарий для сопоставления диска при входе в систему по IP-адресу или подсети. Я смог найти один скрипт, который хорошо работает на одном микрофоне, но есть несколько машин, у которых есть 2 Nics, и с ними не работает.VBS- скрипт входа для сопоставления диска с несколькими сетевыми картами

Здесь изменен скрипт.

set objNetwork = CreateObject("Wscript.Network") 
strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 

Set colAdapters = objWMIService.ExecQuery _ 
    ("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled=True") 


ReDim arrSubnets(-1) 
For Each objAdapter in colAdapters 
    For Each strAddress in objAdapter.IPAddress 
    arrOctets = Split(strAddress, ".") 
    If arrOctets(0) <> "" Then 
     ReDim Preserve arrSubnets(UBound(arrSubnets)+1) 
     arrSubnets(UBound(arrSubnets)) = arrOctets(0) & "." & arrOctets(1) & "." _ 
     & arrOctets(2) 

    End If 
    Next 
Next 

    Set colItems = objWMIService.ExecQuery _ 
     ("Select * From Win32_LogicalDisk Where DeviceID = 'G:'") 
If colItems.Count = 0 Then 


    strSubnet = arrSubnets(UBound(arrSubnets)) 
Select Case strSubnet 


     Case "10.1.1" 
      objNetwork.MapNetworkDrive "G:", "\\10.1.1.62\zShared",True 
     objNetwork.MapNetworkDrive "F:", "\\10.1.1.62\zShared2",True 

     Case "10.1.20" 
      objNetwork.MapNetworkDrive "G:", "\\10.1.20.150\sharedch",True 
     objNetwork.MapNetworkDrive "F:", "\\10.1.20.150\sharedch1",True 
End Select 

End If 
+0

Умм ... * *, который ошибка? –

+0

Привет, Спасибо за ваш ответ. Ниже приведена ошибка. Line: 14 Char: 14 Ошибка: Тип Несовпадение: '' arrsubnets Код: 800A000D – user2744072

+0

https://skydrive.live.com/?mkt=en-US#cid=415FBD1F15F38083&id=415FBD1F15F38083%21201&v=3 – user2744072

ответ

1

используется arrSubnets без инициализации (или изменение размера) его. Кроме того, вы пытаетесь эхом ответить arrSubnetIPs(i), когда вы должны быть эхом arrSubnets(i). Изменить это:

i = 0 

For Each objAdapter in colAdapters 
    For Each strAddress in objAdapter.IPAddress 
    arrOctets = Split(strAddress, ".") 
    If arrOctets(0) <> "" Then 
     arrSubnets(i) = arrOctets(0) & "." & arrOctets(1) & "." & arrOctets(2) 
     i = i + 1 
     WScript.Echo arrSubnetIPs(i) 
    End If 
    Next 
Next 

в это:

ReDim arrSubnets(-1) 
For Each objAdapter in colAdapters 
    For Each strAddress in objAdapter.IPAddress 
    arrOctets = Split(strAddress, ".") 
    If arrOctets(0) <> "" Then 
     ReDim Preserve arrSubnets(UBound(arrSubnets)+1) 
     arrSubnets(UBound(arrSubnets)) = arrOctets(0) & "." & arrOctets(1) & "." _ 
     & arrOctets(2) 
     WScript.Echo arrSubnets(UBound(arrSubnets)) 
    End If 
    Next 
Next 
+0

Привет, Спасибо за ваш ответ, но теперь я получаю другую ошибку. Вот сценарий, который я использую в этот раз. – user2744072

+0

Привет, Спасибо за ваш ответ, но теперь я получаю другую ошибку. Вот сценарий, который я использую в этот раз. Per Echoing Я делал это только для отладки проблемы, я не хотел эхо подсеть. Вот URL-адрес для ошибки. https://skydrive.live.com/?mkt=en-US#cid=415FBD1F15F38083&id=415FBD1F15F38083%21202&v=3 \t Здесь сценарий url. https://skydrive.live.com/?mkt=en-US#cid=415FBD1F15F38083&id=415FBD1F15F38083%21203 – user2744072

+0

@ user2744072 Измените свой вопрос и добавьте измененный скрипт или отправьте его где-нибудь там, где его можно просмотреть без необходимости включения JavaScript. –

 Смежные вопросы

  • Нет связанных вопросов^_^