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

新手求助:借助CSV批量添加DHCP作用域的PowerShell脚本修正

修正后的DHCP批量配置PowerShell脚本

第一步:调整CSV文件格式

确保DNS服务器字段支持多值,多个IP用英文逗号分隔,示例CSV结构如下:

ScopeName,StartRange,EndRange,SubnetMask,Router,DnsServers,ScopeID,FailoverPartner
校区1,192.168.1.10,192.168.1.200,255.255.255.0,192.168.1.1,8.8.8.8,1.1.1.1,DHCP-Failover-01
校区2,10.0.0.10,10.0.0.200,255.255.255.0,10.0.0.1,10.0.0.2,10.0.0.3,DHCP-Failover-01

第二步:修正PowerShell脚本

以下是修复了循环变量、文件路径、DNS多值问题的完整脚本:

# 读取CSV文件,路径用双引号包裹,支持带空格的路径
$Scopes = Import-Csv -Path "C:\DHCP_Scopes.csv"

# 遍历每个校区的作用域配置,明确定义循环变量$Scope
foreach ($Scope in $Scopes) {
    # 1. 添加DHCPv4作用域
    Add-DhcpServerv4Scope -Name $Scope.ScopeName `
                          -StartRange $Scope.StartRange `
                          -EndRange $Scope.EndRange `
                          -SubnetMask $Scope.SubnetMask `
                          -State Active

    # 2. 设置DHCP选项值(路由、DNS),将DNS字符串拆分为数组
    $DnsArray = $Scope.DnsServers -split "," | ForEach-Object { $_.Trim() }
    Set-DhcpServerv4OptionValue -ScopeId $Scope.ScopeID `
                                 -Router $Scope.Router `
                                 -DnsServer $DnsArray

    # 3. 添加故障转移作用域
    Add-DhcpServerv4FailoverScope -Name $Scope.FailoverPartner `
                                   -ScopeId $Scope.ScopeID
}

关键修复说明

  • 循环变量修正:将原脚本中误用的$_替换为明确定义的$Scope,确保正确调用CSV中的字段
  • 文件路径处理:CSV路径用双引号包裹,避免带空格路径报错;优先使用绝对路径,减少相对路径的不确定性
  • DNS多值处理:通过-split ","将CSV中逗号分隔的DNS IP字符串拆分为数组,满足Set-DhcpServerv4OptionValue的多值要求

注意:运行脚本前需以DHCP服务器管理员权限启动PowerShell,确保目标DHCP服务正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 05:40:53