Konvertierung von m4a Dateien nach mp3

Leider können nicht alle Car-Audio Systeme M4A-Dateien abspielen. Darum bin ich gelegentlich mit der Aufgabe konfrontiert M4A-Dateien nach MP3 zu konvertieren, was mit ffmpeg.exe und einem kleinen Script an der Eingabeaufforderung ohne große Probleme funktioniert.

Dazu habe ich den aktuellsten Windows-Build von ffmpeg herunter geladen und in ein Verzeichnis auf meinem Server (SBS) entpackt.

https://ffmpeg.zeranoe.com/builds/

Danach in das Verzeichnis mit den M4A-Dateien gewechselt und folgenden Aufruf ausgeführt:

for /f "tokens=1,2 delims=." %a in ('dir *.m4a /b') do \\sbs\xapps\ffmpeg\bin\ffmpeg.exe -i "%a.%b" -b:a 256K -vn "%a.mp3"
  • dir *.m4a /b liefert mir alle M4A-Dateien zurück
  • for /f …. zerlegt die Dateien in den eigentlichen Dateinamen und die Endung (welche nach der Konvertierung .mp3 sein soll)
  • ffmpeg.exe erstellt die entsprechende mp3 Datei mit einer Sampling-Rate von 256Kbit/s

That’s it … ging recht einfach Smile Die M4A-Dateien habe ich dann noch im Anschluss gelöscht.

Enjoy it, b!

Verknüpfung von Outlook.com mit Outlook 2013

Wird Outlook 2013 zum Abruf von Mails aus Outlook.com oder Outlook.de verwendet, kann es zu Problemen bei der Verknüpfung des Accounts kommen. Diese Mail haben wohl einige von uns erhalten …

image

… und auch versucht die im folgenden KB-Artikel empfohlene Vorgehensweise zum Verknüpfen von Outlook.com und Outlook 2013 versucht nach zu vollziehen.

Das hat bei mir leider nicht funktioniert, Outlook 2013 war nicht in der Lage heraus zu finden wie das Konto von Outlook.com konfiguriert werden sollte.

Die Lösung war die “Manuelle” Konfiguration in Outlook 2013 unter Auswahl der 2ten Option (Outlook.com or Exchange ActiveSync compatible service / Outlook.com oder Exchange ActiveSync kompatibler Service). Hier muss dann aber ein Mail-Server mit angegeben werden. Hier hat in meinem Fall immer die folgende Adresse funktioniert.

s.outlook.com

Alternativ kann auch der folgende Alias probiert werden.

m.hotmail.com

Damit war Outlook 2013 problemlos in der Lage das Outlook.de Konto zu konfigurieren.

Enjoy it, b!

NTDS Backup Error 1168 (1032)

Manche Fehler sind schon fieß! Auf einem Windows Server 2012 R2 DC (Windows Server 2012 R2 mit installierter Small Business Essential Rolle) hatte ein Kunde seit einiger Zeit den folgenden Fehler im Health Report des Servers.

image

Analog dazu die entsprechende Meldung im Ereignisprotokoll (der Health Report holt diese auch nur dort heraus).

image

Um diesen Fehler zu reparieren gibt es hinreichend viele Links, Artikel und Blogs im Web:

https://support.microsoft.com/de-de/kb/280364

https://social.technet.microsoft.com/Forums/windowsserver/en-US/1a0d9633-c497-4cab-bbff-053e2a056f6d/event-id-1168-active-directory?forum=winserverDS

Welche aber alle nicht funktionieren (zumindest in diesem Fall hat das nicht geklappt). Im Application Eventlog habe ich dann immer die folgenden Einträge gefunden…

image

… die auf ein Problem mit dem VSS Writer hindeuten.

image

Eine Abfrage der Registry ergab aber, dass die Einstellungen passen müssten.

C:\Temp>reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Para
meters

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters
    Src Srv objectGuid    REG_BINARY    08E518AF5742FA48ACCAFDAD6F518DE4
    System Schema Version    REG_DWORD    0x45
    Root Domain    REG_SZ    DC=xxx,DC=local
    Configuration NC    REG_SZ    CN=Configuration,DC=xxx,DC=local
    Machine DN Name    REG_SZ    CN=NTDS Settings,CN=WP-SBS-1,CN=Servers,CN=Stan
