我正在使用 PSExec 在另一台電腦上開啟某些具有小型 gui 的伺服器程式。本地和目標都是Win7 64位元。我使用打開它
psexec \myothercomputer -u Me -p mypass -i -d -h myapp.exe
當我也登入另一台電腦時,這工作正常。但我以這種方式運行該程式的想法是不必登入該計算機。
今天,我嘗試在不登入的情況下運行該應用程序,只是為了看看發生了什麼。我以為它會回傳一個錯誤。然而 PSExec 回傳了我的進程 ID。
然後我登入那台計算機,令我驚訝的是,我有一種圖形“陰影”,我的意思是,我嘗試運行的應用程式的形狀! ……就像它確實打開了它,即使我沒有打開它一樣登入。
我認為這是螢幕刷新問題,我嘗試了幾種方法來「喚醒」或與該應用程式交互,但它並沒有真正正確顯示。使用任務管理器,我注意到這個應用程式的記憶體消耗比它應該的要小……所以我猜在某個時候它出了問題。這就是我真正期望的,去跑步。
問題:為什麼 PSExec 在未登入的情況下成功開啟互動式應用程式?那麼為什麼我的互動式應用程式無法正常運作呢?
答案1
根據執行程式頁面中,-i [session] 開關執行以下操作:
運行該程序,以便它與遠端系統上指定會話的桌面進行互動。如果未指定會話,則進程在控制台會話中執行。
在您的命令中,您不會像線上說明頁面所示那樣在 -i 之後立即指定會話。
我還注意到您已指定 -d 。我認為您不能混合使用 -i 和 -d,特別是如果用戶未登錄,因為 -i 在控制台會話中運行,但 -d 表示不要使用控制台會話來確定進程生存期:
-d 不要等待進程終止(非互動式)。