Files
Intune/dump/SCCM-Tool/Forms/Form-Examples/FirstForm4-tabs.Export-10.ps1

1033 lines
44 KiB
PowerShell

#------------------------------------------------------------------------
# Source File Information (DO NOT MODIFY)
# Source ID: b24654a3-c952-4b96-8e01-c56d9800c4a7
# Source File: FirstForm4-tabs.psf
#------------------------------------------------------------------------
#region File Recovery Data (DO NOT MODIFY)
<#RecoveryData:
PxYAAB+LCAAAAAAABADNWNtu2kAQfa/Uf7D8TAEbg4kElhJS1KpJgwpN+xat7YFss/ai9ToJ/fqO
L0QBfCVAIxDyZWbP7JyzMyMGP8DhjyBWl0QSBS8Cyv2hqjc11fr4QVEGN4IuqE/YmDL4TjywxlQE
csyFZ3ySxA6ay2A+aO1YJb72H3CkIldLGKrTVSDBa/6ivsufgma0QvLbULJeNZTbNBij2Y4+DWUU
MhkKGPoQSkFYQ5mENqPON1jN+AP4Q9s0Sdfp9rSzjgHt/pmq+BjKUJ3jepqqOPeUuQLt1BH3peAs
SLaIgU4EX4KQq9ThPJR86hAGl9QDPwoCTXsNResMWmvTMtdr7oJqjRGp1GfEKPhySv+ig6mZDcXo
GaVOUZZVK95aqe0MnmUUi/B2TT8/InZqd8WJm655F10PWvHbtWk5nTNip7k9OqmXX0aTIk53s3DF
HSIRW7U0HbnUd3KRl+QIqoLxFBimB9yvvgvPqtWu4hJz3jvrIOdGFQdMcNHylRiakAUcnR4sDUvE
KTx2xSQZDUXP4iiPpTViJZcJcV3qL1QLM59+K/mlhPW7SJi2e0jrU5Z3WHM0t2v+M4BbGoSETeWK
wQVxHkaccaFaMxFC9grlKrkiNhz/CLMIJdroFAR2npjGErnkFNyYldwNF5aCqKxnayZPaBlhV/RP
4tTaemYrKZNPZY8XASlJhEpuiNi4Yy3UU0cEcMGfT1Lig3gHiFZfGZsk62Ytkjewa9KLW9azz3oR
vdm1bqtDR6kf3RN/Ae5WjHevXm327f2Jvgil5P7RebZjGCTVx3jexHOnj6nv1iJ6A7wW0SY2Ab3+
Ma5abJJjXC+w+s1gS184ijoPW0m5ix8eSlOnKh43oVyGb1JT1Bkq83uNYVJG/Xp9KJFgEmot7fVM
HFn0flWpl80gRVUmia5medl98O5GU/3ko2k1l/8ymlabmpOSVGs3e4ynGfVoDZlbit5ZLyvVVmEX
6xoRhXt0sdwR4pD9q/JkE4ulXmCH7V/5cikpVxu3mzfnQQAeKgGCtW36ZGV5gcMFo/YB1DRovay6
jZLo9xQYBz8j5YjRn5CnARLkCYvsPljtzrw7N+ea5nbbpEPKsX577CR7GnEBhwd6uU0kP2i9/sPY
+gcZbzYwPxYAAA==#>
#endregion
#----------------------------------------------
#region Application Functions
#----------------------------------------------
#endregion Application Functions
#----------------------------------------------
# Generated Form Function
#----------------------------------------------
function Call-FirstForm4-tabs_psf {
#----------------------------------------------
#region Import the Assemblies
#----------------------------------------------
[void][reflection.assembly]::Load('System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
#endregion Import Assemblies
#----------------------------------------------
#region Generated Form Objects
#----------------------------------------------
[System.Windows.Forms.Application]::EnableVisualStyles()
$form1 = New-Object 'System.Windows.Forms.Form'
$DHCP = New-Object 'System.Windows.Forms.TabControl'
$tabpage1 = New-Object 'System.Windows.Forms.TabPage'
$flowlayoutControls1 = New-Object 'System.Windows.Forms.FlowLayoutPanel'
$labelDHCPServerName = New-Object 'System.Windows.Forms.Label'
$labelVcenterServerName = New-Object 'System.Windows.Forms.Label'
$labelVCenterUserName = New-Object 'System.Windows.Forms.Label'
$labelVCenterPassword = New-Object 'System.Windows.Forms.Label'
$DHCPserverBox = New-Object 'System.Windows.Forms.TextBox'
$VCenterServerBox = New-Object 'System.Windows.Forms.TextBox'
# $VCenterUserName = New-Object 'System.Windows.Forms.TextBox'
# $VCenterUserPassword = New-Object 'System.Windows.Forms.TextBox'
# $CheckBoxUseWindowsLogin = New-Object 'System.Windows.Forms.CheckBox'
$buttonConnect = New-Object 'System.Windows.Forms.Button'
$buttonVMHostInfo = New-Object 'System.Windows.Forms.Button'
$ButtonScopeStats = New-Object 'System.Windows.Forms.Button'
# $ButtonScopes1 = New-Object 'System.Windows.Forms.Button'
$ButtonTest = New-Object 'System.Windows.Forms.Button'
$Output = New-Object 'System.Windows.Forms.TextBox'
$tabpage2 = New-Object 'System.Windows.Forms.TabPage'
$panel1 = New-Object 'System.Windows.Forms.Panel'
$Connect = New-Object 'System.Windows.Forms.Button'
$InitialFormWindowState = New-Object 'System.Windows.Forms.FormWindowState'
$comboboxScopes = New-Object 'System.Windows.Forms.ComboBox'
$ButtonSelect = New-Object 'System.Windows.Forms.Button'
$labelScopeSelected = New-Object 'System.Windows.Forms.Label'
$labelCurrentScope = New-Object 'System.Windows.Forms.Label'
$labelConnectedDHCPServer = New-Object 'System.Windows.Forms.Label'
$labelDHCPServerStatus = New-Object 'System.Windows.Forms.Label'
$radioDisplay = New-Object 'System.Windows.Forms.RadioButton'
$radioGridview = New-Object 'System.Windows.Forms.RadioButton'
$radioCSV = New-Object 'System.Windows.Forms.RadioButton'
$ButtonAvailableIPAddresses = New-Object 'System.Windows.Forms.Button'
$ButtonExclusionList = New-Object 'System.Windows.Forms.Button'
$ButtonReservationList = New-Object 'System.Windows.Forms.Button'
#endregion Generated Form Objects
#----------------------------------------------
# User Generated Script
#----------------------------------------------
$form1_Load={
#TODO: Initialize Form Controls here
#$DefaultCompName = $env:COMPUTERNAME
#$Output.Text = $DefaultCompName
$Global:DisplayType = "OnScreen"
NA-VCconn
#NA-TestOutput
}
####################################################################################################################################
$flowlayoutControls1_Paint=[System.Windows.Forms.PaintEventHandler]{
#Event Argument: $_ = [System.Windows.Forms.PaintEventArgs]
#TODO: Place custom script here
}
####################################################################################################################################
$Output_TextChanged={
#TODO: Place custom script here
}
####################################################################################################################################
$comboboxScopes_SelectedIndexChanged={
#TODO: Place custom script here
}
####################################################################################################################################
$labelCurrentScope_Click={
}
####################################################################################################################################
$labelConnectedDHCPServer_Click={}
####################################################################################################################################
$labelDHCPServerStatus_Click={}
####################################################################################################################################
$DHCPserverBox_TextChanged={
#TODO: Place custom script here
}
####################################################################################################################################
$VCenterServerBox_TextChanged={}
####################################################################################################################################
<#
$VCenterUserName_TextChanged={
}
$VCenterUserPassword_TextChanged={
}
$CheckBoxUseWindowsLogin_CheckedChanged={
If ($CheckBoxUseWindowsLogin.Checked -eq $true) {
$Output.Text = "Checkbox Checked"
}
}
#>
$buttonConnect_Click={
#TODO: Place custom script here
If (!$DHCPserverBox.Text) {
$Output.Text = "###### Please enter DHCP server name in the Box ###### "
}
Else {
$Output.Text = "**** Locating DHCP Server: $($DHCPserverBox.text.ToUpper()) ****"
$PingDHCPServer = Test-Connection -ComputerName $DHCPserverBox.text -Count 1 -ErrorAction SilentlyContinue
If (!$PingDHCPServer) { $Output.Text = "#### DHCP Server: $($DHCPserverBox.text.ToUpper()) is not accessible - Please Check the Name! ####" }
Else {
NA-Server-Connection 1 ($DHCPserverBox.text)
NA-GetScopes
}
}
}
####################################################################################################################################
$ButtonAvailableIPAddresses_Click={
If ($labelScopeSelected.Text -ne $Global:ScopeValue) {
If (Get-PSSession) {
NA-Get-DHCPinfo -Option AvailableIPAddresses -ScopeSend ($labelScopeSelected.Text) -DisplayOption $Global:DisplayType
}
Else { $Output.Text = "### Not Connected to DHCP Server - Please enter DHCP server name and Connect ###" }
}
}
####################################################################################################################################
$ButtonExclusionList_Click={
#$Output.Text = $Global:DisplayType
If ($labelScopeSelected.Text -ne $Global:ScopeValue) {
If (Get-PSSession) {
NA-Get-DHCPinfo -Option ExclusionList -ScopeSend ($labelScopeSelected.Text) -DisplayOption $Global:DisplayType
}
Else { $Output.Text = "### Not Connected to DHCP Server - Please enter DHCP server name and Connect ###" }
}
Else { $Output.Text = "### Scope Not Found! -- Please Select a Scope from the List ###"}
}
####################################################################################################################################
$ButtonReservationList_Click={
If ($labelScopeSelected.Text -ne $Global:ScopeValue) {
If (Get-PSSession) {
NA-Get-DHCPinfo -Option ReservationList -ScopeSend ($labelScopeSelected.Text) -DisplayOption $Global:DisplayType
}
Else { $Output.Text = "### Not Connected to DHCP Server - Please enter DHCP server name and Connect ###" }
}
Else { $Output.Text = "### Scope Not Found! -- Please Select a Scope from the List ###"}
}#end Button
####################################################################################################################################
$buttonVMHostInfo_Click={
If ( $Global:VCenterConnectionStatus -eq $False) { $Output.Text = "### Please Connect to VCenter Server First ###" }
Else {
$Output.Text = "Geting VM Host Information ...... Please wait!"
$VMHostInformation = Get-VMHost | select name,build,model,@{Name="MemoryTotalGB";Expression={"{0:N2}" -f $_.memorytotalgb}},@{Name="MemoryUsageGB";Expression={"{0:N2}" -f $_.memoryusageGb}} | FT -AutoSize | Out-String
$Output.Text = $VMHostInformation
}
}
####################################################################################################################################
$ButtonScopeStats_Click={
If (Get-PSSession) {
Invoke-Command -Session $Global:Session { $Get_dhcpScopeStats = Get-DhcpServerV4ScopeStatistics }
$DhcpScopeStats = Invoke-Command -Session $Global:Session { $Get_dhcpScopeStats }
If ($radioGridview.Checked) {
$Output.Text = $DhcpScopeStats | select ScopeID,Free,InUse,@{n="PercentageInUse";e={[Math]::Round($_.PercentageInUse,2)}},Reserved,Pending,SuperScopeName | Out-GridView #ft -AutoSize | Out-String
}
Else {
$Output.Text = $DhcpScopeStats | select ScopeID,Free,InUse,@{n="PercentageInUse";e={[Math]::Round($_.PercentageInUse,2)}},Reserved,Pending,SuperScopeName | ft -AutoSize | Out-String
}
}#end If
Else {
$Output.Text = "No Connection to DHCP exists - Cannot proceed!"
}#end Else
}
####################################################################################################################################
$ButtonSelect_Click={
[Bool]$Yes = $False
$Global:Scope | % { $IP = $_; $CmboIP = $comboboxScopes.Text; If ($IP -eq $CmboIP) { $Yes = $True } }
If ($Yes) {
$labelScopeSelected.Text = $comboboxScopes.Text
}
Else { $Output.Text = "Invalid IP Selection - Try Again!"}
# NA-GetScopes
}
####################################################################################################################################
<#
$ButtonScopes1_Click={
$Output.Text = "Hello"
#NA-GetScopes
}
#>
####################################################################################################################################
$radioDisplay_SelectedIndexChanged={
$Global:DisplayType = "OnScreen"
#$Output.Text = $DisplayType
}
####################################################################################################################################
$radioGridview_SelectedIndexChanged={
$Global:DisplayType = "GridView"
#$Output.Text = $DisplayType
}
####################################################################################################################################
$radioCSV_SelectedIndexChanged={
$Global:DisplayType = "CSV"
#$Output.Text = $DisplayType
}
####################################################################################################################################
$tabpage2_SelectedIndexChanged={
#TODO: Place custom script here
[System.Windows.Forms.MessageBox]::Show("This is Error","Error Window",'OK', 'Error')
}
####################################################################################################################################
$tabpage1_SelectedIndexChanged={
}
####################################################################################################################################
$Connect_Click={
#TODO: Place custom script here
#$Output.Text = $VCenterUserName.Text
$Global:VC = $VCenterServerBox.Text
#$VCuser = $VCenterUserName.Text
#$VCpwd = $VCenterUserPassword.text
NA-AddPSsnapin
If (!$VCenterServerBox.text) { $Output.Text = "###### Please Enter VCenter Server Name in the Box ######!!!!"}
Else {
$CheckVCenterConnection = Test-Connection -ComputerName $VCenterServerBox.text -Count 1 -ErrorAction SilentlyContinue
If (!$CheckVCenterConnection) { $Output.Text = "VCenter Server: $VC is not accessible. Please Check Server Name!"}
Else {
NA-VCenterConnection -VCenterServer $Global:VC -ConnState Connect
}#end Else
}#end Else
#$Test = Get-VM Catlbi01 | select *
#$Output.text = $Test | Out-String
}#End $Connect_Click
####################################################################################################################################
# --End User Generated Script--
#----------------------------------------------
#region Generated Events
#----------------------------------------------
$Form_StateCorrection_Load=
{
#Correct the initial state of the form to prevent the .Net maximized form issue
$form1.WindowState = $InitialFormWindowState
}
$Form_Cleanup_FormClosed=
{
#Remove all event handlers from the controls
try
{
$DHCPserverBox.remove_TextChanged($DHCPserverBox_TextChanged)
$flowlayoutControls1.remove_Paint($flowlayoutControls1_Paint)
$VCenterServerBox.remove_TextChanged($VCenterServerBox_TextChanged)
# $VCenterUserName.remove_TextChanged($VCenterUserName_TextChanged)
# $VCenterUserPassword.remove_TextChanged($VCenterUserPassword_TextChanged)
# $CheckBoxUseWindowsLogin.remove_TextChanged($CheckBoxUseWindowsLogin_CheckedChanged)
$buttonConnect.remove_Click($buttonConnect_Click)
$ButtonAvailableIPAddresses.remove_Click($ButtonAvailableIPAddresses_Click)
$ButtonExclusionList.remove_Click($ButtonExclusionList_Click)
$ButtonReservationList.remove_Click($ButtonReservationList_Click)
$buttonVMHostInfo.remove_Click($buttonVMHostInfo_Click)
$ButtonScopeStats.remove_Click($ButtonScopeStats_Click)
$ButtonSelect.remove_Click($ButtonSelect_Click)
# $ButtonScopes1.remove_Click($ButtonScopes_Click)
$Output.remove_TextChanged($Output_TextChanged)
$Connect.remove_Click($Connect_Click)
$tabpage2.remove_Click($tabpage2_Click)
$panel1.remove_Paint($panel1_Paint)
$form1.remove_Load($form1_Load)
$form1.remove_Load($Form_StateCorrection_Load)
$form1.remove_FormClosed($Form_Cleanup_FormClosed)
$comboboxScopes.remove_SelectedIndexChanged($comboboxScopes_SelectedIndexChanged)
$radioDisplay.remove_CheckedChanged($radioDisplay_SelectedIndexChanged)
$radioGridview.remove_CheckedChanged($radioGridview_SelectedIndexChanged)
$radioCSV.remove_CheckedChanged($radioCSV_SelectedIndexChanged)
#$Output.Text = "Closing Connection to DHCP Server"
NA-Server-Connection 0
NA-VCenterConnection -ConnState Disconnect
NA-ClearGlobalVariables
#Write-Host "bye bye"
# Close VCenter connection
}
catch [Exception]
{ }
}
$panel1_Paint=[System.Windows.Forms.PaintEventHandler]{
#Event Argument: $_ = [System.Windows.Forms.PaintEventArgs]
#TODO: Place custom script here
}
#endregion Generated Events
#----------------------------------------------
#region Generated Form Code
#----------------------------------------------
$form1.SuspendLayout()
$DHCP.SuspendLayout()
$tabpage1.SuspendLayout()
$tabpage2.SuspendLayout()
$flowlayoutControls1.SuspendLayout()
#
# form1
#
$form1.Controls.Add($DHCP)
$form1.Controls.Add($Output)
$form1.Controls.Add($flowlayoutControls1)
$form1.AutoScaleDimensions = '6, 13'
$form1.AutoScaleMode = 'Font'
$form1.ClientSize = '921, 644'
$form1.Name = 'form1'
$form1.Text = 'Form'
$form1.add_Load($form1_Load)
#
# DHCP
#
$DHCP.Controls.Add($tabpage1)
$DHCP.Controls.Add($tabpage2)
$DHCP.Location = '139, 10'
$DHCP.Name = 'DHCP'
$DHCP.SelectedIndex = 0
$DHCP.Size = '754, 237'
$DHCP.TabIndex = 0
#
# tabpage1
#
$tabpage1.Controls.Add($labelDHCPServerName)
$tabpage1.Controls.Add($labelScopeSelected)
$tabpage1.Controls.Add($labelCurrentScope)
$tabpage1.Controls.Add($labelConnectedDHCPServer)
$tabpage1.Controls.Add($labelDHCPServerStatus)
$tabpage1.Controls.Add($DHCPserverBox)
$tabpage1.Controls.Add($buttonConnect)
$tabpage1.Controls.Add($ButtonScopeStats)
$tabpage1.Controls.Add($ButtonSelect)
$tabpage1.Controls.Add($comboboxScopes)
$tabpage1.Controls.Add($radioDisplay)
$tabpage1.Controls.Add($radioGridview)
$tabpage1.Controls.Add($radioCSV)
$tabpage1.Controls.Add($flowlayoutControls1)
$tabpage1.Controls.Add($ButtonReservationList)
# $tabpage1.Controls.Add($ButtonScopes1)
# $tabpage1.Controls.Add($Output)
$tabpage1.Location = '4, 22'
$tabpage1.Name = 'tabpage1'
$tabpage1.Padding = '3, 3, 3, 3'
$tabpage1.Size = '754, 237'
$tabpage1.TabIndex = 0
$tabpage1.Text = 'DHCP'
$tabpage1.UseVisualStyleBackColor = $True
#
# flowlayoutpanel1
#
$flowlayoutControls1.Controls.Add($ButtonAvailableIPAddresses)
$flowlayoutControls1.Controls.Add($ButtonExclusionList)
$flowlayoutControls1.Controls.Add($ButtonReservationList)
$flowlayoutControls1.BackColor = 'InactiveCaption'
$flowlayoutControls1.BorderStyle = 'FixedSingle'
$flowlayoutControls1.Location = '393, 7'
$flowlayoutControls1.Name = 'flowlayoutpanel1'
$flowlayoutControls1.Padding = '4, 4, 4, 4'
$flowlayoutControls1.Size = '200, 190'
$flowlayoutControls1.TabIndex = 0
$flowlayoutControls1.add_Paint($flowlayoutControls1_Paint)
#
# labelDHCPServerName
#
$labelDHCPServerName.AutoSize = $True
$labelDHCPServerName.Location = '16, 11'
$labelDHCPServerName.Name = 'labelDHCPServerName'
$labelDHCPServerName.Size = '102, 13'
$labelDHCPServerName.TabIndex = 3
$labelDHCPServerName.Text = 'DHCP Server Name'
#
# labelScopeSelected
#
$labelScopeSelected.AutoSize = $True
$labelScopeSelected.Location = '310, 31'
$labelScopeSelected.Name = 'ScopeSelected'
$labelScopeSelected.Size = '102, 13'
$labelScopeSelected.TabIndex = 12
#$labelScopeSelected.Text = '----'
$Global:ScopeValue = "----"
$labelScopeSelected.Text = $Global:ScopeValue
#
# labelCurrentScoope
#
$labelCurrentScope.AutoSize = $True
$labelCurrentScope.Location = '230, 31'
$labelCurrentScope.Name = 'CurrentScope'
$labelCurrentScope.Size = '102, 13'
$labelCurrentScope.TabIndex = 13
$labelCurrentScope.Text = 'Current Scope:'
$labelCurrentScope.add_Click($labelCurrentScope_Click)
#
# labelConnectedDHCPServer
#
$labelConnectedDHCPServer.AutoSize = $True
$labelConnectedDHCPServer.Location = '230, 11'
$labelConnectedDHCPServer.Name = 'DHCPServer'
$labelConnectedDHCPServer.Size = '102, 13'
$labelConnectedDHCPServer.TabIndex = 13
$labelConnectedDHCPServer.Text = 'DHCP Server:'
$labelConnectedDHCPServer.add_Click($labelConnectedDHCPServer_Click)
#
# labelDHCPServerStatus
#
$labelDHCPServerStatus.AutoSize = $True
$labelDHCPServerStatus.Location = '310, 11'
$labelDHCPServerStatus.Name = 'DHCPServerStatus'
$labelDHCPServerStatus.Size = '102, 13'
$labelDHCPServerStatus.TabIndex = 14
$labelDHCPServerStatus.Text = '----'
$labelDHCPServerStatus.add_Click($labelDHCPServerStatus_Click)
#
# DHCPserverBox
#
$DHCPserverBox.Location = '20, 30'
$DHCPserverBox.Name = 'DHCPserverBox'
$DHCPserverBox.Size = '100, 20'
$DHCPserverBox.TabIndex = 2
$DHCPserverBox.add_TextChanged($DHCPserverBox_TextChanged)
#
# comboboxScopes
$comboboxScopes.Location = '6, 107'
#$combobox1.MaxDropDownItems = 20
$comboboxScopes.Text="----"
$comboboxScopes.Name = 'combobox1'
$comboboxScopes.Size = '121, 21'
$comboboxScopes.TabIndex = 1
$comboboxScopes.add_SelectedIndexChanged($comboboxScopes_SelectedIndexChanged)
$comboboxScopes.AllowDrop = $True
$comboboxScopes.FormattingEnabled = $True
#
# $ButtonSelect
$ButtonSelect.Location = '138, 106'
$ButtonSelect.Name = 'ButtonSelect'
$ButtonSelect.Size = '75, 23'
$ButtonSelect.TabIndex = 13
$ButtonSelect.Text = 'Select'
$ButtonSelect.UseVisualStyleBackColor = $True
$ButtonSelect.add_Click($ButtonSelect_Click)
#
# radioDisplay
#
$radioDisplay.Location = '6, 135'
$radioDisplay.Checked = $True
$radioDisplay.Name = 'Display'
$radioDisplay.Size = '77, 24'
$radioDisplay.TabIndex = 14
$radioDisplay.TabStop = $True
$radioDisplay.Text = 'OnScreen'
$radioDisplay.UseVisualStyleBackColor = $True
$radioDisplay.add_CheckedChanged($radioDisplay_SelectedIndexChanged)
$form1.ResumeLayout()
#
# radioGridview
#
$radioGridview.Location = '84, 135'
$radioGridview.Name = 'Gridview'
$radioGridview.Size = '77, 24'
$radioGridview.TabIndex = 15
$radioGridview.TabStop = $True
$radioGridview.Text = 'GridView'
$radioGridview.UseVisualStyleBackColor = $True
$radioGridview.add_CheckedChanged($radioGridview_SelectedIndexChanged)
#
# radioCSV
#
$radioCSV.Location = '162, 135'
$radioCSV.Name = 'CSV'
$radioCSV.Size = '77, 24'
$radioCSV.TabIndex = 16
$radioCSV.TabStop = $True
$radioCSV.Text = 'CSV'
$radioCSV.UseVisualStyleBackColor = $True
$radioCSV.add_CheckedChanged($radioCSV_SelectedIndexChanged)
#
# ButtonAvailableIPAddresses
#
$ButtonAvailableIPAddresses.Location = '7, 7'
$ButtonAvailableIPAddresses.Name = 'AvailableIPAddresses'
$ButtonAvailableIPAddresses.Size = '126, 23'
$ButtonAvailableIPAddresses.TabIndex = 16
$ButtonAvailableIPAddresses.Text = "Available IPs"
$ButtonAvailableIPAddresses.UseVisualStyleBackColor = $True
$ButtonAvailableIPAddresses.add_Click($ButtonAvailableIPAddresses_Click)
$flowlayoutControls1.ResumeLayout()
#
# ButtonExclusionList
#
$ButtonExclusionList.Location = '7, 36'
$ButtonExclusionList.Name = 'ExclusionList'
$ButtonExclusionList.Size = '126, 23'
$ButtonExclusionList.TabIndex = 17
$ButtonExclusionList.Text = "Exclusion List"
$ButtonExclusionList.UseVisualStyleBackColor = $True
$ButtonExclusionList.add_Click($ButtonExclusionList_Click)
$flowlayoutControls1.ResumeLayout()
#
# ButtonReservationList
$ButtonReservationList.Location = '7, 66'
$ButtonReservationList.Name = 'Reservations'
$ButtonReservationList.Size = '126, 23'
$ButtonReservationList.TabIndex = 18
$ButtonReservationList.Text = "Reservations"
$ButtonReservationList.add_Click($ButtonReservationList_Click)
$ButtonReservationList.UseVisualStyleBackColor = $True
$flowlayoutControls1.ResumeLayout()
#
#
# VCenterServerBox
#
$VCenterServerBox.Location = '8, 26'
$VCenterServerBox.Name = 'VCenterServerBox'
$VCenterServerBox.Size = '100, 20'
$VCenterServerBox.TabIndex = 6
$VCenterServerBox.add_TextChanged($VCenterServerBox_TextChanged)
#
# VCenterUserName
<#
$VCenterUserName.Location = '140, 28'
$VCenterUserName.Name = 'VCenterUserName'
$VCenterUserName.Size = '132, 20'
$VCenterUserName.TabIndex = 7
$VCenterUserName.add_TextChanged($VCenterUserName_TextChanged)
#>
# VCenterUserPassword
<#
$VCenterUserPassword.Location = '278, 28'
$VCenterUserPassword.Name = 'VCenterUserPassword'
$VCenterUserPassword.Size = '132, 20'
$VCenterUserPassword.TabIndex = 8
$VCenterUserPassword.add_TextChanged($VCenterUserPassword_TextChanged)
#>
# CheckBoxUseWindowsLogin
<#
$CheckBoxUseWindowsLogin.Location = '518, 30'
$CheckBoxUseWindowsLogin.Name = 'CheckBoxUseWindowsLogin'
$CheckBoxUseWindowsLogin.Size = '123, 17'
$CheckBoxUseWindowsLogin.TabIndex = 9
$CheckBoxUseWindowsLogin.Text = 'Use Windows Login'
$CheckBoxUseWindowsLogin.add_TextChanged($CheckBoxUseWindowsLogin_CheckedChanged)
#>
# buttonConnect
#
$buttonConnect.Location = '138, 28'
$buttonConnect.Name = 'buttonConnect'
$buttonConnect.Size = '75, 23'
$buttonConnect.TabIndex = 1
$buttonConnect.Text = 'Connect'
$buttonConnect.UseVisualStyleBackColor = $True
$buttonConnect.add_Click($buttonConnect_Click)
#
# ButtonScopeStats
$ButtonScopeStats.Location = '138, 60'
$ButtonScopeStats.Name = 'ButtonScopeStats'
$ButtonScopeStats.Size = '75, 23'
$ButtonScopeStats.TabIndex = 2
$ButtonScopeStats.Text = 'Scope Stats'
$ButtonScopeStats.UseVisualStyleBackColor = $True
$ButtonScopeStats.add_Click($ButtonScopeStats_Click)
#
<# ButtonScopes
$ButtonScopes1.Location = '138, 92'
$ButtonScopes1.Name = 'ButtonScopes'
$ButtonScopes1.Size = '75, 23'
$ButtonScopes1.TabIndex = 4
$ButtonScopes1.Text = 'Get-Scopes'
$ButtonScopes1.UseVisualStyleBackColor = $True
$ButtonScopes1.add_Click($ButtonScopes1_Click)
#>
# Output
#
$Output.Location = '139, 280'
$Output.Multiline = $True
$Output.Name = 'Output'
$Output.ScrollBars = 'Both'
$Output.Font = 'Consolas, 8.25pt'
$Output.WordWrap = $False
$Output.Size = '754, 335'
$Output.TabIndex = 0
$Output.add_TextChanged($Output_TextChanged)
#
# tabpage2
#
$tabpage2.Controls.Add($Connect)
$tabpage2.Controls.Add($buttonVMHostInfo)
$tabpage2.Controls.Add($panel1)
$tabpage2.Controls.Add($labelVcenterServerName)
$tabpage2.Controls.Add($VCenterServerBox)
#$tabpage2.Controls.Add($VCenterUserName)
#$tabpage2.Controls.Add($VCenterUserPassword)
#$tabpage2.Controls.Add($CheckBoxUseWindowsLogin)
$tabpage2.Controls.Add($labelVCenterUserName)
$tabpage2.Controls.Add($labelVCenterPassword)
$tabpage2.Location = '4, 22'
$tabpage2.Name = 'tabpage2'
$tabpage2.Padding = '3, 3, 3, 3'
$tabpage2.Size = '754, 237'
$tabpage2.TabIndex = 1
$tabpage2.Text = 'VCenter'
$tabpage2.UseVisualStyleBackColor = $True
$tabpage2.add_Click($tabpage2_Click)
#
# labelDHCPServerName
#
$labelVcenterServerName.AutoSize = $True
$labelVcenterServerName.Location = '8, 6'
$labelVcenterServerName.Name = 'labelVcenterServerName'
$labelVcenterServerName.Size = '100, 20'
$labelVcenterServerName.TabIndex = 3
$labelVcenterServerName.Text = 'VCenter Server:'
#
#
<# labelVCenterUserName
#
$labelVCenterUserName.AutoSize = $True
$labelVCenterUserName.Location = '138, 11'
$labelVCenterUserName.Name = 'labelVCenterUserName'
$labelVCenterUserName.Size = '99, 13'
$labelVCenterUserName.TabIndex = 4
$labelVCenterUserName.Text = 'Domain\Username:'
#>
<# labelVCenterPassword
#
$labelVCenterPassword.AutoSize = $True
$labelVCenterPassword.Location = '275, 11'
$labelVCenterPassword.Name = 'labelVCenterPassword'
$labelVCenterPassword.Size = '56, 13'
$labelVCenterPassword.TabIndex = 5
$labelVCenterPassword.Text = 'Password:'
#>
# Connect
#
$Connect.Location = '122, 30'
$Connect.Name = 'Connect'
$Connect.Size = '75, 23'
$Connect.TabIndex = 0
$Connect.Text = 'Connect'
$Connect.UseVisualStyleBackColor = $True
$Connect.add_Click($Connect_Click)
#
$tabpage2.ResumeLayout()
$tabpage1.ResumeLayout()
$DHCP.ResumeLayout()
$form1.ResumeLayout()
#endregion Generated Form Code
#
# buttonVMHostInfo
$buttonVMHostInfo.Location = '188, 81'
$buttonVMHostInfo.Name = 'VMHost_Info'
$buttonVMHostInfo.Size = '75, 23'
$buttonVMHostInfo.TabIndex = 9
$buttonVMHostInfo.Text = 'VMHost Info'
$buttonVMHostInfo.add_Click($buttonVMHostInfo_Click)
#
#----------------------------------------------
# panel1
#
$panel1.Controls.Add($labelVcenterServerName)
$panel1.Controls.Add($VCenterServerBox)
$panel1.Controls.Add($VCenterUserName)
$panel1.Controls.Add($VCenterUserPassword)
$panel1.Controls.Add($CheckBoxUseWindowsLogin)
$panel1.Controls.Add($labelVCenterUserName)
$panel1.Controls.Add($labelVCenterPassword)
$panel1.BackColor = 'LightSteelBlue'
$panel1.Location = '6, 6'
$panel1.Name = 'panel1'
$panel1.Size = '198, 56'
$panel1.TabIndex = 0
$panel1.add_Paint($panel1_Paint)
$tabpage2.ResumeLayout()
$tabpage1.ResumeLayout()
$DHCP.ResumeLayout()
$form1.ResumeLayout()
#endregion Generated Form Code
#----------------------------------------------
#Save the initial state of the form
$InitialFormWindowState = $form1.WindowState
#Init the OnLoad event to correct the initial state of the form
$form1.add_Load($Form_StateCorrection_Load)
#Clean up the control events
$form1.add_FormClosed($Form_Cleanup_FormClosed)
#Show the Form
return $form1.ShowDialog()
} #End Function Call-FirstForm4-tabs_psf
####################################################################################################################################
Function NA-GetScopes {
Invoke-Command -Session $Global:Session { $Get_Scope = Get-DhcpServerv4Scope | select -ExpandProperty ScopeID}
$Global:Scope = Invoke-Command -Session $Global:Session { $Get_Scope }
$comboboxScopes.Items.Clear()
# $Global:Scope = Get-Process | select -ExpandProperty ProcessName
$Global:Scope | % { $comboboxScopes.Items.Add($_) }
}
####################################################################################################################################
Function NA-AddPSsnapin {
$CheckPsSnapIn = Get-PSSnapin vmw* -ErrorAction SilentlyContinue
If (!($CheckPsSnapIn)) {
$Output.Text = "Adding PowerCLI Snap-in - Please Wait ...."
Add-PSSnapin vmw*
$CheckPsSnapIn = Get-PSSnapin vmw* -ErrorAction SilentlyContinue
If ($CheckPsSnapIn) {
$Output.Text = "Done!"
}#end If
}#end If
}
####################################################################################################################################
Function NA-VCconn {
$Global:VCenterConnectionStatus = $False
#$Output.Text = $Global:VCenterConnectionStatus
$Output.Text = "Welcome"
}
####################################################################################################################################
Function NA-TestOutput {
$Output.Text = "This is Working!!!"
}
####################################################################################################################################
Function NA-VCenterConnection ($VCenterServer, $ConnState) {
#If (Get-VMHost -ErrorAction SilentlyContinue) { $Output.text = "Checking Status of VCenter Connection.....!" ;$Output.text = "Already Connected to VCenter: $VCenterServer" }
Switch($ConnState) {
Connect { $T = $DefaultVIServer | select -ExpandProperty IsConnected
If ($T -eq $True) { $Output.text = "Checking Status of VCenter Connection.....!" ;$Output.text = "Already Connected to VCenter: $VCenterServer"; Break }
Else {
$Output.text = "Connecting to VCenter ..... Please Wait!"
$Cred = Get-Credential -Credential (Get-WMIObject -class Win32_ComputerSystem | select -ExpandProperty username)
Connect-VIServer -Server $VCenterServerBox.Text -Credential $Cred
$T = $DefaultVIServer | select -ExpandProperty IsConnected
If ($T -eq $True) { $Output.text = "Successfully Connected to VCenter: $VCenterServer"
$Global:VCenterConnectionStatus = $True }
Else { $Output.text = "Failed to Connect to VCenter $VCenterServer - Please Try Again!" }
}#end Else
}
Disconnect { If ($Global:VCenterConnectionStatus -eq $True) { $Global:VCenterConnectionStatus = $False ;Disconnect-VIServer -Server $Global:VC -Force -Confirm:$false}
Else { Break }
}
}#end Switch
}#end Function
####################################################################################################################################
Function NA-Get-DHCPinfo ($Option,$ScopeSend,$DisplayOption) {
Begin { }
Process {
Switch($Option)
{
ExclusionList { $PickScope = $ScopeSend #$labelScopeSelected.Text #$comboboxScopes.Text
#$Output.Text = $PickScope
Invoke-Command -Session $Global:Session { Param($PickScope) $Get_Exclusion = Get-DhcpServerV4ExclusionRange -ScopeID $PickScope | sort StartRange } -ArgumentList $PickScope
$Exclusion = Invoke-Command -Session $Global:Session { $Get_Exclusion }
If ($Exclusion) {
Switch($DisplayOption) {
"OnScreen" { $Output.Text = $Exclusion | select ScopeID,StartRange,EndRange | ft -AutoSize | Out-String }
"GridView" { $Output.Text = $Exclusion | select ScopeID,StartRange,EndRange | Out-GridView }
"CSV" { $Output.Text = "This Option is not yet Available!!!!!!!!!!" }
}#end Switch
}#end If
Else { $Output.Text = "#### No Exclusions Found for the Scope: $PickScope ####" }
}#end ExclusionList
ReservationList { $PickScope = $ScopeSend
Invoke-Command -Session $Global:Session { Param($PickScope) $Get_Reservation = Get-DhcpServerV4Reservation -ScopeID $PickScope | Sort IPAddress } -ArgumentList $PickScope
$Res = Invoke-Command -Session $Global:Session { $Get_Reservation }
#
If ($Res) {
Switch($DisplayOption) {
"OnScreen" { $Output.Text = $Res | Select IPAddress,ClientID,Name,Description | Ft -AutoSize | Out-String }
"GridView" { $Output.Text = $Res | Select IPAddress,ClientID,Name,Description | Out-GridView }
"CSV" { $Output.Text = "This Option is not yet Available!!!!!!!!!!" }
}#end Switch
}#end If
Else { $Output.Text = "#### No Reservations Found for the Scope: $PickScope ####" }
}#end ReservationList
AddDHCPreservation { $PickScope = $ScopeSend
NA-CollectDHCPReservationInfo
$Res_Name = $Global:SendDHCPreservationInfo[0]
$Res_MAC = $Global:SendDHCPreservationInfo[1]
$Res_IP = $Global:SendDHCPreservationInfo[2]
$Res_Description = $Global:SendDHCPreservationInfo[3]
Invoke-Command -Session $Global:Session { Param($PickScope,$Res_Name,$Res_MAC,$Res_IP,$Res_Description) $ADD_Reservation = Add-DhcpServerv4Reservation -ScopeID $PickScope -IPAddress $Res_IP -ClientID $Res_MAC -Name $Res_Name -Description $Res_Description } -ArgumentList $PickScope,$Res_Name,$Res_MAC,$Res_IP,$Res_Description
Write-Host ""
NA-Verify -VerifyCode VerifyDHCPreservation -DHCPscope $PickScope
NA-ClearGlobalVariables
NA-RunAgain
}
DHCPscopes { NA-Get-CurrentIPv4Scopes
Invoke-Command -Session $Global:Session { Param($PickScope) $Get_Scope = Get-DhcpServerv4Scope -ScopeID $PickScope }
$Global:Scope = Invoke-Command -Session $Global:Session { $Get_Scope }
#Write-Host "Current Scope on DHCP Server:"
$Scope | select scopeid,subnetmask,name,state,startrange,endrange,leaseduration | ft -AutoSize
NA-ClearGlobalVariables
NA-RunAgain
}
AvailableIPAddresses { $PickScope = $ScopeSend
Invoke-Command -Session $Global:Session { Param($PickScope) $Get_AvailableIPs = Get-DhcpServerV4FreeIPAddress -ScopeID $PickScope -NumAddress 254 } -ArgumentList $PickScope
$FreeIP = Invoke-Command -Session $Global:Session { $Get_AvailableIPs }
$FreeIPCount = $FreeIP.count
#P
If ($FreeIP) {
Switch($DisplayOption) {
"OnScreen" { $Output.Text = $FreeIP | ft -AutoSize | Out-String }
"GridView" { $Output.Text = $FreeIP | Out-GridView }
"CSV" { $Output.Text = "This Option is not yet Available!!!!!!!!!!" }
}#end Switch
}
Else { $Output.Text = "#### No Available IP Addresses Found for the Scope: $PickScope ####" }
}
DhcpLease { NA-Get-CurrentIPv4Scopes
$PickScope = $Global:SendScope
Invoke-Command -Session $Global:Session { Param($PickScope) $Get_dhcpLease = Get-DhcpserverV4Lease -ScopeID $PickScope } -ArgumentList $PickScope
$DhcpLease = Invoke-Command -Session $Global:Session { $Get_dhcpLease }
$DhcpLease | Select IPAddress,ScopeID,ClientID,Hostname,AddressState, LeaseExpiryTime | Ft -Wrap
NA-ClearGlobalVariables
NA-RunAgain
}
DhcpScopeStats { Invoke-Command -Session $Global:Session { $Get_dhcpScopeStats = Get-DhcpServerV4ScopeStatistics }
$DhcpScopeStats = Invoke-Command -Session $Global:Session { $Get_dhcpScopeStats }
$DhcpScopeStats | select ScopeID,Free,InUse,@{n="PercentageInUse";e={[Math]::Round($_.PercentageInUse,2)}},Reserved,Pending,SuperScopeName | Ft -AutoSize
NA-ClearGlobalVariables
NA-RunAgain
}
DhcpServerStats { Invoke-Command -Session $Global:Session {$Get_DhcpServerStats = Get-DhcpServerV4Statistics }
$DhcpServerStats = Invoke-Command -Session $Global:Session { $Get_DhcpServerStats }
$DhcpServerStats | Fl
NA-ClearGlobalVariables
NA-RunAgain
}
PingDHCPexclusion { Write-Host "This option is not yet available ....!!" -ForegroundColor Red -BackgroundColor White
#NA-Verify -VerifyCode VerifyDHCPreservation -DHCPscope '172.27.144.0'
NA-Menu
}
Test { Invoke-Command -Session $Global:Session { $Name = $env:COMPUTERNAME }
$N = Invoke-Command -Session $Global:Session { $Name }
}
test2 { $Loc = Get-Location
Set-Location "H:\Documents\Scripts-Nabil\PowerShell\_Forms-Test"
.\temp-form.ps1
Set-Location $Loc
NA-RunAgain}
}#end Switch
}#end Process
}#end Function
##################################################################################################################
Function NA-Server-Connection ($SvrConn,$Server) {
Switch($SvrConn) {
0 { Write-Debug "Closing Connection"; Get-PSSession | Remove-PSSession
Write-Host "Good Bye !" -ForegroundColor Cyan }
1 { $Output.text = "Creating Connection to Server: $Server" | Out-String; $Global:Session = New-PSSession -ComputerName $Server
Invoke-Command -Session $Global:Session { Import-Module dhcpserver }
If (Get-Pssession) {
$Output.Text = "Successfully Connected to Server: $Server"
$labelDHCPServerStatus.Text = $Server
}#end If
}#end 1
}#end Switch
}#end Function
###################################################################################################################
Function NA-ClearGlobalVariables {
$Global:DisplayType = ""
$Global:Session = ""
$Global:Scope = ""
$Global:VCenterConnectionStatus = ""
$Global:VC = ""
$VCuser = ""
$VCpwd = ""
}
###################################################################################################################
#Call the form
Call-FirstForm4-tabs_psf | Out-Null