2014-12-03 373 views
3

我創建了一個在Windows啓動時運行程序的Windows服務,但通過此解決方案,該程序無需管理員權限即可運行。如何使用管理員權限從Windows服務運行程序

ApplicationLoader.PROCESS_INFORMATION procInfo; 

ApplicationLoader.StartProcessAndBypassUAC(program_name, out procInfo); 

那麼如何運行此程序:但是,如果我通過點擊開始菜單上的程序的快捷方式運行程序,它具有管理員權限

我用這個代碼來運行程序運行管理員權限? 感謝

+0

帶或不帶?我想你想問如何從Windows服務啓動程序,而沒有提升特權。 – kennyzx 2014-12-03 04:56:29

+0

我需要以管理員權限運行 – 2014-12-03 05:02:54

+0

轉到START>運行,然後輸入'services.msc'並運行它。然後找到該服務,然後右鍵單擊以查看屬性。轉到登錄選項卡,並請告訴我們登錄選項卡上設置的用戶。 – nothingisnecessary 2014-12-03 05:07:14

回答

1

要以管理員身份運行(程序)

右擊並選擇「以管理員身份運行」(一次性/特設)

或右鍵單擊並選擇屬性>兼容性>檢查「以管理員身份運行此程序」(將其設置爲永久;也可以方便地在快捷方式上設置此屬性(基本上是開始菜單項))

不以管理員身份運行(服務)

要使服務不作爲管理員運行,請打開服務管理單元(從命令提示符運行services.msc)並右鍵單擊以編輯服務的屬性,然後更新「登錄」選項卡上的用戶信息。

UPDATE

看起來你已經從一個包裝的Windows API函數CreateProcessAsUserhttp://www.codeproject.com/Articles/35773/Subverting-Vista-UAC-in-Both-and-bit-Archite)一CodeProject上的文章中使用的一些代碼。確保您閱讀了該文章並按照步驟進行操作。您可能沒有在服務上設置正確的用戶,或者您當前的用戶可能沒有正確的權限,或者可能不是管理員的成員等。

+0

但是,當我從Windows服務啓動此程序時,它不以管理員身份運行 – 2014-12-03 05:00:18

+0

這與您在問題中所說的內容相反。請審查並更新您的問題。此外,同樣的事情適用..只是查看服務的屬性,更改登錄選項卡爲管理員用戶。 – nothingisnecessary 2014-12-03 05:01:47

+0

IIRC,該代碼僅適用於Windows Vista,不適用於Windows的更高版本。 – 2014-12-03 21:37:36

相關問題