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!

Recommended Posts

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 to post

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.

Link to post

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 to post

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 to post

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 to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...