В статье «Посистемное подключение принтеров и дополнение PMPMgr» (http://www.osp.ru/win2000/2006/08/3938897/) я представил вашему вниманию сценарий PMPMgr.wsc и сценарий для командной строки PMPMgr.js, которые упрощают управление общедоступными принтерами для одной или нескольких систем. Если вы ранее не использовали общедоступные принтеры, поясню, что общедоступный принтер - это сетевое подключение к принтеру, отображаемое для всех пользователей компьютера (в отличие от мастера Add Printer, который добавляет принтер только в профиль текущего пользователя.

Консольный сценарий, представленный мной в предыдущей статье, успешно справлялся с поставленной задачей, в особенности при управлении общедоступными принтерами на нескольких компьютерах, благодаря тому, что он поддерживал чтение списков компьютеров и принтеров из текстовых файлов. Этот сценарий очень полезен при управлении множеством принтеров, однако мне потребовалось более простое средство для тех случаев, когда необходимо управлять общедоступными принтерами на одном компьютере. Для решения этой задачи я разработал приложение HTML (HTA), PMPMgr .hta, которое обеспечивает графический интерфейс для работы с компонентом PMPMgr.wsc.

Общедоступные принтеры

Общедоступные принтеры весьма полезны в тех случаях, когда требуется назначить принтеры для компьютера в целом, а не для каждого пользователя по отдельности. Посредством общедоступного принтера администратор может добавить принтер сразу для компьютера, и он будет доступен вне зависимости от того, кто авторизовался на данном компьютере. Поскольку общедоступные принтеры отображаются для всех пользователей, входящих в систему, они дают системным администраторам ощутимые преимущества:

  • Общедоступные принтеры могут управляться удаленно (просмотр, добавление и удаление).
  • Новым пользователям не придется объяснять, как добавлять принтеры в их профили.
  • Процесс обновления сервера печати упрощается, так как пользователям не приходится удалять устаревшие соединения с принтерами и добавлять их с нового сервера печати - администратор может сделать это удаленно.

Графический интерфейс для общедоступных принтеров

Как я отметил в упомянутой выше статье, общедоступные принтеры реализованы (но подробно не описаны) в системе Windows 2000 и более поздних версиях, а повышение их функциональности потребует от администратора ввода чрезвычайно громоздких команд из библиотеки Rundll32. Компонент сценария PMPMgr. wsc является оболочкой для команд библиотеки Rundll32 и предоставляет интерфейс к сценариям, чтобы упростить управление общедоступными принтерами на локальном или удаленном компьютере. Приложение PMPMgr.hta предоставляет дружественный интерфейс для компонента сценария.

Компонент PMPMgr.wsc и связанные с ним файлы HTA требуют наличия системы Windows 2000 или более поздних версий Windows. Вы можете загрузить встраиваемый модуль PMPMgr из статьи. В Таблице 1 перечислены файлы, формирующие данное приложение, и приведено краткое описание каждого файла.

Имя файла

Описание

PMPMgr.wsc

Сценарий, предназначенный для добавления или удаления общедоступных принтеров и получения информации об общих принтерах с сервера печати

PMPMgr.hta

Основное приложение с графическим интерфейсом

GetPrinters.hta

Приложение для поддержки PMPMgr.hta. Не работает отдельно от основного приложения

VerifyService.hta

Приложение для поддержки PMPMgr.hta. Не работает отдельно от основного приложения

Таблица 1: Файлы приложения PMPMgr.hta

Для использования приложения необходимо сделать следующее:

  1. Установить и запустить приложение
  2. Выбрать целевой компьютер
  3. Добавить общедоступные принтеры с сервера печати на целевой компьютер или удалить принтеры с компьютера.

Далее я расскажу, как удалить приложение.

Шаг 1: Установка и запуск приложения

Чтобы установить и запустить приложение PMPMgr.hta, нужно сначала сохранить его содержимое в подходящую папку на компьютере. В приведенной выше Таблице 1 перечислены файлы, необходимые запуска приложения.

Если на вашем компьютере установлена более старая версия компонента PMPMgr.wsc, надо удалить ее из реестра, прежде чем переходить к следующему шагу. Для этого щелкните правой кнопкой мыши на старом файле PMPMgr.wsc в проводнике Windows и выберите пункт меню Unregister. Обновленная версия компонента PMPMgr.wsc содержит несколько улучшений, необходимых для работы с новым приложением. Старый сценарий PMPMgr.js будет работать без каких-либо изменений. Для выполнения этого шага вы должны быть авторизованы как администратор.

Внесите в реестр новый компонент PMPMgr.wsc. Для этого щелкните правой кнопкой на новом файле PMPMgr.wsc в проводнике Windows и выберите пункт меню Register. Для выполнения этого шага вы должны быть авторизованы как администратор.

Запустите приложение PMPMgr.hta, дважды щелкнув на нем в проводнике Windows или набрав его имя в командной строке.

Шаг 2: Выбор Компьютера

На Рисунке 1 изображено основное окно приложения PMPMgr.hta. Оно отображает название текущего компьютера (то есть компьютера, на который вы установили приложение) в текстовом поле. Для выбора другого компьютера, на котором необходимо добавить или удалить общедоступные принтеры, щелкните на кнопке Change и введите новое имя компьютера. Если приложение успешно соединяется с указанным компьютером (оно проверяет, запущена ли на нем служба буферизации данных для принтера), оно меняет текущий компьютер и обновляет значение текстового поля.

 

Рисунок 1: Основное окно приложения PMPMgr.hta

Шаг 3: Добавление общедоступных принтеров с сервера печати или удаление общедоступных принтеров

Для добавления общедоступных принтеров с сервера печати щелкните на кнопке Print Server и введите имя сервера печати. Приложение PMPMgr.hta получает список общих принтеров для данного сервера печати и добавляет их в список выбора принтера, расположенный в центральной части окна.

Приложение PMPMgr.hta сравнивает список общих принтеров данного сервера печати со списком общедоступных принтеров, установленных на текущем компьютере. В списке отображаются только принтеры, которые еще не установлены на компьютере. Если сервер печати не содержит общих принтеров, или если все принтеры сервера уже установлены на компьютере, приложение PMPMgr.hta выдаст сообщение об ошибке.

Выберите принтер(ы), который вы хотите добавить, и щелкните на кнопке Apply. Вы можете использовать клавиши клавиатуры Ctrl и Shift для выбора нескольких принтеров. Щелкните на кнопке Clear List, если хотите очистить список.

Для удаления одного или нескольких общедоступных принтеров с целевого компьютера выберите пункт Delete из раскрывающегося меню в верхнем левом углу окна приложения. Если вы выбрали пункт Delete, кнопки Print Server и Clear List будут недоступны, так как они имеют смысл только при добавлении общедоступных принтеров. Поле списка отображает общедоступные принтеры, установленные на целевом компьютере, если таковые имеются. Для удаления одного или нескольких из приведенных общедоступных принтеров выберите их из списка и щелкните на кнопке Apply. Вы можете использовать клавиши Ctrl и Shift для выбора нескольких принтеров.

Что необходимо знать

Если вы хотите удалить приложение, сначала удалите компонент PMPMgr.wsc из реестра. Щелкните правой клавишей на файле в проводнике Windows и выберите пункт меню Unregister. После этого можно удалить файлы приложения.

Ниже перечислены несколько проблем, с которыми вы можете столкнуться при работе с приложением PMPMgr.hta:

  • Если при запуске приложения PMPMgr.hta вы получаете сообщение об ошибке «Automation server can't create object»t, значит, компонент PMPMgr.wsc не был добавлен в реестр компьютера.
  • Требуется запускать приложение PMPMgr.hta из-под учетной записи, которая является членом локальной группы Administrators на любом компьютере, на котором вы хотите использовать службу PMPMgr.hta для управления общедоступными принтерами. Если у вас нет достаточных разрешений, приложение PMPMgr.hta выдаст сообщение об ошибке.
  • Если в тот момент, когда вы добавляете или удаляете принтеры, пользователь авторизован в системе, изменения не будут отображены до тех пор, пока либо пользователь не покинет систему и кто-нибудь повторно не авторизуется в ней, либо вы не перезагрузите службу буферизации данных для принтеров.

Я обнаружил, что общедоступные принтеры решили большинство проблем, связанных с управлением принтерами. Данный сценарий и приложение HTML упрощают использование преимуществ общедоступных принтеров в сети.

 


Листинг PMPMgr.wsc

 

 

    description="PMPMgr.wsc: Manages per-machine printers"

    progid="Penton.PMPMgr"

    version="1.5"

    classid="{DEB04939-C581-4342-8CBC-6553434C3226}"

  />

  Penton.PMPMgr

 

 

   

     

   

   

   

     

   

   

     

   

   

     

   

   

     

   

 

 

 

 


Листинг VerifyService.hta

  "http://www.w3.org/TR/html4/loose.dtd">

  applicationname="VerifyService.hta"

  version="1.0"

  border="dialog"

  caption="no"

  contextmenu="no"

  maximizebutton="no"

  selection="no"

  scroll="no"

  showintaskbar="no"

/hta:application>

Please Wait

 

   

 

 


Листинг . GetPrinters.hta

  "http://www.w3.org/TR/html4/loose.dtd">

  applicationname="GetPrinters.hta"

  version="1.0"

  border="dialog"

  caption="no"

  contextmenu="no"

  maximizebutton="no"

  selection="no"

  scroll="no"

  showintaskbar="no"

/hta:application>

Please Wait

 

   

 

 


Листинг PMPMgr.hta

  "http://www.w3.org/TR/html4/loose.dtd">

  applicationname="Per-Machine Printer Manager"

  version="1.0"

  border="dialog"

  caption="yes"

  contextmenu="no"

  maximizebutton="no"

  scroll="no"

  selection="no"

/hta:application>

Per-Machine Printer Manager