创建操作系统专用化答案文件
在准备部署受防护的 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 应答文件
- 具有静态 IPv4 地址的 Windows 应答文件
- 具有自定义区域设置的 Windows 应答文件
- 基本 Linux 应答文件
基本 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 地址。
需要为虚拟机配置网络适配器。 以下屏幕截图显示了在何处设置该配置以及如何将其切换到静态 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'