Speicherplatz von Server ermitteln

aspnewbie

Grünschnabel
Hallo,

ich habe ein kleines script das mir anzeigt wieviel festplattenplatz mein Webserver hat.
( TotalSize, AvailableSize )
Das funktioniert prima auf dem webserver auf dem das script ausgeführt wird ( IIS 5 installiert )
jetzt gibt es aber noch 25 weitere server die ich mit diesem script auch abfragen möchte, weiß aber nicht genau wie. :rolleyes:
wenn jemand von euch compaq server hat, kennt er bestimmt die management agents, dort findet man auch die auslastung der festplatten.
ich möchte aber nicht 25 IE's öffnen um zu sehen wo wieviel belegt und frei ist, ich möchte das mit einer asp oder asp.net seite anzeigen lassen.
ich weiß nicht ob sich das komplett mit asp/asp.net erzielen lässt, wahrscheinlich muß da noch WMI mitrein, aber mit WMI hab ich garkeine erfahrung.
habt ihr vielleicht ne idee ?

danke
 
hi,

das ist eine gute idee mit den scripts auf den servern.
ich werde das morgen mal testen.

danke

ps.: Schnee-Henry ? den kenn ich doch aus nem film, oder nicht ?
fear and lothing in las vegas, oder ?
 
Bitte, gerne. =)

Ja, ist aus Fear and Loathing in Las Vegas, am Anfang wie sie gerade unterwegs nach Las Vegas sind, und den Anhalter mitnehmen.

Mfg,
crazy-weasel
 
Neuigkeiten

hi weasel,

ich hab mich mal übers WE hingesetzt und ein Script geschrieben,
das Script ist im *.wsf Format ( WMI ) :


<job id='JOB_laufwerk_remote'>

<script id='script' language='VBScript'>

Option Explicit

laufwerk_remote

Sub laufwerk_remote()

Dim objOSet
Dim objServ, objServ1, objServ2, objServ3, objServ4, objServ5
Dim objWO
Dim fs, temp, file

Set objServ = GetObject("winmgmts://server1")
Set objServ1 = GetObject("winmgmts://server2")
Set objServ2 = GetObject("winmgmts://server3")
Set objServ3 = GetObject("winmgmts://server4")
Set objServ4 = GetObject("winmgmts://server5")
Set objServ5 = GetObject("winmgmts://server6")


Set fs = CreateObject("Scripting.FileSystemObject")
set temp = fs.GetSpecialFolder(2)
Set file = temp.CreateTextFile("laufwerke.htm", True)
file.WriteLine "<html><title>Laufwerke</title><style type=text/css>td { font-size:10pt; color:#990000; } th { font-size:12pt; color:#00eeee; background-color=#990000 }</style><body bgcolor=#bbbbbb><font color=990000 face=Verdana><center><h2>Laufwerke</h2></center>"



Const MBFaktor = 1048576 ' 1024 * 1024




Set objOSet = objServ.InstancesOf("Win32_logicaldisk")

file.WriteLine "<table cellspacing=1 cellpadding=1 border=1 bordercolor=#990000 width=100%><th fontsize=20>SERVER1</th><th>SERVER2</th><th>SERVER3</th><tr><td valign=top>"


file.WriteLine "<table cellspacing=1 cellpadding=1 width=100%><tr></tr>"
For Each objWO In objOSet
file.WriteLine "<td bgcolor=#cccccc>" & objWO.Name & "</td><td bgcolor=#cccccc> " & objWO.Description & "</td><td align=right bgcolor=#cccccc> (" & Int(objWO.FreeSpace / MBFaktor) & " MB frei)" & "</td><tr>"
Next

file.WriteLine "<tr></tr></table></td><td valign=top>"




Set objOSet = objServ1.InstancesOf("Win32_logicaldisk")

