删除和添加 DNS 后缀条目

删除和添加 DNS 后缀条目

通过命令行参数或 PowerShell 我想要操作以下列表:

在此处输入图片描述

如果您想知道原因,那是因为一个非常特定的 VPN 在您连接时将其设置为客户端的域,但从不将其删除。它破坏了我所有的本地访问,并且它总是替换列表中的所有条目,而不仅仅是添加到列表中。

我尝试过我发现的注册表设置,例如添加到搜索列表中HKLM\System\currentcontrolset\services\tcpip\parameters

我尝试过刷新我的 DNS,重置网络适配器。

我尝试寻找其他注册表项,编辑适配器特定的 DNS 后缀。

这些似乎都没有对此列表产生实际影响,但是,每次我使用 VPN 客户端时,它都会破坏我的网络连接。

SU 上现有的问题并未解决此问题。所有问题都解决了前面提到的问题,但没有解决此实际框内的值。到目前为止,我尝试了所有变体,但没有任何影响。

答案1

重要的:从管理员提升的环境/shell/命令提示符运行这些方法。

  1. 只需运行Set-DnsClientGlobalSetting -SuffixSearchList @("")彻底删除所有 DNS 后缀。

  2. 利用一些 PowerShell 逻辑,您可以......

    • 设置要从配置列表中排除的 DNS 名称
    • 在循环中运行条件逻辑并使用-notin比较运算符使用来设置和附加[array]变量+=赋值运算符构建一个省略排除的 DNS 名称的列表
    • 最后使用新的列表变量作为参数值传入Set-DnsClientGlobalSetting -SuffixSearchList @($nList);命令

PowerShell 脚本

$ExcldDomain = "myDomain.com";                      ## Set excluded domain(s)
$s = (Get-DnsClientGlobalSetting).SuffixSearchList; ## Get current suffixes

$nList = @();
$s | % {If($_ -notin $ExcldDomain){[array]$nList += [array]$_}};

Stop-Service -Name "SONICWALL_NetExtender" -Force;
Set-DnsClientGlobalSetting -SuffixSearchList @($nList);

支持资源

答案2

至少在 Windows 10 21H2 上,以下操作无法删除所有 DNS 后缀

Set-DnsClientGlobalSetting -SuffixSearchList @("")

但这确实

Set-DnsClientGlobalSetting -SuffixSearchList @('.')

这个也是

Set-DnsClientGlobalSetting -SuffixSearchList '.'

我尝试了空字符串和句点/点的变体,以及单引号和双引号,发现能够始终正常工作的是上面代码片段中的那些。

你可以使用以下命令自行验证效果

Get-DnsClientGlobalSetting

相关内容