[导入]在web上对windows用户进行操作 (转)
1
Code2
//这篇文章包含web上对windows用户上的一些操作,同样适用在Winform上。做个标记,要用的时候再来拿3
using System;4
using System.Data;5
using System.Configuration;6
using System.Collections;7
using System.Web;8
using System.Web.Security;9
using System.Web.UI;10
using System.Web.UI.WebControls;11
using System.Web.UI.WebControls.WebParts;12
using System.Web.UI.HtmlControls;13
using System.DirectoryServices;14

15
public partial class _Default : System.Web.UI.Page16


{17
protected void Page_Load(object sender, EventArgs e)18

{19

20
}21
//列出所有用户信息22
protected void btnListAllUser_Click(object sender, EventArgs e)23

{24
DirectoryEntry AD = new DirectoryEntry(@"WinNT://" + Environment.MachineName + ",computer");25
foreach (DirectoryEntry child in AD.Children)26

{27
//列出所有用户信息28
switch (child.SchemaClassName)29

{30
case "User":31
try32

{33
//列出用户信息34
DirectoryEntry entryUser = new DirectoryEntry("WinNT://" + Environment.MachineName + "/" + child.Name + ",User");35
Response.Write("<br>");36
Response.Write(" " + entryUser.Name);37
Response.Write("<br>");38
Response.Write(" " + " " + entryUser.Properties["Description"].Value);39
Response.Write("<br>");40
Response.Write("<br>");41
Response.Write("<br>");42

43
}44
catch (Exception ex)45

{46
Response.Write("发生错误: " + ex.Message);47
Response.Write("<br>");48
}49
finally50

{51

52
}53
break;54
}55
}56

57
}58

59
//列出一组中的成员60
protected void btnGroupUser_Click(object sender, EventArgs e)61

{62
string GroupName = "Users"; //组名63
//string GroupName = "Administrators";64
DirectoryEntry entryGroup = new DirectoryEntry(@"WinNT://" + Environment.MachineName + "/" + GroupName + ",Group");65
Object members = entryGroup.Invoke("Members", null);66
try67

{68
foreach (object member in (IEnumerable)members)69

{70
DirectoryEntry x = new DirectoryEntry(member);71
Response.Write(x.Name + "<br>"); //用户名称72
try73

{74
Response.Write(" " + " " + x.Properties["Description"].Value); //用户描述75
Response.Write(x.Name + "<br>"); //用户名称76
}77
catch78

{79

80
}81
}82

83
}84
catch (Exception ex)85

{86
Response.Write("发生错误: " + ex.Message + "<br>");87
}88
finally89

{90

91
}92

93

94
}95

96
//AD所有成员97
protected void btnAllChildren_Click(object sender, EventArgs e)98

{99
DirectoryEntry AD = new DirectoryEntry(@"WinNT://" + Environment.MachineName + ",computer");100
foreach (DirectoryEntry child in AD.Children)101

{102

103
//这里会列出所有组和服务的信息104
Response.Write(child.Name);105
Response.Write("<br>");106
Response.Write(child.SchemaClassName);107
Response.Write("<br>");108
Response.Write("<br>");109
}110

111
}112

113
//添加用户114
protected void btnAddUser_Click(object sender, EventArgs e)115

{116
try117

{118
DirectoryEntry AD = new DirectoryEntry(@"WinNT://" + Environment.MachineName + ",computer");119
//添加用户,用户名:NewUser120
DirectoryEntry NewUser = AD.Children.Add("NewUser", "User");121
//设置密码,密码:mypassword122

NewUser.Invoke("SetPassword", new object[]
{ "mypassword" });123

NewUser.Invoke("Put", new object[]
{ "Description", "myDescription" });124
//提交修改125
NewUser.CommitChanges();126

127
//将用户添加到users组128

object[] objNewUser = new object[]
{ NewUser.Path };129
DirectoryEntry groupUser = AD.Children.Find("Users", "group");130
groupUser.Invoke("Add", objNewUser);131
}132
catch (Exception ex)133

{134
Response.Write("添加用户时发生错误:" + ex.Message + "<br>");135

136
}137
}138

139
//修改用户密码140
protected void btnChangpwd_Click(object sender, EventArgs e)141

{142
DirectoryEntry AD = new DirectoryEntry(@"WinNT://" + Environment.MachineName + ",computer");143
DirectoryEntry Cuser = AD.Children.Find("NewUser");144
try145

{146

Cuser.Invoke("SetPassword", new object[]
{ "myNewpassword" });147
Cuser.CommitChanges();148
}149
catch (Exception ex)150

{151
Response.Write("修改密码时发生错误:" + ex.Message + "<br>");152
}153
}154

155
//把用户从组中移除156
protected void btnRemoveUserfromGroup_Click(object sender, EventArgs e)157

{158
DirectoryEntry AD = new DirectoryEntry(@"WinNT://" + Environment.MachineName + ",computer");159
DirectoryEntry entryUser = AD.Children.Find("NewUser", "User");160

object[] objUser = new object[]
{ entryUser.Path };161
try162

{163
//查找users组164
DirectoryEntry grpUsers = AD.Children.Find("Users", "group");165
//从User组中移除166
grpUsers.Invoke("remove", objUser);167
}168
catch (Exception ex)169

{170
Response.Write("将用户从组中移除时发生错误:" + ex.Message + "<br>");171
}172
}173

174
//删除用户175
protected void btnDeleteUser_Click(object sender, EventArgs e)176

{177
DirectoryEntry AD = new DirectoryEntry(@"WinNT://" + Environment.MachineName + ",computer");178
try179

{180
DirectoryEntry ChildUser = AD.Children.Find("NewUser", "User");181
if (ChildUser.Name != null && ChildUser.Name != "")182

{183
AD.Children.Remove(ChildUser);184
}185
}186
catch (Exception ex)187

{188
Response.Write("将用户删除时发生错误:" + ex.Message + "<br>");189
}190
}191
}192

193
文章来源:http://ejimgao.blog.163.com/blog/static/4203001620077316102569 194


浙公网安备 33010602011771号