0

我在我们的生产环境中管理一个终端服务器,它为许多不同的机器提供服务,这些机器以相同的通用 ID 连接。使用 Cassia 库,我可以轻松地以编程方式捕获我需​​要了解的有关远程连接的所有信息,但我仍然对如何将打印机更改应用到该用户感到困惑。我的区别标准将是他/她连接的 PC 的名称。我特别感兴趣的有 4 台机器,其余的将被忽略。

简而言之,我需要捕获这些特定 PC 登录的时间,并为它们在会话的剩余时间里设置默认打印机。

在本地级别,以编程方式更改默认打印机并不困难。我似乎在努力从另一个实用程序服务器更改远程终端服务器上用户会话的默认打印机。

4

1 回答 1

0

最简单的方法是创建一个设置为在登录时运行的脚本,并通过 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'为包含您要连接的名称的变量即可。

Windows Vista/Server 2003 及更高版本支持该SetDefaultPrinter方法。

于 2015-06-12T21:00:22.763 回答