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

VeraCrypt per Skript steuern

$
0
0

VeraCrypt lässt sich dank CLI wunderbar via Verknüpfungen oder Skripte steuern. So bastelte ich mir Skripte für die Portable-Ausgabe die unter Windows automatisch erhöhte Rechte (zum Laden des Treibers) anfordern als auch das gewünschte Volume/Container einhängen und den Explorer öffnen.

Hintergedanke der Geschichte ist, das auf einem USB-Stick VeraCrypt-Portable hinterlegt sein soll. Durch möglichst nur einen Doppelklick (auf die RunAsAdmin.cmd) soll die Kennwort-Abfrage erfolgen.

Da solch ein Stick ggf. an unterschiedlichen Computern verwendet wird und nicht überall Erhöhte- bzw. Administrator-Rechte direkt verfügbar sind, war die vorige Anforderung nach eben diesen relevant. Daher wird zunächst mittels AutoIt die erhöhten Rechte eingefordert und dann fortgefahren:

RunAsAdmin.au3:
; AutoIt TrayIcon ausblenden

#NoTrayIcon

; Erhöhte Rechte anfordern

#RequireAdmin

; Skript ausführen

Run ($CmdLine[1])
RunAsAdmin.cmd:
@echo off

title RunAsAdmin VeraCrypt Portable

echo.
echo Bitte warten...
echo.

rem Unter/Als 32- oder 64-bit ausfuehren

if exist "C:\Program Files (x86)" (
start AutoIt3_x64.exe RunAsAdmin.au3 VeraCrypt.cmd
) else (
start AutoIt3.exe RunAsAdmin.au3 VeraCrypt.cmd
)

Für die weitere Bequemlichkeit sollte der nächste freie Laufwerksbuchstabe als auch der Explorer automatisch geöffnet werden. Das macht VeraCrypt durch die Parameter „/l /a“ (kann man angeben, muss man aber nicht) und „/e“ von selbst. Zu guterletzt sollte durch einen Tastendruck das Volume bzw. der Container wieder ausgehängt werden. Das Ganze ohne nochmals die erhöhten Rechte anzufordern.

VeraCrypt.cmd:

@echo off

title VeraCrypt Portable wird ausgefuhert

echo.
echo Bitte warten...
echo.

rem VeraCrypt-Container einhaengen und Explorer oeffnen

cls

echo.
echo VeryCrypt Portable wird gestartet und
echo der Container wird nach Eingabe des Kennworts eingehaengt
echo.

start /wait VeraCrypt\VeraCrypt.exe /q /v Daten /e /m label=VeraCrypt

rem Auf beliebige Taste warten

cls

echo.
echo Druecken Sie eine beliebige Taste,
echo um den VeraCrypt-Container auszuhaengen und
echo das Programm zu beenden.
echo.

pause > nul

rem Alle VeraCrypt-Container aushaengen

start VeraCrypt\VeraCrypt.exe /q /d

P.S.: Die Skripte funktionieren natürlich auch auf einer Festplatte oder SSD.


Windows: *.msi leichter entpacken

$
0
0

Muss man öfter Installationsdateien aus WIndows Installer-Setups entpacken, geht das bedingt z.B. mit 7-Zip, mit Tipperei in der Eingabeaufforderung (msiexec…) oder ganz bequem mit lessmsi.

Beim Versuch das aktuelle Setup von TightVNC zu entpacken stolperte ich zuerst über die Ausgabe von 7-Zip, die zwar prinzipiell funktioniert, man dann aber die Dateien noch händisch umbenennen darf.

Mit msiexec hatte ich diesmal überhaupt kein Glück, da ständig gemeckert wurde, mit dem Paket würde etwas nicht stimmen. Witzigerweise verwende ich genau diese Setup-Datei aktuell für alle TightVNC-Installationen.

Zu guterletzt suchte ich dann im Netz nach einem Plan C und fand durch

The Backroom Tech – The Best MSI Extractor

dann eben lessmsi. Über eine simple GUI lassen sich einzelne oder alle Dateien entpacken:

Auf Wunsch geht das ebenfalls via CLI und Explorer-Integration.

Debian 9 Stretch: gtop installieren

$
0
0

gtop ist eine schicke im Terminal laufende top-Alternative und eignet sich mit seinem Dashboard für das System-Monitoring.

Für eine erfolgreiche Installation unter Debian 9 Stretch wird nicht viel benötigt. Die wichtigste Voraussetzung ist Node.js. Allerdings reicht die Version aus den Standard-Paketquellen nicht aus.

Am besten man verwendet die Repositories der Node.js-Macher:

curl -sL https://deb.nodesource.com/setup_11.x | bash -
apt-get install -y nodejs

Ist der Grundstein gelegt kann das Tool bequem installiert werden:

npm install gtop -g

Im Terminal wird es dann schlicht wie folgt aufgerufen:

gtop

Quellen:

NodeSource Node.js Binary Distributions

Bleeping Computer – How to install Gtop on Ubuntu

Windows: Open-Shell-Menü (Classic Shell-Alternative)

$
0
0

Nachdem die Entwicklung der Classic Shell eingestellt und der Quellcode freigegeben wurden, gibt es z.B. mit dem Open-Shell-Menü einen potentiellen Nachfolger.

Wer die Classic Shell bereits unter Windows 8.1 oder Windows Server 2012 R2 einsetzt, wird sich wohl kaum Gedanken um ausbleibende Updates machen müssen, schließlich ändert sich an diesen Systemen nicht (mehr) allzuviel.

Anders sieht die Welt bei Windows 10 aus. Nicht nur wegen dem neuen durchaus gewöhnungsbedürftigem Startmenü, sondern auch wegen der halbjährlichen Upgrades und dem Wegfallen alter Funktionen auf die Classic Shell zurückgreift.

