Quantcast
Channel: Andy – Andy's Blog
Viewing all 2174 articles
Browse latest View live

Im abgesicherten Modus den Windows-Installer-Dienst starten

$
0
0

Normalerweise ist es nicht möglich den Windows-Installer-Dienst im abgesicherten Modus zu starten, per Standard ist dieser inaktiv in dieser Betriebsart. Allerdings wird dieser oft benötigt um z.B. Anwendungen, „wiederspenstige“ Virenscanner oder so manchen Treiber zu de-/installieren, was im Normalbetrieb nicht gelingt.

Mit einem kurzen Eingriff in die Registry bzw. einfacher geht’s durch das Ausführen von 1-2 Befehlen, klappt das Starten des Dienstes:

Abgesicherter Modus:

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Minimal\MSIServer" /VE /T REG_SZ /F /D "Service"

Abgesicherter Modus mit Netzwerktreibern:

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Network\MSIServer" /VE /T REG_SZ /F /D "Service"

Windows-Installier-Dienst starten:

net start msiserver

Damit geht in Sachen de-/installieren schon einiges, aber leider nicht alles. Helfen tut’s aber.

Quelle:

The Windows Club – How to make Windows Installer work in Safe Mode


Windows: MySQL Server lässt sich nicht installieren (Visual Studio 2013 Redistributable Package fehlt)

$
0
0

Bei der Installation des aktuellen MySQL Server (Community, 64-bit) auf einem Windows Server 2012 R2 Standard streikte der Installer. Im Log fand sich der Hinweis des die „Visual Studio 2013 Redistributable“-Laufzeitumgebung fehlen würden, obwohl diese zu Beginn des Setups vom Installer bereits automatisch heruntergeladen und installiert wurde.

Ein Neustart des Installers änderte an der Meldung nichts. Eine (extrem) kurze Suche im Netz brachte die Lösung:

Sowohl das 32- als auch 64-bit „Visual Studio 2013 Redistributable Pakage“ herunterladen und installieren, dann klappt’s auch mit dem MySQL Server-Setup.

Microsoft Download Center – Visual C++ Redistributable Packages für Visual Studio 2013

Quelle:

stack overflow – MySql 5.7 installer fails to detect VS 2013 redistributable

Outlook 2010 – Ewig schleicht die „winmail.dat“

$
0
0

Gefühlt, d.h. seit Office 97, solange ich Outlook kenne gibt es die „winmail.dat“-Thematik. Mit jeder neuen Version wird versprochen, das es nicht mehr vorkommt. Na ja.

Bei einem Kunden ist zugegeben ein nicht mehr ganz frisches Outlook 2010 im Einsatz, kein Exchange, direkt via POP/SMTP an ein 1&1-Postfach eingebunden, aber das nur am Rande. Jedenfalls soll per Branchenanwendung (in diesem Fall repdoc) Angebote, Rechnungen etc. versendet werden. Jede Mail kommt beim Empfänger allerdings als leere Nachricht mit „winmail.dat“-Anhang an. Unter „Gesendet Elemente“ beim Absender wird die Mail beim Kunden allerdings korrekt angezeigt.

Nach Prüfung der üblichen Verdächtigen an Einstellungen (guckst du hier: Lookeen – So hindern Sie Outlook daran, winmail.dat Anhänge zu versenden) musste eine andere Lösung gefunden werden. Diese ergab sich mit folgender Änderung:

Microsoft Support – Wenn Sie zum Senden einer E-Mail-Nachricht Outlook 2010 oder Outlook 2007 verwenden, sieht der Empfänger der Nachricht eine Anlage mit der Bezeichnung „Winmail.dat“

Also entweder Hotfix herunterladen (wenn der Download denn mal funktioniert) und installieren oder manuell diese Änderung vornehmen:

  • „regedit“ öffnen.
  • Zu „HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\Preferences“ wechseln.
  • Einen neuen DWORD-Eintrag mit dem Namen „DisableTNEF“ und dem Wert „1“ anlegen.
  • Den Computer neu starten.

Linux: Xpra als X2Go-Alternative

$
0
0

Auf der Suche nach einer performanteren Alterantive zu X2Go bin ich durch den Beitrag von Heinrich Boers auf Xpra aufmerksam geworden. Leider muss ich an dieser Stelle gleich sagen, das es bei mir trotz stundenlanger Versuche und Recherche leider nicht läuft. Feedback und Hilfe sind also in diesem Fall besonders Willkommen. Siehe Update vom 08.09.2017 – 20:59 Uhr.

Warum nicht X2Go?

X2Go ist eine feine Sache und imho auf Server- als auch Client-Seite leicht zu Handhaben. Zumindest bei den hier üblichen Szenarien, d.h. Debian-Server und Windows 7.x oder 8.x-Client läuft das gut. Einzig die Performance bei der Bildübertragung, beispielsweise Scrollen, könnte etwas besser sein. Was nicht bedeutet das sie generell schlecht wäre, aber klar, YouTube-Videos schauen macht keinen Spass.

Bisherige Xpra-Versuche

Schaut man sich diverse Anleitungen im Netz an, sollte die Sache eigentlich relativ einfach sein. Die Testumgebung besteht aus Debian 9.1 Stretch 64-bit auf der Server-seite, frisch installiert, sowohl mit als auch ohne Xfce-Desktop (mehrere virtuelle Maschinen). Der Client ist ein Windows 8.1 Pro ebenfalls 64-bit.

Zunächst wurde mir Xpra aus dem Debian-Repo getestet. Das führte zu folgender Meldung in den Protokollen unter „/home/andy/.xpra/“:

2017-09-08 12:26:26,668 Error starting Xvfb:
2017-09-08 12:26:26,669 Xorg did not provide a display number using -displayfd

Aus „purer Verzweiflung“ dann die aktuellere Version aus dem Window Switch (winswitch)-Repo installiert. Läuft ebenfalls nicht, die Logs sind richtig schweigsam, soll heissen: Leer. Auch unter „/var/log“ hat sich nichts finden lassen.Einzig unter „/var/log/messages“ fand sich

Sep 8 12:38:31 debian03 xpra: Warning: cannot use the system proxy for 'start' subcommand,#012 FAILURE

Was wiederum vom Client aus mittels Angabe von „–start-via-proxy=no“ unterbunden werden konnte. Ein „–debug=all“ half auch nicht, es wird nichts protokolliert. Es tut einfach nicht.

Das ist soweit nur die Kurzfassung der vergangenen sechs Stunden. Dazwischen wurden diverse Konfiguration und Befehle versucht, Pakete installiert, deinstalliert usw.

Nun wäre es interessant zu erfahren, ob es jemand zum Laufen bekommen hat und welche Erfahrungen damit gemacht wurden.

Update 08.09.2017 – 16:31 Uhr

So langsam wird das Chaos perfekt: Mit einem vServer bei KAMP klappt’s, mit den lokalen Debian-Servern leider nicht. Verwendet wird jeweils das winswitch-Repo und der gleiche Client.

Update 08.09.2017 – 20:59 Uhr

So, schätzungsweise ist es geschafft, zumindest für das gesetzte Ziel, entfernte Anwendungen ausführen zu können. Anbei die Schritte:

  • Die Ausgangslage ist ein frisch installiertes Debian 9.1 Stretch (netinstall) ohne Desktop-Umgebung.
  • Window Switch (winswitch)-Repository hinzufügen und Xpra installieren:
    apt-get install curl
    curl http://winswitch.org/gpg.asc | apt-key add -
    echo "deb http://winswitch.org/ stretch main" > /etc/apt/sources.list.d/winswitch.list
    apt-get update
    apt-get install xpra
  • Fehlende Abhängigkeit installieren:
    apt-get install dbus-x11
  • Z.B. Firefox-ESR installieren:
    apt-get install firefox-esr firefox-esr-l10n-de pulseaudio

Warum nicht Chromium?

Chromium wurde ebenfalls getestet, allerdings funktioniert die Fenster-Skalierung nicht richtig, so das es Überschneidungen mit der Taskleiste kommt. Ferner stürzte mehrmals der Xpra-Client unter Windows ab. Die Performance, wenn es denn mal lief, war gefühlt nicht besser als mit Firefox.

Client

Wie weiter oben erwähnt, kommt ein Windows-Client zum Einsatz. Für die Tests wurde direkt in einer Eingabeaufforderung gearbeitet:

  • cd „C:\Program Files\Xpra“
  • xpra start ssh/<username>:<password>@<ip-or-hostname> –start-child=f
    irefox-esr –speaker=on –av-sync=yes –window-close=shutdown

Troubleshooting:

Hardware-sizing

Je nachdem was man für Anwendungen remote ausführt bzw. was für einen Ressourcenbedarf diese haben, kann es zu Schwierigkeiten kommen. Im Verlauf des Tages zeigte sich mehrfach, das Schwache vServer, virtuelle Maschinen oder generell schwache Hardware zumindest mit Firefox und ein wenig Surfen nicht „klar kommen“. So gab es z.B. schon zu Beginn, d.h. nach dem Ausführen von „xpra start …“ zum Verbindungsabbruch, so das die sichtbare Verbindung dann erst  mit „xpra attach …“ aufgebaut werden musste. Ferner kann das Verhalten der „RemoteApp“ hakelig sein.

Xpra-Prozesse server-seitig finden und beenden

Auf dem Server muss man ggf. nach Fehlversuchen oder Client-Abstürzen sozusagen hängen gebliebene Xpra-Prozesse beenden. Diese lassen sich mit

ps -fC xpra

identifizieren und dann mittels

kill <PID>

beenden.

Tipp: Da der Verbindungsaufbau durchaus einen Moment dauert, kann man gut mit dem „ps“-Befehl die einzelnen Abschnitte beobachten (man achte dabei auf das „CMD“).

Protokollierung (Logging)

Wenn’s nicht klappt, hilft evtl. ein Blick ins Protokoll. Falls ab Werk keines erstellt wird, dann kann man dieses in der Benutzer-Konfiguration „forcieren“:

  • „/home/<Benutzername>/.xpra/xpra.conf“ editieren und folgende Zeilen einfügen:
    log-dir=/home/<username>/.xpra
    log-file=xpra.log

Als problematisch kann sich erweisen, das mitunter eine Menge Warnungen und Fehler, die ignoriert werden können, erfasst werden.

(Vorläufige) Abschluss-Bemerkung

Wie es um den Rest der Möglichkeiten von Xpra bestellt ist, vermag ich aktuell (noch) nicht zu sagen. Das gewünschte Ziel einzelne Anwendungen remote nutzen zu können ist auf jeden Fall erstmal erreicht.

Quellen:

Window Switch – Repository for Ubuntu and Debian

Xpra Bug tracker and wiki – Fresh Fedora 23 install of 0.18.0 xpra getting Error setting up dbus server

WordPress: Anker bzw. Sprungmarke verwenden

$
0
0

Kurz notiert, weil beim letzten Beitrag verwendet:

In WordPress ist es ganz einfach Anker bzw. Sprungmarken verwenden zu können: Einfach am gewünschten „Einsprungpunkt“ im Quelltext die ID einfügen (z.B. ‚<h1 id=“anker“>‘ und an der Ausgangsstelle einen Link bei dem vor der ID eine # vorangestellt ist einfügen.

Quellen:

Einfach. Erfolgreich. Die eigene Homepage. – Ankerlink setzen in WordPress, ohne Plugin

SelfHTML – Sprungmarken und Anker

Wikipedia – Anker (HTML)

Windows: VirtualBox verhindert TeamViewer-Update

$
0
0

Bei einem Kundensystem scheiterte in Endloschleife das Update des TeamViewer-Host 11.x auf 12.x. Nach einer manuellen Deinstallation viel auf, das im Programm-Ordner einen DLL nicht gelöscht werden kann.

Windows „meckerte“ immer, das diese in Verwendung sei. Mittels Process Explorer „Find – Find Handle or DLL…“ und die Angabe des Dateinamens „tv_x64.dll“ lieferte schnell den „Schuldigen“:

Auf dem System läuft unter anderem VirtualBox und dort wiederum zwei virtuelle Maschinen mit abgekoppelter GUI. Als diese beendet waren, konnte die DLL gelöscht und TeamViewer aktualisiert bzw. in diesem Fall neu installiert werden.

Wie allerdings VirtualBox mit TeamViewer an dieser Stelle zusammenhängt ist leider nicht klar.

Office 2016 startet nicht wegen Fehler bei mso40uiwin32.dll, Fehlerstatus 0xc0000020

$
0
0

Ganz gleich welchen Office-Bestandteil (z.B. Word, Excel, Outlook) man versucht zu starten, man erhält folgende Fehlermeldung in Endlosschleife:

Offensichtlich ist die ClickToRun-Umgebung beschädigt. Eine Reparatur oder Deinstallation mittels „Systemsteuerung – Programme und Features“ (bis Windows 8.1) bzw. „Einstellungen – Apps“ (ab Windows 10) führt ebenfalls zu dieser Meldung.

Abhilfe kann schaffen, via Task-Manager das aufgerufene Office-Programm zu Beenden oder alternativ den Computer neu zu starten und die Installation mit der Setup-Datei aus dem Office-Konto oder mittels IMG-Datei nochmals durchzuführen. Links zu letztgenannten findet man bequem unter

HeiDoc.net – Office 2016 Direct Download Links

Bei aktuellen Windows-Versionen kann die IMG-Datei schlicht durch „Rechtsklick – Bereitstellen“, bei Älteren z.B. via WinCDEmu Portable verwendet werden.

Eine vorige Deinstallation samt manueller Aufräumarbeiten war bei den uns bekannten Fällen bislang nicht nötig, sind aber je nach Schaden nicht auszuschließen. Unter Umständen hilft dabei ein Tool von Microsoft:

Deinstallieren von Office 2016, Office 2013 oder Office 365 auf einem PC – Option 2 – Vollständiges Deinstallieren von Office mit dem Tool für einfache Fehlerkorrekturen

Outlook und Thunderbird – E-Mails per Taste als gelesen markieren

$
0
0

Kurz notiert: In Outlook und Thunderbird lässt sich mittels Taste oder Tastenkombination vieles schnell machen. Zum „Gelesen“-markieren reicht folgendes aus:

  • Outlook: <Strg> + Q
  • Thunderbird: M

Bei Thunderbird kann mittels „M“ der Gelesen/Ungelesen-Status wechselweise geändert werden. In Outlook wiederum dient „<Strg> + Q“ für Gelesen und „<Strg> + U“ für Ungelesen. Persönlich finde ich die Lösung von Thunderbird besser.

Quellen:

Microsoft Office Support – Mark a message as read or unread

Mozilla Support – Keyboard Shortcuts TBs


Drive Snapshot im c’t-Notfall-Windows 2018

$
0
0

In der aktuellen Ausgabe der c’t 21/17 bzw. im aktuellen Notfall-Windows 2018 ist wieder eine zeitlich begrenzte Version von Drive Snapshot enthalten. So steht der Datensicherung (zumindest bis Ende 2018) nichts im Weg.

Links:

c’t-Notfall-Windows 2018

Windows: Mittels Skript prüfen, ob man mit einem bestimmten WLAN verbunden ist

$
0
0

Möchte man z.B. Aufgaben, Skripte oder weitere Befehle nur ausführen, wann man Zuhause oder im Büro mit dem dortigen WLAN verbunden ist, so lässt sich das mittels Skript leicht realisieren.

Ein Beispiel:

@echo off

set SSID=<WLAN-NAME>

netsh wlan show interfaces | findstr /i "%SSID%" > NUL

if %errorlevel%==0 echo Verbunden
if %errorlevel%==1 echo Nicht verbunden

Auf Basis des Ergebnisses kann man weitere Befehle ausführen, z.B. Netzlaufwerke verbinden:

@echo off

set SSID=<WLAN-NAME>

netsh wlan show interfaces | findstr /i "%SSID%" > NUL

if %errorlevel%==0 (
net use x: \\srv01\share /persistent:no
net use y: \\srv01\home /persistent:no
)

Windows: Einzelne Anwendungen bei Bedarf als Administrator ausführen

$
0
0

Unter Windows kann man nahezu jede Anwendung mit „Rechtsklick – Als Administrator ausführen“ mit erhöhten Rechten starten. Das ist schon bequem, geht aber noch bequemer.

So bin ich ganztätig „nur“ als Benutzer unter Windows unterwegs, soweit so gut und für die Sicherheit auch zuträglich und reicht für das normale Arbeiten vollkommen aus. Aber dann kommt es doch mal vor, das die z.B. die Computerverwaltung geöffnet werden muss, um etwas Administratives zu tun. Damit nun unnötige Klicks gespart werden können, lässt sich mit Bordmitteln das Ganze ganz simple so stricken, das nur noch das Administrator-Kennwort abgefragt wird:

  • Die Computerverwaltung auf den Desktop verknüpfen.
  • Die Verknüpfung bearbeiten und das Ziel wie folgt ändern:
C:\Windows\System32\runas.exe /noprofile /user:%computername%\administrator "mmc %windir%\system32\compmgmt.msc /s"

Das kann man antürlich auch mit anderen Anwendungen tun:

runas.exe /noprofile /user:%computername%\administrator <Befehl/Anwendung>

Im Domänen-Netzwerk kann man einfach „%computername%“ durch „%userdomain%“ ersetzen.

Windows: Variablen innerhalb von If-Anweisungen

$
0
0

Batch-Skripte unter Windows (und zuvor DOS) sind eine feine Sache für einfache Automatisierung. Verschachtelt man allerdings If-Anweisungen und möchte man innerhalb dieser auch noch Variablen verwenden, so führt das mitunter in eine böse Falle.

Folgendes Beispiel funktioniert nicht:

@echo off

set Var1=1

if %Var1%==1 (
 set Test=True
 echo %Test%
)

Man würde erwarten das als Ausgabe „True“ erscheint, stattdessen kommt ein „ECHO ist ausgeschaltet (OFF)“. Hintergrund ist, das Variablen innerhalb von If-Anweisungen anders behandelt werden. Lösbar ist das Ganze wie folgt:

@echo off

setlocal enabledelayedexpansion

set Var1=1

if %Var1%==1 (
 set Test=True
 echo !Test!
)

Relevant ist neben dem einleitenden „setlocal enabledelayedexpansion“ das innerhalb der If-Anweisung statt Prozent- Ausrufezeichen verwendet werden.

Eine Variable die innehalb einer If-Anweisung definiert wurde, kann außerhalb der Anweisung wie gewohnt mit den Prozentzeichen verwendet werden:

@echo off

setlocal enabledelayedexpansion

set Var1=1

if %Var1%==1 (
 set Test=True
)

echo %Test%

Quelle:

stackoverflow – ERRORLEVEL inside IF

Windows 10: Bluescreens wegen Druckerwarteschlange (Spooler)

$
0
0

Ein Neukunde brachte sein Notebook zu uns, nachdem er wegen Druckerprobleme manuell Dateien aus „C:\Windows\System32\spool“ gelöscht hatte. Das Gerät startete in Endlosschleife mit einem Bluescreen neu.

Leider war der Bluescreen wenig informativ, da lediglich nur „Critical process died“ angezeigt wurde. Selbst mit externem Bootmedium und BlueScreenView war lediglich zu entnehmen, das der Kernel gecrasht war. Wenig hilfreich soweit.

Rettung gab es durch die Kombination aus

Der Vorgang braucht eine Weile. Im Idealfall, der hier gegeben war, kann Windows repariert werden. Nach einem normalen Neustart wurden die „Drucker-Reste“ entfernt und die Treiber sauber neu installiert.

Hätte der Kunden nicht recht detailiert wiedergegeben, welche Schritte er vor dem Auftreten des BSOD durchgeführt hat, wär‘ ich evtl. nie darauf gekommen, das es am Spooler liegt. Das hätte man evtl. nur durch das Deaktivieren der Dienste via „msconfig“ und anschließenden Neustarten herausgefunden.

Neu war für mich, das der Spooler Windows „abschissen“ kann. Probleme mit Druckern, Druckertreibern oder mit einer zickigen Warteschlange sind bekannt, aber Abstürze dadurch hatte ich bislang nicht erlebt. Jeden Tag etwas Neues.

Ein paar Notizen zu Veeam Agent for Windows

$
0
0

Anbei ein paar Notizen zur aktuellen Version von Veeam’s Agent for Windows (fka Veeam Endpoint Backup).

Vom Aussehen und Handling hat sich seit der letzten Version 1.x  zur aktuellen Version 2.0.0.700 nicht viel verändert. Unter der Haube gab’s dann doch ein paar Änderungen, dies ist allerdings nicht Inhalt dieses Beitrags. An dieser Stelle geht es „nur“ um die FREE-Edition für Windows.

Download (mit Veeam-Konto):

Veeam Agent for Microsoft Windows 2.0

Veeam Agent for Linux (der Vollständigkeit halber ;-))

Download (ohne Veeam-Konto):

CHIP – Veeam Agent für Microsoft WindowsUnbedingt die „Manuelle Installation“ anklicken!

Meldungen konfigurieren

„Backup location is getting low on free disk space“

Veeam prüft den freien Speicherplatz im Ziel, ist dort weniger als 10% frei, erscheint eine Meldung, diese wird auch in das Log des Jobs geschrieben. Der Schwellenwert ist konfigurierbar:

  • „regedit“ ausführen.
  • Zu „HKLM\Software\Veeam\Veeam Endpoint\“ wechseln.
  • Einen neuen „REG_DWORD“-Eintrag mit dem Namen „BackupRepositoryFreeSpaceThresholdPercent“ und einem Wert, z.B. 5 für 5%, erstellen.

Bei der nächsten Sicherung sollte keine Meldung mehr erscheinen (andernfalls entweder einmal den Veeam-Dienst neu starten oder einmal den Computer durchbooten).

„Disk <LABEL> is running low on free space“

Ähnlich bei der der Prüfung auf freien Speicherplatz im Ziel verhält es sich mit der Prüfung des freien Platzes auf den zu sichernden Laufwerken bzw. Partitionen. Meist sind typische Recovery, Tools oder sonstige „Schnick schnack Partitionen“ so mancher PC-Hersteller recht knapp bemessen. Um diese Warnungen los zu werden muss man in der Registry folgenden Wert ändern:

  • „regedit“ ausführen.
  • Zu „HKLM\Software\Veeam\Veeam Endpoint\“ wechseln.
  • Einen neuen „REG_DWORD“-Eintrag mit dem Namen „DisableVolumeFreeSpaceCheckWarning“ und einem Wert „1“ erstellen.
  • Den Veeam-Dienst neu starten.

