工作中需要經(jīng)常連接多臺服務器,每臺服務器密碼定時修改。
最初的時候,是把賬號密碼記錄在一個文本文件中,第一次連接,復制粘貼。之后就可以直接從連接歷史中選出來。
但是后來服務器多了之后,連接歷史中都是IP地址,經(jīng)常認錯。就萌生了使用工具管理的想法。
但是服務器賬號密碼這東西太敏感,對網(wǎng)上下載的工具不信任,就產(chǎn)生自己寫一個工具的想法。
賬號密碼的管理,無非就是數(shù)據(jù)最基本的增刪改查,無需贅言。
遠程連接服務器時,遇到了麻煩。
連接服務器的方法很簡單,生成RDP文件,然后
System.Diagnostics.Process.Start("mstsc.exe", RDP文件路徑)
此方式方便。但是沒辦法傳密碼。如果連接的服務器沒有在本機保存密碼,或者保存的密碼不對,就需要手動輸入密碼進行連接。
注:此處有個坑,網(wǎng)上很多人的blog里寫道,可以在rdp文件中加入password屬性,然后把密碼通過某種方式加密后最有password的屬性值,即自動連接,無須再輸入密碼。但是這個方法我就沒成功過。也不知道那些個寫或者轉(zhuǎn)這個方法的人到底有沒有嘗試。
而后,又查了很多網(wǎng)站和資料。終于找到一個辦法。
首先調(diào)用cmdkey.exe,將遠程桌面的賬號密碼作為憑據(jù),添加到本機的憑據(jù)管理中,然后在通過以上方法啟動遠程桌面即可。
Process process = new Process();
process.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\cmdkey.exe");
process.StartInfo.Arguments = "/generic:TERMSRV/" + IP地址 + " /user:" + 用戶名+ " /password:" + 密碼;
process.Start();
至此,遠程桌面管理的功能就基本實現(xiàn)了。其他的無非是一些界面美化,操作習慣,等等。不再贅述。
不過試運行了一段時間后發(fā)現(xiàn)一個問題。在WindowsXP的電腦上是沒有cmdkey.exe這個東西的。直接導致沒辦正常使用了。只能在Windows7和Windows10上正常使用。期他的系統(tǒng)沒有測試,但是想來只要是版本高于Windows2003的系統(tǒng)也是能正常使用的。
想讓WindowsXP正常使用,從Windows2003里復制一個到WindowsXP里就可以了。一定要是Windows2003的。其他系統(tǒng)里的不行。