Windows PowerShell можно использовать для управления из WSH принтерами с помощью WMI и объекта WScript.Network COM. При демонстрации выполнения отдельных задач будут использованы оба типа средств.
Получение списка подключений к принтерам
Получить список принтеров, установленных на компьютере, проще всего при помощи класса WMI Win32_Printer:
Get-WmiObject -Class Win32_Printer -ComputerName
Создать список принтеров можно также при помощи COM-объекта WScript.Network, который обычно используется в WSH-сценариях:
(New-Object -ComObject WScript.Network).EnumPrinterConnections()
Эта команда возвращает простую коллекцию строк имен портов и принтерных устройств без различительных меток, что затрудняет интерпретацию.
Добавление сетевого принтера
Чтобы добавить новый сетевой принтер, используйте объект WScript.Network:
(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection("\\Printserver01\Xerox5")
Установка принтера по умолчанию
Чтобы установить принтер по умолчанию при помощи службы WMI, найдите принтер в коллекции Win32_Printer и вызовите метод SetDefaultPrinter:
(Get-WmiObject -ComputerName . -Class Win32_Printer -Filter "Name='HP LaserJet 5Si'").SetDefaultPrinter()
Несколько проще работа с объектом WScript.Network, у которого есть метод SetDefaultPrinter, принимающий в качестве аргумента только имя принтера:
(New-Object -ComObject WScript.Network).SetDefaultPrinter('HP LaserJet 5Si')
Удаление подключения к принтеру
Чтобы удалить подключение принтера, используйте метод WScript.Network RemovePrinterConnection:
(New-Object -ComObject WScript.Network).RemovePrinterConnection("\\Printserver01\Xerox5")