使用PowerShell批量查询和设置DNS

2013年7月23日 | 分类: PowerShell | 标签: , ,

以下介绍使用PowerShell远程批量查询服务器DNS地址及批量设置DNS地址:

1. 批量查询服务器DNS设置:

先将要查询的服务器列表保存在一个文本文件servers.txt中,然后保存以下脚本到getdns.ps1文件中,最后在PowerShell中执行getdns.ps1脚本,结果会输出到serverdns.txt中。此脚本中搜索的是网卡名称为LAN的网卡然后进行设置,如果网卡为别的名称,请作相应的更改,所以合理规划并定义网卡名称也是很有必要的。

$computers = get-content .\servers.txt
Foreach($computer in $computers)
{
$lannic = get-wmiobject win32_networkadapter -computername $computer |where{$_.netconnectionid -eq “LAN”}
$index = $lannic.index
$lan = Get-WMIObject Win32_NetworkAdapterConfiguration -computername $computer |where{$_.index -eq $index}
$DNSServers = $lan.DNSServerSearchOrder
$computer + ” “+$DNSServers | Out-File -Encoding unicode -Append -FilePath .\serverdns.txt
}

2. 批量修改服务器DNS设置:

先将要修改的服务器列表保存在一个文本文件servers.txt中,然后保存以下脚本到setdns.ps1文件中,最后在PowerShell中执行setdns.ps1脚本即可。

$computers = get-content .\servers.txt
Foreach($computer in $computers)
{
$lannic = get-wmiobject win32_networkadapter -computername $computer |where{$_.netconnectionid -eq “LAN”}
$index = $lannic.index
$lan = Get-WMIObject Win32_NetworkAdapterConfiguration -computername $computer |where{$_.index -eq $index}
$DNSServers = “10.1.1.11″,”10.1.1.21″
$lan.SetDNSServerSearchOrder($DNSServers)
}

 

Written by Nile Jiang
无猖狂以自彰,当阴沉以自深。

目前还没有任何评论.
注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。