From 2c0128c26b35bcf04fccbb7367109e919c5fd62d Mon Sep 17 00:00:00 2001 From: Alexandre Simao Date: Wed, 30 Jun 2021 13:16:51 +0200 Subject: [PATCH] Loop done, alpha stage untested. v0.5 --- Host/Create-ALL.ps1 | 31 +++++++++++++++++++++++++++++++ Host/VM_list.csv | 2 +- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/Host/Create-ALL.ps1 b/Host/Create-ALL.ps1 index c79a523..f27ef81 100644 --- a/Host/Create-ALL.ps1 +++ b/Host/Create-ALL.ps1 @@ -5,6 +5,37 @@ echo "GPLv3" ### Considered as finished. Need improvement VM side. +$VM_list= import-csv ./VM_list.csv +$i = 0 +$j = 1 + +foreach ($VM_list.VM_name in $VM_list) { + + echo "Adding and configuring ($VM_list.VM_Name[$i])"; + $Lettre = Mount-VHD -Path $env:VHD_PATH$vm_name.VHDx -PassThru | Get-Disk | Get-Partition | Get-Volume | Sort-Object -Property Size -Descending | Select-Object -First 1; + $DriveLetter = $Lettre.DriveLetter; + $drive = $DriveLetter + ":"; + New-Item -Path "${Driveletter}:\conf\" -Name "Base" -ItemType "directory"; + Copy-Item "${env:SCRIPTS_PATH}Unattend\FullUnattend-srv.xml" -Destination "$Drive\Windows\Panther\Unattend.xml"; + Copy-Item "${env:SCRIPTS_PATH}deploy.cmd" -Destination "${Drive}\conf\deploy.cmd"; + mkdir "${Driveletter}:\Tools\Scripts"; + Copy-item "${env:SCRIPTS_PATH}Guests\$vm_name.ps1" "${Drive}\Tools\scripts\boot.ps1"; + + Dismount-VHD "$env:VHD_PATH$vm_name.vhdx"; + + New-VM -Name "($VM_list.VM_name[$i])" -generation "($VM_list.gen[$i])" -memorystartupbytes "$(VM_list.mem[$i])"; + Set-VMHardDiskDrive -VMName "($VM_list.VM_name[$i])" -Path "$env:VHD_PATH$vm_name.vhdx" -ControllerType SCSI; + Set-VMMemory "($VM_list.VM_name[$i])" -DynamicMemoryEnabled $true -MinimumBytes $min_mem -StartupBytes $mem -MaximumBytes $max_mem; + Set-VM -Name "($VM_list.VM_name[$i])" -ProcessorCount "($VM_list_cpus[$i])" + + echo "Configuring adapters"; + Rename-VMNetworkAdapter -VMName "($VM_list.VM_name[$i]) -NewName "($VM_list.switch_name[$i]); + Set-VMNetworkAdapter -VMName "($VM_list.VM_name[$i]) -Name "($VM_list.switch_name[$i]) -DeviceNaming on; + if ( ($VM_list.switch_name$j[$i]) -ne $null) { + Add-VMNetworkAdapter -VMName "$vm_name" -SwitchName "$switch_name2" -Name "Arc-SRV" -DeviceNaming on + Add-VMNetworkAdapter -VMName "$vm_name" -SwitchName "$switch_name3" -Name "WAN" -DeviceNaming on +} + ### Adding SRV-01 $vm_name = "SRV-01" diff --git a/Host/VM_list.csv b/Host/VM_list.csv index ab311c6..8c22a13 100644 --- a/Host/VM_list.csv +++ b/Host/VM_list.csv @@ -1,4 +1,4 @@ -"VMname","swith_name","switch_name2","switch_name3","gen","min_mem","mem","max_mem","cpus" +"VM_name","swith_name","switch_name2","switch_name3","gen","min_mem","mem","max_mem","cpus" "SRV-01","Arc-SRV","","","2","512","1024","2048","2" "SRV-02","Arc-SRV","","","2","512","1024","2048","2" "SRV-03","Bou-LAN","","","2","512","1024","2048","2"