Помогите написать скрипт

Аватара пользователя
Tonny_Bennet

Re: Помогите написать скрипт

Сообщение Tonny_Bennet »

DmitriiV, общался с автором темы в ICQ
Аватара пользователя
DeGReeS

Re: Помогите написать скрипт

Сообщение DeGReeS »

Вот что я нашел в инете
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
Аватара пользователя
t3mk4

Re: Помогите написать скрипт

Сообщение t3mk4 »

Ужас. В МС наверно бы удавились если увидели эти скрипты. Вам же уже совсем-совсем давно сделали GPP в которых можно назначать куда угодно и как угодно таргетинг.
http://www.microsoft.com/en-us/downl....aspx?id=24449
Ответить

Вернуться в «Microsoft Windows NT/2000/2003»