nachdem ich hier schon einige Zeit mitlese und auch die verschiedenen Möglichkeiten kennengelernt habe, der aktuellen LightsOut-Version ein anderes Verhalten beizubringen möchte ich hier meinen Senf dazugeben.
Vielleicht als Einstieg meine Hardware-Konstellation: ich verwende einen WDTV HD MediaPlayer mit geänderter Firmware und Netzwerkkarte, um Filme vom WHS abzuspielen. Da die kleine Box aber ständig on ist (auch im Standby) und somit immer pingbar ist lassen sich die diversen Skripts zum Wachhalten des WHS nicht nutzen. Da ich aber den Server nicht permanent laufen haben möchte war die Situation immer unbefriedigend: entweder einen Windows Client einschalten um den Server wachzuhalten oder LightsOut deaktivieren und den Server manuell abdrehen oder nach 15 Minuten Film fluchen und zum Server stapfen.
Nunja, und dann überkam mich der Rappel und ich habe aus diversen Infos hier im Forum (u.a. Registry von LightsOut) eine für mich passende Lösung konstruiert: NetworkWatcherForLightsOut:
Es handelt sich dabei um einen Windows-Dienst, der den Netzwerktraffic überwachen kann. Überschreitet der Traffic einen einstellbaren Grenzwert für eine bestimmte Zeit nicht, so wird LightsOut via Registry mitgeteilt, was es zu tun hat. Im Grunde sollte das ganze auch dann funktionieren, wenn am Server Downloads, usw. laufen, da sowohl eingehender als auch ausgehender Traffic betrachtet wird (bei Verwendung des richtigen PerformanceCounters).
Den Dienst findet ihr anbei - für jene, die ihn probieren möchten. Der Source-Code steht, falls gewünscht, auch zur Verfügung. Ist in .NET geschrieben (VS 2010 Beta 2), nix kommentiert und benötigt .NET Framework 2.
Das File einfach in ein Verzeichnis kopieren (am besten
Code: Alles auswählen
c:\program files\NetWorkWatcherForLightsOut
Code: Alles auswählen
installutil networkwatcherforlightsout.exe
Konfiguriert wird er in der Datei networkwatcherforlightsout.config - ist eine XML-Datei:
Code: Alles auswählen
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="NetworkWatcherForLightsOut.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<NetworkWatcherForLightsOut.Properties.Settings>
<setting name="[b]ThresholdValue[/b]" serializeAs="String">
<value>8000</value>
</setting>
<setting name="[b]WaitTime[/b]" serializeAs="String">
<value>1000</value>
</setting>
<setting name="[b]NetworkCard[/b]" serializeAs="String">
<value>Intel[R] PRO_100 VE Network Connection</value>
</setting>
<setting name="[b]LightsOutAction[/b]" serializeAs="String">
<value>1</value>
</setting>
<setting name="[b]Category[/b]" serializeAs="String">
<value>Netzwerkschnittstelle</value>
</setting>
<setting name="[b]Counter[/b]" serializeAs="String">
<value>Gesamtanzahl Bytes/s</value>
</setting>
<setting name="[b]ThresholdTimeSpan[/b]" serializeAs="String">
<value>00:15:00</value>
</setting>
</NetworkWatcherForLightsOut.Properties.Settings>
</applicationSettings>
</configuration>
- ThresholdTimeSpan: Zeitspanne, in der der Grenzwert nicht überschritten werden darf. Nach verstreichen dieser Zeitspanne wird die
- LightsOutAction bei LightsOut in der Registry eingetragen.
- Counter: Performance Counter, der verwendet wird. Im obigen Beispiel ersichtlich: mein WHS ist deutsch. Am einfachsten könnt ihr diesen Namen sowie den Namen der Category mittels permon.msc (Start | Ausführen) ermitteln.
- Category: Performance-Counter-Kategorie. Beim englischen WHS heisst er glaube ich "Network Interface"
- LightsOutAction: 0 ... keine Aktion, 2 ... Standby, usw. die restlichen Werte habe mal hier im Forum gefunden, hab' sie mir aber nicht gemerkt
- NetworkCard: Name der Netzwerkkarte, um zu ermitteln siehe perfmon.msc
- WaitTime: Polling-Interval in Millisekunden, in dem der Performance-Counter abgefragt wird.
- ThresholdValue: Grenzwert (sollte KB/s sein), welcher nicht überschritten werden soll. Hier bitte experimentieren - habe mich mangels Zeit mit dem Wert bzw. dessen Einheit nicht genauer befasst.
Und übrigens: das ist keine Konkurrenz zu LightsOut, denn das ist wirklich genial! Es ist nur eine kleine Erweiterung, die sich bei mir bewährt hat!
lg
muehlberger