Auf den ersten Blick, zumindest beim Setup, gibt es keine großen Unterschiede. Auch beim ersten Start begrüsst einem der gewohnete Assistent. Differenzen gibt es dann naturgemäss bei den Einstellungen, speziell zu Windows 10.

(Imho) Findet sich der alt-gediente Windows-Anwender mit dem Open-Shell-Startmenü unter Windows 10 schneller bzw. leichter zurecht.

Das Windows-eigene Startmenü kann wie von Classic Shell gewohnt durch einen Druck auf die Shift-Taste und einem Mausklick wieder aufgerufen werden. Ferner bleibt es dabei, das man die getätigten Einstellungen aus der Registry ex- und bei einem anderen Benutzer oder Computer importieren kann.

AutoIt: Alle Fenster eines Prozesses ausblenden

$
0
0

Grundsätzlich ist es mit AutoIt leicht, ein Programm mit ausgeblendeten bzw. verstecktem Fenster zu starten.

Die einfachste Syntax wäre:

run("Irgendeine.exe", "", @SW_HIDE)

Das funktioniert super, sofern das Programm nur ein Fenster öffnet. Starten allerdings mehrere Fenster z.B. der Reihe nach, so bleibt das Erste zwar versteckt, die nachfolgenden werden allerdings angezeigt.

Das kann man zwar z.B. über

WinSetState("Fenstertitel", "", @SW_HIDE)

weiter eingrenzen, allerdings geschieht diese Änderung mit kurzer Verzögerung. Das bedeutet, das Fenster „blitzt“ kurz auf. Kennt man zudem nicht alle nachfolgenden Fenstertitel, wird das Unterbinden der Anzeige unter Umständen unmöglich.

Problematisch kann zudem sein, wenn man ein Fenster über „WinSetState“ direkt bzw. kurz nach dem Start einer Anwendung versteckt, das der gesamte Programmstart dann nicht gelingt.

Abhilfe kann schaffen, das Programm auf einem versteckten Desktop zu starten. Diese Lösung fand sich im Forum:

_shellExecuteHidden (allow no windows to become visible)

Als simples AutoIt-Programm habe ich einfach die Funktion zusammen mit den nachfolgenden Zeilen in ein Skript gepackt und als ausführbare Datei kompiliert:

#NoTrayIcon

$CMD = $CmdLine[1]

_shellExecuteHidden($CMD)

; Ab hier kommt die Funktion
...

Hinweis: Ein Download von winapiex ist nicht notwendig, da dieses als UDF in AutoIt mittlerweile enthalten ist.

Die Syntax lautet z.B.:

RunCompletelyHidden.exe C:\Windows\System32\Notepad.exe

Download

Im Archiv ist der Quellcode als auch eine 32- und 64-bit Exe-Datei enthalten:

RunCompletelyHidden.zip

Einschränkungen

Leider ist es mir bislang nicht gelungen, z.B. Text oder überhaupt das Vorhandensein ein auf diese Art ausgeblendeten Fensters/Programms zu ermitteln. Da muss ich dann leider dazusagen, das ich kein Entwickler bin. Falls jemand eine Idee hat, dann raus damit!

MailStore Home: Versteckt ausführen und Archivieren mit Rückgabewert

$
0
0

Zum Thema Automatisieren von MailStore Home gab es bereits Beiträge:

MailStore Home: Automatisch archivieren und bei Erfolg beenden

MailStore Home von 4.2 auf 5.0 updaten + Automatisierung der Archivierung

Auf Basis des letzten Beitrags folgt nun eine etwas aufgebohrtere Variante.

Gleich Vorweg, es gibt zwei Möglichkeiten, MailStore Home versteckt auszuführen. Die erste bietet die Möglichkeit einer Auswertung, hat aber den Nachteil, das, wenn auch nur kurz, das eine oder andere Fenster erscheint.

Teilweise verteckt ausführen mit Auswertung

In der vorigen Variante war es so, das bei Erfolg MailStore Home geschlossen wurde. Das Ganze wurde recht simple umgesetzt, in dem in der Fortschrittsanzeige nach dem entsprechenden Abschlusssatz gesucht wurde.

Die Prüfung auf den Abschluss der Archivierung erfolgt nun auf Basis des vorhandenseins der Schaltfläche „Details…“. Diese erscheint in der Fortschrittsanzeige erst, wenn die Aufgabe abgeschlossen wurde. Als nächstes wertet man aus, ob die Archivierung erfolgreich war oder eben nicht.

Diese erweiterte Version ermöglicht über die Auswertung des Rückgabewertes im Anschluss an die Ausführung der Archivierung dann z.B. eine Alarmeriung per Mail o.ä.

Das AutoIt-Skript inkl. Kommentare sieht dann so aus:

; AutoIt TrayIcon ausblenden

 #NoTrayIcon

; Parameter übergeben 
 
 $MailStoreCMD = $CmdLine[1]

; MailStore Home ausführen 

 Run($MailStoreCMD, "", @SW_HIDE)

; Das Auslesen von verstecktem text aktivieren

 Opt ("WinDetectHiddenText", 1)
 
; Die Fortschrittsanzeige ausblenden

While 1

; If WinExists ("MailStore Home") Then
  ; WinSetState ("MailStore Home", "", @SW_HIDE) <- verhindert den erfolgreichen Start des Programms
  ; WinSetState ("MailStore Home", "", @SW_MINIMIZE) <- Dann erscheint wieder das Hauptfenster
; EndIf

 If WinExists ("Fortschrittsanzeige") Then
  WinSetState ("Fortschrittsanzeige", "", @SW_HIDE)
  ExitLoop
 EndIf
 
WEnd

; Auf den Abschluss der Archivierung warten und den Rückgabewert ermitteln
; 0 = Alles OK
; 1 = Fehler/Warnung

While 1

  If WinExists ("Fortschrittsanzeige", "Details...") Then
   If WinExists ("Fortschrittsanzeige", "Der Vorgang wurde erfolgreich abgeschlossen.") Then
    $ExitCode = 0
   Else
    $ExitCode = 1
   EndIf
   ; If WinExists ("Fortschrittsanzeige", "Der Vorgang wurde abgeschlossen mit Fehlern.") Then $ExitCode=1
   ProcessClose ("MailStoreHome.exe")
   Exit ($ExitCode)
  EndIf
  Sleep (500)
  
WEnd

Aufgerufen als kompilierte Exe-Datei wird es dann zusammen mit MailStoreHome:

start /wait "" HMSHwE_x64.exe "MailStoreHomePortable\Application\MailStoreHome.exe /c archive --id=1"

Der Rückgabewert kann wie gewohnt per Errorlevel abgefragt werden. 0 bedeuet Erfolgreich, größer als 0 Warnung/Fehler.

start /wait "" HMSHwE_x64.exe "MailStoreHomePortable\Application\MailStoreHome.exe /c archive --id=1"
if %errorlevel% gtr 0 smtpsend.exe...

Download

Das Archiv enthält den Quellcode und jeweils eine Exe-Datei für 32- und 64-bit.

HMSHwE.zip

Nebenbei bemerkt: HMSHwE bedeutet „Hide MailStore Home with Errorlevel“

Vollständig versteckt ausführen ohne Auswertung

Um MailStore Home vollständig versteckt auszuführen kann man auf die „RunCompletelyHidden.exe“ aus dem Beitrag AutoIt: Alle Fenster eines Prozesses ausblenden zurückgreifen:

RunCompletelyHidden.exe C:\Skripte\MailStoreHome.cmd
MailStoreHome.cmd:
start "" C:\MailStoreHomePortable\Application\MailStoreHome.exe /c archive --id=1

Diese Methode hat allerdings den Nachteil, das man (bislang) nicht den Status bzw. Text der „Fortschrittsanzeige“ abrufen kann. Folglich weiß man nicht, ob der Job mit welchem Ergebnis abgeschlossen wurde.

Um MailStore Home dann dennoch zu beenden könnte man nach einer Pause den Prozess beenden. Folgende Zeilen zur „MailStoreHome.cmd“ hinzufügen:

timeout /t 360
taskkill /im mailstorehome.exe /f

Windows: Unison mit grafischer Oberfläche einrichten

$
0
0

Unison ist ein mächtiges Synchronisations-Tool, das sowohl unter MAC, Linux als auch Windows läuft. Sozusagen ab Werk handelt es sich um ein Kommandozeilen-Werkzeug. Unter anderem für Windows gibt es eine Ausführung mit grafischer Oberfläche.

Unison steht für Windows in zwei Varianten zur Verfügung. Verdeutlichen kann man das mit den zum Zeitpunkt des Schreibens dieses Beitrags aktuellen Versionen (Stand: 14.11.2018).

Herunterladen kann man diese z.B. auf GitHub:

https://github.com/bcpierce00/unison/releases

Die neuere Version vom 27.Januar 2018 findet sich in dem Archiv „unison-windows-2.51.2-text.zip“. „text“ steht dabei (vermutlich) für Text-Konsole, also Eingabeaufforderung, Kommandozeile oder wie auch immer man es nennen mag.

Möchte man eine für Windows-typische Oberfläche haben, so muss man auf die Version vom 29. September 2016 zurückgreifen. In dem Archiv „Unison-Windows-2.48.4.zip“ findet sich die Datei „unison 2.48.4 GTK.exe“.

Wie der Dateiname schon andeutet, wird GTK benötigt, damit die Ausführung klappt. Möchte man dieses nun nicht extra installieren, kann man die Installationsdatei entpacken, einen Ordner umbenennen und temporär per Batch-Skript die „Path“-Umgebungsvariable erweitern.

GTK vorbereiten

Unison GTK ausführen

Ein Batch-Skript erstellen und folgende Zeilen einfügen:

@echo off

title Unison GUI

rem Pfad-Variablen um GTK erweitern

 set GTKPath=..\gtk2-runtime-2.24.10-2012-10-10-ash\bin
 set Path=%Path%%GTKPath%

rem Unison ausfuehren

 "unison 2.48.4 GTK.exe"

Führt man das Skript nun aus, wird für die Dauer der Ausführung die „Path“-Variable um GTK erweitert und Unison GTK wird gestartet. Sobald Unison geschlossen wird, verfällt die Änderung.

Quelle:

Using Unison on Specific Operating Systems – Windows

Windows: Über die Kommandozeile CPU- und RAM-Auslastung auslesen

$
0
0

Kurz notiert, da ich gerade so einen Fall hatte: Hat man auf ein System z.B. nur per PsExec Zugriff oder möchte via Skript die aktuellen CPU- und Arbeitsspeicher-Auslastung erfassen, so gibt es gleich mehrere Wege.

Beispiele:

C:\Windows\Temp>wmic cpu get loadpercentage
LoadPercentage
5

C:\Windows\Temp>wmic ComputerSystem get TotalPhysicalMemory
TotalPhysicalMemory
4157726720

C:\Windows\Temp>wmic OS get FreePhysicalMemory
FreePhysicalMemory
1031288

Wie man hier sehen kann, gibt es nur 5% Gesamt-CPU-Auslastung, 4 GB RAM sind verbaut, 1 GB ist davon noch frei.

Für den Arbeitsspeicher kann man zudem „systeminfo“ verwenden:

C:\Windows\Temp>systeminfo | find /I "Speicher"
Gesamter physikalischer Speicher: 3.965 MB
Verfügbarer physikalischer Speicher: 1.116 MB
Virtueller Arbeitsspeicher: Maximale Größe: 7.928 MB
Virtueller Arbeitsspeicher: Verfügbar: 3.600 MB
Virtueller Arbeitsspeicher: Zurzeit verwendet: 4.328 MB

Das ist jetzt nur der Schnellschuss, daneben gibt es noch mehr Möglichkeiten über die PowerShell oder andere Tools.

Quellen:

stackoverflow – Get CPU Usage from Windows Command Prompt

stackoverflow – How to get the Percentage of memory utilization using WMIC in batch script?

squidworks – How-to Emulate the TOP command in Windows


Windows: PsExec und dir – Glaube nicht alles, was du siehst

$
0
0

Die letzte Zeit ist mir bereits öfters aufgefallen, das bei der Abfrage des Ordnerinhalts von „C:\Windows\Temp“ über PsExec nichts gefunden wird.

Das das im Regelfall nicht ganz der Wahrheit entspricht zeigt dieser Screenshot:

Wie man im daneben geöffneten Explorer sieht, ist der Temp-Ordner keineswegs leer, sondern enthält gut 19.000 Elemente. Allein an der Anzahl kann es nicht liegen, denn selbst als nur noch wenige hundert Elemente vorhanden sind bleibt die Anzeige leer.

Da Angaben wie z.B.

15.11.2018 11:05 <DIR> .
15.11.2018 11:05 <DIR> ..
0 Datei(en), 0 Bytes
2 Verzeichnis(se), 106.239.619.072 Bytes frei

fehlen scheint die Ausgabe irgendwie vorzeitig abzubrechen.

So spontan auf die Schnelle habe ich im Netz leider dazu nichts finden können. Bei anderen Ordnern ist mir dieses (Fehl-)Verhalten noch nicht aufgefallen.

Windows: UniPass – Ein kleiner Anmeldehelfer zur Kennworteingabe

$
0
0

Vor ein paar Monaten schrieb ich ein kleines Tool, um die Eingabe des Kennworts in so manche Anwendung zu automatisieren. Ziel war es schnell und einfach den Start von Anwendungen durchführen zu können.

Voraussetzung ist, das beim Start der jeweiligen Anwendung direkt im Feld für das Kennwort auf eine Eingabe gewartet wird. Gemeint ist: Das man direkt ohne Umschweife das Kennwort eingeben kann, denn letztlich simuliert das Tool nur Tastenanschläge.

Die Syntax ist einfach:

unipass.exe <Fenstertitel> <Kennwort>

Bislang erfolgreich getestet wurde das Tool mit JTL-Wawi, Lexware Financial Office und „Windows-Sicherheit“. Letztgenanntes nur sofern der Benutzername vorbelegt war. Das betraf bislang Remotedesktop- als auch RemoteApp-Verbindungen, bei denen z.B. in der jeweiligen *.rdp-Datei der Benutzername vordefiniert ist:

prompt for credentials:i:1
username:s:<Benutzername>

Der AutoIt-Quellcode sieht so aus (völlig unspektakulär):

; AutoIt TrayIcon ausblenden

 #NoTrayIcon

; Auf das Fenster warten

 $WindowTitle = $CmdLine[1]
 WinWait ($WindowTitle)

; Dem Fenster den Fokus geben und warten, bis dass das Fenster wirklich den Fokus hat

 WinActivate ($WindowTitle)
 WinWaitActive ($WindowTitle)

; Das Kennwort eintragen

 $Password = $CmdLine[2]
 Send ($Password)

; Mit Enter bestätigen

 Send ("{ENTER}")

Download

Das Archiv enthält den Quellcode als auch eine *.exe für 32- und 64-bit.

UniPass.zip

Windows: RemoteApps mit unterschiedlichen Benutzernnamen von ein und demselben Server öffnen

$
0
0

Es klingt banal, ist aber leider nicht ganz so einfach: Das Problem dabei ist, das die vorhandene Sitzung der zuvor gestarteten RemoteApp dann für alle nachfolgenden RemoteApps verwendet.

Startet man also „RemoteApp A“ mit „Benutzernamen A“ und startet man dann „RemoteApp B“ wird automatisch die Sitzung von „Benutzername A“ verwendet. Das ist soweit gewollt und für sehr viele Fälle auch völlig in Ordnung.

Etwas schwieriger wird es dann, wenn man „RemoteApp B“ als „Benutzername B“ ausführen möchte. Möglich ist es, mit zwei kleinen Ergänzungen der *.rdp-Datei der jeweiligen RemoteApp. Man trägt die folgenden zwei Zeilen nach:

prompt for credentials:i:1
username:s:<Benutzername>

Diese sorgen dafür, das auf jeden Fall nach den Anmeldedaten gefragt wird. Der Benutzername ist dann bereits vorbelegt, so das man nur noch das Kennwort eingeben muss:

Automatische Anmeldung als anderer Benutzer

Da Windows beim Abruf von Anmeldedaten für Terminalserver nicht nach Benutzername unterscheidet, sondern lediglich den Servernamen als Kriterium heranzieht, ist erstmal keine automatische Anmeldung möglich. Das funktioniert weder mit Bordmitteln wie „mstsc“ und „cmdkey“, als auch mit Tools wie Remote Desktop Plus (RDP+).

Ideal wäre wenn anhand der Angabe „Benutzername“ und „Servername“ dann das Kennwort aus der Anmeldeinformationsverwaltung verwendet werden würde.

Abhilfe schaffen Passwort-Manager, die den jeweilien Anmeldedialog erkennen. Als Lösung Marke Eigenbau habe ich auf UniPass gesetzt. Die RemoteApp ansich müsste dann z.B. via Batch gestartet werden:

start unipass.exe "Windows-Sicherheit" <Kennwort>
mstsc "RemoteApp.rdp"

Man sieht zwar kurz die Anmeldefenster, einen Augenblick später ist dann auch schon die RemoteApp gestartet.

Was geschieht, wenn mehrere Sitzungen bereits bestehen?

Bestehen mehrere Sitzungen und es wird eine weitere RemoteApp geöffnet, wird nachgefragt, mit welchem Benutzer, eigentlich ist die vorhandene Sitzung gemeint, verwendet werden soll:

VirtualBox: Plan B wenn die Maus nicht funktioniert

$
0
0

Für eine Test-Wiederherstellung einer Datensicherung sollte eine virtuelle Maschine unter VirtualBox herhalten. Allerdings streikte die Maus beim Rettungsmedium.

Die Wiederherstellung soll mit der Rettungs-CD von Acronis True Image 2014 Premium erfolgen. Grundsätzlich startet das Bootmedium fast ohne Schwierigkeiten, allerdings fielen zwei Dinge auf:

    • Das Rettungsmedium startet nicht, sobald eine USB-Festplatte an die VM weitergeleitet wird. Abhilfe schafft, diese erst nach dem erfolgreichen Bootvorgang weiterzuleiten.
    • Die Maus funktioniert nicht. Behelfen kann man sich z.B. dadurch, in dem man eine USB-Maus an den Host anschließt und diese an die VM durchreicht:

Witzigerweise funktionierte in diesem Fall dann sowohl das Touchpad, VirtualBox läuft hier auf einem Notebook, als auch die USB-Maus. Bemerkung am Rande: Wie die zuvor erwähnte USB-Festplatte wurde die Maus erst nach dem Bootvorgang weitergeleitet, ob es ab dem Starten der VM ebenfalls klappt wurde nicht getestet.

Drei weitere Möglichkeiten zu dem Maus-Thema finden sich beim Hersteller:

Acronis Knowledge Base – 48698: Acronis True Image 2015: Keyboard or Mouse Is Not Detected under Bootable Media

(U)EFI unter VirtualBox und VMware Workstation Player aktivieren

$
0
0

Um die Wiederherstellung einer Datensicherung zu testen, bieten sich virtuelle Maschinen an. Diese haben den Vorteil, das man keine zusätzliche Hardware benötigt und das Live-System nicht für solche Tests unter Umständen platt gemacht muss.

Vor allem wenn der Test schief läuft, steht man im Zweifelsfall nicht ohne funktionierendes System da. Moderne Systeme verwendet meist UEFI als BIOS-Nachfolger, folglich sollte die eingesetzte Virtualisierungslösung dieses ebenfalls anbieten.

(U)EFI unter VirtualBox aktivieren

VirtualBox macht es einem einfach, EFI zu aktivieren. Dieses kann einfach in den Einstellungen der virtuellen Maschine erfolgen:

    • Gewünschte virtuelle Maschine auswählen.
    • Auf „Ändern“ klicken.
    • Zu „System – Hauptplatine“ wechseln.
    • Bei „Erweitert“ den Haken setzen bei „EFI aktivieren (nur spezielle Gäste)“.

(U)EFI unter VMware Workstation Player aktivieren

VMware Workstation Player bietet keine Möglichkeit über die grafische Oberfläche an, um EFI zu aktivieren. Durch eine kleine Änderung in der Konfigurationsdatei der virtuelle Maschinen lässt es sich dennoch einstellen:

  • VMware Workstation Player beenden.
  • In den Ordner der gewünschten virtuellen Maschine wechseln.
  • Die Datei „*.vmx“ editieren und folgende Zeile hinzufügen:
    firmware = "efi"

    Wichtig: Auf die exakt gleiche Schreibweise achten, da andernfalls diese Option ignoriert wird!

Tipp

Damit es keine Probleme mit der Online-Aktivierung von diversen Lizenzen, doppelten Computernamen etc. gibt, das Netzwerk der virtuellen Maschine nicht verbinden!

Abschlussbemerkung

Unter beiden genannten Virtualisierungslösungen wurde erfolgreich eine Wiederherstellung einer Windows 10 Home-Installation von einem Acer-Notebook, die mit Acronis True Image gesichert wurde, wiederhergestellt.

Quelle:

Antary – UEFI-Modus in VMware Player benutzen

VidCutter – Schnörkelloser Videoschnitt

$
0
0

Mal eben den Anfang oder das Ende eines Videos zurechtschneiden oder Teile davon ausschneiden kann schnell und ohne große Einarbeitung der VidCutter.

Das Open Source-Tool steht für alle gängigen Plattformen zur Verfügung. Die Handhabung ist denkbar einfach:

  • Video laden.
  • SmartCut aktivieren.
  • Über die Schaltflächen „Start Clip“ und „End Clip“ einen oder mehrere Bereiche auswählen.
  • Mit „Save Media“ das neu zu erstellende Video abspeichern.

Tipps:

Die ausgewählten Bereiche (Clips) können mit der Maus in ihrer Reihenfolge geändert werden.

Externe Clips können über „+ Add“ hinzugefügt werden.

Mit VidPlayVST Videos in DAW wiedergeben

$
0
0

Um ein Video mit Ton zu unterlegen, bieten sich viele Videoschnitt-Systeme an. Möchte man für ein Video zunächst den (eigenen) Soundtrack in der Digial Audio Workstation (DAW) seiner Wahl kreieren wird’s etwas kniffelig.

Nicht jede DAW ist in der Lage, Videos zu Laden. Zwei Programme (DAW und Medienplayer) nebeneinander Laufen zu lassen ist zwar eine Option, allerdings ist die Wiedergabe dann nicht synchron, für’s Timing ist das dann nicht gerade förderlich.

Sofern die DAW VST(i) unterstützt, besteht mit dem Plugin VidPlayVST die Möglichkeit, ein Video wiederzugeben.

Am Beispiel von Synapse Audio’s Orion oder energyXT sieht das so aus:

Damit das Starten des Videos in energyXT klappt, muss „Cue with any C note“ in VidPlayVST aktiviert werden.In LMMS klappt es mit dem Stoppen des Videos nicht. Den exakten Start kann man wie bei EnerygXT durch Aktivieren von „Cue with any C note“ regeln.

Video samt Ton erzeugen

Der klassische Weg um Bild und Ton zusammenzubringen besteht darin in einem Videoschnittprogramm die Bild- und Tonspuren zusammenzufügen.

Mit dem kostenlosen zusätzlichen Plugin VidRenderVST kommt sogar eine Möglichkeit das Video zusammen mit dem Ton direkt aus der DAW heraus zu rendern.

Leider gibt es diesen Zusatz nur für 64-bit Windows bzw. Mac.

Was ist mit Linux?

VidPlayVST gibt es in einer Linux-Ausgabe:

VidPlayVST for Linux

Für Linux ist das Plugin kostenlose verfügbar. VidRenderVST gibt es hingegen nicht für Linux.

Einschränkungen der Demo-Version

Die Demoversion spielt nur die ersten 30 Sekunden eines Videos ab, ferner wird weder das geladene Video noch Presets gespeichert. D.h. man muss nach jedem DAW-Neustart das Video neu laden.

Preis

Mit 18,00 USD zzgl. MwSt., zum Zeitpunkt des Schreibens dieser Zeilen waren das insgesamt 20,72 €, durchaus bezahlbar.


WinSCP: Sonderzeichen in Session-URL und Batch

$
0
0

Gerne werden in Kennwörtern Sonderzeichen verwendet. Damit das dann via Batch-Skript in Verbindung mit WinSCP funktioniert, muss man diese umwandeln und eine Kleinigkeit beachten.

Ohne Sonderzeichen würde man eine Session-URL so schreiben:

ftp://username:meinkennwort@domain.tld

Kommt jetzt beispielsweise ein „+“ ins Spiel funktioniert folgende Schreibweise nicht im Batch-Skript bzw. genauer ausgedrückt dann bei der „WinSCP.com“ :

ftp://username:mein+kennwort@domain.tld

Die Authentifizierung scheitert und man kassiert ein „Access denied“.

Das „+“-Zeichen muss konvertiert werden. Gemäss der Anleitung bei WinSCP (siehe Quelle) wird dann „%2B“ daraus:

ftp://username:mein%2Bkennwort@domain.tld

Gibt man diese Zeile via „echo…“ aus, verschwindet allerdings das „%“ und die Anmeldung scheitert erneut:

ftp://username:mein2Bkennwort@domain.tld

Das erste „%“ wird seitens CMD als Einleitung für einen Parameter verstanden und folglich sozusagen geschluckt. Daher müssen es zwei „%%“ sein:

ftp://username:mein%%2Bkennwort@domain.tld

Nun klappt’s auch mit einem vorangestelltem „echo“:

echo ftp://username:mein%%2Bkennwort@domain.tld > winscp.txt

Übergibt man nun die „winscp.txt“ an WinSCP.com („WinSCP.com /script=winscp.txt“),  es müssen/sollten natürlich noch weitere Angaben enthalten sein, funktioniert die Anmeldung.

Quelle:

WinSCP – Documentation – Features – Session URL

Askozia 19″ Telephony Server auf 3CX umstellen

$
0
0

Quasi als Nachtrag oder Ergänzung zum Beitrag Askozia Desktop Telephony Server auf 3CX umstellen folgt nun die Anleitung für den 19″ Telephony Server.

Auch hier ist im Grunde alles im Wiki von Askozia beschrieben:

Askozia Wiki – How to install 3CX on Askozia Telephony Servers/de – 1 19″ Telephony Server

Dennoch ein paar kleinere Anmerkungen und etwas Troubleshooting.

  • Aktuelle 3CX Debian-ISO herunterladen: https://www.3cx.com/phone-system/download-links/
  • Mit einem geeigneten Tool (z.B. imageUSB, Rufus, …) auf einen USB-Stick überspielen.
  • Den 19″ Telephony Server mittels VGA oder HDMI mit einem Display verbinden und eine USB-Tastatur anschließen.
  • Den 19″ Telephony Server mit dem zuvor erstellen Stick starten.
    Ggf. im BIOS zuvor die Boot-Reihenfolge ändern (laut Wiki auf P1 stellen, bitte den Abschnitt Troubleshooting weiter unten beachten!). Das BIOS-Kennwort lautet: ozia.
  • „Install“ auswählen.
  • „enp1s0“ als Netzwerkschnittstelle auswählen.
  • Per Standard holt sich Debian eine IP-Adresse per DHCP. Möchte man während der Installation eine feste IP-Adresse vergeben, so muss man bei der Abfrage nach dem „Hostname“ „ESC“ drücken, dann „configure network manually“ auswählen, die IP-Adresse, das Gateway und den DNS-Server angeben.
    Wichtig: Die IP-Adresse kann später nicht ohne weiteres bzw. nur mit Backup, Neuinst. und Restore geändert werden. Dies liegt nicht an Debian, sondern an 3CX, da Diese die Änderung der IP-Adresse auf OS-Ebene nicht richtig mitbekommt.
  • „Hostname“ eingeben.
  • „Domain“ eingeben.
  • „Sprache“ und „Land/Region“ auswählen.
    Bemerkung: Selbst wenn man z.B. Deutsch ausgwählt hat, kommt es vor, das Teile der Installation auf Englisch sind.
  • Das „root“-Passwort festlegen und bestätigen.
  • Bei „Partition disks“ „Guided – use entire disk“ auswählen.
  • „sda“ auswählen.
  • „All files in one partition“ auswählen.
  • „Finish partitioning and write changes to disk“ auswählen.
  • Die Sicherheitsabfrage mit „Yes“ bestätigen. Letzte Chance um abzubrechen!
  • Die Installation benötigt ein paar Minuten, man muss also ein wenig Geduld haben. Es erfolgt ein automatischer Neustart, an dieser Stelle sollte der USB-Stick entfernt werden. Nach diesem Neustart werden automatisch die 3CX-Pakete installiert.
  • „3CX Stable <Version>“ auswählen (außer man möchte natürlich einen SBC installieren).
  • Das „License Agreement“ bestätigen.
  • Es folgt der zweite automatische Neustart.
  • „1“ drücken um „Using a Web Browser“ auszuwählen.
    Hinweis: Nach dem zweitem Neustart kann es passieren, das keine Anmeldemöglichkeit auf der Konsole erscheint, die 3CX Weboberfläche und via ssh ist das System allerdings erreichbar. Ab dem nächsten Neustart erscheint das Login wie erwartet.

Ab hier geht’s dann von einem anderen Computer bzw. Web-Browser unter „http://<IP-Adresse des 3CX-Computers>:5015?V=2“ weiter. Nun kann man der Erstkonfiguration folgen:

Erstkonfiguration der 3CX-PBX

Troubleshooting:

Ganz gleich auf welche SSD, im 19″ Telephone Server sind Zwei (1x M.2, 1x 2.5″) verbaut, die 3CX installiert und welche Boot-Reihenfolge im BIOS eingestellt wurde, nach dem ersten Neustart ging es nicht mehr weiter, man sah nur noch einen schwarzen Bildschirm.

Abhilfe schaffte erst das Entfernen einer der SSDs und eine weitere Neuinstallation der 3CX. Im Rahmen dieser Fehlerbehebung wurde dann testweise sowohl auf die M.2-SSD als auch, nach deren Entfernung, auf eine 2.5″ SSD installiert. Getrennt, also wenn immer nur eine SSD aktuell verbaut bzw. verbunden ist, klappt alles wie erwartet.

Häufige SIP-Neuregistrierung von Mobilteilen mit snom M300-Basis

$
0
0

Nach der Umstellung von Askozia zu 3CX fiel bei einem Kunden auf, das sich das Mobilteil (snom M25) sehr häufig neu registriert. Alle paar Minuten, schlimmstenfalls alle paar Sekunden geschah dies.

Auffällig war, das während man mit dem Web-Interface der Basis verbunden ist, ein Firmware-Update oder -Upgrade durchführte oder gar Telefonierte keine Neuregistrierung stattfand.

Im Syslog der snom M300-DECT-Basis fanden sich häufige „Link down“- bzw. „Link up“-Meldungen. Zunächst ging man also von einem Netzwerkproblem aus. Da die Basis direkt mit dem Switch verbunden ist (1m Kabel) war dieses schnell ausgetauscht. Da dies nicht half, wurde im Switch von automatischer Aushandlung der Geschwindigkeit auf manuelle 100Mbit/s Full-Duplex umgestellt. Das half leider nichts. Ein Blick ins Syslog des Switches zeigte dort allerdings keine Link-Stati-Änderungen für den Port an dem die M300 hing. Somit war klar, es liegt nur ein der DECT-Basis.

Um die Theorie zu bestätigen, das es keine Link-Stati-Änderung und folglich Neu-Registrierung an der 3CX gibt, wurde ein Dauerping auf die DECT-Basis ausgeführt. Während dieser lief, kam es zu keinerlei Überraschungen. Das stüzte die Vermutung, das während mit der Basis kommuniziert wird, nichts negatives geschieht.

Ein wenig Recherche führte dann zu diesem Treffer:

snom – Solution home – DECT – FAQ – My DECT base is resetting the ethernet link periodically (M300 / M700)

Allerdings konnten wir den dort hinterlegten Text, geschweigedenn die genannte Option nicht finden. Dies klärte sich nach dem Studium der Firmware-Release-Notes:

snom – Wiki – M-series/Firmware/Release Notes

Sucht man dort nach „eth_driver_initialize“ stellt man fest, das diese Einstellungsmöglichkeit erst ab

Version BSV400B4 – January 2018 – Release Candidate 1

vorhanden ist. Aktuell ist noch die Firmware V400B2 installiert.

Für den Moment ergeben sich daraus zwei, drei Möglichkeiten:

  • Da es keine Schwierigkeiten mit dem Telefonieren gibt, das Ganze ignorieren.
  • (Weiterhin) Einen Dauerping auf die Basis ausführen.
  • Die Firmware aktualisieren.

Letztgenanntes ist vmtl. die sauberste Lösung, allerdings ist unklar, ob diese Firmware von 3CX bereits freigegeben ist bzw. supportet wird. Soweit man es aktuell beurteilen kann, wird die Einstellung für „eth_driver_initialize“ von 3CX noch nicht provisioniert.

Ob die Probleme schon bei der vorigen Askozia PBX in Verbindung mit der damaligen 3.55-Firmware der DECT-Basis aufgetreten sind, wurde nicht untersucht.

3CX: Lizenzaktivierung schlägt fehl

$
0
0

Bei der Neuinstallation einer 3CX scheiterte zunächst die Aktivierung der Lizenz.

Während der Ersteinrichtung erhielt man folgende Meldung:

Nach der Anmeldung an der Verwaltungskonsole sah es auf dem Dashboard nicht fiel besser aus:

In den Lizenz-Einstellungen gab es dann etwas mehr Info(s):Die Verbindung ist allerdings in der Firewall zugelassen, die Firewall-Tests der 3CX waren zudem erfolgreich.

Die Lösung bestand darin, alle aktuellen Updates zu installieren und das gesamte System neu zu starten. Anschließend nochmals in die Lizenzeinstellungen zu wechseln und auf „Lizenzschlüssel-Daten aktualisieren“ zu klicken. Die Aktivierung klappte nun. Nicht irritieren lassen darf man sich von unvollständigen Angaben auf der Lizenzeinstellungen-Seite. Sobald man diese nach erfolgreicher Aktivierung verlässt und nochmals aufruft sind alle Angaben vorhanden.

Debian 9 Stretch auf PC Engines APU(1)-Boards installieren

$
0
0

Keine Ahnung ob es an mir, den hier rumliegenden APU1-Boards von PC Engines oder sonstetwas liegt. Bei dem Versuch Debian 9.6.0 Stretch via Netinst-USB-Stick auf mehrere dieser Boards einzurichten ging ein bischen was schief. Hingegen vieler Anleitungen im Netz wollte es nicht so recht klappen. Die Kombi aus mehreren Anleitungen verhalf dann letztlich erfolgreich zum Ziel.

Unterschiede APU(1) und APU2

Unterschiede zwischen den APU(1) und APU2-Boards gibt es einige, wie z.B. anderer Prozessor, schnellerer RAM, Realtek- (APU1) bzw. Intel (APU2)-NICs, usw.

PC Engines – APU

PC Eninges – APU2

APU(1)-Boards sind schlicht die älteren Boards, verrichten aber bislang in vielen Appliances treu ihren Dienst, zumindest hatten wir bislang keinen Ausfall.

Boot-Probleme

Der Start vom USB-Stick blieb mitunter bereits nach „ISOLINUX“ hängen, spätestens aber nach „Probing EDD…“ stehen. Man kam jedenfalls nicht weiter.

BIOS aktualisieren

Auf dem Board sollte die aktuellste BIOS-Version installiert sein, andernfalls kommt es unter Umständen zu Abstürzen:

3CX/Debian: Kernel Panic bei der Installation auf PC Engines APU1-Board

USB-Stick erstellen

  • Zuerst lädt man das aktuelle Debian-Netinst-ISO herunter.
  • Dieses Abbild schreibt man mit Rufus auf einen USB-Stick.

Hinweis: Mit anderen Tools als Rufus kann man die ISO zwar ebenfalls auf einen USB-Stick übertragen, allerdings booteten diese dann nicht bei mir erfolgreich durch.

USB-Stick anpassen

Damit der Bootvorgang auf dem APU(1)-Board gelingt und man über die serielle Schnittstelle sowohl das Bootmenü und später den Installer dargestellt bekommt, müssen folgende Änderungen auf dem USB-Stick vorgenommen werden:

Im Root des USB-Sticks die Datei „syslinux.cfg“ editieren und am Anfang die folgenden beiden Zeilen einfügen:

CONSOLE 0
SERIAL 0 115200

Dadurch wird bereits das Bootmenü an die serielle Schnittstellen umgeleitet.

Im Ordner „isolinux“ die Datei „txt.cfg“ editieren. Die Zeile mit „append…“ muss wie folgt aussehen:

append vga=off console=ttyS0,115200n8 initrd=/install.amd/initrd.gz --- quiet console=ttyS0,115200n8

Wichtig: Unbedingt die Reihenfolge beachten, andernfalls klappt es nicht! Am besten die Zeile so übernehmen wie sie hier steht.

Diese Änderung sorgt dafür, das der Text-Installer, nachdem man „Install“ aus dem Bootmenü ausgewählt hat, an die serielle Schnittstelle umgeleitet wird und man darüber letztlich die eigentliche Installation durchführen kann.

Zu guterletzt muss man noch die Realtek-Firmware für die Netzwerkkarten auf den Stick kopieren:

Debian installieren

Nun kann man das Board mit dem Stick starten und die Installation wie gewünscht durchführen.

Bemerkung zur Sprachauswahl:

Eigentlich steht nur „English“ zur Auswahl und „Land/Region“ kann man auswählen. Letztgenanntes ist relevant! Um „Europe“ und folglich „Germany“ auswählen zu können, zunächst „other“ auswählen. Die „locales“-Auswahl wie vorgeschlagen lassen. Nach der Installation kann man „locales“ wie folgt ändern:

dpkg-reconfigure locales

Nach Ausführung des obigen Befehls erschien bei mir folgende Ausgabe:

Generating locales (this might take a while)...
de_DE.UTF-8... done
en_US.UTF-8... done
Generation complete.
*** update-locale: Warning: LANGUAGE ("en_US:en") is not compatible with LANG (de_DE.UTF-8). Disabling it.

Das klingt zunächst unerfreulich. Nach einer Runde Ab- und Anmelden und Prüfung durch folgenden Befehl scheint alles gut zu sein:

root@debian:~# env | grep LANG
LANG=de_DE.UTF-8

Anpassungen nach der Installation

Sobald die eigentliche Installation abgeschlossen ist, sollte man noch den GRUB-Bootloader anpassen, sonst sieht man zukünftig keine Ausgabe an der Konsole.

Hinweis: Dieser Schritt ist nur notwendig, wenn man zuvor in der „txt.cfg“ nicht zu Erweiterung „console=ttyS0,115200n8“ am Ende drin stehen hat.

  • nano /etc/default/grub
  • Folgendes Einfügen bzw. Ergänzen und Speichern:
    GRUB_CMDLINE_LINUX="console=ttyS0,115200n8"
  • update-grub

Was tun, wenn ssh nicht läuft und man an der Konsole nichts sieht

Hat man die Änderung von Grub vergessen und ssh nicht installiert oder es läuft es irgendwelchen anderen Gründen nicht, so kann man beim Booten noch händisch eintragen, das auf die serielle Schnittstelle umgeleitet werden soll:

  • Das Board neu starten und „e“ drücken.
  • Den „linux“-Eintrag um „console=ttyS0,115200n8″ ergänzen“ und „F10“ drücken.

Abschlussbemerkung

Wenn man weiß wo und wie ist die Einrichtung ganz simple. Ohne die Anleitung von Marcel Stritzelberger wäre ich allerdings ganz schön aufgeschmissen gewesen.

Quellen:

How to install Ubuntu using serial console

computing competence – Installation von Debian auf einem APU Embedded Board (APU.2C4)

debian – Wiki – Locale

debian – Wiki – ChangeLanguage

Update 26.11.2018

Kaum den Beitrag geschrieben und veröffentlich, schon gibt’s ein Update: Kleinere Fehler korrigiert. Automatische Aktualisierung von Grub eingetragen, dadurch entfällt das manuelle Nachtragen. Falls man die Grub-Änderung doch mal vergessen haben sollte hinzugefügt und einen Abschnitt zur Installation bzw. zu den „locales“ hinzugefügt.

Viewing all 1827 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>