Remote WMI im ADS

  • #1
O

oelchen

Mitglied
Themenersteller
Dabei seit
27.08.2005
Beiträge
5
Reaktionspunkte
0
Hallo,

ich versuche installierte Dienste und Patches von den Rechnern meiner Domäne auszulesen, und habe für diese auch Administratorrechte. Allerdings erhalte ich die Fehlermeldung Zugriff verweigert (Fehlercode 70), wenn mein Script versucht mit den Rechnern zu verbinden. Hier ist der entsprechende Code:


    Set objWMIService = GetObject(winmgmts: _
        & {impersonationLevel=impersonate, (SystemProfile)}!\\ _
        & strComputer & \root\cimv2)
    If Err <> 0 Then
        Wscript.Echo Err.Number & -- &  Err.Description
        Wscript.Echo Der Rechner & strComputer & konnte nicht erreicht werden.
        Err.Clear
    Else
        Set colQuickFixes = objWMIService.ExecQuery _
            (Select * from Win32_QuickFixEngineering)
        Wscript.Echo Installierte Hotfixes:
        For Each objQuickFix in colQuickFixes
            Wscript.Echo Hot Fix ID: & objQuickFix.HotFixID _
                & Installation Date: & objQuickFix.InstallDate _
                & Installed By: & objQuickFix.InstalledBy
        Next
        Set colRunningServices = objWMIService.ExecQuery _
            (SELECT * FROM Win32_Service)
        Wscript.Echo Installierte Services:
        For Each objService in colRunningServices
            Wscript.Echo Name: & objService.DisplayName
        Next
    End If

Als Admin sollte ich eigentlich die entsprechende Berechtigung haben und diese auch auf das Script vererben. Gibt es vielleicht globale Sicherheitsrichtlinien, welche den Zugriff verhindern?

Mit bestem Dank im Voraus,
Oelchen
 
  • #2
Hallo,

bei Remote-Zugriffen mit WMI solltest du nicht GetObject() verwenden, sondern CreateObject() wie folgt:

Code:
 Set objWMILocator = CreateObject(WbemScripting.SWbemLocator)
 Set objWMIServices = objWMILocator.ConnectServer(strMachineName, 
                                                                                     root\cimV2, _
                                                                                      strUserName, strPassword)

wobei strUserName am besten einen Domain-Admin repräsentieren sollte!

Gruss

Reiner
 
  • #3
Hallo Reiner,

vielen Dank für den Tip! Mit der Methode ist es mir tatsächlich gelungen, drei Rechner zu erreichen. Modifizierter Code nach deinen Anweisungen:

Code:
    Set objWMILocator = CreateObject(WbemScripting.SWbemLocator)
    Set objWMIService = objWMILocator.ConnectServer(strComputer, _
        root\cimV2, xxx, xxx)

Bei allen weiteren Maschinen erhalte ich nun allerdings folgende Fehlermeldung:
-2147024891 -- Zugriff verweigert.

Fehlt evtl. eine aktuelle Script-Plattform o.ä.?

Gruß,
Oelchen
 
  • #4
Hallo oelchen,

was ist das für ein Account, den du benutzt (Domain-Admin?).
Welches OS läuft auf den Maschinen, die nicht gehen?
Sind das evtl. Win98/ME oder gar Win95-Rechner?

Gruss

Reiner
 
  • #5
Hallo Reiner,

es handelt sich um Win2k-Maschinen und ich bin in der tat Domänen-Admin. Muss ich den Benutzernamen mit Kontoname oder Domäne\Kontoname angeben? Fehlen vielleicht optionale Windows-Updates? Von einem weiteren Rechner aus gestartet, den ich ursprünglich mit dem Skript nicht erreicht hatte, erreiche ich gar keine weitere Maschine.

Gruß,
Ole
 
  • #6
Hallo oelchen,

den Kontonamen musst du unbedingt als Domain\User angeben!
Ansonsten fällt mir im Moment auch nichts meht ein...
Du kannst mir höchstens das Script mal zuschicken
mailto:[email protected].
Ich schau dann mal, was man machen kann...

Gruss

Reiner
 
  • #7
Hallo Reiner,

vielen Dank für deine Mühe! Es hat aber leider nichts gebracht. Die Situation ist unverändert, allerdings habe ich die Diagnose wie folgt spezifiziert:

Ich kann überhaupt nur vier Rechner unserer Domäne erreichen, von denen einer der Domaincontroller ist. Bei allen anderen Maschinen erhalte ich die Fehlermeldung Zugriff verweigert. Allerdings können sich diese Maschinen nur wechselseitig ansprechen: jeweils eine der vier Maschinen hat Zugriff auf die anderen drei. Sofern ich das Skript von einem anderen Rechner aus starte, erreiche ich gar keine Maschine (außer der lokalen natürlich).

Ich habe keinerlei Unteschiede in den lokalen Sicherheitsrichtlinien entdecken können. Interessant ist allerdings dass an alle Rechner, die sich gegenseitig erreichen können (neben dem Domaincontroller), zu irgendeinem Zeitpunkt mal unsere (freigegebenen) Netzdrucker angeschlossen waren oder es noch sind.

Kann sich das jemand erklären?

Gruß,
oelchen
 
Thema:

Remote WMI im ADS

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben