我正在尝试使用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服务器吗?任何帮助将不胜感激。感谢。
凯尔
答案 0 :(得分:0)
有三件事对我很突出:
Set-DhcpServerv4OptionValue
有一个用于设置DNS服务器的特殊参数,因此您无需知道选项ID 您希望DNS的选项6 (不要使用选项5)。但同样,请参见2.
忽略-OptionID
参数并改为使用-DnsServer
。
此参数是数组类型,因此请将值作为数组提供。
$dnsArray = $_.DNS1,$_.DNS2,$_.DNS3
Set-DhcpServerv4OptionValue -ComputerName $_.DHCPServer -ScopeId $_.ScopeID -DnsServer $dnsArray
由于您是批量执行此操作,因此您可能希望使用-Force
,skips DNS server validation。
答案 1 :(得分:0)
我刚遇到同样的事情......但在我的情况下,这些范围不会有太大变化,所以我不需要创建一个完整的脚本来运行多次,只是想运行一次来创建一堆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}
希望这可以帮助那些人。
答案 2 :(得分:0)
适用于:
$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",...