file.WriteLine "<table cellspacing=1 cellpadding=1 width=100%><tr></tr>"
For Each objWO In objOSet
file.WriteLine "<td bgcolor=#cccccc>" & objWO.Name & " </td><td bgcolor=#cccccc> " & objWO.Description & "</td><td align=right bgcolor=#cccccc> (" & Int(objWO.FreeSpace / MBFaktor) & " MB frei)" & "</td><tr>"
Next

file.WriteLine "<tr></tr></table></td><td valign=top>"




Set objOset = objServ2.InstancesOf("Win32_logicaldisk")
file.WriteLine "<table cellspacing=1 cellpadding=1 width=100%><tr></tr>"
For Each objWO In objOSet
file.WriteLine "<td bgcolor=#cccccc>" & objWO.Name & " </td><td bgcolor=#cccccc> " & objWO.Description & "</td><td align=right bgcolor=#cccccc> (" & Int(objWO.FreeSpace / MBFaktor) & " MB frei)" & "</td><tr>"
Next

file.WriteLine "</tr></td></table></table><br>"





Set objOSet = objServ3.InstancesOf("Win32_logicaldisk")

file.WriteLine "<table cellspacing=1 cellpadding=1 border=1 bordercolor=#990000 width=100%><th fontsize=20>SERVER4</th><th>SERVER5</th><th>SERVER6</th><tr><td valign=top>"


file.WriteLine "<table cellspacing=1 cellpadding=1 width=100%><tr></tr>"
For Each objWO In objOSet
file.WriteLine "<td bgcolor=#cccccc>" & objWO.Name & " </td><td bgcolor=#cccccc> " & objWO.Description & "</td><td align=right bgcolor=#cccccc> (" & Int(objWO.FreeSpace / MBFaktor) & " MB frei)" & "</td><tr>"
Next

file.WriteLine "<tr></tr></table></td><td valign=top>"




Set objOSet = objServ4.InstancesOf("Win32_logicaldisk")

file.WriteLine "<table cellspacing=1 cellpadding=1 width=100%><tr></tr>"
For Each objWO In objOSet
file.WriteLine "<td bgcolor=#cccccc>" & objWO.Name & " </td><td bgcolor=#cccccc> " & objWO.Description & "</td><td align=right bgcolor=#cccccc> (" & Int(objWO.FreeSpace / MBFaktor) & " MB frei)" & "</td><tr>"
Next

file.WriteLine "<tr></tr></table></td><td valign=top>"




Set objOset = objServ5.InstancesOf("Win32_logicaldisk")
file.WriteLine "<table cellspacing=1 cellpadding=1 width=100%><tr></tr>"
For Each objWO In objOSet
file.WriteLine "<td bgcolor=#cccccc>" & objWO.Name & " </td><td bgcolor=#cccccc> " & objWO.Description & "</td><td align=right bgcolor=#cccccc> (" & Int(objWO.FreeSpace / MBFaktor) & " MB frei)" & "</td><tr>"
Next

file.WriteLine "</tr></td></table></table></body></html>"


End Sub

</script>
</job>

Hoffe man kann es lesen.
Mit diesem Script kann ich
1. Laufwerksnamen ( A:, C: usw ) auslesen
2. Beschreibung ( CD-Rom, Local disk usw )
3. den Freien Speicher auslesen
und dieses Script starte ich auf meinem lokalen PC und erzeugt automatisch eine "laufwerk.htm" Datei im Tempverzeichnis.

Sieht ganz hübsch aus, so in der Tabelle aufgelistet :)

Jetzt habe ich aber noch eine Frage : Kann ich dieses Script von einer ASP Seite starten und das Ergebniss in einem neuen Fenster anzeigen lassen ? (Natürlich mit nem Redirect der mindesten 20-30 sekunden dauert da ich über 25 Server anzeigen lassen möchte...)

Danke im Voraus

ps.: hier noch das Stückchen wenn man auch die Gesamtgröße der Festplatte angezeigt bekommen möchte : Int(objWO.Size / MBFaktor)
 
Zurück