Regelmässige Vollsicherung konfigurieren (mehrere Sicherungssätze erstellen)

Neu seit Version 2.x ist die Möglichkeit nicht nur den aktuellen bzw. einen Sicherungssatz (aka backup chain) zu haben, sondern einstellen zu können, das zu bestimmten Zeitpunkten bzw. an bestimmten Tagen eine neue Vollsicherung erstellt werden soll.

  • Beim konfigurieren des Jobs bei „Local Storage“ bzw. „Shared Folder“ auf „Advanced“ klicken.
  • Auf der Registerkarte „Backup“ den Haken setzen bei „Create active full backups periodically“ und die gewünschte Zeit konfigurieren.

Vorteil dieses Methode ist, das so z.B. zwei Sicherunssätze vorhanden sind und man weiter zurückgehen kann. Nachteil ist eine höhere Last beim Erstellen der neuen Vollsicherung, denn im Gegensatz zum deaktiviertem „Active full backup“ wird kein Merge durchgeführt, sondern eine komplett neue Vollsicherung erstellt.

Ein paar Infos zum „Active Full Backup“ finden sich hier:

Veeam Blog – Inkrementelles oder vollständiges Backup – Wahl des richtigen Backup-Modus

Alternativ, wenn man mehrere Sicherungssätze aufbewahren möchte kann man vom Backup-Ziel eine Kopie erstellen (sozusagen Backup-vom-Backup). Das könnte z.B. eine automatische Aufgabe unter Windows oder ein Cronjob unter Linux/BSD sein.

CLI / Skript-Steuerung

Die CLI hat kann nach wie vor wie hier beschrieben verwendet werden:

Andy’s Blog – Ein paar Notizen zu Veeam Endpoint Backup FREE

Quellen:

machinewithoutbrain.de – Veeam Endpoint: backup repository is getting low on free disk space

Veeam Community Forums – Message „Disk Recovery is running low on free space“

Askozia: Manche Anschlüsse können nicht angerufen werden

$
0
0

Bei ein paar Kunden gab es Schwierigkeiten, das diese nicht jeden Anrufen konnten. Die Kunden selbst konnten immer erreicht werden. Seltsam war dabei, des dies erst seit ca. drei Wochen der Fall war.

Auffällig war zudem, das alle betroffenen Kunden bei der Telekom sind, VoIP-Anschlüsse haben und die nicht erreichbaren Ziele bei anderen Provider liegen (aktuell bekannt ist Vodafone, Ecotel und NTTCable). Am Router sollte es nicht liegen, da zum einen unterschiedliche Modelle (z.B. FritzBox, pfSense, Securepoint, …) um Einsatz kommen und die Telefonanlagen sich direkt beim Provider registrieren (die Router machen nur die Interneteinwahl).

Kurios war zudem, das es bei einem Kunden nicht immer die gleichen Ziele waren, bei einem anderem wiederum hundertprozentig reproduzierbar immer die Gleichen, beim nächsten sogar nur wenn ein ISDN-Anschluss angerufen wurde.

„Eigentlich“ sollte es solche Codec-Schwierigkeien wohl nur zwischen VoIP-Endgeräten geben, meinte mal ein Telekom-Techniker, am Beispiel des ISDN-Ziels ist’s dann aber wohl doch eine Provider-Angelegenheit. Jetzt kann man vermutlich haarspalterei betreiben, das schließlich der Übergabepunkt (media gateway) der VoIP auf ISDN wandelt dann quasi das Endgerät darstellt. Sei’s drum.

Jedenfalls wurde weder bei unseren Kunden noch bei den Angerufenen die letzte Zeit irgendetwas geändert. Die Suche nach der Ursache gestaltete sich zudem etwas schwierig, da in den Protokollen nichts vermerkt war und die Telekom-Technik (wir haben da im Laufe der vergangenen Tage mehrere Leute mit beschäftigt) jenseits der üblichen eigenen Tests kaum was getan hat. Eine Hotlinerin meinte sogar zu mir „wie soll man das nur finden“. Wenigstens hatte mich der letzte Hotliner auf die Codecs und mögliche Aushandlungsprobleme aufmerksam gemacht.

Einen SIP- und Network-Trace später hatte man folgendes sozusagen inder Hand:

SIP-Trace:
<--- SIP read from UDP:Ö-IP:5060 --->
SIP/2.0 500 Internal Server Error
Via: SIP/2.0/UDP 192.168.96.5:5060;received=Ö-IP;rport=5060;branch=z9hG4bK48dcd1e1
To: <sip:ZIELRUFNUMMER@tel.t-online.de>;tag=h7g4Esbg_p65543t1507200306m243398c1467152066s1_1792797809-1923613878
From: "QUELLRUFNUMMER" <sip:+49QUELLRUFNUMMER@tel.t-online.de>;tag=as0b893270
Call-ID: 06e56b9908bc690f1116f8561cc3b382@tel.t-online.de
CSeq: 103 INVITE
Contact: <sip:sgc_c@217.0.23.100;transport=udp>
Reason: Q.850;cause=111;text="5"
upported: timer
Content-Length: 0
Network-Trace:
Session Initiation Protocol (500)
 Status-Line: SIP/2.0 500 Internal Server Error
 Message Header
 Via: SIP/2.0/UDP 192.168.96.5:5060;received=Ö-IP;rport=5060;branch=z9hG4bK3aece4f3
 To: <sip:ZIELRUFNUMMER@tel.t-online.de>;tag=h7g4Esbg_p65543t1507662901m951489c1517655816s1_532037588-1736118698
 From: "QUELLRUFNUMMER" <sip:+49QUELLRUFNUMMER@tel.t-online.de>;tag=as1309e071
 Call-ID: 2530625568be80105b2098c105ffcb15@tel.t-online.de
 CSeq: 103 INVITE
 Contact: <sip:sgc_c@217.0.23.100;transport=udp>
 Reason: Q.850;cause=111;text="5"
 Reason protocols: Q.850
 Cause: Protocol error, unspecified (111)
 Text: 5
 Supported: timer
 Content-Length: 0

Der SIP-Fehler „500 Internal Server Error“ ist erstmal relativ nichts sagend. Interessanter ist dann darunter

Reason: Q.850;cause=111;text="5"
Reason protocols: Q.850
Cause: Protocol error, unspecified (111)

Im SIP-Trace habe ich das irgendwie übersehen, erst im Wireshark viel mir das so richtig auf. Danach im Netz gesucht stolpert man sofort über Schwierigkeiten beim Verbindungsaufbau, wenn die Aushandlung des Codecs scheitert.

Daraufhin die Reihenfolge der Codecs im Provider- als auch in den Geräte-Konten in der Askozia geändert (ein Telefonneustart ist übrigens nicht notwendig) und siehe da, es geht. Ob die Änderung weitere/andere Auswirkungen hat und ob alle Schwierigkeiten damit behoben sind, muss man noch sehen.

Die voreingestellte Reihenfolge bei Askozia ist:

G.711 u-law
G.711 A-law
GSM

u- und A-law tauschen und speichern.

An manchen Stellen im Netz liest man zudem das „G.711 u-law“ komplett raus soll (unabhängig von Askozia, bezieht z.B. auf Asterisk im Allgemeinen oder auch Digitalisierungsboxen der Telekom und andere Telefonanlagen).

Nachfolgend ein paar (hoffentlich) hilfreiche Links:

Askozia Wiki – Help for integrators/de – SSH-Zugriff auf AskoziaPBX

Askozia Wiki – Help for integrators/de – Netzwerk-Tracing mit AskoziaPBX (weiter unten ist dann im Anschluss SIP-Trace beschrieben)

Askozia Wiki – Help for integrators – Audio Codecs

Telekom hilft Community – VOIP SIP 606 Fehler

Wikipedia – SIP-Status-Codes


MS SQL Server: Datensicherung auf Netzlaufwerk

$
0
0

Von Haus aus ist keine Datensicherung auf ein Netzlaufwerk oder UNC-Pfad so ohne weiteres mittels Wartungsplan möglich. Gebräuchliche Varianten bestehen darin, erst lokal zu sichern und anschließend diese zu verschieben oder direkt auf den UNC-Pfad zu sichern (sofern das Dienstkonto des MS SQL Servers zuvor im Ziel entsprechend berechtigt wurde, Domänenmitgliedschaft vorausgesetzt).

Bei einem Kunden-Szenario musste aus Platzgründen auf einen Backup-Server gesichert werden, dieser ist nicht Mitglied der Domäne, folglich waren die üblichen Wege keine Option. Nach kurzer Recherche war ermittelt, wie man dennoch direkt auf ein Netzlaufwerk unter Angabe von Anmeldedaten sichern kann:

Um ein Netzlaufwerk zu verbinden wird auf xp_cmdshell zurückgegriffen, dies ermöglicht Windows-Befehle direkt aus der Datenbank-Engine heraus ausführen zu können. Per Voreinstellung ist diese Option deaktiviert. Einschalten kann man diese entweder über das Management Studio oder über eine Abfrage:

Via GUI:

  • Das „MS SQL Management Server Management Studio“ starten und anmelden.
  • Im Objekt Explorer den Server mit der rechten Maustaste anklicken und „Facets“ auswählen.
  • „XPCmdShellEnabled“ von „False“ auf „True“ ändern und auf „OK“ klicken.

Via Abfrage:

Siehe Quellen

Netzlaufwerk verbinden (via Abfrage):

EXEC XP_CMDSHELL 'net use m: \\<HOST>\<SHARE> <PASSWORD> /User:<HOSTNAME><USERNAME> /persistent:yes'

Ein erster Test z.B. durch das Auflisten des Laufwerksinhalts:

EXEC XP_CMDSHELL 'dir m:'

Ggf. die Laufwerksbuchstaben anpassen.

Klappt der Zugriff soweit, können die Wartungspläne entsprechend angepasst werden.

