.net程序实现给机器加域,添加域账号到本地管理员
以下.net代码中共有两个方法。
AddComputerToDomain实现给把本计算机添加到某个域中
AddDomainUserToLocalAdminGroup实现把域中某用户添加到本地管理员
请添加引用System.DirectoryServices,在.NET下
具体代码如下:
using System;
using System.DirectoryServices;
using System.Runtime.InteropServices;
using log4net; namespace ZhengShuangliang
{
class Program
{
static ILog _log=LogManager.GetLogger(typeof(Program)); static void Main(string[] args)
{
string domain = "domainname.com";
string account = "hellodev";
string password = "P@swrd1"; AddComputerToDomain(domain ,account,password); //string addedusername = "zslservices";
//string localgroup = "Administrators";
//AddDomainUserToLocalAdminGroup(domain, addedusername, localgroup); Console.Read();
} public static void AddDomainUserToLocalAdminGroup(string domainname, string username, string localgroup)
{
try
{
string userPath = string.Format("WinNT://{0}/{1},user", domainname, username);
string groupPath = string.Format("WinNT://{0}/{1},group", Environment.MachineName, localgroup);
using (DirectoryEntry group = new DirectoryEntry(groupPath))
{
group.Invoke("Add", userPath);
group.CommitChanges();
}
Console.WriteLine(string.Format(@"Add domain user: {0}\{1} to local group: {2} successed!", domainname,
username, localgroup));
_log.Debug(string.Format(@"Add domain user: {0}\{1} to local group: {2} successed!", domainname,
username, localgroup));
}
catch (System.DirectoryServices.DirectoryServicesCOMException ex)
{
_log.Error("AddToGroup occur Error:", ex);
}
} static void AddComputerToDomain(string domain ,string account,string password)
{
uint result = Join.DomainJoin("", domain, "", account, password);
if (result == )
{
_log.Debug(string.Format("Add to domain: {0} successed!", domain));
Console.WriteLine(string.Format("Add to domain: {0} successed!", domain));
}
else
{
_log.Debug(string.Format("Add to domain: {0} failed!, errorCode:{1}", domain, result));
Console.WriteLine(string.Format("Add to domain: {0} failed!, errorCode:{1}", domain, result));
} Console.Read();
} public class Join
{ [DllImport("netapi32.dll", CharSet = CharSet.Unicode)]
static extern uint NetJoinDomain(
string lpServer,
string lpDomain,
string lpAccountOU,
string lpAccount,
string lpPassword,
JoinOptions NameType); [Flags]
enum JoinOptions
{
NETSETUP_JOIN_DOMAIN = 0x00000001,
NETSETUP_ACCT_CREATE = 0x00000002,
NETSETUP_ACCT_DELETE = 0x00000004,
NETSETUP_WIN9X_UPGRADE = 0x00000010,
NETSETUP_DOMAIN_JOIN_IF_JOINED = 0x00000020,
NETSETUP_JOIN_UNSECURE = 0x00000040,
NETSETUP_MACHINE_PWD_PASSED = 0x00000080,
NETSETUP_DEFER_SPN_SET = 0x10000000
} public static uint DomainJoin(string server, string domain, string OU, string account, string password)
{
try
{
uint value1 = NetJoinDomain(server, domain, OU, account, password, (JoinOptions.NETSETUP_JOIN_DOMAIN | JoinOptions.NETSETUP_DOMAIN_JOIN_IF_JOINED | JoinOptions.NETSETUP_ACCT_CREATE));
if (value1 == )
{
_log.Debug("Go through to 2224, Existing computer account found....");
value1 = NetJoinDomain(null, domain, null, account, password, (JoinOptions.NETSETUP_JOIN_DOMAIN));
}
return value1;
}
catch (Exception e)
{
_log.Error(e);
Console.WriteLine(e.Message);
return ;
}
}
}
}
}
.net程序实现给机器加域,添加域账号到本地管理员的更多相关文章
- Office 365 – SharePoint 2013 Online 中添加域和域名
1.在SharePoint Online管理中心,点击菜单上的添加域,如下图: 2.进入管理域的页面,点击添加域来添加我们自己的域名,如下图: 3.进入“在 Office 365中添加新域”的向导,跟 ...
- 一次hadoop集群机器加内存的运维过程
由于前期的集群规划问题,导致当前Hadoop集群中的硬件并没有完全利用起来.当前机器的内存CPU比例为2G:1core,但一般的MapReduce任务(数据量处理比较大,逻辑较复杂)的MR两端都需要将 ...
- 关于无法把程序(Adobe Fireworks CS5)添加到打开方式的解决办法
关于无法把程序(Adobe Fireworks CS5)添加到打开方式的解决办法 最近换了新版的Adobe Fireworks CS5,发现打开图片文件时在右键“打开方式”里仍然是以前的Firewor ...
- 为什么不建议给域名裸域添加CNAME记录
很多提供权威 DNS 解析的服务商都不提供域名裸域又叫根域(root record)的 CNAME 解析,有些即使提供了也会在你添加裸域的 CNAME 记录时给你一个警告提醒. 万网的权威 DNS 解 ...
- Microsoft Dynamics CRM 2011 批量添加域用户 然后添加CRM用户
一.先了解下 DSADD user命令详解 常见的批量创建用户的方法有四种: 一. 帐户模板的方式 二. CSVDE和LDIFDE 三. 脚本的方式 四. DSADD 但是很少有详细的资料使用DSAD ...
- 微信小程序开发动感十足的加载动画--都在这里!
代码地址如下:http://www.demodashi.com/demo/14242.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第14章节--使用Office Services开发应用程序 新的机器翻译服务
BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第14章节--使用Office Services开发应用程序 新的机器翻译服务 机器翻译服务也是继Wor ...
- 简单的自动化使用--使用selenium实现学习通网站的刷慕课程序。注释空格加代码大概200行不到
简单的自动化使用--使用selenium实现学习通网站的刷慕课程序.注释空格加代码大概200行不到 相见恨晚啊 github地址 环境Python3.6 + pycharm + chrom浏览器 + ...
- 【Matlab】向图像域添加噪声/高斯/均匀/伽马/指数/椒盐
[向图像域添加噪声] matlab自带一个函数:imnoise,可以对图像添加噪声. Matlab的说明 https://www.mathworks.com/help/images/ref/imnoi ...
随机推荐
- 利用 Traceview 精准定位启动时间测试的异常方法 (工具开源)
机智的防爬虫标识原创博客地址:http://www.cnblogs.com/alexkn/p/7095855.html博客求关注: http://www.cnblogs.com/alexkn 1.启动 ...
- JVM总结之内存区域
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,有的区域是线程共享的,有的区域是线程隔离的.如下图: 程序计数器 程序计数器(Progra ...
- easyui(一) 初始easyui
中午贪睡,睡到3点多,爬起来赶紧学习,学习是我快乐(自我催眠).哈哈~ --WH 一.什么是easyui? 学习一个东西,最重要的是知道它的定位(是干嘛的,基本的用法是什么,快速入门),其实easyu ...
- Log4Net不同日志类型写入到不同文件
1. 一直在用log4net,从来没有自己整理过.实践出真知,只有自己整理过才能真正掌握. 2. log4net,应该读logfornet,以前一直说log4,log4............ 安装 ...
- js 实现图片压缩并转换成base64(data:image/jpeg;base64)格式
<!DOCTYPE html> <html> <head> <!--by 0o晓月メ http://www.cnblogs.com/final-elysion ...
- centos 7 安装MySQL 5.6
本文根据mysql的官方文档操作:https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/ 由于Centos7 默认数据库是mariabd(网上 ...
- AugularJS从入门到实践(一)
前 言 前端 AngularJS是为了克服HTML在构建应用上的不足而设计的.(引用百度百科) AngularJS使用了不同的方法,它尝试去补足HTML本身在构建应用方面的缺陷.Angu ...
- Struts 之 通配符 路径匹配 常量用法 配置默认值
Struts 框架学习 Action的开发的几种方式 方式1 : 继承ActionSupport 如果使用Struts校验功能,必须继承此类 方式2 : 实现Action接口 方式3 :不继承 ...
- java 邮件发送工具类
首先需要下载mail.jar文件,我个人通常是使用maven中心库的那个: <dependency> <groupId>javax.mail</groupId> & ...
- 面向对象15.3String类-常见功能-判断
/*3.判断 * 3.1两个字符串内容是否相同? * boolean equals(Object obj)(参数是Object,不是String,因为equals是覆盖Object里面的equals方 ...