Настройка принтера по умолчанию для пользователя сервера терминалов при входе в систему
Я управляю терминальным сервером в нашей производственной среде, который обслуживает множество разных компьютеров, которые подключаются под одним и тем же общим идентификатором. Используя библиотеку Cassia, я легко могу программно перехватить все, что мне нужно знать об удаленных соединениях, но я пока не знаю, как мне применить изменения к принтеру для этого пользователя. Моими отличительными критериями будут названия ПК, с которого он / она подключается. В частности, меня интересуют 4 машины, а остальные будут игнорироваться.
Короче говоря, мне нужно захватить, когда эти конкретные компьютеры входят в систему, и установить принтер по умолчанию для них до конца их сеанса.
На локальном уровне несложно изменить программный принтер по умолчанию. Кажется, мне не удается сменить принтер по умолчанию для сеанса пользователя на удаленном терминальном сервере с другого сервера утилит.
2 ответа
Это устанавливает принтер по умолчанию для текущего пользователя на терминальном сервере.
$strPrinter = "\\ITPG-FP01\Kyocera A4 ZW"
$printer = Get-WmiObject -Class Win32_Printer | Where-Object { $_.Name -eq $strPrinter }
if ($printer) {
$deviceId = $printer.DeviceID
$network = New-Object -ComObject WScript.Network
$network.SetDefaultPrinter($deviceId)
}
Самый простой способ сделать это - создать скрипт, который будет запускаться при входе в систему, и настроить принтер через WMI на Win32_Printer.SetDefaultPrinter
,
Вот пример того, как это сделать в простом 3-строчном скрипте powershell
$Printers = Get-WmiObject -Class Win32_Printer
$Printer = $Printers | Where{$_.Name -eq 'Name Of Printer To Use'}
$Printer.SetDefaultPrinter()
Сохраните это в .ps1
файл и установите политики сервера терминалов для запуска сценария при входе в систему.
Если вы не хотите использовать фиксированное имя в скрипте, его можно легко изменить для запроса другого внешнего источника, просто замените 'Name Of Printer To Use'
с переменной, которая содержит имя, к которому вы хотите подключиться.
SetDefaultPrinter
метод поддерживается в Windows Vista/Server 2003 и выше.