|
##################BEGIN FUNCTIONS |
|
|
|
|
|
function connectServer{ |
|
|
|
try { |
|
|
|
$connect = Connect-VIServer -Server $serverTextBox.Text -User $usernameTextBox.Text -Password $passwordTextBox.Text |
|
|
|
$buttonConnect.Enabled = $false #Disable controls once connected |
|
$serverTextBox.Enabled = $false |
|
$usernameTextBox.Enabled = $false |
|
$passwordTextBox.Enabled = $false |
|
$buttonDisconnect.Enabled = $true #Enable Disconnect button |
|
|
|
getVmHosts #Populate DropDown list with all hosts connected (if vCenter) |
|
|
|
$HostDropDownBox.Enabled=$true |
|
|
|
|
|
$outputTextBox.text = "`nCurrently connected to $($serverTextBox.Text)" #If connection is successfull let user know it |
|
|
|
} |
|
|
|
catch { |
|
|
|
$outputTextBox.text = "`nSomething went wrong connecting to server!!" |
|
|
|
} |
|
|
|
} |
|
|
|
function disconnectServer{ |
|
|
|
try { |
|
|
|
Disconnect-VIServer -Confirm:$false -Force:$true |
|
|
|
$buttonConnect.Enabled = $true #Enable login controls once disconnected |
|
$serverTextBox.Enabled = $true |
|
$usernameTextBox.Enabled = $true |
|
$passwordTextBox.Enabled = $true |
|
$buttonDisconnect.Enabled = $false #Disable Disconnect button |
|
|
|
$HostDropDownBox.Items.Clear() #Remove all items from DropDown boxes |
|
$HostDropDownBox.Enabled=$false #Disable DropDown boxes since they are empty |
|
$VmDropDownBox.Items.Clear() |
|
$VmDropDownBox.Enabled=$false |
|
$HardDiskDropDownBox.Items.Clear() |
|
$HardDiskDropDownBox.Enabled=$false |
|
$NetworkNameDropDownBox.Items.Clear() |
|
$NetworkNameDropDownBox.Enabled=$false |
|
$networkLabelDropDownBox.Items.Clear() |
|
$networkLabelDropDownBox.Enabled=$false |
|
$NetworkAdapterDropDownBox.Items.Clear() |
|
$NetworkAdapterDropDownBox.Enabled=$false |
|
$numVCpuTextBox.Text = "" |
|
$numVCpuTextBox.Enabled=$false |
|
$memSizeGBTextBox.Text = "" |
|
$memSizeGBTextBox.Enabled=$false |
|
$diskSizeGBTextBox.Text = "" |
|
$diskSizeGBTextBox.Enabled=$false |
|
$macAddressTextBox.Text = "" |
|
$macAddressTextBox.Enabled=$false |
|
$wolEnabled.Checked = $false |
|
$wolEnabled.Enabled = $false |
|
$connectedEnabled.Checked = $false |
|
$connectedEnabled.Enabled = $false |
|
$AddNewHardwareDropDownBox.Items.Clear() |
|
$AddNewHardwareDropDownBox.Enabled=$false |
|
$buttonAddHardware.Enabled = $false |
|
$newDiskSizeGBTextBox.Text = "" |
|
$newDiskSizeGBTextBox.Enabled=$false |
|
$independentEnabled.Enabled = $false |
|
$connectedAtPoweron.Checked = $false |
|
$connectedAtPoweron.Enabled = $false |
|
$adapterTypeDropDownBox.Items.Clear() |
|
$adapterTypeDropDownBox.Enabled = $false |
|
$networkLabelDropDownBox.Items.Clear() |
|
$networkLabelDropDownBox.Enabled = $false |
|
|
|
|
|
|
|
$outputTextBox.text = "`nSuccessfully disconnected from $($serverTextBox.Text)" #If disconnection is successfull let user know it |
|
|
|
} |
|
|
|
catch { |
|
|
|
$outputTextBox.text = "`nSomething went wrong disconnecting from server!!" |
|
|
|
} |
|
|
|
} |
|
|
|
function getVmHosts{ |
|
|
|
try { |
|
|
|
$vmhosts = Get-VMHost | Where-Object {$_.PowerState -eq "PoweredOn" -and $_.ConnectionState -eq "Connected"} #Returns only powered On VmHosts |
|
|
|
foreach ($vm in $vmhosts) { |
|
|
|
$HostDropDownBox.Items.Add($vm.Name) #Add Hosts to DropDown List |
|
|
|
} |
|
|
|
} |
|
|
|
catch { |
|
|
|
$outputTextBox.text = "`nSomething went wrong getting VMHosts!!" |
|
|
|
} |
|
|
|
} |
|
|
|
function getVmsOnHost{ |
|
|
|
try { |
|
|
|
$outputTextBox.text = "`nGetting Virtual Machines with Hardware Version 10 on VMHost: $($HostDropDownBox.SelectedItem.ToString())" |
|
|
|
$v10vms = Get-VM | Where-Object {$_.Version -eq "v10" -and $_.VMHost -eq $(Get-VMHost | Where-Object {$_.Name -eq $HostDropDownBox.SelectedItem.ToString()})} #Returns hardware v10 VMs |
|
|
|
foreach ($vm in $v10vms) { |
|
|
|
$VmDropDownBox.Items.Add($vm.Name) #Add VMs to DropDown List |
|
|
|
} |
|
|
|
$VmDropDownBox.Enabled=$true |
|
|
|
} |
|
|
|
catch { |
|
|
|
$outputTextBox.text = "`nSomething went wrong getting VMHosts!!" |
|
|
|
} |
|
|
|
} |
|
|
|
function getDisks{ |
|
|
|
try { |
|
|
|
$HardDiskDropDownBox.Enabled = $true #Enable dropdownbox |
|
|
|
$harddisks = Get-HardDisk -VM $VmDropDownBox.SelectedItem.ToString() |
|
|
|
foreach ($disk in $harddisks) { |
|
|
|
$HardDiskDropDownBox.Items.Add($disk.Name) #Add Hosts to DropDown List |
|
|
|
} |
|
|
|
$HardDiskDropDownBox.SelectedItem = $harddisks.Name #Pre-Select Hard Disk |
|
|
|
} |
|
catch{ |
|
$outputTextBox.text = "`nSomething went wrong getting VmHardDisks!!" |
|
} |
|
} |
|
|
|
function getSelectedDiskSize{ |
|
|
|
try { |
|
|
|
$diskSizeGBTextBox.text = "" #Clear |
|
|
|
$diskSizeGBTextBox.Enabled = $true |
|
|
|
$harddisks = Get-HardDisk -VM $VmDropDownBox.SelectedItem.ToString() -Name $HardDiskDropDownBox.SelectedItem.ToString() |
|
|
|
$diskSizeGBTextBox.text = $harddisks.CapacityGB |
|
|
|
} |
|
catch{ |
|
$outputTextBox.text = "`nSomething went wrong getting SelectedDiskSize!!" |
|
} |
|
} |
|
|
|
function getNetwork{ |
|
|
|
try{ |
|
|
|
$NetworkAdapterDropDownBox.Enabled = $true #Enable DropDown Box |
|
|
|
$wolEnabled.Enabled = $true |
|
$connectedEnabled.Enabled = $true |
|
|
|
$NetworkAdapterDropDownBox.Items.Clear() #Remove all items from DropDown Box since it may be dirtied by previous executions |
|
|
|
$networks= Get-NetworkAdapter -VM $VmDropDownBox.SelectedItem.ToString() |
|
|
|
foreach ($network in $networks) { |
|
|
|
$NetworkAdapterDropDownBox.Items.Add($network.Name) #Add Networks to DropDown List |
|
|
|
} |
|
|
|
$NetworkAdapterDropDownBox.SelectedItem = $networks.Name #Pre-Select Network |
|
|
|
if($network.WakeOnLanEnabled -match "True"){ #If WOL enabled |
|
|
|
$wolEnabled.Checked = $true |
|
|
|
}else{ |
|
|
|
$wolEnabled.Checked = $false |
|
|
|
} |
|
|
|
if(-Not ($network.ConnectionState -match "NotConnected")){ #If connected |
|
|
|
$connectedEnabled.Checked = $true |
|
|
|
}else{ |
|
|
|
$connectedEnabled.Checked = $false |
|
|
|
} |
|
|
|
} |
|
catch{ |
|
$outputTextBox.text = "`nSomething went wrong getting Networks!!" |
|
} |
|
} |
|
|
|
function getSelectedNetworkName{ |
|
try { |
|
|
|
$NetworkNameDropDownBox.Enabled = $true #Enable DropDown Box |
|
|
|
#$macAddressTextBox.Enabled = $true |
|
|
|
$NetworkNameDropDownBox.Items.Clear() #Remove all items from DropDown Box since it may be dirtied by previous executions |
|
$networkLabelDropDownBox.Items.Clear() |
|
|
|
$networks = Get-VirtualPortGroup -VMHost $HostDropDownBox.SelectedItem.ToString() |
|
|
|
foreach ($network in $networks) { |
|
$NetworkNameDropDownBox.Items.Add($network.Name) #Add Networks to DropDown List |
|
$networkLabelDropDownBox.Items.Add($network.Name) |
|
} |
|
|
|
$adapterNetwork = Get-NetworkAdapter -VM $VmDropDownBox.SelectedItem.ToString() -Name $NetworkAdapterDropDownBox.SelectedItem.ToString() #Get networks used by the adapter VM |
|
|
|
$NetworkNameDropDownBox.SelectedItem = $adapterNetwork.NetworkName #Pre-select by default the VM Network used by the selected VM |
|
|
|
$macAddressTextBox.text = $adapterNetwork.MacAddress |
|
|
|
$Label15.Text = $adapterNetwork.Type |
|
|
|
} |
|
catch{ |
|
$outputTextBox.text = "`nSomething went wrong getting SelectedNetworkName!!" |
|
} |
|
} |
|
|
|
function getAddNewHardware{ |
|
|
|
try{ |
|
|
|
if($AddNewHardwareDropDownBox.SelectedItem -match "Hard Disk"){ #Add new Hard Disk |
|
|
|
if($independentEnabled.Checked -eq $true){ #Independent |
|
|
|
if($persistentRadioButton.Checked -eq $true) { #Independent Persistent |
|
|
|
$persistence = "IndependentPersistent" |
|
|
|
}elseif($nonPersistentRadioButton.Checked -eq $true){ #Independent Non Persistent |
|
|
|
$persistence = "IndependentNonPersistent" |
|
|
|
} |
|
|
|
}elseif($independentEnabled.Checked -eq $false){ #Persistent |
|
|
|
$persistence = "Persistent" |
|
|
|
} |
|
|
|
Get-VM -Name $VmDropDownBox.SelectedItem.ToString() | New-HardDisk -CapacityGB $newDiskSizeGBTextBox.Text -Persistence $persistence -Confirm:$false |
|
|
|
} |
|
elseif($AddNewHardwareDropDownBox.SelectedItem.ToString() -match "Network Adapter"){ #Add new Network Adapter |
|
|
|
if($connectedAtPoweron.Checked -eq $true){ #Connected at Poweron |
|
|
|
$startpoweron = $true |
|
|
|
}elseif($connectedAtPoweron.Checked -eq $false){ |
|
|
|
$startpoweron = $false |
|
|
|
} |
|
if ($adapterTypeDropDownBox.SelectedItem.ToString() -match "E1000"){ #E1000 |
|
|
|
$adaptertype = "e1000" |
|
|
|
}elseif($adapterTypeDropDownBox.SelectedItem.ToString() -match "VMXNET3"){ #VMXNET3 |
|
|
|
$adaptertype = "vmxnet3" |
|
|
|
}elseif($adapterTypeDropDownBox.SelectedItem.ToString() -match "E1000E"){ #E1000E |
|
|
|
$adaptertype = "EnhancedVmxnet" |
|
|
|
} |
|
|
|
Get-VM -Name $VmDropDownBox.SelectedItem.ToString() | New-NetworkAdapter -NetworkName $networkLabelDropDownBox.SelectedItem.ToString() -StartConnected:$startpoweron -Type $adaptertype |
|
|
|
} |
|
|
|
getVmConfigs #Refresh data in Text Boxes |
|
|
|
}catch{ |
|
$outputTextBox.text = "`nSomething went wrong getting AddNewHardware!!" |
|
} |
|
} |
|
|
|
function getVmConfigs{ |
|
|
|
try { |
|
|
|
$outputTextBox.text = "`nGetting configs for VM: $($VmDropDownBox.SelectedItem.ToString())" |
|
|
|
$numVCpuTextBox.Enabled = $true #Enable TextBoxes |
|
$memSizeGBTextBox.Enabled = $true |
|
$buttonSetVm.Enabled = $true |
|
|
|
$AddNewHardwareDropDownBox.Enabled=$true #Enable Add new Hardware |
|
|
|
$HardDiskDropDownBox.Items.Clear() #Remove all items from GroupBox since it may be dirtied by previous executions |
|
$NetworkNameDropDownBox.Items.Clear() |
|
$NetworkAdapterDropDownBox.Items.Clear() |
|
$AddNewHardwareDropDownBox.Items.Clear() |
|
$connectedAtPoweron.Checked = $false |
|
$connectedAtPoweron.Enabled = $false |
|
$adapterTypeDropDownBox.Items.Clear() |
|
$adapterTypeDropDownBox.Enabled = $false |
|
$networkLabelDropDownBox.Items.Clear() |
|
$networkLabelDropDownBox.Enabled = $false |
|
$independentEnabled.Enabled = $false |
|
$persistentRadioButton.Enabled = $false |
|
$nonPersistentRadioButton.Enabled = $false |
|
|
|
$numVCpuTextBox.Text = ""; |
|
$memSizeGBTextBox.Text = ""; |
|
$diskSizeGBTextBox.Text = "" |
|
$macAddressTextBox.Text = "" |
|
$newDiskSizeGBTextBox.Text = "" |
|
$newDiskSizeGBTextBox.Enabled = $false |
|
|
|
$VmInfos = Get-VM -Name $VmDropDownBox.SelectedItem.ToString() |
|
|
|
$numVCpuTextBox.text = $VmInfos.NumCPU |
|
$memSizeGBTextBox.text = $VmInfos.MemoryGB |
|
|
|
getDisks |
|
|
|
getNetwork |
|
|
|
$hwsList=@("Hard Disk","Network Adapter") #Populate DropDownBox. By calling it in this method list is populated even if a reconnection occurs. |
|
|
|
foreach ($hw in $hwsList) { |
|
$AddNewHardwareDropDownBox.Items.Add($hw) |
|
} |
|
|
|
$typeList=@("E1000","VMXNET3", "E1000E") |
|
|
|
foreach ($types in $typeList) { |
|
$adapterTypeDropDownBox.Items.Add($types) |
|
} |
|
|
|
} |
|
catch{ |
|
$outputTextBox.text = "`nSomething went wrong getting VmConfigs!!" |
|
} |
|
|
|
} |
|
|
|
function setVmConfigs{ |
|
|
|
try { |
|
|
|
$numVCpu = $numVCpuTextBox.Text -as [int] #Convert values to integer |
|
$memSizeGB = $memSizeGBTextBox.Text -as [int] |
|
$diskSizeGB = $diskSizeGBTextBox.Text -as [int] |
|
|
|
Get-VM -Name $VmDropDownBox.SelectedItem.ToString() | Set-VM -NumCpu $numVCpu -MemoryGB $memSizeGB -Confirm:$false |
|
|
|
if ($HardDiskDropDownBox.Text.Length -gt 0) { |
|
|
|
Get-HardDisk -VM $VmDropDownBox.SelectedItem.ToString() -Name $HardDiskDropDownBox.SelectedItem.ToString() | Set-HardDisk -CapacityGB $diskSizeGB -Confirm:$false |
|
|
|
}else { |
|
|
|
$outputTextBox.text = "`nTo change HardDisk size you must first select one virtual disk!!" |
|
|
|
} |
|
|
|
if (($NetworkAdapterDropDownBox.Text.Length -gt 0) -and ($NetworkNameDropDownBox.Text.Length -gt 0)) { |
|
|
|
if ($wolEnabled.Checked -eq $true){ #Set Wake On LAN |
|
|
|
$wol = $true |
|
|
|
}elseif($wolEnabled.Checked -eq $false){ |
|
|
|
$wol = $false |
|
|
|
} |
|
|
|
if ($connectedEnabled.Checked -eq $true){ #Set Connected |
|
|
|
$connected = $true |
|
|
|
}elseif($connectedEnabled.Checked -eq $false){ |
|
|
|
$connected = $false |
|
|
|
} |
|
|
|
#Set-NetworkAdapter -MacAddress $macAddressTextBox.Text |
|
|
|
Set-NetworkAdapter -NetworkAdapter (Get-NetworkAdapter -VM $VmDropDownBox.SelectedItem.ToString() -Name $NetworkAdapterDropDownBox.SelectedItem.ToString()) -NetworkName $NetworkNameDropDownBox.SelectedItem.ToString() -WakeOnLan $wol -Connected $connected -Confirm:$false |
|
|
|
}else { |
|
|
|
$outputTextBox.text = "`nTo change Network Adapter settings you must first select one!!" |
|
|
|
} |
|
|
|
getVmConfigs #Refresh data in Text Boxes |
|
|
|
} |
|
catch{ |
|
$outputTextBox.text = "`nSomething went wrong setting VmConfigs!!" |
|
} |
|
} |
|
|
|
##################END FUNCTIONS |
|
|
|
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") |
|
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") |
|
|
|
##################Main Form Definition |
|
|
|
$main_form = New-Object System.Windows.Forms.Form |
|
$main_form.Text = "Edit VM Hardware v10" #Form Title |
|
$main_form.Size = New-Object System.Drawing.Size(425,815) |
|
$main_form.StartPosition = "CenterScreen" |
|
|
|
$main_form.KeyPreview = $True |
|
$main_form.Add_KeyDown({if ($_.KeyCode -eq "Escape") |
|
{$main_form.Close()}}) |
|
|
|
##################GroupBox Definition |
|
|
|
$groupBox1 = New-Object System.Windows.Forms.GroupBox |
|
$groupBox1.Location = New-Object System.Drawing.Size(10,5) |
|
$groupBox1.size = New-Object System.Drawing.Size(190,200) #Width, Heigth |
|
$groupBox1.text = "Connect to vCenter or ESXi host:" |
|
$main_form.Controls.Add($groupBox1) |
|
|
|
$groupBox2 = New-Object System.Windows.Forms.GroupBox |
|
$groupBox2.Location = New-Object System.Drawing.Size(10,215) |
|
$groupBox2.size = New-Object System.Drawing.Size(390,60) #Width, Heigth |
|
$groupBox2.text = "Hosts Operations:" |
|
$main_form.Controls.Add($groupBox2) |
|
|
|
$groupBox3 = New-Object System.Windows.Forms.GroupBox |
|
$groupBox3.Location = New-Object System.Drawing.Size(10,285) |
|
$groupBox3.size = New-Object System.Drawing.Size(390,410) #Width, Heigth |
|
$groupBox3.text = "VMs Operations:" |
|
$main_form.Controls.Add($groupBox3) |
|
|
|
$groupBox4 = New-Object System.Windows.Forms.GroupBox |
|
$groupBox4.Location = New-Object System.Drawing.Size(10,700) |
|
$groupBox4.size = New-Object System.Drawing.Size(390,70) #Width, Heigth |
|
$groupBox4.text = "Output:" |
|
$main_form.Controls.Add($groupBox4) |
|
|
|
$groupBox5 = New-Object System.Windows.Forms.GroupBox |
|
$groupBox5.Location = New-Object System.Drawing.Size(210,5) |
|
$groupBox5.size = New-Object System.Drawing.Size(190,200) #Width, Heigth |
|
$groupBox5.text = "Instructions:" |
|
$main_form.Controls.Add($groupBox5) |
|
|
|
##################Label Definition |
|
|
|
$Label1 = New-Object System.Windows.Forms.Label |
|
$Label1.Location = New-Object System.Drawing.Point(10, 20) |
|
$Label1.Size = New-Object System.Drawing.Size(120, 14) |
|
$Label1.Text = "IP Address or FQDN:" |
|
$groupBox1.Controls.Add($Label1) #Member of GroupBox1 |
|
|
|
$Label2 = New-Object System.Windows.Forms.Label |
|
$Label2.Location = New-Object System.Drawing.Point(10, 70) |
|
$Label2.Size = New-Object System.Drawing.Size(120, 14) |
|
$Label2.Text = "Username:" |
|
$groupBox1.Controls.Add($Label2) #Member of GroupBox1 |
|
|
|
$Label3 = New-Object System.Windows.Forms.Label |
|
$Label3.Location = New-Object System.Drawing.Point(10, 120) |
|
$Label3.Size = New-Object System.Drawing.Size(120, 14) |
|
$Label3.Text = "Password:" |
|
$groupBox1.Controls.Add($Label3) #Member of GroupBox1 |
|
|
|
$Label4 = New-Object System.Windows.Forms.Label |
|
$Label4.Location = New-Object System.Drawing.Point(10, 15) |
|
$Label4.Size = New-Object System.Drawing.Size(120, 14) |
|
$Label4.Text = "Select Host:" |
|
$groupBox2.Controls.Add($Label4) #Member of GroupBox2 |
|
|
|
$Label5 = New-Object System.Windows.Forms.Label |
|
$Label5.Location = New-Object System.Drawing.Point(10, 15) |
|
$Label5.Size = New-Object System.Drawing.Size(120, 14) |
|
$Label5.Text = "Select VM:" |
|
$groupBox3.Controls.Add($Label5) #Member of GroupBox3 |
|
|
|
$Label6 = New-Object System.Windows.Forms.Label |
|
$Label6.Location = New-Object System.Drawing.Point(10, 55) |
|
$Label6.Size = New-Object System.Drawing.Size(90, 14) |
|
$Label6.Text = "Num vCPU:" |
|
$groupBox3.Controls.Add($Label6) #Member of GroupBox3 |
|
|
|
$Label7 = New-Object System.Windows.Forms.Label |
|
$Label7.Location = New-Object System.Drawing.Point(200, 55) |
|
$Label7.Size = New-Object System.Drawing.Size(160, 14) |
|
$Label7.Text = "Memory size in GB:" |
|
$groupBox3.Controls.Add($Label7) #Member of GroupBox3 |
|
|
|
$Label8 = New-Object System.Windows.Forms.Label |
|
$Label8.Location = New-Object System.Drawing.Point(10, 95) |
|
$Label8.Size = New-Object System.Drawing.Size(80, 14) |
|
$Label8.Text = "Hard Disk:" |
|
$groupBox3.Controls.Add($Label8) #Member of GroupBox3 |
|
|
|
$Label9 = New-Object System.Windows.Forms.Label |
|
$Label9.Location = New-Object System.Drawing.Point(10, 15) |
|
$Label9.Size = New-Object System.Drawing.Size(170, 180) |
|
$Label9.Text = "1)Connect to vCenter or ESXi host `r`n`r`n2)Select host and get v10 VMs `r`n`r`n3)Select VM `r`n`r`n4)Modify VM settings`r`n`r`n5)Apply Changes `r`n`r`n6)If needed add new hardware`r`n`r`n`Developed by @HostileCoding" |
|
$groupBox5.Controls.Add($Label9) #Member of GroupBox3 |
|
|
|
$Label10 = New-Object System.Windows.Forms.Label |
|
$Label10.Location = New-Object System.Drawing.Point(200, 95) |
|
$Label10.Size = New-Object System.Drawing.Size(120, 14) |
|
$Label10.Text = "Hard Disk size in GB:" |
|
$groupBox3.Controls.Add($Label10) #Member of GroupBox3 |
|
|
|
$Label11 = New-Object System.Windows.Forms.Label |
|
$Label11.Location = New-Object System.Drawing.Point(10, 135) |
|
$Label11.Size = New-Object System.Drawing.Size(120, 14) |
|
$Label11.Text = "Network Adapter:" |
|
$groupBox3.Controls.Add($Label11) #Member of GroupBox3 |
|
|
|
$Label12 = New-Object System.Windows.Forms.Label |
|
$Label12.Location = New-Object System.Drawing.Point(200, 135) |
|
$Label12.Size = New-Object System.Drawing.Size(120, 14) |
|
$Label12.Text = "Network Name:" |
|
$groupBox3.Controls.Add($Label12) #Member of GroupBox3 |
|
|
|
$Label13 = New-Object System.Windows.Forms.Label |
|
$Label13.Location = New-Object System.Drawing.Point(10, 175) |
|
$Label13.Size = New-Object System.Drawing.Size(120, 14) |
|
$Label13.Text = "MAC Address:" |
|
$groupBox3.Controls.Add($Label13) #Member of GroupBox3 |
|
|
|
$Label14 = New-Object System.Windows.Forms.Label |
|
$Label14.Location = New-Object System.Drawing.Point(200, 175) |
|
$Label14.Size = New-Object System.Drawing.Size(40, 14) |
|
$Label14.Text = "Type:" |
|
$groupBox3.Controls.Add($Label14) #Member of GroupBox3 |
|
|
|
$Label15 = New-Object System.Windows.Forms.Label |
|
$Label15.Location = New-Object System.Drawing.Point(240, 175) |
|
$Label15.Size = New-Object System.Drawing.Size(100, 14) |
|
$groupBox3.Controls.Add($Label15) #Member of GroupBox3 |
|
|
|
$Label16 = New-Object System.Windows.Forms.Label |
|
$Label16.Location = New-Object System.Drawing.Point(10, 240) |
|
$Label16.Size = New-Object System.Drawing.Size(120, 14) |
|
$Label16.Text = "Add New Hardware:" |
|
$groupBox3.Controls.Add($Label16) #Member of GroupBox3 |
|
|
|
$Label17 = New-Object System.Windows.Forms.Label |
|
$Label17.Location = New-Object System.Drawing.Point(10, 280) |
|
$Label17.Size = New-Object System.Drawing.Size(120, 14) |
|
$Label17.Text = "Hard Disk size in GB:" |
|
$groupBox3.Controls.Add($Label17) #Member of GroupBox3 |
|
|
|
$Label18 = New-Object System.Windows.Forms.Label |
|
$Label18.Location = New-Object System.Drawing.Point(10, 320) |
|
$Label18.Size = New-Object System.Drawing.Size(120, 14) |
|
$Label18.Text = "Adapter Type:" |
|
$groupBox3.Controls.Add($Label18) #Member of GroupBox3 |
|
|
|
$Label19 = New-Object System.Windows.Forms.Label |
|
$Label19.Location = New-Object System.Drawing.Point(200, 320) |
|
$Label19.Size = New-Object System.Drawing.Size(120, 14) |
|
$Label19.Text = "Network Label:" |
|
$groupBox3.Controls.Add($Label19) #Member of GroupBox3 |
|
|
|
##################Button Definition |
|
|
|
$buttonConnect = New-Object System.Windows.Forms.Button |
|
$buttonConnect.add_click({connectServer}) |
|
$buttonConnect.Text = "Connect" |
|
$buttonConnect.Top=170 |
|
$buttonConnect.Left=10 |
|
$groupBox1.Controls.Add($buttonConnect) #Member of GroupBox1 |
|
|
|
$buttonDisconnect = New-Object System.Windows.Forms.Button |
|
$buttonDisconnect.add_click({disconnectServer}) |
|
$buttonDisconnect.Text = "Disconnect" |
|
$buttonDisconnect.Top=170 |
|
$buttonDisconnect.Left=100 |
|
$buttonDisconnect.Enabled = $false #Disabled by default |
|
$groupBox1.Controls.Add($buttonDisconnect) #Member of GroupBox1 |
|
|
|
$buttonvGetVms = New-Object System.Windows.Forms.Button |
|
$buttonvGetVms.Size = New-Object System.Drawing.Size(180,25) |
|
$buttonvGetVms.add_click({getVmsOnHost}) |
|
$buttonvGetVms.Text = "Get VMs for selected Host" |
|
$buttonvGetVms.Left=200 |
|
$buttonvGetVms.Top=25 |
|
$groupBox2.Controls.Add($buttonvGetVms) #Member of GroupBox2 |
|
|
|
$buttonSetVm = New-Object System.Windows.Forms.Button |
|
$buttonSetVm.Size = New-Object System.Drawing.Size(370,20) |
|
$buttonSetVm.add_click({setVmConfigs}) |
|
$buttonSetVm.Text = "Apply Changes" |
|
$buttonSetVm.Left=10 |
|
$buttonSetVm.Top=215 |
|
$buttonSetVm.Enabled = $false #Disabled by default |
|
$groupBox3.Controls.Add($buttonSetVm) #Member of GroupBox3 |
|
|
|
$buttonAddHardware = New-Object System.Windows.Forms.Button |
|
$buttonAddHardware.Size = New-Object System.Drawing.Size(370,20) |
|
$buttonAddHardware.add_click({getAddNewHardware}) |
|
$buttonAddHardware.Text = "Add Hardware" |
|
$buttonAddHardware.Left=10 |
|
$buttonAddHardware.Top=380 |
|
$buttonAddHardware.Enabled = $false #Disabled by default |
|
$groupBox3.Controls.Add($buttonAddHardware) #Member of GroupBox3 |
|
|
|
##################CheckBox Definition |
|
|
|
$wolEnabled = New-Object System.Windows.Forms.checkbox |
|
$wolEnabled.Location = New-Object System.Drawing.Size(200, 190) |
|
$wolEnabled.Size = New-Object System.Drawing.Size(100,20) |
|
$wolEnabled.Enabled = $false |
|
$wolEnabled.Checked = $false |
|
$wolEnabled.Text = "Wake on LAN" |
|
$groupBox3.Controls.Add($wolEnabled) #Member of GroupBox3 |
|
|
|
$connectedEnabled = New-Object System.Windows.Forms.checkbox |
|
$connectedEnabled.Location = New-Object System.Drawing.Size(300, 190) |
|
$connectedEnabled.Size = New-Object System.Drawing.Size(80,20) |
|
$connectedEnabled.Enabled = $false |
|
$connectedEnabled.Checked = $false |
|
$connectedEnabled.Text = "Connected" |
|
$groupBox3.Controls.Add($connectedEnabled) #Member of GroupBox3 |
|
|
|
$independentEnabled = New-Object System.Windows.Forms.checkbox |
|
$independentEnabled.Location = New-Object System.Drawing.Size(200, 280) |
|
$independentEnabled.Size = New-Object System.Drawing.Size(150,20) |
|
$independentEnabled.Enabled = $false |
|
$independentEnabled.Checked = $false |
|
$independentEnabled.Text = "Independent" |
|
$groupBox3.Controls.Add($independentEnabled) #Member of GroupBox3 |
|
|
|
$independentEnabled.Add_CheckStateChanged({ #Checkbox Enabled |
|
|
|
if ($independentEnabled.Checked) { |
|
|
|
$persistentRadioButton.Enabled = $true |
|
$nonPersistentRadioButton.Enabled = $true |
|
|
|
}else{ |
|
|
|
$persistentRadioButton.Enabled = $false |
|
$nonPersistentRadioButton.Enabled = $false |
|
|
|
} |
|
|
|
}) |
|
|
|
$connectedAtPoweron = New-Object System.Windows.Forms.checkbox |
|
$connectedAtPoweron.Location = New-Object System.Drawing.Size(10, 360) |
|
$connectedAtPoweron.Size = New-Object System.Drawing.Size(150,20) |
|
$connectedAtPoweron.Enabled = $false |
|
$connectedAtPoweron.Checked = $false |
|
$connectedAtPoweron.Text = "Connect at poweron" |
|
$groupBox3.Controls.Add($connectedAtPoweron) #Member of GroupBox3 |
|
|
|
##################RadioButton Definition |
|
|
|
$persistentRadioButton = New-Object System.Windows.Forms.RadioButton |
|
$persistentRadioButton.Location = new-object System.Drawing.Point(200,300) |
|
$persistentRadioButton.size = New-Object System.Drawing.Size(80,20) |
|
$persistentRadioButton.Checked = $true |
|
$persistentRadioButton.Enabled = $false |
|
$persistentRadioButton.Text = "Persistent" |
|
$groupBox3.Controls.Add($persistentRadioButton) |
|
|
|
$nonPersistentRadioButton = New-Object System.Windows.Forms.RadioButton |
|
$nonPersistentRadioButton.Location = new-object System.Drawing.Point(280,300) |
|
$nonPersistentRadioButton.size = New-Object System.Drawing.Size(100,20) |
|
$nonPersistentRadioButton.Checked = $false |
|
$nonPersistentRadioButton.Enabled = $false |
|
$nonPersistentRadioButton.Text = "Non Persistent" |
|
$groupBox3.Controls.Add($nonPersistentRadioButton) |
|
|
|
##################TextBox Definition |
|
|
|
$serverTextBox = New-Object System.Windows.Forms.TextBox |
|
$serverTextBox.Location = New-Object System.Drawing.Size(10,40) #Left, Top, Right, Bottom |
|
$serverTextBox.Size = New-Object System.Drawing.Size(165,20) |
|
$groupBox1.Controls.Add($serverTextBox) #Member of GroupBox1 |
|
|
|
$usernameTextBox = New-Object System.Windows.Forms.TextBox |
|
$usernameTextBox.Location = New-Object System.Drawing.Size(10,90) |
|
$usernameTextBox.Size = New-Object System.Drawing.Size(165,20) |
|
$groupBox1.Controls.Add($usernameTextBox) #Member of GroupBox1 |
|
|
|
$passwordTextBox = New-Object System.Windows.Forms.MaskedTextBox #Password TextBox |
|
$passwordTextBox.PasswordChar = '*' |
|
$passwordTextBox.Location = New-Object System.Drawing.Size(10,140) |
|
$passwordTextBox.Size = New-Object System.Drawing.Size(165,20) |
|
$groupBox1.Controls.Add($passwordTextBox) #Member of GroupBox1 |
|
|
|
$numVCpuTextBox = New-Object System.Windows.Forms.TextBox |
|
$numVCpuTextBox.Location = New-Object System.Drawing.Size(10,70) |
|
$numVCpuTextBox.Size = New-Object System.Drawing.Size(180,20) |
|
$numVCpuTextBox.Enabled=$false |
|
$groupBox3.Controls.Add($numVCpuTextBox) #Member of GroupBox3 |
|
|
|
$memSizeGBTextBox = New-Object System.Windows.Forms.TextBox |
|
$memSizeGBTextBox.Location = New-Object System.Drawing.Size(200,70) |
|
$memSizeGBTextBox.Size = New-Object System.Drawing.Size(180,20) |
|
$memSizeGBTextBox.Enabled=$false |
|
$groupBox3.Controls.Add($memSizeGBTextBox) #Member of GroupBox3 |
|
|
|
$diskSizeGBTextBox = New-Object System.Windows.Forms.TextBox |
|
$diskSizeGBTextBox.Location = New-Object System.Drawing.Size(200,110) |
|
$diskSizeGBTextBox.Size = New-Object System.Drawing.Size(180,20) |
|
$diskSizeGBTextBox.Enabled=$false |
|
$groupBox3.Controls.Add($diskSizeGBTextBox) #Member of GroupBox3 |
|
|
|
$macAddressTextBox = New-Object System.Windows.Forms.TextBox |
|
$macAddressTextBox.Location = New-Object System.Drawing.Size(10,190) |
|
$macAddressTextBox.Size = New-Object System.Drawing.Size(180,20) |
|
$macAddressTextBox.Enabled=$false |
|
$groupBox3.Controls.Add($macAddressTextBox) #Member of GroupBox3 |
|
|
|
$newDiskSizeGBTextBox = New-Object System.Windows.Forms.TextBox |
|
$newDiskSizeGBTextBox.Location = New-Object System.Drawing.Size(10,295) |
|
$newDiskSizeGBTextBox.Size = New-Object System.Drawing.Size(180,20) |
|
$newDiskSizeGBTextBox.Enabled=$false |
|
$groupBox3.Controls.Add($newDiskSizeGBTextBox) #Member of GroupBox3 |
|
|
|
$outputTextBox = New-Object System.Windows.Forms.TextBox |
|
$outputTextBox.Location = New-Object System.Drawing.Size(10,20) |
|
$outputTextBox.Size = New-Object System.Drawing.Size(370,40) |
|
$outputTextBox.MultiLine = $True |
|
$outputTextBox.ReadOnly = $True |
|
$outputTextBox.ScrollBars = "Vertical" |
|
$groupBox4.Controls.Add($outputTextBox) #Member of groupBox4 |
|
|
|
##################DropDownBox Definition |
|
|
|
$VmDropDownBox = New-Object System.Windows.Forms.ComboBox |
|
$VmDropDownBox.DropDownStyle = [System.Windows.Forms.ComboBoxStyle]::DropDownList #Disable user input in ComboBox |
|
$VmDropDownBox.Location = New-Object System.Drawing.Size(10,30) |
|
$VmDropDownBox.Size = New-Object System.Drawing.Size(370,20) |
|
$VmDropDownBox.DropDownHeight = 200 |
|
$VmDropDownBox.Enabled=$false |
|
$groupBox3.Controls.Add($VmDropDownBox) |
|
|
|
$handler_VmDropDownBox_SelectedIndexChanged={ #DropDownBox SelectedIndexChanged Handler |
|
try{ |
|
if ($VmDropDownBox.Text.Length -gt 0) { |
|
getVmConfigs |
|
} |
|
}catch{ |
|
} |
|
} |
|
$VmDropDownBox.add_SelectedIndexChanged($handler_VmDropDownBox_SelectedIndexChanged) |
|
|
|
$HostDropDownBox = New-Object System.Windows.Forms.ComboBox |
|
$HostDropDownBox.DropDownStyle = [System.Windows.Forms.ComboBoxStyle]::DropDownList #Disable user input in ComboBox |
|
$HostDropDownBox.Location = New-Object System.Drawing.Size(10,30) |
|
$HostDropDownBox.Size = New-Object System.Drawing.Size(180,20) |
|
$HostDropDownBox.DropDownHeight = 200 |
|
$HostDropDownBox.Enabled=$false |
|
$groupBox2.Controls.Add($HostDropDownBox) |
|
|
|
$HardDiskDropDownBox = New-Object System.Windows.Forms.ComboBox |
|
$HardDiskDropDownBox.DropDownStyle = [System.Windows.Forms.ComboBoxStyle]::DropDownList #Disable user input in ComboBox |
|
$HardDiskDropDownBox.Location = New-Object System.Drawing.Size(10,110) |
|
$HardDiskDropDownBox.Size = New-Object System.Drawing.Size(180,20) |
|
$HardDiskDropDownBox.DropDownHeight = 200 |
|
$HardDiskDropDownBox.Enabled=$false |
|
$groupBox3.Controls.Add($HardDiskDropDownBox) |
|
|
|
$handler_HardDiskDropDownBox_SelectedIndexChanged={ #DropDownBox SelectedIndexChanged Handler |
|
try{ |
|
if ($HardDiskDropDownBox.Text.Length -gt 0) { |
|
getSelectedDiskSize |
|
} |
|
}catch{ |
|
} |
|
} |
|
$HardDiskDropDownBox.add_SelectedIndexChanged($handler_HardDiskDropDownBox_SelectedIndexChanged) |
|
|
|
$NetworkAdapterDropDownBox = New-Object System.Windows.Forms.ComboBox |
|
$NetworkAdapterDropDownBox.DropDownStyle = [System.Windows.Forms.ComboBoxStyle]::DropDownList #Disable user input in ComboBox |
|
$NetworkAdapterDropDownBox.Location = New-Object System.Drawing.Size(10,150) |
|
$NetworkAdapterDropDownBox.Size = New-Object System.Drawing.Size(180,20) |
|
$NetworkAdapterDropDownBox.DropDownHeight = 200 |
|
$NetworkAdapterDropDownBox.Enabled=$false |
|
$groupBox3.Controls.Add($NetworkAdapterDropDownBox) |
|
|
|
$handler_NetworkAdapterDropDownBox_SelectedIndexChanged={ #DropDownBox SelectedIndexChanged Handler |
|
try{ |
|
if ($NetworkAdapterDropDownBox.Text.Length -gt 0) { |
|
getSelectedNetworkName |
|
} |
|
}catch{ |
|
} |
|
} |
|
$NetworkAdapterDropDownBox.add_SelectedIndexChanged($handler_NetworkAdapterDropDownBox_SelectedIndexChanged) |
|
|
|
$NetworkNameDropDownBox = New-Object System.Windows.Forms.ComboBox |
|
$NetworkNameDropDownBox.DropDownStyle = [System.Windows.Forms.ComboBoxStyle]::DropDownList #Disable user input in ComboBox |
|
$NetworkNameDropDownBox.Location = New-Object System.Drawing.Size(200,150) |
|
$NetworkNameDropDownBox.Size = New-Object System.Drawing.Size(180,20) |
|
$NetworkNameDropDownBox.DropDownHeight = 200 |
|
$NetworkNameDropDownBox.Enabled=$false |
|
$groupBox3.Controls.Add($NetworkNameDropDownBox) |
|
|
|
$AddNewHardwareDropDownBox = New-Object System.Windows.Forms.ComboBox |
|
$AddNewHardwareDropDownBox.DropDownStyle = [System.Windows.Forms.ComboBoxStyle]::DropDownList #Disable user input in ComboBox |
|
$AddNewHardwareDropDownBox.Location = New-Object System.Drawing.Size(10,255) |
|
$AddNewHardwareDropDownBox.Size = New-Object System.Drawing.Size(370,20) |
|
$AddNewHardwareDropDownBox.DropDownHeight = 200 |
|
$AddNewHardwareDropDownBox.Enabled=$false |
|
$groupBox3.Controls.Add($AddNewHardwareDropDownBox) |
|
|
|
$handler_AddNewHardwareDropDownBox_SelectedIndexChanged={ #DropDownBox SelectedIndexChanged Handler |
|
try{ |
|
if ($AddNewHardwareDropDownBox.Text.Length -gt 0) { |
|
|
|
$buttonAddHardware.Enabled = $true |
|
|
|
if ($AddNewHardwareDropDownBox.SelectedItem.ToString() -match "Hard Disk") { |
|
|
|
$newDiskSizeGBTextBox.Enabled = $true #Enable components |
|
$independentEnabled.Enabled = $true |
|
|
|
$connectedAtPoweron.Enabled = $false #Disable components |
|
$adapterTypeDropDownBox.Enabled = $false |
|
$networkLabelDropDownBox.Enabled = $false |
|
|
|
} |
|
elseif($AddNewHardwareDropDownBox.SelectedItem.ToString() -match "Network Adapter"){ |
|
|
|
$connectedAtPoweron.Enabled = $true #Enable components |
|
$adapterTypeDropDownBox.Enabled = $true |
|
$networkLabelDropDownBox.Enabled = $true |
|
|
|
$newDiskSizeGBTextBox.Enabled = $false #Disable components |
|
$independentEnabled.Enabled = $false |
|
$persistentRadioButton.Enabled = $false |
|
$nonPersistentRadioButton.Enabled = $false |
|
|
|
$adapterTypeDropDownBox.Items.Clear() #Clear DropDown Box since it could be dirtied |
|
|
|
$typeList=@("E1000","VMXNET3", "E1000E") |
|
|
|
foreach ($types in $typeList) { |
|
$adapterTypeDropDownBox.Items.Add($types) |
|
} |
|
|
|
} |
|
|
|
} |
|
}catch{ |
|
} |
|
} |
|
$AddNewHardwareDropDownBox.add_SelectedIndexChanged($handler_AddNewHardwareDropDownBox_SelectedIndexChanged) |
|
|
|
$adapterTypeDropDownBox = New-Object System.Windows.Forms.ComboBox |
|
$adapterTypeDropDownBox.DropDownStyle = [System.Windows.Forms.ComboBoxStyle]::DropDownList #Disable user input in ComboBox |
|
$adapterTypeDropDownBox.Location = New-Object System.Drawing.Size(10,335) |
|
$adapterTypeDropDownBox.Size = New-Object System.Drawing.Size(180,20) |
|
$adapterTypeDropDownBox.DropDownHeight = 200 |
|
$adapterTypeDropDownBox.Enabled=$false |
|
$groupBox3.Controls.Add($adapterTypeDropDownBox) |
|
|
|
$networkLabelDropDownBox = New-Object System.Windows.Forms.ComboBox |
|
$networkLabelDropDownBox.DropDownStyle = [System.Windows.Forms.ComboBoxStyle]::DropDownList #Disable user input in ComboBox |
|
$networkLabelDropDownBox.Location = New-Object System.Drawing.Size(200,335) |
|
$networkLabelDropDownBox.Size = New-Object System.Drawing.Size(180,20) |
|
$networkLabelDropDownBox.DropDownHeight = 200 |
|
$networkLabelDropDownBox.Enabled=$false |
|
$groupBox3.Controls.Add($networkLabelDropDownBox) |
|
|
|
##################Show Form |
|
|
|
$main_form.Add_Shown({$main_form.Activate()}) |
|
[void] $main_form.ShowDialog() |