DEMO程序连接到域控服务器( C#开发AD域控自动工具之二)
DEMO程序 创建一个用户( C#开发AD域控自动工具之三)
第一个需求,登陆名称绑定计算机名( C#开发AD域控自动工具之四)
对用户按条件添加一个工作站的绑定( C#开发AD域控自动工具之六)
继续上面的内容,我们可以正常的连接到AD域控服务器,然后,我们来新建一个用户:

界面上先摆几个创建用户的字段,我们增加一个新建用户的函数:
public void AddUser2AD(string strUserName, string strSAMAccountname, string strPassword, string strPath)
{
string strname = "CN=" + strUserName;
try
{
// strADAccount ,strADPassword为AD管理员账户和密码
DirectoryEntry objDE = new DirectoryEntry(strPath, AD_admin, AD_password);
DirectoryEntries objDES = objDE.Children;
DirectoryEntry myDE = objDES.Add(strname, "User");
myDE.Properties["userPrincipalName"].Value = strSAMAccountname;
myDE.Properties["name"].Value = strUserName;
myDE.Properties["sAMAccountName"].Value = strSAMAccountname;
myDE.Properties["userWorkstations"].Value = "WINHOST1,WINHOST1";
myDE.CommitChanges();
ps(listBox1, "新增用户:" + strUserName);
/*
//设置密码 ,这里需要到服务器执行
//(需要引用COM: Active DS Type Library,引用命名空间using ActiveDs;)
ActiveDs.IADsUser objUser = myDE.NativeObject as IADsUser;
objUser.SetPassword(strPassword);
//设置用户状态:密码永不过期(65536)+用户正常(512)= 66048
objUser.Put("userAccountControl", 66048);
objUser.SetInfo();*/
}
catch (Exception RaiseErr)
{
ps(listBox1, RaiseErr.Message);
}
}
点一下“新建”用户按钮,我们在域控中创建了一个用户:

这个用户的信息包括:用户名,密码,登录名,绑定的工作站。
但是很快,我们发现,这个用户密码没对。原来,对用户密码的设置需要调用“本地的另一个类库”。
就是说首先要添加一个COM类库,然后程序要在域控服务器上去执行。

头文件声明也加上:

我们打开代码中注释部分,编译后到域控服务器上去执行:

WIN2008的服务器上面还没有安装 .net framework 4.7.2,马上安装一个。(居然还要下载一个证书才能完成4.7.2的安装)

用户创建成功,密码策略设置成功,完美。
找到一个用户属性参数对应表:
AD属性对照表
“常规”标签
姓 Sn
名 Givename
英文缩写 Initials
显示名称 displayName
描述 Description
办公室 physicalDeliveryOfficeName
电话号码 telephoneNumber
电话号码:其它 otherTelephone 多个以英文分号分隔
电子邮件 Mail
网页 wWWHomePage
网页:其它 url 多个以英文分号分隔
“地址”标签
国家/地区 C 如:中国CN,英国GB
省/自治区 St
市/县 L
街道 streetAddress
邮政信箱 postOfficeBox
邮政编码 postalCode 
“帐户”标签
用户登录名 userPrincipalName 形如:pccai1983@hotmail.com
用户登录名(以前版本) sAMAccountName 形如:S1
登录时间 logonHours
登录到 userWorkstations 多个以英文逗号分隔
用户帐户控制 userAccountControl (启用:512,禁用:514, 密码永不过期:66048)
帐户过期 accountExpires 
“配置文件”标签
配置文件路径 profilePath
登录脚本 scriptPath
主文件夹:本地路径 homeDirectory
连接 homeDrive
到 homeDirectory 
“电话”标签
家庭电话 homePhone (若是其它,在前面加other。)
寻呼机 Pager 如:otherhomePhone。
移动电话 mobile 若多个以英文分号分隔。
传真 FacsimileTelephoneNumber
IP电话 ipPhone
注释 Info 
“单位”标签
职务 Title
部门 Department
公司 Company 
“隶属于”标签
隶属于 memberOf 用户组的DN不需使用引号, 多个用分号分隔
“拨入”标签 远程访问权限(拨入或VPN) msNPAllowDialin
允许访问 值:TRUE
拒绝访问 值:FALSE
回拨选项 msRADIUSServiceType
由呼叫方设置或回拨到 值:4
总是回拨到 msRADIUSCallbackNumber 
名:GivenName
属性
| 显示名称 | 属性名称 |
| First Name | givenName |
| Last Name | sn |
| Initials | initials |
| Description | description |
| Office | physicalDeliveryOfficeName |
| Telephone Number | telephoneNumber |
| Telephone: Other | otherTelephone |
| | |
| Web Page | wwwHomePage |
| Web Page: Other | url |
帐号属性:
| 显示名称 | 属性名称 |
| UserLogon Name | userPrincipalName |
| User logon name (pre-Windows 2000) | sAMAccountname |
| Logon Hours | logonHours |
| Log On To | logonWorkstation |
| Account is locked out | userAccountControl |
| User must change password at next logon | pwdLastSet |
| User cannot change password | N/A |
| Other Account Options | userAccountControl |
| Account Expires | accountExpires |
地址属性
| 显示名称 | 属性名称 |
| Street | streetAddress |
| P.O.Box | postOfficeBox |
| City | l |
| State/Province | st |
| Zip/Postal Code | postalCode |
| Country/Region | c,co, and countryCode |
成员属性
| 显示名称 | 属性名称 |
| Member of | memberOf |
| Set Primary Group | primaryGroupID |
组织属性
| 显示名称 | 属性名称 |
| Title | title |
| Department | department |
| Company | company |
| Manager:Name | manager |
| Direct Reports | directReports |
外型属性
| 显示名称 | 属性名称 |
| Profile Path | profilePath |
| Logon Script | scriptPath |
| Home Folder: Local Path | homeDirectory |
| Home Folder: Connect | homeDrive |
| Home Folder: To | homeDirectory |
电话相关属性
| 显示名称 | 属性名称 |
| Home | telephoneNumber |
| Home: Other | otherTelephone |
| Pager | pager |
| Pager: Other | pagerOther |
| Mobile | mobile |
| Mobile: Other | otherMobile |
| Fax | facsimileTelephoneNumber |
| Fax: Other | otherFacsimileTelephoneNumber |
| IP phone | ipPhone |
| IP phone: Other | otherIpPhone |
| Notes | info |
本文介绍如何使用C#开发AD域控自动工具,包括连接域控服务器、创建用户、设置用户属性及密码策略等关键步骤。通过具体示例展示了用户创建过程中的字段设置、异常处理以及必要的服务器配置。
3220





