Windows 7login脚本 – 设置默认打印机

我一直负责排除客户端上的login脚本,其中包括设置默认打印机。 login脚本是使用打印机设置的vbscript

Set WshNetwork = CreateObject("WScript.Network") ... WshNetwork.SetDefaultPrinter(strPrinter) 

build立起来的技术人员说这是在工作。 客户说不是。 我的睾丸显示帽子只是间歇性的工作。 目前我有这样的事情:

 WScript.Echo GetDefaultPrinter For i = 0 to 50 if strPrinter <> GetDefaultPrinter then WshNetwork.SetDefaultPrinter(strPrinter) end if Next 'WshNetwork.SetDefaultPrinter("Fax") Msgbox("Called WshNetwork.SetDefaultPrinter(" & strPrinter & ")") WScript.Echo GetDefaultPrinter Function GetDefaultPrinter sComputer = "." Set oWMIService = GetObject("winmgmts:\\" & sComputer & "\root\cimv2") Set colItems = oWMIService.ExecQuery("Select * from Win32_Printer",,48) For Each oItem in colItems If (oItem.Attributes And 2^(3-1)) = 4 Then sDefault = oItem.Name Exit For End If Next GetDefaultPrinter = sDefault End Function 

这使我可以在尝试更改之前和之后检查默认打印机。 循环似乎有所帮助,但还没有完全解决这个问题。 有时新的打印机设置正确,有时我可以注销并重新打开,它不能设置相同的默认打印机。 澄清一下,我不是全职pipe理员。 这种技术过时了吗? 我应该使用其他设置默认打印机?

编辑:另外,我们需要记住用户在用户会话期间可能设置或更改的默认打印机,然后将该打印机设置为默认打印机

由于您拥有Server 2008和Windows 7,因此您可以通过组策略首选项设置默认打印机。 我们现在正在使用,在我们的电脑实验室设置默认打印机。 它确实需要为这些容器创build一个GPO,但是你可以对它们进行细化。

在组策略编辑器中,策略位于…

用户configuration – >首选项 – >控制面板设置 – >打印机

在那里添加打印机。 其中一个checkbox是“make default printer”。 真的行。

而不是使用networking对象,我直接运行命令:rundll32 printui.dll,PrintUIEntry / y / n“”似乎工作正常