Windows 7登入腳本--設定預設印表機

Windows 7登入腳本--設定預設印表機

我的任務是對客戶端網站的登入腳本進行故障排除,該腳本除其他外還設定預設印表機。登入腳本是 vbscript,使用設定印表機

Set WshNetwork = CreateObject("WScript.Network")

...

WshNetwork.SetDefaultPrinter(strPrinter)

設定它的技術人員說它正在工作。顧客說不是。我的測試顯示它只能間歇性地工作。目前我有這樣的東西:

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

這讓我可以在嘗試更改預設印表機之前和之後檢查它。循環似乎有所幫助,但並沒有完全解決問題。有時新印表機設定正確,有時我可以登出並再次打開,但無法設定相同的預設印表機。為了澄清,我是不是全職管理員。這種技術已經過時了嗎?我應該使用其他東西來設定預設印表機嗎?

編輯:此外,我們需要記住用戶在用戶會話期間可能設定或更改的預設印表機,然後將該印表機設定為預設印表機

答案1

由於您擁有 Server 2008 和 Windows 7,因此您可以透過群組原則首選項設定預設印表機。我們現在正在使用它來設定電腦實驗室中的預設印表機。它確實需要為這些容器創建一個 GPO,但您可以非常精細地使用它們。

在群組原則編輯器中,該策略位於...

使用者配置 -> 首選項 -> 控制面板設定 -> 印表機

在那裡添加印表機。複選框之一是“設定預設印表機”。真的行。

答案2

我沒有使用網路對象,而是直接運行命令: rundll32 printui.dll,PrintUIEntry /y /n "" 似乎運作得很好

相關內容