IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   создание bat файла для подключения юзеров к сетевому принтеру (http://www.imho.ws/showthread.php?t=113011)

bob02 28.12.2006 08:55

создание bat, vbs файла для подключения юзеров к сетевому принтеру
 
такая задача:
дано: сетка с АД, на несколько объектов.
в одном здании около 8 компьютеров, на каждом из этих компьютеров по 4-8 юзеров (посменно), каждый под своим аккаунтом.
нужно: создать bat файл, который я закину в автозагрузку каждому пользователю, для подключения к сетевому принтеру.

заранее спасибо за помощь.

Borland 28.12.2006 10:12

Требуется: принт-сервер (виндовая машина, с которой будет расшарен принтер). В принципе, если клиентов меньше 10 можно использовать 2k wks/XP Pro (лично я рекомендую 2k server). Сильно мощная машина не нужна, но желательно выделить отдельную машину - использование принт-сервера в качестве рабочей станции в моменты печати затруднительно.
Расшаренный принтер подключается к порту lpt1: командой
Код:

net use lpt1: \\printservername\printersharename

bob02 28.12.2006 10:34

2Borland : команду выполнил, но в списке принтеров расшаренный принтер не появился, хотя cmd сказал что устройство подключено. и понятно что приложения его не видят
и еще можно принтер не к lpt цеплять а к usb порту, и какой будет синтаксис?

KomatoZo 28.12.2006 10:56

bob02
У меня есть VBScript. Рабочий.
Код:

strComputer = "."
Set objWMIService = GetObject _
    ("winmgmts:" & "!\\" & strComputer & "\root\cimv2")
Set colAdapters = objWMIService.ExecQuery _
    ("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True")
A = 0
' Проверка, не на сервере ли запускаем
For Each objAdapter in colAdapters
    if objAdapter.DNSHostName = "Server1" or objAdapter.DNSHostName = "Server2"  then
        A = 1   
    End If
Next
' Подключаем
if A = 0 then
        Set WshNetwork = CreateObject("WScript.Network")
        WshNetwork.AddWindowsPrinterConnection "\\Server\HP LaserJet 2200 Series PCL 6"
End If

UPD : Естественно, Server1, Server2 нужно заменить на имена компьютеров, на которых запускать скрипт не надо, а Server и имя принтера на те, которые у Вас.

bob02 28.12.2006 11:19

2 KomatoZo СЕНКС
а нелья в скрипт добавить пару строк, чтобы принтер тот сетевой стал по умолчанию основным? :)

p.s. если отправите в пешее эротическое путешествие обижаться не буду, сам понимаю что черезчур наглый. :cool:

KomatoZo 28.12.2006 11:27

Мне лениво переделывать, вот код, который делает принтер с именем ScriptedPrinter принтером по-умолчанию. Доработайте его и объедините с предыдущим.

Код:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colInstalledPrinters =  objWMIService.ExecQuery _
    ("Select * from Win32_Printer Where Name = 'ScriptedPrinter'")

For Each objPrinter in colInstalledPrinters
    objPrinter.SetDefaultPrinter()
Next


bob02 29.12.2006 05:18

итоговый рабочий скрипт, который я использовал. Спасибо всем кто откликнулся и помог в создании скрипта :молись:

strComputer = "."
Set objWMIService = GetObject _
("winmgmts:" & "!\\" & strComputer & "\root\cimv2")
Set colAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True")
A = 0
' Проверка, не на сервере ли запускаем
For Each objAdapter in colAdapters
if objAdapter.DNSHostName = "ipdnsservera" or objAdapter.DNSHostName = "ipdnsservera" then
A = 1
End If
Next
' Подключаем
if A = 0 then
Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.AddWindowsPrinterConnection "put'doprintera"
WSHNetwork.SetDefaultPrinter "put'doprintera"
End If


Часовой пояс GMT +4, время: 20:26.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.