Jump to content

vbs & regedit auslesen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

 

Vorweg; ich weiß nicht ob ich hier im richtigen Forum bin, da ich mir nicht sicher bin, ob es sich um ein Scriptfehler handelt oder um ein permission Problem. Ich habe ein Script geschrieben, dass einen registrykey ausliest (in meinem Fall AUOptions für WindowsUpdates) und diesen Wert in einer Variable speichert welche dann von unserem Monitoringsystem gelesen wird.

 

<job>
<runtime>
 <description>

Checks if automatic Windows Updates are turned on

 </description>

</runtime>
<script language="VBScript">
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Const's and Var's
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Cons for return val's
Const intOK = 0
Const intWarning = 1
Const intCritical = 2
Const intUnknown = 3

Const ForReading = 1
Const ForWriting = 2

Set obj_Shell = CreateObject("WScript.Shell")
sngVersion = obj_Shell.RegRead _
   ("HKEY_LOCAL_MACHINE\software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\AUOptions")

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

 

das Script funktioniert auch wunderbar beim aufruf lokal. Anschließend habe ich es bei uns auf dem Domaincontroller (2k8) ausgerollt und in unser Monitoringsystem eingebunden. Dort funktionierte es ebenfalls und zeigte den Status richtig an. Anschließend habe ich es auf anderen 2k8 Servern ausgerollt - dort funktioniert der Check jedoch nicht, mit folgendem Error:

 

 

rpe\\check_auto_updates.wsf(26, 2) WshShell.RegRead: Invalid root in registry key "HKEY_LOCAL_MACHINE\\software\\Microsoft\\Windows\\CurrentVersion\\WindowsUpdate\\Auto Update\\AUOptions".

 

den Pfad gibt es aber eindeutig - lokal lässt es sich ausführen.

Anschließend habe ich den Monitoringservice auf dem Server mit Admin laufen lassen, aber auch das brachte nicht den erhofften erfolg. Irgendwie bin ich mit meinem Latein am Ende. Ich habe bereits versucht den Key per powershell, commandline und vbs auszulesen und denke langsam, dass es dort irgendwie ein permission issue gibt... Vielleicht hat hier ja noch jemand einen Tipp?

Link zu diesem Kommentar

Hallo,

 

danke für deine Antwort. Ich bin nun etwas weiter, es ist bizarr.

Das Script wird auf dem Server lokal aufgerufen ->

command[check_auto_updates]=c:\windows\system32\cscript.exe //NoLogo //T:300 c:\nrpe\check_auto_updates.wsf

 

wenn ich es so eingebe funktioniert es auch - lokal - nur am nagios eben nicht, außer am Domaincontroller. Das lustige ist, wenn ich den Pfad um eine Ebene erhöhe, sprich einen anderen Wert aus der registry abfrage funktioniert es. Die Berechetigungen sind allerdings die gleichen, bei WindowsUpdates/AUOptions tut der Nagios einfach so, als würde der Pfad nicht existieren. Bin irgendwie langsam etwas entnervt und verzweifelt.

 

Habe mir schon überlegt das Script im scheduler laufen zu lassen, das Ergebnis in einer .txt Datei zwischenzuspeichern und diesen Wert dann vom Nagios checken zu lassen. Aber was wäre das für ein Aufwand für einen minicheck, der eigentlich auf alle Windowssystem ausgerollt werden sollte.

 

Ich finde auch nichts der Gleichen bei google bezüglich

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\AUOptions

... es ist verhext..

Link zu diesem Kommentar

Okay, Mischumgebung.

 

Du kannst ja sicherlich auch Powershellscripte vom Nagios starten?!

 

Probier mal bitte:

Get-ItemProperty -Path "hklm:\software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\" | Select -ExpandProperty AUOptions

 

Damit bekommst du den Wert raus. Das ganze in ein Script packen und aufrufen.

Kommst du damit weiter?

Link zu diesem Kommentar
Okay, Mischumgebung.

 

Du kannst ja sicherlich auch Powershellscripte vom Nagios starten?!

 

Probier mal bitte:

Get-ItemProperty -Path "hklm:\software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\" | Select -ExpandProperty AUOptions

 

Damit bekommst du den Wert raus. Das ganze in ein Script packen und aufrufen.

Kommst du damit weiter?

 

Hallo,

 

erstmal danke für deine Hilfe. Wie in meinem ersten Post geschrieben habe ich es bereits mit Powershell ausprobiert. Allerdings wollte ich aus zwei Gründen PS nicht verwenden 1. haben wir extrem viele ältere Server im Betrieb bei denen kein Powershell installiert ist und ich es auch nicht nachziehen werde -> 2. hat das via ps auch funktioniert das Script -> selber Fehler im Nagios. D.h. lokal hat alles funktioniert.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...