該場景是我以管理員身份運行服務。如何暫時降低海拔
我們有一個運行自定義代碼的標註(思考腳本)。它使用codedom編譯來創建一個程序集並創建一個類型並調用一個方法(基於代碼)。
我想暫時刪除標註期間的管理權限,然後再恢復它們。
該場景是我以管理員身份運行服務。如何暫時降低海拔
我們有一個運行自定義代碼的標註(思考腳本)。它使用codedom編譯來創建一個程序集並創建一個類型並調用一個方法(基於代碼)。
我想暫時刪除標註期間的管理權限,然後再恢復它們。
我結束了在鏈接描述運行在沙盒應用程序域代碼:
如何:運行部分在沙箱中受信任的代碼
http://msdn.microsoft.com/en-us/library/bb763046%28v=vs.100%29.aspx
我不認爲你可以用你描述的方式「放棄」特權;您的服務以用戶身份運行,並允許該用戶進行一定的訪問。您可以要求Windows暫時授予您更多權限(這是UAC的全部內容),但您不能要求它減少您的權限!
爲了運行腳本(具有適當的訪問級別),我將在系統中創建第二個用戶,並在自定義代碼的持續時間內模擬該用戶。
原來我不知道我在說什麼。根據這個鏈接,UAC以相反的方式實現,通過創建一組有限的權限並在該上下文中運行代碼。
你很正確。糟糕! – MarcE
所以,什麼東西阻止你? – Tarec
我不知道如何做到這一點。我想象創建一個實現IDisposable的類,並在構造函數中刪除高程並將其恢復到析構函數中,但我不知道調用何時會放下高度並將其恢復。我想我可能需要知道當前的高程狀態,以便稍後恢復。 – Derek
您可以從單獨的進程(從服務啓動)調用標註嗎?如果可能的話,請參閱http://stackoverflow.com/q/1173630。 – AlexD