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

Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » [решено] установка принтера через скрипт и GPO

Ответить
Настройки темы
[решено] установка принтера через скрипт и GPO
exo exo вне форума

Аватара для exo

Ветеран


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


Конфигурация

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


Доброго вечера.
Есть Windows Server 2003 SE SP2.
Есть принтер установленный на нём локально серез TCP/IP порт.
Есть скрипт VBS, устанавливающий данный принтер автоматически:
Код: Выделить весь код
Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.AddWindowsPrinterConnection "\\server\HP LaserJet 4300 PCL 6"
WshNetwork.SetDefaultPrinter "\\server\HP LaserJet 4300 PCL 6"
Result = MsgBox("Установка принтеров завершена. Для продолжения нажмите ОК")
Засунул его в GPO - работает.
Но вот беда - работает при каждом входе в систему.
Есть ли возможность сделать GPO разовой для каждого пользователя ?
Или есть ли код, проверяющий наличие данного принтера, и если его нет - ставить, а если есть - не устанавливать?

или вот сейчас думаю убрать код Result = MsgBox("Установка принтеров завершена. Для продолжения нажмите ОК")

Спасибо.

-------
Вежливый клиент всегда прав!


Отправлено: 17:48, 19-08-2009

 

Googler


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

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


Цитата exo:
есть ли код, проверяющий наличие данного принтера, и если его нет - ставить, а если есть - не устанавливать »
Код: Выделить весь код
Set objNet = CreateObject("WScript.Network")

PrnConnect "\\server\HP LaserJet 4300 PCL 6"

' Процедура подключения сетевого принтера
Sub PrnConnect(strPrinterPath)
   If Not PrnIsConnected(strPrinterPath) Then
      objNet.AddWindowsPrinterConnection strPrinterPath
      objNet.SetDefaultPrinter strPrinterPath
   End If
End Sub

' Функция проверки подключения сетевого принтера
Function PrnIsConnected(strPrinterPath)
   Dim colPrn, intPrn
   Set colPrn = objNet.EnumPrinterConnections

   PrnIsConnected = vbFalse
   If colPrn.Count > 0 Then
      For intPrn = 1 To colPrn.Count-1 Step 2
         If StrComp (strPrinterPath, colPrn.Item(intPrn), 1)=0 Then
            PrnIsConnected = vbTrue
            Exit For
         End If
      Next
   End If
End Function
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:06, 20-08-2009 | #2



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

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

exo exo вне форума Автор темы

Аватара для exo

Ветеран


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

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


amel27, а можете расписать смысл каждой строчки?

AddWindowsPrinterConnection и SetDefaultPrinter мне понятны, а вот остальные нет...

-------
Вежливый клиент всегда прав!


Отправлено: 11:57, 20-08-2009 | #3


Googler


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

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


exo, каждой?
пока только в общих чертах: "objNet.EnumPrinterConnections" возвращает массив подключенных принтеров - по 2 элемента на принтер (порт, имя), проверяем количество элементов (colPrn.Count) и потом циклом (For/Next) проходим по нечетным элементам массива (имя) и сравниваем с заданным, если не находим совпадения, то ф-ция PrnIsConnected() возвращает FALSE, иначе - TRUE.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:53, 20-08-2009 | #4

exo exo вне форума Автор темы

Аватара для exo

Ветеран


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

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


Цитата amel27:
exo, каждой? »
а где можно хорошо почитать про скрипты для администрирования ? ну чтобы понятным языком? пора в них уже разбираться...

Цитата amel27:
' Процедура подключения сетевого принтера »
Цитата amel27:
' Функция проверки подключения сетевого принтера »
а почему проверка подключения идёт после самого подключения?

-------
Вежливый клиент всегда прав!


Отправлено: 13:10, 20-08-2009 | #5


Googler


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

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


Цитата exo:
где можно хорошо почитать про скрипты для администрирования »
в этой ветке смотрели?.. http://forum.oszone.net/thread-130222.html

Цитата exo:
почему проверка подключения идёт после самого подключения? »

- Function/End Function/Sub/End Sub
только определяет функцию (последовательность команд);
- вызов PrnIsConnected() осуществляется из PrnConnect() - проверка и при успехе подключение;
- процедура PrnConnect() вызывается во второй строчке скрипта.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:27, 20-08-2009 | #6

exo exo вне форума Автор темы

Аватара для exo

Ветеран


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

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


Цитата amel27:
If Not PrnIsConnected »
Цитата amel27:
процедура PrnConnect() вызывается во второй строчке скрипта »
увидел
Цитата amel27:
в этой ветке смотрели?.. »
нет. сча гляну.

-------
Вежливый клиент всегда прав!


Отправлено: 17:14, 20-08-2009 | #7



Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » [решено] установка принтера через скрипт и GPO

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Доступ - Установка шрифтов через GPO advin Microsoft Windows 2000/XP 8 14-01-2010 15:29
[решено] Установка По через GPO petro89 Microsoft Windows NT/2000/2003 5 25-06-2009 16:09
Установка приложений через GPO wolf_7777 Автоматическая установка приложений 0 05-02-2009 10:13
Установка Nero 8 через GPO Dread Автоматическая установка приложений 0 03-04-2008 16:40
установка по через gpo, где ссылки на по через dfs farlow Microsoft Windows NT/2000/2003 2 02-11-2007 05:59




 
Переход