пятница, 27 мая 2011 г.

list printer drivers перечислить принтеры установленные в системе

После перемещения системных блоков компьютеров или соответственно печатающих устройств, да и просто тестовых инсталляций-деинсталляций в системе остаются неиспользуемые драйвера принтеров. Удалить принтер, используя оснастку “Принтеры и факсы” недостаточно. Если, спустя продолжительное время, потребовалась вновь установка (возможно и версия драйвера к этому времени поновее и порт может быть иным), автоматически “подхватится” драйвер имеющийся в системе. Временами необходимо избежать этой ситуации и выполнить полную новую инсталляцию драйвера. Это несложно сделать с помощью prndrvr.vbs, как правило, он находится в папке WINDOWS\system32\. Скрипт имеет хорошую справку и позволяет просматривать и управлять драйверами принтеров в системе.

Его можно использовать и для удаленного просмотра-удаления принтеров. Особенностью приводимого ниже скрипта - предварительное отключение firewall рабочей станции (в своих локальных сетях их отключаю только для выполнения административных функций)

listprinterdrivers.cmd

  @echo off
  cls
  if "%~1"=="" goto HELP
  if "%~1"=="?" goto HELP
  if "%~1"=="/?" goto HELP
  if "%~1"=="-?" goto HELP
::  считываю букву диска, которую система присвоила Flash-disk,
::  с него запускаются эти командные файлы и на нем в каталоге
::  х:\tools лежат вспомогательные программы,
::  и добавляю к переменной %PATH% путь к этим программам
  set path=%~d0/tools;%path%
::  передать параметром имя рабочей станции
  psexec \\%1 netsh firewall set opmode mode=disable
  cscript C:\WINDOWS\system32\prndrvr.vbs -l -s %1
::  удалить не используемые принтера
rem  cscript C:\WINDOWS\system32\prndrvr.vbs -x -s %1
  psexec \\%1 netsh firewall set opmode mode=enable
  echo.
  echo.
  pause
goto :EOF
:HELP
  echo.
  echo.
  echo  Использование:
  echo.
  echo   listprinterdrivers.cmd [station] или ?, /?, -? 
  echo.
  echo   где [station] - имя станции
  echo.
  echo  запускать из-под учетной записи с правами администратора
  echo.
  echo.
  pause
:END

См. также:

Комментариев нет:

Отправить комментарий