2016-05-13 291 views
0

我已經創建了一個bat來執行腳本文件(.vbs)以從Windows註冊表獲取已安裝的軟件列表。 我遵循2種方式執行bat文件。如何使用C++代碼創建具有管理員權限的服務

1)從命令提示符(cmd)執行bat文件。 2)創建一個執行bat文件的服務(我創建了一個進程)。

兩個輸出是不同的。

我認爲註冊表訪問限於服務。所以如何創建一個服務或以管理員身份啓動一個像cmd這樣的管理員服務。

+0

服務通常在LOCAL SYSTEM帳戶下運行,可能會從管理員帳戶安裝另一組應用程序。此外,查詢註冊表是向系統請求安裝的應用程序的錯誤方法。 – IInspectable

+0

您的問題診斷錯誤。步驟1,正確診斷問題。第2步,考慮可能的解決方案。在繼續之前,您需要先完成第1步。 –

回答

-1

您需要使用CreateService函數。如果您使用nullptr作爲lpServiceStartName的參數,那麼它將以管理員身份運行。

+1

從[CreateService](https://msdn.microsoft.com/en-gb/library/windows/desktop/ms682450.aspx):*「lpServiceStartName:如果此參數爲NULL,則CreateService使用[LocalSystem帳戶](https ://msdn.microsoft.com/en-gb/library/windows/desktop/ms684190.aspx)。「*這是**不是**管理員帳戶。我不知道爲什麼有人會提出一個事實上不正確的答案。 – IInspectable

+0

@IInspectable我沒有說管理員帳戶。它具有管理員權限。 – Simple

+1

*「它將以管理員身份運行」* - 並且這是不正確的。如文件所述,它將作爲LOCAL SYSTEM運行。這是與管理員環境不同的環境。 – IInspectable

相關問題