Monthly Archives: April 2010

Congstar-Box freetzen…

Abend Kinders 😉

Mal wieder was ein bisschen schreiben, auch als kleine GedĂ€chtnisstĂŒtze, da mir das ganze Prozedere ein weiteres Mal bevorsteht.
Heute möchte ich euch kurz zeigen, wie man seine Congstar-Box (oder baugleiche GerĂ€te, es steckt in Wirklichkeit ein Speedport W701V bzw. FritzBox 7170 drin) ‚freetzt‘. Dies bedeutet, die alte Firmware kommt runter, statt dessen wird die von AVM aufgespielt, inkl. dessen Web-Interface und Einstellmöglichkeiten.

Nicht lang labern, einfach mal zeigen 😉

Die Anleitung im Forum von IP-Phone ist schon sehr detailliert, dennoch will ich hier kurz meine Herangehensweise erlÀutern.

Da ich nicht sofort meine Hauptbox flashen und so einen Wegfall unseres Internetzugangs riskieren wollte, musste ich zunĂ€chst etwas warten, bis die ersteigerte „Ersatzbox“ den Weg zu mir nach Hause findet. Noch am selben Abend setzte ich mich dann daran, und bereitete zunĂ€chst alles vor.

Benötigt wurden ein aktuelles Linux-System (ich benutzte Ubuntu 9.10), am einfachsten erstmal in einer VM installiert. Die VM habe ich so konfiguriert, dass ich zwei Netzwerkverbindungen zur VerfĂŒgung stehen hatte: eth1 direkt an mein Kabel-LAN, an dem auch die Flash-Box hĂ€ngt, eth0 dagegen NAT ohne zusĂ€tzliches Port-Forwarding, um meine Hauptbox erstmal nicht zu gefĂ€hrden. Schnell Ubuntu installiert und mittels „sudo apt-get update && sudo apt-get upgrade“ auf den aktuellen Stand gebracht.

Nachdem dies geschehen war, lud ich mir hier das aktuelle Speed-to-Fritz-Script herunter. Entpackt auf dem Desktop, öffnete ich ein Terminal, wechselte mittels ‚cd Desktop/‘ in den entsprechenden Ordner, und fĂŒhrte per ‚./download_speed-to-fritz.sh‘ das Script das erste Mal aus. Es begann, ein paar benötigte Paktete zu installieren (z.B. SubVersion), kurz darauf sah ich auch schon die KonfigurationsoberflĂ€che des Flash-Tools.

Hier wĂ€hlte ich zunĂ€chst nur unter „Hardware Type“ den „Speedport W701V“  aus. Alle weiteren Pakete interessierten mich zu diesem Zeitpunkt noch nicht, erstmal wollte ich schauen, was schon ohne Erweiterungen nur mit der AVM-Firmware möglich ist.

Hat man den entsprechenden „Hardware Type“  gesetzt, kann man die Konfiguration auch schon mittels „Exit“ verlassen. Die folgende Abfrage mit ‚Yes‘ bestĂ€tigt, beginnt das Script, die aktuelle AVM-Firmware herunterzuladen und entsprechend ein bisschen umzubasteln. Nach zwei BestĂ€tigungen und einem Neustart der Box (sollte automatisch geschehen) wird die Firmware auf die Box geladen.

Sobald dies geschehen ist, folgt eine Meldung „You should now reboot your box. Waiting for box to shut down for restart…“. Schön und gut, ob die Box bei mir nun einen automatischen Reboot hingelegt hat kann ich nicht mehr sagen, hab ich leider nicht mitbekommen. Jedenfalls fand das Script weder nach dem evtl. eingetretenen automatischen noch nach manuellen Reboots die Box wieder. Auch ein neuer DHCP-Request wegen des neuen IP-Adress-Bereichs brachte nichts, so dass ich das Script hier zunĂ€chst abbrach. Laut Anleitung sollten noch ein paar Umgebungsvariablen gesetzt werden, jedoch lĂ€uft meine Box auch so scheinbar ohne Probleme, deswegen mache ich mir da keine großen Sorgen drum.

Doch was bringt nun das Ganze?  Ein paar Sachen, die mir bei der AVM-Firmware aufgefallen sind, die (meiner Erinnerung nach) bei der Congstar-Firmware nicht vorhanden / möglich waren:

  • mehr Informationen ĂŒber den DSL-Anschluss
  • Telefonbuch
  • Weckruf
  • Rufumleitung
  • WDS mit WPA2
  • Subnetmask <> 255.255.255.xxx
  • statische Routen

