I have a script to configure network settings on multihomed computer running
win2003 SP1. Everything is ok except I can't configure the DNS suffix search
list.
I have tried the following and all fail (invalid method):
nicConfig.SetDNSSuffixSearchOrder(dnsSearch);
nicConfig.EnableDNS();
nicConfig.EnableDNS("computer1", dnsDomain, dnsServers, dnsSearch);
where the following variables have been set
var dnsDomain = "green.lab.example.com";
var dnsServers = new Array("192.168.1.2", "192.168.2.2");
var dnsSearch = new Array("green.lab.example.com",
"yellow.lab.example.com");
Anyone any ideas on whats wrong or any alternative solutions?
The above is part of the following script that is run as the local
administrator - machine is not part of a domain.
<job>
<script language="JScript">
var dnsDomain = "green.lab.example.com";
var registerDNS = false;
var dnsServers = new Array("192.168.1.2", "192.168.2.2");
var dnsSearch = new Array("green.lab.example.com", "yellow.lab.example.com");
main();
function convertDynamic(nicConfig) {
try {
var ipAddress = nicConfig.IPAddress(0);
var mask = nicConfig.IPSubnet(0);
var gateway = nicConfig.DefaultIPGateway(0);
var convert = false;
if (ipAddress.indexOf("192.168.3.") == 0) {
convert = true;
}
if (convert) {
WScript.Echo("converting", ipAddress, "to static ip");
WScript.Echo(" on adapter", nicConfig.Caption);
WScript.Echo(" ", nicConfig.Name);
nicConfig.EnableStatic(new Array(ipAddress), new Array(mask));
nicConfig.SetGateways(new Array(gateway), new Array(1));
if (!control) {
nicConfig.SetIPConnectionMetric(20);
}
nicConfig.SetDNSServerSearchOrder(dnsServers);
nicConfig.SetDNSDomain(dnsDomain);
/* the following commented out lines blow up */
//nicConfig.SetDNSSuffixSearchOrder(dnsSearch);
//nicConfig.EnableDNS();
//nicConfig.EnableDNS("computer1", dnsDomain, dnsServers, dnsSearch);
nicConfig.SetDynamicDNSRegistration(registerDNS,registerDNS);
nicConfig.SetDNSSuffixSearchOrder(dnsSearch);
}
else {
WScript.Echo("Not converting dynamic address", ipAddress, "to static");
WScript.Echo(" on adapter", nicConfig.Caption);
}
}
catch (err) {
WScript.Echo("oops", err);
}
}
/**
* find all adapters with DHCP and convert its currently assigned dhcp
address to static.
*/
function main() {
var wmiService =
GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\CIMV2");
var nicConfigs = wmiService.ExecQuery("SELECT * FROM
Win32_NetworkAdapterConfiguration WHERE IPEnabled = True");
var enumItems = new Enumerator(nicConfigs);
for (; !enumItems.atEnd(); enumItems.moveNext()) {
var nic = enumItems.item();
if (nic.DHCPEnabled) {
convertDynamic(nic);
}
}
}
</script>
</job>