Jump to content

WMI mein erstes mal !


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

Empfohlene Beiträge

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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.

Link zu diesem Kommentar

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 ?

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...