创建操作系统专用化答案文件

在准备部署受防护的 VM 时,可能需要创建操作系统专用化应答文件。 在 Windows 上,这通常称为“unattend.xml”文件。 New-ShieldingDataAnswerFile Windows PowerShell 函数可帮助你执行此操作。 然后,你可以在使用 System Center Virtual Machine Manager(或任何其他结构控制器)从模板创建受保护虚拟机时使用应答文件。

有关受防护 VM 的应答文件的一般准则,请参阅创建应答文件

下载 New-ShieldingDataAnswerFile 函数

可以从 PowerShell 库中获取 New-ShieldingDataAnswerFile 函数。 如果计算机已建立 Internet 连接,可以使用以下命令从 PowerShell 安装:

Install-Module GuardedFabricTools -Repository PSGallery -MinimumVersion 1.0.0

输出 unattend.xml 可以打包到防护数据以及其他项目中,以便可用于通过模板创建受防护的 VM。

以下各节说明如何使用包含各种选项的 unattend.xml 文件的函数参数:

基本 Windows 应答文件

以下命令创建一个 Windows 应答文件,该文件仅设置管理员帐户密码和主机名。 VM 网络适配器将使用 DHCP 获取 IP 地址,并且 VM 不会加入 Active Directory 域。 当系统提示输入管理员凭据时,请指定所需的用户名和密码。 如果要配置内置管理员帐户,请使用“Administrator”作为用户名。

$adminCred = Get-Credential -Message "Local administrator account"

New-ShieldingDataAnswerFile -Path '.\ShieldedVMAnswerFile.xml' -AdminCredentials $adminCred

具有域加入的 Windows 应答文件

以下命令创建一个 Windows 应答文件,用于将受防护的 VM 加入 Active Directory 域。 VM 网络适配器将使用 DHCP 获取 IP 地址。

第一个凭据提示将要求提供本地管理员帐户信息。 如果要配置内置管理员帐户,请使用“Administrator”作为用户名。

第二个凭据提示将要求提供有权将计算机加入 Active Directory 域的凭据。

请务必将“-DomainName”参数的值更改为 Active Directory 域的 FQDN。

$adminCred = Get-Credential -Message "Local administrator account"
$domainCred = Get-Credential -Message "Domain join credentials"

New-ShieldingDataAnswerFile -Path '.\ShieldedVMAnswerFile.xml' -AdminCredentials $adminCred -DomainName 'my.contoso.com' -DomainJoinCredentials $domainCred

具有静态 IPv4 地址的 Windows 应答文件

以下命令创建一个 Windows 应答文件,该文件使用在部署时由结构管理软件(如 System Center Virtual Machine Manager)提供的静态 IP 地址。

虚拟机管理器使用 IP 池为静态 IP 地址提供三个部分:IPv4 地址、IPv6 地址、网关地址和 DNS 地址。 如果希望包含任何其他字段或需要自定义网络配置,则需要手动编辑脚本生成的应答文件。

以下屏幕截图显示了可以在虚拟机管理器中配置的 IP 池。 如果要使用静态 IP,则这些池是必需的。

目前,此函数仅支持一个 DNS 服务器。 DNS 设置如下所示:

使用静态 IP 池配置 DNS 服务器

下面是创建静态 IP 地址池内容的摘要。 简而言之,必须只有一个网络路由、一个网关和一个 DNS 服务器,并且必须指定 IP 地址。

静态 IP 池创建摘要

需要为虚拟机配置网络适配器。 以下屏幕截图显示了在何处设置该配置以及如何将其切换到静态 IP。

配置硬件以使用静态 IP

然后,可以使用 -StaticIPPool 参数在应答文件中包含静态 IP 元素。 然后,应答文件中的参数 @IPAddr-1@@NextHop-1-1@@DNSAddr-1-1@ 将替换为你在部署时在虚拟机管理器中指定的实际值。

$adminCred = Get-Credential -Message "Local administrator account"

New-ShieldingDataAnswerFile -Path '.\ShieldedVMAnswerFile.xml' -AdminCredentials $adminCred -StaticIPPool IPv4Address

具有自定义区域设置的 Windows 应答文件

以下命令使用自定义区域设置创建 Windows 应答文件。

当系统提示输入管理员凭据时,请指定所需的用户名和密码。 如果要配置内置管理员帐户,请使用“Administrator”作为用户名。

$adminCred = Get-Credential -Message "Local administrator account"
$domainCred = Get-Credential -Message "Domain join credentials"

New-ShieldingDataAnswerFile -Path '.\ShieldedVMAnswerFile.xml' -AdminCredentials $adminCred -Locale es-ES

基本 Linux 应答文件

从 Windows Server 版本 1709 开始,可以在受防护的 VM 中运行某些 Linux 来宾 OS。 如果使用 System Center Virtual Machine Manager Linux 代理来专用化这些 VM,那么 New-ShieldingDataAnswerFile cmdlet 可以为其创建兼容的应答文件。

在 Linux 应答文件中,通常包括根密码、根 SSH 密钥和可选的静态 IP 池信息。 在运行下面的脚本之前,请替换 SSH 密钥公共部分的路径。

$rootPassword = Read-Host -Prompt "Root password" -AsSecureString

New-ShieldingDataAnswerFile -Path '.\ShieldedVMAnswerFile.xml' -RootPassword $rootPassword -RootSshKey '~\.ssh\id_rsa.pub'

其他参考