Group Policy DNS Settings
Заметка Posted on
Оказывается MS умеет раздавать настройки IP DNS серверов через групповые политики только для Windows XP Professional. Все. Все остальные системы (Win 7, Win 2008 R2, Win 2003) — нет.Как одна из причин — возможность наличия нескольких сетевых карт, для которых нужны разные настройки. Таким образом если есть необходимость раздавать настройки DNS централизованно и при этом без DHCP, необходимо будет использовать примерно вот такой StartUp Script.
Dim strDNSearchOrder, strPrimaryWINSServer, strSecondaryWINSServer, Site, DNSSearchOrder, arrDNSServers, Subject, ComputerName strComputer = "." Set WshShell = WScript.CreateObject("WScript.Shell") ComputerName = WshShell.ExpandEnvironmentStrings("%computername%") Set oSysInfo = CreateObject("ADSystemInfo") Site=oSysInfo.SiteName Select Case Site Case "FirstSite" arrDNSServers = Array("192.168.1.1", "192.168.1.2") DNSSearchOrder="192.168.1.1", "192.168.1.2" Case "SecondSite" arrDNSServers = Array("192.168.2.1", "192.168.2.2") DNSSearchOrder="192.168.2.1", "192.168.2.2" Case "ThirdSite" arrDNSServers = Array("192.168.3.1", "192.168.3.2") DNSSearchOrder="192.168.3.1", "192.168.3.2" Case Else Wscript.Quit End Select Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set Nics = objWMIService.ExecQuery _ ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE (IPEnabled = True) AND (DHCPEnabled = False)") For Each Nic In Nics On Error Resume Next strDNSearchOrder=Join(nic.DNSServerSearchOrder,",") If Err.Number<>0 then Err.Clear DNSSet arrDNSServers else If strDNSearchOrder<>DNSSearchOrder then DNSSet arrDNSServers End If End If Next Sub DNSSet(arr) intSetDNSServers = Nic.SetDNSServerSearchOrder(arr) End Sub