Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » Помогите написать скрипт

Ответить
Настройки темы
Помогите написать скрипт

Пользователь


Сообщения: 54
Благодарности: 0

Профиль | Отправить PM | Цитировать


Есть терминальный сервер на Win 2003, к которому подключаются пользователи под своими логинами с разных компьютеров. К компьютерам подключены принтеры и установлены на терминальнике. Необходимо написать скрипт, который бы выбирал по умолчанию конкретный принтер при подключении пользователя. Есть пожелание, реализовать через IP адрес клиентского компьютера.

Отправлено: 11:36, 31-05-2012

 

Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 177

Профиль | Отправить PM | Цитировать


DmitriiV, общался с автором темы в ICQ

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 17:11, 31-05-2012 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 54
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вот что я нашел в инете 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

Отправлено: 15:02, 01-06-2012 | #12


Старожил


Сообщения: 165
Благодарности: 23

Профиль | Отправить PM | Цитировать


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

Отправлено: 16:18, 01-06-2012 | #13



Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » Помогите написать скрипт

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Помогите, написать sh скрипт webinteger Программирование в *nix 2 17-09-2010 09:01
Помогите написать скрипт для установки qip aild AutoIt 5 28-07-2010 14:19
FreeBSD - Помогите написать скрипт Stirs Общий по FreeBSD 2 25-06-2008 02:29
Помогите написать скрипт копирования Filariel Программирование в *nix 7 17-11-2006 16:38
Помогите написать скрипт!!! Sergei Antoshkin Вебмастеру 1 13-03-2003 18:22




 
Переход