Vorteil dieser Methode ist das die Datensicherung nun auf einen anderen Server der zudem in einen anderen Brandabschnitt erfolgt. Lokal wird Speicherplatz gespart. Theoretisch könnte man mittels VPN sogar direkt an einen anderen Standort sichern, dabei wäre allerdings Verbindungsstabilität, Bandbreite und die Größe der Sicherung zu beachten. Nachteil ist eine zum Zeitpunkt der Sicherung höhere Netzlast und das die Sicherung ggf. länger dauert als lokal (abhängig von der Bandbreite).

Quellen:

MS MSDN Forums – SQL Server 2012 – Cannot Use Network Drive as a Backup Device (Dienstkonto und Rechte)

DBDiggers – Enable and work with XP_CmdShell in SQL Server 2008 R2

MSSQTtips.com – Make Network Path Visible For SQL Server Backup and Restore in SSMS

7-Zip: Protokoll samt eventueller Warnungen oder Fehler erstellen lassen

$
0
0

Die standalone console version von 7-Zip eignet sich wunderbar für Skripte zum Automatisieren von Archivierungen, Datensicherungen usw. Möchte man ein Protokoll erhalten, welches sowohl die allgemeinen Ausgaben als auch evtl. Fehlermeldungen enthält, muss eine Kleinigkeit beachtet werden.

In Batch-Skripten unter Windows kann i.d.R. einfach die Standard-Ausgabe umgeleitet werden:

7z.exe a <Archivname.7z> <Quelle>\ > 7-Zip-Log.txt

Dies ergibt ein Protokoll wie dieses:

7-Zip [64] 16.04 : Copyright (c) 1999-2016 Igor Pavlov : 2016-10-04

Scanning the drive:
67 folders, 722 files, 204362247 bytes (195 MiB)

Creating archive: <Archivname.7z>

Soweit so gut. Kommt es allerdings zu einer Warnung oder zu einem Fehler, so fehlt dies im Protokoll. Über den Rückgabewert (Errorlevel) kann man auf jeden Fall das Ergebnis von 7-Zip erhalten und so z.B. eine „Fehlerstatus-Datei“ erstellen:

if not %errorlevel%==0 echo %date% 7-Zip - Fehler - %errorlevel% > 7-Zip-Error.txt

Dieses Konstrukt funktioniert bei uns mittels Aufgabe wunderbar. Aber leider war im Fehlerfall immer eine manueller Durchlauf nötig um Anhand der Ausgabe zu sehen, woran es hängt. Beim umfangreichen „Archiv-Bau“ eine minunter langwierige Aufgabe. Daher musste eine Verbesserung her.

Damit nicht nur die Standard-Ausgabe, sondern auch die Fehlerausgabe umgeleitet wird, muss lediglich eine kleine Ergänzung hinzu kommen:

7z.exe a <Archivname.7z> <Quelle>\ > 7-Zip-Log.txt 2>&1

Es muss also nur “ 2>&1″ angehängt werden. Dies sorgt dafür, das die Ausgaben zusammengefasst werden und letztlich ins Protokoll gelangen. Führt man den Befehl bzw. das Skript nun aus, sieht man allerdings nichts mehr in der Eingabeaufforderung, dies ist nur ein kleiner Wehrmutstropfen, schließlich läuft dieses nachts als Aufgabe.

Im Fehlerfall sieht das Protokoll z.B. so aus:

7-Zip [64] 16.04 : Copyright (c) 1999-2016 Igor Pavlov : 2016-10-04

Scanning the drive:
67 folders, 722 files, 204362247 bytes (195 MiB)

Creating archive: <Archivname.7z>



ERROR:
Duplicate filename on disk:
<Pfad\Dateiname.pdf>
<Pfad\Dateiname.PDF>

Die Leerzeilen zwischen „Creating…“ und „ERROR:“ sind kein Fehler, sondern entstehen beim Durchlauf. In diesem Beispiel gab es beim Packen von Dateien die auf einem Linux-Server liegen einen Konflikt. Windows unterscheidet nicht zwischen Groß- und Kleinschreibung, unixoide Betriebssysteme wie Linux allerdings schon.

Der Rückgabewert war in diesem Fall eine Zwei für Warnung. Die verfügbaren Errorlevels lauten übrigens:

Code / Meaning
0 / No error
1 / Warning (Non fatal error(s)). For example, one or more files were locked by some other application, so they were not compressed.
2 / Fatal error
3 / change identified (does this indicate a change in the archive file itself or a difference when comparing archive file contents to the original source?)
7 / Command line error
8 / Not enough memory for operation
255 / User stopped the process

Quelle: 7-Zip 7z.exe ERRORLEVEL Codes

Anbei ein paar Links mit weiteren Infos und Quellen:

7-Zip – Discussion – Output log of 7zip extract

Rob van der Woude’s Scripting Pages – Batch files – Redirection

Windows XP Professional Product Documentation – Using command redirection operators

Windows das „Beepen“ abgewöhnen

$
0
0

Lange nicht mehr gehabt, war vielleicht Glück, aber aus aktuellem Anlass ein kleiner Beitrag:

In unserer Werkstatt werkelt gerade ein Lenovo IdeaPad an den Windows Updates via WSUS Offline. Nach jedem Durchlauf des Skripts erfolgt die Aufforderung zum Neustart zusammen mit einem Beep. Bei einem frisch installiertem Windows 7 sind das einige Durchläufe und daher geht einem das Gepiepe relativ schnell auf den Keks. Stummschalten und Windows-Klänge deaktivieren halfen nicht.

