<

View and change network settings from one window

Published on
11,284 Points
5,084 Views
2 Endorsements
Last Modified:
Approved
Do you ever get anoyed by the fact that you have to open and close several windows and tabs to see and edit your IP configuration?

I sure was. So I decided to built a form that gives me the opportunity to see and change:
- IP4 info including wins and netbios
- speed and duplex settings
- ipv4 binding order

So this is what I built using primal forms 2009

 AdapterConfigurator form
Selecting my adapters to work with

The drop down box shows all the network boards with AdapterTypeId 0 (ethernet 802.3). This makes it easier to search WMI for a specific board.
 I saw scripts that enumerated key: HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}
but that resulted in throwing an error when the script hit the properties subkey which we don't have acces to.
I overcame this problem by getting the indexId so I could open the desired key.

Trying to find speed and duplex settings

I also wanted to find the speed and duplex settings. Again I stumbled into the problem that every manufacturer has it's own way of storing that setting. The value or Itemproperty name  is named different for every vendor. So I created a loop to search for the one thing I believe they have common. The name "auto". and "full". Once found the path is stored into a variable. After storing I stripped the last subkey to get the keyname which is the same name as the value name that needs to be changed. Now we can read the Itemproperty value and search for the corresponding setting.

Binding order

That's one thing I wanted to know and be able to change on the fly. I limited this functionality to IPv4 but it's easy to add more functionality as I am also lazy and used NVSPBiND to get and set the binding order. NVSPBIND can be found here:
Microsoft-Nvspbind-package.zip
It realy runs on the fly. As soon as you click on one of the arrow up-down buttons binding order changes. But only for the TCPIPv4 protocol. If you need to bind other protocols please add the following code to the button 8 and 9 click procedure:
nvspbind $iitem ms_tcpip6 /- (for button 8 click)
nvspbind $iitem ms_tcpip6 /+ (for button 9 click)

Primal Forms gives you the opportunity to create an exe file from your form. So here it is:

Version info:            AdapterConfigurator-Version-info.txt
The 32bit version:     AdapterConfigurator-v1.0.0.1-x86.exe
The 64bit version:     AdapterConfigurator-v1.0.0.1--el.exe
The script itself:      
 
In fact his is the second script I ever wrote using powershell and I'm aware that the code can be written more efficently. Please feel free to change it but please keep me updated on the changes as I would like to learn from it. I am working on support for remoting hence the button select server. This option is not functional yet. Feel free to help me out on this one.

Here's the code:

 
########################################################################
# Code Generated By: SAPIEN Technologies, Inc., PrimalForms 2009 v1.1.11.0
# Generated On: 18-4-2011 9:35
# Generated By: Jack van Deur
# Organization: Q-serv  (www.q-serv.nl)
########################################################################

#----------------------------------------------
#region Application Functions
#----------------------------------------------

function OnApplicationLoad {
	#Note: This function runs before the form is created
	#Note: To get the script directory in the Packager use: Split-Path $hostinvocation.MyCommand.path
	#Note: To get the console output in the Packager (Windows Mode) use: $ConsoleOutput (Type: System.Collections.ArrayList)
	#Important: Form controls cannot be accessed in this function
	#TODO: Add snapins and custom code to validate the application load
	return $true #return true for success or false for failure
}

function OnApplicationExit {
	#Note: This function runs after the form is closed
	#TODO: Add custom code to clean up and unload snapins when the application exits
	
	$script:ExitCode = 0 #Set the exit code for the Packager
}

#endregion

