Category "Snippets"

Schnelle Lösungen für die täglichen IT-Probleme…

PROFFIX REST-API Live Debugging

- - IT, Snippets, Web

Das Debuggen von Applikationen mit der PROFFIX REST-API ist gerade für komplexere Projekte suboptimal, da die Logfiles als reine Textfiles vorliegen. Mit folgender Konfiguration sind die Logfiles der PROFFIX  REST-API nicht nur sortier- und kategorisierbar sondern auch immer live verfügbar.

Das Problem

Die PROFFIX REST-API schreibt Logfiles im Textformat in einen Ordner log. Das sieht dann so aus:

2017-10-06 13:37:39.7168: INF: [PxRestApi.Authentication.PxAuthenticationMiddleware]: PROFFIX was not authenticated. Failure message: Nicht authentifiziert. 
2017-10-06 13:37:39.7939: DBG: [Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware]: The request path /pxapi/v2/ADR/Kontakttyp does not match a supported file type 
2017-10-06 13:37:39.7939: DBG: [Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware]: The request path /pxapi/v2/ADR/Kontakttyp does not match a supported file type
2017-10-06 13:37:39.7939: DBG: [Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware]: DELETE requests are not supported

Für eine einfache Verwendung oder kleine Fehler mag das ausreichen. Jeder der aber einmal etwas komplexere Applikationen (wie etwa pApp – das App für PROFFIX) mit mehreren, verschachtelten Interaktionen debuggt hat, weiss wie mühsam das wird.

Deshalb hier eine bessere und vollständig individualisierbare Alternative – die übrigens auch für andere Logfiles funktioniert.

Die Lösung

Textfile mit nxlog parsen

NXLog ist ein Tool das sowohl für die Sammlung von Logfiles als auch das Parsing von Logfiles genutzt werden kann. Und das Beste daran – in der Community Version ist es absolut kostenlos.

Diese kann man hier herunterladen, anschliessend ganz gewohnt installieren.

NXLog selbst wird über die Datei nxlog.conf konfiguriert, die man gewöhnlich im Ordner C:\Program Files (x86)\nxlog\conf findet.

Um die Logfiles der PROFFIX REST-API zu parsen kann man folgende, vorkonfigurierte Config verwenden:

define ROOT C:\Program Files (x86)\nxlog
define CERTDIR %ROOT%\cert

Moduledir %ROOT%\modules
CacheDir %ROOT%\data
Pidfile %ROOT%\data\nxlog.pid
SpoolDir %ROOT%\data
LogFile %ROOT%\data\nxlog.log

<Input watchfile>
   Module im_file
## Pfad zum Ordner Log der REST-API Instanz anpassen
   File 'C:\\PXREST\\PXDEMO\\logs\\*.txt'
## Verwirft uninteressante Logs
   Exec if ($raw_event =~ /(The request path) (\S+) (does not match a supported file type)/) drop(); \
## Splittet Logs mit Regex auf
   Exec if $raw_event =~ /^(\S+ \S+): (\S+)\:\s\[+(\S+)\]\:\s(.*)/\
                { \
                  $EventTime = parsedate($1); \
                  $Message = $2+' '+$4; \
                  $SourceName = $3; \
## Syslog Severity / Für Papertrail unnötig
##       if $2 =~ /DBG/  $SyslogSeverity = 7; \
##       else $SyslogSeverity = 6; \
                } \
  SavePos TRUE  
  Recursive TRUE
</Input>

<Processor filewatcher_transformer>
  Module pm_transformer
  OutputFormat syslog_rfc5424
</Processor>

<Output syslogout>
       Module om_ssl
## Papertrail Host und Port anpassen
       Host xxxx.papertrailapp.com
       Port xxxxx
       CAFile %CERTDIR%/papertrail-bundle.pem
       AllowUntrusted FALSE
</Output>
<Route 1>
	Path watchfile => filewatcher_transformer => syslogout
</Route>

Diese Konfiguration erstellt aus dem PROFFIX REST-API Log automatisch ein Syslog, der per Netzwerk an beliebige Empfänger gesendet werden kann  – und zwar live. Oder anders ausgedrückt – sobald ein Log-Ereignis eintritt, versendet NXLog das geparste und aufbereitete Ereignis automatisch.

Papertrailapp für Live – Log nutzen

