Functions/Set-IPAddress.ps1
function Set-IPAddress { [CmdletBinding()] param ( [Parameter(Mandatory, ParameterSetName = 'IP')] [string] $IP, [Parameter(Mandatory, ParameterSetName = 'IP')] [string] $Prefix, [Parameter(Mandatory, ParameterSetName = 'IP')] [string] $Gateway, [Parameter(Mandatory, ParameterSetName = 'IP')] [string[]] $DNSServers, [Parameter(ParameterSetName = 'Dynamic')] [switch] $Dynamic, [Parameter()] [int] $IfIndex ) if (-not($IfIndex)) { if ((Get-NetAdapter).count -gt 1) { Get-NetAdapter Write-Host "Choose interface index" -ForegroundColor Yellow $IfIndex = Read-Host -Prompt "Choose interface index" if (Get-NetAdapter -ifIndex $IfIndex -ea 0) { } else { Write-Host "Interface with index $IfIndex does not exist" -ForegroundColor Red Remove-Variable IfIndex } } else { $IfIndex = (Get-NetAdapter).InterfaceIndex } } if ($IfIndex) { if ($Dynamic) { Remove-NetIPAddress -InterfaceIndex $IfIndex -Confirm:$false Remove-NetRoute -ifIndex $IfIndex -Confirm:$false Set-DnsClientServerAddress -ResetServerAddresses -InterfaceIndex $IfIndex Set-NetIPInterface -ifIndex $IfIndex -Dhcp Enabled ipconfig.exe /renew } else { Remove-NetIPAddress -InterfaceIndex $IfIndex -Confirm:$false New-NetIPAddress -IPAddress $IP -DefaultGateway $Gateway -PrefixLength $Prefix -InterfaceIndex $IfIndex Set-DnsClientServerAddress -ServerAddresses $DNSServers -InterfaceIndex $IfIndex } } } |