ПОдключение принтеров с Домен Контроллера с консоли

logan00108

На Домен-контроллере с ролью принт-сервера пошарено шесть штук принтеров. Хочется, чтобы на рабочих станциях из логон скрипта выполнялось такое же действие как двойной щелчок по шаренному принтеру - в принтерах и факсах появлялся принтер с именем типа "имя шары" на "имя принт-сервера".
Пытался сделать такую фигню с помощью net use <port> принт-сервера>\<имя шары>
Оно сопоставляет некоему виртуальному порту эту шару, потом на этот порт (который еще создать надо) нужно ручками устанавливать принтер.
В общем, гемор это, и на 60+ рабочих станциях делать сие неохота.
У кого-нить был подобный опыт?
На сервере ОС W2k3, на рабочих станциях WXP Pro, если это важно...

0000

Смотри Windows Script Host - он под такие вещи как раз заточен - на сайте MS ооочень вероятно уже готовый скрипт есть.

logan00108

Это вариант... Но я на нем прогать не умею. Готовый поищу
Порылся, нашел вот что:
Использование: rundll32 printui.dll,PrintUIEntry [параметры] [@командный файл]
/a[имя_файл] имя двоичного файла
/b[имя] основное имя принтера
/c [имя] UNC-имя компьютера, где выполняется команда
/dl удаление локального принтера
/dn удаление подключения к сетевому принтеру
/dd удаление драйвера принтера
/e вывод параметров настройки печати
/f[file] или информационный файл, или выходной файл
/ga добавление подключений компьютеров к принтеру
/ge перечисление подключений компьютеров к принтеру
/gd удаление подключений компьютеров к принтеру
/h[arch] Архитектура драйвера для: Alpha | Intel | IA64 | х64
/ia установка драйвера принтера с помощью информационного файла
/id установка драйвера принтера с помощью мастера установки драйверов принтеров
/if установка принтера с помощью информационного файла
/ii установка принтера с помощью мастера установки принтеров и информационного файла
/il установка принтера с помощью мастера установки принтеров
/in добавление подключения к принтеру
/j[provider] имя системы печати
/k печать пробной страницы на выбранном принтере, не может использоваться с другими командами установки принтера
/l[path] путь к исходному размещению драйвера принтера
/m[model] имя модели драйвера принтера
/n[name] имя принтера
/o показать очередь заданий на печать
/p отображение свойств принтера
/q скрытый режим без вывода сообщений об ошибках
/r[port] имя порта
/s показать свойства сервера
/Ss запись параметров принтера в файл
/Sr чтение параметров принтера из файла
Флаги при записи или чтении параметров принтера, помещаемые в конце команды:
2 PRINTER_INFO_2
7 PRINTER_INFO_7
c профиль цвета
d PrinterData
s дескриптор безопасности
g глобальный DevMode
m минимальный набор параметров
u пользовательский DevMode
r разрешить конфликты имен
f принудительное использование имени
p сопоставить порт
/u использовать существующий драйвер принтера если он установлен
/t[#] номер начальной страницы (с нуля)
/v[version] версия драйвера для Windows 95. 98 или Me | Windows NT 4.0 или 2000 | Windows 2000 или ХР | Windows XP
/w запрос драйвера у пользователя, если драйвер не найден в inf-файле
/y назначить принтер используемым по умолчанию
/Xg получить параметры принтера
/Xs установить параметры принтера
/z не разрешать автоматический общий доступ к этому принтеру
/Y не генерировать автоматически имя принтера
/K изменяет значение ключей /v и /h, чтобы значения 0,1,2,3, соответствовали Windows х64 и Windows IA64 | Windows NT x86 | Windows NT Alpha_AXP | Windows 4.0
/Z общий доступ к принтеру, используется только вместе с /if
/? вывод справки
@[file] файл аргументов командной строки
/Mw[сообщение] отображать предупредительное сообщение перед выполнение команды
/Mw[сообщение] отображать сообщение подтверждения перед выполнением команды
/W[флаги] указывает флаги и ключи для мастеров (добавления принтера и драйвера)
r позволить этим мастерам перезапускаться с последней страницы
/G[флаги] указывает глобальные флаги и ключи
w подавляет предупреждения интерфеса пользователя по установке драйвера (супер тихий режим)
Примеры:
Запуск свойств сервера:
rundll32 printui.dll,PrintUIEntry /s /t1 /n\\machine
Запуск свойств принтера:
rundll32 printui.dll,PrintUIEntry /p /n\\machine\printer
Локальный запуск мастера установки принтеров:
rundll32 printui.dll,PrintUIEntry /il
Запуск мастера установки принтеров на компьютере
rundll32 printui.dll,PrintUIEntry /il /c\\machine
Запуск показа очереди:
rundll32 printui.dll,PrintUIEntry /o /n\\machine\printer
Запуск установки с помощью информационного файла:
rundll32 printui.dll,PrintUIEntry /if /b "Test Printer" /f %windir%\inf\ntprint.inf /r "lpt1:" /m "AGFA-AccuSet v52,3"
Запуск мастера установки принтеров с помощью информационного файла:
rundll32 printui.dll,PrintUIEntry /ii /f %windir%\inf\ntprint.inf
Добавление подключений компьютеров к принтеру:
rundll32 printui.dll,PrintUIEntry /ga /c\\machine /n\\machine\printer /j"LanMan Print Services"
Удаление подключений компьютеров к принтеру:
rundll32 printui.dll,PrintUIEntry /gd /c\\machine /n\\machine\printer
Перечисление подключений компьютеров к принтеру:
rundll32 printui.dll,PrintUIEntry /ge /c\\machine
Добавление драйвера принтера с помощью информационного файла:
rundll32 printui.dll,PrintUIEntry /ia /c\\machine /m "AGFA-AccuSet v52,3" /h "Intel" /v "Windows 2000 или ХР" /f %windir%\inf\ntprint.inf
Добавить драйвер принтера:
rundll32 printui.dll,PrintUIEntry /ia /K /c\\machine /m "AGFA-AccuSet v52,3" /h "Windows NT x86" /v 3
Удаление драйвера принтера:
rundll32 printui.dll,PrintUIEntry /dd /c\\machine /m "AGFA-AccuSet v52,3" /h "Intel" /v "Windows 2000 или ХР"
Удалить драйвер принтера:
rundll32 printui.dll,PrintUIEntry /dd /K /c\\machine /m "AGFA-AccuSet v52,3" /h "Windows NT x86" /v 3
Назначение принтера используемым по умолчанию:
rundll32 printui.dll,PrintUIEntry /y /n "printer"
Указание описания принтера:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" comment "My Cool Printer"
Получение параметров принтера:
rundll32 printui.dll,PrintUIEntry /Xg /n "printer"
Получение параметров принтера и запись их в файл:
rundll32 printui.dll,PrintUIEntry /f "results.txt" /Xg /n "printer"
Справка об установке параметров принтера:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" ?
Запись всех параметров принтера в файл:
rundll32 printui.dll,PrintUIEntry /Ss /n "printer" /a "file.dat"
Восстановление всех параметров принтера из файла:
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat"
Запись сведений принтера уровня 2 в файл:
rundll32 printui.dll,PrintUIEntry /Ss /n "printer" /a "file.dat" 2
Восстановление дескриптора безопасности из файла:
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" s
Восстановление глобального devmode и данных принтера из файла:
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" g d
Восстановление минимального набора параметров из файла и разрешение имени порта:
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" m p

Все бы хорошо, но
rundll32 printui.dll,PrintUIEntry /in
выдает, что сервер не найден...

0000

Хочется, чтобы на рабочих станциях из логон скрипта выполнялось такое же действие как двойной щелчок по шаренному принтеру - в принтерах и факсах появлялся принтер с именем типа "имя шары" на "имя принт-сервера".
Если пояснишь подробнее, что это значит (что же происходит? подключается сетевой принтер с определенным именем или что то еще? то напишу (как время появиться) - ну или какой папка прибежит и то же напишет.
Через dll это через жопу и как вариант лучше не рассматривать.

logan00108

Нашел таки рабочее решение через VBS:

Dim net

Set net = CreateObject("WScript.Network")

net.AddWindowsPrinterConnection "\\server\printer"

0000

Ну вот вишь как просто WSH для админства и небольших утилит рулит конкретно.

logan00108

Сча вот еще научусь локально установленные принтеры удалять.

0000

Незабудь еще научиться удаленно запускать проги на клиентских компах

logan00108

Это то мы умеем.

logan00108

Кстати так и не нашел как принтеры удалять.

0000

Из справки WSH
Removes a shared network printer connection from your computer system.
object.RemovePrinterConnection(strName, [bForce], [bUpdateProfile])

Arguments
object
WshNetwork object.
strName
String value indicating the name that identifies the printer. It can be a UNC name (in the form or a local name (such as LPT1).
bForce
Optional. Boolean value indicating whether to force the removal of the mapped printer. If set to true (the default is false the printer connection is removed whether or not a user is connected.
bUpdateProfile
Optional. Boolean value. If set to true (the default is false the change is saved in the user's profile.

Set WshNetwork = WScript.CreateObject("WScript.Network")
PrinterPath = "\\printserv\DefaultPrinter"
WshNetwork.RemovePrinterConnection PrinterPath, true, true

logan00108

Локальный принтер нада удалять...

0000

Может вот это поможет?
http://www.p-stone.ru/libr/os/windows/data/public23/prnmngr....
Оставить комментарий
Имя или ник:
Комментарий: