无忧启动论坛

标题: 懂批处理的朋友进来看看! [打印本页]

作者: haonan    时间: 2003-9-26 17:16
标题: 懂批处理的朋友进来看看!
我想在安装xp的时候,第一次登陆的时候自动以注册的用户名新建一个同名的管理员用户。
net user "%FName%" /add
net localgroup administrators "%FName%" /add
这两句好像不行。还需要什么?
作者: Apple922    时间: 2003-9-26 19:57
标题: 懂批处理的朋友进来看看!
必须还要设置变量
set FName=你的用户名
才可以
作者: haonan    时间: 2003-9-26 20:12
标题: 懂批处理的朋友进来看看!
老大,我的用户名我想设一个变量,以我的注册名为用户名。
怎么弄阿?
作者: uouobb    时间: 5 天前
还没解决吗?我现在叫KIMI帮你:
本身语法上没有问题,但你说“第一次登录时自动以注册的用户名新建一个同名的管理员用户”,这涉及到Windows XP 安装过程中的自动应答机制,也就是无人值守安装(Unattended Setup)。
✅ 正确做法:使用 unattend.txt 或 winnt.sif
在 Windows XP 的无人值守安装中,不能仅靠 net user 命令在首次登录时自动创建用户,因为:
%FName% 是Windows 安装过程中输入的“注册用户名”,但它不会自动成为环境变量。
首次登录时,系统还没有加载你自定义的脚本或命令,除非你明确告诉它这么做。
✅ 解决方案:使用 Winnt.sif + Cmdlines.txt + GUIRunOnce
✅ 步骤如下:
🔧 1. 创建 Winnt.sif(放在安装源 \i386 目录下)
这是无人值守安装的核心配置文件。
ini
复制
[Unattended]
UnattendMode=FullUnattended
OemSkipEula=Yes
OemPreinstall=Yes
TargetPath=\WINDOWS

[GuiUnattended]
AdminPassword=*
EncryptedAdminPassword=NO
AutoLogon=Yes
AutoLogonCount=1
OEMSkipRegional=1
OEMSkipWelcome=1

[UserData]
ProductKey=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
FullName="MyUser"
OrgName="MyOrg"
ComputerName=*

[Identification]
JoinWorkgroup=WORKGROUP

[Networking]
InstallDefaultComponents=Yes

[GuiRunOnce]
Command0="%SystemDrive%\Install\createuser.cmd"
🔧 2. 创建 createuser.cmd(放在 $OEM$\$1\Install\ 目录下)
这个脚本会在首次登录时自动运行,并读取注册用户名(从注册表或文件)。
cmd
复制
@echo off
setlocal enabledelayedexpansion

:: 从注册表读取注册用户名(FullName)
for /f "tokens=3*" %%A in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "RegisteredOwner" 2^>nul') do set FName=%%A %%B

:: 去掉前后空格
set FName=%FName:~0,20%

:: 创建用户并加入管理员组
net user "%FName%" /add
net localgroup administrators "%FName%" /add

:: 可选:设置密码
net user "%FName%" MyPassword123

:: 可选:删除默认的 Administrator 用户(谨慎)
:: net user administrator /delete

endlocal
🔧 3. 确保文件结构正确
你的安装源目录结构应如下:
复制
\i386
\winnt.sif
\$OEM$\$1\Install\createuser.cmd
✅ 总结
表格
复制
问题        原因
%FName% 无效        它不是环境变量,必须从注册表读取
net user 没生效        没有在首次登录时运行脚本
需要自动创建用户        必须使用 GUIRunOnce 或 RunOnce 机制
✅ 最终效果
安装完成后,首次自动登录,然后运行 createuser.cmd,自动创建一个与注册用户名相同的管理员用户。
如需我帮你生成完整的 winnt.sif 和 createuser.cmd 模板,告诉我你希望的注册用户名、密码、是否删除 Administrator,我可以直接给你打包。
作者: 梁野松山    时间: 5 天前
学习一下。




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3