Назад | Перейти на главную страницу

Добавление файлов Unattended.xml в создание Hyper-V Powershell?

На данный момент у меня есть сценарий подготовки и создания серверов Powershell 3.0. Что я хочу сделать, так это добавить Unattended.xml, чтобы сделать еще один шаг (чтобы мне не пришлось вставать и нажимать далее / выбирать диск / и т. Д.) + Для установки 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

Я думаю, что было бы проще создать VHD и виртуальную машину отдельно. Затем, прежде чем загружать виртуальную машину, смонтируйте виртуальный жесткий диск и разместите на нем файл unattend.xml. (Mount-vhd - это нужный вам командлет.) Затем отключите виртуальный жесткий диск и подключите его к виртуальной машине в качестве последней части создания виртуальной машины.

Вы можете сделать то же самое с виртуальным образом дискеты, но это немного сложнее, поскольку для этого нет опции локального монтирования и потому что он просто увеличивает количество образов виртуальных дисков, с которыми вы имеете дело.

После того, как вы разместили файл автоматической установки на виртуальном жестком диске, вы можете отключить виртуальный жесткий диск с помощью командлета «disount-vhd». Затем прикрепите его к виртуальной машине, которую вы создали, с помощью командлета add-vmharddiskdrive.

Ответ, который я использовал на этот вопрос, - это сценарий, который я нашел, который будет создавать файлы ISO. Когда я присоединял к виртуальной машине виртуальный жесткий диск с файлом unattend.xml, он не использовал его. Когда я добавляю второй DVD в виртуальную машину, это нормально.

Идея проекта, над которым я работаю, состоит в том, чтобы начать с голого металлического бокса и флеш-накопителя с Hyper-V 2012 и Win2012, моим скриптом и config.xml.

Сценарий извлекает конфигурацию виртуальной машины из XML, строит первую, вставляет команды firstlogon на основе имени хоста, а затем переходит к следующей виртуальной машине. Я опубликую его в TechNet, когда закончу с ним, но сценарий создания ISO не мой. Если вы посмотрите TechNet под моим именем, я привел его туда.

Вы можете вручную создать новый дисковод гибких дисков на установленной виртуальной машине, он будет отображаться как диск A: внутри виртуальной машины. Затем вы можете войти в виртуальную машину, отформатировать диск A: и поместить туда ваш unattended.xml в корневую папку. После этого вы можете просто отсоединить виртуальную дискету.

Позже вы можете вставить эту дискету во вновь созданную виртуальную машину с помощью командлета Set-VMFloppyDiskDrive и ISO с ОС. ОС автоматически выберет конфигурацию с дискеты.