9/10/16

Warum bloggen (mir) keinen Spaß mehr macht

[OffTopic] – na wer kennt die Bezeichnung noch?
Früher war diese in allen Foren gang und gebe, hach Foren, gute alte Zeit. Bin ich denn etwa auch so ein Typ der immer sagt „früher war alles besser? Nein bin ich nicht. Die Zeit läuft weiter, Dinge verändern sich und das ist gut so.

Anfangs gab es Foren, hier trafen sich die Leute „virtuell“ und schrieben sich Dinge von der Seele die sie beschäftigten. Dann kamen Blogs, das neue heiße Ding. Es gab nur wenige Blogs, dafür qualitativ sehr gute, auch aufgrund des Themenbereichs. Viel persönlicher Content der einen wirklich interessierte. Auch dieser Blog, wie auch Grabinalin, entstand so.

Wenn ich heutzutage an Blogs denke, denke ich sofort an „sponsored“. Jeder Blog der nicht gerade klein ist wird von Firma XY gesponsert, wird dorthin eingeladen, soll über Dinge schreiben, natürlich aus rein freien Stücken. Was den meisten Blogs mittlerweile fehlt ist der typische persönliche Content mit dem dieses Medium groß wurde. Dies kommt natürlich auch davon, dass es mittlerweile Netzwerke wie Facebook, Twitter, Instagram und und und gibt die einen schnelleren Austausch möglich machen. Wer nimmt sich noch die Zeit um in Ruhe komplette Blogs zu lesen, wo gibt es überhaupt noch wirklich interessante Blogs von interessanten Leuten. Man muss sie mittlerweile wirklich suchen.

Für mich sind Blogs zu etwas geworden was ich früher schon nicht gerne gelesen habe, Magazine.

Doch wie eingangs erwähnt bin ich nicht der Typ „früher war alles besser“. Dinge verändern sich eben, für mich sind mitterweile Twitter und Strava wichtiger als Blogs. Auch weil sich beruflich und privat einfach mehr tut bzw. andere Dinge wie Sport deutlich wichtiger wurde und mehr Zeit in Anspruch nehmen. Alles in allem muss man wohl sagen, Bye Blogs, es war schön mit euch aber ihr seid wohl jetzt im Seniorenalter angekommen.

27/04/16

Xibo crasht nach 30 Minuten Abspielen eines WMV-Video (Office 2013 Export)

Wir haben hier Xibo im Einsatz. Eine Lösung um Infoscreens zu betreiben, in unserem Fall für uns Mitarbeiter, quasi ein Kommunikationstool. In jedem Stockwerk läuft ein Screen mit der aktuellen Präsentation, im Hintergrund haben wir einen virtuellen Ubuntu-Server welcher den Server für Xibo bereitstellt.
Normaler Workflow:

  • Präsentation im PowerPoint fertig machen
  • Datei –> Exportieren –> Video erstellen
  • WMV-Datei ins Xibo-Layout packen

Einige Minuten später ist dann die neue Präsentation auf allen Screens. Zumindest war dies bisher unter Office 2010 so. Mit Office 2013 wollte das ganze nicht mehr so klappen. Der erste Fehler war jedoch schnell gefunden. Per Default rendert 2013 nun MP4 und nicht WMV. Ein Windows 7 ohne Codecs kann allerdings nur WMV. Also beim Rendern vorher einstellen und gut ist.

Leider jedoch nicht lange. Nach 30 Minuten ca. stürzte der Screen bzw. die Applikation immer wieder mit folgender Fehlermeldung ab:

xibo error

Da sich soweit nichts veränderte, außer dem Switch von Office 2010 auf 2013, muss es ja fast an diesem Switch liegen. Meine einzige Erklärung dafür: Codecs. Also mal schnell ein Videofile aus einem Office 2010 und eines aus einem Office 2013 exportiert. Ergebnis: 1:1 gleich – komplett identisch. Der einzige Unterschied zwischen den beiden Versionen war die Auflösung. Was unter Office 2010 noch die hohe Auflösung war ist unter Office 2013 nun die mittlere. Sofort probiert und siehe da, das wars!

powerpoint video export xiboWenn Xibo also mit dem oben genannten Fehler beim Abspielen von einem WMV-Video, welches mit Office 2013 exportiert wurde, abstürzt dann einfach die Auflösung „Internet und DVD“ wählen. Danach funktionierte es bei mir sofort wieder!

 

25/04/16

HowTo: Passwörter in Powershell-Script sicher speichern

Heute war ich mal wieder am Scripten in der Powershell. Unter anderem sollte eine Sitzung zu einem entfernten Rechner aufgebaut werden. Damit nicht immer die Passwortabfrage kommt, wollte ich das Passwort in dem Script speichern. Zwar gibt es mit

ConvertTo-SecureString „password“ -AsPlainText -Force

einen Befehl um das Password als SecureString dem System zu übergeben, jedoch steht es dann Plaintext im Script drinnen. Schlechte Idee wenn man auf einem System arbeitet, wo potenziell jeder dieses Script sich zumindest ansehen könnte. Hier nun die viel bessere Variante:

Zuerst das gewünschte Passwort in einen SecureString verwandeln

„password“ | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString

Als Ausgabe bekommt man den SecureString, diese Zeichenfolge nun als Variable in das Script packen

$password = 01000000d08c9ddf0115d1118c7a00c04fc297eb0100000042c9ec6c1246024e87c02a249d644c3f0000000002000000000003660000c000000010000000822cda5d495360f9d897c390fc84224c0000000004800000a0000000100000005fb5e15f2e933a865a34f70de3ad7a7c180000004d2443bbdcfd7c4fbd18ed97158da3475b9641cc504e3a531400000043152ab5ff1d21c5e732554e3e3f560697f0c6e7

Anschließend könnte man nun so die Credentials speichern

$User =“domain.local\username“
$MyCredential= New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, ($password | ConvertTo-SecureString)

Für eine PSSession würde der Befehl dann am Schluss so aussehen

Enter-PSSession -Computer „Computername“ -Credential $MyCredential

18/04/16

SMS-Gateway für Icinga im Selbstbau

Vor kurzem kam mir der Gedanke, dass Icinga nicht nur Mails schicken könnte sondern doch auch SMS. Sozusagen eine dreifache Absicherung. Sollte etwas schief laufen bekomme ich derzeit auf die Firmen Mail-Adresse wie auch auf die private Mail-Adresse eine Nachricht. Doch was wenn beide Mailserver nicht funktonieren? Dann bekomme ich in Zukunft auch noch eine SMS. Das ganze fast zum 0-Kostenpreis.

SMS Gateway mit Gammu

Ich hatte noch einen alten MF190 Datenstick rumliegen, einfach perfekt für mein Vorhaben dachte ich. Unter Linux kann man sich mit dem Tool Gammu sein eigenes SMS-Gateway basteln. Unter Ubuntu dazu einfach das Paket gammu installieren. Anschließend mit dem Befehl gammu-config die Konfiguration erledigen. So sieht meine aus:

gammu-config

Um den passenden USB-Port zu finden einfach mit dem Befehl dmesg | grep ttyUSB diesen herausfinden.

Mit dem Befehl gammu –getsecuritystatus kann man auslesen ob aktuell eine PIN Eingabe erwartet wird oder nicht. Wird diese erwartet einfach mit gammu –entersecuritycode PIN 1234 (1234 ist der PIN) den PIN eingeben. Nun kann man sich mittels echo „TEST“ | gammu sendsms TEXT NUMMER bereits selbst eine erste Test-SMS schicken.

Funktioniert dies kann man nun zum nächsten Schritt übergehen.

SMS Daemon installieren und einrichten

Mit dem Befehl apt-get install gammu-smsd den Daemon für Gammu installieren. Dann muss das config-File angepasst werden, ich hab das mit nano /etc/gammu-smsdrc erledigt. Dies ist meine Config-Datei:

gammu smsd config

Den Daemon mit service gammu-smsd start starten. Auch jetzt kann man sich wieder selbst eine Test-SMS schicken. Dieses Mal mit dem Befehl gammu-smsd-inject TEXT NUMMER „TEST“. Hat das auch funktioniert geht es weiter.

Einbindung in Icinga

Bei der Einbindung in Icinga habe ich dann die beiden Scripts sendsms.pl und receivesms.pl benutzt. Danke an Thesysadmin.

Diese beiden Scripts am Icinga-Server unter /usr/bin speichern, anschließend die Rechte noch anpassen. Nun die commands.cfg wie folgt anpassen:

#’notify-service-by-sms‘ command definition
define command{
command_name notify-service-by-sms
command_line /usr/bin/sendsms.pl –type $NOTIFICATIONTYPE$ –servicedesc „$SERVICEDESC$“ –hostname „$HOSTNAME$“ –state „$SERVICESTATE$“ –datetime „$SHORTDATETIME$“ –info „$SERVICEOUTPUT$“ –contact „$CONTACTPAGER$“
}

# ’notify-host-by-sms‘ command definition
define command{
command_name notify-host-by-sms
command_line /usr/bin/sendsms.pl –type „$NOTIFICATIONTYPE$“ –hostname „$HOSTNAME$“ –state „$HOSTSTATE$“ –datetime „$SHORTDATETIME$“ –info „$HOSTOUTPUT$“ –contact „$CONTACTPAGER$“
}

Auch die contacts.cfg muss angepasst werden, hier ein Beispielkontakt:

define contact{
contact_name Beispiel; Short name of user
use generic-contact ; Inherit default values from generic-contact template (defined above)
alias Beispielkontakt; Full name of user

email xyz@mail.at;
pager 1234/1234567;

host_notification_commands notify-host-by-sms
service_notification_commands notify-service-by-sms
}

Nun den Icinga-Benutzer noch in die gammu Gruppe übernehmen: usermod -aG gammu icinga.

Abschließend muss noch ein Cronjob eingerichtet werden. Dieser prüft regelmäßig ob im SMS-Eingang eine neue Nachricht vorhanden ist und setzt dann ein ACK Flag für den betreffenden Service im Icinga. Dazu die Datei /etc/crontab wie folgt anpassen.

*/5 * * * * root /usr/bin/receivesms.pl

Damit wird alle 5 Minuten geprüft ob eine SMS im Eingang vorhanden ist.

Mit service icinga reload  Icinga neustarten. Bei Problemen wird nun eine SMS an eure Telefonnummer gesendet. Wollt ihr das Problem einen ACK-Flag verpassen, einfach eine SMS mit der ID als Inhalt zurückschicken.

12/04/16

Windows 10 Linux Bash: Apache Fehlermeldungen beheben

Apache Windows Bash

Mit einem einfachen apt-get install apache2 kann man in der Bash von Windows 10 den Apache2 installieren. Will man ihn anschließend mit service apache2 start starten, bekommt man jedoch folgende Fehlermeldung:

failed to create directory via template ‚/var/lock/apache2.XXXXXXXXXX‘: No such file

Diese lässt sich relativ einfach mit folgenden Befehl beheben: mkdir -p /run/lock

Sollte es danach noch nicht klappen, zur Sicherheit nochmal mit apt-get purge apache2 und nochmaligen apt-get install apache2 die Installation wiederholen.

Leider klappte es danach jedoch bei mir noch immer nicht, es erschien folgende Fehlermeldung:

* Starting web server apache2 AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1. Set the ‚ServerName‘ directive globally to suppress this message
[Tue Apr 12 20:45:11.484220 2016] [core:crit] [pid 6134:tid 140694537176960] (22)Invalid argument: AH00069: make_sock: for address [::]:80, apr_socket_opt_set: (IPV6_V6ONLY)
(22)Invalid argument: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs
Action ’start‘ failed.
The Apache error log may have more information.
*
* The apache2 instance did not start within 20 seconds. Please read the log files to discover problems

Dabei sollte man vorallem das Augenmerk auf die Zeile „could not bing to address 0.0.0.0:80“ richten. Wie ich dann herausgefunden habe hört auf Port 80 bereits der Dienst WWW-Publishingdienst. Diesen über die Dienste stoppen. Stellt man diesen Dienst auf Manuell um, ist das Problem dauerhaft gelöst. Anschließend in der Bash den Apache mit service apache2 start starten, sollte nun klappen!

12/04/16

Windows 10 Linux Bash: Pfade unter Linux und Windows

bash windows10

Seit Anfang dieser Woche habe ich nun auch den aktuellen Insider-Build von Windows 10 oben. Direkt danach wurde natürlich sofort die Linux Bash installiert. Dabei habe ich den Apache installiert und ein bisschen herumprobiert. Beim Suchen nach den richtigen Pfaden habe ich mich dann leider zu Tode gesucht. Deswegen hier die Pfade, wo sich die beiden System kennen/überschneiden:

In der Linux Bash ist die C-Partition von Windows erreichbar unter /mnt/c .
Im Windows Explorer ist die Linux-Bash bzw dessen Dateisystem zu finden unter C:\Users\%username%\AppData\Local\lxss .
Das www-Verzeichnis von Apache findet man unter C:\Users\%username%\AppData\Local\lxss\rootfs\var\www .

11/04/16

mRemoteNG Alternative: RDP-Manager

RDP-Manager

Schon seit längerer Zeit bin ich auf der Suche nach einer Alternative für mRemoteNG. Dies vorallem aufgrund der Tatsache, dass dieses Tool nicht mehr weiterentwickelt wird. Aber da gibts noch einen netten kleinen Fehler: Will man sich auf viele Server 2012 R2 verbinden, klappt dies aufgrund eines Speicherfehlers mit der neuesten Version nicht mehr. Mit einer älteren EXE klappts als Workaround aber das ist auch nicht wirklich zufriedenstellend.

