Welcome to WordPress. This is your first post. Edit or delete it, then start writing!
Blog
-
Exchange POP3 Connector mit ungültigem Return-Path
Heute hatte ich das Problem das der POP3 Connector Fehlermeldungen anzeigte weil eine ungültige E-Mail im Postfach lag.
Die Mail kam vom Postfix Server und hatte einen ungültigen Return-Path im Header.
Mit follgendem Befehl auf der Exchange-Verwaltungskonsole konnte das Problem behoben werden:
Set-ReceiveConnector -Identity ($Env:computername + „\Windows SBS Fax Sharepoint Receive “ + $Env:computername) -DefaultDomain $Env:UserDNSDomain
Gruss Marco
-
UltraVNC Standartmonitor festlegen
Beim Start von UltraVNC wird standartmässig der erste Monitor gezeigt.
Falls man nun möchte das der zweite Monitor standartmässig angezeigt wird oder das beide Monitor sofort angezeigt werden kann dies in der UltraVNC.ini einstellen:
Sobald der Server das erstemal gestartet wurde wir im Ornder von UltraVNC (Standart: C:\Programme\UltraVNC) die Datei UltraVNC.ini angelegt.
Mit den Parametern
primary=1 und secondary=0wird der Standartmonitor festgelegt.
Monitor 1: primary=1 und secondary=0
Monitor 2: primary=0 und secondary=1
Beide: primary=1 und secondary=1Gruss Marco
-
SQL Server führende Nullen entfernen
Mit diesem kleinen Statement kann man führende Nullen in einem Textfeld entfernen.
UPDATE [dbo]. [Customers]
SET [CustomerKey] = REPLACE(LTRIM(REPLACE([CustomerKey], ‚0‘, ‚ ‚)), ‚ ‚, ‚0‘)Grundsätzlich führt in drei Schritten:
Die 0 werden erst mit einem Leerzeichen ersetzt.
Danach werden mit LTrim die vorderen Leerzeichen entfernt.
Jetzt werden alle Leerzeichen wieder mit 0 ersetzt.Das ganze geht also nur wenn man keine Leerzeichen im String hat.
-
NullableDateTimePicker
Ich hatte heute das Problem das ich mit dem DateTimePicker einen Nothing wert darstellen wollte. Der DateTimePicker hat eine so schöne Checkbox mit der man das Datum deaktivieren kann. Wieso bei einem deaktiviertem nicht einfach ein Nothing als Value zurückgegeben wird bleibt Microsofts Geheimnis. Zum glück können wir das Control aber ableiten 🙂
Public Class NullableDateTimePicker Inherits DateTimePicker Public Sub New() MyBase.New() InitializeComponent() End Sub Public Shadows Property Value() As Nullable(Of DateTime) Get If Not MyBase.Checked Then Return Nothing Else Return New Nullable(Of DateTime)(MyBase.Value) End If End Get Set(ByVal value As Nullable(Of DateTime)) If value.HasValue = False Then MyBase.Value = DateTime.Now MyBase.Checked = False Else MyBase.Value = value.Value MyBase.Checked = True End If End Set End Property End Class
Indem wir die Valueeigenschaft überschreiben lässt sich daraus ein richtig gutes Control machen 🙂
Gruss Marco
-
ClamAV mit Mailfunktion
Also heute hatte ich das Problem ClamAv dazu zu bringen das ich jede Woche einen Prüfungsbericht bekommen und falls ein Virus gefunden wird ich auf unter der Woche informiert werden.
So ist mein Vorschlag, da ich etwas in php bewandert bin habe ich das Shellskript in php geschrieben:
#!/usr/bin/php5 <?php exec("/usr/bin/clamscan -ri /",$data); $found = true; foreach($data as $line) { if(preg_match("/^Infected files:/",$line)) { $count = str_replace("Infected files: ","",$line); // Ich habe auf dem Rechne 4 beispielviren zum Testen diese müssen natürlich ignoriert werden. if($count == 4) $found = false; } $message .= $line . "\n"; } if($found || date("D") == "Sat") { if($found) { $betreff = "Virus found !!!!"; } else { $betreff = "Scan okay"; } $header = 'From: root@example.ch' . "\r\n" . 'Reply-To: info@example.ch' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail("info@example.ch",$betreff,$message); } ?>
Das noch per link im /etc/cron.daily/ ablegen und nun werde ich jeden Sa informiert das noch alles in Ordnung ist.
Gruss Marco
-
Asterisk 1.4 mit DEVSTATE (DEVICE_STATE) erweitern
Ich stand heute vor dem Problem das ich die Funktion DEVSTATE (in 1.6 DEVICE_STATE) in Asterisk ausprobieren wollte.
Leider ist diese Funktion in der 1.4 noch nicht vorhanden also ist nachinstallieren angesagt.
# Compiler installieren + tools aptitude install gcc g++ binutils libtool make libncurses-dev subversion # Patch aus dem Internet laden cd /tmp svn checkout http://svncommunity.digium.com/svn/russell/asterisk-1.4/func_devstate-1.4/ # Asterisk holen cd /usr/src tar -xzf asterisk-1.4.19.2.tar.gz rm asterisk-1.4.19.2.tar.gz cd asterisk-1.4.19.2/funcs/ cp /tmp/func_devstate-1.4/func_devstate.c ./ # Asterisk kompilieren ./configure && make clean && make # Neue Funktion laden cd /usr/lib/asterisk/modules/ cp /usr/src/asterisk-1.4.19.2/funcs/func_devstate.so ./ # Aufräumen rm -r /tmp/func_devstate-1.4 rm -r /usr/src/asterisk aptitude remove gcc g++ binutils libtool make libncurses-dev subversion
So nun funktioniert der Befehl DEVSTATE
-
Asterisk Weckruf
So nachdem ich ein wenig mit Asterisk gespielt habe. Konnte ich mithilfe der Erklährung aus dem Asterisk-Buch einen Weckruf implementieren.
Einfach im ensprechenden Kontext in der Datei extensions.ael follgende Zeilen einfügen
_*77*XXXXXXXXXXXX => { Answer(); Set(Jahr=${EXTEN:4:4}); Set(Monat=${EXTEN:8:2}); Set(Tag=${EXTEN:10:2}); Set(Stunden=${EXTEN:12:2}); Set(Minuten=${EXTEN:14:2}); System(echo -e "Channel: SIP/${CALLERID(num)}\\nContext: Weckruf\\nExtension: 23" > /tmp/${UNIQUEID}.call); System(touch -t ${Jahr}${Monat}${Tag}${Stunden}${Minuten} /tmp/${UNIQUEID}.call); System(mv /tmp/${UNIQUEID}.call /var/spool/asterisk/outgoing/); Playback(rqsted-wakeup-for); SayNumber(${Stunden}); SayNumber(${Minuten}); Playback(digits/oclock); Hangup(); }
Und dann noch einen neuen Kontext für den Rückruf erzeugen:
context Weckruf { 23 => { Answer(); Wait(1); Playback(this-is-yr-wakeup-call); Wait(1); Hangup(); } }
Nun kann mit Anwählen der Nummer *77* gefolgt von Jahr Monat Tag Stunde Minute (*77*200910030730) der Wecker gestellt werden.
🙂