Group Policy DNS Settings

Заметка Posted on

Оказывается MS умеет раздавать настройки IP DNS серверов через групповые политики только для Windows XP Professional. Все. Все остальные системы (Win 7, Win 2008 R2, Win 2003) — нет.GPODNSКак одна из причин — возможность наличия нескольких сетевых карт, для которых нужны разные настройки. Таким образом если есть необходимость раздавать настройки 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

Оставьте комментарий