Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Аспирин Гость
|
Добавлено: Пт Июн 25 2004 07:59 Заголовок сообщения: сетевой принтер |
|
|
Дело в следующем,
Есть группа безумных юзеров, которые таскают постоянно принтер от одного компьютера к другому. Поскольку принтер сетевой, то при каждой такой операции приходится у всех других перенастраивать этот принтер.
Устал. Может знающие люди подскажут какое нибудь элехантное решение, чтобы какой нибудь ярлычок, на него все настроены, а в случае чего просто меняешь в нем сетевой путь и готово. |
|
Вернуться к началу |
|
 |
TechNoir
Зарегистрирован: 22.08.2003 Сообщения: 1632 Откуда: Moscou
|
Добавлено: Пт Июн 25 2004 08:16 Заголовок сообщения: |
|
|
Некоторые делают так:
Подключают принтер к компьютеру 1 - Делают его общим с доступом только компьютеру 2.
На компьютере 2 устанавливают драйвер для принтера (ну типа для этой машины тот принтер сетевой).
Затем на компе 2 дают общий доступ на принтер.
На всех остальных клиента устанавливают принтер котороый как будто бы подключен к компу 2 (на самом деле 1).
Я правда сам такого не делал, народ рассказывал  _________________ Vive la Russie! |
|
Вернуться к началу |
|
 |
Гость
|
Добавлено: Пт Июн 25 2004 10:09 Заголовок сообщения: |
|
|
прикольно а сервер они из комнаты в комнату не таскают?
(чтобы сеть быстрей работала)
модель принтера приведите,тип подключения |
|
Вернуться к началу |
|
 |
Аспирин Гость
|
Добавлено: Пт Июн 25 2004 10:28 Заголовок сообщения: сетевой принтер |
|
|
Предложенная схема не рулит, т.к. на вкладке <Доступ> у ярлыка сетевого принтера он как бы уже расшарен, хотя в сети его все равно не видно.
Принтер HP1300. У всех юзеров Win200Pro, сервер под Win2000Serv.
Сетка TCP/IP. Принтер подключен на USB.
Возникла мысль замонтировать путь "\\юзер_комп\принтер" на LPT1 и поставить драйвер принтера как будто он локальный, а потом его расшарить. Что думаете?
Ну сервер не таскают, так как рядом с ним сидит злой админ. |
|
Вернуться к началу |
|
 |
And
Зарегистрирован: 02.12.2003 Сообщения: 401 Откуда: Московская обл.
|
Добавлено: Пт Июн 25 2004 10:35 Заголовок сообщения: |
|
|
Марку принтера в студию!!! Самый элегантный вариант. Без изменения настроек, без гемороев и процего суицида. Покупаем принт сервер. Маленькая такая коробочка стоит не дорого. На одном конце LPT порт, на другом LAN порт RJ-45. Устанавливаем дрова на сервере печати который будет постоянно доступен, в качестве порта будет порт TCP/IP и IP адрес принт-сервера!!! Можно на файл-помойке, сильно не нагрузит. Затем шарим его и наслажбаемся. Очередь печати на сервере и всегда доступна. Когда принтер переносите печать все равно будет доступна только реально документы будут напечатаны в тот момент когда ты в сеть воткнешь принтер ) Да еще один геморойчик небольшой придется пользователям постоянно напоминать где стоит принтер. Настройки менять им не придется так как принтер установлен на сервере а физически он может быть в любом месте где у тебя есть сеть!!! Попробуй так! |
|
Вернуться к началу |
|
 |
Аспирин Гость
|
Добавлено: Пт Июн 25 2004 10:44 Заголовок сообщения: сетевой принтер |
|
|
Легко за $200 принтсервер. Действительно какая мелочь. Да забыл сказать, денег на это не дадут, а за свои жаба душит. |
|
Вернуться к началу |
|
 |
And
Зарегистрирован: 02.12.2003 Сообщения: 401 Откуда: Московская обл.
|
Добавлено: Пт Июн 25 2004 11:08 Заголовок сообщения: |
|
|
Принт сервер стоит 71$ вот здесь посмотри http://www.nix.ru/price/virtualshop.html?PHPSESSID=c3acd1afcd7b717355c986427a437b32 Смотреть сетевое оборудование D-Link модель
D-Link <DP-301P/+> Print Server (1LPT, 1UTP, 10/100Mbps) EXT
Предупреждаю, не каждый принтер с ним жить будет. Твой HP 1300 жить будет. У тебя к нему должен быть LIO-LPT адаптер. И язык PJL он держит. А если без него то так и будешь мучаться. Можно установить принтер и на одной и на другой машине, а у пользователей поставить два принтера с разными названиями. Просто один из них будет постоянно не доступен. Физический принтер то один. Работающий выбирать по умолчанию!!! |
|
Вернуться к началу |
|
 |
Kilobait Гость
|
Добавлено: Пт Июн 25 2004 11:31 Заголовок сообщения: |
|
|
zainstalit' na vsex kompax etot printer, sdelat' sharing, na kazdom kompe podsoedinit' vse printera so vsex kompov v lokalke i sdelat' printer pooling (pri uslovii sto eto edinstvennij printer takoj marki v seti) i vse i daze nicego nigde meniat' nenado budet, puskaj tiagajut ego iz ugla v ugol do posinenija. Toka vot licno mne legce byloby sxodit' za listom otpecatanogo teksta cem taskat' printer. Durdom kakojto |
|
Вернуться к началу |
|
 |
Аспирин
Зарегистрирован: 25.06.2004 Сообщения: 7
|
Добавлено: Пт Июн 25 2004 12:03 Заголовок сообщения: |
|
|
Естественно он не единственный принтер в сети есть еще один такой же, но с ним все по правильному. Да и как то это как бы сказать очень уж по русски через ...
Есть одно решение правда с одним кривым моментом. Можно менять имя компа в сети на который принтер поставили, тогда все работает. Проблема в том, что компы имеют имена привязанные к юзерам. Может можно чего нибудь учудить с NetBIOS или DNS чтобы у компа было альтернативное имя.
С монтирование на LPT1 ничего не вышло. С машины на которой установлен такой виртуальный принтер все работает, а вот с других выдает ошибку печати. |
|
Вернуться к началу |
|
 |
Гость
|
Добавлено: Пт Июн 25 2004 12:38 Заголовок сообщения: |
|
|
Подключить принтер к рабочей станции (если уж у нас принт-сервера нет),прописать,расшарить,раздать права.
На сервере опубликовать в AD.
на других клиентах подключить принтер как сетевой (забрав список принтеров из AD).
у этой серии принтеров должен быть встроенный JEdirect adapter.
тогда вообще проблем нет
берем патч корд,присоединяем принтер и хаб\свитч
далее на сервере создаем новый порт (лучше Jetdirect,а не TCP/IP)
прописываем принтер на вновь созданный порт
(говорим что локальный,а не сетевой принтер и сняв галку с PLug&Play),раздаем права,расшариваем и публикуем в AD.
на клиентах прописываем принтер как сетевой.
проблема миграции принтера закончилась... |
|
Вернуться к началу |
|
 |
TechNoir
Зарегистрирован: 22.08.2003 Сообщения: 1632 Откуда: Moscou
|
Добавлено: Сб Июн 26 2004 10:32 Заголовок сообщения: |
|
|
Я где-то пол года назад сделал все так, как And сказал и не жалею.
Прислушайтесь к нему  _________________ Vive la Russie! |
|
Вернуться к началу |
|
 |
