MSGina.dll功能
如果您要撰寫 GINA 來取代 Microsoft 標準 GINA DLL (MSGina.dll) ,您可能會想要提供部分或所有標準 GINA 功能。 以下是標準功能的清單,以及其控制方式的簡短描述。
注意
Windows Vista 中會忽略 GINA DLL。
登錄機碼值可控制其中許多標準 GINA 功能的可用性或行為。 除非另有說明,否則這些機碼值屬於 Winlogon 登錄機碼,而且具有 [REG_SZ] 的數值型別。 Winlogon索引鍵的實際路徑為:
\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
法律通知對話方塊
在某些地方,除非有指出系統僅供授權使用者使用的通知,否則任何有權存取工作站的任何人都可以登入並開始工作。 此外,許多使用者想要在一般登入之前顯示公司特定的訊息。 標準 GINA 會使用兩個 Winlogon 登錄機碼值,讓系統在登入之前顯示資訊。 如果任一索引鍵值存在且包含非 Null 字串,則會在一般歡迎畫面之前顯示 [法律通知] 對話方塊。 下表顯示這些索引鍵值名稱。
機碼值名稱 目錄 LegalNoticeCaption 要顯示為法律通知對話方塊標題的字串 LegalNoticeText 要顯示為法律通知對話方塊訊息的字串 顯示姓氏
根據預設,登入畫面會顯示最後一位使用者的名稱,以成功登入工作站。 這項功能是由 DontDisplayLastUserName 登錄機碼值所控制。 當此機碼值設定為一個時,使用者名稱不會顯示在登入對話方塊中。
自動登入
這項功能可讓系統在每次系統啟動時自動登入,方法是使用預設資訊並停用 CTRL+ALT+DEL 登入方塊。
此功能使用 Winlogon 機碼的下列值。
值 目錄 AutoAdminLogon 1 AutoLogonCount 自動登入的次數 DefaultUserName 使用者帳戶的名稱 DefaultDomainName 使用者帳戶所在的網功能變數名稱稱 如果 AutoAdminLogon 機碼值存在且包含一個,且 AutoLogonCount 機碼值不存在,則每次目前的使用者登出或系統重新開機時,都會發生自動登入。 登入的帳戶是使用 DefaultUserName 和 DefaultDomainName 機碼值來指定。 帳戶的密碼可以透過兩種方式之一來指定。 對於執行其中一個 Windows Server 2003 或 Windows XP 作業系統的電腦,密碼應該使用 LsaStorePrivateData 函式儲存為秘密。 如需詳細資訊,請參閱 保護自動登入密碼。 另一種儲存密碼的方式是在 Winlogon 機碼的 DefaultPassword 專案中以純文字表示;基於安全性考慮,應避免這項技術。 如果您使用 LsaStorePrivateData 函式來儲存密碼,則請勿在 Winlogon 機碼中提供 DefaultPassword 專案。
如果 AutoAdminLogon 機碼值存在且包含一個值,而且 AutoLogonCount 機碼值存在且不存在, 則 AutoLogonCount 會決定發生的自動登入數目。 每次重新開機系統時, AutoLogonCount 的值都會遞減一,直到達到零為止。 當 AutoLogonCount 達到零時,不會自動登入任何帳戶、如果使用 AutoLogonCount 機碼值和 DefaultPassword 機碼值,將會從登錄中刪除, 而 AutoAdminLogon 會設定為零。
使用 AutoAdminLogon有一個額外的注意事項:根據預設,當 AutoAdminLogon 為一時,MSGina.dll檢查 SHIFT 鍵的狀態。 如果 SHIFT 金鑰在開機過程中保留,MSGina.dll將會忽略 AutoAdminLogon 機碼值,並提示使用者以互動方式識別和驗證資訊。 當您偵錯專用應用程式時,這是有用的功能。 若要停用 SHIFT 鍵的意義,請將 IgnoreShiftOverride 機碼值設定為一個。
允許未驗證的關機
您可以將預設 GINA 設定為在登入對話方塊中包含 [關機 ] 按鈕。 這可讓使用者在不先登入的情況下關閉系統。 下列索引鍵值可控制是否包含此按鈕。
值 描述 ShutdownWithoutLogon 一個包含按鈕;要排除按鈕的零 Userinit.exe啟用
Userinit.exe是在使用者登入時由MSGina.dll所執行的應用程式。 它會在新登入的使用者 內容 和應用程式桌面上執行。 其目的是要設定使用者的環境,包括還原網路用途、建立設定檔設定,例如字型和螢幕色彩,以及執行登入腳本。 完成這些工作之後,Userinit.exe會執行使用者殼層程式。 殼層程式會繼承Userinit.exe設定的環境。 Userinit.exe執行的特定殼層程式會儲存在 Winlogon 登錄機碼下的 Shell 機碼值中。
Shell機碼值可以包含要執行之程式的逗號分隔清單。 Windows 檔案總管是預設殼層程式,如果 Shell 機碼值為 Null 或不存在,則會執行。 根據預設,會列出 Windows 檔案總管。
登入安全性選項
登入時,如果使用者輸入 安全注意順序 (SAS) ,則會向使用者顯示安全性選項畫面。 列出的選項包括:
- 關閉系統。
- 登出。
- 變更密碼。
- 移至工作清單。
- 鎖定工作站。
當使用者登入時收到 SAS 事件時,取代 GINA 可以提供類似的選項。