Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

WMI: Administratorenrechte?

Empfohlene Antworten

Veröffentlicht

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^^^^^^^^^

wenn ich das richtig verstanden habe, fragst du den localhost nach der IP des DNS und verbindest dich dann dorthin.

der DNS gibt dir als hostname dann den des clients zurück - und ich glaube hier kann einfach kein connect stattfinden und deshalb bekommst du den lokalen hostname.

du könntest es mit der impersonisation versuchen, und username und passwort übergeben, wenn du dich mittels WMI am DNS andockst:

http://www.microsoft.com/technet/scriptcenter/resources/wmifaq.mspx

wobei sich mir generell die frage stellt, ob nicht ein simpler reverse lookup auf die ip-adresse ohnhin den DNS-namen verraten würde, ohne sich via WMI hinzuverbinden.

s'Amstel

Danke für die Antwort!

Meinst du mit einem Reverse Lookup einen nslookup auf die IP-Adresse?

Mit nslookup sehe ich das Problem mit dem Splitten usw.?

Ich bin noch Anfänger in Sachen VBScript, sollte dieses jedoch schon noch hinkriegen. Ohne Hilfe schaffe ich dies jedoch nicht.

Das Problem ist, dieses Script dient später eigentlich als "Login-Script". Also das heisst, sobald sich der User (ohne Administrator-Rechte) an der Domäne anmeldet, führt er dieses aus. Daher ist die Idee mit dem Benutzernamen und Passwort wahrscheinlich hierfür nicht geeignet?

Gruss 180Grad

ich würde davon absehen, in loginscripte solche konstrukte wie WMI-zugriffe einzubauen.

wenn du dich an einer AD anmeldest, weisst du doch den hostnamen von der kiste - er steht (zumindest bei mir) spätestens nach dem anmeldung sogar in der umgebungsvariable LOGONSERVER.

s'Amstel

Hallo!

Nochmals danke für die Antwort.

Bei mir steht bei Logonserver auch ein Server. Wir haben zwei Standorte und der Server bei "LOGONSERVER" verweist auf den anderen Standort. Den, den jedoch ich haben sollte bzw. muss, der steht nicht dort. Und auch sonst in der Registry usw. steht dieser nirgens.

Den der ich haben muss, soll der primary Server sein.

Ich dachte es sei leichter den 1. DNS Server herauszufinden aber man kann sich wie man sieht auch täuschen :-)

Wenn du noch einen Tipp oder eine Idee hättest wäre ich froh darum. Ansonsten werde ich es wahrscheinlich mit der NSLOOKUP-Methode in DOS versuchen.

Danke und Gruss

180Grad

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.