#----------------------------------------------
# Generated Form Function
#----------------------------------------------
function GenerateForm {

	#----------------------------------------------
	#region Import Assemblies
	#----------------------------------------------
	[void][reflection.assembly]::Load("System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
	[void][reflection.assembly]::Load("System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
	[void][reflection.assembly]::Load("mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
	[void][reflection.assembly]::Load("System, 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.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
	#endregion
	
	#----------------------------------------------
	#region Generated Form Objects
	#----------------------------------------------
	[System.Windows.Forms.Application]::EnableVisualStyles()
	$form1 = New-Object System.Windows.Forms.Form
	$statusbar1 = New-Object System.Windows.Forms.StatusBar
	$BtServer = New-Object System.Windows.Forms.Button
	$button17 = New-Object System.Windows.Forms.Button
	$groupbox1 = New-Object System.Windows.Forms.GroupBox
	$tDNSadd = New-Object System.Windows.Forms.TextBox
	$DNSrem = New-Object System.Windows.Forms.Button
	$DNSedt = New-Object System.Windows.Forms.Button
	$DNSadd = New-Object System.Windows.Forms.Button
	$listDNS = New-Object System.Windows.Forms.ListBox
	$DNSsearchEdt = New-Object System.Windows.Forms.Button
	$DNSsearchRem = New-Object System.Windows.Forms.Button
	$DNSsearchAdd = New-Object System.Windows.Forms.Button
	$tDNSsearchAdd = New-Object System.Windows.Forms.TextBox
	$label17 = New-Object System.Windows.Forms.Label
	$button16 = New-Object System.Windows.Forms.Button
	$button6 = New-Object System.Windows.Forms.Button
	$button15 = New-Object System.Windows.Forms.Button
	$button5 = New-Object System.Windows.Forms.Button
	$ListDNSsearch = New-Object System.Windows.Forms.ListBox
	$label8 = New-Object System.Windows.Forms.Label
	$tDNSSuf = New-Object System.Windows.Forms.TextBox
	$checkbox2 = New-Object System.Windows.Forms.CheckBox
	$checkbox1 = New-Object System.Windows.Forms.CheckBox
	$label4 = New-Object System.Windows.Forms.Label
	$groupbox5 = New-Object System.Windows.Forms.GroupBox
	$listbox1 = New-Object System.Windows.Forms.ListBox
	$button8 = New-Object System.Windows.Forms.Button
	$button9 = New-Object System.Windows.Forms.Button
	$btChange = New-Object System.Windows.Forms.Button
	$button2 = New-Object System.Windows.Forms.Button
	$button1 = New-Object System.Windows.Forms.Button
	$groupbox4 = New-Object System.Windows.Forms.GroupBox
	$tiID = New-Object System.Windows.Forms.TextBox
	$label20 = New-Object System.Windows.Forms.Label
	$lMan = New-Object System.Windows.Forms.Label
	$tMan = New-Object System.Windows.Forms.TextBox
	$CBSpeedDuplex = New-Object System.Windows.Forms.ComboBox
	$label13 = New-Object System.Windows.Forms.Label
	$label14 = New-Object System.Windows.Forms.Label
	$label12 = New-Object System.Windows.Forms.Label
	$label11 = New-Object System.Windows.Forms.Label
	$label10 = New-Object System.Windows.Forms.Label
	$tNIC = New-Object System.Windows.Forms.TextBox
	$tDdat = New-Object System.Windows.Forms.TextBox
	$label9 = New-Object System.Windows.Forms.Label
	$tDver = New-Object System.Windows.Forms.TextBox
	$cb1 = New-Object System.Windows.Forms.ComboBox
	$tMac = New-Object System.Windows.Forms.TextBox
	$tLoc = New-Object System.Windows.Forms.TextBox
	$groupbox3 = New-Object System.Windows.Forms.GroupBox
	$label19 = New-Object System.Windows.Forms.Label
	$label18 = New-Object System.Windows.Forms.Label
	$checkDHCP = New-Object System.Windows.Forms.CheckBox
	$label3 = New-Object System.Windows.Forms.Label
	$label2 = New-Object System.Windows.Forms.Label
	$label1 = New-Object System.Windows.Forms.Label
	$tsDNS = New-Object System.Windows.Forms.TextBox
	$tDefGW = New-Object System.Windows.Forms.TextBox
	$tpDNS = New-Object System.Windows.Forms.TextBox
	$tSub = New-Object System.Windows.Forms.TextBox
	$tIP = New-Object System.Windows.Forms.TextBox
	$groupbox2 = New-Object System.Windows.Forms.GroupBox
	$rbWins3 = New-Object System.Windows.Forms.RadioButton
	$rbWins2 = New-Object System.Windows.Forms.RadioButton
	$rbWins1 = New-Object System.Windows.Forms.RadioButton
	$checkLMH = New-Object System.Windows.Forms.CheckBox
	$label6 = New-Object System.Windows.Forms.Label
	$label7 = New-Object System.Windows.Forms.Label
	$TWIP1 = New-Object System.Windows.Forms.TextBox
	$tWIP2 = New-Object System.Windows.Forms.TextBox
	$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState
	#endregion Generated Form Objects

	#----------------------------------------------
	# User Generated Script
	#----------------------------------------------

	
	
	
	$FormEvent_Load={
		#TODO: Initialize Form Controls here
		cls
		$cbcol = $null
		$cb = $null
		
		start-job -Name job1 -ScriptBlock {Get-WmiObject -Class Win32_NetworkAdapter -Filter "AdapterTypeID=0"}
		Start-Job -Name job2 -ScriptBlock {Get-WmiObject -Class Win32_NetworkAdapterConfiguration}
		
	#region NVSPbind
		#Getting the current bindingorder for the ms_tcpip (ipv4) protocol
		
			[string]$nvsp = nvspbind /o ms_tcpip
			fnvspbind
	
		#removing excessive text to get a clean list
		
	#endregion
		
		$registry = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine, $serverName)
		$registry = $registry.OpenSubKey("SYSTEM\", $true)
		Set-Variable -Name baseKey -value $registry.OpenSubKey("CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}")-Scope script
		Set-Variable -Name PCIkey -value $registry.OpenSubKey("CurrentControlSet\Enum") -Scope script
		Set-Variable -Name changeKey -value $registry.OpenSubKey("CurrentControlSet\services\Tcpip\Parameters") -Scope script
		Set-Variable -Name nbtkey -value $registry.opensubkey("CurrentControlSet\services\NetBT\Parameters") -Scope script
	
	
	}
	
	#region userfunctions
	#-----------------------------------------------------------------
	function fNVSPbind {
		$nvspb = $nvsp.replace("enabled:   ","~")
		$nvsp = $nvspb.replace("cleaning up...","~")
		$nvspb = $nvsp.split("~")
		$nvsp = $nvspb.count
		$listbox1.Items.AddRange($nvspb[1..($nvsp - 2)])
		$listDNS.items.remove(0..($listDNS.Items.Count))
	}
	
	function get-boards {
		$cb1.Items.Clear()
		$Nicload = Receive-Job job1 -keep
		ForEach ($Nic in $nicload)
		{
			[string]$cb = $Nic.Description
			$cb1.Items.Add($cb)
			}
		
	}
	
	function enable-static{
		$tIP.Enabled = $true
		$tSub.Enabled = $true
		$tDefGW.Enabled = $true
		$listDNS.Enabled = $true
		$listdnssearch.Enabled = $true
		$TWIP1.enabled = $true
		$tWIP2.enabled = $true
	}
	
	function disable-static{
		$tIP.Enabled = $false
		$tSub.Enabled = $false
		$tDefGW.Enabled = $fals
		$listDNS.Enabled = $false
		$ListDNSsearch.Enabled = $false
		$TWIP1.enabled = $false
		$tWIP2.enabled = $false
		$tIP.Text = $null
		$tSub.Text = $null
		$tdefgw.Text = $null
		$tsDNS.Text = $null
		$tpDNS.Text = $null
		$listdns.Items.Clear()
		$tDNSadd.Text = $null
		$listdnssearch.Items.Clear()
		$tdnssearchadd.Text = $null
		$tWIP1.Text = $null
		$twIP2.Text = $null
	}
	
	function clearstatic {
			Set-Location hklm:"\$ippath"
			Set-ItemProperty -Path .\. -Name enabledhcp -Value 1
			clear-ItemProperty -Path .\. -Name Ipaddress
			clear-ItemProperty -Path .\. -Name DefaultGateway
			clear-ItemProperty -Path .\. -Name SubnetMask
			Clear-ItemProperty -Path .\. -Name NameServer
			Set-Location hklm:"\$changekey"
			clear-ItemProperty -Path .\. -Name SearchList
			Set-ItemProperty -Path .\. -Name RegisterAdapterName -Value 0
			Set-ItemProperty -Path .\. -Name RegistrationEnabled -Value 0
			Set-Location hklm:"\$nbtkey"
			set-itemproperty  -Path .\. -name EnableLMHosts -value 0
			set-itemproperty  -Path interfaces\Tcpip_$id -name NetBiosOptions -value 0
			clear-itemproperty  -Path interfaces\Tcpip_$id -name Nameserverlist
			clear-ItemProperty -Path hklm:"\system\currentcontrolset\services\$ID\parameters\tcpip" -Name ipaddress
			clear-ItemProperty -Path hklm:"\system\currentcontrolset\services\$ID\parameters\tcpip" -Name DefaultGateway
			clear-ItemProperty -Path hklm:"\system\currentcontrolset\services\$ID\parameters\tcpip" -Name Subnetmask
			set-ItemProperty -Path hklm:"\system\currentcontrolset\services\$ID\parameters\tcpip" -Name enabledhcp -Value(1)
			
			try
			{
			clear-ItemProperty -Path hklm:"\system\currentcontrolset\services\$ID\parameters\tcpip" -Name DHCPipaddress
			clear-ItemProperty -Path hklm:"\system\currentcontrolset\services\$ID\parameters\tcpip" -Name DHCPDefaultGateway
			clear-ItemProperty -Path hklm:"\system\currentcontrolset\services\$ID\parameters\tcpip" -Name DHCPSubnetmask
			}
			catch {}#add error catching
	}
	
	function setstatic {
			#This function runs after pressing the CHANGE key.
			Set-ItemProperty -Path .\. -Name Ipaddress -Value $tIP.text
			Set-ItemProperty -path .\. -Name Domain -value $tDNSSuf.text
			Set-ItemProperty -Path .\. -Name SubnetMask -Value $tsub.text
			Set-ItemProperty -Path .\. -Name DefaultGateway -Value $tDefGW.text
			set-ItemProperty -Path hklm:"\system\currentcontrolset\services\$ID\parameters\tcpip" `
			-Name ipaddress -value $tIP.text
			set-ItemProperty -Path hklm:"\system\currentcontrolset\services\$ID\parameters\tcpip" `
			-Name DefaultGateway -value $tDefGW.text
			set-ItemProperty -Path hklm:"\system\currentcontrolset\services\$ID\parameters\tcpip" `
			-Name Subnetmask -value $tsub.text
			set-ItemProperty -Path hklm:"\system\currentcontrolset\services\$ID\parameters\tcpip" `
			-Name enableDHCP -value(0)
			set-ItemProperty -ErrorAction silentlycontinue -Path hklm:"\system\currentcontrolset\services\$ID\parameters\tcpip" `
			-Name dhcpserver -value("255.255.255.255")
	
			
			#write the nameserverlist to the registry
			clear-ItemProperty -Path .\. -Name Nameserver
			foreach($item in $listdns.items) {
				$DNSservers += $item + ","
			}
			if ($DNSservers -ne $null) 
			{
				$dnsservers = $dnsservers.trimend(",")
			}
			Set-ItemProperty -Path .\. -Name Nameserver -Value $dnsservers
			#Set the value for full dns registration
			if ($checkbox1.Checked -eq $true)
			{
				Set-ItemProperty -Path .\. -Name RegistrationEnabled -Value 1
			}
			else
			{
				Set-ItemProperty -Path .\. -Name RegistrationEnabled -Value 0
			}
			
			#set the value for auto adapter registration in DNS
			if ($checkbox2.Checked -eq $true)
			{
				Set-ItemProperty -Path .\. -Name RegisterAdapterName -Value 1
			}
			else
			{
				Set-ItemProperty -Path .\. -Name RegisterAdapterName -Value 0
			}
			#write the searchorderlist to the registry
			Set-Location hklm:"\$changekey"
			clear-ItemProperty -Path .\. -Name SearchList
			foreach ($item in $ListDNSsearch.items){
				$strdnssearch += $item + ","
			}
			if ($strdnssearch -ne $null) 
			{
				$strdnssearch = $strdnssearch.trimend(",")
			}
			Set-ItemProperty -Path .\. -Name SearchList -Value $strdnssearch
			
			#Write winsserver addresses to the registry
			if ($TWIP1.Text -ne $null)
			{
				[array]$strSetWins = $TWIP1.Text 
				if ($TWIP2.Text -ne $null)
				{
				$strSetWins += $tWIP2.text
				}
			Set-Location hklm:"\$nbtkey"
			Set-ItemProperty -Path interfaces\Tcpip_$id -Name NameserverList -Value $strSetWins
			}
			else
			{
			Set-ItemProperty -Path interfaces\Tcpip_$id -Name NameserverList -Value $null
			}
			#set the status for LMhosts lookup
			if ($checkLMH.checked -eq $true) 
			{		
				set-itemproperty  -Path .\. -name EnableLMHosts -value 1
			}
			else
			{
				set-itemproperty  -Path .\. -name EnableLMHosts -value 0
			}
		
			#set the status for the netbios options
			if ($rbWins1.checked -eq $true){set-itemproperty  -Path interfaces\Tcpip_$id -name NetBiosOptions -value 0}
			if ($rbWins2.checked -eq $true){set-itemproperty  -Path interfaces\Tcpip_$id -name NetBiosOptions -value 1}
			if ($rbWins3.checked -eq $true){set-itemproperty  -Path interfaces\Tcpip_$id -name NetBiosOptions -value 2}
	}
	
	function refresh {
		$ListDNSsearch.Items.clear()
		$listDNS.Items.Clear()
		$tIP.text = $null
		$tSub.text = $null
		$tDefGW.text = $null
		$TSDNS.text = $null
		$TPDNS.text = $null
		$TWIP1.text = $null
		$tWIP2.text = $null
	}
					
	function get-NicSettings {
		Set-Variable -scope script -Name NicAdapter -value (Receive-Job job1 -keep)
		Set-Variable -scope script -Name NicConfig -value (Receive-Job job2 -keep)
		foreach ($Nic in $nicconfig)
		{
			If ($Nic.Description -eq  $cb1.Text)
			{
				$Tmac.Text = $Nic.MACAddress
				[int]$idx = $nic.InterfaceIndex
				$tiID.Text = ([Convert]::ToString($idx,16))
				if ($Nic.DHCPEnabled -eq "True"){
					$checkDHCP.checked = $true
					$cb4state = $null
					$tIP.Enabled = $false
					$tSub.Enabled = $false
					$tDefGW.Enabled = $false
					$listDNS.Enabled = $false
					$ListDNSsearch.Enabled = $false
					$TWIP1.Enabled = $false
					$tWIP2.Enabled  = $false
				}
				else
				{
					if ($checkDHCP.Checked -eq $true)
					{
						$checkDHCP.Checked = $false
						enable-static
					}
				}
				#define the subkey for the specified board
				[string]$a = $Nic.index 	#read the index number as string
				Set-Variable -Name indexnum -value $a -Scope script
				
				#determine the length of the a variable and add 0 accordingly.
				if ($a.Length -eq 1){$subkeyname = "000" + $a}
				elseif ($a.length -eq 2){$subKeyname = "00" + $a}
				elseif ($a.Length -eq 3){$subkeyname = "0" + $a}
				elseif ($a.Length -eq 4){$subkeyname = $a}
				#subkey is equal to the index number
				#this way no error is thrown when trying to read the properties subkey						
		
								
			
				ForEach ($adap in $NicAdapter)
				{
					If ($adap.index -eq $a)
					{
						$tnic.Text = $adap.NetconnectionID
					}
				}
						
		
				$subKey = $baseKey.OpenSubKey("$subKeyName")
				Set-Variable -Name ID -value $subKey.GetValue("NetCfgInstanceId") -Scope script
					
				Set-Variable -Name winskey -Value $registry.opensubkey("CurrentControlSet\services\NetBT\Parameters\Interfaces\Tcpip_$ID", $true) -Scope script
				$devID = $subKey.GetValue("DeviceInstanceId")
				$LocID =  $PCIkey.OpenSubKey("$devID")
				Set-Variable -Name ipPath -Value $ChangeKey.openSubKey("interfaces\$ID") -Scope script
				
				try 
				{
					enable-static
					$tIP.text = $Nic.IPAddress[0]
					$tsub.Text = $Nic.IPSubnet[0]
					$tdefgw.Text = $Nic.DefaultIPGateway 
					$TPDNS.text = $Nic.DNSServerSearchOrder[0]
					$TSDNS.text = $Nic.DNSServerSearchOrder[1]
					$tWIP1.Text = $Nic.WINSPrimaryServer
					$tWIP2.text = $Nic.WINSSecondaryServer
					if ($Nic.FullDNSRegistrationEnabled -eq "true"){$checkbox1.Checked = $true}
					if ($Nic.DomainDNSregistrationEnabled -eq "true"){$checkbox2.Checked = $true}
				
					#Wins settings
					if ($Nic.WinsEnableLMHostsLookup -eq "true"){$checkLMH.Checked = $true}
					#find out the netbios over tcpip option
					if ($Nic.TcpipNetbiosOptions -eq 0){$rbWins1.Checked = $true}
					if ($Nic.TcpipNetbiosOptions -eq 1){$rbWins2.Checked = $true}
					if ($Nic.TcpipNetbiosOptions -eq 2){$rbWins3.Checked = $true}
				}	
				catch 
				{
					If ($checkDHCP.Checked -eq $true) 
					{
						[System.Windows.Forms.MessageBox]::Show("No IP address information available while DHCP is on. Check your network cabling or your DHCP server!")
					}
					else 
					{
						try
						{
							$tIP.text = $ipPath.GetValue("IpAddress")
							$tsub.text = $ipPath.GetValue("subnetmask")
							$tdefgw.text = $ipPath.GetValue("DefaultGateway")
							$dns = $ipPath.GetValue("Nameserver")
							[array]	$dns = $dns.split(",")
							foreach ($ns in $dns)
							{
								$listDNS.Items.Add($ns)
							}
							$tpdns.text = $listdns.Items[0]
							$tsdns.text = $listdns.items[1]
							if ($ippath.getvalue("RegistrationEnabled")-eq 1){$checkbox1.Checked = $true}
							if ($ippath.getvalue("RegisterAdapterName")-eq 1){$checkbox2.Checked = $true}
							
							if ($nbtkey.getvalue("EnableLMHosts") -eq 1){$checkLMH.Checked = $true}
							$nbtintkey = $nbtkey.opensubkey("interfaces\Tcpip_$id")
							$netbtval = $nbtintkey.getvalue("netbiosoptions")
							if ($netbtval -eq 0){$rbWins1.Checked = $true}
							if ($netbtval -eq 1){$rbWins2.Checked = $true}
							if ($netbtval -eq 2){$rbWins3.Checked = $true}
							$wins = $nbtintkey.getvalue("Nameserverlist")
							$TWIP1.Text = $wins[0]
							$tWIP2.Text = $wins[1]
							
		
						}
						catch
						{
							[System.Windows.Forms.MessageBox]::Show("NO network available. Check your IP configuration,your cabling or connection settings!") 
						}
					}
				}
		
				Set-Variable -Name $ipPath -Value $ippath.getvaluenames() -Scope script
				$tDNSSuf.Text = $ipPath.Getvalue("Domain")
				Try
				{
					Set-Variable -Name DNSsListitems -value $changekey.getvalue("Searchlist") -Scope script
					$DNSsListitems = $DNSsListitems.Split(",")
					foreach ($litem in $DNSsListitems) 
					{ 
						$ListDNSsearch.Items.Add($litem)
					}
				}
				catch
				{
				#hier nog een een errorafhandeling invoegen		
				}
		
				If ($ID -eq $Nic.SettingId)
				{
					# get the value for location information and trim it back to something understandable
					try
					{
						$a = $locID.Getvalue("LocationInformation")
						$b = $a.Split("()")[1]
						$c = $b.Split(",")
						$bus = $c[0]
						$Dev = $c[1]
						$func = $c[2]
						$Locationinfo = "BusNumber " + $bus + "; DeviceID " + $dev + ";  Function " + $func
						$tLoc.Text = $LocationInfo
					}
					catch
					{
						if ($tMan.Text -like "VMware")
						{
							$tLoc.Text = "Virtual NIC: no locationinfo"
						}
					}
					$componentID = $subKey.GetValue("ComponentID")
					
					
					Set-Location hklm:"\$subkey"
						
					gci . -rec -ea SilentlyContinue |  
				   	% {  
				      if((get-itemproperty -Path $_.PsPath ) -match "full" -and (get-itemproperty -Path $_.PsPath )-match "auto" ) 
				      {  
				         $p = $_.PsPath
					  } 					
					}
						
					Set-Location "$p"
					$path = $PWD
					Set-Location ..\.
					$y = $pwd.ProviderPath.Split("\")
					$spdup = $y[($y.Count -1)]
					try
					{
						$SD = $subKey.GetValue("$spdup")
						$enum = $subKey.OpenSubKey("Ndi\Params\$spdup\Enum")
						$ValNames = $enum.getvaluenames()
						foreach ($val in $ValNames)
						{
							$CBSpeedDuplex.Items.add($enum.getvalue("$val"))
							$CBSpeedDuplex.SelectedIndex = $sd
						}
					}		
					catch
					{
						$cbspeedduplex.enabled = $false
						$cbspeedduplex.text = "No speed/duplex setting available"
					}
					$tDver.Text = $subKey.GetValue("DriverVersion")
					$tDdat.Text = $subKey.GetValue("DriverDate")
					$tman.Text = $subKey.GetValue("ProviderName")
				}
			}
		}
	}
			#endregion userfunctions		
			
	$handler_button2_Click={
	#TODO: Place custom script here
		refresh
		get-NicSettings
	}
					
	$handler_cb1_SelectedIndexChanged={
	#TODO: Place custom script here
		refresh
		Get-NicSettings
	}
					
	$handler_button1_Click={
	#TODO: Place custom script here
		$form1.Close()
	}
			
	$handler_btChange_Click={
	#Do a check on the DHCP checkbox
		$mbresult = [System.Windows.Forms.MessageBox]::show("Changes will be made to the registry. Are you shure?","Writing changes...", `
		[System.Windows.Forms.MessageBoxButtons]::OKCancel, [System.Windows.Forms.MessageBoxIcon]::exclamation)
		if ($mbresult -eq  "Ok")
		{
		$NIC = Get-WMIObject -Query "Select * From Win32_NetworkAdapterConfiguration where index = $indexnum"
		#tell WMI that we are going to use static addresses and set IP address and default gateway.
		Set-Location hklm:\
		Set-Location hklm:"\$ippath"
		if ($checkDHCP.Checked -eq $false)
		{
			setstatic
		}
		else
		{
			clearstatic
		}
		}
		else
		{
		$statusbar1.Text = "Cancel pressed... Nothing written."
		}
	
	}
			
			$handler_checkDHCP_MouseClick=[System.Windows.Forms.MouseEventHandler]{
	#Event Argument: $_ = [System.Windows.Forms.MouseEventArgs]
	#TODO: Place custom script here
		Set-Location hklm:\
		Set-Location hklm:"\$ippath"
		if ($checkDHCP.Checked -eq $false)
		{
			set-variable -Name cb4state -value 1 -Scope script			
			enable-static
			Set-ItemProperty -Path .\. -Name enabledhcp -Value 0
			Set-ItemProperty -Path hklm:"\system\currentcontrolset\services\$ID\parameters\tcpip" -Name enabledhcp -Value 0
		}
		Else
		{
			set-variable -Name cb4state -value $null -Scope script	
			disable-static
			Set-ItemProperty -Path .\. -Name enabledhcp -Value 1
			Set-ItemProperty -Path hklm:"\system\currentcontrolset\services\$ID\parameters\tcpip" -Name enabledhcp -Value 1
			clearstatic
		}
	}	
			
			
	#region button-updown
	#-----------------------------------------------------------------------------------
	
	$handler_button15_Click={
	#TODO: Place custom script here
		if ($listDNS.SelectedItem -ne $null) 
		{
			$scount = ((($count -1) -$count)+ $swap)
			$iitem = $sitem
			$ListDNS.items.Removeat($swap)
			$ListDNS.items.insert($scount, $iitem)
			$ListDNS.Refresh()
			$ListDNS.selecteditem = $iitem
		}
	}
	
	$handler_button16_Click={
	#TODO: Place custom script here
		if ($ListDNS.SelectedItem -ne $null) 
		{
			$scount = ((($count +1) -$count)+ $swap)
			$iitem = $sitem
			$ListDNS.items.Removeat($swap)
			$ListDNS.items.insert($scount, $iitem)
			$ListDNS.Refresh()
			$ListDNS.selecteditem = $iitem
		}
	}
	
	$handler_listDNS_MouseClick=[System.Windows.Forms.MouseEventHandler] {
	#Event Argument: $_ = [System.Windows.Forms.MouseEventArgs]
	#TODO: Place custom script here
		Set-Variable -Name swap -value $ListDNS.SelectedIndex -Scope script
		Set-Variable -Name sitem -value $ListDNS.selecteditem -Scope script
		Set-Variable -Name count -value ($ListDNS.Items.Count - 1) -Scope script
		if ($swap -gt "0")
		{
			$button15.Enabled = $true
		}
		else 
		{
			$button15.Enabled = $false
		}
		if ($swap -lt $count)
		{
			$button16.Enabled = $true
		}
		else 
		{
			$button16.Enabled = $false
		}
	}
	
	$handler_listDNS_SelectedIndexChanged={
	#TODO: Place custom script here
		$DNSedt.Enabled = $true
		$DNSrem.Enabled = $true
		$tDNSadd.Text = $listDNS.SelectedItem
		Set-Variable -Name swap -value $ListDNS.SelectedIndex -Scope script
		Set-Variable -Name sitem -value $ListDNS.selecteditem -Scope script
		Set-Variable -Name count -value ($ListDNS.Items.Count - 1) -Scope script
		if ($swap -gt "0")
		{
			$button15.Enabled = $true
		}
		else 
		{
			$button15.Enabled = $false
		}
		if ($swap -lt $count)
		{
			$button16.Enabled = $true
		}
		else 
		{
			$button16.Enabled = $false
		}
		$tpdns.text = $listdns.Items[0]
		$tsdns.text = $listdns.items[1]
	}
	
		$handler_button8_Click={
		#TODO: Place custom script here
			if ($listbox1.SelectedItem -ne $null) 
			{
				$scount = ((($count -1) -$count)+ $swap)
				$iitem = $sitem.TrimEnd(" ")
				$Listbox1.items.Removeat($swap)
				$Listbox1.items.insert($scount, $iitem)
				$Listbox1.Refresh()
	#				[system.Windows.Forms.MessageBox]::Show("nvspbind " + $iitem + " ms_tcpip /+")
				"---------------------------------------------------------" | Out-file d:\log\nvspbindlog.txt -Append
				Get-Date | Out-file d:\log\nvspbindlog.txt -Append
				nvspbind $iitem ms_tcpip /-	| Out-file -FilePath d:\log\nvspbindlog.txt -Append 
				"=========================================================" | Out-file d:\log\nvspbindlog.txt -Append		
				$Listbox1.selecteditem = $iitem
			}
		}
			
		$handler_button9_Click={
		#TODO: Place custom script here
			if ($ListBox1.SelectedItem -ne $null) 
			{
				$scount = ((($count +1) -$count)+ $swap)
				$iitem = $sitem.TrimEnd(" ")
				$ListBox1.items.Removeat($swap)
				$ListBox1.items.insert($scount, $iitem)
				$ListBox1.Refresh()
				"---------------------------------------------------------" | Out-file d:\log\nvspbindlog.txt -Append
				Get-Date | Out-file d:\log\nvspbindlog.txt
				nvspbind $iitem ms_tcpip /-	| Out-file -FilePath d:\log\nvspbindlog.txt -Append
				"=========================================================" | Out-file d:\log\nvspbindlog.txt -Append		
				$ListBox1.selecteditem = $iitem
			}
		}
		
	$handler_listbox1_SelectedIndexChanged={
	#TODO: Place custom script here
	
		Set-Variable -Name swap -value $listbox1.SelectedIndex -Scope script
		Set-Variable -Name sitem -value $listbox1.selecteditem -Scope script
		Set-Variable -Name count -value ($listbox1.Items.Count - 1) -Scope script
		if ($swap -gt "0")
		{
			$button8.Enabled = $true
		}
		else 
		{
			$button8.Enabled = $false
		}
		if ($swap -lt $count)
		{
			$button9.Enabled = $true
		}
		else 
		{
			$button9.Enabled = $false
		}
	
	}
	
	$handler_listbox1_MouseClick=[System.Windows.Forms.MouseEventHandler]{
	#Event Argument: $_ = [System.Windows.Forms.MouseEventArgs]
	#TODO: Place custom script here
		Set-Variable -Name swap -value $listbox1.SelectedIndex -Scope script
		Set-Variable -Name sitem -value $listbox1.selecteditem -Scope script
		Set-Variable -Name count -value ($listbox1.Items.Count - 1) -Scope script
		if ($swap -gt "0")
		{
			$button8.Enabled = $true
		}
		else 
		{
			$button8.Enabled = $false
		}
		if ($swap -lt $count)
		{
			$button9.Enabled = $true
		}
		else 
		{
			$button9.Enabled = $false
		}
	}
	
			
	$handler_button5_Click={
	#TODO: Place custom script here
		if ($ListDNSsearch.SelectedItem -ne $null) 
		{
			$scount = ((($count -1) -$count)+ $swap)
			$iitem = $sitem
			$ListDNSsearch.items.Removeat($swap)
			$ListDNSsearch.items.insert($scount, $iitem)
			$ListDNSsearch.Refresh()
			$ListDNSsearch.selecteditem = $iitem
		}
	}
			
	$handler_button6_Click={
	#TODO: Place custom script here
		if ($ListDNSsearch.SelectedItem -ne $null) 
		{
			$scount = ((($count +1) -$count)+ $swap)
			$iitem = $sitem
			$ListDNSsearch.items.Removeat($swap)
			$ListDNSsearch.items.insert($scount, $iitem)
			$ListDNSsearch.Refresh()
			$ListDNSsearch.selecteditem = $iitem
		}
	}
	
	$handler_ListDNSsearch_MouseClick = [System.Windows.Forms.MouseEventHandler]{
	#TODO: Place custom script here
		Set-Variable -Name swap -value $ListDNSsearch.SelectedIndex -Scope script
		Set-Variable -Name sitem -value $ListDNSsearch.selecteditem -Scope script
		Set-Variable -Name count -value ($ListDNSsearch.Items.Count - 1) -Scope script
		if ($swap -gt "0")
		{
			$button5.Enabled = $true
		}
		else 
		{
			$button5.Enabled = $false
		}
		if ($swap -lt $count)
		{
			$button6.Enabled = $true
		}
		else 
		{
			$button6.Enabled = $false
		}
		$tDNSsearchAdd.Text = $sitem
	}
			
			$handler_ListDNSsearch_SelectedIndexChanged={
			#TODO: Place custom script here
				Set-Variable -Name swap -value $ListDNSsearch.SelectedIndex -Scope script
				Set-Variable -Name sitem -value $ListDNSsearch.selecteditem -Scope script
				Set-Variable -Name count -value ($ListDNSsearch.Items.Count - 1) -Scope script
				if ($swap -gt "0")
				{
					$button5.Enabled = $true
				}
				else 
				{
					$button5.Enabled = $false
				}
				if ($swap -lt $count)
				{
					$button6.Enabled = $true
				}
				else 
				{
					$button6.Enabled = $false
				}
				$tDNSsearchAdd.Text = $sitem
		#		$tDNSsearchAdd.Text = $null
			}
			
			
	#endregion
			
		
	$handler_DNSrem_Click={
	#TODO: Place custom script here
			$ListDNS.items.Remove($listDNS.SelectedItem)
			$ListDNS.Update
			$tDNSadd.Text = $null
			$tpdns.text = $listdns.Items[0]
			$tsdns.text = $listdns.items[1]
			$DNSrem.Enabled = $false
			$DNSedt.Enabled = $false
	
	}
	
	$handler_DNSedt_Click={
	#TODO: Place custom script here
			$dnsix = $listDNS.SelectedIndex
			$dnstext = $tDNSadd.text
			$ListDNS.items.Removeat($DNSix)
			$ListDNS.Items.insert($dnsix,$dnstext)
			$ListDNS.Update
			$tDNSadd.Text = $null
			$tpdns.text = $listdns.Items[0]
			$tsdns.text = $listdns.items[1]
			$DNSrem.Enabled = $false
			$DNSedt.Enabled = $false
	}
		
	$handler_DNSadd_Click={
	#TODO: Place custom script here
			$ListDNS.Items.Add($tDNSadd.Text)
			$ListDNS.Update
			$tDNSadd.Text = $null
			$tpdns.text = $listdns.Items[0]
			$tsdns.text = $listdns.items[1]
	}
	
	$handler_DNSsearchAdd_Click={
	#TODO: Place custom script here
			$ListDNSsearch.Items.Add($tDNSsearchAdd.Text)
			$ListDNSsearch.Update
			$tDNSsearchadd.Text = $null
	}
	
	$handler_DNSsearchEdt_Click={
	#TODO: Place custom script here
			$dnsix = $listDNSsearch.SelectedIndex
			$dnssearchtext = $tDNSsearchadd.text
			$ListDNSsearch.items.Removeat($DNSix)
			$ListDNSsearch.Items.insert($dnsix,$dnssearchtext)
			$ListDNSsearch.Update
			$tDNSsearchadd.Text = $null
	}
	
	$handler_DNSsearchRem_Click={
	#TODO: Place custom script here
		$ListDNSsearch.items.Remove($listDNSsearch.SelectedItem)
		$ListDNSsearch.Update
		$tDNSsearchadd.Text = $null
	}
	
	
	$handler_button17_Click={
	#TODO: Place custom script here
	########################################################################
	# Code Generated By: SAPIEN Technologies, Inc., PrimalForms 2009 v1.1.11.0
	# Generated On: 13-4-2011 7:56
	# Generated By: Jack van Deur
	# Organization: Q-serv  (www.q-serv.nl)
	########################################################################
	
	#----------------------------------------------
	#region Application Functions
	#----------------------------------------------
	
	function OnApplicationLoad {
		#Note: This function runs before the form is created
		#Note: To get the script directory in the Packager use: Split-Path $hostinvocation.MyCommand.path
		#Note: To get the console output in the Packager (Windows Mode) use: $ConsoleOutput (Type: System.Collections.ArrayList)
		#Important: Form controls cannot be accessed in this function
		#TODO: Add snapins and custom code to validate the application load
		
		return $true #return true for success or false for failure
	}
	
	function OnApplicationExit {
		#Note: This function runs after the form is closed
		#TODO: Add custom code to clean up and unload snapins when the application exits
		
		$script:ExitCode = 0 #Set the exit code for the Packager
	}
	
	#endregion
	
	#----------------------------------------------
	# Generated Form Function
	#----------------------------------------------
	function GenerateForm {
	
		#----------------------------------------------
		#region Import Assemblies
		#----------------------------------------------
		[void][reflection.assembly]::Load("System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
		[void][reflection.assembly]::Load("System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
		[void][reflection.assembly]::Load("mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
		[void][reflection.assembly]::Load("System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
		[void][reflection.assembly]::Load("System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
		#endregion
		
		#----------------------------------------------
		#region Generated Form Objects
		#----------------------------------------------
		[System.Windows.Forms.Application]::EnableVisualStyles()
		$form1 = New-Object System.Windows.Forms.Form
		$button1 = New-Object System.Windows.Forms.Button
		$picturebox2 = New-Object System.Windows.Forms.PictureBox
		$picturebox1 = New-Object System.Windows.Forms.PictureBox
		$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState
		#endregion Generated Form Objects
	
		#----------------------------------------------
		# User Generated Script
		#----------------------------------------------
	
		
		
		
		
		$FormEvent_Load={
			#TODO: Initialize Form Controls here
			
		}
			
		$handler_button1_Click={
		#TODO: Place custom script here
		$form1.Close()
		}
		
		#----------------------------------------------
		# Generated Events
		#----------------------------------------------
		
		$Form_StateCorrection_Load=
		{
			#Correct the initial state of the form to prevent the .Net maximized form issue
			$form1.WindowState = $InitialFormWindowState
		}
		
		#----------------------------------------------
		#region Generated Form Code
		#----------------------------------------------
		#
		# form1
		#
		$form1.Controls.Add($button1)
		$form1.Controls.Add($picturebox2)
		$form1.Controls.Add($picturebox1)
		$form1.BackColor = [System.Drawing.Color]::FromArgb(255,244,247,252)
		$form1.ClientSize = New-Object System.Drawing.Size(426,249)
		$form1.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
		$form1.Name = "form1"
		$form1.Text = "About AdapterConfigurator"
		$form1.add_Load($FormEvent_Load)
		#
		# button1
		#
		$button1.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
		$button1.Location = New-Object System.Drawing.Point(344,222)
		$button1.Name = "button1"
		$button1.Size = New-Object System.Drawing.Size(75,23)
		$button1.TabIndex = 2
		$button1.Text = "Close"
		$button1.UseVisualStyleBackColor = $True
		$button1.add_Click($handler_button1_Click)
		#
		# picturebox2
		#
		$picturebox2.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
		$picturebox2.Image = [System.Drawing.Image]::FromFile("C:\Users\Jack\Pictures\adapter configurator.png")
		$picturebox2.Location = New-Object System.Drawing.Point(200,13)
		$picturebox2.Name = "picturebox2"
		$picturebox2.Size = New-Object System.Drawing.Size(219,203)
		$picturebox2.SizeMode = [System.Windows.Forms.PictureBoxSizeMode]::StretchImage 
		$picturebox2.TabIndex = 1
		$picturebox2.TabStop = $False
		#
		# picturebox1
		#
		$picturebox1.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
		$picturebox1.Image = [System.Drawing.Image]::FromFile("C:\Users\Jack\Documents\Eenmanszaak\logo's\Logoletterhead 300 q-serv_48.gif")
		$picturebox1.Location = New-Object System.Drawing.Point(12,12)
		$picturebox1.Name = "picturebox1"
		$picturebox1.Size = New-Object System.Drawing.Size(157,204)
		$picturebox1.SizeMode = [System.Windows.Forms.PictureBoxSizeMode]::StretchImage 
		$picturebox1.TabIndex = 0
		$picturebox1.TabStop = $False
		#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)
		#Show the Form
		return $form1.ShowDialog()
	
	} #End Function
	
	#Call OnApplicationLoad to initialize
	if(OnApplicationLoad -eq $true)
	{
		#Create the form
		GenerateForm | Out-Null
		#Perform cleanup
		OnApplicationExit
	}
	
	}
	
	$handler_cb1_MouseClick={
	#TODO: Place custom script here
		if ($boardinfo -ne 1) {
			if ($cb1.Items.Count -gt 0) {
				$boardinfo = 1 
			}
		get-boards
		}
		else 
		{
		$boardinfo = 0
		}
	}
	
	$handler_BtServer_Click={
	#TODO: Place custom script here
	$server = Read-Host -Prompt "Please enter the servername to work on...."
	try
	{
	Enter-PSSession -ErrorVariable PSSessionError $server -Credential ""
	$listbox1.Items.clear()
	}
	catch
	{
	[System.Windows.Forms.MessageBox]::Show($pssessionError)
	}
	if ($pssessionError = $null) 
	{
	[string]$nvsp = invoke-command (nvspbind /o ms_tcpip)
	fNVSPbind
	}
	}
	
	$handler_tDNSadd_Enter={
	#TODO: Place custom script here
	$statusbar1.Text = "Use this field to add, remove or edit DNS name server entries. (You have to select an entry before you can edit or remove)"
	}
	
	#----------------------------------------------
	# Generated Events
	#----------------------------------------------
	
	$Form_StateCorrection_Load=
	{
		#Correct the initial state of the form to prevent the .Net maximized form issue
		$form1.WindowState = $InitialFormWindowState
	}
	
	#----------------------------------------------
	#region Generated Form Code
	#----------------------------------------------
	#
	# form1
	#
	$form1.Controls.Add($statusbar1)
	$form1.Controls.Add($BtServer)
	$form1.Controls.Add($button17)
	$form1.Controls.Add($groupbox1)
	$form1.Controls.Add($groupbox5)
	$form1.Controls.Add($btChange)
	$form1.Controls.Add($button2)
	$form1.Controls.Add($button1)
	$form1.Controls.Add($groupbox4)
	$form1.Controls.Add($groupbox3)
	$form1.Controls.Add($groupbox2)
	$form1.ClientSize = New-Object System.Drawing.Size(841,496)
	$form1.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$form1.Name = "form1"
	$form1.Text = "Adapter Configuration Form"
	$form1.add_Load($FormEvent_Load)
	#
	# statusbar1
	#
	$statusbar1.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$statusbar1.Location = New-Object System.Drawing.Point(0,474)
	$statusbar1.Name = "statusbar1"
	$statusbar1.Size = New-Object System.Drawing.Size(841,22)
	$statusbar1.TabIndex = 27
	#
	# BtServer
	#
	$BtServer.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$BtServer.Location = New-Object System.Drawing.Point(192,445)
	$BtServer.Name = "BtServer"
	$BtServer.Size = New-Object System.Drawing.Size(133,23)
	$BtServer.TabIndex = 26
	$BtServer.Text = "Select server"
	$BtServer.UseVisualStyleBackColor = $True
	$BtServer.add_Click($handler_BtServer_Click)
	#
	# button17
	#
	$button17.AccessibleRole = [System.Windows.Forms.AccessibleRole]::HelpBalloon 
	$button17.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$button17.Location = New-Object System.Drawing.Point(331,445)
	$button17.Name = "button17"
	$button17.Size = New-Object System.Drawing.Size(133,23)
	$button17.TabIndex = 25
	$button17.Text = "Ab&out"
	$button17.UseVisualStyleBackColor = $True
	$button17.add_Click($handler_button17_Click)
	#
	# groupbox1
	#
	$groupbox1.Controls.Add($tDNSadd)
	$groupbox1.Controls.Add($DNSrem)
	$groupbox1.Controls.Add($DNSedt)
	$groupbox1.Controls.Add($DNSadd)
	$groupbox1.Controls.Add($listDNS)
	$groupbox1.Controls.Add($DNSsearchEdt)
	$groupbox1.Controls.Add($DNSsearchRem)
	$groupbox1.Controls.Add($DNSsearchAdd)
	$groupbox1.Controls.Add($tDNSsearchAdd)
	$groupbox1.Controls.Add($label17)
	$groupbox1.Controls.Add($button16)
	$groupbox1.Controls.Add($button6)
	$groupbox1.Controls.Add($button15)
	$groupbox1.Controls.Add($button5)
	$groupbox1.Controls.Add($ListDNSsearch)
	$groupbox1.Controls.Add($label8)
	$groupbox1.Controls.Add($tDNSSuf)
	$groupbox1.Controls.Add($checkbox2)
	$groupbox1.Controls.Add($checkbox1)
	$groupbox1.Controls.Add($label4)
	$groupbox1.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$groupbox1.Location = New-Object System.Drawing.Point(331,192)
	$groupbox1.Name = "groupbox1"
	$groupbox1.Size = New-Object System.Drawing.Size(493,245)
	$groupbox1.TabIndex = 2
	$groupbox1.TabStop = $False
	$groupbox1.Text = "DNS Info"
	#
	# tDNSadd
	#
	$tDNSadd.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$tDNSadd.Location = New-Object System.Drawing.Point(9,112)
	$tDNSadd.Name = "tDNSadd"
	$tDNSadd.Size = New-Object System.Drawing.Size(183,20)
	$tDNSadd.TabIndex = 5
	$tDNSadd.Text = "Enter DNS server IP addresses here"
	$tDNSadd.add_Enter($handler_tDNSadd_Enter)
	#
	# DNSrem
	#
	$DNSrem.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$DNSrem.Enabled = $False
	$DNSrem.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",6.75,0,3,1)
	$DNSrem.Location = New-Object System.Drawing.Point(75,135)
	$DNSrem.Name = "DNSrem"
	$DNSrem.Size = New-Object System.Drawing.Size(49,23)
	$DNSrem.TabIndex = 7
	$DNSrem.Text = "Remo&ve"
	$DNSrem.UseVisualStyleBackColor = $True
	$DNSrem.add_Click($handler_DNSrem_Click)
	#
	# DNSedt
	#
	$DNSedt.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$DNSedt.Enabled = $False
	$DNSedt.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",6.75,0,3,1)
	$DNSedt.Location = New-Object System.Drawing.Point(143,135)
	$DNSedt.Name = "DNSedt"
	$DNSedt.Size = New-Object System.Drawing.Size(49,23)
	$DNSedt.TabIndex = 8
	$DNSedt.Text = "Edi&t"
	$DNSedt.UseVisualStyleBackColor = $True
	$DNSedt.add_Click($handler_DNSedt_Click)
	#
	# DNSadd
	#
	$DNSadd.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$DNSadd.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",6.75,0,3,1)
	$DNSadd.Location = New-Object System.Drawing.Point(9,135)
	$DNSadd.Name = "DNSadd"
	$DNSadd.Size = New-Object System.Drawing.Size(49,23)
	$DNSadd.TabIndex = 6
	$DNSadd.Text = "&Add"
	$DNSadd.UseVisualStyleBackColor = $True
	$DNSadd.add_Click($handler_DNSadd_Click)
	#
	# listDNS
	#
	$listDNS.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$listDNS.Enabled = $False
	$listDNS.FormattingEnabled = $True
	$listDNS.Location = New-Object System.Drawing.Point(9,36)
	$listDNS.Name = "listDNS"
	$listDNS.Size = New-Object System.Drawing.Size(182,69)
	$listDNS.TabIndex = 4
	$listDNS.TabStop = $False
	$listDNS.add_MouseClick($handler_listDNS_MouseClick)
	$listDNS.add_SelectedIndexChanged($handler_listDNS_SelectedIndexChanged)
	#
	# DNSsearchEdt
	#
	$DNSsearchEdt.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$DNSsearchEdt.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",6.75,0,3,1)
	$DNSsearchEdt.ForeColor = [System.Drawing.Color]::FromArgb(255,0,0,0)
	$DNSsearchEdt.Location = New-Object System.Drawing.Point(397,135)
	$DNSsearchEdt.Name = "DNSsearchEdt"
	$DNSsearchEdt.Size = New-Object System.Drawing.Size(50,22)
	$DNSsearchEdt.TabIndex = 15
	$DNSsearchEdt.Text = "Edit"
	$DNSsearchEdt.UseVisualStyleBackColor = $True
	$DNSsearchEdt.add_Click($handler_DNSsearchEdt_Click)
	#
	# DNSsearchRem
	#
	$DNSsearchRem.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$DNSsearchRem.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",6.75,0,3,1)
	$DNSsearchRem.ForeColor = [System.Drawing.Color]::FromArgb(255,0,0,0)
	$DNSsearchRem.Location = New-Object System.Drawing.Point(331,135)
	$DNSsearchRem.Name = "DNSsearchRem"
	$DNSsearchRem.Size = New-Object System.Drawing.Size(50,22)
	$DNSsearchRem.TabIndex = 14
	$DNSsearchRem.Text = "Remove"
	$DNSsearchRem.UseVisualStyleBackColor = $True
	$DNSsearchRem.add_Click($handler_DNSsearchRem_Click)
	#
	# DNSsearchAdd
	#
	$DNSsearchAdd.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$DNSsearchAdd.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",6.75,0,3,1)
	$DNSsearchAdd.ForeColor = [System.Drawing.Color]::FromArgb(255,0,0,0)
	$DNSsearchAdd.Location = New-Object System.Drawing.Point(266,136)
	$DNSsearchAdd.Name = "DNSsearchAdd"
	$DNSsearchAdd.Size = New-Object System.Drawing.Size(50,22)
	$DNSsearchAdd.TabIndex = 13
	$DNSsearchAdd.Text = "Add"
	$DNSsearchAdd.UseVisualStyleBackColor = $True
	$DNSsearchAdd.add_Click($handler_DNSsearchAdd_Click)
	#
	# tDNSsearchAdd
	#
	$tDNSsearchAdd.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$tDNSsearchAdd.Location = New-Object System.Drawing.Point(266,112)
	$tDNSsearchAdd.Name = "tDNSsearchAdd"
	$tDNSsearchAdd.Size = New-Object System.Drawing.Size(181,20)
	$tDNSsearchAdd.TabIndex = 12
	#
	# label17
	#
	$label17.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$label17.Location = New-Object System.Drawing.Point(266,16)
	$label17.Name = "label17"
	$label17.Size = New-Object System.Drawing.Size(162,17)
	$label17.TabIndex = 9
	$label17.Text = "DNS SearchOrder"
	#
	# button16
	#
	$button16.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$button16.Enabled = $False
	$button16.Image = [System.Drawing.Image]::FromFile("C:\Users\Jack\Pictures\arrow down.PNG")
	$button16.Location = New-Object System.Drawing.Point(198,76)
	$button16.Name = "button16"
	$button16.Size = New-Object System.Drawing.Size(29,29)
	$button16.TabIndex = 11
	$button16.TabStop = $False
	$button16.UseVisualStyleBackColor = $True
	$button16.add_Click($handler_button16_Click)
	#
	# button6
	#
	$button6.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$button6.Enabled = $False
	$button6.Image = [System.Drawing.Image]::FromFile("C:\Users\Jack\Pictures\arrow down.PNG")
	$button6.Location = New-Object System.Drawing.Point(453,76)
	$button6.Name = "button6"
	$button6.Size = New-Object System.Drawing.Size(29,29)
	$button6.TabIndex = 11
	$button6.TabStop = $False
	$button6.UseVisualStyleBackColor = $True
	$button6.add_Click($handler_button6_Click)
	#
	# button15
	#
	$button15.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$button15.Enabled = $False
	$button15.Image = [System.Drawing.Image]::FromFile("C:\Users\Jack\Pictures\arrow up.PNG")
	$button15.Location = New-Object System.Drawing.Point(198,36)
	$button15.Name = "button15"
	$button15.Size = New-Object System.Drawing.Size(29,29)
	$button15.TabIndex = 11
	$button15.TabStop = $False
	$button15.UseVisualStyleBackColor = $True
	$button15.add_Click($handler_button15_Click)
	#
	# button5
	#
	$button5.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$button5.Enabled = $False
	$button5.Image = [System.Drawing.Image]::FromFile("C:\Users\Jack\Pictures\arrow up.PNG")
	$button5.Location = New-Object System.Drawing.Point(453,36)
	$button5.Name = "button5"
	$button5.Size = New-Object System.Drawing.Size(29,29)
	$button5.TabIndex = 11
	$button5.TabStop = $False
	$button5.UseVisualStyleBackColor = $True
	$button5.add_Click($handler_button5_Click)
	#
	# ListDNSsearch
	#
	$ListDNSsearch.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$ListDNSsearch.Enabled = $False
	$ListDNSsearch.FormattingEnabled = $True
	$ListDNSsearch.Location = New-Object System.Drawing.Point(266,36)
	$ListDNSsearch.Name = "ListDNSsearch"
	$ListDNSsearch.Size = New-Object System.Drawing.Size(182,69)
	$ListDNSsearch.TabIndex = 10
	$ListDNSsearch.TabStop = $False
	$ListDNSsearch.add_MouseClick($handler_ListDNSsearch_MouseClick)
	$ListDNSsearch.add_SelectedIndexChanged($handler_ListDNSsearch_SelectedIndexChanged)
	#
	# label8
	#
	$label8.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$label8.Location = New-Object System.Drawing.Point(8,174)
	$label8.Name = "label8"
	$label8.Size = New-Object System.Drawing.Size(61,17)
	$label8.TabIndex = 8
	$label8.Text = "DNS Suffix"
	#
	# tDNSSuf
	#
	$tDNSSuf.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$tDNSSuf.Location = New-Object System.Drawing.Point(75,171)
	$tDNSSuf.Name = "tDNSSuf"
	$tDNSSuf.Size = New-Object System.Drawing.Size(162,20)
	$tDNSSuf.TabIndex = 9
	#
	# checkbox2
	#
	$checkbox2.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$checkbox2.Location = New-Object System.Drawing.Point(8,216)
	$checkbox2.Name = "checkbox2"
	$checkbox2.Size = New-Object System.Drawing.Size(281,24)
	$checkbox2.TabIndex = 11
	$checkbox2.Text = "Use this connection's DNS suffix in DNS registration"
	$checkbox2.UseVisualStyleBackColor = $True
	#
	# checkbox1
	#
	$checkbox1.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$checkbox1.Location = New-Object System.Drawing.Point(8,197)
	$checkbox1.Name = "checkbox1"
	$checkbox1.Size = New-Object System.Drawing.Size(239,24)
	$checkbox1.TabIndex = 10
	$checkbox1.Text = "Register this connection's addresses in DNS"
	$checkbox1.UseVisualStyleBackColor = $True
	#
	# label4
	#
	$label4.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$label4.Location = New-Object System.Drawing.Point(8,16)
	$label4.Name = "label4"
	$label4.Size = New-Object System.Drawing.Size(100,17)
	$label4.TabIndex = 1
	$label4.Text = "DNS servers"
	#
	# groupbox5
	#
	$groupbox5.Controls.Add($listbox1)
	$groupbox5.Controls.Add($button8)
	$groupbox5.Controls.Add($button9)
	$groupbox5.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$groupbox5.Location = New-Object System.Drawing.Point(13,272)
	$groupbox5.Name = "groupbox5"
	$groupbox5.Size = New-Object System.Drawing.Size(312,165)
	$groupbox5.TabIndex = 9
	$groupbox5.TabStop = $False
	$groupbox5.Text = "TCPIP Binding order"
	#
	# listbox1
	#
	$listbox1.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$listbox1.FormattingEnabled = $True
	$listbox1.Location = New-Object System.Drawing.Point(7,20)
	$listbox1.Name = "listbox1"
	$listbox1.Size = New-Object System.Drawing.Size(264,69)
	$listbox1.TabIndex = 0
	$listbox1.add_MouseClick($handler_listbox1_MouseClick)
	$listbox1.add_SelectedIndexChanged($handler_listbox1_SelectedIndexChanged)
	#
	# button8
	#
	$button8.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$button8.Enabled = $False
	$button8.Image = [System.Drawing.Image]::FromFile("C:\Users\Jack\Pictures\arrow up.PNG")
	$button8.Location = New-Object System.Drawing.Point(277,20)
	$button8.Name = "button8"
	$button8.Size = New-Object System.Drawing.Size(29,29)
	$button8.TabIndex = 11
	$button8.UseVisualStyleBackColor = $True
	$button8.add_Click($handler_button8_Click)
	#
	# button9
	#
	$button9.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$button9.Enabled = $False
	$button9.Image = [System.Drawing.Image]::FromFile("C:\Users\Jack\Pictures\arrow down.PNG")
	$button9.Location = New-Object System.Drawing.Point(277,60)
	$button9.Name = "button9"
	$button9.Size = New-Object System.Drawing.Size(29,29)
	$button9.TabIndex = 11
	$button9.UseVisualStyleBackColor = $True
	$button9.add_Click($handler_button9_Click)
	#
	# btChange
	#
	$btChange.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$btChange.Location = New-Object System.Drawing.Point(12,445)
	$btChange.Name = "btChange"
	$btChange.Size = New-Object System.Drawing.Size(174,23)
	$btChange.TabIndex = 22
	$btChange.Text = "Change &Settings"
	$btChange.UseVisualStyleBackColor = $True
	$btChange.add_Click($handler_btChange_Click)
	#
	# button2
	#
	$button2.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$button2.Location = New-Object System.Drawing.Point(470,445)
	$button2.Name = "button2"
	$button2.Size = New-Object System.Drawing.Size(174,23)
	$button2.TabIndex = 23
	$button2.Text = "&Refresh Window"
	$button2.UseVisualStyleBackColor = $True
	$button2.add_Click($handler_button2_Click)
	#
	# button1
	#
	$button1.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$button1.Location = New-Object System.Drawing.Point(650,445)
	$button1.Name = "button1"
	$button1.Size = New-Object System.Drawing.Size(174,23)
	$button1.TabIndex = 24
	$button1.Text = "&Close"
	$button1.UseVisualStyleBackColor = $True
	$button1.add_Click($handler_button1_Click)
	#
	# groupbox4
	#
	$groupbox4.Controls.Add($tiID)
	$groupbox4.Controls.Add($label20)
	$groupbox4.Controls.Add($lMan)
	$groupbox4.Controls.Add($tMan)
	$groupbox4.Controls.Add($CBSpeedDuplex)
	$groupbox4.Controls.Add($label13)
	$groupbox4.Controls.Add($label14)
	$groupbox4.Controls.Add($label12)
	$groupbox4.Controls.Add($label11)
	$groupbox4.Controls.Add($label10)
	$groupbox4.Controls.Add($tNIC)
	$groupbox4.Controls.Add($tDdat)
	$groupbox4.Controls.Add($label9)
	$groupbox4.Controls.Add($tDver)
	$groupbox4.Controls.Add($cb1)
	$groupbox4.Controls.Add($tMac)
	$groupbox4.Controls.Add($tLoc)
	$groupbox4.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$groupbox4.Location = New-Object System.Drawing.Point(13,13)
	$groupbox4.Name = "groupbox4"
	$groupbox4.Size = New-Object System.Drawing.Size(312,253)
	$groupbox4.TabIndex = 0
	$groupbox4.TabStop = $False
	$groupbox4.Text = "Adapter Info"
	#
	# tiID
	#
	$tiID.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$tiID.Enabled = $False
	$tiID.Location = New-Object System.Drawing.Point(103,95)
	$tiID.Name = "tiID"
	$tiID.Size = New-Object System.Drawing.Size(203,20)
	$tiID.TabIndex = 9
	$tiID.TabStop = $False
	#
	# label20
	#
	$label20.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$label20.Location = New-Object System.Drawing.Point(9,98)
	$label20.Name = "label20"
	$label20.Size = New-Object System.Drawing.Size(73,19)
	$label20.TabIndex = 8
	$label20.Text = "Interface ID"
	#
	# lMan
	#
	$lMan.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$lMan.Location = New-Object System.Drawing.Point(8,152)
	$lMan.Name = "lMan"
	$lMan.Size = New-Object System.Drawing.Size(76,15)
	$lMan.TabIndex = 7
	$lMan.Text = "Manufacturer"
	#
	# tMan
	#
	$tMan.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$tMan.Enabled = $False
	$tMan.Location = New-Object System.Drawing.Point(103,145)
	$tMan.Name = "tMan"
	$tMan.Size = New-Object System.Drawing.Size(203,20)
	$tMan.TabIndex = 6
	$tMan.TabStop = $False
	#
	# CBSpeedDuplex
	#
	$CBSpeedDuplex.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$CBSpeedDuplex.FormattingEnabled = $True
	$CBSpeedDuplex.Location = New-Object System.Drawing.Point(103,223)
	$CBSpeedDuplex.Name = "CBSpeedDuplex"
	$CBSpeedDuplex.Size = New-Object System.Drawing.Size(203,21)
	$CBSpeedDuplex.TabIndex = 5
	$CBSpeedDuplex.TabStop = $False
	#
	# label13
	#
	$label13.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$label13.Location = New-Object System.Drawing.Point(8,48)
	$label13.Name = "label13"
	$label13.Size = New-Object System.Drawing.Size(75,17)
	$label13.TabIndex = 2
	$label13.Text = "Logical Name"
	#
	# label14
	#
	$label14.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$label14.Location = New-Object System.Drawing.Point(8,226)
	$label14.Name = "label14"
	$label14.Size = New-Object System.Drawing.Size(90,18)
	$label14.TabIndex = 2
	$label14.Text = "Speed / Duplex"
	#
	# label12
	#
	$label12.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$label12.Location = New-Object System.Drawing.Point(9,195)
	$label12.Name = "label12"
	$label12.Size = New-Object System.Drawing.Size(75,17)
	$label12.TabIndex = 2
	$label12.Text = "Driver Date"
	#
	# label11
	#
	$label11.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$label11.Location = New-Object System.Drawing.Point(7,174)
	$label11.Name = "label11"
	$label11.Size = New-Object System.Drawing.Size(75,17)
	$label11.TabIndex = 2
	$label11.Text = "Driver version"
	#
	# label10
	#
	$label10.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$label10.Location = New-Object System.Drawing.Point(9,126)
	$label10.Name = "label10"
	$label10.Size = New-Object System.Drawing.Size(75,17)
	$label10.TabIndex = 2
	$label10.Text = "MacAddress"
	#
	# tNIC
	#
	$tNIC.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$tNIC.Enabled = $False
	$tNIC.Location = New-Object System.Drawing.Point(103,43)
	$tNIC.Name = "tNIC"
	$tNIC.Size = New-Object System.Drawing.Size(203,20)
	$tNIC.TabIndex = 4
	$tNIC.TabStop = $False
	#
	# tDdat
	#
	$tDdat.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$tDdat.Enabled = $False
	$tDdat.Location = New-Object System.Drawing.Point(103,197)
	$tDdat.Name = "tDdat"
	$tDdat.Size = New-Object System.Drawing.Size(203,20)
	$tDdat.TabIndex = 4
	$tDdat.TabStop = $False
	#
	# label9
	#
	$label9.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$label9.Location = New-Object System.Drawing.Point(7,72)
	$label9.Name = "label9"
	$label9.Size = New-Object System.Drawing.Size(75,23)
	$label9.TabIndex = 1
	$label9.Text = "Location info"
	#
	# tDver
	#
	$tDver.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$tDver.Enabled = $False
	$tDver.Location = New-Object System.Drawing.Point(103,171)
	$tDver.Name = "tDver"
	$tDver.Size = New-Object System.Drawing.Size(203,20)
	$tDver.TabIndex = 4
	$tDver.TabStop = $False
	#
	# cb1
	#
	$cb1.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$cb1.FormattingEnabled = $True
	$cb1.Location = New-Object System.Drawing.Point(7,18)
	$cb1.Name = "cb1"
	$cb1.Size = New-Object System.Drawing.Size(299,21)
	$cb1.Sorted = $True
	$cb1.TabIndex = 0
	$cb1.Text = "Select a board to inspect"
	$cb1.add_MouseClick($handler_cb1_MouseClick)
	$cb1.add_SelectedIndexChanged($handler_cb1_SelectedIndexChanged)
	#
	# tMac
	#
	$tMac.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$tMac.Enabled = $False
	$tMac.Location = New-Object System.Drawing.Point(103,120)
	$tMac.Name = "tMac"
	$tMac.Size = New-Object System.Drawing.Size(203,20)
	$tMac.TabIndex = 4
	$tMac.TabStop = $False
	#
	# tLoc
	#
	$tLoc.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$tLoc.Enabled = $False
	$tLoc.Location = New-Object System.Drawing.Point(103,69)
	$tLoc.Name = "tLoc"
	$tLoc.Size = New-Object System.Drawing.Size(203,20)
	$tLoc.TabIndex = 4
	$tLoc.TabStop = $False
	#
	# groupbox3
	#
	$groupbox3.Controls.Add($label19)
	$groupbox3.Controls.Add($label18)
	$groupbox3.Controls.Add($checkDHCP)
	$groupbox3.Controls.Add($label3)
	$groupbox3.Controls.Add($label2)
	$groupbox3.Controls.Add($label1)
	$groupbox3.Controls.Add($tsDNS)
	$groupbox3.Controls.Add($tDefGW)
	$groupbox3.Controls.Add($tpDNS)
	$groupbox3.Controls.Add($tSub)
	$groupbox3.Controls.Add($tIP)
	$groupbox3.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$groupbox3.Location = New-Object System.Drawing.Point(331,13)
	$groupbox3.Name = "groupbox3"
	$groupbox3.Size = New-Object System.Drawing.Size(246,173)
	$groupbox3.TabIndex = 1
	$groupbox3.TabStop = $False
	$groupbox3.Text = "IP Settings"
	#
	# label19
	#
	$label19.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$label19.Location = New-Object System.Drawing.Point(6,123)
	$label19.Name = "label19"
	$label19.Size = New-Object System.Drawing.Size(100,22)
	$label19.TabIndex = 10
	$label19.Text = "Secondary DNS"
	#
	# label18
	#
	$label18.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$label18.Location = New-Object System.Drawing.Point(6,100)
	$label18.Name = "label18"
	$label18.Size = New-Object System.Drawing.Size(100,23)
	$label18.TabIndex = 9
	$label18.Text = "Primary DNS"
	#
	# checkDHCP
	#
	$checkDHCP.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$checkDHCP.Location = New-Object System.Drawing.Point(7,143)
	$checkDHCP.Name = "checkDHCP"
	$checkDHCP.Size = New-Object System.Drawing.Size(104,24)
	$checkDHCP.TabIndex = 4
	$checkDHCP.Text = "DHCP Enabled"
	$checkDHCP.UseVisualStyleBackColor = $True
	$checkDHCP.add_MouseClick($handler_checkDHCP_MouseClick)
	#
	# label3
	#
	$label3.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$label3.Location = New-Object System.Drawing.Point(6,72)
	$label3.Name = "label3"
	$label3.Size = New-Object System.Drawing.Size(100,17)
	$label3.TabIndex = 5
	$label3.Text = "Default &Gateway"
	#
	# label2
	#
	$label2.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$label2.Location = New-Object System.Drawing.Point(6,46)
	$label2.Name = "label2"
	$label2.Size = New-Object System.Drawing.Size(100,17)
	$label2.TabIndex = 6
	$label2.Text = "Subnet Mask"
	#
	# label1
	#
	$label1.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$label1.Location = New-Object System.Drawing.Point(6,22)
	$label1.Name = "label1"
	$label1.Size = New-Object System.Drawing.Size(100,17)
	$label1.TabIndex = 7
	$label1.Text = "IP A&ddress"
	#
	# tsDNS
	#
	$tsDNS.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$tsDNS.Location = New-Object System.Drawing.Point(125,120)
	$tsDNS.Name = "tsDNS"
	$tsDNS.Size = New-Object System.Drawing.Size(109,20)
	$tsDNS.TabIndex = 3
	$tsDNS.TabStop = $False
	#
	# tDefGW
	#
	$tDefGW.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$tDefGW.Location = New-Object System.Drawing.Point(125,69)
	$tDefGW.Name = "tDefGW"
	$tDefGW.Size = New-Object System.Drawing.Size(109,20)
	$tDefGW.TabIndex = 3
	#
	# tpDNS
	#
	$tpDNS.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$tpDNS.Location = New-Object System.Drawing.Point(125,95)
	$tpDNS.Name = "tpDNS"
	$tpDNS.Size = New-Object System.Drawing.Size(109,20)
	$tpDNS.TabIndex = 2
	$tpDNS.TabStop = $False
	#
	# tSub
	#
	$tSub.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$tSub.Location = New-Object System.Drawing.Point(126,43)
	$tSub.Name = "tSub"
	$tSub.Size = New-Object System.Drawing.Size(109,20)
	$tSub.TabIndex = 2
	#
	# tIP
	#
	$tIP.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$tIP.Location = New-Object System.Drawing.Point(125,19)
	$tIP.Name = "tIP"
	$tIP.Size = New-Object System.Drawing.Size(110,20)
	$tIP.TabIndex = 1
	#
	# groupbox2
	#
	$groupbox2.Controls.Add($rbWins3)
	$groupbox2.Controls.Add($rbWins2)
	$groupbox2.Controls.Add($rbWins1)
	$groupbox2.Controls.Add($checkLMH)
	$groupbox2.Controls.Add($label6)
	$groupbox2.Controls.Add($label7)
	$groupbox2.Controls.Add($TWIP1)
	$groupbox2.Controls.Add($tWIP2)
	$groupbox2.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$groupbox2.Location = New-Object System.Drawing.Point(583,14)
	$groupbox2.Name = "groupbox2"
	$groupbox2.Size = New-Object System.Drawing.Size(241,173)
	$groupbox2.TabIndex = 3
	$groupbox2.TabStop = $False
	$groupbox2.Text = "Wins Settings"
	#
	# rbWins3
	#
	$rbWins3.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$rbWins3.Location = New-Object System.Drawing.Point(14,147)
	$rbWins3.Name = "rbWins3"
	$rbWins3.Size = New-Object System.Drawing.Size(104,24)
	$rbWins3.TabIndex = 21
	$rbWins3.TabStop = $True
	$rbWins3.Text = "D&isable"
	$rbWins3.UseVisualStyleBackColor = $True
	#
	# rbWins2
	#
	$rbWins2.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$rbWins2.Location = New-Object System.Drawing.Point(14,123)
	$rbWins2.Name = "rbWins2"
	$rbWins2.Size = New-Object System.Drawing.Size(104,18)
	$rbWins2.TabIndex = 20
	$rbWins2.TabStop = $True
	$rbWins2.Text = "Ena&ble"
	$rbWins2.UseVisualStyleBackColor = $True
	#
	# rbWins1
	#
	$rbWins1.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$rbWins1.Location = New-Object System.Drawing.Point(14,99)
	$rbWins1.Name = "rbWins1"
	$rbWins1.Size = New-Object System.Drawing.Size(186,18)
	$rbWins1.TabIndex = 19
	$rbWins1.TabStop = $True
	$rbWins1.Text = "De&fault"
	$rbWins1.UseVisualStyleBackColor = $True
	#
	# checkLMH
	#
	$checkLMH.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$checkLMH.Location = New-Object System.Drawing.Point(14,69)
	$checkLMH.Name = "checkLMH"
	$checkLMH.Size = New-Object System.Drawing.Size(186,24)
	$checkLMH.TabIndex = 18
	$checkLMH.Text = "Ena&ble LMHOSTS Lookup"
	$checkLMH.UseVisualStyleBackColor = $True
	#
	# label6
	#
	$label6.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$label6.Location = New-Object System.Drawing.Point(14,18)
	$label6.Name = "label6"
	$label6.Size = New-Object System.Drawing.Size(92,20)
	$label6.TabIndex = 1
	$label6.Text = "Wins IP Adress&1"
	#
	# label7
	#
	$label7.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$label7.Location = New-Object System.Drawing.Point(14,48)
	$label7.Name = "label7"
	$label7.Size = New-Object System.Drawing.Size(92,19)
	$label7.TabIndex = 1
	$label7.Text = "W&ins IP Address&2"
	#
	# TWIP1
	#
	$TWIP1.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$TWIP1.Location = New-Object System.Drawing.Point(112,18)
	$TWIP1.Name = "TWIP1"
	$TWIP1.Size = New-Object System.Drawing.Size(118,20)
	$TWIP1.TabIndex = 16
	#
	# tWIP2
	#
	$tWIP2.DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation 
	$tWIP2.Location = New-Object System.Drawing.Point(112,47)
	$tWIP2.Name = "tWIP2"
	$tWIP2.Size = New-Object System.Drawing.Size(118,20)
	$tWIP2.TabIndex = 17
	#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)
	#Show the Form
	return $form1.ShowDialog()

} #End Function

#Call OnApplicationLoad to initialize
if(OnApplicationLoad -eq $true)
{
	#Create the form
	GenerateForm | Out-Null
	#Perform cleanup
	OnApplicationExit
}

Open in new window


Have fun,

JP64  
2
Comment
Author:JP64
  • 2
4 Comments
 
LVL 9

Expert Comment

by:Suhas .
Hi JP64,
I tried to run this executable on my machine,  the application is crashing.
Could you please let me know, if i need to do any pre-requisites.

Regards,
Suhas
0
 
LVL 4

Author Comment

by:JP64
Hi,

sorry to hear that.
First of all you need to run it in elevated mode. I tried it on several machines never had that problem but it throws errors when you don't run in in elevated mode.
So when is it crashing? What OS are you using? Do you have teamed NIC's (as I was unable to test with teaming configurations) What version of Powershell are you using (the app needs version 2).

PLease give me more info.

Kind regards,

JP
0
 
LVL 9

Expert Comment

by:Suhas .
Able to launch the UI after installing Powershell.

Thanks,
Suhas
0
 
LVL 4

Expert Comment

by:R3C0N
JP64,

  This a great example of Powershell at it's finest. I installed it and it works about halfway. I probaly need to go through and change some of the obvious paths for pics and such. But this is a really complete project. Good job and thanks for sharing it.

-R3c0n
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Join & Write a Comment

Exchange organizations may use the Journaling Agent of the Transport Service to archive messages going through Exchange. However, if the Transport Service is integrated with some email content management application (such as an antispam), the admini…
Screencast - Getting to Know the Pipeline

Keep in touch with Experts Exchange

Tech news and trends delivered to your inbox every month