ZetCode

PowerShell Set-DnsClient

最后修改:2025 年 2 月 15 日

本文介绍了PowerShell中的Set-DnsClient cmdlet。它用于配置Windows系统上的DNS客户端设置。该cmdlet管理特定于接口的DNS配置。

DNS客户端基础知识

DNS客户端服务将域名解析为IP地址。它缓存响应并遵循配置的DNS服务器设置。每个网络接口都可以拥有唯一的DNS配置。Set-DnsClient cmdlet用于修改这些设置。

Set-DnsClient基本用法

最简单的用法是修改接口的DNS服务器。使用-InterfaceIndex指定接口索引。使用-ServerAddresses提供DNS服务器。这将更改DNS查询发送到的位置。

dns1.ps1
Set-DnsClient -InterfaceIndex 12 -ServerAddresses ("8.8.8.8","8.8.4.4")

此配置将接口12设置为使用Google的公共DNS服务器。-ServerAddresses接受IP字符串数组。更改会立即生效。

禁用接口上的IPv6

您可以为特定接口禁用IPv6 DNS解析。使用-ConnectionSpecificSuffix参数。与-RegisterThisConnectionsAddress结合使用以控制注册。

dns2.ps1
Set-DnsClient -InterfaceIndex 5 -ConnectionSpecificSuffix "" `
    -RegisterThisConnectionsAddress $false

这会禁用DNS注册并清除接口5的连接后缀。反引号 (`) 将命令继续到下一行。这可以防止IPv6 DNS注册。

启用DNS后缀搜索列表

DNS后缀搜索列表会将域附加到非限定名称。使用-UseSuffixWhenRegistering启用此行为。这有助于在没有完整限定的情况下解析本地网络名称。

dns3.ps1
Set-DnsClient -InterfaceIndex 3 -UseSuffixWhenRegistering $true

这会为接口3启用DNS后缀搜索。系统将附加配置的后缀来解析名称。这简化了本地网络名称解析。

配置多个DNS设置

可以在一个命令中配置多个DNS设置。此示例设置服务器、启用LLMNR并配置后缀注册。-Validate参数在应用设置之前检查它们。

dns4.ps1
Set-DnsClient -InterfaceIndex 7 -ServerAddresses "192.168.1.1" `
    -UseSuffixWhenRegistering $true -ConnectionSpecificSuffix "local.lan" `
    -Validate $true

此配置为接口7设置了多个DNS设置。本地DNS服务器以及后缀选项都已设置。-Validate可确保配置正确。

禁用多播名称解析

多播DNS (mDNS) 无需传统DNS服务器即可解析名称。使用-EnableMulticast控制此功能。在某些环境中禁用它可以提高安全性。

dns5.ps1
Set-DnsClient -InterfaceAlias "Ethernet" -EnableMulticast $false

这会在“以太网”接口上禁用多播DNS。-InterfaceAlias用于按名称而不是索引标识接口。更改会应用于所有匹配的接口。

来源

PowerShell 文档

本文介绍了PowerShell中的Set-DnsClient cmdlet。我们探讨了基本配置和高级场景。

作者

我的名字是Jan Bodnar,我是一位充满热情的程序员,拥有丰富的编程经验。我从2007年开始撰写编程文章。迄今为止,我已撰写了1400多篇文章和8本电子书。我在教授编程方面拥有十多年的经验。

列出 所有 PowerShell 教程