注:运行修改计算机的账号必须具有管理员权限 -reboot参数我设置的5,可能会看不到echo y传递的结果,你可以设置成10.
http://bbs.51cto.com/thread-968398-1.html
受到链接中专家的启发,以及网上的一些资料。
二次更新20151108这次更新主要内容是不需要放在C盘,你可以放在任何一个地方,也可以放在共享目录。
并且不需要再去某个目录下选择对应操作系统的脚本,脚本会自动判断当前系统,也能判断win7是32位还是64位。
附件中带了一个脚本批量替换工具,把所有脚本拖进去。
依次批量更改
abc.com改成你的域名
administrator 改成你的有域权限的帐号
123456改成帐号的密码
192.168.1.x改成域dns地址
然后就可以直接用了。
自己写了一个win7x86/64 winxp加域退域脚本。测试DC是Server2008R2。
使用方法。
内部文件
改完后打开确认下目标BAT内的Domain,DNS和帐号密码都换成你自己的。
选择1的话系统会进行判断当前操作系统并自动选择启动对应的脚本。
界面大致如图
根据提示一步一步操作。
退域也类似。
这个和链接中的区别是不需要先更改名再重启再加域,而是可以先加域,然后直接改名,重启一次就够了。
xp的需要在管理员帐号下运行。
贴下部分代码:
加域退域.bat
@echo off
color 2f
title 请用系统管理员权限运行此加域脚本
rem %~dp0表示"当前路径\"
::本脚本只在WindowsXPx86&Windows7x86/x64系统测试过
::判断当前操作系统是xp还是win7x86 or win7x64
:start
echo.
echo.
echo. 输入以下数字或字母选择操作
echo. 1.脚本自动判断操作系统并加域改名 成功后10S重新启动
echo. 2.脚本自动判断操作系统并退域后重新加域后 成功后10S重新启动
echo. 3.直接退出输入n即可
set /p a=:
if %a%==1 goto ver1
if %a%==2 goto ver2
if /i %a%==n goto exit
echo.
echo.
echo 输入错误请重新选择&goto start
echo.
echo.
:ver1
ver |findstr "5.1" >nul&&goto xp
ver |findstr "6.1" >nul&&goto win7
:xp
echo.
echo. 判断当前系统为【WindowsXP X86】操作系统 如与实际不符 请按右上角X退出
ping -n 5 127.0.0.1 >nul
echo %~dp0 |findstr /i ":"
if %errorlevel% EQU 0 goto xplocal
if %errorlevel% NEQ 0 goto xpnet
:xpnet
start "" "%~dp0XPx86net\以管理员权限运行-加域.bat"
exit
:xplocal
cd /d "%~dp0XPx86"
start "" "以管理员权限运行-加域.bat"
exit
:win7
if /i "%PROCESSOR_IDENTIFIER:~0,3%"=="X86" (goto win7x86 ) else (goto win7x64)
:win7x86
echo.
echo. 判断当前系统为【Windows 7 X86】操作系统 如与实际不符 请按右上角X退出
echo.
ping -n 5 127.0.0.1 >nul
start "" "%~dp0win7x86\以管理员权限运行-加域.bat"
exit
exit
:win7x64
echo.
echo. 判断当前系统为【Windows 7 X64】操作系统 如与实际不符 请按右上角X退出
echo.
ping -n 5 127.0.0.1 >nul
start "" "%~dp0win7x64\以管理员权限运行-加域.bat"
exit
:ver2
ver |findstr "5.1" >nul&&goto xp
ver |findstr "6.1" >nul&&goto win7
:xp
echo.
echo. 判断当前系统为【WindowsXP X86】操作系统 如与实际不符 请按右上角X退出
ping -n 5 127.0.0.1 >nul
echo %~dp0 |findstr /i ":"
if %errorlevel% EQU 0 goto xplocal
if %errorlevel% NEQ 0 goto xpnet
:xpnet
start "" "%~dp0XPx86net\以管理员权限运行-退域并加域.bat"
exit
:xplocal
cd /d "%~dp0XPx86"
start "" "以管理员权限运行-退域并加域.bat"
exit
:win7
if /i "%PROCESSOR_IDENTIFIER:~0,3%"=="X86" (goto win7x86 ) else (goto win7x64)
:win7x86
echo.
echo. 判断当前系统为【Windows 7 x86】操作系统 如与实际不符 请按右上角X退出
echo.
ping -n 5 127.0.0.1 >nul
start "" "%~dp0win7x86\以管理员权限运行-退域并加域.bat"
exit
:win7x64
echo.
echo. 判断当前系统为【Windows 7x64】操作系统 如与实际不符 请按右上角X退出
echo.
ping -n 5 127.0.0.1 >nul
start "" "%~dp0win7x64\以管理员权限运行-退域并加域.bat"
exit
:exit
exit
win7x64 加域
@echo off
color 2f
title 请用系统管理员权限运行此加域脚本
set primarydns=192.168.1.x
set domain=abc.com
set admin=administrator
set password=123456
echo.
echo.
echo 运行前请检查脚本内的DNS,DOMAIN,ADMIN,PASSWORD
echo.
echo 在实机操作前请先于虚拟环境下测试过
:start
echo.
echo.
echo **************************** 是否更改DNS ****************************
echo.更改输入 Y
echo.不更改输入 N
echo.退出请输入 Q
Set /p DNS=:
IF /i "%dns%"=="y" GoTo dns
IF /i "%dns%"=="n" GoTo ad
if /i "%dns%"=="q" goto exit
echo 输入错误请重新输入 & goto start
:dns
netsh interface ip add dnsservers name=本地连接 address=%primarydns% index=1
:ad
echo.
echo ******************将计算机加入域************
echo.
%~dp0netdom.exe join %computername% /domain:%domain% /UserD:%admin% /PasswordD:%password% |findstr /i "completed" >nul &&goto end ||goto end2
:end
cls
echo 加域成功
echo 下面选择是否更改电脑名
echo.
echo.
echo ****输入要更改的新的电脑名称****
echo.
echo.1.直接重启请输入R
echo.2.不改名直接退出请输入Q
echo.3.输入新电脑名并重启
set /p newname=:
IF /i "%newname%"=="q" goto exit
if /i "%newname%"=="r" goto reboot
echo 改名后5秒后重新启动
ping -n 5 127.0.0.1 >nul
echo y|%~dp0netdom.exe renamecomputer %computername% /newname:%newname% /UserD:%admin% /PasswordD:%password% /reboot:5
:end2
cls
echo.
echo.
echo. 加域失败
echo.
echo %userdnsdomain% |findstr /i ".com" >nul &&echo !电脑可能已加入域,请确认!
echo.
echo. 其他原因可能是:
echo. 请确认是否用管理权限运行此脚本
echo. 请确认相关设置是否正确
echo. 此脚本10S后关闭
ping -n 10 127.0.0.1 >nul
exit
:reboot
cls
shutdown /r /t 00 /f
:exit
exit
这个其实主要是用来在系统封装后自动加域。
下载链接:
http://down.51cto.com/data/2164333
如有问题,欢迎讨论
转载于:https://blog.51cto.com/xifanliang/1826832