ADドメイン制御一括移行ユーザーを指定ou中部門へ
3599 ワード
次のコードを123にコピーします.txtファイルでは、接尾辞名を123に変更する.bat、保存ディレクトリは任意の場所です
その中で主に、私のここのドメインコントロールはabcdで、対応するドメインコントロールの名前を修正する必要があります、またouも対応するOUの部門に指定します
その中で主に、私のここのドメインコントロールはabcdで、対応するドメインコントロールの名前を修正する必要があります、またouも対応するOUの部門に指定します
@echo off
::
cls
:: , C
cd \
c:
:: cmd A,
:A
::echo.
echo.
:: if exist , ,
if exist user.txt ( del user.txt )
if exist log.txt ( del log.txt )
if exist name.txt ( del name.txt )
echo -------------------------------------------------
echo ******* OU ********
echo -------------------------------------------------
echo.
echo 【1】 , "1" , OU 。
echo 【2】 , C:
ame.txt, , "2"
echo.
:: user.txt
echo off > user.txt
:: cmd B,
:B
:: ,name , name_cn 1,
set /p name= :
set name_cn=1
:: 1, C,
if %name%==1 (goto C)
if %name%==2 (for /f "delims=" %%i in (name.txt) do (dsquery user -name %%i >> user.txt)) &goto C
::for , name_cn, delims (for , )
:: : -samid , , , ,
for /f "delims=" %%i in ('dsquery user -samid %name%') do (set name_cn=%%i )
::for , , B,
for /f "delims=" %%i in (user.txt) do (if %name_cn%==%%i (echo , 。 &echo. &goto B))
::if , AD , , , user.txt , B ,
if %name_cn%==1 (echo , 。&echo. &goto B) else (dsquery user -name %name% >> user.txt &echo %name_cn% &echo. &goto B)
:: cmd C,
:C
echo.
echo ------------------------------------------------------------
echo ************ **********************
echo , "" ,
echo , "2" ,
echo ------------------------------------------------------------
echo.
:: cmd D,
:D
:: bumen , bumen_cn ==1%
set /p bumen= :
set bumen_cn=1
:: , 2, ,
::ou=ALL, , ,dc=abcd , dc=XXX,dc=com,XXX
if %bumen%==2 (dsquery ou ou=ALL,dc=abcd,dc=com -o rdn & echo. &goto D)
:: ou , bumen_cn
for /f "delims=" %%i in ('dsquery ou -name %bumen%') do (set bumen_cn=%%i)
:: , OU, E
if %bumen_cn%==1 (echo , 。&echo. &goto D) else (echo %bumen_cn% &goto E)
:E
echo.
echo --------------------------------------------------------
echo ********* , ***************
echo 【1】
echo 【2】 ,
echo 【3】
echo --------------------------------------------------------
echo.
:: select %
set /p select= :
:: if , 1 , , ou, c:\log.txt , F
:: ,if for , for , , for F ,
if %select%==1 (for /f "delims=" %%i in (user.txt) do (dsmove %%i -newparent %bumen_cn% >> log.txt)) &goto F
if %select%==2 (echo. &goto D)
if %select%==3 (echo. &goto B)
echo " , 。" &goto E
:F
echo.
echo -------------------------------------------------------------
echo ********** , c:\log.txt 。*************
echo 【1】 ,
echo 【2】
echo -------------------------------------------------------------
echo.
:: num,
set /p num= :
if %num%==1 (goto A)
if %num%==2 (goto Z)
echo " , 。" &goto F
:Z
:: cmd ,
pause
echo on