添加Unattended.xml文件到Hyper-V Powershell创build?

截至目前,我有一个PowerShell 3.0脚本供应和创build服务器。 我想要做的就是添加一个Unattended.xml让它更进一步(所以我不会去,然后点击下一步/select磁盘/ etc ..)+为Windows安装,我该怎么做这个?

脚本工作正常,我只是想能够自动化整个事情。 我可以阅读unattended.xml文件,但我主要关心如何将其插入到这个脚本,我已经阅读关于附加软盘与unattended.xml,但我不完全确定。

#Variables $VHDBool = 1 #Bool asking for a Non-VHD Linked VM #Ask for Name of VM $VMNAME = Read-Host "Enter the Name of the Server You would Like to Set up: " #Ask for Memory Requirements of VM [int64]$VMMEMpre = Read-Host "Ok now Enter the Memory in GB you would like to allocate: (Press [Enter] for 512MB)" if ($VMMEMpre -eq ""){$VMMEM=512MB} ; if ($VMMEMpre -eq $NULL) {$VMMEM=512MB} [int64]$MEMALL = 1073741824 [int64]$VMMEM = $VMMEMpre * $MEMALL #Ask for Boot Device for VM, Should be left to CD for ISO's $VMBOOT = Read-Host "Select a Boot Device (CD, Floppy, LegacyNetworkAdapter, and IDE), Default is CD: " if ($VMBOOT -eq ""){$VMBOOT="CD"} ; if ($VMBOOT -eq $NULL){$VMBOOT="CD"} #Ask for path to VM File Storage $VMSTO = Read-Host "Enter Directory to Store new Files: (c:\storage for example, Default is c:\VMfiles)" if ($VMSTO -eq ""){$VMSTO="c:\VMfiles"} ; if ($VMSTO -eq $NULL){$VMSTO="c:\VMfiles"} #Ask For path to store VHDX File, or NO to not link one $VHDXLOC = Read-Host "Enter the Path to Store your VHDX File: (c:\base.vhdx for example or enter NO for NO VHD)" if ($VHDXLOC -eq "NO") {$VHDBOOL = 0} #Ask for HD Space (If applicable) for VHD if ($VHDXLOC -ne "NO"){ [int64]$VMHDpre = Read-Host "Enter The Amount of Hard Disk Space you would like allocated to the VM: (Default is 40GB)" if ($VMHDpre -eq ""){$VMHD=40GB} ; if ($VMHDpre -eq $NULL) {$VMHD=40GB} } [int64]$VMHD = $VMHDpre * $MEMALL #Creates VM (With VHDX) if ($VHDBOOL -eq 1){ New-VM -Name $VMNAME -MemoryStartupBytes $VMMEM -BootDevice $VMBOOT -path $VMSTO -NewVHDSizeBytes $VMHD –NewVHDPath $VHDXLOC} #Creates VM (Without VHDX) if ($VHDBOOL -eq 0){ New-VM -Name $VMNAME -MemoryStartupBytes $VMMEM -BootDevice $VMBOOT -path $VMSTO –NoVHD} #Ask for Location of ISO $ISOLOC = Read-Host "Enter the Location of the ISO you would Like to Install: (c:\ISOFILE\Windows_NAME.iso)" #Installs ISO Via Location Set-VMDvdDrive -VMName $VMNAME -Path $ISOLOC #Start the Server Start-VM -Name $VMNAME 

我认为分别创buildVHD和VM是最简单的。 然后,在启动虚拟机之前,先安装VHD,然后放置您的unattend.xml文件。 (Mount-vhd是您想要的cmdlet。)然后卸下VHD并将其作为虚拟机创build的最后一部分附加到VM。

你可以用一个虚拟的软盘映像来做同样的事情,但是这样做有点复杂,因为没有本地挂载选项,因为它只是增加了你正在处理的虚拟磁盘映像的数量。

将无人参与文件放在VHD上之后,可以使用“dismount-vhd”cmdlet卸载VHD。 然后将其附加到使用“add-vmharddiskdrive”cmdlet创build的VM上。

我用这个问题的答案是我发现将创buildISO文件的脚本。 当我将一个VHD与unattend.xml附加到VM时,它不会使用它。 当我将第二张DVD添加到虚拟机时,它只需要很好。

我正在开发的这个项目的想法是从一个裸机框,一个带有Hyper-V 2012的闪存驱动器,以及Win2012,我的脚本和一个config.xml开始。

该脚本将VMconfiguration从XML中取出,构build第一个,根据主机名插入第一个命令,然后转到下一个VM。 一旦完成,我将在TechNet上发布它,但ISO创build脚本不是我的。 如果您以我的名义查看TechNet,我已将其链接到此处。

您可以在安装的虚拟机上手动创build新的软盘驱动器,它将显示为磁盘A:在虚拟机内部。 您可以login到虚拟机,格式化磁盘A:并将您的unattended.xml放在根文件夹中。 在此之后,您可以简单地分离虚拟软盘。

稍后,您可以使用Set-VMFloppyDiskDrive命令行开关将此软盘插入到新创build的VM中,并将ISO与OS一起插入。 操作系统将自动从软盘中selectconfiguration。