通过命令行参数或 PowerShell 我想要操作以下列表:
如果您想知道原因,那是因为一个非常特定的 VPN 在您连接时将其设置为客户端的域,但从不将其删除。它破坏了我所有的本地访问,并且它总是替换列表中的所有条目,而不仅仅是添加到列表中。
我尝试过我发现的注册表设置,例如添加到搜索列表中HKLM\System\currentcontrolset\services\tcpip\parameters
我尝试过刷新我的 DNS,重置网络适配器。
我尝试寻找其他注册表项,编辑适配器特定的 DNS 后缀。
这些似乎都没有对此列表产生实际影响,但是,每次我使用 VPN 客户端时,它都会破坏我的网络连接。
SU 上现有的问题并未解决此问题。所有问题都解决了前面提到的问题,但没有解决此实际框内的值。到目前为止,我尝试了所有变体,但没有任何影响。
答案1
重要的:从管理员提升的环境/shell/命令提示符运行这些方法。
只需运行
Set-DnsClientGlobalSetting -SuffixSearchList @("")
彻底删除所有 DNS 后缀。利用一些 PowerShell 逻辑,您可以......
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);
支持资源
- 获取 DnsClientGlobalSetting
-
-SuffixSearchList
指定 DNS 客户端可以按指定顺序使用的全局后缀列表,用于解析计算机名称的 IP 地址。这些后缀按指定顺序附加以解析指定的计算机名称。如果已通过组策略部署后缀搜索列表设置,则无法设置此参数值。
-
+=
将变量的值增加指定的值,或将指定的值附加到现有值。
答案2
至少在 Windows 10 21H2 上,以下操作无法删除所有 DNS 后缀
Set-DnsClientGlobalSetting -SuffixSearchList @("")
但这确实
Set-DnsClientGlobalSetting -SuffixSearchList @('.')
这个也是
Set-DnsClientGlobalSetting -SuffixSearchList '.'
我尝试了空字符串和句点/点的变体,以及单引号和双引号,发现能够始终正常工作的是上面代码片段中的那些。
你可以使用以下命令自行验证效果
Get-DnsClientGlobalSetting