Monday, April 20, 2009

Windows 自動登出逾時未操作的使用者

Windows 自動登出逾時未操作的使用者

不知道是我這 MIS 愈來愈嚴苛(說機車也行),還是使用者的操作習慣不良!常常發現在公用電腦區發現,電腦不是停留在「應該」的登入要求畫面、或鎖定畫面,而是停留在已登入使用的畫面。

其實這是很不好,也很危險的使用習慣;如果使用者登入後離開電腦,就像 Mission Impossible 一樣,其他人可以「幫」你使用,「幫」你修改成績資料,甚至「協助」你刪除檔案!所以一般我都會建議,如果要離開電腦位置時,請「登出」或「鎖定」畫 面。(註一)

可是苦口婆心說了好幾回,總有些健忘的使用者就是會忘記!想想這不是個辦法,依靠別人是最不可靠的方法,還是依靠電腦安全些;找尋了許久,發現原來 在 windows 2000 的時代,Microsoft 就有解決方法了!就是一支稱為 winexit.scr 的螢幕保護程式,一般當電腦許久未有互動行為(即鍵盤或滑鼠的操作和移動)時,電腦會進入螢幕保護模式,而如果選擇這支 winexit.scr 的螢幕保護程式,則電腦就會執行「將使用者登出」的動作!不錯吧!完全符合需求!
Microsoft 技術支援 - 如何在 Windows XP 中強制使用者於一段閒置期間之後結束程式並登出
方法步驟就是:首先下載 Windows 2003 Resource Kit, 安裝後將 winexit.scr 複製到所需設定電腦硬碟的 C:\Windows\System32 (%systemroot%\system32)中,然後以滑鼠右鍵點選 winexit.scr 選擇「安裝」,就完成安裝了。設定時,就由「開始」→「設定」→「控制台」→「顯示」,選擇「螢幕保護裝置」標籤,選擇「Logoff Screen Saver」,選擇所需的等候時間,並可點按「設定」按鈕,做進一步的動作設定。如此就完成單機上的功能設定使用了!

(註一)
由於電腦不認識人!電腦只能依登入時輸入的帳號密碼來辨識現在是哪一位使用者登入,而將預先設定好的使用權限賦予該登入的使用者!所以如果您登入您的帳 號,留下操作畫面地離開您的位子,這時下一位使用者如果有心,就可以直接用您的帳號繼續使用,如果這時刪除、修改、甚至寄恐嚇信給校長,在電腦記錄上,都 是您這位登入操作的使用者!聽起來很可怕吧!我又在烏鴉嘴恐嚇大家了!

電腦「鎖定」的方法,真的很簡單,只要是使用 Windows 98 以上的系統(Windows NT / 2000 / XP / 2003 均可),只要同時按「Ctrl」+「Alt」+「Del」,就會出現「Windows 安全性」視窗,選擇其中的「鎖住電腦」,就可以保護您離開位置時,您的電腦不會被別人偷偷使用!你會發現鎖住電腦後,螢幕會停留在一登入畫面,除非重新再 以您的使用者帳號密碼登入,否則無法使用的!這樣是不是安全多了!


如果人間有這麼美好就好了!以我們學校為例,大部份的電腦,均屬公用電腦,僅有極少部份屬於個人專用電腦,所以大約有 20~30 部電腦需要我這麼一台一台設定操作,如果下回要變更設定,還得再一台一台重來一次,光想到我就受不了(果然最近發福不是沒原因的,是愈來愈懶惰了!)。

這麼好的功能當然要和 Windows 環境中 Active Directory 的 Group Policy 配合了!方法如下:

(一)設定群組原則的「螢幕保護程式」

由「Active Directory 使用者及電腦」進入,選擇欲設定的組織單位(OU),或新增一個新的 OU 將所需設定的電腦全置於該 OU 中;然後滑鼠右鍵點選該 OU 選擇「內容」,選擇「群組原則」標籤,點按「編輯」按鈕,進入群組原則編輯視窗。

依序點選「使用者設定」→「系統管理範本」→「控制台」→「顯示」,依需求啟用以下設定:

  • 螢幕保護裝置:需啟用
  • 螢幕保護裝置執行檔名稱:%systemroot%\System32\winexit.scr
  • 螢幕保護裝置加上密碼保護:建議啟用
  • 螢幕保護裝置等候時間:需啟用,時間則視各公司策略而定,建議約在 600 ~ 1200 (秒) 之間

如果您以為這麼輕易地就就完成了所有動作,那就太看得起 Microsoft 了!他們家以祕技聞名的!好,接下來才是重頭戲,經驗分享,回想一下上頭寫的文章,沒有什麼插圖,就知道重點不在那兒!

(二)目標電腦上的相關修改

剛剛第一步驟提到的 winexit.scr 我們還沒處理它!而 Winexit.scr 內有三個相關連的設定選項,我們也沒有處理!可惜,這部份就得做苦工,我們得一台一台電腦上單機設定!如果允許,建議可以把這些設定和檔案,下回在做系統 還原光碟時一併建立,這樣就可以避免一台一台電腦上安裝設定了!

首先由 Windows 2003 Resource Kit 中複製 winexit.scr,將其複製到「每一台」需要設定的個人電腦中,建議依系統規劃放置於 C:\windows\System32 中(一般預設的螢幕保護程式也是放置於這兒)。

