Created
March 14, 2014 08:41
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
##################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() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment