You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Set-DhcpServerv4OptionValue无法追加DNS服务器地址问题求助

解决Set-DhcpServerv4OptionValue无法追加DNS服务器地址的问题

现有DHCP作用域的006 DNS服务器选项已配置10.1.2.2和10.1.2.3,使用以下原始脚本添加新DNS地址时,会直接覆盖原有地址,无法实现追加效果(预期结果是保留原地址并新增10.2.2.3、10.2.2.4):

$dnsArray = "10.2.2.3","10.2.2.4"
Set-DhcpServerv4OptionValue -ComputerName "dhcp01" -ScopeId "1.1.1.0" -DnsServer $dnsArray

解决方案:先获取现有DNS地址再合并更新

通过先读取当前作用域的DNS服务器配置,将原有地址与新地址合并后再写入,即可实现追加效果。以下是修正后的脚本:

$computerName = "DHCP01"
$newDnsServers = "10.2.2.3", "10.2.2.4" # 替换为实际需要追加的DNS地址
$scopeIds = "1.1.1.0" # 替换为目标DHCP作用域ID

foreach ($scopeId in $scopeIds) {
    # 获取当前作用域的006 DNS选项配置
    $currentOption = Get-DhcpServerv4OptionValue -ComputerName $computerName -ScopeId $scopeId -OptionId 6

    # 初始化现有DNS地址数组
    $existingDnsServers = @()
    
    # 若已有配置,提取现有DNS地址
    if ($currentOption.Value) {
        $existingDnsServers = $currentOption.Value
    }
    
    # 合并新旧DNS地址并自动去重
    $mergedDnsServers = $existingDnsServers + $newDnsServers | Select-Object -Unique
    
    # 将合并后的完整地址列表写入DHCP配置
    Set-DhcpServerv4OptionValue -ComputerName $computerName -ScopeId $scopeId -DnsServer $mergedDnsServers -Force
}

核心逻辑说明:

  • 读取现有配置:使用Get-DhcpServerv4OptionValue指定OptionId 6(对应DNS服务器选项),获取当前作用域已配置的所有DNS地址。
  • 合并去重:将原有地址数组与新地址数组合并,通过Select-Object -Unique避免重复添加相同的DNS地址。
  • 覆盖写入完整列表:用Set-DhcpServerv4OptionValue写入合并后的完整地址列表,-Force参数确保配置生效,此时覆盖的是包含新旧地址的完整集合,而非仅新地址。

内容的提问来源于stack exchange,提问作者Arbelac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 17:06:14