Remote WMI im ADS

Dieses Thema Remote WMI im ADS im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von oelchen, 27. Aug. 2005.

Thema: Remote WMI im ADS Hallo, ich versuche installierte Dienste und Patches von den Rechnern meiner Domäne auszulesen, und habe für diese...

  1. 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:reiner_ziegler2004@yahoo.de.
    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
     
Die Seite wird geladen...

Remote WMI im ADS - Ähnliche Themen

Forum Datum
Fehlermeldung beim remote Login zu meiner IP-Cam Windows 7 Forum Dienstag um 12:31 Uhr
Remote Hardware für PC Windows XP Forum 9. Dez. 2015
PC hängt sich nach Schließen der RemoteDesktopSitzung auf Windows 7 Forum 1. Juni 2015
Der Remoteprozeduraufruf ist fehlgeschlagen Windows 8 Forum 31. Mai 2015
Windows 8, Netzlaufwerk und Remotedesktop funktionieren nicht Windows 8 Forum 4. Feb. 2015