已创建一个脚本以从我正在使用的无线网络适配器中获取当前IP地址,并将其与主机文件中的主机名匹配。在更改逻辑问题时需要帮助,因为我有两个用于Internet连接的路由器,从一个路由器dhcp到我的系统的IP地址将与另一个路由器不同。当我连接路由器A时重复运行脚本时,没有重复的条目,但是如果我更改为路由器B,则路由器A和路由器B都解析了ip,主机仍保留在主机文件中。我删除注释后,是否可以更改逻辑以检查主机文件最后一行中的127.0.0.1 localhost,并删除上面条目(最后一行)之后的任何行,并添加获取的IP。先感谢您。 –
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
$ip = get-WmiObject Win32_NetworkAdapterConfiguration|Where {$_.Ipaddress.length -gt 1}
$ip.ipaddress[0]
$hst = $env:COMPUTERNAME
$hostfile = Get-Content "$($env:windir)\system32\Drivers\etc\hosts"
if ($hostfile -notcontains "127.0.0.2 hostname1" -and
(-not($hostfile -like "$($ip.ipaddress[0]) $hst"))) {
Add-Content -Encoding UTF8 "$($env:windir)\system32\Drivers\etc\hosts" "$($ip.ipaddress[0]) $hst"
}