あるイベント起動で、「AD統合DNSのCNAMEの指すAレコードを変える」、ということをしたい。
イベントハンドリングはとりあえずおいといて、スクリプトでDNSのCNAMEを変更する方法を探す。

やっぱりというかなんというかWMIにしっかりと用意されていた。
 DNS WMI Classes (Windows)

PowershellはWMIオブジェクトも扱えるので、こんな感じに。

$cnames = gwmi -Class MicrosoftDNS_CNAMEType -Namespace Root\MicrosoftDNS -ComputerName DCコンピュータ名
$cname = $cnames | ? {$_.OwnerName -eq "cname.example.com"}
$cname.Modify($null, "some.example.com.")

 
特定のCNAMEを表すMicrosoftDNS_CNAMETypeだけすぱっと取得したかったが、全CNAMEを取る方法しか分からなかったので場当たり的にWhere-Objectで絞り込む。とても無駄な感じ。

  • CNAMEもAレコードも事前に作成してある前提なので、見つからない場合を考えていない。
  • 適切な権限が必要。

環境:
 Windows XP Pro SP3 x86
  Powershell 1.0
 Windows Server 2008 Standard x64
  Active Directory
  DNS

       
Powered by Google App Engine

このブログ記事について

このページは、tckzが2009年12月22日 00:08に書いたブログ記事です。

ひとつ前のブログ記事は「Windows 7で VMware Player 3」です。

次のブログ記事は「redmine 0.9の Wikiとプラグイン」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 5.2