smarti
Goto Top

VBS zur Abfrage des Virtuellen und Physikalischen Arbeitsspeichers

Microsoft Small Business Server 2008
Windows Vista 32 Bit
Windows 7 64 Bit
MRTG, ActivePerl, VB-Scripte

Ich habe auf dem SBS08 und der Testumgebung Vista erfolgreich MRTG und ActivePerl eingerichtet. Dort über VBS und mrtg.cfg's lass ich aktuell die CPU-Auslastung und den HDD-Speicher diverser Festplatten und Partitionen abfragen. Funktioniert soweit einwandfrei. Jetzt wollte ich noch die aktuelle Auslastung des Virtuellen und Physikalischen Arbeitsspeichers abfragen, was nicht funktioniert:

Beim Aufrufen kommt ein Fehler:
(20 , 1) (null): 0x80041010


' Run this script at the command prompt by typing  
'     cscript usedMem.vbs  

set oSvc = GetObject("winmgmts:root\cimv2")  

wqlQuery = "select FreeVirtualMemory,FreePhysicalMemory from Win32_OperatingSystem"  

for each oData in oSvc.ExecQuery(wqlQuery)
	for each oProperty in oData.Properties_
		if oProperty.Name = "FreeVirtualMemory" then  
			freeVirtual = oProperty.Value
		elseif oProperty.Name = "FreePhysicalMemory" then  
			freePhysical = oProperty.Value
		end if
	next
next

wqlQuery = "select TotalVirtualMemory,TotalPhysicalMemory from Win32_LogicalMemoryConfiguration"  

for each oData in oSvc.ExecQuery(wqlQuery)
	for each oProperty in oData.Properties_
		if oProperty.Name = "TotalVirtualMemory" then  
			totalVirtual = oProperty.Value
		elseif oProperty.Name = "TotalPhysicalMemory" then  
			totalPhysical = oProperty.Value
		end if
	next
next

percentVirtualUsed = 100 - (100 * (freeVirtual / totalVirtual))
percentPhysicalUsed = 100 - (100 * (freePhysical / totalPhysical))

wscript.echo percentVirtualUsed
wscript.echo percentPhysicalUsed

wscript.echo Date() & " " & Time()  

wscript.echo "Percent Used Virutal Memory"  
wscript.echo "Percent Used Physical Memory"  


Weiß jemand woran das liegen könnte oder hat jemand schon ein fertiges VB-Script was dieses richtig abfragt

Danke im Voraus

Content-Key: 172344

Url: https://administrator.de/contentid/172344

Printed on: April 18, 2024 at 21:04 o'clock

Member: AndreasHoster
AndreasHoster Aug 31, 2011 at 08:42:09 (UTC)
Goto Top
Auf meinem XP 32bit tut Dein Skript ohne Fehler.
Tuts auf allen 3 oben genannten Systemen nicht? Oder tuts nur auf den 64bit Systemen nicht?
Member: SMARTi
SMARTi Aug 31, 2011 at 08:45:09 (UTC)
Goto Top
Es funktioniert auf allen oben genannten Systemen nicht:

Zeile: 20
Zeichen: 1
Fehler: 0x80041010
Code: 80041010
Quelle: (null)

Das wichtigste wär der SBS (sowie die Testumgebung)
Member: SMARTi
SMARTi Aug 31, 2011 at 10:20:36 (UTC)
Goto Top
Das VBS funktioniert jetzt (getestet auf Vista 32 Bit):


' Run this script at the command prompt by typing
' cscript usedMem.vbs

set oSvc = GetObject("winmgmts:root\cimv2")

wqlQuery = "select FreeVirtualMemory,FreePhysicalMemory from Win32_OperatingSystem"

for each oData in oSvc.ExecQuery(wqlQuery)
for each oProperty in oData.Properties_
if oProperty.Name = "FreeVirtualMemory" then
freeVirtual = oProperty.Value
elseif oProperty.Name = "FreePhysicalMemory" then
freePhysical = oProperty.Value
end if
next
next

wqlQuery = "select TotalVirtualMemory TotalVirtualMemorySize, TotalPhysicalMemory TotalVisibleMemorySize from Win32_LogicalMemoryConfiguration Win32_OperatingSystem"

for each oData in oSvc.ExecQuery(wqlQuery)
for each oProperty in oData.Properties_
if oProperty.Name = " TotalVirtualMemory TotalVirtualMemorySize" then
totalVirtual = oProperty.Value
elseif oProperty.Name = " TotalPhysicalMemory TotalVisibleMemorySize" then
totalPhysical = oProperty.Value
end if
next
next

percentVirtualUsed = 100 - (100 * (freeVirtual / totalVirtual))
percentPhysicalUsed = 100 - (100 * (freePhysical / totalPhysical))

wscript.echo percentVirtualUsed
wscript.echo percentPhysicalUsed

wscript.echo Date() & " " & Time()

wscript.echo "Percent Used Virutal Memory"
wscript.echo "Percent Used Physical Memory"