PowerShell-将多个DNS服务器添加到新的DHCP作用域
我正在尝试使用PowerShell创建一些新的DHCP作用域,但在将3个DNS服务器添加到选项3时遇到了问题。我有一个包含所有信息的CSV文件,我尝试的DNS字段包括: DNS-1.1.1、2.2.2、3.3.3.3 DNS1-1.1.1.1 DNS2-2.2.2.2 DNS3-3.3.3PowerShell-将多个DNS服务器添加到新的DHCP作用域,powershell,dns,dhcp,Powershell,Dns,Dhcp,我正在尝试使用PowerShell创建一些新的DHCP作用域,但在将3个DNS服务器添加到选项3时遇到了问题。我有一个包含所有信息的CSV文件,我尝试的DNS字段包括: DNS-1.1.1、2.2.2、3.3.3.3 DNS1-1.1.1.1 DNS2-2.2.2.2 DNS3-3.3.3 Import-Csv "C:\temp\DHCP.csv" | % { Add-DhcpServerv4Scope -StartRange $_.StartRange -EndRange $_.EndRang
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服务器吗?任何帮助都将不胜感激。谢谢
凯尔有三件事对我来说很突出:
Set-DhcpServerv4OptionValue
有一个用于设置DNS服务器的特殊参数,因此您不需要知道选项ID-OptionID
参数,改用-DnsServer
问题3
此参数是数组类型,因此将值作为数组提供
可能的工作代码:
$dnsArray=$\.DNS1、$\.DNS2、$\.DNS3
Set-DhcpServerv4OptionValue-ComputerName$\.DHCPServer-ScopeId$\.ScopeId-DnsServer$dnsArray
编辑
由于您正在批量执行此操作,您可能需要使用
-Force
,这是。我刚刚遇到了同样的问题。。。但是在我的例子中,这些作用域不会有太大的变化,所以我不需要创建一个完整的脚本来运行多次,只需要运行一次就可以创建一组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}
希望这对其他人有所帮助。适用于:
$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",...
我不知道为什么我把选项3。我的实际代码将其列为选项6。谢谢你指出这一点。至于你可能的工作代码,它是完美的。这正是我所需要的。非常感谢你!