Wichtig ist mir vor allem der Punkt -WDS mit WPA2-, da ich die Ersatzbox gerne zunĂ€chst als Repeater einsetzen wollte und WEP nicht „mehr“ wirklich zeitgemĂ€ĂŸ ist.

Sicher habe ich noch einiges ĂŒbersehen, werde demnĂ€chst mal beide Web-Interfaces direkt vergleichen. Muss ich dann aber machen, bevor ich die Hauptbox flashe 😉

Auf alsbald

prunkster

eventcreatef.exe – Eine ErgĂ€nzung zu eventcreate.exe…

Seit lĂ€ngerer Zeit mal wieder was zu bloggen, Projektarbeit und Abschlussvorbereitungen nahmen doch einen Großteil meiner Zeit ein. Nebenbei wollten daheim ein paar Zimmer neu eingerichtet werden, so dass Freizeit fast zu einem Luxusgut wurde.

Umso mehr freut es mich, euch heute wieder ein kleines Tool vorstellen zu können: eventcreatef.

ZunÀchst aber ein bisschen zur Vorgeschichte: Zum Sichern unserer wichtigen Daten auf unseren Maschinen benutzen wir ein eigenes Batchscript, das NTBackup antriggert und uns wöchentlich ein Full- sowie tÀglich ein Incremental-Backup erstellt. Diese werden xx Tage vorgehalten und danach verworfen.

Im Falle eines Fehlerfalles erfahren wir jedoch darĂŒber nicht viel, dass das Backup nicht durchgelaufen ist, da die Logs etwas versteckt unter „%USERPROFILE%Lokale EinstellungenAnwendungsdatenMicrosoftWindows NTNTBackupdata“ des angemeldeten Benutzers liegen und diese nicht unbedingt nach Erstellungsdatum durchnummeriert angelegt werden. Dies ist jedoch das kleinere Problem, vielmehr machten wir uns Gedanken, wo wir diese Logs einbinden können, damit sie zentral ĂŒberwacht werden können.

Bei einer Raucherpause meinte Schakko dann, es wĂ€re ganz angenehm, wenn die Logs in der Ereignisanzeige unseres Servers in einem neuen Protokoll angezeigt wĂŒrden. Da dieser beim tĂ€glichen Routinecheck als erstes geprĂŒft wird, werden die Fehler schnell gefunden. Eine kurze Recherche ergab, dass es hierfĂŒr von Microsoft ein Tool namens „eventcreate.exe“ gibt, das auf nahezu allen Windows-Systemen bereits vorhanden ist. Hier der Link zum TechNet-Artikel zu eventcreate.exe.

Relativ schnell zu einem Ergebnis gekommen, eigene Ereignisse zu loggen, machte ich mich nun daran, den Inhalt von Textfiles als Beschreibung fĂŒr das Event zu benutzen. Gar nicht so einfach, da eventcreate.exe fĂŒr den Zeilenumbruch ein einfaches carriage return verlangt, die uns verfĂŒgbaren Möglichkeiten jedoch von cmd.exe als normaler String interpretiert werden. Etwas blöde…

Aus diesem Grunde ist dann auch eventcreatef.exe entstanden, da es genau hiermit aufrĂ€umt: es nimmt als Parameter alle in eventcreate.exe verfĂŒgbaren Parameter entgegen (und reicht diese einfach weiter, daher kommt es bei fehlerhaften Parametern auch zu einer Fehlermeldung von eventcreate.exe selbst), zusĂ€tzlich noch den Parameter „-f:“ in folgendem Format:


eventcreatef.exe -f:c:log.txt

Hiermit wird die Datei „c:log.txt“ geparst, der Inhalt aufbereitet und anschließend als Beschreibung an eventcreate.exe weitergegeben. eventcreatef.exe wurde so entwickelt, dass man den Parameter „-f:“ mehrmals angeben kann und die Dateien in der entsprechenden Reihenfolge ĂŒbergeben werden.

FĂŒr die Hilfe von eventcreatef.exe ruft ihr das Programm ohne Parameter auf. Falls ihr die Hilfe zu eventcreate.exe braucht, könnt ihr diese oder alternativ wieder eventcreatef.exe mit dem Parameter „-h“ aufrufen.

Ein kleines Beispiel eines Aufrufs, um eine Datei in die Ereignisanzeige eines anderen Rechners (%TARGETPC%) zu loggen (%SOURCE% ist die Quelle, die in der Ereignisanzeige verzeichnet wird):