Heute habe ich die neue Windows 10 Insider-Build (mit der Ubuntu Bash) installiert. Diese Build hat nun mRemoteNG den Gnadenschuss versetzt. Ein Verbinden mit RDP war nicht mehr möglich, das Tool musste weg. Eher durch Zufall bin ich dann auf das Tool RDP-Manager gestoßen, welches noch eine extrem kleine überschaubare Community hat. Warum eigentlich?

Hab dann ein paar Tests erledigt und das Ding für richtig gut befunden. Mittlerweile ist alles eingerichtet und auch bereits einige Stunden in Benützung. Lasst euch eines sagen: Das Tool ist genial!

Wer mRemoteNG gemocht hat, wird den RDP-Manager lieben.

Im Endeffekt ist alles so wie man es von mRemoteNG kennt, nur ist es eben an jeder Ecke ein wenig verbessert worden.

Update:

mRemoteNG wird nun doch weiterentwickelt, näheres dazu hier. Danke für den Hinweis Christian.

9/04/16

Exchange-Powershell-Snippet: Active Sync Gerät am Exchange blockieren

Dieser Einzeiler blockiert die Anfragen eines speziellen Active-Sync Gerätes.

Zuerst die Device ID des betreffenden Gerätes mittels diesem Snippet auslesen. Anschließend folgendes Snippet ausführen:

Set-CASMailbox -Identity username -ActiveSyncBlockedDeviceIDs „DeviceID“

Nun wird jede Anfrage von diesem Gerät am Exchange blockiert.

7/04/16

Erfahrungsbericht: Unifi – die perfekte WLAN Lösung für kleine Firmen von Ubiquiti

Stellt euch folgendes vor: Ihr habt einen Standort mit 5 Räumen mit alten dicken Wänden und vielen Glaselementen zusätzlich. Ein normaler WLAN Access Point, auch wenn er noch so perfekt ausgerichtet ist, gibt hier seinen Dienst auf.

Es muss also eine richtige WLAN-Infrastruktur Lösung her. Controller und Access Point inkl Roaming zwischen den einzelnen Stationen. Nimmt man eine „richtige“ Lösung von HP oder Cisco steigen dabei die Kosten schnell ins unermessliche, zu hoch für kleine Standorte mit max. 10 Personen.

Genau für diese Nische hat sich Ubiquiti eine tolle und einfache Lösung einfallen lassen. Mit seinen Unifi AP Produkten, bietet der Hersteller Access Points an, welche über die eigene Unifi Controllerlösung angesprochen werden können. Der Clou liegt dabei im Detail: Der Controller ist nicht eine zusätzliche, teure, Hardware sondern ist als Software ausgelegt. Diese installiert man einfach irgendwo im Netzwerk, am besten am Server da dieser ohnehin läuft. Über diesen Controller reden dann die APs miteinander, bekommen die Konfiguration und der Admin bekommt seine geliebten Statistiken.

Ein einziger trauriger Minuspunkt bleibt: Die Software setzt auf Java. Auf dem Controller muss also Java installiert sein.

Hier einige Screenshots aus der Konsole des Controllers welche als Weboberfläche zur Verfügung steht:

ubiquiti4 ubiquiti3 ubiquiti2 ubiquiti1

Die Lösung besteht bei mir aus gerade einmal 2 UniFi AP AC Lite Access Point. Völlig ausreichend. Dank Roaming wird man immer wieder von einem zu anderen geschickt, ohne Verbindungsunterbrechungen wohlgemerkt! Falls mal etwas nicht funktioniert, stehen viele Auswertungen zur Verfügung. Ein Fehlersuche ist daher im Idealfall also schnell erledigt.
Gekostet hat mich die Lösung gerade mal ca. 160 €. Mittlerweile läuft die Lösung seit knapp zwei Monaten ohne Probleme.

Also falls ihr überlegt ob das etwas für euer Haus oder einen kleinen Firmenstandort wäre: Absolute Empfehlung meinerseits.

6/04/16

Exchange-Powershell-Snippet: ActiveSync Geräte eines User nach letztem Zugriff sortiert anzeigen

Dieser Einzeiler zeigt einem sämtliche Active-Sync Geräte an die jemals mit dieser Mailbox verknüpft waren. Geordnet nach Datum. Angezeigt wird anschließend eine Liste mit folgenden Attributen: letzter Zugriff, Gerättyp, Modell, Device ID

Get-ActiveSyncDeviceStatistics -Mailbox username | Sort-Object LastSyncAttemptTime | Format-List LastSyncAttemptTime,DeviceType,DeviceFriendlyName,DeviceID