无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 2637|回复: 5
打印 上一主题 下一主题

[求助] 封装8.1自建账户的系统,批处理修改注册表失效

[复制链接]
跳转到指定楼层
1#
发表于 2014-7-3 23:13:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
按照2011htpcfans的方法封装了一个Win8.1 With Update,默认启用内置管理员账号,感觉效果不错,

接着想修改成手动创建账户的系统,参考无约而来的自动应答文件删除有关Administrator的字段,这样

是可在安装时自己设置账户了,但是这样导致了个性设置的注册表修改都失效了

例如我想桌面显示计算机、设置英文为默认输入法,微软拼音为第二输入法等等,可是试验了好多方法


regedit /s RunOnce.reg

reg add "HKEY_CURRENT_USER\Keyboard Layout\Preload" /v "1" /d "00000409" /f>nul 2>nul

reg add "HKEY_CURRENT_USER\Keyboard Layout\Preload" /v "2" /d "00000804" /f>nul 2>nul

reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel
/v "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" /t reg_dword /d "00000000" /f>nul 2>nul

诸如此类都不行

请问万能的坛友们应该怎样解决这个问题呢?
2#
发表于 2014-7-4 22:03:38 | 只看该作者
关于自动应答文件与改变输入语言批处理应用思路说明:
不知兄弟能否理解,我先开门见山,后面也会详细说明:
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&copy  /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
回复

使用道具 举报

3#
 楼主| 发表于 2014-7-5 10:42:26 | 只看该作者
感谢楼上的详细解答,你的“Win8.1/8/7封装不求人”的确是一篇很好的教程,像一盏小灯使我少走了很多弯路。
Win8.1的封装似乎比XP容易,就是自动应答文件unattend.xml不太好理解,而要自己定制、部署中间安装驱动和程序什么的又是不可缺少的,unattend.xml并不是封装时加入才有效:
%windir%\system32\sysprep\sysprep.exe /oobe /generalize /shutdown  /unattend:%~dp0Unattend.xml
封装后再把unattend.xml添加到%windir%\panther目录都是有效的。
回到我的问题,使用批处理修改注册表对于内置管理员账号的系统无问题,为什么对自建账户的系统就不行?但是手工导入注册表文件又可以。
1.用户权限问题?启用系统管理员 Administrator 帐户:
-----------------
net user Administrator /active:yes
regedit /s RunOnce.reg
------------------
2.使用SetACL来取消有关注册表信息的权限
-------------------
setacl HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel /registry /grant everyone /full
.......
regedit /s RunOnce.reg
------------------
还是不行
此题暂时无解,我的解决办法是:修改批处理
-----------------
net user Administrator /active:yes
regedit /s RunOnce.reg
.......
copy %windir%\setup\Scripts\RunOnce.reg "%homepath%\Desktop"
------------------
进入桌面,如果没有达到预期效果,手工再导入一次注册表就行了。
重启后没有出现Administrator 帐户,登陆帐户还是自建账户。也许,这不是一个问题,说明自建账户的安全性优于Administrator 帐户。
回复

使用道具 举报

4#
发表于 2014-7-5 12:56:40 | 只看该作者
本帖最后由 2011htpcfans 于 2014-7-5 12:58 编辑

我的导入注册表操作方法不知有没有效果,或者你已经试过了,不行?

感觉这就是哪里有一丁点小障碍没能搞定,你再认真检查一下!

::设置英文为默认输入法,微软拼音为第二输入法
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
回复

使用道具 举报

5#
 楼主| 发表于 2014-7-5 14:18:54 | 只看该作者
本帖最后由 2010laocfan 于 2014-7-5 14:25 编辑

你的导入注册表操作方法,我在自建账户第一次试验就是这个办法,因为有前面内置管理员账号的成功经验;没想到不行;在我那个老的G430上面折腾一次好花时间的,就为这个简单的批处理,来回试了无数次。结果都一样。“这台电脑”就是不出来,输入法依旧,但手动导入又可以。
回复

使用道具 举报

6#
发表于 2014-7-11 00:03:07 | 只看该作者
…… 這個,無論 “開啓” administrator 直接進桌面,還是建立自定義 賬戶 后自動進桌面 unattend.xml 中都不需要直接編輯注冊表的……
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-26 14:58

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表