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