我的实验:编写自动加域脚本(总结)
1、自动加域脚本的目的。
A、减少重复繁杂的必要操作,提高工作效率。
B、使加域操作更简单,更有乐趣。

2、自动加域的实现方式,分为三个步骤。
A、使用bat和vbs相互配合。(因为本人编程水平不高)
B、更改电脑名字。(不需要重启电脑)
C、更改电脑IP地址及DSN。(选择自动获取还使手动配置)
D、调用Vbs文件完成自动加域操作。(不解释为什么要调用vbs,而不直接用bat完成)

3、相关文件。
A、链接:https://pan.baidu.com/s/1sZmCisS1QEDu3E12_Ko4FA
提取码:bmfr

4、脚本解释及使用注意事项。
A、修改计算机名字+修改IP地址.bat

注意:
1、下面内容加粗部分可以自行修改,如:电脑名字格式;手动DNS我写死了,自己根据实际环境更改。
2、调用vbs的方法是c盘根目录下的“自动加域脚本.vbs”文件,您也可以放在共享服务器上,将路径写好,这样就一个bat文件在客户端就行了。各位也根据实际环境更改。

@ECHO off

color 4E

mode con: cols=75 lines=35

title ⅸ Auto Join Domain @neal ⅷ

ECHO

ECHO 自动加域批处理

ECHO

ECHO

ECHO 启动相关系统服务中..........

sc config LmHosts start= AUTO

net start "TCP/IP NetBIOS Helper"

sc config Browser start= AUTO

net start "Computer Browser"

sc config Winmgmt start= AUTO

net start "Windows Management Instrumentation"

sc config LanmanServer start= AUTO

net start "Server"

sc config LanmanWorkstation start= AUTO

net start "Workstation"

ECHO.

ECHO 服务启动完成......

pause>nul

cls

ECHO.

ECHO

ECHO 修改机器名称

ECHO

ECHO

ECHO.

ECHO 机器名类似此格式(ipt-000000-zida)

ECHO.

ECHO

ECHO.

set /p name=请输入机器名称:

reg add "HKEY_LOCAL_MACHINE\System\ControlSet001\Control\ComputerName\ActiveComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul

reg add "HKEY_LOCAL_MACHINE\System\ControlSet001\Control\ComputerName\ComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul

reg add "HKEY_LOCAL_MACHINE\System\ControlSet001\Services\Tcpip\Parameters" /v "NV Hostname" /t reg_sz /d %name% /f >nul 2>nul

reg add "HKEY_LOCAL_MACHINE\System\ControlSet001\Services\Tcpip\Parameters" /v Hostname /t reg_sz /d %name% /f >nul 2>nul

reg add "HKEY_LOCAL_MACHINE\System\ControlSet002\Control\ComputerName\ActiveComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul

reg add "HKEY_LOCAL_MACHINE\System\ControlSet002\Control\ComputerName\ComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul

reg add "HKEY_LOCAL_MACHINE\System\ControlSet002\Services\Tcpip\Parameters" /v "NV Hostname" /t reg_sz /d %name% /f >nul 2>nul

reg add "HKEY_LOCAL_MACHINE\System\ControlSet002\Services\Tcpip\Parameters" /v Hostname /t reg_sz /d %name% /f >nul 2>nul

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t reg_sz /d %name% /f >nul 2>nul

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v Hostname /t reg_sz /d %name% /f >nul 2>nul

ECHO.

ECHO 机器名修改完毕......

echo.
echo ===修改 [本地连接] ip地址===
echo.
echo 1:自动获取
echo.
echo 2:重通ip地址
echo.
echo.
set/p sel=请选择修改方式:
if "%sel%"=="1" goto auto
if "%sel%"=="2" goto zt
echo 您没有选择修改方式。
goto end

:auto
netsh interface ip set address name="本地连接" source=dhcp
netsh interface ip delete dns "本地连接" all
ipconfig /flushdns
ipconfig /all
goto end

:zt
echo 正在更改IP地址,请稍等......
netsh interface ip set address name="本地连接" source=dhcp
netsh interface ip set dns name="本地连接" source=static addr=10.211.55.55
netsh interface ip add dns name="本地连接" addr=8.8.8.8 index=2
ipconfig /flushdns
ipconfig /all
echo 更改IP地址完成!
goto end

:end
pause

@echo off
c:\自动加域脚本.vbs
echo aaa

B、自动加域脚本.vbs

注意:
1、我的实验中的域名是:yft.com 域管理员是:administrator 密码是:abcd#1324 各位根据实际环境更改。

On Error Resume Next
dim domain
set domain =createobject("wscript.shell")
Const JOIN_DOMAIN = 1
Const ACCT_CREATE = 2
Const ACCT_DELETE = 4
Const WIN9X_UPGRADE = 16
Const DOMAIN_JOIN_IF_JOINED = 32
Const JOIN_UNSECURE = 64
Const MACHINE_PASSWORD_PASSED = 128
Const DEFERRED_SPN_SET = 256
Const INSTALLINVOCATION = 262144
'Domain Name
strDomain = "yft.com"
'administrator member password
strPassword = "abcd#1234"
'administrator member
strUser = "administrator"
Set objNetwork =CreateObject("WScript.Network")
strComputer = objNetwork.ComputerName
Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\"&

strComputer &"\root\cimv2:Win32ComputerSystem.Name='" &
strComputer & "'")
ReturnValue =objComputer.JoinDomainOrWorkGroup(strDomain,
strPassword, strDomain & "\"& strUser, NULL,

JOIN_DOMAIN + ACCT_CREATE)
wscript.echo "Join Domain Success!"