eventcreatef.exe -t information -s %TARGETPC% -id 1000 -so %SOURCE% -f:c:log.txt

Genug geschrieben, hier soll nun die Source von eventcreatef.exe folgen. Es handelt sich dabei um ein kleines AutoIt-Script, das zu einer .exe kompiliert wurde. Wichtig hierbei ist nur, dass es sich um eine Konsolenanwendung handelt und dementsprechend als solche kompiliert werden muss.

#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.6.0
 Author:         Florian Weinert

 Script Function:
	Parsing textfile(s) for eventcreate.exe.

#ce ----------------------------------------------------------------------------

#include <Constants.au3>
#include <Array.au3>

#RequireAdmin

If @Compiled = 0 Then
	ConsoleWrite("This script needs to be compiled in order to run...")
	Sleep(3000)
EndIf
If $CmdLine[0] = 0 Then
	ConsoleWrite(@CRLF & @ScriptName & " Usage:" & @CRLF & @ScriptName & " -f:<FILENAME>" & @CRLF & @CRLF)
	ConsoleWrite("Example: " & @ScriptName & " -f:c:backup.log" & @CRLF & @CRLF & @CRLF)
	ConsoleWrite("This is some addition to eventcreate.exe by Microsoft Windows." & @CRLF)
	ConsoleWrite("It parses textfile(s) in order to use them as description for an event message." & @CRLF & @CRLF)
	ConsoleWrite("(C)opyright by Florian Weinert" & @CRLF)
	Sleep(10000)
	Exit
EndIf
Local $params = $CmdLineRaw
If StringInStr($params, "-f:") > 0  And StringInStr($params,"-d ") > 0 Then
	ConsoleWrite("Please use either filename(s) or description for event message..." )
	Sleep(3000)
	Exit
EndIf
Local $command = "eventcreate "
Local $content = ""
Local $encapsulate = ""
If StringInStr($params, "-f:") > 0 Then
	For $i = 1 to $CmdLine[0] Step 1
		$filename = $CmdLine[$i]
		If StringInStr($filename, "-f:") > 0 Then
			$filename = StringReplace($filename, "-f:", "")
			$params = StringReplace($params, "-f:" & $filename, "")
			$params = StringReplace($params, "-f:" & Chr(34) & $filename & Chr(34), "")
			If Not FileExists($filename) Then
				ConsoleWrite($filename & " does not exist...")
				Sleep(3000)
				Exit
			EndIf
			$file = FileOpen($filename, 0)
			If $file = -1 Then
				ConsoleWrite("Unable to open file " & $filename)
				Sleep(3000)
				Exit
			EndIf
			While True
				$line = FileReadLine($file)
				If @error = -1 Then ExitLoop
				$line = StringReplace($line, Chr(34), Chr(39))
				$content = $content & $line & @CR
			WEnd
			$content = $content & @CR
			FileClose($file)
		EndIf
	Next
	$content = $content & @CR
	$params = StringStripWS($params, 7)
	$command = $command & $params & " /d "
	$encapsulate = Chr(34)
Else
	$command = $command & $params
EndIf
Local $process = Run($command & $encapsulate & $content & $encapsulate, @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Local $line
While True
	$line = StdoutRead($process)
	if @error Then ExitLoop
	ConsoleWrite($line)
WEnd
While True
	$line = StderrRead($process)
	If @error Then ExitLoop
	ConsoleWrite($line)
WEnd

Hier ein Package mit allen notwendigen Dateien: Die Source eventcreatef.au3, die kompilierte eventcreatef.exe, sowie eventcreatef.cmd, Test1.txt und Test2.txt zum Ausprobieren.

Werde hier demnÀchst noch ein bisschen erweitern und ein kleines Tool einstellen, womit man eigene Protokolle in der Ereignisanzeige erstellen kann und ein Howto, wie man die entsprechenden Quellen den Protokollen zuweist.

So, ein bisschen Freizeit, daher hier mein Package zur Erstellung eigener Protokolle in der Ereignisanzeige und der Zuweisung der Quellen zu den Protokollen (Source & Binary). Sollte soweit selbsterklÀrend sein, EventLog entspricht dem spÀteren Namen des Protokolls in der Ereignisanzeige, EventSource der Quelle. Unter UmstÀnden ist ein Neustart der Maschine notwendig, sollte die Zuweisung der EventSourcen nicht zur Laufzeit von Windows klappen.