# ------------------------------------------------------------------------------ # Create Virtual Machine Wizard Script # ------------------------------------------------------------------------------ # Script generated on Thursday, April 3, 2014 1:26:55 PM by Virtual Machine Manager # # For additional help on cmdlet usage, type get-help # ------------------------------------------------------------------------------ ipmo 'virtualmachinemanager\virtualmachinemanager.psd1' [void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') $namingprefix = [Microsoft.VisualBasic.Interaction]::InputBox("Provide the Virtual Machine Name Prefix:", "Virtual Machine Name Prefix", "HVXD71W7-6") [int]$numberofvms = [Microsoft.VisualBasic.Interaction]::InputBox("How Many Virtual Machines to Create?", "How Many Virtual Machines to Create?", "10") [int]$maxjobs = "5" get-vm | sort-object Name | where {$_.Name -like $namingprefix + "*"} | Select-Object -last 1 | foreach-object {$lastvm = $_.Name.Substring($_.Name.Length - 2,2)} if ( $lastvm -ne $null ){ $i = [int]$lastvm} else { $i = 0} $j = $i + $numberofvms for ($i += 1; $i -le $j; $i++) { $running = @(get-job | ? {$_.Status -eq "Running"}) while ($running.Count -ge $maxjobs) {$running = @(get-job | ? {$_.Status -eq "Running"});write-host Sleeping;start-sleep -s 15} $computername = $namingprefix + "{0:d2}" -f $i write-host (get-date -uformat %I:%M:%S) "- Creating virtual machine " $computername -ForegroundColor Green $jobgroup = [guid]::NewGuid() $profile = [guid]::NewGuid() $temptemplate = [guid]::NewGuid() $jobgroup2 = [guid]::NewGuid() New-SCVirtualScsiAdapter -VMMServer localhost -JobGroup $jobgroup -AdapterID 7 -ShareVirtualScsiAdapter $false -ScsiControllerType DefaultTypeNoType New-SCVirtualDVDDrive -VMMServer localhost -JobGroup $jobgroup -Bus 1 -LUN 0 $VMNetwork = Get-SCVMNetwork -VMMServer localhost -Name "VLAN24_Desktops" New-SCVirtualNetworkAdapter -VMMServer localhost -JobGroup $jobgroup -MACAddressType Dynamic -VirtualNetwork "TRUNK_VLAN1-24" -VLanEnabled $true -VLanID 24 -Synthetic -EnableVMNetworkOptimization $false -EnableMACAddressSpoofing $false -EnableGuestIPNetworkVirtualizationUpdates $false -IPv4AddressType Dynamic -IPv6AddressType Dynamic -VMNetwork $VMNetwork Set-SCVirtualCOMPort -NoAttach -VMMServer localhost -GuestPort 1 -JobGroup $jobgroup Set-SCVirtualCOMPort -NoAttach -VMMServer localhost -GuestPort 2 -JobGroup $jobgroup Set-SCVirtualFloppyDrive -RunAsynchronously -VMMServer localhost -NoMedia -JobGroup $jobgroup $CPUType = Get-SCCPUType -VMMServer localhost | where {$_.Name -eq "3.60 GHz Xeon (2 MB L2 cache)"} New-SCHardwareProfile -VMMServer localhost -CPUType $CPUType -Name $profile -Description "Profile used to create a VM/Template" -CPUCount 2 -MemoryMB 1024 -DynamicMemoryEnabled $true -DynamicMemoryMinimumMB 1024 -DynamicMemoryMaximumMB 1048576 -DynamicMemoryBufferPercentage 50 -MemoryWeight 5000 -VirtualVideoAdapterEnabled $false -CPUExpectedUtilizationPercent 20 -DiskIops 0 -CPUMaximumPercent 100 -CPUReserve 0 -NumaIsolationRequired $false -NetworkUtilizationMbps 0 -CPURelativeWeight 100 -HighlyAvailable $false -DRProtectionRequired $false -NumLock $false -BootOrder "PxeBoot", "CD", "IdeHardDrive", "Floppy" -CPULimitFunctionality $false -CPULimitForMigration $false -Generation 1 -JobGroup $jobgroup $Template = Get-SCVMTemplate -VMMServer localhost | where {$_.Name -eq "HVXD71W7-5T"} $HardwareProfile = Get-SCHardwareProfile -VMMServer localhost | where {$_.Name -eq $profile} $LocalAdministratorCredential = get-scrunasaccount -VMMServer "localhost" -Name "LocalAdministrator" $OperatingSystem = Get-SCOperatingSystem -VMMServer localhost | where {$_.Name -eq "64-bit edition of Windows 7"} New-SCVMTemplate -Name $temptemplate -Template $Template -HardwareProfile $HardwareProfile -JobGroup $jobgroup2 -ComputerName $computername -TimeZone 4 -LocalAdministratorCredential $LocalAdministratorCredential -AnswerFile $null -OperatingSystem $OperatingSystem $template = Get-SCVMTemplate -All | where { $_.Name -eq $temptemplate } $virtualMachineConfiguration = New-SCVMConfiguration -VMTemplate $template -Name $computername Write-Output $virtualMachineConfiguration $vmHost = Get-SCVMHost -ComputerName mtx1b3hv3r2 Set-SCVMConfiguration -VMConfiguration $virtualMachineConfiguration -VMHost $vmHost -VMLocation "I:\" -PinVMLocation $true Update-SCVMConfiguration -VMConfiguration $virtualMachineConfiguration $AllNICConfigurations = Get-SCVirtualNetworkAdapterConfiguration -VMConfiguration $virtualMachineConfiguration Update-SCVMConfiguration -VMConfiguration $virtualMachineConfiguration New-SCVirtualMachine -Name $computername -VMConfiguration $virtualMachineConfiguration -Description "" -BlockDynamicOptimization $false -StartVM -JobGroup $jobgroup2 -ReturnImmediately -StartAction "TurnOnVMIfRunningWhenVSStopped" -StopAction "ShutdownGuestOS" } #END OF WHILE LOOP