ObjGet() und IsObj()

  • Brauche mal Hilfe hierzu:

    Wenn ich mit ObjGet() eine WMI Verbindung zu einem Remote System aufbaue

    $objReg = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $srv & "\root\default:StdRegProv")

    und mit

    If IsObj($objReg) Then

    das Objekt abfrage, hab ich das Problem, dass zwar $objReg zwar als Objekt erkannt wird, aber meine nächste Abfrage

    $objReg.GetStringValue($HKLM, $BaseKey, "Test", $OS_TEST)

    die Fehlermeldung

    Line -1:

    Error: The requested action with this object has failed.

    erscheint.

    Wenn ich mit Scriptomatic das System abfrage, kommt nichts zurück. Ich gehe davon aus, dass eine Verbing zwar aufgebaut wird, aber es kommen keine Werte zurück.

    Hat jemand eine Idee?

    Hier ein Extrakt des Codes:

    [autoit]


    ...
    $HKLM = 0x80000002
    $BaseKey = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\"
    $objReg = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $srv & "\root\default:StdRegProv")

    [/autoit][autoit][/autoit][autoit]

    If IsObj($objReg) Then
    $objReg.GetStringValue($HKLM, $BaseKey, "Test", $OS_TEST)
    Else
    ...

    [/autoit]


    Danke,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    3 Mal editiert, zuletzt von UEZ (10. Dezember 2009 um 19:04)

  • Liegt der Schluss nahe, dass deine Anfrage nicht korrekt ist.
    http://msdn.microsoft.com/en-us/library/aa390788(VS.85).aspx

    edit \ bei mir gehts übrigens ?(

    [autoit]


    $HKLM = 0x80000002
    $BaseKey = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\"
    $objReg = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" &"." & "\root\default:StdRegProv")
    dim $test
    If IsObj($objReg) Then
    $objReg.GetStringValue($HKLM, $BaseKey, "allocatecdroms",$test)
    endif
    MsgBox(1,"", $test)

    [/autoit]

    Einmal editiert, zuletzt von nuts (10. Dezember 2009 um 15:48)

  • Hi,

    kontrollier mal den Dienst Remote-Registrierung. Falls er nicht gestartet sein sollte -> starten.

    ;-))
    Stefan

  • Hi,

    kontrollier mal den Dienst Remote-Registrierung. Falls er nicht gestartet sein sollte -> starten.

    ;-))
    Stefan

    Das ist nicht das Problem, sondern, wenn ich mein Skript starte, soll es unabhängig von den Remote Diensten laufen und nicht mit dem Fehler den Dienst quittieren.

    Abgesehen davon kann ich mich mit Regedit auf das Remote System verbinden ;)

    Ich werde es mal, wie von funkey vorgeschlagen, mit RegRead() probieren.

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