【问题标题】:PowerShell- Add Multiple DNS Servers to New DHCP ScopePowerShell - 将多个 DNS 服务器添加到新的 DHCP 范围
【发布时间】:2014-10-09 22:56:20
【问题描述】:

我正在尝试使用 PowerShell 创建一些新的 DHCP 作用域,但是在将 3 个 DNS 服务器添加到选项 3 时遇到了问题。我有一个包含所有信息的 CSV 文件,我尝试过的 DNS 字段是:

DNS - 1.1.1.1、2.2.2.2、3.3.3.3

DNS1 - 1.1.1.1

DNS2 - 2.2.2.2

DNS3 - 3.3.3.3

Import-Csv "C:\temp\DHCP.csv" | % {
Add-DhcpServerv4Scope -StartRange $_.StartRange -EndRange $_.EndRange -SubnetMask $_.SubnetMask -Name $_.ScopeName -cn $_.DHCPServer -Description $_.Description -LeaseDuration $_.LeaseDuration -State Active -WhatIf
If ($_.Router -notlike "") {
Set-DhcpServerv4OptionValue -cn $_.DHCPServer -ScopeId $_.ScopeID -OptionId 3 $_.Router -WhatIf }
If ($_.TimeServer -notlike "") {
Set-DhcpServerv4OptionValue -cn $_.DHCPServer -ScopeId $_.ScopeID -OptionId 4 $_.TimeServer -WhatIf }
If ($_.DNS -notlike "") {
$DNSString=$_.DNS1 + ", " + $_.DNS2  + ", " + $_.DNS3
#Set-DhcpServerv4OptionValue -cn $_.DHCPServer -ScopeId $_.ScopeID -DnsServer $DNS -WhatIf }
Set-DhcpServerv4OptionValue -cn $_.DHCPServer -ScopeId $_.ScopeID -OptionID 3 $DNSString -WhatIf }

知道如何使用 PowerShell 在 DHCP 范围内设置多个 DNS 服务器吗?任何帮助将不胜感激。谢谢。

凯尔

【问题讨论】:

    标签: powershell dns dhcp


    【解决方案1】:

    三件事对我来说很突出:

    1. 选项 3 用于设置路由器,而不是 DNS 服务器。
    2. Set-DhcpServerv4OptionValue有一个特殊的参数用于设置DNS服务器,所以不需要知道Option ID
    3. 参数接受一个数组,而不是一个带逗号的字符串。

    问题 1

    您需要 选项 6 用于 DNS(不要使用选项 5)。但同样,请参见 2。

    问题 2

    忽略-OptionID 参数并改用-DnsServer。

    问题 3

    此参数是一个数组类型,所以以数组的形式提供值。

    可能的工作代码:

    $dnsArray = $_.DNS1,$_.DNS2,$_.DNS3
    Set-DhcpServerv4OptionValue -ComputerName $_.DHCPServer -ScopeId $_.ScopeID -DnsServer $dnsArray
    

    编辑

    由于您是批量执行此操作,您可能希望使用-Force,即skips DNS server validation。

    【讨论】:

    • 不知道为什么我放了选项 3。我的实际代码将它列为选项 6。感谢您指出这一点。至于你可能的工作代码,它是完美的。这正是我所需要的。非常感谢!
    【解决方案2】:

    我刚刚遇到了同样的事情......但在我的情况下,这些范围不会有太大变化,所以我不需要创建一个完整的脚本来运行多次,只想运行一次来​​创建一堆 dhcp 作用域(大约 150 个)同时带有选项。一开始只是设置环境。

    在朋友的帮助下(因为我正用头撞墙),这就是我们(真的是他)想出的。希望它可以帮助那里的人解决同样的问题:

    对于这个例子,我创建了一个 CSV 文件“dhcpoptions.txt”,我的 dhcp 服务器名称是 dhcp01.my.lab

    CSV 文件格式:

    ScopeId;DnsServer;DnsDomain;Router
    1.20.10.0;1.19.10.50,1.19.10.51;my.lab;1.20.10.1
    1.20.11.0;1.19.10.50,1.19.10.51;my.lab;1.20.11.1
    

    由于我基本上只是运行一次,而不是使用脚本,我只使用了一个 PS 命令:

    import-csv .\dhcpoptions.txt -Delimiter ";" | % {Set-DhcpServerv4OptionValue -cn dhcp01 -ScopeId $_.ScopeId -DnsServer $_.DnsServer.split(',') -DnsDomain $_.DnsDomain -Router $_.Router}
    

    希望这对那里的人有所帮助。

    【讨论】:

      【解决方案3】:

      适用于:

      $dns="192.168.1.1","8.8.8.8",...
      
      Set-DhcpServerv4OptionValue -ScopeId 192.168.1.1 -OptionId 6 -Value $dns
      

      或直接:

      Set-DhcpServerv4OptionValue -ScopeId 192.168.1.1 -OptionId 6 -Value 
      "192.168.1.1","8.8.8.8",...
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多