如何使用if语句确定脚本是否应更改DNS设置?

时间:2019-05-16 16:30:51

标签: powershell

我的PC将在DNS服务器之间进行很多更改,我不想每次都手动进行操作。因此,我想创建一个PowerShell脚本,如果我当前使用的是nr1,则将DNS地址从地址nr1更改为nr2,反之亦然。

如果我使用DNS1,我不知道如何编写布尔表达式以使脚本更改为DNS2

if( ) {
   Set-DnsClientServerAddress -InterfaceIndex 6 -ServerAddresses $dns1
} else {
   Set-DnsClientServerAddress -InterfaceIndex 6 -ServerAddresses $dns2
}

2 个答案:

答案 0 :(得分:0)

在您的if()语句中,您需要添加一个条件以进行检查...因此,请执行以下操作:

if((Get-DnsClientServerAddress -InterfaceIndex 10 -AddressFamily IPv4) -match $dns1) {
    # Do some thing
}
else {
    # Do some other thing
}

只需确保将InterfaceIndex更改为与您的设置相关的内容。

答案 1 :(得分:0)

要在定义的$dns1$dns2 ServerAddress之间切换

$dns1 = '192.168.0.x'  # or whatever
$dns2 = '192.168.0.y'
if((Get-DnsClientServerAddress -InterfaceIndex 6).ServerAddresses -contains $dns2) {
    Set-DnsClientServerAddress -InterfaceIndex 6 -ServerAddresses $dns1
} else {
    Set-DnsClientServerAddress -InterfaceIndex 6 -ServerAddresses $dns2
}