Windows-Server-2012-R2

在遠端電腦上執行命令並向登錄使用者顯示 UI

  • October 20, 2014

由於我在網上找不到任何合適的解決方案,我會在這裡問。

我有一堆電腦,我想在其中執行程序並向目前登錄的使用者顯示程序 GUI。Afaik 這對於 Powershell 是不可能的(Windows 服務的停止/啟動沒問題),我無法使用 PsExec.exe 完成此操作。

我的 PsExec 命令如下所示 - calc.exe 在 TaskManager 中可見,但我看不到 GUI。

C:\Users\Administrator.DEV\Desktop>PsExec.exe -i \\TEST-CLI-01 -u localUser -p userPassword -d calc.exe

簡短設置說明: 伺服器:MS Server2012R2 客戶端:Windows 8.1 每個系統都是 AD 域的一部分。

任何人都有一個想法我怎麼能做到這一點?

提前很多:)

你會發現這是非常困難的,如果不是不可能的話。你會認為這很容易,但事實並非如此。微軟故意讓這件事變得困難,因為如果您可以在另一個使用者的安全上下文中操縱視窗管理器,它就會暴露一種安全漏洞(“粉碎”攻擊)。

Windows Vista 中引入的會話 0 隔離功能使服務程序(如PsExec)難以與控制台互動。當互動式服務檢測服務正在執行時,當服務嘗試與控制台互動時,將提示使用者切換到安全桌面以與服務的 GUI 互動。

有一些關於 Stackoverflow的討論深入到架構的細節中。

處理這個問題的更好方法是讓使用者執行一個程序來偵聽某種類型的程序間通信並採取相應的行動。如果你想變得非常非常 hackish,你可以執行一個簡單的 VBScript 或 Powershell 腳本,當使用者登錄時,它會在後台執行,等待文件/系統資料庫項/TCP 連接/等,然後採取行動。您可以很快將類似的東西拼湊起來作為概念驗證。

引用自:https://serverfault.com/questions/637743