Avalanche
Зарегистрирован: 10.03.2004 Сообщения: 95 Откуда: г.Норильск
|
Добавлено: Пн Июн 28 2004 04:12 Заголовок сообщения: |
|
|
Сценарии подключения к принтерам
Криста Андерсон
Обеспечить доступ пользователя к нужному ему принтеру - сложная задача в большой сети или в компании, сотрудники которой постоянно перемещаются от одного компьютера к другому. Пользователям, работающим на дому, и торговым агентам с ноутбуками, постоянно подключающимся к сети из разных мест, вовсе не обязательно работать с одним и тем же принтером. Если несколько человек совместно пользуются одним компьютером или один сотрудник работает на нескольких машинах, администратор должен обеспечить доступ к нужному принтеру в каждом конкретном случае. Программа на VBScript может автоматически установить принтер и подсоединиться к нему при регистрации пользователя, в соответствии с ID пользователя или компьютера, а по окончании сеанса разорвать соединение. Данный сценарий оптимален для операционных систем на базе Windows NT, таких как Windows XP, 2000 и NT, так как в них можно за один прием создать соединение с принтером и установить драйверы. Но если драйверы установлены заранее, то этот метод применим и на машинах Windows 9x.
Windows Script Host (WSH) поддерживает интерфейсы многих объектов Win32, в том числе WshNetwork (или WScript.Network) - набора сетевых ресурсов, общих накопителей и принтеров. Свойства объекта WshNetwork: имя компьютера (ComputerName), имя пользователя (UserName) и домен компьютера (UserDomain). В WshNetwork реализовано несколько методов сетевого доступа к дискам и принтерам. Чтобы явно установить связь принтера с портом, следует использовать метод AddPrinterConnection. Для соединения с принтерами в среде Windows (и автоматической установки драйверов на машинах XP, Windows 2000 и NT), нужно применить метод AddWindowsPrinterConnection, который будет представлен в примере. Метод SetDefaultPrinter назначает компьютеру принтер, связь с которым устанавливается по умолчанию. WshNetwork обеспечивает совместное использование сетевых принтеров, а с помощью оператора Select Case и функции InputBox процесс разделения можно сделать более гибким.
Организация типового соединения с принтером
В Листинге 1 показан самый простой способ установить принтер с использованием VBScript.
Листинг 1. Сценарий соединения с принтером.
' Begin callout A
Option Explicit
Dim oNetwork, sPrintPath
' End callout A
' Begin callout B
Set oNetwork = CreateObject("WScript.Network")
' End callout B
' Begin callout C
sPrintPath = "\\servername\printername"
' End callout C
' Begin callout D
oNetwork.AddWindowsPrinterConnection sPrintPath
oNetwork.SetDefaultPrinter sPrintPath
' End callout D
Данный исходный текст:
Определяет переменные, которые будут использованы в сценарии (метка A), поэтому, если в тексте сценария будет допущена опечатка в имени переменной, то будет выдано сообщение об ошибке, а не создана новая переменная.
Создает соединение с объектом wshnetwork (метка B). Не создав этого соединения, нельзя вызывать методы и свойства объекта.
Назначает путь UNC (Universal Naming Convention - универсальное соглашение об именовании) переменной sprintpath (метка C), поэтому ссылку на путь сделать легко.
Вызывает соответствующий метод, чтобы создать соединение с принтером и назначить его выбираемым по умолчанию. В качестве аргумента к методу указывается путь принтера (метка D).
Если сервер представляет собой компьютер на базе NT, то при наличии корректного пути (метка C Листинга 1) сценарий устанавливает соединение с указанным принтером. Чтобы перенести сценарий в другую сеть, достаточно заменить путь (метка C) действительным UNC-путем принтера.
Этот сценарий можно использовать для работы с несколькими принтерами, выбирая один из них по умолчанию. Для этого нужно определить отдельную переменную для каждого принтера, назначить отдельный путь и вызвать метод AddWindowsPrinterConnection для каждой переменной, а также вызвать метод SetDefaultPrinter, чтобы присвоить одной из переменных значение принтера, выбираемого по умолчанию. Параметр выбора по умолчанию действует так же, как аналогичный параметр, задаваемый через контекстное меню: если в качестве выбираемых по умолчанию назначено несколько принтеров, то выбран будет последний из указанных.
Принтеры для конкретных компьютеров и пользователей
Данный сценарий - хорошее начало, но его возможности ограничены. С помощью сценария нельзя сделать ничего, что выходило бы за рамки команды Net Print или инструмента Con2prt из пакета Microsoft Windows 2000 Resource Kit. Чтобы установить принтеры для конкретных компьютеров и пользователей, сценарий должен получить идентифицирующие данные и в соответствии с ними выполнить нужные действия. В Листинге 2 показан сценарий для установки принтеров по результатам идентификации компьютера (если компьютер, на котором выполняется сценарий, соединен с принт-сервером).
Листинг 2. Сценарий для соединения принтеров с конкретным компьютером.
Option Explicit
Dim oNetwork, sPrintPath
Set oNetwork = CreateObject("WScript.Network")
' Begin Callout A
Select Case oNetwork.ComputerName
Case "Gamma"
sPrintPath = "\\server\printer1"
Case "Geektoy"
sPrintPath = "\\server\printer2"
Case Else
sPrintPath = "\\server\printer3"
End Select
' End Callout A
oNetwork.AddWindowsPrinterConnection sPrintPath
oNetwork.SetDefaultPrinter sPrintPath
Сначала в сценарии определяются переменные и устанавливается соединение с объектом WshNetwork. Однако в исходном тексте Листинга 2 используется оператор Select Case, значительно повышающий возможности сценария. Благодаря оператору Select Case сценарий может прочитать имя локального компьютера и на основании этой информации принять решение об установке того или иного принтера. Имя компьютера определяет значение переменной sPrintPath, которое затем передается методам AddWindowsPrinterConnection и SetDefaultPrinter.
Таким образом, оператор Select Case у метки A в Листинге 2 используется для анализа имени компьютера - свойства oNetwork.ComputerName. Если имя компьютера - "Gamma", то сценарий назначает переменной sPrintPath путь "\\server\printer1"; если имя - "Geektoy", то переменной sPrintPath назначается путь "\\server\printer2". Не нужно перечислять все компьютеры сети, достаточно указать вариант Case Else, содержащий путь "\\server\printer3" к общему принтеру для всех остальных систем, кроме "Gamma" и "Geektoy". Если удалить строку Case Else, и переданное значение ComputerName не совпадает ни с одним из вариантов Case, то сценарий просто переходит к первой строке после End Select. Чтобы использовать сценарий, показанный в Листинге 2, на практике, следует заменить пути к принтерам и имена компьютеров путями и именами конкретной сети.
Составив похожий сценарий, можно выбирать принтеры в зависимости от ID пользователя. В качестве аргумента Select Case применяется имя зарегистрированного пользователя (значение oNetwork.UserName). В Web-Листинге 1 приведен оператор Select Case для такого сценария. Во всем остальном сценарий не отличается от Листинга 2.
Web-Листинг 1: Сценарий соединения с принтером по имени зарегистрированного пользователя.
Select Case oNetwork.UserName
Case "Lisa"
sPrintPath = "\\server\printer1"
Case "Bruce"
sPrintPath = "\\server\printer2"
Case Else
sPrintPath = "\\server\printer3"
End Select
Пользовательские соединения неустойчивы. Например, регистрируется пользователь Лиза, и оператор из Web-Листинга 1 отображает ее принтер; затем Лиза завершает сеанс связи. После этого на том же компьютере регистрируется пользователь Брюс. Оператор отображает его принтер, и он увидит только свой принтер, а не свой принтер вместе с принтером Лизы. Но чтобы отменить соединение принтера с конкретным компьютером или соединение, которое не было заменено другим соединением, необходимо удалить принтер вручную или вызвать метод RemovePrinterConnection объекта WshNetwork, указав в качестве аргумента путь к принтеру. Этот вызов можно вставить в сценарий выхода для компьютеров Windows 2000.
Соединения, зависящие от местонахождения
Сценарий в Листинге 2 подсоединяет компьютер к принтеру, который выбирается в зависимости от имени компьютера. Но как связать группу компьютеров, расположенных в одном месте, с принтером, находящимся в непосредственной близости от них - и повторить эту процедуру для разных мест? Можно дополнить Листинг 2 оператором Select Case c отдельным вариантом для каждого компьютера, или подготовить новую версию сценария для компьютеров каждой территориальной группы. В большой сети любое из этих решений может оказаться неудобным. Но существует и третий способ: составить сценарий, который запрашивает у пользователя его местонахождение (например, библиотека, третий этаж), а затем соединяет машину пользователя с ближайшим принтером. Для такого сценария необходимы действия пользователя, но если человек знает, в какой части здания он находится, и получат от программы соответствующий запрос, то сценарий будет работоспособным. Сценарий можно запрограммировать на завершение работы или повторный запрос, если пользователь указал несуществующее место.
Сценарий, показанный в Листинге 3, выводит на экран диалоговое окно с просьбой указать местонахождение пользователя.
Листинг 3. Сценарий соединения с принтером по территориальному признаку.
Option Explicit
Dim oNetwork, sPrintPath, sLocate
Set oNetwork = CreateObject("WScript.Network")
' Begin callout A
sLocate =_
InputBox("Where are you? Type 'Lab', 'Library', or 'Reception'.")
' End callout A
Select Case sLocate
Case "Lab"
sPrintPath = "\\server\printerA"
Case "Library"
sPrintPath = "\\server\printerB"
Case "Reception"
sPrintPath = “\\server\printerC"
Case Else
MsgBox("That is not a valid choice. The script will exit.") :WScript.Quit
End Select
oNetwork.AddWindowsPrinterConnection sPrintPath
oNetwork.SetDefaultPrinter sPrintPath
В окне ввода VBScript всегда есть кнопки OK и Cancel, но программист должен сформулировать запрос и может указать два дополнительных необязательных аргумента (заголовок и стандартный текст), придав окну индивидуальный вид. Заголовок отображается в панели заголовка, а стандартный текст - строка, которая выводится в текстовом поле окна при первом обращении пользователя к сценарию. Код у метки A в Листинге 3 задает приглашение для диалогового окна. В исходном тексте не заданы заголовок и стандартный текст, но если программист хочет ввести их, то приглашение, заголовок и стандартный текст нужно разместить в следующем порядке:
InputBox(prompt,
title, default)
Переменные prompt и default – строковые, поэтому их необходимо заключить в кавычки (").
Затем оператор Select Case анализирует введенные пользователем данные и выбирает принтер для соединения. Если пользователь ввел неверное значение, то сценарий переходит к оператору Case Else: функция MsgBox выводит составленное программистом текстовое сообщение, а метод WScript.Quit завершает работу сценария. Другими словами, сценарий не устанавливает соединение с принтером, если пользователь ввел некорректные данные. Другой вариант - установить соединение с каким-нибудь принтером или (что несколько усложняет наш пример) попросить пользователя повторить ввод (на тот случай, если в первый раз была допущена опечатка). В любом случае необходимо как-то завершить сценарий и присвоить какое-нибудь значение переменной sPrinterPath перед вызовом метода AddWindowsPrinterConnection. Иначе произойдет ошибка при попытке установить соединение с принтером без пути в качестве аргумента.
С помощью групповой политики Windows 2000 можно назначить принтеры, выбираемые по умолчанию, или блокировать утилиту Add Printers панели управления. Кроме того, можно спрятать разделяемые принтеры (добавив в конце их имени знак $), чтобы пользователи могли подключиться только к принтерам, программно связанным с их именем, компьютером или местоположением. В результате сотрудники лаборатории A не пошлют по ошибке свои документы на принтер в лаборатории Z, расположенной в другом здании.
Свойства и методы WshNetwork - не единственный способ управлять принтерами через VBScript. Можно воспользоваться инструментом PrintAdmin из комплекта ресурсов Windows 2000 или интерфейсами WMI (Windows Management Instrumentation) и Active Directory Service Interface (ADSI). Но использование WshNetwork - самый простой способ. А о WMI и ADSI мы поговорим немного позднее.
Криста Андерсон - независимый автор и консультант, редактор журнала Windows NT Magazine. Ее последняя книга, вышедшая в издательстве Sybex, — Mastering Local Area Networks. С автором можно связаться по адресу: candersn@adelphia.net.
-------------------------------------------------------------------------------- |
|
Вернуться к началу |
|
 |
Аспирин
Зарегистрирован: 25.06.2004 Сообщения: 7
|
Добавлено: Пн Июн 28 2004 16:42 Заголовок сообщения: |
|
|
Мдя, информация конечно ценная про скрипты и про Кристу Андерсон, тока с точностью до наоборот. У меня пользователи никуда не бегают, у меня принтер бегает от одного компа к другому.
Итого:
1. Если при перемещении принтера от одного компа к другому сохранить имя компьютера в сети, то юзеры ничего не заметят.
2. Если юзерам при подключении принтера вводить IP адрес вместо имени компьютера с принтером и потом сохранять этот IP при перемещениях принтера, то юзера тоже ничего не заметят. |
|
Вернуться к началу |
|
 |
Avalanche
Зарегистрирован: 10.03.2004 Сообщения: 95 Откуда: г.Норильск
|
Добавлено: Вт Июн 29 2004 05:19 Заголовок сообщения: |
|
|
Цитата: | Итого:
1. Если при перемещении принтера от одного компа к другому сохранить имя компьютера в сети, то юзеры ничего не заметят.
2. Если юзерам при подключении принтера вводить IP адрес вместо имени компьютера с принтером и потом сохранять этот IP при перемещениях принтера, то юзера тоже ничего не заметят. |
Напоминает размышления Вини Пуха о пчёлах и мёде  |
|
Вернуться к началу |
|
 |
Алекс
Зарегистрирован: 25.06.2003 Сообщения: 2206 Откуда: Москва
|
Добавлено: Вт Июн 29 2004 11:17 Заголовок сообщения: |
|
|
Avalanche писал(а): | Напоминает размышления Вини Пуха о пчёлах и мёде  |
Сильно!  _________________ Удачи! |
|
Вернуться к началу |
|
 |
|