2011-09-01 121 views
0

我有一些使用「advapi32.dll」連接到各種服務器以收集各種信息用於文檔目的的c#代碼。LsaEnumerateAccountsWithUserRight在連接到Windows Server 2008 R2時失敗

該文檔的一部分是從每臺計算機獲取用戶權限。我正在使用LsaEnumerateAccountsWithUserRight函數,它似乎適用於Windows 2003機器,但不適用於2008機器。我收到「拒絕訪問」錯誤。我已閱讀各種網站上的各種線程,建議禁用UAC(我嘗試過)並使用POLICY_VIEW_LOCAL_INFORMATION而不是POLICY_ALL_ACCESS,當使用LsaOpenPolicy(我嘗試過)並且它們都不起作用。有沒有人遇到這個問題?

回答

0

對於它的價值,我可以在Win2008 R2上使用LsaLookupNames2和LsaEnumerateAccountRights(在管理員模式下運行VS)。

LsaOpenPolicy(... Access.POLICY_LOOKUP_NAMES | Access.POLICY_VIEW_LOCAL_INFORMATION, out lsaHandle) 
... 
LsaLookupNames2(lsaHandle, 0, 1, names, ref tdom, ref tsids) 
... 
LsaEnumerateAccountRights(lsaHandle, sid, out hPrivileges, out privileges_count) 

我用下面的兩個引用:

相關問題