接著若使用者無單機系統管理權限,則我們必須相對應地開啟 control.ini 的寫入權限,讓 winexit.scr 的設定值可以讓使用者寫回登錄檔(Registry)中,方法如以下步驟,參考自Microsoft 技術支援

  1. 使用 AD 的 Domain Admins 內的管理者帳號,登入 Domain Controller,我們希望由 DC 連線至每一台目標電腦修改其權限設定;點選「開始」→「執行」,輸入 regedt32.exe,開啟「登錄編輯程式」。
  2. 點選「檔案」→「連線網路登錄」,於選擇電腦視窗中,輸入要設定的「遠端」電腦名稱;以上兩個步驟,主要是省去大家得跑到每一台電腦螢幕前操作的步驟,直接由 DC 連線遠端修改就好了。

  3. 點選位置至 HKEY_Local_Machine\Software\Microsoft\Windows NT\CurrentVersion\IniFileMappings,滑鼠右鍵點擊 Control.ini,選擇「使用權限」。

  4. 新增 Everyone ,再點按「進階」按鈕。

  5. 於「進階安全性設定」視窗中,先選擇 Everyone,再點按「編輯」按鈕。

  6. 加入「設定數值」及「建立子機碼」兩個權限。

透過以上的設定,才能讓 winexit.scr 為使用者設定所需參數選項。


這時候又要說,如果人間有這麼美妙就好了!微軟就不是徵軟,而是微微硬了!還記得一開始的 winexit.scr 的設定畫面,現在我們希望以 Group Policy 來代替原先一台一台電腦上設定的苦工,當然我們也就要設定這些參數選項了!

  1. 首先我們得為 winexit.scr 製作一專屬的「系統管理範本」,這兒我們就命名為 winexit.adm。請開啟「記事本」,將以下深藍色文字部份複製貼入記事本中,儲存名稱為 winexit.adm,編碼為 unicode。

CLASS USER

CATEGORY !!AdditionalSettings

CATEGORY !!Desktop

CATEGORY !!WinExitScr
KEYNAME "Control Panel\Screen Saver.Logoff"
POLICY !!ForceLogoff
VALUENAME ForceLogoff
EXPLAIN !!ForceLogoff_Help
VALUEON "1"
VALUEOFF "0"
END POLICY

POLICY !!CountDownTimer
EXPLAIN !!CountDownTimer_Help
PART !!WarningTime TEXT END PART
PART " " NUMERIC TXTCONVERT REQUIRED
MIN 0 MAX 900 SPIN 60
VALUENAME CountDownTimer
DEFAULT "300"
END PART
END POLICY

POLICY !!DialogMessage
EXPLAIN !!DialogMessage_Help
PART !!Message TEXT END PART
PART " "
EDITTEXT
DEFAULT !!DefaultMessage
VALUENAME DialogMessage
END PART
END POLICY

END CATEGORY ; !!WinExitScr

END CATEGORY ; !!Desktop

END CATEGORY ; !!AdditionalSettings

[strings]
Desktop=Desktop
AdditionalSettings=Additional settings
WinExitScr=Settings for WinExit screen saver
ForceLogoff=Force running applications to close
ForceLogoff_Help="強制關閉開啟中的應用程式"
CountDownTimer=Warn before logoff
CountDownTimer_Help="登出執行視窗內的提醒時間(秒)"
WarningTime=Seconds to warn before logoff:
DialogMessage=Display message before logoff
DialogMessage_Help="登出執行視窗內的顯示訊息"
Message=Message:
DefaultMessage=You will be logged off. Press cancel to abort.

  1. 接著一樣地,請以 Domain Admins 內的系統管理者登入 Domain Coller (DC),將 winexit.adm 複製到 C:\Windows\inf 中;點選先前我們已經新的 OU,編輯其群組原則,點選「使用者設定」展開,以滑鼠右鍵點選「系統管理範本」,點選「新增/移除範本」,點按「新增」按鈕,於 C:\Windows\inf 中將 winexit.adm 滙入。
  2. 由於我們自行製作的系統範本,其中含有我們自訂的參數和選項,這些預設會被過濾而沒有顯示,所以,請點選「檢視」→「篩選」。

  3. 將「只顯示可以完全管理的原則設定」的勾勾取消。

  4. 如此,即可由「使用者設定」→「系統管理範本」,進入 Additional settings \ Desktop \ Settings for WinExit screen saver,設定 WinExit 的三個選項。

以上是一個星期的血淚心得,查詢了大部份的網頁資訊後的使用心得。可是明明大部份的網友都可以,為什麼我還是沒成功呢?

結果,原來又是超級微留一手!如果您的網路環境和我一樣(使用者和電腦,分屬不同的組織單位中),希望「群組原則」套用到使用者時,只根據使用登入 的電腦來套用時,則需要開啟「群組原則的反向迴路處理」,這時原則會導引系統將電腦的 GPO 集套用至登入任何此原則所影響電腦的使用者。

方法為:
於先前我們新增的 OU 上,編輯該「群組原則」物件,點選「電腦設定」→「系統管理範本」→「系統」→「群組原則」 ,於右側視窗將「使用者群組原則回送處理模式」變更為「已啟用」,模式選擇「合併」。

完成後,一切都變得美好了!完全如預期般地,只要是登入公用電腦的使用者,其螢幕保護程式為變更為 winexit.scr 而且若使用者逾時未有任何互動動作時,系統會自動將其登出(或說系統會把他踢出去)。

希望以上的分享對各位有所幫助,花了約一個星期的時間處理這部份,才發覺繁體中文的資訊真的很少,尤其相較於英文,甚至是大陸的簡體中文資訊;如果 只是大家懶得分享,怕的是台灣的根本一點一滴地流失,研究這些基礎資訊安全的人變少了。我不是有錢人,也不是先知或高手,我只是個小老百姓,台灣一點一滴 地流失卻是完全發生在生活的週遭,真可怕。

Have a nice day. Good Luck.

No comments: