我们要使用的服务器

我们要使用的服务器

我最近发现,可以使用一个好用的 cmdlet 简单地自动化 DNS 条目管理:

Import-Module DnsServer
Add-DnsServerResourceRecordA -Name mail2 -IPv4Address 192.168.0.10 -ZoneName powershell.local

我想在 Windows 2008 R2 机器上运行这个程序(它在 Web 服务中被称为)来更改另一台机器上的 DNS 条目。我看到 Powershell v3 已经支持此功能,但我无法让它在 Powershell v4 上运行,显然无法导入模块。这是因为我在 Windows 7 机器上测试过它吗?我有一台 Windows 7 开发机器,我想在上面开发和调试它。我是否必须以某种方式重新加载此模块?如果是,我该怎么做?

我在 MS 页面上看到它支持 Windows Server 2012,但我没有 Win2012 系统来进行测试以确认,并且目前无法切换生产服务器 2012。

提前致谢

答案1

您需要指定 DNS 服务器,否则它将在本地服务器上运行,因此如果您远程运行此 cmdlet,则需要指定您希望它影响的 DNS 服务器的位置。

使用:

-ComputerName在 cmdlet 中指定您想要更改的 DNS 服务器的名称或 IP。

指定 DNS 服务器。如果不指定此参数,则命令将在本地系统上运行。您可以指定 IP 地址或任何可解析为 IP 地址的值,例如完全限定域名 (FQDN)、主机名或 NETBIOS 名称。

但是,该 cmdlet 仅指定 Windows 8.1 和 Windows 2012 R2。因此它很可能无法在这些操作系统之前的任何版本上运行……这就是他们在 Technet 文档中指定它的原因。

答案2

您需要安装远程服务器管理工​​具。

在服务器上,它们作为一项功能进行安装。

对于客户端,请谷歌搜索“rsat windows 7”并下载安装程序。

安装后,您将获得可用于导入模块 cmd-let 的 powershell 服务器管理模块。

[编辑] DndServer 模块随 win8.1 RSAT 一起提供。不过,您可以在 win7 上以其他方式执行此操作,请参阅脚本编写人员:http://blogs.technet.com/b/heyscriptingguy/archive/2010/09/13/manage-dns-in-a-windows-environment-by-using-powershell.aspx

但是,几周前我迁移了 dns 服务器,因此导入了 csv 文件(我写答案时没有想到这一点)。我发现从 powershell 调用 dnscmd 比乱搞要容易得多。

这是我使用的实际执行,csv 导入和循环被剥离:

dnscmd $DNS_DNSServerName /recordadd $DNS_Domain $DNS_Name $DNS_ResourceType $DNS_Data

答案3

摘自这里:http://daniel.streefkerkonline.com/2014/12/09/change-a-nics-dns-server-settings-with-powershell-and-wmi-setdnsserversearchorder/

看一下这个:

我们要使用的服务器

$newDNSServers = “192.168.1.1”,“192.168.1.2”

获取所有已设置 DNS 服务器的网络适配器

$adapters = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object {$_.DNSServerSearchOrder -ne $null}

为所有先前找到的适配器设置 DNS 服务器搜索顺序

$adapters | ForEach 对象 {$_.SetDNSServerSearchOrder($newDNSServers)}

相关内容