千家信息网

Windows自动改计算机名和加入域工具

发表于:2025-02-13 作者:千家信息网编辑
千家信息网最后更新 2025年02月13日,单位最近要换一批电脑,没钱买高大上的软件,也不准用三方工具。先写个自动设置计算机名和加域的小工具,压压惊。功能:完成系统设置的最后一步,改计算机名,和加入域。工作方式:半自动,中途需要手动输入计算机名
千家信息网最后更新 2025年02月13日Windows自动改计算机名和加入域工具

单位最近要换一批电脑,没钱买高大上的软件,也不准用三方工具。

先写个自动设置计算机名和加域的小工具,压压惊。


功能:

完成系统设置的最后一步,改计算机名,和加入域。


工作方式:

半自动,中途需要手动输入计算机名。

待改进:可以通过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 # 加入域文件,还负责清理产生的临时文件

每个脚本都要以管理员身份运行,所以都需要在开头加上下面的代码

@echo off>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"if '%errorlevel%' NEQ '0' (goto UACPrompt) else ( goto gotAdmin ):UACPromptecho Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs""%temp%\getadmin.vbs"exit /B:gotAdminif exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )


上脚本代码:

initial-config.bat

::--------------inilazition-----------::当前的账号和密码,重启自动进系统set /p account-name=当前账户名:set /p account-pw=密码:::修改注册表,开机自动进入系统reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d 1 /freg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d %account-pw% /freg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d %account-name% /f::复制改计算机名和加域程序到临时路径set source=%~dp0%set dest="C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\"copy %source%modifyhostname.bat %temp%\modifyhostname.batcopy %source%setdomain.bat %temp%\setdomain.batcopy %source%start.bat %dest%"start.bat"echo 程序初始化完成echo 制作母盘请输入【y】,系统自动关机。echo 单台电脑输入【n】,系统自动重启。set /p input-type=y/n:if %input-type%==y ( echo 系统正在关机,请勿操作。shutdown /s /f /t 2goto end )echo 系统正在重启,请误操作。shutdown /r /f /t 2

start.bat

echo IT自动化工具运行中if not exist "%temp%\set-temp-flag.flag" (::运行修改计算机名脚本%temp%\modifyhostname.bat) else (::重启后,运行加入域脚本%temp%\setdomain.bat)pause

modifyhostname.bat

rem 修改电脑名set cmscdomain=cmsc.localset /p computer-name=Input computer name:wmic computersystem where "caption='%computername%'" call Rename name='%computer-name%'echo 1>>"%temp%\set-temp-flag.flag"echo %computer-name%修改完成!系统2秒后重启。。。shutdown /f /r /t 2pause


setdomain.bat

rem 此工具一闪而过,说明出错了:: 判断标记文件是否存在,不存在则结束。set cmscdomain=defaultset domainuser=defaultset userpw=defaultif exist "%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=1reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon  /freg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword  /freg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName  /fdel "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 10del "%~dp0%\setdomain.bat")echo 没有找到标记文件,请按步骤运行pause






0