Ankündigung

Einklappen
Keine Ankündigung bisher.

vbs profi needed

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    vbs profi needed

    Hallo meine Guten,

    ich brauche einen vbs profi. Und zwar möchte ich einen bestimmten Wert aus einer registrydatei auslesen, und vorerst nur im echo ausgebenen. Ich bin ein totaler gimp und habe ein bisschen gegoogled -> werde aber daraus nicht schlau:

    ' Gibt den Wert des Schlüssels aus "Path" zurück
    Public Function RegRead(Path As String) As String
    Dim ws As Object

    On Error GoTo ErrHandler
    Set ws = CreateObject("WScript.Shell")
    RegRead = ws.RegRead(Path)
    Exit Function

    ErrHandler:
    RegRead = ""
    End Function

    wo gebe ich den Pfad der Registry genau an? Und wo welcher Wert ausgelesen werden soll?

    #2
    Einfach Path deklarieren.

    Dim sPath as String
    sPath = "HKEY_CURRENT_USERSOFTWAREMicrosoftTestkey"
    Dann mit RegRead = ws.RegRead(sPath) aufrufen

    Also einfach den ganzen Pfad und hinten den Schlüssel.

    Siehe hier.

    Kommentar


      #3
      pfad = "HKLM/Pfad/zu/deinem/Schlüssel:dword"

      Set obj = CreateObject("WScript.Shell")
      wert = obj.RegRead(pfad)
      WScript.Echo "Registry-Wert beträgt: " & wert

      könnte klappen.

      Kommentar


        #4
        Ne, brauchst du gar net. Einfach als Pfad den kompletten Pfad + Schlüssel angeben:
        ObjShell = ShellObject.RegRead(HKEY_LOCAL_MACHINESOFTWAREMicr osoftWikipedia....)
        ShellObject.Popup "Der Wert lautet ;" & ObjShell ,"4",""

        Dieser Script liest einen Schlüssel in der Registry aus und speichert ihn in der Variable "ObjShell".

        Kommentar


          #5
          Hammer,

          soweit so gut. Das funktioniert. Nun möchte ich es aber nicht als poput ausgeben, sondern er soll es nur in der shell ausführen. Mal zu meinem eigentlichen Problem:

          Ich habe mal mit Mühe ein Script zusammengebastelt, dass überprüft ob Windows Autoupdates aktiviert sind (wird aus der registry gelesen). Das Script wird dann remote von einem monitoringsystem aufgerufen. Leider funktioniert das Script wohl remote nicht richtig da ich den key über die commandline auslese.

          Set obj_Shell = CreateObject("WScript.Shell")
          Set obj_WSH = obj_Shell.Exec("REG QUERY ""HKLMsoftwareMicrosoftWindowsCurrentVersionWindow sUpdateAuto Update"" /v AUOptions")
          Set obj_STDOUT = obj_WSH.StdOut
          'str_Output = obj_STDOUT.ReadAll
          'Wscript.Echo str_Output & vbCrLf

          Set objRegEx = CreateObject("VBScript.RegExp")
          objRegEx.Pattern = "0x3"

          Do Until obj_STDOUT.AtEndOfStream
          strSearchString = obj_STDOUT.ReadLine
          Set colMatches = objRegEx.Execute(strSearchString)
          If colMatches.Count > 0 Then
          failed = 0
          End If
          Loop

          If failed = 1 Then
          Wscript.Echo "AutoUpdates / Autorestart enabled!"
          Wscript.Quit(intCritical)
          Else
          Wscript.Echo "Autoupdates disabled"
          Wscript.Quit(intOK)
          End If

          d.h. ich will eigentlich nur den markierten Teil ändern und den Key direkt per VBS auslesen (also mit deinem part ersetzen) - der Suchstring müsste in dem Fall dann auch noch angepasst werden.

          Kommentar


            #6
            Falls es irgendjemanden interessiert; ich habe das Problem jetzt simpelst gelöst. Danke noichmal an Killa.





            Checks if automatic Windows Updates are turned on





            '''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''
            ' Const's and Var's
            '''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''
            'Cons for return val's
            Const intOK = 0
            Const intWarning = 1
            Const intCritical = 2
            Const intUnknown = 3
            'failed = 1

            ' Cons for FSO
            Const ForReading = 1
            Const ForWriting = 2

            Set obj_Shell = CreateObject("WScript.Shell")
            sngVersion = obj_Shell.RegRead _
            ("HKEY_LOCAL_MACHINEsoftwareMicrosoftWindowsCurren tVersionWindowsUpdateAuto UpdateAUOptions")

            if sngVersion = "3" then
            Wscript.Echo "AutoUpdates disabled!"
            Wscript.Quit(intOK)
            Else
            Wscript.Echo "AutoUpdates / Autorestart enabled!"
            Wscript.Quit(intCritical)
            End If



            Kommentar

            Lädt...
            X