1
我需要C#和C++,Windows客戶端應用程序需要通過DLL來執行查詢WMI和加密API中的訪問功能。某些事情如訪問磁盤加密狀態需要管理員訪問權限。如果鏈接客戶端保持用戶級權限,DLL是否有管理員訪問權限?如果是這樣,我將如何去做這件事?您是否可以擁有一個具有管理員權限的DLL,並且該DLL只從具有用戶級別權限的客戶端應用程序鏈接?
我需要C#和C++,Windows客戶端應用程序需要通過DLL來執行查詢WMI和加密API中的訪問功能。某些事情如訪問磁盤加密狀態需要管理員訪問權限。如果鏈接客戶端保持用戶級權限,DLL是否有管理員訪問權限?如果是這樣,我將如何去做這件事?您是否可以擁有一個具有管理員權限的DLL,並且該DLL只從具有用戶級別權限的客戶端應用程序鏈接?
不,代碼本身沒有Windows權限。
正如評論中指出的那樣,您可以使用2個進程在不同帳戶下運行(這會立即增加兩個有趣的問題)。
或者你可以用你的代碼模擬帳戶,但Windows權限將適用於模擬時運行的任何代碼,而不僅僅是來自特定本地DLL/.Net程序集的代碼。
可能最簡單的就是關閉UAC。否則,您需要在另一個進程中執行代碼,因爲訪問檢查是按進程進行的。一種方法是使用Microsoft爲此提供的COM接口。對不起,我忘了它的名字,但你可以谷歌它。另一種可能更簡單的方法是啓動另一個流程。 –
哦,我爲你搜索它。 (https://msdn.microsoft.com/en-us/library/windows/desktop/ms679687%28v=vs.85%29.aspx) –
因此,聽起來像其他進程(這將提供的功能DLL)將作爲服務運行。我解釋正確嗎? – crayguy