我正在使用 WMI 作为域管理员连接到我的实验室机器。然后我运行这个命令行来创建一个打印机:
cscript C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs -a -p Test002 -m "Canon Inkjet iP100 series" -r FAKE002
这很好用。
然后我运行此命令行将打印机设置为默认值:
cscript C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs -t -p Test002
那根本行不通。
一些相关的细节:
- 两条命令行都是用同样的方法执行的
- 如果我通过具有本地范围的 WMI 运行第二个命令行,则它可以正常工作
- 我正在运行脚本的用户在机器上具有管理员权限,并且可以手动设置默认打印机
- 我正在创建远程范围的用户参数属于域管理员。
- 当我远程运行脚本时,它会报告成功。没有看到错误。
我完全不明白为什么使用远程 WMI 调用具有不同参数的相同脚本不起作用。我花了几个小时搜索并没有找到足够的答案。
这是我用来创建连接到远程机器的范围的方法:
public static ManagementScope CreateScope() {
string nameSpace = @"\\" + Parameters.FQDN + @"\root\cimv2";
ManagementPath path = new ManagementPath(nameSpace);
ConnectionOptions Connection = new ConnectionOptions();
Connection.Username = Parameters.User; // Username value includes the domain
Connection.Password = Parameters.Password;
Connection.Impersonation = ImpersonationLevel.Impersonate;
return new ManagementScope(path, Connection);
}
谁能告诉我为什么第二个命令行没有将远程机器上的打印机设置为默认打印机?