如下代码须要修改的地方有域名,ou对应的组织名称ide
复制代码到C盘根目录 保存成XXX.ps1 执行code
#第一个总循环,用来作相似(goto标签) for($i=1;$i -le 5;$i++){ #第一个定位if if($i -eq 1){ #清屏 cls #返回根目录,而且打开C盘 cd \ c: #经过 if test-path 判断是否存在文件,存在删除,不存在跳过按顺序执行下面的语句 if(test-path user.txt){del user.txt} if(test-path log.txt){del log.txt} if(test-path name.txt){del name.txt} #建立空文本文档 new-item user.txt -type file >> null new-item name.txt -type file >> null new-item log.txt -type file >> null echo '-------------------------------------------------' echo '*******这是一个批量迁移用户到指定OU的脚本********' echo '-------------------------------------------------' #脚本继续,因此指定变量i 增长 $i = 2 } #第二个定位if if($i -eq 2){ echo '' echo '【1】请输入你须要变动的用户帐号,直到输入数字"1"回车,跳转到OU选择。' echo '【2】若是你想批量导入已知帐户,把名字复制到C:\name.txt,一行一个帐户名字,而后输入2回车' echo '' #作一个批量查询用户的变量循环 #变量j无心义,重复使用中,利用来作标签订位,continue是跳出当前循环。 for($j = 1;$j -le 4;$j++){ $name = read-host "变动的用户名" #当查询人员结束,输入数字1回车跳转到部门选择 if($name -eq "1"){ $j=5 continue } #当已有本身的名单的时候,能够把名单存放到c:\name.txt中,进行批量转换 if($name -eq '2'){ $name_array =cat name.txt foreach($name_id in $name_array){ dsquery user -samid $name_id >> user.txt } $j = 5 echo "" continue } #判断用户名是否存在AD域控中。 if(dsquery user -samid $name){ $name_cn = dsquery user -samid $name $name_array =cat c:\user.txt $j=0 }else{ echo "域用户名不存在,请从新输入查询" $j=0 echo "" continue } #判断查询的用户是否重复存在文档中。 if($name_array -contains $name_cn){ echo '已存在用户' $j=0 echo "" continue }else{ dsquery user -samid $name >>user.txt $name_cn $j=0 echo "" continue } } $i =3 } #第三个定位if if($i -eq 3){ echo '' echo '------------------------------------------------------------' echo '************请输入你要变动到的部门名称**********************' echo '部门名字有空格,是须要使用双引号""包起来,建议查询都包起来' echo '若是不知道部门名称,能够输入数字"2"回车,查询组织下全部部门' echo '------------------------------------------------------------' echo '' #部门作了一个循环,用来选择部门用的 #这里ou=all 是顶级组织,按公司实际状况而定。abcd是公司的域名 for($j=1;$j -le 4;$j++){ $bumen = read-host "变动的部门名称" #查询组织下全部部门 if($bumen -eq 2){ dsquery ou 'ou=ALL,dc=abcd,dc=com' -o rdn $j = 0 echo '' continue } #查看部门是否存在 if(dsquery ou -name $bumen){ $bumen_cn = dsquery ou -name $bumen $bumen_cn $j =5 }else{ echo '部门不存在,请从新输入。' echo '' $j=0 } } $i =4 } #第四个定位if if($i -eq 4){ echo '' echo -------------------------------------------------------- echo '*********是否要把选择的用户,变动到此部门***************' echo '【1】确认人员变动到部门' echo '【2】部门选择错误,从新选择部门' echo '【3】新增人员' echo -------------------------------------------------------- echo '' $select = read-host "请输入您的选择" if($select -eq 1){ $name_cn = cat c:\user.txt foreach($j in $name_cn){ dsmove $j -newparent $bumen_cn >>log.txt } $i=6 continue } if($select -eq 2){ $i=2 continue } if($select -eq 3){ $i=1 continue } echo "" echo "请输入正确的选择:【1】【2】【3】" $i = 3 } }