Вот что я нашел в инете
http://www.osp.ru/win2000/2009/06/9846437/
В понедельник проверю на пользователях, на своей машине проверил.
Вот что у меня получилось:
Dim dbg:dbg=true
Dim networkIDs: set networkIDs=CreateObject("Scripting.Dictionary")
Dim Nacs, Nac
Set Nacs=GetObject("winmgmts://./root/cimv2").ExecQuery("Select IPAddress, IPSubnet from win32_NetworkAdapterConfiguration where IPEnabled=True")
For Each Nac in Nacs
Dim N
If (Not IsNull(Nac.IPAddress)) And (Not IsNull(Nac.IPSubnet)) Then
For N=0 to UBound(Nac.IPAddress)
NetworkIDs(Nac.IPAddress(N))=vbNullString
Next
End If
Next
Dim IDList:IdList=networkIDs.Keys
Dim Locations:Set Locations=CreateObject("Scripting.Dictionary")
'Locations ("Z")="192.168.1.7"'
Locations ("31")="192.168.2.31"
Locations ("32")="192.168.2.32"
Locations ("33")="192.168.2.33"
Locations ("38")="192.168.2.38"
Locations ("49")="192.168.2.49"
'Locations ("45")="192.168.2.45"'
'Locations ("36")="192.168.2.36"'
Locations ("50")="192.168.2.50"
'Locations ("61")="192.168.2.61"'
'Locations ("62")="192.168.2.62"'
Locations ("39")="192.168.2.39"
Locations ("37")="192.168.2.37"
Locations ("47")="192.168.2.47"
'Locations ("42")="192.168.2.42"'
Locations ("41")="192.168.2.41"
'Locations ("63")="192.168.2.63"'
Locations ("60")="192.168.2.60"
Locations ("40")="192.168.2.40"
'Locations ("35")="192.168.2.35"'
Locations ("34")="192.168.2.34"
'Locations ("4")="192.168.2.4"'
Dim SystemLocation
SystemLocation=vbNullString
Dim MultipleMatches
MultipleMatches=False
Dim WshShell
Set WshShell=CreateObject("WScript.Shell")
Dim Session
Session=WshShell.ExpandEnvironmentStrings("%SessionName%")
If Session = "Console" or Session = "%SessionName%" Then
Dim Location
For Each Location in Locations.Keys
Dim currentId
For Each currentID in IDList
If dbg Then WScript.Echo "ID:", CurrentID
If currentID=Locations(Location) Then
If dbg Then WScript.Echo "matched", CurrentID
If SystemLocation <> vbNullString Then
MultipleMatches = True
Else
SystemLocation = Location
End If
End If
Next
Next
End If
If Not MultipleMatches Then
Dim WshNetwork
Set WshNetwork=CreateObject("WScript.Network")
Select Case SystemLocation
Case "Z"
WshNetwork.AddWindowsPrinterConnection "\\192.168.1.251\HP LaserJet P1005"
WshNetwork.SetDefaultPrinter "\\192.168.1.251\HP LaserJet P1005"
Case "31"
WshNetwork.AddWindowsPrinterConnection "\\192.168.2.31\HP-LaserJet-Professional-P1102"
WshNetwork.SetDefaultPrinter "\\192.168.1.31\HP-LaserJet-Professional-P1102"
Case "32"
WshNetwork.AddWindowsPrinterConnection "\\192.168.2.32\HP-LaserJet-Professional-P1102"
WshNetwork.SetDefaultPrinter "\\192.168.1.32\HP-LaserJet-Professional-P1102"
Case "33"
WshNetwork.AddWindowsPrinterConnection "\\192.168.2.33\HP-LaserJet-Professional-P1102"
WshNetwork.SetDefaultPrinter "\\192.168.1.33\HP-LaserJet-Professional-P1102"
Case "38"
WshNetwork.AddWindowsPrinterConnection "\\192.168.2.38\HP-LaserJet-Professional-P1102"
WshNetwork.SetDefaultPrinter "\\192.168.1.381\HP-LaserJet-Professional-P1102"
Case "49"
WshNetwork.AddWindowsPrinterConnection "\\192.168.2.49\HP-LaserJet-Professional-P1102"
WshNetwork.SetDefaultPrinter "\\192.168.1.49\HP-LaserJet-Professional-P1102"
' Case "45"'
' WshNetwork.AddWindowsPrinterConnection "\\192.168.2.45\HP-LaserJet-Professional-P1102"'
' WshNetwork.SetDefaultPrinter "\\192.168.1.45\HP-LaserJet-Professional-P1102" '
' Case "36"'
' WshNetwork.AddWindowsPrinterConnection "\\192.168.2.36\HP-LaserJet-Professional-P1102"'
' WshNetwork.SetDefaultPrinter "\\192.168.1.36\HP-LaserJet-Professional-P1102" '
Case "50"
WshNetwork.AddWindowsPrinterConnection "\\192.168.2.50\HP-LaserJet-Professional-P1102"
WshNetwork.SetDefaultPrinter "\\192.168.1.50\HP-LaserJet-Professional-P1102"
' Case "61"'
' WshNetwork.AddWindowsPrinterConnection "\\192.168.2.61\HP-LaserJet-Professional-P1102"'
' WshNetwork.SetDefaultPrinter "\\192.168.1.61\HP-LaserJet-Professional-P1102" '
' Case "62"'
' WshNetwork.AddWindowsPrinterConnection "\\192.168.2.62\HP-LaserJet-Professional-P1102"'
' WshNetwork.SetDefaultPrinter "\\192.168.1.62\HP-LaserJet-Professional-P1102" '
Case "39"
WshNetwork.AddWindowsPrinterConnection "\\192.168.2.39\HP-LaserJet-Professional-P1102"
WshNetwork.SetDefaultPrinter "\\192.168.1.39\HP-LaserJet-Professional-P1102"
Case "37"
WshNetwork.AddWindowsPrinterConnection "\\192.168.2.37\HP-LaserJet-Professional-P1102"
WshNetwork.SetDefaultPrinter "\\192.168.1.37\HP-LaserJet-Professional-P1102"
Case "47"
WshNetwork.AddWindowsPrinterConnection "\\192.168.2.47\HP-LaserJet-Professional-P1102"
WshNetwork.SetDefaultPrinter "\\192.168.1.47\HP-LaserJet-Professional-P1102"
' Case "42"'
' WshNetwork.AddWindowsPrinterConnection "\\192.168.2.42\HP-LaserJet-Professional-P1102"'
' WshNetwork.SetDefaultPrinter "\\192.168.1.42\HP-LaserJet-Professional-P1102" '
Case "41"
WshNetwork.AddWindowsPrinterConnection "\\192.168.2.41\HP-LaserJet-Professional-P1102"
WshNetwork.SetDefaultPrinter "\\192.168.1.41\HP-LaserJet-Professional-P1102"
' Case "63"'
' WshNetwork.AddWindowsPrinterConnection "\\192.168.2.63\HP-LaserJet-Professional-P1102"'
' WshNetwork.SetDefaultPrinter "\\192.168.1.63\HP-LaserJet-Professional-P1102" '
Case "60"
WshNetwork.AddWindowsPrinterConnection "\\192.168.2.60\HP-LaserJet-Professional-P1102"
WshNetwork.SetDefaultPrinter "\\192.168.1.60\HP-LaserJet-Professional-P1102"
Case "40"
WshNetwork.AddWindowsPrinterConnection "\\192.168.2.40\HP-LaserJet-Professional-P1102"
WshNetwork.SetDefaultPrinter "\\192.168.1.40\HP-LaserJet-Professional-P1102"
' Case "35"'
' WshNetwork.AddWindowsPrinterConnection "\\192.168.2.35\HP-LaserJet-Professional-P1102"'
' WshNetwork.SetDefaultPrinter "\\192.168.1.35\HP-LaserJet-Professional-P1102" '
Case "34"
WshNetwork.AddWindowsPrinterConnection "\\192.168.2.34\HP-LaserJet-Professional-P1102"
WshNetwork.SetDefaultPrinter "\\192.168.1.34\HP-LaserJet-Professional-P1102"
' Case "4"'
' WshNetwork.AddWindowsPrinterConnection "\\192.168.2.4\HP-LaserJet-Professional-P1102"'
' WshNetwork.SetDefaultPrinter "\\192.168.1.4\HP-LaserJet-Professional-P1102" '
Case Else
If dbg then
WScript.Echo "No matching location found."
WScript.Echo "SystemLocation:",SystemLocation
End If
End Select
End If
Function NetworkID(Address,Mask)
Dim AddresOctets,MaskOktets,Result,N
AddressOctets=Split(Address,".")
MaskOctets=Split(Mask,".")
ReDim Result (UBound(AddressOctets))
For N=0 To UBound(AddressOctets)
Result(N)=AddressOctets(N) And MaskOctets(N)
Next
NetworkID=Join(Result,".")
End Function