0
我需要更改連接在同一網絡中的計算機上的Windows用戶的密碼。爲此,我使用PrincipalContext
方法連接機器,然後獲取指定的用戶並最終更改密碼。如何在使用PrincipalContext時檢查連接是否成爲服務器?
private bool ChangeUserPassword(string serverName,string serverip,string adminUserName, string adminUserPassword, string userName, string newIISPassword)
{
using (var context = new PrincipalContext(ContextType.Machine, serverName, adminUserName, adminUserPassword))
using (var user = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, userName))
{
user.SetPassword(newIISPassword);
user.Save();
}
}
的問題是,有時我不會到服務器的連接時,我提供「服務器名稱」,但與「SERVERIP」,反之亦然作品。 如果連接context.ConnectedServer
將顯示服務器名稱,如果不是則顯示未知路徑或錯誤的用戶名錯誤。
如果連接不發,我可以用SERVERIP作爲參數
using (var context = new PrincipalContext(ContextType.Machine, serverIp, adminUserName, adminUserPassword))
對於我試圖if(context.ConnectedServer != serverName)
知道連接無法正常工作,並把上面的代碼裏面它。但是因爲是它會返回錯誤沒有ConnectedServer。
如何檢查與服務器的連接是否成功?
我正在爲客戶端開發此應用程序。我不能堅持讓他們在他們的網絡上進行這種改變。因此,在代碼級別找到解決方案是我現在唯一的選擇。 – Nachikethas
我不是說要在他們的網絡上進行更改。我只是說他們應該輸入/使用**完整的電腦名稱**。 –