0
我收到了以下脚本来更新Windows服务器上的DNS服务器。该脚本适用于更新一台服务器。我想让这个脚本处理一个带有服务器列表的文本文件,以一次性批量更新多个服务器。我想是这样的:Powershell脚本更新多台服务器上的DNS
script.ps1 -ComputerName(获取内容C:\ serverlist.txt)-OldDns 10.0.0.1 -NewDns 10.0.0.2
如果有在多个服务器'这失败serverlist.txt”。我的问题是如何将一个foreach,它允许每个服务器在“serverlist.txt”
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True,HelpMessage="Name of the computer to update")]
[String]$ComputerName,
[Parameter(Mandatory=$True,HelpMessage="DNS server to replace")]
[String]$OldDns,
[Parameter(Mandatory=$True,HelpMessage="New DNS server setting")]
[String]$NewDns,
[switch]$TestMode
)
$niclist = Get-WmiObject -Authentication PacketIntegrity -ComputerName $ComputerName -class Win32_NetworkAdapterConfiguration | where { $_.DnsServerSearchOrder -contains $OldDns }
if ($niclist) {
foreach ($nic in $niclist) {
$dns = $nic.DnsServerSearchOrder
$dns
$index = [array]::IndexOf($dns,$OldDns)
$dns[$index] = $NewDns
$dns
$nic
if (!$TestMode) {
$nic.SetDnsServerSearchOrder($dns)
}
}
}