Um was geht es?:
Ich habe ein VBScript, das für mich die IP-Adresse des primären DNS-Servers ausfindig macht. Auf diese, erhaltene IP-Adresse setze ich sozusagen mit einer WMI-Prozedur einen NSLOOKUP-Befehl ab, der mir den Hostnamen des primären DNS Servers wiedergibt.
Das Problem:
Das VBScript gibt mir nur den richtigen Hostnamen des DNS-Servers, wenn ich es mit Administratorenrechten ausführe. Führe ich das Script mit einem normalen Benutzernamen aus, dann gibt er mir den Hostnamen meines Computers zurück und nicht den, des DNS-Servers.
Meine Frage:
Gibt es vielleicht noch eine andere Möglichkeit, einen solchen nslookup Befehl abzusetzen?
Oder noch viel einfacher: Weiss jemand, wie ich per Script den Hostnamen meines (primären) DNS Servers erhalte?
Gruss 180Grad
Der Code:
' Alle Domain Name System Server (DNS) IP-Adressen für diesen (lokalen) Computer ermitteln ^^^^^^^^^^^^^^^
On Error Resume Next
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
sClient = "."
Set objWMIService = GetObject("winmgmts:\\" & sClient & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems
strDNSServerSearchOrder = Join(objItem.DNSServerSearchOrder, ";")
Next
' ^^^ENDE^^^^^^^^^
' Die IP Adresse des primären DNS Servers ermitteln ^^^^^^^^^^^^^^^
sSemicolon = InStr(strDNSServerSearchOrder , ";")
sPrimaryDNS_IP = Left(strDNSServerSearchOrder , sSemicolon - 1)
MsgBox "IP Adresse DNS: [ " & sPrimaryDNS_IP & " ]"
' ^^^ENDE^^^^^^^^^
' Hostnamen des primären DNS Servers ermitteln ^^^^^^^^^^^^^^^
Set objWMIService = GetObject("winmgmts:\\" & sPrimaryDNS_IP & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems
sDNS_Server = objItem.Name
WScript.Echo "Hostname DNS: [ " & sDNS_Server & " ]"
Next
' ^^^ENDE^^^^^^^^^