DEMO程序连接到域控服务器( C#开发AD域控自动工具之二)
DEMO程序 创建一个用户( C#开发AD域控自动工具之三)
第一个需求,登陆名称绑定计算机名( C#开发AD域控自动工具之四)
对用户按条件添加一个工作站的绑定( C#开发AD域控自动工具之六)
接到一个需求:把添加了jk-s-mail04、jk-s-mail05、jk-s-mail06工作站的用户,再添加一个jk-s-mail07工作站。
看了一下AD域控的用户总数,有14512人。
下面的代码实现这个功能,并对“添加jk-s-mail07工作站”的用户记录下了日志。
![]()
程序工作了20分钟,完成对7546个用户的“jk-s-mail07”工作站添加。
public static string tt = DateTime.Now.ToString("yyyyMMddHHmmssff") + " log.txt";
//日志处理(1/4)
public static StreamWriter sw = new StreamWriter(tt, true, Encoding.GetEncoding("gb2312"));
//把添加了jk-s-mail04、jk-s-mail05、jk-s-mail06的用户,批量添加jk-s-mail07
private void button11_Click(object sender, EventArgs e)
{
//线程
Control.CheckForIllegalCrossThreadCalls = false;
Thread m1Thread = new Thread(new ThreadStart(m1));
m1Thread.IsBackground = true;
m1Thread.Start();
}
private void m1()
{
//不指定OU,我们对根作查询操作
DirectoryEntry objDE = new DirectoryEntry("LDAP://10.xx.xx.xx" + "/" + "DC=" + "myad" + ",DC=" + "com", "adminxxx", "Testxxx");
//OU下的用户全部找出来
string strFilter = "(&(objectCategory=person)(objectClass=user))";
DirectorySearcher objSearcher = new DirectorySearcher(objDE, strFilter);
//objSearcher.Sort = new SortOption("name", SortDirection.Ascending);//排序
SearchResultCollection src = objSearcher.FindAll();
int i = 0; int k = 0;
foreach (SearchResult one in src)
{
i++;
toolStripStatusLabel1.Text= i.ToString();
DirectoryEntry de = one.GetDirectoryEntry();
string oldws = Convert.ToString(de.Properties["userWorkstations"].Value); //注意这里null用convert
string[] szold = oldws.Split(',');
int a = 0, b= 0, c = 0,d = 0;
foreach (string pc in szold)
{
if (pc.Equals("jk-s-mail04")) a = 1;
if (pc.Equals("jk-s-mail05")) b = 1;
if (pc.Equals("jk-s-mail06")) c = 1;
if (pc.Equals("jk-s-mail07")) d = 1;
}
if ( ((a+b+c) == 3) && (d == 0) )
{
listBox1.Items.Insert(0, de.Properties["sAMAccountName"].Value.ToString());
//日志处理(2/4)
sw.WriteLine(de.Properties["sAMAccountName"].Value.ToString());
k++;
toolStripStatusLabel2.Text = "符合条件的用户数:"+ k.ToString();
de.Properties["userWorkstations"].Value = de.Properties["userWorkstations"].Value + ",jk-s-mail07";
de.CommitChanges();
}
}
//日志处理(3/4)
sw.Flush(); //缓存区写文件
//日志处理(4/4)
sw.Close();
}
博客围绕C#开发AD域控自动工具展开,涵盖搭建开发环境、连接域控服务器、创建用户等内容。还提及具体需求,如登陆名称绑定计算机名、把用户加入组等,最后展示了为部分用户添加工作站并记录日志的功能实现及工作成果。
5503

被折叠的 条评论
为什么被折叠?



