打印機對我們每一個人來說都是習以爲常的東西了,給你一條遠程打印機共享路徑,你只要輕輕的雙擊想安裝的打印機圖標,等上個三五秒打印機就安裝好,這臺打印機就任你擺佈了。但相對我們IT人員來說,全面的自動化將是我們的目標,如果能夠讓打印機聽我們的話,讓用戶在登錄客戶端時就自動將預設的打印機安裝好,那是多麼快意的事啊。這樣一來既可以解除那些只知Word、Excel的用戶們找不到打印機的焦慮,也可以讓我們這些IT人員鬆口氣喝杯茶了。
1、下圖是我簡單畫出的現在企業常見網絡架構,我接下來將以此爲例開始深入分析如何配置客戶端自動添加打印機操作。
其中此圖中所列DC1與DC2均安裝Windows2008R2操作系統,所有客戶端可爲不同版本操作系統(XP、Vista 32/64位、Win7 32/64位等)。
2、首先在DC2上安裝打印機並將其進行共享。請注意因爲DC2是一臺Windows2008R2服務器,此時安裝的打印機驅動只包含了64位版本。(如果不會安裝網絡打印機,那請參考《Windows Server應用之32位系統如何安裝64位打印機驅動》我的這篇博文。)
3、因爲我們面對的客戶端環境中即有32位又有64位的操作系統,所以我們必須再次將32位的打印機驅動安裝上來。
在打印機上點擊右鍵選擇“打印機屬性”--“共享”--“其它驅動程序”--勾選“X86”並點擊“確定”後按提示安裝32位的打印機驅動。
4、在DC2中安裝完打印機後,我們再返回到DC1中,在AD中創建相應的OU、用戶和以部門爲單位的組。(當然此環境一般在企業環境中是已經搭建好的。)
5、建立一個打印機組的OU並按每臺打印機創建一個打印機組。(這樣便於在用戶桌位比較混亂,而用戶又要使用多臺打印機時,我們可以安排哪些用戶打印這臺,哪些用戶使用那一臺打印機,這樣在使用腳本時就不容易出錯。)
6、將需要使用某臺打印機的用戶加入到相應的打印機組中,當然一個用戶可以包含在多個組中。
7、當DC1和DC2中用戶、組和打印機共享都搭建完畢後,我們就得靜下心來寫腳本了。(你可以省心了,只要把下面的代碼拷貝到記事本中並將其保存爲UserLogon.vbs文件待用就行了。如果是你自己學着寫,那可記得要反覆的測試,一段錯誤的腳本可能讓你前功盡棄哦。)
'=====================================================================
' 此腳本用於客戶端自動增加打印機
'=====================================================================
'=====================================================================
' 定義變量
'=====================================================================
On Error Resume Next
Dim WshShell, WshNetwork
Dim strGroup, oUser, CurrentUser, strUser
'=====================================================================
' 設置域用戶和組
'=====================================================================
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set oUser = CreateObject("ADSystemInfo")
Set CurrentUser = GetObject("LDAP://" & oUser.UserName)
strGroup = LCase(Join(CurrentUser.MemberOf))
strUser = LCase(WshNetwork.UserName)
'=====================================================================
' 定義打印機
'=====================================================================
Printer_HR = "\\DC2\Printer_HR"
Printer_PM = "\\DC2\Printer_PM"
Printer_MRP = "\\DC2\Printer_MRP"
'=====================================================================
' 刪除原打印機
'=====================================================================
'msgbox (strgroup)
WshNetwork.RemovePrinterConnection "\\DC2\Printer_HR"
WshNetwork.RemovePrinterConnection "\\DC2\Printer_PM"
WshNetwork.RemovePrinterConnection "\\DC2\Printer_MRP"
'=====================================================================
' 通過域用戶和組來增加新打印機
'=====================================================================
If InStr(strGroup,"cn=printer_mrp") then
'msgbox("Printer_mrp")
Wscript.sleep 200
WshNetwork.AddWindowsPrinterConnection Printer_PM
WshNetwork.AddWindowsPrinterConnection Printer_MRP
WshNetwork.AddWindowsPrinterConnection Printer_HR
WshNetwork.SetDefaultPrinter Printer_HR
End If
If InStr(strGroup,"cn=printer_pm") then
'msgbox("Printer_pm")
Wscript.sleep 200
WshNetwork.AddWindowsPrinterConnection Printer_A3
WshNetwork.SetDefaultPrinter Printer_A3
End If
If InStr(strUser, "lis") Then
Wscript.sleep 200
WshNetwork.AddWindowsPrinterConnection Printer_MRP
WshNetwork.AddWindowsPrinterConnection Printer_HR
WshNetwork.SetDefaultPrinter Printer_HR
End If
'=====================================================================
' 清空定義的變量值
'=====================================================================
WScript.Sleep 100
Set WshShell = Nothing
Set WshNetwork = Nothing
Set oUser = Nothing
Set CurrentUser = Nothing
Wscript.Quit
'辛辛苦苦完成了上面的腳本,大家是不是可以爲我鼓鼓掌啊。
8、接下來我們需要在DC1上打開組策略管理器,找到“組策略對象”點擊右鍵選擇“新建”,並將此新組策略命名爲“ADD PRINTER”。
9、選擇“ADD PRINTER”組策略並點擊右鍵選擇“編輯”,依次展開“用戶配置”--“策略”--“Windows設置”--“腳本(登錄/註銷)”,再雙擊“登錄”選擇“添加”再點擊“瀏覽”。
10、將剛纔寫的腳本UserLogon.vbs文件拷貝到“\\dc1\SYSVOL\gr.com\Policies\{2F556D17-E689-439E-99CC-B7847F09EBC6}\User\Scripts\Logon”此文件夾,當然你也可以選擇其它的共享路徑,但一般情況下不建議更改,而且此路徑一定要使用絕對路徑,否則在客戶端可能找不到此路徑。
11、編輯好“ADD PRINTER”組策略後,我們需要在CNN這個OU上鍊接此組策略對象。在“CNN”上點擊右鍵選擇“鏈接現有GPO”--選擇“ADD PRINTER”--“確定”,我們將可以看到“ADD PRINTER”已經被連接,狀態爲“已啓用”。
12、關閉“組策略管理器”後,爲了使用策略立即生效,我們最好打開CMD窗口並輸入“gpupdate”命令來更新策略。
13、當策略更新完後,我們使用域用戶登錄後,將可以在“打印機和傳真”窗口看到相應打印機已經被安裝。
14、好了,這樣一來我們的自動添加打印機工作就完成,現在每個用戶在登錄時將自動添加上你給他指的打印機了。
注:此腳本可以對用戶、組(打印機組、部門所設組)進行相應設置,Windows2003中同樣可以實現,只是組策略的應用方式不同而已,大家可以慢慢研究,有任何問題我們可以互相探討。
本文出自 “IT技術交流” 博客,轉載請與作者聯繫!