2009-03-29 9 views
0

ich ein Stück Code aus einem kürzlich pensionierten Kollegen geerbt, die auf einem Feld den gesamten physischen Speicher erhalten und, wenn ich folgende auf Windows XP und Server 2003, es funktioniert gut durchführen:Hanging VBScript auf Abfrage

memSize = 0 
set colItems = wmi.execQuery("select * from Win32_LogicalMemoryConfiguration") 
for objItem in colItems 
    memSize = memSize + objItem.TotalPhysicalMemory 
next 

Unter Windows Server 2008 scheint es jedoch in der for-Anweisung zu hängen (basierend auf umfangreichen Debugging-Anweisungen nach jeder Zeile, die im Beispiel nicht gezeigt werden).

Irgendwelche Ideen warum?

+0

Übrigens können Sie VBScript in einem Debugger ausführen, wenn Sie // d // x in der Befehlszeile übergeben. – Tmdean

Antwort

2

Die Klassewurde eingestellt. Versuchen Sie stattdessen die Win32_OperatingSystem Klasse. Es sollte die richtigen Ergebnisse auf Server 2008 geben.

Ich glaube, die Eigenschaft, die Sie interessiert, ist TotalVisibleMemorySize.

+0

Warum TotalVisibleMemorySize? Ich versuche, den tatsächlichen physischen RAM herauszufinden - das scheint nur den RAM für Windows verfügbar zu machen. +1 für die Abwertung, obwohl. Dank dafür. – paxdiablo

+0

@Angry, ich fand schließlich den richtigen Wert (vor einiger Zeit brauchte ich etwas Zeit, um auf diese Frage zurückzukommen) und, da es Ihr Kommentar war, der mich ablehnte, führte er mich dazu (nun, das und die Tatsache, dass jemand anderes hat sich die Mühe gemacht zu antworten, ich werde diese Antwort akzeptieren :-). Vielen Dank. – paxdiablo