Назад | Перейти на главную страницу

Добавление записи A DNS на сервер Win 2008R2 с сервера Win 2008R2 или Win7 через Powershell

Недавно я обнаружил, что можно просто автоматизировать администрирование записей DNS с помощью красивого командлета:

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

Я хотел бы запустить это на компьютере с Windows 2008 R2 (он вызывается в веб-службе), чтобы изменить запись DNS на другом. Я видел, что Powershell v3 уже поддерживает это, но я не мог заставить его работать и на Powershell v4, очевидно, модуль не может быть импортирован. Это потому, что я тестировал его на машине с Windows 7? У меня есть машина для разработки Windows 7, на которой я хотел бы разрабатывать и отлаживать ее. Возможно ли, что мне придется как-то перезагрузить этот модуль? Если да, то как я могу это сделать?

Я видел на странице MS, что он поддерживается в Windows Server 2012, но у меня нет системы Win2012, чтобы протестировать ее для подтверждения, и переключение продуктивных серверов 2012 в настоящее время невозможно.

Заранее большое спасибо

Вам необходимо установить инструменты администрирования удаленного сервера.

На сервере они устанавливаются как функция.

Для клиента погуглите "rsat windows 7" и скачайте установщик.

После установки вы получите модули администрирования сервера powershell, доступные для модуля импорта cmd-let.

[РЕДАКТИРОВАТЬ] Модуль 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

Однако я выполнил импорт файла csv, поскольку я перенес DNS-сервер всего пару недель назад (о чем я не думал, когда писал свой ответ). Мне было проще вызвать dnscmd из PowerShell, чем бездельничать.

Вот фактическое выполнение, которое я использовал, импорт csv и цикл удалены:

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

Вам нужно будет указать DNS-сервер, в противном случае он работает на локальном сервере, поэтому, если вы запускаете этот командлет удаленно, вам нужно будет указать, где находится DNS-сервер, на который вы хотите повлиять.

Использование:

-ComputerName в командлете и укажите имя или IP-адрес DNS-сервера, на котором вы хотите его изменить.

Задает DNS-сервер. Если вы не укажете этот параметр, команда будет запущена в локальной системе. Вы можете указать IP-адрес или любое значение, которое разрешается в IP-адрес, например полное доменное имя (FQDN), имя хоста или имя NETBIOS.

Однако командлет указывает только Windows 8.1 и Windows 2012 R2. Таким образом, он, скорее всего, не будет работать ни на чем до этих ОС ... поэтому они указывают это в документации на Technet.

Взято отсюда: 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-сервера для всех ранее найденных адаптеров.

адаптеры $ | ForEach-Object {$ _. SetDNSServerSearchOrder ($ newDNSServers)}