其实最不用动脑子的方法就是每次用域用户(例如,CompanyDomain\User007)进入系统后,再使用LAdmin 或DAdmin 权限将User007 加入本地管理员组即可,但前提是您必须有管理员权限。有人会问:“直接用本机管理员登录使用不就行了?”这个方案的确可行,但毕竟在域中User007 用户有一些浏览文件服务器目录、邮件等权限,所以如果用LAdmin 登录的话,也时常会遇到需要录入User007 用户名/密码的问题。
最为一劳永逸的方法还是使用服务(Service)。一来服务无需进行手工设置,既省时又省力。二来服务是以管理员权限运行的,也就是说我们不需要什么LAdmin 或DAdmin 就能将User007 加入本地管理员组,这也是使用服务的根本原因。本着这个思路通过System.DirectoryServices 就可以完成一个简单的服务程序。
上面代码首先读取本地管理员组中所有用户,如果用户中不存在User007,则通过DirectoryEntry.Invoke 方法将其加入。另,划掉部分原本是用于获取userPath值(如下代码),但如果计算机没有在域中使用或没有连接网络的话,则服务将无法检测到User007,服务也将无法正常工作。所以直接将userPath 赋为“WinNT://CompanyDomain/User007” 即可。
<a href="http://11011.net/software/vspaste"></a>
1. DirectoryEntry.Invoke Method
<a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.directoryentry.invoke(v=VS.80).aspx">http://msdn.microsoft.com/en-us/library/system.directoryservices.directoryentry.invoke(v=VS.80).aspx</a>
2. DirectoryEntry Class
<a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.directoryentry(v=VS.80).aspx">http://msdn.microsoft.com/en-us/library/system.directoryservices.directoryentry(v=VS.80).aspx</a>
本文转自Gnie博客园博客,原文链接:http://www.cnblogs.com/gnielee/archive/2010/05/27/add-domain-user-to-local-admin-group.html,如需转载请自行联系原作者