DNSレコードは通常、DNSサーバーによって動的に管理されます。しかし、時々、さまざまな種類のDNSレコードを手動で作成、編集、または削除する必要がある場合があります。または、さまざまなDNSタスクを自動化スクリプトに追加する必要があるかもしれません。このような場合には、PowerShell DNSコマンドレットを使用することが適しています。
このブログ投稿には、TechSnipsの寄稿者であるDavid Lambによって作成された補足ビデオがあります。ご視聴いただくか、テキストをお読みいただくこともできます。
PowerShell DNSコマンドレットを使用してDNSレコードを表示する
単にPowerShell DNSコマンドレットGet-DnsServerResourceRecord
を使用するだけで、指定したZoneName
パラメーターに対応するすべてのリソースレコードを表示することができます。
下記のように、これによりかなり長いレコードのリストが生成されます。

この動作は、この特定のコマンドレットがグラフィカルなDNSコンソールよりも優れている点の一つを強調しています。この表示では、どのフォルダにあるかに関係なく、このゾーンのすべてのレコードが表示されます。グラフィカルコンソールでは、この情報を組み合わせるのにかなりの時間がかかるでしょう。
このリストを少し薄くしてください。同じコマンドレットを使用しますが、RRType
パラメータを追加してAレコード(IPv4ホスト)を検索し、Time To Live(TTL)が15分以上のレコードをフィルタリングすると、管理可能なリストが表示されます。 Where-Object
コマンドレットを使用して、さまざまなDNSレコードのプロパティでフィルタリングできます。

さらに、異なるDNSゾーンや異なるDNSサーバーでレコードを検索することもできます。
以下の例では、DNSサーバーDC03上のcanada.corp.adゾーン内のAレコードを検索します。

Aホストレコードの追加と削除
ホストレコードを追加するには、PowerShell DNSコマンドレットAdd-DnsServerResourceRecordA
を使用する必要があります。以下の例では、ネットワークに追加する新しいプリンターのためのホストレコードを追加する必要があります。これはcorp.adゾーンにreddeerprint01という名前で追加され、IPアドレスは192.168.2.56です。

もしもレコードを削除する必要がある場合、おそらくプリンターが廃止された場合、以下のコードを使用して、先ほど作成したホストレコードを削除できます。
AAAホストレコードの追加と削除
IPv6ホストレコードを追加するのも同様に簡単です。ただし、これらのレコードはAAAAレコードとしてリストされるため、若干異なることに注意してください。PowerShell DNSコマンドレットAdd-DnsServerResourceRecordAAAA
を使用しています。微妙な変更ですが、重要な変更です。
次のコマンドを使用して、corp.adゾーンに新しいITイントラネットサーバーのレコードをfc00:0128に追加し、作成されたことをすばやく確認してください。

逆引きルックアップレコード(PTR)の追加
PowerShell DNSコマンドレットを使用して、PTRレコードを追加することもできます。逆引きルックアップレコードは、クライアントがDNSサーバーに対して指定したIPアドレスのホスト名をリクエストするためのものです。
PTRレコードの作成は比較的簡単なプロセスですが、レコードを追加する前に知っておく必要がある重要な情報があります。逆引きルックアップゾーンはデフォルトでは作成されません。レコードを追加する前に逆引きルックアップゾーンを設定する必要がありますが、幸いにもそれは比較的簡単です。
DNSゾーンの作成
PowerShell DNSコマンドレットAdd-DnsServerPrimaryZone
を使用して新しいDNSゾーンを作成します。この場合、逆引きルックアップゾーンを作成しているため、ネットワークIDを指定します。
この例では、レプリケーションスコープをADフォレスト全体に設定し、特定のDC03を優先DNSサーバーとして指定しています。

逆引きゾーンが設定されたので、CYQF-Printer-01.canada.corp.adという名前の新しいプリンタのPTRレコードを追加することができます。このレコードはcanada.corp.adゾーン用のものであり、DNSサーバーDC03をターゲットにする必要があります。
ゾーンが作成されたので、Add-DnsServerResourceRecordPtr
コマンドを使用してPTRレコードを作成しましょう。このコマンドレットを使用する際には、いくつかの重要な点に注意する必要があります。
- ネットワークIDを逆順に使用してゾーン名を指定する必要があります。そして、.in-addr.arpaを追加します。したがって、私たちの192.168.2.0/24のネットワークIDに対して、ゾーン名は2.168.192.in-addr.arpaです。
Name
パラメータはIPアドレスのホスト部分です。192.168.2.56のプリンタの場合、Name
は56です。
これらの情報が揃ったら、PTRレコードを作成するために必要なコードは比較的簡単ですが、少し長いです:

別名レコード(CNAME)の追加
このチュートリアルを完了するために、Add-DnsServerResourceRecordCName
コマンドレットを使用してホストの別名レコードまたはCNAMEレコードを作成します。
これらのレコードは、ゾーン内の既存のホストレコードの別名を指定することができます。これは、たとえば、財務ユーザーにWeb対応の財務アプリのアドレスを提供したい場合に特に便利です。
financeというエイリアスを作成し、それをwebserver webapp25.corp.adに向けます。アプリケーションが新しいホスト名を持つ新しいwebserverに移行されたら、CNAMEレコードを変更してfinanceを新しいホストに向けます。これにより、ユーザーはブックマークを更新する必要がありません。アドレスfinance.corp.adを使用してアプリケーションにアクセスし続けることができます。

DNSについてさらに詳しく知りたい場合は、ここで他のDNSの記事をすべてチェックしてください。
概要
PowerShellを使用したDNSレコードの使用に関するチュートリアルは以上です。ここで蓄積した知識を活用することで、大量のDNSレコードを対話的に管理したり、自動化したりすることができるでしょう!