setDNSsetting.js
DNSの細かい設定を行うスクリプトです。
ActiveDirectory環境下では、細かいDNSの設定値が(場合によっては)厳密に求められます。 これらの設定を、WMIを利用して一括設定するのが目的です。
DNSの設定を行うには、Win32_NetworkAdapterConfigurationクラスを利用します。
このクラスにはネットワークの設定を行うメッソドが多数用意されています。
今回は以下のクラスを利用してDNSの設定を実施します。
SetDNSDomainメソッド:「この接続のDNSサフィックス」の設定を行う。
uint32 SetDNSDomain( [in] string DNSDomain );SetDNSServerSearchOrderメソッド:DNSサーバーのIPアドレスの設定を行う。
※今回はパラメータの設定なので、このメソッドは使用しません。
uint32 SetDNSServerSearchOrder( [in] string DNSServerSearchOrder[] );SetDNSSuffixSearchOrderメソッド:「以下のDNSサフィックスを順に追加する」にドメイン名を設定する
uint32 SetDNSSuffixSearchOrder( [in] string DNSDomainSuffixSearchOrder[] );SetDynamicDNSRegistrationメソッド:「この接続のアドレスをDNSに登録する」、「この接続のDNSサフィックスをDNS登録に使う」の設定を行う。
uint32 SetDynamicDNSRegistration( [in] boolean FullDNSRegistrationEnabled, [in] boolean DomainDNSRegistrationEnabled );以下サンプルです。
var strComputer = "."; var oWMI1 = GetObject("winmgmts:\\\\"+strComputer+"\\root\\cimv2"); var oWIN32NAC = oWMI1.ExecQuery("Select * From Win32_NetworkAdapterConfiguration"); var oWIN32NACf = oWMI1.Get("Win32_NetworkAdapterConfiguration"); var aDnsSufixList = new Array(""); oWIN32NACf.SetDNSSuffixSearchOrder(aDnsSufixList); for( var e = new Enumerator( oWIN32NAC ) ; !e.atEnd() ; e.moveNext() ) { var oNicCol = e.item(); if( oNicCol.IPEnabled == true ) { oNicCol.SetDNSDomain("mydomain.local"); oNicCol.SetDynamicDNSRegistration(true,true); } }