将用户文件夹位置更改为另一个分区后,Sysprep 出现错误

将用户文件夹位置更改为另一个分区后,Sysprep 出现错误

我在虚拟机上运行 Windows 10 Pro(版本 1607,7 月在 MSDN 上发布),并且在该机器上有多个分区。

对于部署,我使用这个应答文件。这个应答文件由 Windows 系统映像管理器验证。

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="specialize">
        <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">
            <CopyProfile>true</CopyProfile>
            <DoNotCleanTaskBar>true</DoNotCleanTaskBar>
        </component>
    </settings>
    <settings pass="oobeSystem">
        <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">
            <FolderLocations>
                <ProfilesDirectory>U:\</ProfilesDirectory>
            </FolderLocations>
        </component>
    </settings>
    <cpi:offlineImage cpi:source="wim:e:/sources/install.wim#Windows 10 Pro" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

每当我删除更改用户文件夹的部分时,此应答文件就可以工作。

    <settings pass="oobeSystem">
        <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">
            <FolderLocations>
                <ProfilesDirectory>U:\</ProfilesDirectory>
            </FolderLocations>
        </component>
    </settings>

我 100%确定U:\目录在那里,并尝试更改目录分隔符,并尝试将其更改为U:\Profiles

每当我使用以下命令对此机器进行系统准备时:

sysprep.exe /generalize /oobe /unattend:unattend:xml

我在安装设备的 Windows 徽标上收到以下错误消息。

在此处输入图片描述

在此处输入图片描述

我也尝试将我的机器更新到最新版本。请注意,我的 Windows 尚未激活。

我该如何解决这个问题?

答案1

我怀疑这种情况很可能是因为这个/generalize选择而发生的。

Sysprep 的主要作用是为克隆 Windows 做准备。为此,它会从注册表中删除所有系统特定信息(包括驱动器号分配),并在重启后调用 Windows 安装程序。

Windows 安装程序不会对它“唤醒”的机器做任何假设。它知道哪个驱动器是 C: 的唯一原因是因为 BCD 存储告诉了它。例如,可能会弄乱 BCD 存储并将 Windows 安装到 E: 而不是 C:。由于没有关于系统的其他信息,安装程序将开始设备检测,并按照找到分区的顺序分配驱动器号。如果您的 U: 驱动器是第一个硬盘上的第 4 个分区,则可能会为其分配字母 F:,而不是 U:(哈哈,我只是说 F: U:)。

如果您不使用该/generalize选项,则 Sysprep 将不会处理您的应答文件(即您的设置所在的位置)的<Generalize>或部分。因此您会发现您在这里陷入了困境。<Specialize>CopyProfile


尝试以下操作:
ProfilesDirectory设置放回您的应答文件中,然后使用该/generalize选项重新运行 Sysprep。一旦出错,请查看该\Windows\Panther\setuperr.log文件(或其中的某个子目录 - 您可能会看到几个,因此请查找上面有今天日期的文件)。在该文件中,Windows 安装程序应该会向您提供该过程失败的确切原因(即哪个特定步骤和设置导致了错误,以及它遇到了什么问题)。

笔记微软极力反对使用此参数。他们警告说,更改其默认设置将阻止升级,并阻止 Windows Store 应用正常运行。它基本上不受支持根据他们自己的功能文档

相关内容