Windows
多使用者登錄(域、終端服務) - 如何確定密碼更改後使用者訪問令牌是否無效
我們的使用者在終端服務域環境中工作。有時會發生使用者登錄多個伺服器的情況。當安全策略強制使用者更改密碼時,他會在一台伺服器上更改密碼(首先會發現密碼已過期,通常在使用者登錄新伺服器時),而其他會話仍在記錄中,但已經無效證書。從現在開始,所有其他記錄的會話將阻止該使用者訪問網路服務 - 映射驅動器斷開連接,網路列印機斷開連接。這是正常行為,不是問題。但這讓使用者感到困惑。
所以我想通了,最好通知使用者,在他更改密碼後,他的其他會話不再有效,他應該重新登錄。我正在考慮一個小助手程序,它會一直以使用者權限執行,檢查是否……這就是問題所在。
我知道,當使用者更改其他伺服器上的密碼時,訪問令牌可能會發生一些事情。據我所知,訪問令牌是在登錄後確定使用者是否有權訪問網路資源的唯一方法。但是如何閱讀這些特定資訊?訪問令牌有許多資訊結構: http://msdn.microsoft.com/en-us/library/windows/desktop/aa379626(v=vs.85).aspx 也許有些人對這些結構有更好的經驗?
一種解決方案可能是定期輪詢使用者的家庭共享以驗證它是否可訪問。這一點 Powershell 將完成此任務
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | out-null $s = {env:HOMESHARE} if(!(Test-Path($s))){ $a = [System.Windows.Forms.MessageBox]::Show("Homedrive inaccessible, would you like to log off?" , "Homedrive" , 4) if($a -eq "Yes"){ ## log of if yes clicked logoff } }