Kurz notiert: Interessiert man sich für die Einschaltquoten einer Fernsehsendung oder ob schon etwas bekannt ist, wie es mit einer Serie weitergeht, im Sinne von „wird es eine weitere Staffel geben“ und mehr aus der Fernsehlandschaft, kann man z.B. bei DWDL.de und Quotenmeter rein schauen.
Einschaltquoten und mehr
Windows: Schriftart per Skript oder Befehl installieren
Für die Neuinstallation oder per Softwareverteilung ist es hilfreich Schritarten per Befehl oder Skript installieren zu können. Unter Windows sind im Grunde nur zwei Schritte notwendig.
Ein simples Kopieren der Schriftartdatei nach „C:\Windows\Fonts“ reicht nicht aus. Die Schriftart muss dem System noch bekannt gemacht werden. Daher werden zwei Schritte für die Einrichtung benötigt. Als Beispiel dient der berühmt-berüchtigte Code 128 der beispielsweise für die PDFs vom Zoll benötigt wird.
copy code.ttf %systemroot%\fonts reg import Code128.reg
Für beides benötigt man administrative- bzw. erhöhte Rechte.
Der Inhalt der Registry-Datei sieht wie folgt aus:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts] "Code-128 (TrueType)"="code.ttf"
Wie genau die Registry-Einstellungen aussehen, ermittelt man am besten auf einem System, bei dem die Schriftart bereits installiert wurde.
Quellen:
ITProToday – How can I install a font from the command line/batch file?
superuser – How do I install a font from the Windows command prompt? (enthält ein Beispiel mit VBS)
Microsoft TechNet – Richard Spitz – How to install a font from the command line on Windows 7 (ebenfalls VB Script)
Windows: WSUS verteilt kein Windows 10-Funktionsupdate
Wer Windows 10-Funktionsupdates (aka Upgrade) mittels WSUS verteilen möchte, dem begegnet evtl. folgende Meldung:
Funktionsupdate für Windows 10 (Anwender-Editionen), Version 1809, de-de Ereignis berichtet um 26.02.2019 08:30: (Die Ressource wurde nicht gefunden.:) ReportingEvent.Client.167; Parameter: Funktionsupdate für Windows 10 (Anwender-Editionen), Version 1809, de-de
Die Windows 10-Clients können das Upgrade nicht vom WSUS herunterladen. Dies kommt dadurch Zustande, das der IIS den MIME-Typ „.esd“ nicht kennt. Typischerweise ist das bei WSUS-Servern auf Basis von Windows Server 2012 R2 und früher der Fall. Windows Server 2016 und neuer sind davon ausgegnommen.
Man muss lediglich kurz den fehlenden Eintrag hinzufügen und schon läuft’s:
- Den „Internetinformationsdienste (IIS)-Manager“ öffnen.
- Auf „MIME-Typ“ klicken.
- Auf „Hinzufügen“ klicken.
- Bei „Dateinamenerweiterungen“ „.esd“ und bei „MIME-Type“ „application/octet-stream“ eintragen und mit „OK“ bestätigen.
Beim Kunden war kein Neustart des IIS-Dienstes oder gar das Servers notwendig. Kaum war der MIME-Typ gesetzt fingen die Clients schon das Herunterladen an.
Quelle:
Windows-FAQ – Windows 10 Feature Updates mit WSUS verteilen (application/octet-stream)
Librefox: Datenschutzeinstellungen für Firefox
Kurz notiert: Wer selbst nicht an all den möglichen Stellschrauben in Firefox für mehr Datenschutz drehen möchte, der kann auf fertige Einstellungen des Librefox-Projekts zurückgreifen.
Hierbei handelt es sich nicht um einen weiteren Fork der Firefox-Browsers, sondern lediglich um vorkonfigurierte Einstellungen. Einfach das aktuelle zum Betriebssystem passende Archiv herunterladen und den Inhalt in den Firefox-Ordner entpacken.
Windows: Mit Permadelete Dateien und Ordner sicher löschen
Tools zum sicheren Löschen gibt es sehr viele. Wenn’s schnell, einfach und auf Wunsch portable sein soll kann man auf Permadelete zurückgreifen.
Das Tool kann installiert, portable oder als App genutzt werden. Dabei ist es erfreulich kompakt und genial einfach. Zudem ist es open source. Einfach die zu löschenden Dateien oder Ordner auf das Programm ziehen, loslassen, den Vorgang bestätigen und das war’s dann auch schon. Hat man das Tool installiert, gibt es darüber hinaus noch einen Eintrag im Kontextmenü unter „Senden an“.
Das Setup oder die Portable-Ausgabe gibt’s auf GitHub:
https://github.com/DevelopersTree/permadelete/releases
Die Windows-App gibt’s zudem im Store.
Weitere Tools dieser Art:
Wer lieber eine, unter anderem, deutschsprachige Anwendung haben möchte kann den Alternate File Shredder (nicht getestet) ausprobieren. Diesen gibt es allerdings nur zum installieren.
Ebenfalls portable und open source wäre z.B. EraserDrop Portable.
Windows: MS Office-Alternativen für den Terminalserver
Microsoft’s Office Suite für einen Terminalserver zu lizenzieren ist eine teure Angelegenheit, denn das nötige Nutzungsrecht gibt es erst ab Office 200xx Standard bzw. Professional Plus und diese gibt es wiederum nur im Rahmen eines Volumenlizenzvertrags ab OPEN NL mit Mindestabnahmemenge von fünf Lizenzen.
Zusätzlich kommt hinzu, das wenn Office auf einem Terminalserver installiert ist und somit quasi allen dortigen Benutzern zur Verfügung steht, für alle Benutzer, auch für die, die es gar nicht verwenden, lizenziert werden muss! Via Rechte oder SRP die mögliche Nutzung auf technischem Wege einschränken ist nicht Lizenzkonform.
Das ist besonders ärgerlich, wenn man nur für eine Mitarbeiterin Excel benötigt, wie es gerade bei einem Kunden der Fall ist, der Rest aber kein MS Office braucht.
Die bekanntesten MS Office-Alternativen sind aus der Historie heraus OpenOffice, das seit geraumer Zeit allerdings an Bedeutung verliert und sein aktuellerer und modernerer Fork LibreOffice. Beide laufen der Erfahrung nach gut, sowie im Allgemeinen wie auch im Speziellen auf Terminalservern. Aber was gibt es noch, wenn es um bessere Kompatibilität oder optische Ähnlichkeit zu MS Office geht?
Da wäre zum Beispiel noch SoftMaker Office bzw. FreeOffice (Versionsunterschiede). Dieses Produkt der Nürnberger gibt es seit vielen Jahren und das nicht nur für Windows! Es ist ebenfalls kompatibel sowohl zu den Redmonder Dateiformaten als auch zum Terminalserver (Systemvoraussetzungen). Die Lizenzierung ist wesentlich entspannter, da nur für die Nutzer, die es verwenden sollen bzw. müssen jeweils eine Lizenz vorhanden sein muss. Die technische Beschränkung, wer das Office-Paket überhaupt ausführen kann bzw. darf ist via Rechte und/oder SRP gestattet.
Am Beispiel von FreeOffice wird man beim ersten Start sogar danach gefragt, wie die Oberfläche aussehen soll, dies kann jederzeit in den Einstellungen unter „Aussehen“ geändert werden. Zusätzlich steht bei SoftMaker Office dann noch ein „Dark Theme“ zur Verfügung. Bereits an dieser Stelle hat man mehr Auswahl als bei Microsoft, kämpfen selbst über 10 Jahre nach dem Wechsel zur Ribbon-Oberfläche so manche Anwender nach wie vor mit der Handhabung.
Nebenbei bemerkt: Wenn’s um Mail geht, kann man Outlook oft durch Thunderbird (ist samt Addon in SoftMaker Office enthalten) ersetzen. Es kommt wie bei anderen Office-Anwendungen immer darauf an, wie z.B. Abhängigkeiten von anderer Software, die MS Office voraussetzt und natürlich auch der Wille, sich etwas anderes anzuschauen und ggf. etwas umzugewöhnen.
Wenn es zwingend Microsoft sein muss, aber nicht unbedingt die aktuellste bzw. neueste Version, kann man sich im Gebrauchtmarkt umschauen und so günstig z.B. die vorige Version bekommen.
Ebenso wie Microsoft’s Office lässt sich Libre- als auch SoftMaker Office mittels Gruppenrichtlinien konfigurieren:
LibreOffice – Wiki – Deployment and Migration – Windows Group Policy ADMX files
Ein weiteres Goodie ist, das man LibreOffice und Free-/SoftMaker Office portable nutzen kann:
FreeOffice – Tipps & Tricks: Portable Installation
Und außerdem: Free- und SoftMaker Office gibt es für Windows, Mac, Linux und Android.
Randbemerkung: Ein Libre-, Free- und SoftMaker Office ist wesentlich zügiger installiert als ein MS Office, die Setups sind zudem wesentlich kompakter.
Kurzes Fazit
Günstiger fährt man mit den Alternativen allemal. Zudem sind sie i.d.R. schneller installiert und einfacher aktiviert. Ob’s für die eigenen Anforderungen und ggf. Gewohnheiten passt sollte vorab immer ein Test klären.
Quellen:
WindowsPro – Office 2016 und 365 für Remote Desktop Services lizenzieren
technikkram.net – Stolpersteine bei der Microsoft Office Lizenzierung auf Terminal Servern
Windows: FreeOffice oder SoftMaker Office ohne USB-Stick portable machen
Die beiden Office-Editionen von SoftMaker lassen sich mit Hilfe des im Lieferumfang enthaltenen Assistenten bequem Portable machen. Allerdings setzt das Tool ein Laufwerk voraus, es kann nicht einfach ein Ordner auf dem gleichen Laufwerk ausgewählt werden.
Mit einem kurzen Ausflug in die Eingabeaufforderung kann man einen Ordner als Laufwerk anlegen und in diesen dann Free- bzw. SoftMaker Office portable ablegen. Dies ist hilfreich wenn man z.B. aus einer virtuellen Maschine heraus den Vorgang durchführen möchte oder wenn man gerade keinen USB-Stick zur Hand hat. Ebenso kann dieser Trick dazu verwendet werden, dieses Portable Office später auf dem eigenen Cloudspeicher abzulegen. Anbei am Beispiel von SoftMaker Office 2018 eine Kurzanleitung:
- Eine Eingabeaufforderung mit erhöhten Rechten öffnen.
- Einen neuen Ordner mit „md C:\SoftMakerOfficePortable“ anlegen.
- Mit „subst A: C:\SoftMakerOfficePortable“ den zuvor angelegten Ordner als Laufwerk A: zur Verfügung stellen.
- Nun aus dem Startmenü unter Free- bzw. SoftMaker Office\Hilfsprogramme das Tool „SoftMaker Office 2018 auf USB-Stick installieren“ ausführen.
- Das zuvor angelegte Laufwerk A: auswählen und den Vorgang ausführen.
- Mit „subst A: /D“ wird das zuvor erstellte Laufwerk wieder entfernt und der Ordner kann beliebig verschoben werden.
pfSense: Werbung und Angriffe filtern
Kurzer Link-Tipp: Möchte man mit Hilfe einer pfSense Werbung und potentielle Angriffe ausfiltern, ähnlich wie bei Raspberry Pi und dem pi-hole-Projekt, kann man sich von den Beiträgen von Marcel Stritzelberger inspirieren lassen:
Mit pfSense Werbung und potentielle Angriffe blockieren ala piHole
Ich hatte leider noch keine Zeit und Muse das „Nachzubasteln“, lesen tut es sich auf jeden Fall gut.
Windows: Prozesspriorität ändern und maximale Kerne reglementieren
Mitunter macht es (sehr viel) Sinn, einem Dienst, einer Anwendung, einem wie auch immer geartetem Prozess eine andere Priorität und die maximal zu verwendene Kerne bzw. CPUs zuzuweisen.
Als Fallbeispiel dient mein Heimserver zusammen mit DVBViewer und HandBrake (siehe dort das Update vom Update 09.11.2018). HandBrake wird automatisch nach einer Aufnahme als Aufgabe ausgeführt, um das Format zu ändern. Das spart Platz, aber während die Konvertierung läuft, kommt der kleine olle i3 ganz schön ins Schwitzen. Blöd, wenn dann noch etwas anderes laufen soll. Aber Abhilfe ist einfach: Das Tool soll sowohl mit niedrieger Priorität als auch nur eine gewisse Anzahl an Kernen verwenden. Via Batch lässt sich das für noch zu startenden Prozesse einfach mittels „start“ lösen:
start /wait /belownormal /affinity 7 "" "C:\Program Files\HandBrake\HandBrakeCLI.exe" --preset "Fast 720p30" -i %InputFile% -o %OutputFile%
„/belownormal“ führt mit der nächst niedrigeren Priorität als Normal aus und „/affinity 7“ bedeutet bei diesem System, das nur drei von vier Kernen benutzt werden sollen und dürfen.
Das Bestimmen der „Affinity“ fällt anhand der Tabelle unter
MS Docs – SQL – Installation – Configuration – Server Configuration Options – affinity mask
leichter.
Prüfen kann man den (Miss-)Erfolg z.B. mittels Task-Manager. Auf der Registerkarte „Leistung“ kann man beobachten, ob alle oder nur bestimmte Kerne aus- bzw. belastet sind. Auf der Registerkarte „Details“ kann man die Priorität sehen, sofern man zuvor die Spalte „Basispriorität“ eingeblendet hat.
By the way:
Bei bereits laufenden Prozessen kann man (natürlich) via Task-Manager händisch die Prio und Kerne/CPUs ändern (Registerkarte „Details“, Rechtsklick auf den Prozess und „Priorität festlegen“ bzw. „Zugehörigkeit festlegen“), automatisch geht das z.B. via WMI oder Powershell, siehe Quellen.
Quellen:
davychiu – Limit Handbrake Useable CPU Cores in Windows
superuser – Changing Windows process priority via command line
stackoverflow – Change affinity of process with windows script
Windows: Remote Desktop Plus per Kommndozeile steuern
Eigentlich war bzw. ist ein eigener Beitrag zu Remote Desktop Plus in der Mache. Bislang fand das Tool bereits im Beitrag Windows: RemoteApps für verschiedene Benutzer per Aufgabe automatisch starten und trennen – Der kurze Weg Erwähnung. Anbei nun eine (kurze) Info zur Möglichkeit das Tool via Kommandozeile und damit aus Skripten heraus steuern zu können.
Neben den bereits anderweitig beschriebenen Möglichkeit RDP-Sitzungen oder -RemoteApps automatisch starten zu lassen hat Remote Desktop Plus (kurz RDP+) noch die weiteren Vorteilen, das es eine recht umfangreiche Kommandozeile gibt. Hinzu kommen die Optionen sowohl ein Protokoll schreiben zu lassen als auch einen Rückgabewert zwecks weiterer Auswertung zu haben. Ein Beispiel:
rdp.exe /v:wts02 /u:Administrator /p:<Passwort> /batch /log:rdp.log /disconnect:15
Diese Anweisung verbindet automatisch den angegebennen Benutzer mit dem Terminalserver, das Ganze erfolgt als Skript („/batch“), wird protokolliert /“log…“ und nach 15 Sekunden wieder getrennt.
Das Log sieht beispielsweise so aus:
Date-Time;Local-Computer;Local-IP-Address;Windows-Version;Local-User;TS-Client-Name;TS-Client-IP-Address;Remote-Computer;Remote-Port;Remote-User;RDP-Version;RDC-Version;Password-Mode;Session-Type;Application 2019-03-19 04:15:02;SRV02;192.168.0.26;Microsoft Windows Server 2016 Standard;SRV02\Administrator;-;-;wts02;3389;WTS02\Administrator;7.0.1;10.0;Password;Normal;-
Man kann es also, dank CSV-Format, wunderbar in einer Tabellenkalkulation der Wahl auswerten, wie im Screenshot in LibreOffice’s Calc:
Das es sich um eine simple Text-Datei handelt, könnte man diese zudem mit weiteren Tools auswerten.
Das Name der Protokolldatei kann fest vorgegeben oder alternativ mit Variablen dynamisch erzeugt werden. Die Macher geben dazu folgendes auf ihrer Homepage an:
%s: Will be expanded to the server name you’re connecting to. %u: Will be expanded to the username used to login to the remote computer. %c: Will be expanded to the name of the local client computer. When starting RDP+ locally, this will be the same as %COMPUTERNAME%. When starting RDP+ from within a Terminal Server or Citrix session, %c will contain the computername of the originating client computer (i.e. %CLIENTNAME%). %y: The 4-digit representation of the current year. %m: The 2-digit representation of the current month. %d: The 2-digit representation of the current day. Example: rdp /log:%y%m%d-%s.log
Alternativ kann man mit dem Parameter „/eventlog“ entsprechende Einträge in das Windows-Ereignisprotokoll schreiben lassen.
Rückgabewerte (Errorlevel, Exit Code) liefert RDP+ nur wenn der Parameter „/batch“ gesetzt ist. Folgende Werte stehen zur Verfügung:
0: No errors. 1: General undefined error. 2: Specified connection file not found. 5: Target computer not in the list of allowed targets. 29: Cannot write to the log file. 30: Profile not found. 87: Invalid command line parameter or combination of command line parameters. 161: The format of the specified path is invalid (filename of the connection file, log file or command options file). 259: No responsive server found in the list (when using /lb). 2382: Invalid notation of the specified host name or IP address. 10060: Connection timed out to the specified server. 11001: Remote hostname not found.
Kurzum: Alles größer Null ist ungut.
Wichtig ist, das man RDP+ via „start“ ausführt, da sonst wenn das Programm z.B. bei irgendetwas ewig hängen bleibt oder die Verbindung ohne Timeout aufgebaut wird, man sonst unter Umständen nie einen Rückgabewert erhält. Ein Beispiel (Auszug aus einem Skript):
rem Sicherheits-Massnahme, fuer den Fall das rdp.exe im Fehlerfall haengen bleibt echo timeout /t 60 > temp01.cmd echo taskkill /im rdp.exe /f >> temp01.cmd echo taskkill /im mstsc.exe /f >> temp01.cmd echo exit >> temp01.cmd start temp01.cmd rem RDP+ ausfuehren start /wait rdp.exe /v:wts02 /u:Administrator /p:<Passwort> /batch /log:rdp.log /disconnect:15 if %errorlevel% gtr 0 ( set mail=true echo Fehler bei der RDP-Verbindung - Rueckgabewert: %errorlevel% >> e-mail.txt echo. >> e-mail.txt if exist rdp.log type rdp.log >> e-mail.txt echo. >> e-mail.txt )
Es wird zunächst ein weiteres Skript erstellt und gestartet („temp01.cmd“). Dieses hat die Aufgabe RDP+ und den abhängigen Mstsc zu beenden, falls beides länger als 60 Sekunden läuft.
Dann wird RDP+ gestartet, die Verbindung nach 15 Sekunden beendet und der Rückgabewert ausgewertet.
Auf diese Art lässt sich automatisiert die RDP-Verbindung testen und ggf. im Fehlerfall z.B. eine Alarmierung und weitere Massnahmen auslösen.
Windows: Batch – Befehl nur ausführen bei (Miss-)Erfolg
Unter Windows kann man in Batch-Skripten den Erfolg oder Misserfolg eines Befehls mit dem Rückgabewert (Errorlevel, exit code) feststellen. Mit entsprechenden Operatoren lässt sich das sogar noch einfacher umsetzen.
Statt auf die Art
befehl... if %errorlevel% ...
zu hantieren, kann man mit einer bedingten Befehlsverkettung arbeiten. So stehen die Operatoren „&&“ dafür den zweiten Befehl nur bei Erfolg und „||“ nur bei Misserfolg auszuführen. Das Ganze lässt sich sogar miteinander kombinieren.
Ein Beispiel:
taskkill /im test123.exe && echo Prozess beendet || echo Prozess nicht gefunden oder Beenden fehlgeschlagen
Die Ausgabe im Erfolgsfall:
C:\Users\user>taskkill /im test123.exe && echo Prozess beendet || echo Prozess nicht gefunden oder beenden fehlgeschlagen ERFOLGREICH: Ein Beendigungssignal wurde an den Prozess "test123.exe" mit der PID 4376 geschickt. Prozess beendet
Die Ausgabe bei Misserfolg:
C:\Users\user>taskkill /im test123.exe && echo Prozess beendet || echo Prozess nicht gefunden oder beenden fehlgeschlagen FEHLER: Der Prozess "test123.exe" wurde nicht gefunden. Prozess nicht gefunden oder Beenden fehlgeschlagen
Quellen:
stackoverflow – Killing a process in Batch and reporting on success
Windows: Remote Desktop per Skript oder Befehl aktivieren
Um bei den Pro (und höher) Editionen von Windows die Remote Desktop-Funktionalität zu aktivieren stehen mehrere Wege zur Auswahl.
Neben dem händischen Einschalten kann man in einer Domäne mittels Gruppenrichtlinie den Zugriff aktivieren. Als weitere Möglichkeiten stehen ein Eingriff in die Registry, Batch und Powershell zur Wahl.
Per Skript oder Befehl sieht die vermutlich einfachste Variante so aus:
rem RDP aktivieren reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f rem RDP deaktivieren reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f
Ein Neustart von Windows oder dem „Remotedesktopdienste“-Dienst ist nicht notwendig. Die Änderung greift sofort.
Allerdings genügt das bloße Aktivieren der RDP-Funktion nicht, denn die Firewall muss entsprechend konfiguriert sein. Entweder man nutzt die vordefinierte Regel(n) oder man legt eine neue an.
Im Nornalfall müssen die Regeln
Remotedesktop - Benutzermodus (TCP eingehend) Remotedesktop - Benutzermodus (UDP eingehend)
für die gewünschte Netzwerkkategorie aktiviert werden.
Per vordefinierter Regelgruppe kann man RDP ebenfalls freischalten:
netsh advfirewall firewall set rule group="Remotedesktop" new enable=yes
Dies hat allerdings den Nachteil, das damit auch RDP für öffentliche Netze freigegeben wird. Bei Notebooks im Außendienst ist das durchaus nicht wünschenswert.
Quellen:
interface – How to Remotely Enable and Disable (RDP) Remote Desktop
m.a.x. it – Konfiguration der Windows Firewall per Kommandozeile
Windows: Wake on LAN über VPN
Wake on LAN funktioniert über’s Internet nicht, das gilt auch für VPN. Abhilfe kann man sich schaffen, in dem von einem (Dauer-)laufenden System aus z.B. der Arbeitsplatz gestartet wird.
Damit man nicht extra beispielsweise aus dem Web-Interface einer Securepoint UTM, einem bereits laufenden PC oder einem Server aus der eigentliche Ziel-Rechner gestartet werden muss, kann man sich relativ leicht behelfen. Vor Jahren habe ich eine Lösung für einen Kunden gebaut, die bis heute läuft und in der Zwischenzeit auch bei anderen Kunden Anwendung findet.
Der Ablauf ist dabei simple:
Auf dem sowieso immer laufenden Server wird ein Apache (oder anderer Webserver) betrieben. Mittels (automatischen) Aufruf eines Skripts wird der zu startende Computer per WoL eingeschaltet.
Am Bespiel von Apache (die Variante von Apache Lounge) sieht das so aus:
Unter „C:\Apache24\cgi-bin“ wird folgendes Batch-Skript und die wol.exe von Gammadyne hinterlegt:
@echo off cd "C:\Apache24\cgi-bin" REM echo %date% %time% - hello world >> test.txt wol.exe <MAC-Adresse> echo Content-type: text/plain echo.
Wenn man erstmal nur testen möchte, kann man erstmal nur ein Protokoll schreiben lassen und die Zeile mit „wol….“ auskommentieren.
Ruf man mit einem Browser nun folgende URL auf:
http://<IP-des-Servers>/cgi-bin/<Skriptname>.cmd
wird das Skript ausgeführt. Eine weitere Konfiguration des Apache ist nicht notwendig.
Damit das Ganze vom VPN-Client aus anwenderfreundlicher ist, kommen ein paar kleine Skripte ins Spiel:
Der VPN-Client startet nach dem Aufbau der Verbindung automatisch das Skript „vwr.cmd“, dieses wiederum startet die „vwr.exe“:
@echo off cd C:\VPN vwr.exe
Die „vwr.exe“ ist ein kompiliertes AutoIt-Skript. Anbei der Quellcode:
; AutoIt TrayIcon ausblenden #NoTrayIcon ; Include-Dateien #include <GUIConstantsEx.au3> ; Konfiguration einlesen $Host = IniRead("vwr.ini", "VPN", "Host", "error") $Countdown = IniRead("vwr.ini", "VPN", "Time", "error") $WoL = IniRead("vwr.ini", "VPN", "WoL", "error") If ($Host="error") or ($Countdown="error") or ($WoL="error") then MsgBox(16, "VPN", "Fehler beim Lesen der Konfiguration") Exit EndIf ; Wartezeit in Sekunden umrechnen ; 60000 ms = 60 Sekunden = 1 Min $Countdown = $Countdown*60000/1000 ; Prüfen, ob der Ziel-Host erreichbar ist, andernfalls diesen per WoL starten und warten $Pong = Ping($Host, 1000) If $Pong = 0 Then ; WoL auslösen InetGet($WoL, "") ; Countdown-Timer ; Fenster erzeugen GUICreate("VPN", 268, 55) GUISetState(@SW_SHOW) GUICtrlCreateLabel("Bitte warten, bis das der Arbeitsplatz-PC gestartet ist:", 10, 10) While 1 GUICtrlCreateLabel ( $Countdown & " Sekunden", 10, 30) $Countdown=$Countdown-1 If $Countdown=0 Then ExitLoop ; Pause von einer Sekunde sleep(1000) WEnd ; Fenster schliessen GUIDelete() EndIf ; Remotedesktopverbindung aufbauen Run("mstsc.exe arbeitsplatz.rdp")
In der „vwr.ini“-Datei wird die IP-Adresse des Ziel-Computers hinterlegt und der Webserver-Aufruf. Beispiel:
[VPN] Host=192.168.2.36 Time=2 WoL=http://192.168.2.10:8080/cgi-bin/test.cmd
VWR steht übrigens für VPN, Wake on LAN und RDP.
Zunächst wird der Ziel-Computer angepingt, kommt keine Antwort, kann man davon ausgehen, das dieser heruntergefahren ist. Daraufhin wird der „WoL-Aufruf“ durchgeführt, eine vordefinierte Zeit (Time, 2 Minuten) gewartet und dann die RDP-Verbindung initiiert.
Während auf das Starten des Ziel-Computers gewartet wird, läuft ein sichtbarer Countdown ab.
Nebenbei bemerkt: Es gibt noch eine ältere Variante, bei der PHP zum Einsatz kam, evtl. reiche ich diese bei Gelegenheit nach. Das Ganze dürfte sich zudem leicht z.B. auf Linux adaptieren lassen.
3CX: Installation zurücksetzen
Manchmal kommt es vor, das man eine 3CX-Installation zurücksetzen muss. Mitunter kommt es allerdings auch vor, das man noch vor Beginn der eigentlichen Ersteinrichtung, gemeint ist zu Beginn des Assistenten, das System herunterfahren muss. Nach einem Neustart wird dann allerdings der Assistent nicht neu gestartet bzw. fortgesetzt und das System ist, außer via ssh, nicht mehr erreichbar.
Entweder direkt an der Konsole oder via ssh anmelden und folgendes ausführen:
sudo /usr/sbin/3CXWizard --cleanup
Achtung: Alle evtl. vorhandene Konfiguration wird gelöscht! Den Befehl also nur ausführen, wenn man sich absolut sicher ist!
Mit diesem Befehl wird die PBX quasi auf Werkseinstellung zurückgesetzt und man kann anschließend den Installationsassistent neu durchlaufen.
Quelle:
Android: Conversations – Ein XMPP-Client
Ein XMPP-/Jabber-Server alleine reicht nicht, um Chats darüber zu führen. Die beteiligten Anwender benötigen einen Client. Für Android bietet sich die App Conversations an.
Zusamen mit einem selbst betriebenen kompatiblen Server wie (empfohlenerweise) Prosody kann man eine sichere und unter eigene Kontrolle stehende Plattform aufbauen.
Die möglichen Funktionen wie Verschlüsselung, Dateien versenden etc. sind vom jeweiligen XMPP-Server abhängig, gemeint ist, welche Erweiterungen unterstützt und letztlich auch konfiguriert sind.
Zu Kaufen gibt’s die App im Google Play Store oder für „kost-nix“ im F-Droid App Store.
Windows: Mal schnell einen LDAP-Browser zur Hand haben
Manchmal braucht man schnell mal einen LDAP-Browser um etwas nachschauen zu können. In meinem Fall war das während der letzten Askozia-zu-3CX-Migration der Fall, um aus der Ferne zu prüfen, ob im internen LDAP-Adressbuch der Askozia Kontakte hinterlegt sind.
Für auf die ganz Schnelle und nahezu komplett portable Nutzung bietet sich LDAP Admin an. Das Tool kann direkt via *.exe-Datei gestartet werden, es ist keine Installation notwendig, es gibt CLI-Support und zudem ist die Anwendung ziemlich flink. Einziger Wermutstropfen ist, das die Einstellungen in der Registry unter „HKCU\Software\LdapAdmin“ gespeichert werden.
Ein weiterer Kandidat ist der LDAP Browser von Softerra. Dieser muss zwar installiert werden, bietet dafür allerdings die hübschere Optik.
Das sind allerdings nur zwei Beispiele, es gibt mit Sicherheit noch mehr.
WordPress: Immer „Als Text einfügen“ aktivieren
Beim Schreiben mit WordPress kommt mitunter fleissig das Einfügen von Texten, Links usw. vor. Dabei kann es schnell lästig sein, wenn Formatierungen mitkopiert bzw. mit eingefügt werden, die man nicht benötigt, geschweige denn braucht. Immer zuerst in der Symbolleiste dann „Als Text einfügen“ anklicken zu müssen kann lästig sein.
So spontan ermittelt gibt es mindestens zwei einfache Wege dies zu lösen:
Via Plugin, z.B. mit Als unformatierten Text einfügen, oder mit einer Ergänzung der „functions.php“ im (Child-)Theme. Bei erstgenannten verschwindet die Schaltfläche komplett aus der Symbolleiste, bei letzterem bleibt die Schaltfläche erhalten, ist dafür aber vor-aktiviert. Folgenden Code hinzufügen:
add_filter('tiny_mce_before_init', 'ag_tinymce_paste_as_text'); function ag_tinymce_paste_as_text( $init ) { $init['paste_as_text'] = true; return $init; }
Der zweite Weg gefällt mir persönlich besser, da kein Plugin benötigt wird und somit auch nicht gepflegt werden muss.
P.S.: Ich verwende nach wie vor den Classic Editior, keine Ahnung, wie es bei Gutenberg (dem neuen Editor) ist.
Quelle:
Nokia: Verfügbare Android-Updates prüfen
Als Nokia-Besitzer wartet man aktuell mitunter lange auf Updates. Mein Nokia 6 ist noch auf dem Sicherheits-Update-Stand vom Frebruar 2019, im gesamten März war weit und breit keine Aktualisierung in Sicht und mittlerweile schreibt man den 03. April 2019.
Das man nicht alleine ist, zeigt ein Blick in die Nokia 6 Community. Einen Überblick der aktuellen Updatestände je Modell liefert folgende Hersteller-Seite:
Nokia Smartphone Security Maintenance Release Summary
So ganz aktuell scheint Nokia’s Seite allerdings nicht zu sein. So wird beispielsweise für das Nokia 6.1 noch der Updatestand Februar 2019 ausgegeben, obwohl das Gerät meiner Frau bereits auf März 2019 aktualisiert wurde.
Man könnte spekulieren, das die Nokia-Seite schlicht nicht ganz so aktuell ist, wie man es sich wünschen würde. Zum Zeitpunkt als dieser Beitrag geschrieben wurde, war diese auf dem Stand vom 25. März 2019. Beispielsweise Curved meldete am 29. März 2019 das Nokia 6.1-Geräte das März 2019-Update erhalten.
Generell eine gute Übersicht über Neuigkeiten aus dem „Nokia-Universum“ bietet die Seite Nokiamob.net. Dort konnte man bereits am 26. März 2019 lesen, dass das März 2019-Update für Nokia 6.1, in Form eines neuen Builds, ausgerollt wird.
Warum auch immer es gerade beim Nokia 6 und anderen Modellen so lange dauert, so sehr bleibt doch die Hoffnung, das es dennoch etwas wird und bei dieser Gelegenheit so manche Macke die es seit Android 9 Pie gibt, wie z.B. der geringen Akku-Laufzeit, dann ebenfalls gleich behoben wird.
Bislang erwies sich HMD Global, der Firma hinter Nokia, als recht zuverlässig was ihr Updateversprechen angeht. Selbst die Einstiegsgeräte erhielten Sicherheitsupdates als auch eine Aktualisierung auf Android 9 Pie.
Cisco SPA112 automatisch neu starten lassen
Die Cisco SPA112 ATAs sind eigentlich eine ganz nette Angelegenheit um analoge Nebenstellen via VoIP anzubinden. Leider stürzen so manche Geräte gerne mal ab. Dem kann man zum Teil mit automatischen Neustarts entgegenwirken.
Bei den bislang beobachteten Abstürzen war es so, das die Geräte zwar noch pingbar sind, aber sonst nicht mehr reagieren. Gemeint ist: Kein Zugriff auf das Web-Interface, keine Kommunikation via SIP/RTSP, in der Regel sind die betreffenden Nebenstellen nicht mehr registriert.
Grundsätzlich ist es eine gute Idee, sofern möglich, die von dem ATA abhängigen Nebenstellen zu überwachen. Am Bespiel von 3CX in Verbindung mit Fax klappt das leider nicht, da die Statusänderung einer Systemnebenstelle leider nicht per Mail gemeldet wird.
Mit dem Tool Cisco SPA112 Command Line Rebooter kann man automatisch mittels Skript bzw. Aufgabe den ATA von Windows aus neu starten lassen. Hervorzuheben ist, das es einen Rückgabewert (Errorlevel) gibt, den man weiter auswerten kann.
Ein einfaches Skript in Verbindung mit SMTPsend sieht so aus:
SPA112_rebooter.exe -username=admin -password=<Kennwort> -address=<IP-Adresse des ATAs> echo %date% - %time% - %errorlevel% >> report.txt if %errorlevel% gtr 0 ( echo Fehler beim automatischen Neustart des Cisco SPA112: > e-mail.txt echo %date% - %time% - %errorlevel% >> e-mail.txt smtpsend.exe -f<Absender-Adresse> -t<Empfänger-Adresse> -h<Mailserver> -sSPA112 Rebooter -ie-mail.txt -lu<Benutzername-des-Absender> -lp<Kennwort> )
Grundsätzlich wird immer ein Protokoll (report.txt) geschrieben, damit lässt sich der Miss-/Erfolg erfassen. Ist der Rückgabewert größer Null wird eine E-Mail versendet.
Selbst wenn das Neustarten nicht klappt, bekommt man so wenigstens eine Benachrichtigung das etwas nicht stimmt und kann danach schauen.
Windows 10: Von UEFI auf MBR umstellen
Kurzfristig musste eine bestehende Windows 10-Installation auf eine andere Hardware umziehen. Unglücklicherweise beherrscht der Ziel-Computer kein UEFI, folglich musste ein Wechsel der Startumgebung stattfinden. Anbei die notwendigen Schritte für ein solches Vorhaben.
Info: Vor Jahren wurde ein mögliches Vorgehen für Windows 8.1 in Verbindung mit Drive Snapshot beschrieben, dies wäre ebenso möglich. Anbei eine andere Variante für Windows 10.
Zuallererst unbedingt eine Datensicherung erstellen, für den Fall, das etwas schief läuft!
Als nächstes muss der Datenträger von GPT auf MBR umgestellt werden. Schnell, stressfrei und ohne Datenverlust gelingt das beispielsweise mit MiniTool Partition Wizard. Für diesen Schritt wurde die SSD aus dem Quellcomputer kurz per USB-Adapter an einen anderen Computer angeschlossen und konvertiert:
Den Datenträger mit der rechten Maustaste anklicken, „Convert GPT Disk to MBR Disk“ auswählen und „Apply“ anklicken.
Nun noch die Windows-Partition als aktiv markieren:
Die Windows-Partition der SSD (oder Festplatte) mit der rechten Maustaste anklicken, „Set Active“ auswählen und auf „Apply“ klicken.
Umgestellten Datenträger startfähig machen
Nachdem die SSD (oder Festplatte) im Ziel-Computer montiert ist kann man idealerweise mit einem Windows 10-Installations-Stick die Computerreparaturoptionen aufrufen und ist nach ein-zwei Durchläufen fertig. Leider klappte das bei diesem Ziel-Computer nicht, da der Stick dort schlichtweg nicht bootete. Als Plan B kam ein USB-Stick mit dem c’t Notfall-Windows zum Einsatz.
Sobald das Notfall-Windows gestartet ist folgende Befehle ausführen:
bootrec /fixmbr bootrec /scanos bootrec /rebuildbcd bcdboot C:/Windows /s C: /f BIOS
Danach den Computer neu starten. Windows 10 sollte nun booten und erkennt die neue Hardware, ggf. müssen noch Treiber installiert und die Aktivierung (erneut) durchgeführt werden.
Optional: Virtuelle Maschinen unter Hyper-V starten nicht
Bei diesem System wird Hyper-V für Tests als auch Docker verwendet. Beides streikte zunächst nach der Umstellung. Der Hintergrund ist simple: Dadurch das eine neue Startumgebung erstellt wurde, ging die Option verloren, das der Hypervisor ausgeführt werden soll. Ändern lässt sich dies mit folgenden Befehl in einer Eingabeaufforderung mit erhöhten Rechten:
bcdedit /set hypervisorlaunchtype auto
Anschließend den Computer neu starten.
Quellen:
Microsoft Hardware DevCenter – BCDBoot-Befehlszeilenoptionen
Windows TenForums – How to Convert GPT Disk to MBR Disk in Windows 10