dardname-des-ersten-Standorts,CN=Sites,CN=Configuration,DC=xxx,DC=local
    Src Root Domain Srv    REG_SZ    WP-SBS-2.xxx.local
    DsaOptions    REG_SZ    1
    IsClone    REG_DWORD    0x0
    ServiceDll    REG_EXPAND_SZ    %systemroot%\system32\ntdsa.dll
    DSA Working Directory    REG_SZ    C:\Windows\NTDS
    DSA Database file    REG_SZ    C:\Windows\NTDS\ntds.dit
    Database backup path    REG_SZ    C:\Windows\NTDS\dsadata.bak
    Database log files path    REG_SZ    C:\Windows\NTDS
    Hierarchy Table Recalculation interval (minutes)    REG_DWORD    0x2d0
    Database logging/recovery    REG_SZ    ON
    DS Drive Mappings    REG_MULTI_SZ    c:\=\\?\Volume{ca08668b-ea69-4e87-a59a-
c848a2f1fea5}\
    DSA Database Epoch    REG_DWORD    0x2ba5
    Strict Replication Consistency    REG_DWORD    0x1
    Schema Version    REG_DWORD    0x45
    ldapserverintegrity    REG_DWORD    0x1
    Global Catalog Promotion Complete    REG_DWORD    0x1

Das Volume für das DS Drive ist korrekt und die anderen Einträge stimmen auch, allerdings hatte der VSS Writer ein Problem …

c:\temp> vssadmin list writers
...

Writer name: 'NTDS'
   Writer Id: {b2014c9e-8711-4c5c-a5a9-3cf384484757}
   Writer Instance Id: {f86a8c78-c7e5-4f16-b1fd-09abd7eaff32}
   State: [11] Failed
   Last error: Non-retryable error

...

… das sich auch nicht durch einen Neustart beheben ließ. Daraufhin habe ich die VM auf dem Hyper-V Host exportiert und in meiner Testumgebung wieder importiert und gestartet … der Fehler war weg! Ein Vergleich der beiden Hosts / VMs ergab, dass auf dem Host welcher die VM mit dem Fehler bereit stellt die Hyper-V Replikation aktiv war. Per se, ist das kein Problem da auch im Testlab eine Replika am Laufen war – nur eben mit einer anderen Einstellung!

image image
Fehler 1168 im Eventlog vorhanden KEIN Fehler im Eventlog vorhanden

Nachdem auf dem produktiven Hyper-V Host die Replikation entsprechend angepasst wurde, war dort der Fehler verschwunden.

Enjoy it und noch ein gutes Neues Jahr 2017, b!

Routing auf einem Hyper-V Server 2016

Mit ein paar Handgriffen kann ein Hyper-V Server zum Routen von IP bewegt werden.

Ausgangslage

  • Server mit 2 Netzwerkkarten (172.16.16.253 und 192.168.120.1)
  • Fritz!BOX für den Internet-Zugang
  • Netzwerk an der Fritz!Box ist 172.16.19.0/24, das Gateway ist immer die 1 (also die Fritz!BOX selbst)

Der Server soll IP-Pakete vom Subnetz 192.168.120.0/24 ins 172er Netzwerk übertragen, und umgekehrt sollen Datenpakete aus dem 172er Netzwerk in das 192er Netzwerk geroutet werden. Alle Hosts im 172er Netzwerk haben die Fritz!BOX selbst als Gateway eingetragen. Daher muss dieser gesagt werden, wohin Pakete mit 192.168.120.0 geroutet werden sollen, nämlich auf die IP-Adresse 172.16.16.253 welches den ersten Adapter des Servers darstellt.

Konfiguration Fritz!BOX

Dazu wird folgende Route in der Fritz!BOX eingetragen:image

Die Konfiguration erfolgt über innerhalb der Fritz!BOX:

Heimnetz / Heimnetzübersicht / Netzwerkeinstellungen / Statische Routingtabelle

Konfiguration des Hyper-V Servers mit PowerShell

Auf dem Hyper-V Server sind die beiden Netzwerk-Adapter wie folgt konfiguriert:

Ethernet 2 172.16.16.253/24 Gateway 172.16.16.1
Ethernet 4 192.168.120.1/24 Gateway 192.168.120.1

Mit PowerShell ist die Konfiguration einfach.

Im ersten Schritt schauen wir uns an, ob und welche IP-Adressen schon vergeben sind.

PS C:\Temp> Get-NetIPAddress |ft

ifIndex IPAddress                                       PrefixLength PrefixOrigin SuffixOrigin AddressState PolicyStore
------- ---------                                       ------------ ------------ ------------ ------------ -----------
6       192.168.110.1                                             24 Manual       Manual       Preferred    ActiveStore
3       172.16.16.253                                             24 Manual       Manual       Preferred    ActiveStore
4       169.254.19.2                                              16 WellKnown    Link         Preferred    ActiveStore
1       127.0.0.1                                                  8 WellKnown    WellKnown    Preferred    ActiveStore

