另类域用户添加方案

首先介绍一下域、域用户、计算机之间的关系:在域里面建立域用户,计算机加入域,域用户登录计算机。现在很多的域管理办法就是为计算机设置某一个域用户为管理员权限,从而禁止其他域用户对该电脑的正常使用。常规的

首先介绍一下域、域用户、计算机之间的关系:

在域里面建立域用户,计算机加入域,域用户登录计算机。

现在很多的域管理办法就是为计算机设置某一个域用户为管理员权限,从而禁止其他域用户对该电脑的正常使用。

常规的域建立流程是这样:先建立域用户,设置好域用户名字。把计算机修改名字后加入域。添加指定的域用户为管理员。重启计算机。

建立域用户就找出通讯录,一个个的添加进去。修改计算机名字加入域,需要输入域控的权限账号才能加入。添加指定域用户为管理员。也需要输入权限账号。

那么这些重复的步骤需要怎么优化它呐?

重复的过程能否用批处理去完成呐?

下面就是用批处理解决这个的思路:

批处理中可以用dsadd user命令去添加域用户, 是否就可以把用户名,登陆账号等信息记录成记事本,然后运行批处理添加呐?显然是可以的。

修改计算机名字也可以用批处理完成。

添加用户成管理员也可以用net localgroup Administrators命令实现。

那么就串联起来么?

由于需要加域都是在网络环境下,这个能否利用起来呐?

我在一台未加域电脑上能否使域控自动添加一个我需要的用户名呐?然后根据这个用户修改相关的计算机名、管理员。

在域控上循环运行一个添加用户的批处理,然后去获取一个可供写入内容的文件内容。这样不就可以实时的生成一个域用户了么?根据建立这个域用户的时候用到的账号等信息不就可以快速的修改计算机名、管理员权限了么?

根据这个思路:

将批处理分为两个部分。第一个是域控上的循环读取添加域用户脚本。第二个是在网计算机的一个写入、修改脚本。

在域控上设置一个共享文件夹,以便第二部分写入内容:

————————————————————————————————————————————— @echo on

:1

for /f a in ('dir /a-d d:�* /b') do set a=a

for /f b in ('type d:�a') do set b=b

dsadd user "cn=a,ou=容器,dc=jzjx,dc=com" -company 公司 -dept 部门 -pwd p@ssw0rd -mustchpwd yes -canchpwd yes -samid b -upn b@域名.com -fn a:~0,1 -ln a:~1,5 -display a -desc 0 -office 部门 -memberof "cn=部门,ou=容器,dc=域名,dc=com" -mobile 0 -fax 10150|findstr " 成功:cn=a"&&del d:�a /f

ping 127:1 -n 2 >>nul

set a=

set b=

goto 1

—————————————————————————————————————————————

这个循环脚本就可以循环读取共享文件D:�里面的文件名和文件内容,并根据他们生成域账号。 第二部分的写法就需要非常完善了。

由于XP 系统还在继续服务,但是却由于优化太严重,让加域变成了难题。

那么就要先处理这些难题。以域控IP 为192.168.91.7为例:

,

————————————————————————————————————————————— @echo off

color 1e

echo 加域前的准备:

echo 为优化、精简过的XP 系统启动必要的服务。

ver|findstr "xp"&&sc config Browser start= auto

ver|findstr "xp"&&sc config lanmanServer start= auto

ver|findstr "xp"&&sc config LmHosts start= auto

ver|findstr "xp"&&sc config lanmanworkstation start= auto

for a in (server,workstation,Browser,"TCP/IP NetBIOS Helper") do net start|findstr /i /e a >>nul&&echo a已经启动||net start a

echo 测试与域控的通信

:2

ping 192.168.91.7 -n 2 |findstr "ms" >nul &&echo 与域控连接畅通&&goto 1||echo 与域控连接有故障&&goto 2

:1

Rem 这几个服务就是影响加域是否正常的关键, 测试与域控的连通性,如果都不能访问了。那么也不用想加域了吧。

echo 修改本地连接的DNS 信息

for /f a in ('wmic nicconfig where^(ipenabled^=true^) get index^|findstr [0-99]') do set i=a

wmic nicconfig where(index=i) call setdnsdomain ("192.168.91.7") >nul

wmic nicconfig where(index=i) call setdnsserversearchorder ("192.168.91.7") >nul

pause

rem 现在网络连接各种各样的,可能你这个是本地连接,另一个是无线连接,所以在修改DNS 的方法上使用了wmic 命令查找有效IP 地址的接口,在该接口设置DNS 信息。

set /p l=输入你所在房间号

set /P n=输入你的姓名拼音

set /P h=输入你的姓名汉字

net use 2.168.91.7 "p@ssw0rd" /user:域名�ministrator

echo n >2.168.91.7�h

echo 等待域控主机添加账号信息

echo 运行中,请不要关闭本窗口...

ping 127:1 -n 3 >>nul

rem 将域用户echo 到共享文件夹里面去。让循环脚本添加域用户。通过n 的数值不同来错过时间差。 set name=l-n

reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetControlComputerName�tiveComputerName" /v ComputerName /t reg_sz /d name /f >nul 2>nul

reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetControlComputerNameComputerName" /v ComputerName /t reg_sz /d name /f >nul 2>nul

reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetServicesTcpipParameters" /v "NV Hostname" /t reg_sz /d name /f >nul 2>nul

reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetServicesTcpipParameters" /v Hostname /t reg_sz /d name /f >nul 2>nul

,

echo 修改计算机名完毕

rem 修改计算机名,测试发现,就只有注册表修改计算机名的方式才可以不需要重启就可以被域识别。 wmic computersystem where name="computername" call JoinDomainOrWorkGroup FJoinOptions=3 name="域名.com" username="administrator@域名.com" password="p@ssw0rd"

rem 关键的自动加域的命令

net localgroup Administrators "n@域名.com" /add

rem 权限提升

—————————————————————————————————————————————

整个批处理介绍完毕。

这里没有涉及到部门的划分,就是说还有修改的空间。本来拟定在建立域用户的时候用choice 命令快速的选择你属于的部门以供循环脚本读取。大家也知道XP 的未必有choice 命令。于是就放弃了这样的写法。部门是默认的都在同一个部门,需要在域控上重新手动调整。

标签: