話說現在大多數公司應該都還是用Windows XP,配合Activce Directory可以執行許多自動化工作,像是指派網路磁碟機…等等。然而在Notebook之後,開始使用Windows Vista Business,卻發現沒辦法自動連線網路磁碟機;但Windows XP 卻沒問題。
這問題困擾我一段時間了,對我們IT人員沒有太大問題,手動連線就好;加上絕大多數使用者也還是在用Windows XP,直到今天再次尋求解決方案,終於在TechNet 找到了,原來是UAC在作怪:
Windows Vista 設定的使用
群組原則指令碼有可能因使用者帳戶控制而失敗
使用者帳戶控制 (UAC) 的主要用途在於減少作業系統所承受的風險與攻擊面。為達此目的,UAC 要求所有使用者以標準使用者模式執行。這種限制可將使用者進行變更所造成的電腦不穩定,或是意外遭受網路病毒攻擊 (由已感染其電腦、且未被偵測到的惡意軟體 (亦稱為惡意程式碼) 散播) 等可能性降到最低。
透過 UAC,您將可以有限的權限執行大部分的應用程式、元件與程序,但特定系統管理工作與應用程式功能可能會需要「提高權限」。為達此目的,Windows 針對每位使用者使用兩種存取權杖:有限與提高權限的存取權仗。存取權仗可識別使用者、使用者的群組以及使用者的權限。系統會使用存取權仗控制對安全物件的存取,以及使用者在本機電腦上執行各種系統相關作業的能力。
提高權限的權仗對本機系統管理員而言包含並可啟用所有系統管理權限。當本機系統管理員嘗試執行系統特定工作或系統管理工作時,UAC 會要求他們使用提高權限的權仗。有限權仗對本機系統管理員而言包含所有系統管理權限,但這些權限會停用。這可讓 Windows 檢視系統管理使用者與一般使用者,以決定是否提高其權限。
根據預設,所有登入 Windows Vista 的使用者,都會使用其完整權仗處理群組原則與登入指令碼。但他們會使用有限使用者權仗載入桌面及所有後續程序。非系統管理的有限與提高權限的權仗在權限與群組方面大致相同。因此,以非系統管理有限使用者權仗啟動的程序,將可檢視以非系統管理的提高權限的權仗啟動的程序。在檢視以提高權限的權仗啟動的程序時,檢視應用程式並不會要求提高權限,因此 Windows 允許前述行為。
Windows 對於本機登入的系統管理員,也是採取相同的作法。群組原則與登入指令碼會使用提高權限的使用者權仗進行處理,而桌面與所有後續程序則使用有限權仗。但有限與提高權限的使用者權仗之間的權限有所不同。因此,Windows 會限制以有限權仗啟動的程序,使其無法與使用提高權限的權仗啟動的程序共用資訊。
UAC 可能會使群組原則登入指令碼無法正常運作。例如,假設網域環境中的群組原則物件含有對應網路磁碟機的登入指令碼。一名非系統管理使用者從 Windows Vista 電腦登入網域。在 Windows Vista 載入桌面後,非系統管理使用者啟動了 Windows 檔案總管。這名使用者會看見其對應磁碟機。在相同的環境下,一名系統管理使用者從 Windows Vista 電腦登入網域。在 Windows Vista 載入桌面後,系統管理使用者啟動了 Windows 檔案總管。但這名使用者並不會看見其對應磁碟機。
當系統管理使用者登入時,Windows 會使用提高權限的權仗處理登入指令碼。指令碼會實際運作並進行磁碟機對應。但 Windows 會隱藏對應網路磁碟機的檢視,因為磁碟機在使用提高權限的權仗進行對應時,桌面使用的是有限權仗。
為解決此問題,系統管理使用者應使用有限使用者權仗對應網路磁碟機。此對應可使用附錄 A 中顯示的 launchapp.wsf 指令碼加以完成,而此指令碼須以工作排程器設定命令排程方可運作。工作排程器會在系統管理完整權仗下啟動指令碼,而使 Windows 檔案總管、其他有限權仗程序以及提高權限的權杖程序得以檢視對應網路磁碟機。
設定 launchapp.wsf 以延後執行登入指令碼
-
將登入指令碼與 launchapp.wsf 指令碼複製到網路共用位置。
-
啟動 [群組原則管理主控台] (GPMC)。在 GPMC 中,在您要修改的 GPO 上按一下滑鼠右鍵,然後按一下 [編輯]。
-
在 [使用者設定] 節點中,展開 [Windows 設定],然後按一下 [指令碼]。
-
在 [登入] 上按一下滑鼠右鍵,再按 [內容]。
-
在 [登入內容] 對話方塊中按一下 [新增]。
-
在 [指令碼名稱] 方塊中,輸入 launchapp.wsf
-
在 [指令碼參數] 方塊中,輸入 logon.bat 的完整路徑與名稱
看來是關掉UAC是可以解決這個問題,可是如果不想要關閉UAC,也要能正常運作,又該如何呢?微軟提供的方法是建立一個『在登入時執行的排程工作』,也就是『launchapp.wsf'。問題又來了,
- 這個script只對Windows Vista有作用,那Windows XP怎麼辦?
- 有多個Script要同時透過這個方式執行又該怎麼辦?
Rick Bennett 提供了他的Script,可以解決這些問題,有需要的人去抓來用吧。
參考資料:
Vista Howto; The new domain logon script
...