目的:根据定制化的计算机名,将其定期移动到指定的OU中,方便管理.
先导出目前AD里的所有计算机.
csvde-dcn=computers,dc=h,dc=com-lcn-r"(objectClass=computer)"-fpclist.csvFOR/F"skip=1eol=;tokens=2,3*delims=,="%%ain(pclist.csv)doecho%%a>>pclist2.csv |
上述语句若需要在命令行下单独执行,请去掉一个百分号.其中根据你AD实际替换DC值.在这个例子里使用了"CSVDE"导出所有计算机到一个CSV文件里,然后用FOR语句筛选有用的信息重新输出到另一个文件.在这里CSVDE可以用dsquery命令去执行,功能更强大.
筛选计算机名的有效值.
|
在这里根据计算名里的字段导出几个列表.
用DSMOVE批量移动计算机到指定的OU.
|
这里就是根据从导出来的列表移动到相应的OU.
可以整理成一个bat执行:
|
最后的效果是:所有以CN-A开头的PC都移动到CHINA里的WORKSTATION里.CN-L就移动到CHINA里的LAPTOP.这样可以有效的分开管理.
|
转载自:http://blog.chinaunix.net/uid-8303972-id-2033116.html
*******************************************************************************************************
批量移动计算机到指定OU
脚本如下:
For/F“tokens=1,2,3″%%ain(computerList.txt)dodsquerycomputer-name%%a|dsmove-newparentou=&&c,OU=%%b,DC=zouserver,DC=local
这是一个for…do循环,循环次数为computerlist.txt中的行数,for每次循环读取computerlist.txt中的一行。执行的主体是:首先查询名称为%%a的计算机,然后将其移动到指定的OU.
Computerlist中的内容格式为――computerA大部门B小部门C.。
Tokens=1,2,3表示读取computerlist.txt中的前几个变量,这里表示读取前三个变量,变量分别读取到%%a,%%b,%%c以此类推。
Dsquerycomputer�Cname%%a查询计算机名为%%a的计算机,并用LDAP://cn=computerA,ou=computers,DC=zouserver,DC=local的格式表示(在运行的时候不会显示出来)。
dsmove-newparentou=%%b,OU=computers,DC=zouserver,DC=local表示把如上的查询到计算机computerA移动到该OU下。
需要注意的是,
1.注意computerlist.txt中的第二个及以后的变量%%b,%%c和LADP层次结构的对应关系。如:
如果在computerlist中的内容形式为:
computerA大部门B小部门C更小部门D
则:LADP://cn=computerA,ou=更小部门D,ou=小部门C,ou=大部门B,dc=zouserver,dc=local.(由小到大排列)
脚本的表示则为:ou=%%d,ou=%%c,ou=%%b,dc=zouserver,dc=local(由小到大排列,与computerlist中部门的排列顺序相反)
变量与部门对应关系对应关系 |
||||
computerA |
大部门B |
小部门C |
更小部门D |
… |
%%a |
%%b |
%%c |
%%d |
… |
2.我们需要在执行脚本前,建立相关的OU及层次,不然会报错,不过报错不会影响后面循环的运行,脚本的循环语句会运行到computerlist中的最后一行。
3.部门层级数(OU层次结构)相同的计算机才能使用该脚本批量移动,不同的部门层次结构需修改脚本中的变量的个数,一旦相关变量个数与OU层次数目不相同,则针对该“计算机”执行就会报错,然后跳过该次执行。
4.由于本脚本查询是针对域的全局查询(dsquery时没定义查询范围),这次每次执行脚本时,可以查找出域中所有计算机,避免了遗落,但是如果在需要移动的计算机数量较少的时候,由于也是先全局查询,这样会影响效率,所以在少量移动且知道源计算机的具体ou的时候,建议指定具体OU。那么脚本如下(粗字体部分即为需要添加的内容):
For/F“tokens=1,2,3″%%ain(computerList.txt)dodsquerycomputerou=test,dc=zouserver,dc=local-name%%a|dsmove-newparentou=%%c,OU=%%b,DC=zouserver,DC=local
转载自:http://hebe852.blog.163.com/blog/static/120726248201281933918801/