Command/PlcSim/ResetPlcSimAdapterData.ps1



[string] $global:PlcSimVirtualAdapterDescription = "Siemens PLCSIM Virtual Ethernet Adapter"

function SetPlcSimAdapterData([string]$ipAddress, [int]$prefixLength)
{
    $adapter = GetPlcSimAdapter
    if ($null -ne $adapter) 
    {
        $interfaceIndex = $adapter.InterfaceIndex
        $ipAddressObjects = Get-NetIPAddress -AddressFamily IPv4 -InterfaceIndex $interfaceIndex
        Remove-NetIPAddress -InputObject $ipAddressObjects -Confirm:$false
        $null = New-NetIPAddress -InterfaceIndex $interfaceIndex -IpAddress $ipAddress -PrefixLength $prefixLength
    }
}

function GetPlcSimAdapter()
{
    $adapters = Get-NetAdapter
    [array]$adapters = $adapters | Where-Object {
        $_.InterfaceDescription -eq $PlcSimVirtualAdapterDescription }
    $count = $adapters.Count
    if ($count -eq 1) 
    {       
        $adapter = $adapters[0]
        return $adapter
    }
    return $null
}

Import-Module CmxModule -Force

# Reset the IP address
if (-not (IsElevated))
{
    $thisFile = $myinvocation.MyCommand.Definition
    Start-Process powershell.exe -Verb RunAs -ArgumentList "`"$thisFile`" $args"
    exit
}
Write-Host "Reset PlcSim Adapter Data . . ."
Write-Host "InterfaceDescription: $PlcSimVirtualAdapterDescription"
SetPlcSimAdapterData "192.168.0.254" "24"
Write-Host "Done"
Read-Host "Exit script ? "