使用ADSI API寻找示例以编程方式创建Windows组。 AD是Windows Active Directory http://en.wikipedia.org/wiki/Active_Directory
'SI'可能是服务接口?
无论如何,这个领域没有很好的记录。 。 。我见过一些PowerShell脚本。 。 。但实际上并不想确保安装PowerShell等。一个简单的程序运行并确保将MY_XYZ_GROUP添加到Window的一组组中.....
应该很容易......看起来并不那么容易。
答案 0 :(得分:2)
ADSI = Active Directory Service Interfaces - 它是与Active Directory通信以在Active Directory中创建用户,组和计算机帐户的API - 基于网络的Microsoft网络LDAP目录。
那么您需要在本地计算机/服务器上创建本地用户,还是需要在Active Directory中创建组?
如果您使用.NET 3.5及更高版本进行编程,则应该查看System.DirectoryServices.AccountManagement
(S.DS.AM)命名空间。在这里阅读所有相关内容:
基本上,您可以定义域上下文并轻松在AD中查找用户和/或组:
// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// find a user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName");
if(user != null)
{
// do something here....
}
// create a group
GroupPrincipal group = new GroupPrincipal(ctx, "Group01");
// set other properties on the group here.....
group.Save();
新的S.DS.AM让您可以轻松地与AD中的用户和群组一起玩!
更新:不可思议的是,新的S.DS.AM不适用于本地组:-(它仅供Active Directory使用。
如果您需要创建本地Windows组,则需要使用较旧的DirectoryEntry
方法,例如:
// bind to your machine's WinNT:// provider
DirectoryEntry computer = new DirectoryEntry("WinNT://YourMachineNameHere");
// create a new local group on your computer
DirectoryEntry newGroup = computer.Children.Add("NewGroupName", "Group");
// save that group to the local machine
newGroup.CommitChanges();
// refresh the property cache so you can set properties like "Description" or others
newGroup.RefreshCache();
newGroup.Properties["description"].Value = "Description for your group....";
newGroup.CommitChanges();
Richard Mueller有great list of Excel sheets显示所有可用的属性,包括基于LDAP的Active Directory对象,以及非常有限的WinNT属性。
答案 1 :(得分:1)
NetLocalGroupAddMembers(Windows API)是我正在寻找的API,与ADSI方法相比,使用的工作少得多。按照MSDN中的说明进行编码,测试和工作。
不清楚为什么我的所有相关和广泛的互联网搜索都没有这个API - 一个原因是我不包括'本地'。
以下是MSDN链接: http://msdn.microsoft.com/en-us/library/windows/desktop/aa370436(v=VS.85).aspx