在 Vista 任務計劃程序中關閉“隔離模式”?
在 Windows Vista(我假設是 Windows 7)中,Microsoft 提高了通過任務計劃程序執行的程序的安全性,即http://technet.microsoft.com/en-us/appcompat/aa906020.aspx:
在 Windows Vista 任務計劃程序中,安全性大大提高。任務計劃程序支持安全隔離模型,其中在特定安全上下文中執行的每組任務都在單獨的會話中啟動。為不同使用者執行的任務在單獨的視窗會話中啟動,彼此完全隔離,並且與在機器(系統)上下文中執行的任務完全隔離。
問題是我有一個腳本需要以設定的時間間隔執行並通過 SCP 將文件上傳到 Linux 網路伺服器,為此我使用Pageant儲存腳本可以獲取的 SSH 密鑰。這一切在 Windows XP 中執行良好,但由於 Windows Vista 中的隔離模式,腳本似乎無法與 Pageant 程序對話,並且 SCP 傳輸失敗。
任務計劃程序配置工具中有一個選項,您可以在其中選擇**“為 Windows Server 2003、Windows XP 或 Windows 2000 配置”**,這至少使任務以互動方式執行,這也是我想要的,但隔離模式似乎仍然是啟用。
問題:有什麼方法可以關閉 Windows Vista 任務計劃程序中的新“隔離模式”,使其行為與 Windows XP 一樣,允許程序間通信?
更新:我不知道這是否應該受到“Session 0 Isolation”的影響,但在該頁面上的文件中它提到了以下內容:
服務嘗試使用視窗消息函式(如 SendMessage 和 PostMessage)與應用程序通信。這不起作用,因為應用程序在不同的會話中執行,因此具有不同的消息隊列。消息永遠不會到達目的地。對於嘗試通過視窗消息與服務進行通信的應用程序也是如此。
哪個選美會…但是當啟用“為 Windows XP 配置”時也應該是這種情況嗎?
這個問題原來是因為我描述的 Vista/Win7 中存在的隔離模式。Pageant 在與客戶端應用程序對話時的工作方式是發送和接收簡單的視窗消息。當我隔離程序時,此方法不起作用,因為程序在具有不同消息循環的不同會話中執行。
**我最終通過重寫 putty 套件中的選美和客戶端應用程序來使用命名管道來解決這個問題。**我已經向 putty 開發人員送出了一個更新檔,但在撰寫本文時它還沒有被合併到主幹中。感謝開源!:)