|
关于自动应答文件与改变输入语言批处理应用思路说明:
不知兄弟能否理解,我先开门见山,后面也会详细说明:
1、修改计算机名字和改输入法的两个批处理文件基本上与系统封装与部署没什么关系。我提供的示例自动应答文件,里面要使用两个批处理文件。
请看我的批处理源文,标红处,在系统封装SysPrep时如果能找到这两个批处理,就把这两个批处理复制到系统System32目录下,如果没有肯定复制不了。
请再看自动应答文件有关批处理部分,也是标红部分,<FirstLogonCommands>表示此处的批处理或者其它程序都是系统部署到其它机器以后第一次进桌面后再执行。说得再清楚一点,系统都已经安装完了,执行了这个批处理,改改计算机名字,改改输入法,下次重启生效;如果没有,就不执行,就不改名字和输入法了。这对装系统没有任何影响。
2、这两个批处理的DIY!
你可以在系统封装时不引入这两个批处理,可以在任何时候都没有这两个批处理;可以在制作完系统映像wim以后,心情好的时候再加入,保存wim;你还可以安装完系统以后,从别处复制这个批处理,手动运行,效果是一样的;更狠一点,你可以修改那个批处理文件,随便自己意愿改部署以后的计算机名字,不要用我的Marc-随机数字名字。
3、关于你的疑问
你先自己调试好批处理,就在哪个正常运行的系统,以不是Administrator的账号登录,能改就行,等调试通过以后再应用于预发布的系统映像里,呵呵,这个批处理真的跟系统封装部署关系不大,虽然被我引入借用了一下,但仅仅是借用了一下。当然以不是Administrator的管理员账号,能不能用批处理改计算机名,你试下。
4、其它问题
示例自动应答文件都基于vol版,如果要制作零售版系统,要预先输入序列号,自动应答文件需要用ADK重做,也很简单的了;这几个自动应答文件、批处理依然适用于8.1 with Update1。
5、DeskTop_1.bat标红部分说明
不是8.1,是Win8系统,内置Administrator账号开启Metro应用支持,估计没几个人用了,所以默认是禁用的。
这是系统封装批处理,我断章取义了。
if !OpChoice!==14 (
echo 查找同目录(及子目录)下自动应答文件,如果一个都没有,那就不要试了。
echo 本工具包提供的自动应答文件分64位和32位两种,通用版仅仅实现跳过oobe过程。
set /a NumUntitled=0
set /a a=0
set NameUntitled=null
dir %~dp0*.xml /b /s >%~dp0fAppUntitled.txt
echo 查找到%~dp0目录下所有自动应答文件如下表
echo -----------------------------------------------------
for /f "usebackq delims=" %%i in (%~dp0fAppUntitled.txt) do ( set /a a+=1&&echo 应答文件:!a! %%i)
if !a!==0 echo 根本就没有一个自动应答文件,那封装也没什么意思了,准备退出!&&goto End
echo.
set /p NumUntitled=请认真选择应答文件序号,不带冒号----
set /a a=0
for /f "usebackq delims=" %%i in (%~dp0fAppUntitled.txt) do (
set /a a+=1
if !NumUntitled!==!a! echo 你选择的应答文件是:%%i
)
set bGoSysprep=y
set /p bGoSysprep=最后请确认现在可以开始封装了吗?默认是,直接回车,如果算了,请输入小写n----
if not !bGoSysprep!==n (
echo 正在帮您清除系统垃圾文件,请稍等......
::删除补丁备份目录
rd %windir%\$hf_mig$ /Q /S
::删除系统盘Office安装临时文件
rd /s /q %systemdrive%\msocache
dir /ad /b /s %windir%\$NtUninstall* >%~dp0Del_rd.txt
dir /ad /b /s %windir%\SoftwareDistribution\Download>>%~dp0Del_rd.txt
for /f %%i in (%~dp0Del_rd.txt ) do ( rd "%%i" /s /q )
del %~dp0Del_rd.txt /f /q
::删除补丁安装记录内容(下面的del /f /s /q %systemdrive%\*.log已经包含删除此类文件)
del %windir%\KB*.log /f /q
::删除系统盘目录下临时文件
del /f /s /q %windir%\*.tmp
::删除系统盘目录下临时文件
del /f /s /q %windir%\*._mp
::删除系统盘目录下日志文件
del /f /s /q %windir%\*.log
::删除系统盘目录下GID文件
del /f /s /q %windir%\*.gid
::删除系统目录下scandisk(磁盘扫描)留下的无用文件
del /f /s /q %windir%\*.chk
::删除系统目录下old文件
del /f /s /q %windir%\*.old
::删除回收站的无用文件
del /f /s /q %windir%\recycled\*.*
::删除系统目录下备份文件
del /f /s /q %windir%\*.bak
::删除系统维护等操作产生的临时文件
rd /s /q %windir%\temp md %windir%\temp
::删除当前用户的COOKIE(IE)
del /f /q %userprofile%\cookies\*.*
::删除internet临时文件
del /f /s /q "%userprofile%\local settings\temporary internet files\*.*"
::删除当前用户日常操作临时文件
del /f /s /q "%userprofile%\local settings\temp\*.*"
copy %systemdrive%\Users\%username%\Favorites\*.* %systemdrive%\Users\Default\Favorites
dir %~dp0Desk*.bat /b /s >%~dp0fTmp.txt
dir %~dp0Driver*.bat /b /s >>%~dp0fTmp.txt
for /f %%i in (%~dp0fTmp.txt) do ( copy %%i %windir%\system32 )
set /a a=0
for /f "usebackq delims=" %%i in (%~dp0fAppUntitled.txt) do (
set /a a+=1
if !a!==!NumUntitled! %windir%\system32\sysprep\sysprep.exe /oobe /generalize /shutdown /unattend:%%i
)
)
下面是自动应答文件内容:
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="oobeSystem">
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>zh-cn</InputLocale>
<SystemLocale>zh-cn</SystemLocale>
<UILanguage>zh-cn</UILanguage>
<UserLocale>zh-cn</UserLocale>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<AutoLogon>
<Enabled>true</Enabled>
<LogonCount>3</LogonCount>
<Username>Administrator</Username>
</AutoLogon>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<CommandLine>%windir%\system32\Desktop_1.bat</CommandLine>
<Description>Desktop_1</Description>
<Order>1</Order>
</SynchronousCommand>
<SynchronousCommand wcm:action="add">
<CommandLine>%windir%\system32\Desktop_2.bat</CommandLine>
<Order>2</Order>
<Description>Desktop_2</Description>
</SynchronousCommand>
</FirstLogonCommands>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<HideLocalAccountScreen>true</HideLocalAccountScreen>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
<NetworkLocation>Home</NetworkLocation>
<ProtectYourPC>3</ProtectYourPC>
<SkipMachineOOBE>true</SkipMachineOOBE>
<SkipUserOOBE>true</SkipUserOOBE>
</OOBE>
<RegisteredOwner>天书使者</RegisteredOwner>
<DisableAutoDaylightTimeSet>true</DisableAutoDaylightTimeSet>
<DoNotCleanTaskBar>true</DoNotCleanTaskBar>
<TimeZone>China Standard Time</TimeZone>
</component>
</settings>
<cpi:offlineImage cpi:source="wim:d:/backup/win81_pr_x64_vl_office2013.wim#Win81_PR_X64_VL_Office2013" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>
修改输入法批处理
@echo off&color 0a
echo Windows Registry Editor Version 5.00>%~dp0Custom_Win8_1.reg
echo.>>%~dp0Custom_Win8_1.reg
::不显示快捷方式到
echo [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]>>%~dp0Custom_Win8_1.reg
echo "link"=hex:00,00,00,00>>%~dp0Custom_Win8_1.reg
echo.>>%~dp0\Custom_Win8_1.reg
::桌面显示计算机
echo [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel]>>%~dp0Custom_Win8_1.reg
echo "{20D04FE0-3AEA-1069-A2D8-08002B30309D}"=dword:00000000>>%~dp0Custom_Win8_1.reg
echo.>>%~dp0Custom_Win8_1.reg
::记事本默认自动换行
echo [HKEY_CURRENT_USER\Software\Microsoft\Notepad]>>%~dp0Custom_Win8_1.reg
echo "fWrap"=dword:00000001>>%~dp0Custom_Win8_1.reg
echo.>>%~dp0Custom_Win8_1.reg
::禁止注册表远程修改
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg]>>%~dp0Custom_Win8_1.reg
echo "RemoteRegAccess"=dword:00000001>>%~dp0Custom_Win8_1.reg
echo.>>%~dp0Custom_Win8_1.reg
::设置英文为默认输入法,微软拼音为第二输入法
echo [HKEY_CURRENT_USER\Keyboard Layout\Preload]>>%~dp0Custom_Win8_1.reg
echo "1"="00000409">>%~dp0Custom_Win8_1.reg
echo.>>%~dp0Custom_Win8_1.reg
echo "2"="00000804">>%~dp0Custom_Win8_1.reg
echo.>>%~dp0Custom_Win8_1.reg
::设置个人文档位置、下载文件位置
if exist d: (
if exist D:\MyDoc (
if exist D:\MyDoc\Download ( goto ExistDownload )
md D:\MyDoc\Download
goto ExistDownload
)
md D:\MyDoc
md D:\MyDoc\Download
:ExistDownload
echo [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]>>%~dp0Custom_Win8_1.reg
echo "{374DE290-123F-4565-9164-39C4925E467B}"="D:\\MyDoc\\Download">>%~dp0Custom_Win8_1.reg
echo "Personal"="D:\\MyDoc">>%~dp0Custom_Win8_1.reg
echo.>>%~dp0Custom_Win8_1.reg
echo [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]>>%~dp0Custom_Win8_1.reg
echo "{374DE290-123F-4565-9164-39C4925E467B}"="D:\\MyDoc\\Download">>%~dp0Custom_Win8_1.reg
echo "Personal"="D:\\MyDoc">>%~dp0Custom_Win8_1.reg
echo.>>%~dp0Custom_Win8_1.reg
)
reg import %~dp0Custom_Win8_1.reg>nul 2>nul
del /f /s /q %~dp0Custom_Win8_1.reg>nul 2>nul
if exist %systemdrive%\Activitor ( copy /y %windir%\system32\Desktop_1.bat %systemdrive%\Activitor>nul 2>nul© /y %windir%\system32\Win8_SuspendOff.bat %systemdrive%\Activitor>nul 2>nul&goto DelBat )
md %systemdrive%\Activitor>nul 2>nul
copy /y %windir%\system32\Desktop_1.bat %systemdrive%\Activitor>nul 2>nul
copy /y %windir%\system32\Win8_SuspendOff.bat %systemdrive%\Activitor>nul 2>nul
:DelBat
if exist %systemdrive%\Activitor\WanDrv\WanDrv.exe start %systemdrive%\Activitor\WanDrv\WanDrv.exe
del /f /s /q %windir%\system32\Desktop_1.bat>nul 2>nul
del /f /s /q %windir%\system32\Win8_SuspendOff.bat>nul 2>nul
::第二种方法,直接添加或者修改,比第一种方法简单,但不利于保留.reg文件
::reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System /v "FilterAdministratorToken" /t reg_dword /d 1 /f>nul 2>nul
::reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System /v "LocalAccountTokenFilterPolicy" /t reg_dword /d 1 /f>nul 2>nul
exit |
|