Windows自动改计算机名和加入域工具
时间:2023-11-16 19:37:02
最近单位要换一批电脑,没钱买高软件,不允许用三方工具。
先写一个自动设置计算机名称和加域的小工具,压惊。
功能:
完成系统设置的最后一步,更改计算机名称和添加域。
工作方式:
半自动,需要手动输入计算机名称。
待改进:可通过MAC与计算机名的映射表自动获取当前计算机名称,即全自动!
Readme:
注意:
修改setdoman.bat,设置域名、域管理员账号和密码
1、首次运行initial-config如果没有输入系统当前的用户名和密码,系统将不会自动登录。
2.如果是母盘,选择关闭计算机,重启U盘备份系统
3.如果选择计算机选择重启
4.第一次启动提示计算机名称,输入计算机名称
5.第二次启动加入域,脚本运行自动关闭
6、完成
------------
ver1
增加了防止单独运行的预防措施setdomain误删脚本
默认情况没有修改domain手动输入将提示信息。
文件结构:
└─joindomain-ver1
└─readme.txt # 使用方法
└─initial-config.bat # 初始设置文件
└─start.bat# 开机调用的文件,通过start调用改名和加域
└─modifyhostname.bat# 修改计算机名称文件
└─setdomain.bat # 加入域文件,还负责清理产生的临时文件
每个脚本都要以管理员身份运行,所以都需要在开头加上下面的代码@echooff
>nul2>&1"%SYSTEMROOT%\system32\cacls.exe""%SYSTEMROOT%\system32\config\system"
if'%errorlevel%'NEQ'0'(
gotoUACPrompt
)else(gotogotAdmin)
:UACPrompt
echoSetUAC=CreateObject^("Shell.Application"^)>"%temp%\getadmin.vbs"
echoUAC.ShellExecute"%~s0","","","runas",1>>"%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit/B
:gotAdmin
ifexist"%temp%\getadmin.vbs"(del"%temp%\getadmin.vbs")
上脚本代码:
initial-config.bat::--------------inilazition-----------
::重启当前帐户和密码自动进入系统
set/paccount-name=当前账户名:
set/paccount-pw=密码:
::修改注册表,启动并自动进入系统
regadd"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon"/vAutoAdminLogon/tREG_SZ/d1/f
regadd"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon"/vDefaultPassword/tREG_SZ/d?count-pw%/f
regadd"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon"/vDefaultUserName/tREG_SZ/d?count-name%/f
::复制计算机名称和域程序到临时路径
setsource=%~dp0%
setdest="C:\Users\%username%\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\"
copy%source%modifyhostname.bat%temp%\modifyhostname.bat
copy%source%setdomain.bat%temp%\setdomain.bat
copy%source%start.bat?st%"start.bat"
echo完成程序初始化
echo请输入制作母盘【y】,自动关闭系统。
echo输入单台计算机【n】,自动重启系统。
set/pinput-type=y/n:
if%input-type%==y(
echo系统正在关闭,请勿操作。
shutdown/s/f/t2
gotoend
)
echo系统正在重启,请误操作。
shutdown/r/f/t2
start.batechoIT在自动化工具的运行中
ifnotexist"%temp%\set-temp-flag.flag"(
::操作修改计算机名脚本
%temp%\modifyhostname.bat
)else(
::重启后,将域脚本添加到操作中
%temp%\setdomain.bat
)
pause
modifyhostname.batrem修改电脑名
setcmscdomain=cmsc.local
set/pcomputer-name=Inputcomputername:
wmiccomputersystemwhere"caption='%computername%'"callRenamename='%computer-name%'
echo1>>"%temp%\set-temp-flag.flag"
echo%computer-name%修改完成!2秒后重启系统。
shutdown/f/r/t2
pause
setdomain.batrem这个工具一闪而过,说明错了
::判断标记文件是否存在,如果不存在,则结束。
setcmscdomain=default
setdomainuser=default
setuserpw=default
ifexst "%temp%\set-temp-flag.flag" (
echo 本名上三行不修改,提示输入域信息。
if %cmscdomain%==default ( set /p cmscdomain="Domain Name:" )
if %domainuser%==default ( set /p domainuser="User Name:" )
if %userpw%==default ( set /p userpw="Password:" )
wmic computersystem where "caption='%computername%'" call JoinDomainOrWorkgroup name="%cmscdomain%" username="%domainuser%" password="%userpw%" Fjoinoptions=1
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /f
del "C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\start.bat"
del "%temp%\set-temp-flag.flag"
del "%~dp0%\modifyhostname.bat"
echo done,Please wait shutdown!
shutdown /s /f /t 10
del "%~dp0%\setdomain.bat"
)
echo 没有找到标记文件,请按步骤运行
pause
标签:bat,set,计算机,temp%,Windows,echo,自动,Microsoft
来源: https://blog.51cto.com/yishi/2381844