使用powershell 編寫一個批量移動用戶到指定ou的腳本

如下代碼須要修改的地方有域名,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
    }
}
相關文章
相關標籤/搜索