#####やりたいこと
DNSサーバーの、ゾーンごとのレコード一覧をPowershellで取得したいです。
#####環境
Windows Server 2008 R2
Windows Powershell ver 2.0
#####困っていること
get-wmiobjectで取得したゾーンの名前を、1つずつ配列に入れて、要素の数だけ繰り返すスクリプトを作成したのですが、ゾーン名を配列にうまく代入できず、エラーになってしまいます。
配列には、@{name=}を外した形(ゾーン名)だけ要素に入れたいです。
以下スクリプトで間違っている部分や、ゾーン名の取得方法が他にあれば教えていただけますと幸いです。
#####実行スクリプト
powershell
1$zonearray=@(get-wmiobject -name root\microsoftDNS -class MicrosoftDNS_Zone | select-object name) 2 3foreach ($zonename in $zonearray){ 4 dnscmd /zoneprint $zonename 5}
#####出力結果(エラー)
※取得したゾーンがtest.local、DNSサーバーのホスト名がTEST01だと仮定します。
powershell
1Zone: @{name=test.local} 2server: TEST01.test.local 3Time: Thu Aug 08 08:17:12:2019 UTC 4 5DNS server failed to emurate records for node @. 6status= DNS_ERROR_ZONE_DOES_NOT_EXIST 9601 (0×00002581)
#####エラーからわかっていること
配列$zonearrayの値が、以下のように代入されている。
@{name=test.local}
@{name=<ゾーン名>}
@{name=<ゾーン名>}
#####理想
$zonearrayを定義する際に、@{name=}を外した値だけ代入したい。
test.local
<ゾーン名>
<ゾーン名>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/09 00:21
2019/08/09 02:23
2019/08/10 07:53