2013-03-25 78 views
1

我試圖找到一種方法來啓動遠程計算機上的程序(在域環境中,所以我知道所有憑據),而沒有任何第三方軟件PSEXEC。在沒有任何第三方軟件的情況下在遠程計算機上啓動程序

現在的問題是,它應該交互式運行! (在最好的情況下,它應該在當前登錄的用戶上下文中運行)我知道WMI,並且我知道您可以使用WMI啓動一個進程,但它不是交互式的。 (您可以啓動一個具有計劃任務的交互式進程,但它隨後會作爲系統進程運行並具有系統權限(?))

現在讓我們說我想爲IT技術人員編寫一個C#應用程序來監督系統,你是否知道哪種技術可以用來讓IT技術人員無需安裝軟件即可遠程啓動程序?

或換句話說,除了WMI預定的過程之外還有別的東西嗎?

回答

1

如果這是您的解決方案,您或許可以自己編寫PSExec的功能。如果我記得PSExec的工作原理,它首先複製文件以使用管理共享在遠程系統上運行(例如,\\ PCNAME \ ADMIN $ \ TEMP;如有必要,您可以使用右側連接到遠程計算機憑證使用WNetAddConnection2()函數)。如果您在遠程機器上覆制的文件可以作爲系統服務運行(可能是這種情況,如果您編寫的話),則可以使用OpenSCManager(),CreateService()StartService()啓動它。服務可以以交互模式運行(請參閱SERVICE_INTERACTIVE_PROCESS標誌,該標誌要求服務以系統帳戶運行)。該服務可以模擬登錄用戶,也許通過使用ImpersonateLoggedOnUser()使用從他的一個正在運行的進程中獲得的令牌OpenProcessToken(),但我從來沒有試過看是否可行。

+0

非常感謝這個輸入:) 你真的認爲PSExec將文件複製到遠程主機? – Bador 2013-03-25 16:31:22

+0

是的,如果您指定-c選項(請參閱psexec的幫助文本),它會將文件複製到遠程主機。如果沒有,「應用程序必須位於遠程系統的系統路徑中」。 – Ale 2013-03-25 16:44:46

相關問題