透過登入腳本或 GPO 或什麼將遠端桌面登入伺服器?

透過登入腳本或 GPO 或什麼將遠端桌面登入伺服器?

這裡的目標是啟動一個我編寫的簡單 .NET 應用程序,該應用程式在登入時捕獲一些環境變數(時間、使用者名稱、電腦名稱等)。此 .NET 應用程式訂閱 Windows「使用者登出」事件。

啟動後,應用程式會捕獲上述變量,並在我的資料庫中建立記錄,登出時(我正在捕獲)我會更新同一記錄中的另一個欄位以及登出時間。

上面的工作完全按照我的意願進行,當我啟動二進位檔案時,它會產生初始日誌條目,然後等待登出事件並更新相同的記錄。

限制,.NET 二進位檔案應該能夠駐留在共用點(\server\share\myapp\v1) 上,以便我可以將應用程式更新到(\server\share\myapp\v2) 並簡單地更新GPO/登入腳本。

我最初的想法是使用 \domaincontroller\sysvol\ 目錄來儲存二進位文件,然後更新所有使用者帳戶以包含對我的應用程式的呼叫。你能看出這種方法有什麼缺陷嗎?

我的問題是:首先,我上面的想法有什麼問題嗎?其次,如果是這樣,確保每當伺服器上啟動會話時啟動該應用程式的最佳方法是什麼(透過群組原則或其他方式)?

答案1

為了在每次啟動會話時啟動,使用基於群組原則的登入腳本即可完成。我們發現的一個警告是,如果為任何適用的計算機物件 GPO 打開“環回處理”,則用戶 GPO 中指定的此類腳本似乎會執行兩次。因此,我們必須修改登入腳本來處理這種情況。

我不熟悉 .NET 事件訂閱,因此我不知道這是否意味著應用程式檔案在整個會話期間保持開啟。如果是這樣的話,那麼由於開鎖問題,更新應用程式將非常困難。如果登入了 50 個站,則該應用程式將有 50 個拒絕寫入鎖,這使得更新應用程式變得更加困難。在這種情況下,將應用程式保留在 sysvol 上(實際上在 GPO 本身)會有所幫助,因為它可以更好地處理這種情況。

然而,這僅僅意味著它在註銷時重新啟動,將其保留在共享上應該沒問題。

答案2

從 sysvol 運行它並沒有什麼嚴重的問題。

建立 gpo 登入腳本將在預設情況下完全執行此操作,並且還確保它運行。通常,終端伺服器有多個 GPO,其中一個將運行您的登入腳本並指定群組原則環回處理模式。

相關內容