我已經創建了一個bat來執行腳本文件(.vbs)以從Windows註冊表獲取已安裝的軟件列表。 我遵循2種方式執行bat文件。如何使用C++代碼創建具有管理員權限的服務
1)從命令提示符(cmd)執行bat文件。 2)創建一個執行bat文件的服務(我創建了一個進程)。
兩個輸出是不同的。
我認爲註冊表訪問限於服務。所以如何創建一個服務或以管理員身份啓動一個像cmd這樣的管理員服務。
我已經創建了一個bat來執行腳本文件(.vbs)以從Windows註冊表獲取已安裝的軟件列表。 我遵循2種方式執行bat文件。如何使用C++代碼創建具有管理員權限的服務
1)從命令提示符(cmd)執行bat文件。 2)創建一個執行bat文件的服務(我創建了一個進程)。
兩個輸出是不同的。
我認爲註冊表訪問限於服務。所以如何創建一個服務或以管理員身份啓動一個像cmd這樣的管理員服務。
您需要使用CreateService函數。如果您使用nullptr
作爲lpServiceStartName
的參數,那麼它將以管理員身份運行。
從[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
@IInspectable我沒有說管理員帳戶。它具有管理員權限。 – Simple
*「它將以管理員身份運行」* - 並且這是不正確的。如文件所述,它將作爲LOCAL SYSTEM運行。這是與管理員環境不同的環境。 – IInspectable
服務通常在LOCAL SYSTEM帳戶下運行,可能會從管理員帳戶安裝另一組應用程序。此外,查詢註冊表是向系統請求安裝的應用程序的錯誤方法。 – IInspectable
您的問題診斷錯誤。步驟1,正確診斷問題。第2步,考慮可能的解決方案。在繼續之前,您需要先完成第1步。 –