Wir sehen, der Adapter mit dem Interface-Index 3 (ifIndex) hat eine Adresse aus dem 172er Netzwerk. Der Adapter mit dem ifIndex 4 hat noch eine APIPA-Adresse aus dem 169er Netzwerk und soll nun die IP aus dem 192er Netzwerk bekommen.

Der Name des Adapters lässt sich übrigens mit Get-NetAdapter ermitteln

PS C:\Temp> Get-NetAdapter

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
Ethernet 2                Microsoft Hyper-V Network Adapter #2          3 Up           00-15-5D-10-DB-00         2 Gbps
Ethernet 3                Microsoft Hyper-V Network Adapter #3          6 Up           00-15-5D-10-DB-01        10 Gbps
Ethernet                  Microsoft Hyper-V Network Adapter             4 Up           00-15-5D-10-DB-02        10 Gbps

Nun konfigurieren wir mit PowerShell die IP-Adresse aus dem 192.168.120.0 Netzwerk.

PS C:\Temp> New-NetIPAddress -InterfaceIndex 4 -IPAddress 192.168.120.1 -PrefixLength 24 -DefaultGateway 192.168.120.1


IPAddress         : 192.168.120.1
InterfaceIndex    : 4
InterfaceAlias    : Ethernet
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Manual
SuffixOrigin      : Manual
AddressState      : Tentative
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : ActiveStore

IPAddress         : 192.168.120.1
InterfaceIndex    : 4
InterfaceAlias    : Ethernet
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Manual
SuffixOrigin      : Manual
AddressState      : Invalid
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : PersistentStore

Abschließend müssen wir noch die Weiterleitung von IP-Paketen aktivieren (IP-Forwarding).

PS C:\Temp> Set-NetIPInterface -InterfaceIndex 4 -Forwarding Enabled

Ich habe das auf einem relativ neuem Microsoft Hyper-V Server 2016 durchgeführt, sollte aber auch auf dem Hyper-V Server 2012 R2 und jedem anderen Windows Server funktionieren, welcher die PowerShell-Befehle unterstützt. Ansonsten ist Netsh.exe unser Freund.

Enjoy it, b!

Idendität gestohlen?

Das Hasso-Plattner-Institut stelt einen Idendity Leak Checker bereit (HPI Idendity Leak Checker) welcher über prüft ob die eigene Mail-Adresse, welche gelegentlich auch zur Anmeldung an verschiedenen Online-Diensten verwendet wird in einem geraubten Idenditätsdatensatz auftaucht und damit frei zugänglich ist.

image

Die Antwort wird dann an die angegebene Mail-Adresse geschickt.

Ich musste nur das Passwort bei Adobe mal wieder ändern, alles andere war grün Smile

Enjoy it, b!

Transcript und externe Befehle in PowerShell

PowerShell bietet mit dem Transcript-Befehl eine nach meiner Meinung sehr effektive und elegante Möglichkeit an, die Ausgaben von Befehlen an STDOUT und STDERR auf zu zeichnen. Leider klappt das mit externen Befehlen welche aus dem PowerShell-Script heraus aufgerufen werden nicht zuverlässig. Eine Lösung hier ist die Ausgabe von STDOUT und STDERR nach Transcript um zu leiten.

Hier mal ein Beispiel-Code dazu:

$ErrorActionPreference="SilentlyContinue"
Stop-Transcript | out-null
$ErrorActionPreference = "Continue"
 
$Log = "C:\Temp\output.log"
Start-Transcript -Path $Log -Append
 
# Umleiten von STDOUT und STDERR (2>&1) nach transcript:
befehl.exe 2>&1 | out-host
 
Stop-Transcript

Dieser Workaround hat mir neulich bei einem Script sehr geholfen!

Enjoy it, b!

Kleines Gimmick große Wirkung

Manchmal frage ich mich, wäre es darauf noch angekommen? Über Geschmack lässt sich bekanntlich streiten, für mich ist das Surface Book von Microsoft eines der genialsten Teile, welches in letzter Zeit den Notebook-Markt betreten hat. Allerdings hat Microsoft eine Kleinigkeit vergessen, nämlich ein Klettband um das Stromkabel sauber auf zu rollen!

WP_20161017_07_31_06_Pro 

Dieses Manko kann relativ einfach behoben werden. Ich habe hier, wie auf dem Bild zu sehen ist, ein Akasa cablet tie (Akasa AK-TK-02) verwendet. Nicht getestet, aber wahrscheinlich auch eine Option wäre folgendes Klettband aus dem Angebot von Amazon.

Enjoy it, b!