如何以编程方式添加用户帐户策略?

时间:2010-02-09 16:40:26

标签: c# .net policy

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

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

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

另外一个使用示例将不胜感激。

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

1 个答案:

答案 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