knutschie1000 10 Geschrieben 18. April 2007 Melden Teilen Geschrieben 18. April 2007 Hi Leute, habe heute zum erstem mal WMI angefasst und bin begeistert was damit alles geht. Ich finde es sogar recht einfach und logisch aufgebaut und das wo ich eingentlich keine Ahnung von sowas habe. Nun habe ich aber doch eine Fragen und hoffe es kann mir jemand helfen. Wie kann ich z.b. WMI dazu veranlassen alle 5 Sekunden einen refresh zu machen ? Als Beispiel, ich habe ein WMI Script, welches bestimmte sachen vom Server abfragt und in eine HTML oder XML Seite schreibt. Ist es nun sinnvol der HTML/XML Seite ein refresh auf zu zwingen oder kann ich im wmi selber bestimmen was er sich wie oft zu aktualisieren hat ? Zum Verständniss : Ich möchte eine kleine Monitoring Lösung basteln, wie z.b. Server ist Online / Offline Zitieren Link zu diesem Kommentar
ast 10 Geschrieben 18. April 2007 Melden Teilen Geschrieben 18. April 2007 Intervall alle 5 Sekunden: /EVERY:5 Wie oft stattfindend (Hier 10x): /REPEAT:10 wmic *wasauchimmer* /EVERY:5 /REPEAT:10 Ohne Angabe von /REPEAT steht ein eingestellter Intervall auf permanent. Müsste also händisch oder vom/im script extra irgendwann unterbrochen werden. Zitieren Link zu diesem Kommentar
knutschie1000 10 Geschrieben 18. April 2007 Autor Melden Teilen Geschrieben 18. April 2007 Mist jetzt habe ich den Mund zu voll genommen, habe nun gleich ein weiteres Problem : Habe Scriptomatik genommen unm mir die Beispielscripte an zu sehen, auch die ausgabe als HTML klappt soweit damit. Wie stelle ich es aber nun an das z.b. folgendes script in eine Website eingebunden wird ? ( gekürzt ) On Error Resume Next Const wbemFlagReturnImmediately = &h10 Const wbemFlagForwardOnly = &h20 arrComputers = Array("srv-dc-01") For Each strComputer In arrComputers WScript.Echo WScript.Echo "==========================================" WScript.Echo "Computer: " & strComputer WScript.Echo "==========================================" Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive", "WQL", _ wbemFlagReturnImmediately + wbemFlagForwardOnly) For Each objItem In colItems WScript.Echo "Availability: " & objItem.Availability WScript.Echo "BytesPerSector: " & objItem.BytesPerSector strCapabilities = Join(objItem.Capabilities, ",") WScript.Echo "Capabilities: " & strCapabilities strCapabilityDescriptions = Join(objItem.CapabilityDescriptions, ",") WScript.Echo "CapabilityDescriptions: " & strCapabilityDescriptions WScript.Echo "Caption: " & objItem.Caption WScript.Echo "CompressionMethod: " & objItem.CompressionMethod WScript.Echo "ConfigManagerErrorCode: " & objItem.ConfigManagerErrorCode WScript.Echo "ConfigManagerUserConfig: " & objItem.ConfigManagerUserConfig WScript.Echo "CreationClassName: " & objItem.CreationClassName WScript.Echo "DefaultBlockSize: " & objItem.DefaultBlockSize WScript.Echo "Description: " & objItem.Description WScript.Echo "DeviceID: " & objItem.DeviceID WScript.Echo "ErrorCleared: " & objItem.ErrorCleared WScript.Echo "ErrorDescription: " & objItem.ErrorDescription WScript.Echo "ErrorMethodology: " & objItem.ErrorMethodology WScript.Echo "Index: " & objItem.Index WScript.Echo "InstallDate: " & WMIDateStringToDate(objItem.InstallDate) WScript.Echo "InterfaceType: " & objItem.InterfaceType WScript.Echo "LastErrorCode: " & objItem.LastErrorCode WScript.Echo "Manufacturer: " & objItem.Manufacturer WScript.Echo "MaxBlockSize: " & objItem.MaxBlockSize WScript.Echo "MaxMediaSize: " & objItem.MaxMediaSize WScript.Echo "MediaLoaded: " & objItem.MediaLoaded WScript.Echo "MediaType: " & objItem.MediaType WScript.Echo "MinBlockSize: " & objItem.MinBlockSize WScript.Echo "Model: " & objItem.Model WScript.Echo "Name: " & objItem.Name WScript.Echo "NeedsCleaning: " & objItem.NeedsCleaning WScript.Echo "NumberOfMediaSupported: " & objItem.NumberOfMediaSupported WScript.Echo "Partitions: " & objItem.Partitions WScript.Echo "PNPDeviceID: " & objItem.PNPDeviceID strPowerManagementCapabilities = Join(objItem.PowerManagementCapabilities, ",") WScript.Echo "PowerManagementCapabilities: " & strPowerManagementCapabilities WScript.Echo "PowerManagementSupported: " & objItem.PowerManagementSupported WScript.Echo "SCSIBus: " & objItem.SCSIBus WScript.Echo "SCSILogicalUnit: " & objItem.SCSILogicalUnit WScript.Echo "SCSIPort: " & objItem.SCSIPort WScript.Echo "SCSITargetId: " & objItem.SCSITargetId WScript.Echo "SectorsPerTrack: " & objItem.SectorsPerTrack WScript.Echo Next Next Function WMIDateStringToDate(dtmDate) WScript.Echo dtm: WMIDateStringToDate = CDate(Mid(dtmDate, 5, 2) & "/" & _ Mid(dtmDate, 7, 2) & "/" & Left(dtmDate, 4) _ & " " & Mid (dtmDate, 9, 2) & ":" & Mid(dtmDate, 11, 2) & ":" & Mid(dtmDate,13, 2)) End Function Zitieren Link zu diesem Kommentar
woiza 10 Geschrieben 18. April 2007 Melden Teilen Geschrieben 18. April 2007 Da kann ich dir nur die gleiche Frage, wie im anderen Thread stellen. Welche Sprache willst du denn verwenden? Mit html kommst du bei deinem Vorhaben nicht weit. Zitieren Link zu diesem Kommentar
knutschie1000 10 Geschrieben 18. April 2007 Autor Melden Teilen Geschrieben 18. April 2007 Verwenden möchte ich VBScript oder JScript, ausgegeben werden soll es als XML oder ASP Zitieren Link zu diesem Kommentar
woiza 10 Geschrieben 18. April 2007 Melden Teilen Geschrieben 18. April 2007 Das alte ASP oder ASP.net? Bei ASP würdest du folgendes auf der Seite unterbringen: <script language="VBScript" runat="server"> [i]Das skript[/i] </script> Du müsstest dann noch alle WScript.Echo durch Response.write("Ausgabe") ersetzen. Du kannst mit den Response.Write auch z.B. eine Tabelle erzeugen, du müsstest dann eben die HTML-Steuerbefehle mit ausgeben, also Response.write("<Table><TR><TD>Erste Spalte</TD><TD>Zweite Spalte...") So kannst du dir die ganze Seite zusammenpfriemeln. Eleganter ist es, wenn du die HTML-Seite im Editor entwirfst und an den Stellen, an denen dynamische Inhalte auftauchen sollen, z.B. SPAN-Elemente definierst. <span id=WMI_Tabelle></span> Dieses Span-Tag kannst du dann aus deinem Skript dynamisch befüllen: WMI_Tabelle.InnerHTML = "<Table><TR><TD>Erste Spalte</TD><TD>Zweite Spalte..." Am besten übergibst du an das Span nur eine Textvariable, die du vorher zusammenbaust, also etwa: Dim myTable mytable = "<Table><TR><TD>" myTable= MyTable &"Availability: " & "</TD>" myTable= MyTable & "<TD>" & objItem.Availability &</TD></TR> ... WMI_Tabelle.InnerHTML = myTable Ich denke, das Prinzip ist klar, falls noch fragen sind, her damit... Gruß woiza Edit: Ganz vergessen: Hier gibts Tipps zu der Geschichte. Die Beispiele sind zwar primär für HTA gedacht, das Grundprinzip ist aber das Gleiche. Zitieren Link zu diesem Kommentar
knutschie1000 10 Geschrieben 19. April 2007 Autor Melden Teilen Geschrieben 19. April 2007 So ich hoffe du kannst mir nochmal helfen, ich habe mein Script einfach mal ebgespeckt um zu sehen wo es hängt, solgendes steht in der asp seite: <script language="VBScript" runat="server"> On Error Resume Next Const wbemFlagReturnImmediately = &h10 Const wbemFlagForwardOnly = &h20 arrComputers = Array("localhost","srv-dc-01") For Each strComputer In arrComputers Response.write Response.write "==========================================" Response.write "Computer: " & strComputer Response.write "==========================================" Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LocalTime", "WQL", _ wbemFlagReturnImmediately + wbemFlagForwardOnly) For Each objItem In colItems Response.write Response.write "Day: " & objItem.Day Response.write Next Next </script> Wenn ich nun die seite ausführe kommt folgendes : ==========================================Computer: localhost====================================================================================Computer: srv-dc-01========================================== Soweit schon mal gut, aber mir fehlt die ausgabe vom Tag : For Each objItem In colItems Response.write Response.write "Day: " & objItem.Day Response.write Was mache ich falsch ? Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.