Server 2012 Autounattend.xml - 使离线驱动器在线?

Server 2012 Autounattend.xml - 使离线驱动器在线?

我尝试在 Server 2012 的 autounattend.xml 安装期间在第二个和第三个磁盘上设置多个驱动器号(整个磁盘分区)。

分区已创建并格式化。但是,当我第一次登录时,驱动器(磁盘 1 和 2)被标记为“离线”。如果我通过磁盘管理手动将它们标记为在线,它们将被分配正确的驱动器号,一切正常。

我尝试将一个简单的 diskpart 脚本添加到 SetupComplete.cmd,但没有成功。这是我的 SetupComplete.cmd 文件,它不起作用:

mkdir c:\temp
echo select disk 1 >> c:\temp\dp.txt
echo online disk >> c:\temp\dp.txt
echo select disk 2 >> c:\temp\dp.txt
echo online disk >> c:\temp\dp.txt
diskpart /s c:\temp\dp.txt

但是,如果我第一次登录时运行此文件,它确实有效!有没有办法使用 autounattend.xml 或脚本来设置其他分区?

以下是 autounattend.xml 中的相关部分:

<component name="Microsoft-Windows-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">
        <DiskConfiguration>
            <WillShowUI>OnError</WillShowUI>
            <Disk wcm:action="add">
                <CreatePartitions>
                    <CreatePartition wcm:action="add">
                        <Order>1</Order>
                        <Size>350</Size>
                        <Type>Primary</Type>
                    </CreatePartition>
                    <CreatePartition wcm:action="add">
                        <Order>2</Order>
                        <Extend>true</Extend>
                        <Type>Primary</Type>
                    </CreatePartition>
                </CreatePartitions>
                <ModifyPartitions>
                    <ModifyPartition wcm:action="add">
                        <Active>true</Active>
                        <Label>Boot</Label>
                        <Format>NTFS</Format>
                        <Order>1</Order>
                        <PartitionID>1</PartitionID>
                    </ModifyPartition>
                    <ModifyPartition wcm:action="add">
                        <Format>NTFS</Format>
                        <Order>2</Order>
                        <PartitionID>2</PartitionID>
                        <Label>System</Label>
                    </ModifyPartition>
                </ModifyPartitions>
                <DiskID>0</DiskID>
                <WillWipeDisk>true</WillWipeDisk>
            </Disk>
            <Disk wcm:action="add">
                <CreatePartitions>
                    <CreatePartition wcm:action="add">
                        <Order>1</Order>
                        <Type>Primary</Type>
                        <Extend>true</Extend>
                    </CreatePartition>
                </CreatePartitions>
                <ModifyPartitions>
                    <ModifyPartition wcm:action="add">
                        <Format>NTFS</Format>
                        <Label>WorkSpace</Label>
                        <Letter>Y</Letter>
                        <Order>1</Order>
                        <PartitionID>1</PartitionID>
                        <Active>true</Active>
                    </ModifyPartition>
                </ModifyPartitions>
                <DiskID>1</DiskID>
                <WillWipeDisk>true</WillWipeDisk>
            </Disk>
            <Disk wcm:action="add">
                <CreatePartitions>
                    <CreatePartition wcm:action="add">
                        <Order>1</Order>
                        <Type>Primary</Type>
                        <Extend>true</Extend>
                    </CreatePartition>
                </CreatePartitions>
                <ModifyPartitions>
                    <ModifyPartition wcm:action="add">
                        <Format>NTFS</Format>
                        <Label>TempDB</Label>
                        <Letter>T</Letter>
                        <Order>1</Order>
                        <PartitionID>1</PartitionID>
                        <Active>true</Active>
                    </ModifyPartition>
                </ModifyPartitions>
                <DiskID>2</DiskID>
                <WillWipeDisk>true</WillWipeDisk>
            </Disk>
        </DiskConfiguration>
        <ImageInstall>
            <OSImage>
                <InstallTo>
                    <PartitionID>2</PartitionID>
                    <DiskID>0</DiskID>
                </InstallTo>
                <InstallToAvailablePartition>false</InstallToAvailablePartition>
                <WillShowUI>OnError</WillShowUI>
                <InstallFrom>
                    <MetaData wcm:action="add">
                        <Key>/IMAGE/NAME</Key>
                        <Value>Windows Server 2012 SERVERSTANDARD</Value>
                    </MetaData>
                </InstallFrom>
            </OSImage>
        </ImageInstall>
        <UserData>
            <ProductKey>
                <Key>48HP8-DN98B-MYWDG-T2DCC-8W83P</Key>
                <WillShowUI>OnError</WillShowUI>
            </ProductKey>
            <AcceptEula>true</AcceptEula>
            <FullName>--</FullName>
            <Organization>--</Organization>
        </UserData>
        <UseConfigurationSet>true</UseConfigurationSet>
    </component>

答案1

这可能是因为某些 Windows 服务器的 SKU 默认将 San 策略设置为“OfflineShared”。这是默认设置,因为如果磁盘在服务器之间共享(除非是集群的一部分),则如果将设置更改为“OnlineAll”,则可能会发生数据损坏。

Microsoft 支持文章解释了该问题,并通过此示例无人参与代码片段向您展示如何执行此操作:

<component name="Microsoft-Windows-PartitionManager" 
publicKeyToken="31bf3856ad364e35" 
language="neutral" 
versionScope="nonSxS" 
processorArchitecture="x86"> 
<SanPolicy>1</SanPolicy> 
</component>

安装后还会有警告将此策略重置回“OfflineShared”,以避免可能发生的数据损坏问题。

虽然本文档专门针对 Windows Server 2008/2008R2,但它仍然与 Windows Server 2012 相关,如这篇 TechNet 文章

此外,在您发布的 autounattend.xml 部分中,您将其他磁盘上的分区标记为活动分区。除非您要启动这些磁盘上的其他操作系统,否则应避免将这些分区标记为活动分区。

有关使用应答文件部署 Windows 的更多信息,请访问跳板系列TechNet 上的页面。

希望这可以帮助

答案2

建议的解决方案对我不起作用:(我使用了 FirstLogonCommands 部分中的命令

                                <SynchronousCommand wcm:action="add">
                                    <CommandLine>C:\Windows\SysWOW64\cmd.exe /c powershell -Command "Get-Disk | Where-Object Number -Eq 1 | Set-Disk -IsOffline $False"</CommandLine>
                                    <Description>Sets online the D: drive</Description>
                                    <Order>24</Order>
                                    <RequiresUserInput>false</RequiresUserInput>
                            </SynchronousCommand>

相关内容