3

我使用 API NetUserAdd 和 NetUserSetGroups 添加用户帐户并将其与组关联到计算机。System.DirectoryServices不久之后,我发现了一个使用命名空间和DirectoryEntry对象能够做同样事情的例子(添加一个用户,将他与一个组关联) 。

现在我需要向该新帐户添加策略并且面临类似的问题。我可以使用LsaOpenPolicyLsaAddAccountRightsAPI 向帐户添加策略,但我更喜欢使用 .NET 对象和方法。

我的问题是,.NET 框架中是否有对象方法来添加和/或修改用户帐户策略设置,如果有,这些对象或方法的名称是什么?

也将不胜感激使用示例。

具体来说,我希望将“SeServiceLogonRight”(也称为作为服务登录的权限)添加到新用户帐户。

4

1 回答 1

3

不,我不相信任何当前的 .net 程序集实现了这些方法。这些是我在具有 DllImportAttribute 和名称 /Lsa.+/ 的 Fx 2.0、3.0 和 3.5 程序集中找到的唯一方法

[mscorlib] Microsoft.Win32.Win32Native.LsaNtStatusToWinError Microsoft.Win32.Win32Native.LsaDeregisterLogonProcess Microsoft.Win32.Win32Native.LsaClose Microsoft.Win32.Win32Native.LsaFreeReturnBuffer Microsoft.Win32.Win32Native.LsaLookupSids Microsoft.Win32.Win32Native.LsaFreeMemory Microsoft.Win32.Win32Native .LsaLookupNames Microsoft.Win32.Win32Native.LsaOpenPolicy Microsoft.Win32.Win32Native.LsaLogonUser Microsoft.Win32.Win32Native.LsaLookupAuthenticationPackage Microsoft.Win32.Win32Native.LsaRegisterLogonProcess Microsoft.Win32.Win32Native.LsaLookupNames2 Microsoft.Win32.Win32Native.LsaConnectNativeUntrusted
Microsoft.Win32.Win3 LsaGetLogonSessionData

也就是说,有人为这些函数编写了一个托管包装器。 http://www.hightechtalks.com/csharp/lsa-functions-276626.html

还有一篇关于 Codeproject、LSA Functions - Privileges and Impersonation 的精彩文章 http://www.codeproject.com/KB/cs/lsadotnet.aspx

于 2010-04-21T17:07:26.000 回答