C
Etwas verspätet kommt ein Lösungsansatz, der noch zu Ende geschrieben werden muss.
Die drei Lastindikatoren habe ich über .vbs aus den Performancecountern gewonnen:
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
set objRefresher = CreateObject("WbemScripting.Swbemrefresher")
Set objNetwork = objRefresher.AddEnum (objWMIService, "Win32_PerfFormattedData_Tcpip_NetworkInterface").objectSet
Set objProcessor = objRefresher.AddEnum (objWMIService, "Win32_PerfFormattedData_PerfOS_Processor").objectSet
Set colDiskDrives = objRefresher.AddEnum (objWMIService, "Win32_PerfFormattedData_PerfDisk_LogicalDisk").objectSet
objRefresher.Refresh
For I = 1 to 100000
For each item in objNetwork
Wscript.Echo "NetworkBytesTotalPersec: " & item.BytesTotalPersec
Next
For each item in objProcessor
Wscript.Echo "ProcessorUse in %: " & item.PercentProcessorTime
Next
For Each item in colDiskDrives
Wscript.Echo "Drive name: " & item.Name
Wscript.Echo "Disk bytes per second: " & item.DiskBytesPerSec
objRefresher.Refresh
Next
Wscript.Sleep 1000
objRefresher.Refresh
Next
Die Seite die mir hierbei geholfen hat ist: http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts/monitoring/performance/#MonitorProcessorUse.htm
Jetzt gilt es noch, eine sinnvolle Sleepmode-policy aus den drei Lastwerten zu schustern und bei entsprechender Grenzwertüberschreitung in den Sleepmode zu schalten.
Über den Taskplaner von Windows kann dann ein .bat mit diesem Skript zu gegebenen Zeiten ausgeführt werden.
Gibts da Optimierungsmöglichkeiten?
Schöne Grüße