我使用API NetUserAdd和NetUserSetGroups添加用户帐户并将其与组关联到计算机。不久之后,我发现了一个能够使用System.DirectoryServices
命名空间和DirectoryEntry
对象做同样事情(添加用户,将他与一个组关联)的示例。
现在我需要为新帐户添加政策,并面临类似的问题。我可以使用LsaOpenPolicy
和LsaAddAccountRights
API来添加策略和帐户,但我更喜欢使用.NET对象和方法。
我的问题是,.NET框架中是否有对象方法来添加和/或修改用户帐户策略设置,如果是,那些对象或方法的名称是什么?
另外一个使用示例将不胜感激。
具体来说,我希望将“SeServiceLogonRight”(也称为登录服务权限)添加到新用户帐户。
答案 0 :(得分: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.LsaConnectUntrusted
Microsoft.Win32.Win32Native.LsaGetLogonSessionData
也就是说,有人在这些函数上编写了一个托管包装器。 http://www.hightechtalks.com/csharp/lsa-functions-276626.html
还有一篇关于Codeproject,LSA Functions - Privileges and Impersonation的文章 http://www.codeproject.com/KB/cs/lsadotnet.aspx