2016-04-21 8 views
1

Я пытаюсь обновить запись DNS, которая в (я считаю) следующий путь на сервере:Как обновить DNS записей Programatically

ServerName -> Forward Lookup Zones -> domain.com -> test

Если запись DNS называется test, и типа Host(A).

Я скачал DNSShell модуль из here и попытался изменить столбец «Данные» в записи DNS (который содержит IP-адрес), с помощью следующей команды:

Set-DNSRecord -Identity "test.domain.com"

Но я получил эту ошибку:

Cannot validate argument on parameter 'Identity'. The argument "test.domain.com" does not match the "^\\.\root\MicrosoftDNS:MicrosoftDNS_" pattern. Supply an argument that matches "^\\.\root\MicrosoftDNS:MicrosoftDNS_" and try the command again.

так что я обновил параметр Identity следующим образом:

Set-DNSRecord -Identity "\\Servername\root\MicrosoftDNS:MicrosoftDNS_"

Но теперь я вижу:

Set-DNSRecord : Specified argument was out of the range of the valid values. Parameter name: Path

Когда я пытаюсь добавить -Path, он говорит, что не существует такой параметр! Кто-нибудь знает, где мне нужно добавить часть DNS-сервера , чтобы сообщить команде, какая запись обновляется? Документация по этому модулю неполна для этой части, и я не могу найти альтернативы.

Я могу позвонить Get-DNSRecord и увидеть запись, которую мне нужно обновить, но любые попытки Set заблокированы, потому что я понятия не имею, как эти пути создаются.

Любая помощь очень ценится.

ответ

1

мне удалось преодолеть это, используя Ye Olde классической CMD команды:

dnscmd /RecordAdd domain.com recordname RecordType /Aging /OpenAcl A 192.168.0.0

Это добавляет новую запись, и, кажется, сделать это, даже если другая запись с таким же именем (но разные IP) существует.

Так что в моем случае мне придется использовать dnscmd, чтобы сначала удалить существующую запись перед добавлением новой (так как я на самом деле просто хочу обновить IP-адрес существующей записи).

Команда для удаления Dns записи:

dnscmd /recorddelete domain.com recordname

Более подробную информацию можно найти here.

3

Вы также можете использовать по умолчанию модуль PowerShell для DNS-сервера от Microsoft, например, будет выглядеть примерно так:

Add-DnsServerResourceRecordA -Name "recordname" -IPv4Address "192.168.0.0" -ZoneName "domain.com" -AllowUpdateAny -AgeRecord 

В случае, если нужно удалить до того, что-то вроде этого должно работать:

Remove-DnsServerResourceRecord -ZoneName "domain.com" -Name "recordname" -RRType "A" -Force 
+0

спасибо за добавление этого - к сожалению, это работает только в Windows 8, 8.1, 10 и Server 2012 R2, поэтому я не могу его использовать, но это может быть полезно для других – Bassie

 Смежные вопросы

  • Нет связанных вопросов^_^