Grundsätzlich könnte man mit NXLog praktisch jeden Log – Empfänger nutzen (z.B. Synology NAS Protokollcenter, Windows Ereignisprotokoll…)

Der Vorteil von Papertrailapp sind aber die diversen Filter – und Syntaxtypen kombiniert mit der Möglichkeit, Log – Events auch an weitere Benutzer freizugeben.

  1. Account erstellen unter https://papertrailapp.com
  2. Unter Add System ein neues System hinzufügen
  3. Den Log – Endpunkt (z.B:  logs5.papertrailapp) sowie den Port (z.B. 45353) von Papertrail in die NXLog – Konfiguration übertragen (ist auskommentiert).
  4. Das Zertifikat von Papertrail unter https://papertrailapp.com/tools/papertrail-bundle.pem herunterladen und im Ordner C:\Program Files (x86)\nxlog\cert abspeichern
  5. Den Dienst nxlog neu starten.

Eine detailliertere Anleitung in Englisch gibts auch hier: https://help.papertrailapp.com/kb/configuration/configuring-remote-syslog-from-windows/

Anschliessend kann man sich auf Papertrailapp.com einloggen und sollte bereits erste Logs sehen:

PROFFIX REST API Live Log

Anschliessend kann man unter Settings -> Event Viewer auch noch weitere Filter konfigurieren und auch weitere Benutzer (z.B. Entwickler) hinzufügen.

Papertrail PROFFIX REST Custom_Filter

Dieser Filter macht die Logkategorien Debug, Trace und Info klick- und sortierbar.

G Suite Massenabwesenheitsmeldung setzten

- - IT, Snippets

Welcher Administrator kennt das Problem nicht – bei Feiertagen oder Ferien sollen für alle Mitarbeiter passende Abwesenheitsmeldungen erstellt werden.

Mit einem Exchange Server funktioniert das mehr oder weniger; Was aber wenn der Kunde oder das Unternehmen G Suite (vormals Google Apps for Work…) einsetzt?

Für einzelne Accounts kann diese Abwesenheitsnotiz zwar manuell gesetzt werden – sobald es aber mehr als 5 sind wird es mühsam.

Die Lösung für das Problem – der Google Apps Manager (kurz GAM).

Damit erhält der Administrator praktisch vollen Zugriff auf sämtliche administrativen Tätigkeiten von G Suite – zusammengefasst in einer handlichen Konsole.

Google Apps Manager / GAM installieren

Zuerst einmal muss die aktuellste Version von GAM heruntergeladen werden:

Download GAM: https://github.com/jay0lee/GAM/releases

Die Installation anschliessend braucht etwas Zeit, da diverse Zugriffsberechtigungen gesetzt und aktualisiert werden müssen. Sämtliche nötigen Schritte sind aber sehr detailliert im Installationsprozess erklärt.

Abwesenheitsnotiz für Alle oder einzelne Benutzer setzen

Eine Übersicht über die verschiedenen Befehle von GAM findet man auch hier.

Für eine Abwesenheitsmeldung für sämtliche Benutzer kann man folgenden Befehl nutzen:

gam all users vacation on subject "Abwesenheit"  message "Wir sind vom xxx bis xxx abwesend. In Notfällen erreichen Sie uns unter xxx"

Für einen einzelnen Benutzer kann die Abwesenheitsmeldung wie folgt gesetzt werden:

gam user [email protected] vacation on subject "Abwesenheit"  message "Wir sind vom xxx bis xxx abwesend. In Notfällen erreichen Sie uns unter xxx"

Mit folgendem Befehl kann anschliessend überprüft werden, ob ein die Abwesenheitsmeldung für einen bestimmten Benutzer aktiv ist:

gam user [email protected] show vacation

 

Abwesenheitsnotiz für Alle oder einzelne Benutzer deaktivieren

Möchte man die Abwesenheitsnotiz anschliessend wieder deaktivieren, kann dies mit folgendem Befehl erreicht werden:

gam all users vacation off

Oder nur für einen bestimmten Benutzer:

gam user [email protected] vacation off

 

Windows 10 Microsoftkonto in Lokales Konto umwandeln

- - IT, Snippets

Windows 10 kennt neben Lokalen und Domänenbenutzern eine dritte Kontoart. Dabei wird ein Microsoftkonto  zur Authentifzierung verwendet. Wie man dieses in einen lokalen Account umwandelt – in diesem Artikel.

Wieso umwandeln?

Zugegeben – die Idee mit dem Microsoftaccount ist interessant. Hat man mehrere Geräte (z.B. Notebook, PC) wird damit nur ein Account benötigt, wichtige Dateien und Einstellungen werden über „die Cloud“ synchronisiert.

Leider ist das in der Praxis nicht immer die beste Lösung. Insbesondere wenn das Gerät ohne Internet verwendet wird, kommt man mit einem Microsoftaccount schnell an seine Grenzen.

Auch das Handling ist mit einem Lokalen oder Domänenaccount meistens flexibler und einfacher.

Probleme beim Zurücksetzen mit einem Microsoftaccount

Hat man bei der Ersteinrichtung nur den Microsoftaccount angeben und kann sich z.B. nicht mehr ans korrekte Passwort erinnern, muss dieses über den Microsoftaccount zurückgesetzt werden.

Dabei werden einige Fragen zum Benutzer gestellt – die aber nur greifen wenn die angebenen Daten auch noch verfügbar sind. Hat man den Microsoftaccount mit „etwas Phantasie“ erstellt steht man vor einem Problem.

Mit folgendem Tipp klappt das Zurücksetzen bzw. Umwandeln in einen lokalen Account trotzdem.

Eingabeaufforderung auf Anmeldebildschirm

Ziel ist es, direkt am Anmeldeschirm auf die Eingabeaufforderung zuzugreifen. Standardmässig ist das natürlich nicht möglich.

Folgende Schritte müssen ausgeführt werden (z.B. mit Live-CD oder in Windowsreparaturmodus):

  1. Unter C:\Windows\system32 die Datei Utilman.exe in Utilman.exe.old umbenennen.
  2. Anschliessend die Datei cmd.exe kopieren und in Utilman.exe umbenennen.

Bei einem normalen Windowsaccount könnte man das Passwort nun direkt am Anmeldebildschirm über Klick auf Erleichterte Bedienung zurücksetzen.

Da es sich hier aber um einen cloudgebundenen Microsoftaccount handelt, wird bei einem solchen Versuch die Meldung „Vorgang kann nicht ausgeführt werden, da das angegebene Konto nicht autoritativ ist.“ erscheinen.

Daher gehen wir den Umweg über den lokalen Administratoraccount.

Dieser muss erstmal aktiviert werden:

net user administrator /active:yes

Dann können wir noch ein Passwort (1234…) vergeben:

net user administrator 1234

Anschliessend muss der Computer neugestartet werden.

Nach dem Login kann der Administrator am unteren Bildschirmrand ausgewählt und mit dem  Passwort 1234 eingeloggt werden.

 

SQL-Server: Fehler beim Warten auf das Wiederherstellungshandle des Datenbankmoduls

- - IT, Snippets

Nicht immer läuft die Installation des Microsoft SQL Servers  problemlos ab. Wer die Meldung „Fehler beim Warten auf das Wiederherstellungshandle des Datenbankmoduls“ bzw. den Code 0x851A001A als Fehler bei der Installation erhält – so wirds einfach und schnell gelöst!

Der Fehler tritt insbesondere bei der Installation von SQL Server Express (z.B. für PROFFIX) auf – kann aber auch bei anderen SQL Server Versionen auftreten.

Lösung

Bereinigung

Zuerst einmal muss die mit dem Fehler installierte SQL – Instanz deinstalliert werden. Es ist nicht nötig, den ganzen SQL-Server zu deinstallieren(!)

Dazu wechselt man zu den Programmen, wählt den SQL – Server aus (z.B. SQL Server Express 2014) und klickt auf Deinstallieren.

MS SQL Server deinstallieren

(Hinweis:Die Funktion Reparieren hilft bei diesem Problem nicht).

Anschliessend klickt man sich durch den Assistenten und entfernt das Datenbankmodul (und nur das!) der entsprechenden Instanz.

Modifizierte Installation

Anschliessend ist alles bereit für eine neue, leicht modifizierte Installation des SQL-Servers. Ein Neustart ist nicht nötig aber empfohlen.

Bei der Installation der „neuen Instanz“ folgt man wiederum dem Assistenten, bis man zur Eingabemaske Serverkonfiguration kommt.

Hier ändert man den Kontonamen des SQL Server-Datenbankmoduls manuell (d.h. Eingeben oder Copy & Paste) wie folgt ab:

NT AUTHORITY\NETWORK SERVICE

SQL Server Dienst anpassen

Anschliessend kann die Installation abgeschlossen werden; es  sollten keine weiteren Fehlermeldungen auftreten – und auch der SQL – Server Dienst sollte problemlos gestartet werden.

 

Laufwerksbuchstabe bleibt nicht bestehen

- - IT, Snippets

Jedes Laufwerk in Windows hat seinen Laufwerksbuchstaben. Doch was,wenn dieser partout nicht bestehen bleiben will und sich nach jedem Neustart zurücksetzt?

Das Problem

…ist schnell erklärt.
Datenträgerverwaltung Windows

Das rot markierte Laufwerk (genauer: die Partition) verliert nach jedem Neustart seinen Buchstaben. Zwar kann er manuell zugewiesen werden – so lustig ist das aber nach dem x-ten Mal auch nicht mehr.

Diverse Versuche mit xyz-Partition Maker  und ähnlicher Software für den bequemen Anwender enden ergebnislos.

Also ganz tief in der Trickkiste gewühlt und das beinahe vergessene Windows-Tools diskpart ausgegraben (Eingabeaufforderung –> cmd).

diskpart
list volumes
select volume x
ATTRIBUTES VOLUME CLEAR HIDDEN

Wobei „volume x“ natürlich die störrische Partition darstellt.

Mit 4 Zeilen ist das Problem gelöst…

 

Office 2016 Bilder in Signatur mitsenden

- - IT, Snippets

Wer in seinen Outlooksignaturen ein Logo oder Bild mitsendet und auf Outlook 2016 upgradet wird feststellen, dass dasselbige in der Signatur nicht mitgesendet wird. Dieses Verhalten kann aber korrigiert werden.

Die Ursache für das in den meisten Fällen ungewünschte Verhalten ist ein Registrierungseintrag der – man glaubt es kaum „Send Pictures With Document“ heisst.

Man findet in bei Office 2016 unter:

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Outlook\Options\Mail]

Bei Office 2013 entsprechend unter:

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\Outlook\Options\Mail]

Für diejenigen die das Problem gerne schnell und einfach beheben möchte, habe ich hier einen fertigen Registrierungsfix erstellt (sowohl für Office 2013 wie auch für Office 2016):

Bilder_mitsenden_Office

Comodo Positive SSL und Plesk 12

- - Snippets, Web

Comodo Positive SSL ist günstig, sicher und perfekt für den schnellen Einsatz zwischendurch geeignet. Die Installation auf Plesk 12 bringt aber einige Stolpersteine mit sich. Wie man trotzdem das Zertifikat sauber und vor allem korrekt installiert – in diesem Beitrag.

 

Es fehlt ein Feld?

Von Comodo erhält man ein Zip-File mit folgendem Inhalt:

Comodo Positive SSL

 

In Plesk 12 gibts zum Upload der entsprechenden Zertifikate aber leider „nur“ zwei Felder:

Plesk 12 SSL

 

Lädt man nun nur zwei Zertifikate hoch, wird SSL im Browser zwar als „gültig“ erkannt, mit gängigen SSL-Checkern (z.B. SSL-Trust, SSL-Labs) wird aber ein „missing Certificate Chain“ gemeldet. Noch problematischer wird das ganze, wenn man diese unvollständige Einrichtung beispielsweise mit Software direkt „anzapfen“ möchte. Unter Umständen funktioniert dann nämlich die mit SSL gesicherte URL nicht.

Eine Lösung muss also her.

Die Lösung mittels Texteditor

Die Lösung ist anschliessend dann zum Glück nicht weiter schwierig.

Folgende Zertifikate müssen in diese Reihenfolge im Texteditor geöffnet und in dieser Reihenfolge in das Feld CA-Zertifikat kopiert werden:

  • COMODORSADomainValidationSecureServerCA.crt
  • COMODORSAAddTrustCA.crt
  • AddTrustExternalCARoot.crt

Das übrige Zertifikat www_my_domain_ch.crt sollte ins Feld Zertifikat kopiert werden.