Aus Windows XP-Tagen kannte ich noch folgende Einstellung:

  • „regedit“ ausführen
  • Folgende Werte ändern:
    [HKEY_CURRENT_USER\control panel\sound]
    
    "Beep"="No"
    "ExtendedSounds"="No"
  • Computer neustarten.

Tja, das half leider auch nicht, selbst dann nicht wenn man die Änderung auf die Maschine (HKLM) oder alle anderen Benutzer anwendete. Kurz im Netz gesucht und gefunden die Lösung ich hab‘ (Meister Yoda lässt grüßen):

  • „regedit“ ausführen
  • Folgenden Wert ändern:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Beep]
    
    "Start" von "1" zu "4" ändern.
  • Computer neustarten.

Endlich wieder Ruhe. Das Ganze hat übrigens nichts speziell mit Lenovo zu tun, sondern es kommt darauf an, ob beim jeweiligen Computer ein Beeper verbaut ist bzw. das BIOS den Beep-Aufruf ggf. über einen dedizierten Lautsprecher oder evtl. über die Soundkarte ausgibt.

Quelle:

Lenovo – English Community – ThinkPad Notebooks – ThinkPad: S Series, ThinkPad Yoga and Twist Laptops – Beep while typing – Yoga 14 – Windows 10 Pro

Yahoo und Thunderbird: [CLIENTBUG] SELECT Command is not valid in this state

$
0
0

Einer Kundin war der Weg über den Browser um Mails bei Yahoo zu lesen oder zu versenden zu umständlich, von daher sollte Thunderbird zum Einsatz kommen. Die Einrichtung verlief gewohnt unkompliziert, aber beim ersten Abruf der Mails kam es zu einer bösen Überraschung.

Es erscheint eine Fehlermeldung mit folgendem Inhalt:

Der aktuelle Vorgang in Posteingang ist fehlgeschlagen.
Der Server des Kontos "name@yahoo.de“ antwortete:
[CLIENTBUG] SELECT Command is not valid in this state.

Kurz danach im Netz gesucht stolpert man darüber, das es dieses Problem schon seit Wochen, eigentlich bereits Monaten, gibt und nicht nur Thunderbird betroffen ist. Offenbar hat Yahoo etwas geändert, was wohl nicht Standard-konform ist.

Jedenfalls finden sich einige mögliche Lösungswege, für manche haben diese funktioniert, für andere wieder nicht. Wir hatten bislang mit keiner genannten Lösung erfolg. Anbei dennoch ein paar Links, vielleicht hilft es ja dem einen oder anderen. Falls jemand eine aktuell funktionierende Lösung hat, kann er bzw. sie sich gerne via Kommentar melden.

Bei Yahoo weniger sicherere Apps zulassen:

bartlweb – Blog – Yahoo-Mails lassen sich seit Juli 2017 nicht mehr mit Thunderbird abrufen

IMAP-Server auf „imap.mail.att.net“ ändern:

Yahoo – Help Community – Login to server imap.mail.yahoo.com failed from Thunderbird

Benutzernamen von „name@yahoo.de“ auf Namen kürzen:

mozillaZine – Yahoo – 7 [CLIENTBUG] SELECT command is not valid in this state

Bei Yahoo App-Kennwort festlegen:

Yahoo – Help Community – [CLIENTBUG] SELECT command is not valid in this state

Bemerkung: Die genannten Optionen wurden bei unserer Kundin nicht im Yahoo-Konto angezeigt.

Dann gibt’s da noch:

  • Kennwort im Thunderbird löschen, neustarten und neu setzen (ohne Erfolg)
  • Neues Thunderbird-Profil erstellen (ohne Erfolg)
  • Kennwort bei Yahoo und in Thunderbird ändern (ohne Erfolg)

Vorläufiges Ende dieser Geschichte: Die Kundin ist zu GMX gewechselt.

Windows: Benutzerprofil mit Robocopy kopieren

$
0
0

Möchte man im Windows-Domänennetzwerk ein Benutzerprofil auf einen neuen bzw. anderen Computer übertragen, kann man dies z.B. mit Hilfe der servergespeicherten Profile tun. Ist dies allerdings nicht gewünscht oder geht es nur darum, ein Profil beim Rechnerwechsel mitzunehmen, kann man dieses auch einfach mit Robocopy kopieren.

Damit der Vorgang erfolgreich ist, darf der Benutzer nicht angemeldet sein. Anbei ein Beispiel-Skript, das als Domänen-Administrator ausgeführt werden muss:

@echo off

set source=\\<computername>\c$\Users\<username>
set destination=C:\Users\<username>

robocopy "%source%" "%destination%" /ZB /COPYALL /MIR /XJ /R:0 /W:0 /NP /LOG:profile.log /TEE

Vorab kann man durch Anhängen von „/L“ erstmal einen Test-Durchlauf durchführen, ohne das etwas kopiert wird.

Bislang wurde dieses Skript erfolgreich unter Windows 7 angewendet, vermutlich funktioniert es unter Windows 8.x und neuer genauso.

Troubleshooting

Findet Windows das Profil nicht nach der Anmeldung oder erzeugt ein Neues, so muss der Pfad in der Registry geändert werden:

  • Unter „Start – Ausführen/Suchen“ den Befehl „regedit“ ausführen.
  • Zu folgenden Schlüssel wechseln:
    HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList
  • Bei der entsprechenden User-SID den Eintrag „ProfileImagePath“ ändern.
Viewing all 2174 articles
Browse latest View live