I am currently working on a tool that is supposed to take over the IPv4 configuration, among other things. So far I have automatically determined the current adapter, with several active adapters (e.g. VM adapter at the host) the wrong one is selected.
Is there an elegant and lean solution for this?
`
This shows “‘MSFT_NetAdapter (CreationClassName = “MSFT_NetA….” at the listbox but works fine
$getAdapter = Get-NetAdapter | ? {$_.Status -eq ‘Up’}
$adapterName = $getAdapter.name
foreach ($adapter in $getAdapter) {
$listBox.Items.Add($adapter)
}
This Shows me the Adapter Name in Listbox but the Commands in “try” with $seletedAdapter dont
Work
foreach ($adapter in $adapterName) {
$listBox.Items.Add($adapter)
}
function set-ip {
#... some var
#... validate ip format etc.
$selectedAdapter = $listBox.SelectedItem
$IPParam = @{
AddressFamily = $ipType
IPAddress = $ipv4
PrefixLength = $prefix
DefaultGateway = $gateway
}
$DNSParam = @{
ServerAddresses = @($DNS1, $DNS2)
}
Write-Host "ok select here now"
if ($selectedAdapter) {
try {
Write-Host "set ip for $selectedAdapter"
If (($selectedAdapter | Get-NetIPConfiguration).IPv4Address.IPAddress) {
$selectedAdapter | Remove-NetIPAddress -AddressFamily $ipType -Confirm:$false
}
If (($selectedAdapter | Get-NetIPConfiguration).Ipv4DefaultGateway) {
$selectedAdapter | Remove-NetRoute -AddressFamily $ipType -Confirm:$false
}
$selected`your text`Adapter | New-NetIPAddress @IPParam -Confirm:$false
$selectedAdapter | Set-DnsClientServerAddress @DNSParam -Confirm:$false
Write-Host "some text"
} catch {
Write-Warning "some warning text"
Write-Warning "$_"
}
}
}`
Belfort33 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.