Anschliessend auf Text senden klicken und alles wird so klappen wie es sollte.

Tipp: Die Zuordnung ist in den obigen Screenshots bereits passend farblich hinterlegt…

 

Windows 10 Upgrade erzwingen

- - IT, Snippets

Zurzeit wird ein grosser Wirbel um das neue Windows 10 gemacht. Bei vielen Nutzern erscheint zwar die Meldung über ein Upgrade und die Möglichkeit informiert zu werden, „wann“ das Upgrade verfügbar ist – konkrete Daten fehlen aber. Mit folgendem Trick wird das Windows 10 Upgrade erzwungen.

 

Windows 10 Upgrade

Das Upgrade ist reserviert? Aber wann wird es installiert?

Vorarbeiten für das Upgrade

Obwohl theoretisch nicht nötig, empfiehlt sich doch kurz einmal einen Blick auf die eigenen Backups zu werfen (Checkliste zum Backup gibts hier).

Anschliessend sollte das Verzeichnis C:\Windows\SoftwareDistribution\Download komplett geleert werden. Ist Windows nicht auf C:\ installiert analog mit anderem Laufwerksbuchstaben verfahren.

Upgrade erzwingen

Die weiteren Schritte sind nicht schwierig.

  1. Eingabeaufforderung / CMD also Administrator ausführen (wichtig!)
  2. wuauclt.exe /updatenow eingeben und mit Enter bestätigen

Anschliessend kann Windows Update wie gewohnt geöffnet werden – Windows 10 sollte automatisch als Upgrade heruntergeladen werden

 

Windows 10 Upgrade erzwingen

Nach Abschluss wird das Upgrade auf Windows 10 heruntergeladen

vmware: Failed to initialize SSL session to remote host

- - Snippets

Nach Upgrade auf vSphere 6 erscheint beim Verbinden mit einer virtuellen Maschine die Meldung „Failed to initialize SSL session to remote host„.

Neustarten der Maschine oder der Versuch eine alternative Verbindung herzustellen bringen keinen Erfolg.

Das Problem lässt sich aber relativ leicht lösen – einfach den entsprechenden Host neu starten und die Verbindung sollte ohne Probleme wieder funktionieren.

Zusammengeführte Zellen in Excel umwandeln

- - Snippets

Datenimporte in eine Datenbank auf Basis von Excelsheets ist immer eine lustige Sache. Inbesondere dann, wenn bspw. zusammengeführte Zellen vorhanden sind, die zwar übersichtlich, für den Import aber problematisch sind.

Zusammengeführte Zellen Excel

Wo liegt das Problem?

Das Zusammenführen in Excel ist vor allem eine grafische Angelegenheit; die oberste Zelle wird lediglich grafisch verlängert, die entsprechenden Werte (in diesem Beispiel die Wochentage) werden nicht übernommen und liegen auch nach dem Zurücksetzen der zusammengeführten Zelle immer noch nur im obersten Feld.

Für einen Import, in dem jede Zeile sämtliche Werte aufweisen muss ist dies denkbar ungünstig. Zum Glück lässt sich das aber mit ein paar Tricks lösen.

Zellen bereinigen

Zuerst sollten einmal sämtliche Formatierungen und zusammengeführten Zellen zurückgesetzt werden (Start > Verbinden und Zentrieren). Das Beispiel sieht dann so aus:

Formatierung Excel zurücksetzen

Werte berichtigen

Excel Werte berichtigenAnschliessend können die fehlenden Werte berichtigt werden. Dazu die entsprechende Spalte markieren.

 

 

 

Excel Inhalte auswählenAnschliessend auf Start > Suchen und Auswählen > Inhalte auswählen klicken und im sich öffnenden Fenster die Checkbox Leerzeilen auswählen.

 

Nun sollten nur noch die leeren Einträge in der Spalte A markiert sein.

 

 

Excel Merged Cells_berichtigenDie so markierten Zellen können nun automatisch mit dem übergeordneten Wert versehen werden. Dazu einfach auf der Tastatur „=“ eingeben und die Taste aufwärts drücken. Anschliessend mit Enter + Ctrl bestätigen (Wichtig!)

 

 

Das Endergebnis, das leicht weiterverarbeitet werden kann, sollte dann in etwa so aussehen:

Excel Merged Cells Endergebnis