情況是一個運行c#代碼的客戶端系統,在啓動時我們希望檢查並確認運行系統的Windows標識具有某些特定的權限,當前特定的情況是SeSystemtimePrivilege。 我們不希望用戶被要求成爲系統啓動的管理員。如何檢查本地安全策略權限爲非管理
路徑嘗試到目前爲止,包括:
WMI它沒有得到我們後的設定權。
LsaEnumerateAccountsWithUserRight through PInvoke - 完全有效,但需要管理員權限才能使用LsaOpenPolicy。
- GetTokenInformation通過PInvoke與LookupPrivilegeName一起使用這不會返回所需的結果。相反,它只返回令牌的5個權限,但不包括SeSystemtimePrivilege,雖然它已明確授予有問題的用戶。 (我認爲它只是向我展示了GP的權利,它們與我通過cmd WhoAmI/priv檢查看到的權利相同。)
- LookupPrivilegeValue通過PInvoke與PrivilegeCheck一起使用,而且這似乎也只能訪問與GetTokenInformation相同的5個權限,並且只有在實際啓用了該權限時才返回true。
我想不通至今如何使我的本地機器上的這一權利,以測試這種情況,但我不認爲我可以依靠它比默認情況下在客戶機上其他。
我在尋找更多關於如何獲得這些用戶權限而不必擁有管理權限的想法。
想法?我用盡了選項嗎?那不可能,可以嗎?
Thanks!非常感激。我會記住的。 – tendrel
我很確定我有一個可行的解決方案,令牌角度是有效的方法。我會在我完成測試後,在明天發佈我的答案。 (= – tendrel