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

Windows: SMTPSend mit TLS verwenden

$
0
0

SMTPSend von DataEnter ist ein nettes kleines Tool um beispielsweise aus Skripten heraus eine E-Mail versenden zu können. Im Rahmen dieses Blogs kam es bereits in mehreren Beitragen zur Sprache.

Möchte oder muss man den E-Mail-Versand nun TLS-verschlüsselt nutzen, geht das recht einfach:

smtpsend.exe -fABSENDER -tEMPFÄNGER -hSERVER -pPORT -sBETREFF -iMail.txt -v -luBENUTZERNAME -lpKENNWORT -lSMTPS

Relevant für SMTPS sind in der Regel die Parameter „-p“ für den Port, bei SMTPS meist 465,  dann „-lSMTPS“ um verschlüsselt zu arbeiten. Ggf. wird noch der Parameter „-lCA<PEM-Datei>“ benötigt um eine CA angeben zu können.

Um sich das Ganze erstmal anzusehen empfiehlt sich der Parameter „-v“. Gleich zu Beginn der Übertragung kann man die Zertifikatsprüfung sehen. Hier ein Beispiel mit All-Inkl:

SMTPSend v3.65 (Win8 w64)
(c) copyright DataEnter GmbH 1991-2018


From: <ABSENDER>
To: <EMPFÄNGER>


MX for <Ihr-Login>.kasserver.com is <Ihr-Login>.kasserver.com [IP]
Adding Body.txt (36 Bytes) to message body...
Connection established with <Ihr-Login>.kasserver.com [IP]
TLS Cert: /C=DE/postalCode=02742/ST=Sachsen/L=Friedersdorf/street=Hauptstra\xC3\x9Fe 68/O=kasserver.com/OU=kasserver.com/OU=Authorized by United SSL/OU=PremiumSSL Wildcard/CN=*.kasserver.com
Issuer: /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Organization Validation Secure Server CA
Valid: 2018-02-12 - 2021-02-12
Status: Certificate valid and trusted (CN+CA,strong key,strong algorithm)
Key: RSA-SHA256 with 2048 bit (ECDH, P-256 with 256 bit)
Cipher: TLSv1.2, ECDHE-RSA-AES256-GCM-SHA384 with 256 bit encryption (PFS,strong cipher,strong protocol)

„Die Arbeitsdatei konnte von Word nicht erstellt werden…

$
0
0

Überprüfen Sie die TEMP-Umgebungsvariable“.

Diese Nette Fehlermeldung erschien urplötzlich auf einem relativ frisch installiertem Windows 10-PC mit Office 2019. Kurioserweise lief er bereits ein paar Wochen ohne Schwierigkeiten.

Eine Überprüfung der genannten Umgebungsvariable offenbarte soweit nichts ungewöhnliches, verwies diese doch nach

%USERPROFILE%\AppData\Local\Microsoft\Windows\INetCache

wie es laut MS und dem Vergleich zu anderen PCs sein sollte. Auch in der Registry war der Pfad richtig eingetragen. Abhilfe schaffte der Lösungsvorschlag von hier:

Windows-Info – Meldung: Die Arbeitsdatei konnte von Word nicht erstellt werden. Überprüfen Sie die…

Kurzfassung der notwendigen Schritte:

  • Word beenden.
  • Im Explorer einstellen, das alle (versteckten) Dateien und Ordner angezeigt werden.
  • Via „Systemsteuerung – Internetoptionen“ auf der Registerkarte „Allgemein“ im Abschnitt „Browserverlauf“ auf „Einstellungen“ klicken.
  • „Ordner verschieben…“ anklicken und folgenden Pfad auswählen:
    C:\Users\%username%\AppData\Local\Microsoft\Windows
  • Die Änderung bestätigen und den Benutzer abmelden, besser den Computer neustarten.

Jetzt sollte es wieder funktionieren. Interessanterweise wurde beim betroffenen Computer der Pfad dann auf

%USERPROFILE%\AppData\Local\Microsoft\Windows\Temporary Internet Files

geändert, was laut MS für Computer vor Windows 8.x gilt:

Microsoft Support – „Outlook could not create the work file“ error when you start Outlook

Word-Datei kann aus Outlook heraus nicht geöffnet werden

$
0
0

Auf einem Windows 10-Computer mit Office 2019 war es nicht möglich, Word-Dateien aus E-Mails heraus zu öffnen. Es kam dabei immer zu folgender Fehlermeldung:

Speichert man die Datei zunächst ab und versucht diese zu Öffnen kommt es zur gleichen Fehlermeldung. Rechtsklick auf die Datei und dann „Zulassen“ anhaken ist zwar ein Lösungsweg, allerdings für das Tagesgeschehen relativ aufwendig.

Bei Microsoft selbst ist zu dieser Fehlermeldung allerdings in einer anderen Windows/Office-Konstellation vermerkt, das an prüfen soll, ob die Windows-Firewall ausgeführt wird:

Microsoft Support – Word-Dokumente oder Excel-Tabellen können nicht aus einer externen Quelle in Outlook geöffnet werden.

Ein Workaround ist, die geschützte Ansicht in Word zu deaktivieren:

Tippscout.de – Geschützte Ansicht in Word und Excel deaktivieren

  • Word starten.
  • Auf „Datei – Optionen“ klicken.
  • Zu „Trust Center – Einstellungen für das Trust Center“ wechseln.
  • Bei „Geschützte Ansicht“ und die Einstellungen anpassen.

Es ist zwar nicht mein Favorit Schutzmaßnahmen zu deaktivieren, wenn es allerdings nicht anders geht, was bleibt einem da anderes übrig. Da bei diesem Kunden Panda Adaptive Defense 360 und eine Arbeitsplatzdatensicherung zum Einsatz kommen, mache ich mir relativ wenig Gedanken über die „Geschützte Ansicht“.

MDaemon: ClamAV deaktivieren

$
0
0

Der Open Source Virenscanner ClamAV ist in jeder MDaemon Messaging Server-Installation, unabhängig vom SecurityPlus Addon, enthalten und per Voreinstellung aktiv.

Wer einen leistungsfähigeren Virenschutz beispielsweise in Form einer UTM oder anderer Security-Gateways vor dem MDaemon-Server betreibt oder der Mailserver in Sachen Arbeitsspeicher etwas schwach ausgestattet ist, der kann den ClamAV deaktivieren:

  • Die MDaemon-Verwaltungskonsole starten.
  • Zu „Sicherheit – AntiVirus“ wechseln.
  • Bei „AntiVirus – Virenprüfung“ in „Module für die Virenprüfung“ den Haken entfernen bei „Nachrichten mit Hilfe des Moduls ClamAV prüfen“.


Die Änderung greift ohne Neustart sofort, an Arbeitsspeicher wird ca. 1 GB freigegeben.

Mit Diskepper, SSDkepper oder V-locity Windows und Anwendungen beschleunigen

$
0
0

Wie die zuletzt vorgestellten oder erwähnten Produkten wie Elite Byte’s Velo-Anwendungen und Romex PrimoCache bietet Condusiv ähnliches an.

Diskeeper und SSDkeeper stellen der HDD bzw. SSD ebenfalls einen L1 Cache im RAM zur Seite und steigern so den Datendurchsatz und die IOPS. Im Gegensatz zu manch anderem Produkt am Markt muss kein Wert für die Cache-Größe eingestellt werden, den die Produkte nutzen von sich aus den verfügbaren (freien) Arbeitsspeicher. Ein Minimum von 3 GB, empfohlen sind 4 GB, sowohl für physikalische sowie virtuelle Computer wird dabei angegeben.

V-locity hingegen optimiert für physikalische und virtuelle Computer die I/O-Zugriffe und nutzt ebenfalls Caching und holt so mehr Performance aus der Hardware heraus.

Die Client-Editionen liegen preislich mehr oder weniger im Schnitt zu vergleichbaren Lösungen, die Server-Editionen spielen allerdings in einer anderen Liga, wie z.B. Diskeeper Server für $524.95 USD oder V-Locity für $524.95 USD (Stand 26.02.2020, Quelle: Hersteller-Online-Shop). Im Vergleich zu neuer Hardware oder Anwendungen wie Starwind’s VirtualSAN oder den Produkten von DataCore dennoch günstiger, wobei natürlich neben den Caching und Tierung ebenfalls die Unterschiede im Funktionsumfang beachtet werden müssen.

Android: Plötzliche Zertifikatswarnung in Mail

$
0
0

Auf dem Samsung-Smartphone eines Kunden meldete plötzlich die Mail-App einen Zertifikatsfehler. Bei näherer Betrachtung stellte man fest, das nicht (mehr) das eigentliche Zertifikat verwendet wird:

Mailserver-seitig wird ein öffentliches (ordentliches) Zertifikat verwendet. Wie und woher dieses „SO WIFI HOTSPOTS“-Zertifikat nun gezogen wurde blieb unklar. Laut Kunde war er mit keinem anderen WLAN verbunden. Ebenso wurden keine neuen Apps installiert oder welche aktualisiert. Seltsamerweise betraf es nur das ActiveSync-Konto der Firma, nicht allerdings ein parallel dazu eingerichtetes IMAP-Konto von Web.de.

SO WIFI scheint indes dieses hier zu sein:

SO Connect

Der Lesart nach eine Marketing-Analyse-Geschichte. Dazu gibt es neben „freien“ WLAN (man bezahlt ja mit seinen Daten bzw. Verhalten) wohl auch Apps mit den Namen „SO WIFI“ oder „SO Connect“. Beide waren im übrigen nicht installiert. Dem Kunden sagte der Name nichts.

Liest man in der FAQ kann einem da schon mal anders werden:

"SO WIFI ermöglicht es Ihnen, Ihre Kunden in- und auswendig kennen zu lernen und bietet eine Marketing-Plattform um diese direkt zu erreichen.
Durch die Installation eines SO WIFI Hotspots an Ihrem Standort können Sie Informationen über Ihre Besucher, Kunden und Passanten sammeln. ..."

Da sich das Zertifikat irgendwie „eingeschmuggelt“ hat, könnte man SSL-Interception vermuten.

Die Verbindungen von und zum Smartphone waren indes nicht auffällig. Ein Aufruf der Webmail-Seite des Mailservers, die das gleiche Zertifikat verwendet, war völlig in Ordnung, es wurde das richtige Zertifikat verwendet.

Irgendwelche VPN-, Proxy- oder sonstwie andere Verbindungen waren nicht konfiguriert. Namensauflösung (DNS) klappte ebenso ohne Überraschungen. Selbst wenn man die Zertifikatsmeldung bestätigte und der Sync lief wurde auf dem Mailserver die richtige IP-Adresse des Smartphones angezeigt. Soweit lies sich also nicht ermitteln das die Daten irgendwie einen anderen Weg nehmen als sie sollten.

So richtig klären was da passiert konnten wir leider nicht. Es bleibt ein mulmiges Gefühl zurück, zumal die Ursache unbekannt bleibt.

Die Lösung bestand darin, das betroffene ActiveSync-Konto zu löschen und neu anzulegen.

Bvckup 2: Versionierung aktivieren

$
0
0

Das kleine, aber feine Bvckup 2 beherrscht neben der einfachen Datensicherung gleichfalls eine Versionierung. Zusammen mit der Echtzeitüberwachung lässt sich so ein eigenes Continuous Data Protection (CDP) bauen.

Einen neuen Backup-Job mit folgenden Einstellungen anlegen:

  • When to backup: When files or folders are modified, in real time
  • Copying: Copy files in full
  • Deleting: Archive backup copies (Ist per Vorgabe aktiviert, sollte zur Sicherheit allerdings kontrolliert werden.)

Die restlichen Einstellungen kann man nach dem persönlichen Anforderungen konfigurieren.

Damit die bord-eigene Versionierung genutzt werden kann, muss diese im Job aktiviert werden. Über die Oberfläche geht dies leider nicht, so das man die Konfigurationsdatei bearbeiten muss:

  • „Rechtsklick auf den Job – Open Folder – Configuration and logging“ anklicken.
  • Bvckup 2 beenden. Sofern das Tool als Dienst läuft, den Dienst beenden.
  • Nun die Datei „settings.ini“ editieren und die Option „conf.archive_modified“ auf „1“ setzen.
  • Das Programm bzw. den Dienst wieder starten.

Ab sofort wird jede Änderung an einer Datei bzw. an/in einem Ordner erfasst.

Im Ziel sieht das z.B. so aus:

Die aktuellste Version befindet sich direkt im Ziel-Ordner:

Die vorigen Versionen befinden sich im Unterordner „$Archive (Bvckup 2):

Wo Licht ist, ist auch Schatten: Leider funktioniert die Versionierung in dieser Form nicht mit dem Delta-Abgleich. Dennoch ist Bvckup 2 so z.B. für kleine bis mittlere Dateien geeignet. Zum „Mitracken“ von Änderungen von Office-Dateien reicht dies völlig aus.

Für komplexere Versionierungs-Szenarien bzw. wenn der Delta-Abgleich relevant ist, lässt sich auf diesen Beitrag zurückgreifen oder eben dieser als Basis für eigene Varianten nutzen:

Bvckup 2: Versionierung mittels mklink, net use oder mehrere Jobs

Windows: Mit PrimoCache Windows und Anwendungen beschleunigen

$
0
0

Nach dem Test von VeloRAM und VeloFull und der Verlinkung der Condusiv-Produkte folgt nun ein Beitrag zu PrimoCache von Romex.

Wieso und weshalb ein zusätzlicher Zwischenspeicher (Cache) für SSD und/oder Festplatten-Zugriffe?

Im Computer gibt es in aller Regel keinen schnelleren Speicher als den Arbeitsspeicher (RAM). Selbst SSDs, ganz gleich ob mit SATA- oder NVMe-Schnittstelle, kommen nicht an dessen Performance heran. Da ist es naheliegend, einen Teil des Arbeitsspeichers wenn man so möchte als Puffer für Schreib- und Lesevorgänge zu benutzen. Hinzu kommt bei solchen Anwendungen wie PrimoCache das zufällige Zugriffe geordnet und in Folge schneller in Reihe gelesen bzw. geschrieben werden können.

Ein weiterer Pluspunkt ist, das sich mit dieser Software auf Bestandshardware, ohne deren Änderung, noch was an der Performance machen lässt. Teure (Neu-)Investionen sind nicht zwingend notwendig. Einzige Voraussetzung neben einem unterstützem Betriebssystem ist ausreichend freier Arbeitsspeicher. Grundsätzlich gilt: Je größer der Cache, desto höher der Performance-Gewinn.

Installation

PrimoCache steht sowohl für Windows-Clients-Betriebssysteme wie Windows 10 als auch für Windows Server zur Verfügung und kann 30 Tage bei vollem Funktionsumfang getestet werden. Die Installation geht schnell und ohne große Umschweife von statten, lediglich ein Neustart ist zwingend erforderlich.

Erst-Einrichtung

Nach dem Neustart lässt sich die Anwendung direkt über das Desktop-Symbol starten. Die Oberfläche ist klar aufgestellt und selbst ohne großes Studium des Handbuchs kommt man schnell zurecht.

Level-1 (RAM) Cache einrichten

    • Auf „Create a new Cache Task“ klicken.
    • Das zu beschleunigende Laufwerk oder Partition auswählen.
    • Im darauffolgenden Dialog kann die Cache-Größe sowie weitere Parameter eingestellt werden.
    • Nach einem Klick auf „Start“ beginnt PrimoCache sofort zu arbeiten.

Level-2 (SSD) Cache einrichten

Während der Level-1 Cache wenn man so möchte gradlinig von vorne eingerichtet wird, muss für die Verwendung des Level-2 (SSD) Caches zunächst dieser unter „Manage Level-2 Storage“ eingerichtet werden. Wichtig: Das Laufwerk bzw. die Partition muss vorhanden und mit NTFS formiertiert sein. Ein Laufwerksbuchstaben kann, muss aber nicht konfiguriert sein. Evtl. vorhandene Dateien auf dem Cache-Laufwerk werden im Laufe der Einrichtung gelöscht!

  • Auf „Create Level-2 Storage“ klicken.
  • Das Laufwerk bzw. die Partition, die den Cache beheimaten soll auswählen und auf „Format“ klicken.

Der Vollständigkeit halber: Der Level-2 Cache kann eine SSD, Festplatte, USB-Laufwerk oder SD-Karte sein. Aus Gründen der Performance sowie Betriebssicherheitsgründen sollte es allerdings eine interne SSD sein.

Sobald ein oder mehrere Level-2 Stoages angelegt wurden, können diese beim Anlegen oder Ändern von Cache Tasks angegeben werden:

Tipp: Unter „Preset Configuration“ gibt es vordefinierte Profile die man auswählen kann. Alle Einstellungen lassen sich zusätzlich manuell setzen und ex- sowie importieren.

Nebenbei bemerkt: Ein und der selbe Cache, ganz gleich ob Level-1 oder Level-2 bzw. beide, kann für mehrere Laufwerke gleichzeitg verwendet werden.

Im Betrieb

Von Vorteil ist, das man die Einstellungen im laufenden Betrieb ändern und anwenden kann. Der Cache wird zwar kurz „geflusht“, steht danach sofort wieder zur Verfügung, außer einem kurzem Performance-Einbruch passiert nichts weiter. Bestehende Laufwerke, ganz gleich ob Festplatte oder SSD können direkt beschleunigt werden, kein Neupartitionieren oder Formatieren notwendig, mit Ausnahme des „L2STORAGE“, also des SSD-basierten Zwischenspeichers, denn dessen Partition oder Laufwerk muss zwingend neu formatiert werden.

Im (unfairen) Vergleich zu beispielsweise den Storage Spaces von Microsoft besteht in dieser Hinsicht im laufenden Betrieb mehr Handlungspielraum. Apropos Storage Spaces: Diese lassen sich mit dem Einsatz von PrimoCache (weiter) beschleunigen!

Als weiteres steht eine CLI (Command Line Interface) zur skript-gesteuerten Automatisierung bzw. Überwachung zur Verfügung.

Tests

Anbei ein paar Impressionen von bisherigen (Test-)Installationen:

Hardware-Server, keine Virtualisierung, zwei Single-SSDs (kein RAID), Windows Server 2012 R2, beschleunigt werden soll nur Laufwerk C:, 4 GB Level-1 Cache, 40 GB Level-2 Cache

Vorher:

Nachher:

Hyper-V Host auf Basis von Windows Server 2016, RAID10 bestehend aus vier SSDs, 4 GB Level-1 Cache

Vorher:

Nachher:

Und so sieht’s innerhalb einer virtuellen Maschine dieses Hyper-V Hosts aus:

Vorher:

Nachher:

Leider brachen hier die zufälligen Zugriffe im Gegensatz zum Rest ein. Die Performance innerhalb einer virtuellen Maschine lässt sich durch eine Installation von PrimoCache (und ähnlicher Software) ebenfalls verbessern. Hier also das nachher Beispiel anhand der zuvor gezeigten virtuellen Maschine:

Das sieht doch schon besser aus, wenngleich nicht annähernd so gut wie direkt auf dem Host.

Und in der wahren Wirklichkeit?

Tests sind schön und gut, bleibt letztlich immer die Frage, ob die messtechnisch ermittelten Änderungen sich spürbar bemerkbar machen.

Mal mindestens ein Thunderbird der auf einem Terminalserver als RemoteApp läuft, ist nun deutlich flotter bzw. hängt nicht mehr beim Abrufen neuer Nachrichten (drei Postfächer) bzw. Updaten des Newsfeeds (25 Abos) so extrem wie vorher. Selbst die Wechsel zwischen den Ordner, ganz gleich ob Postfach oder Newsfeed, ist sichtbar zackiger.

Laut Mitarbeiter-Aussage ist zudem ecoDMS schneller. Auf weiteres Feedback warte ich derzeit noch.

Troubleshooting

Beim Versuch einen Level-1 Cache in einer Windows Server 2016-VM anzulegen kam es immer zu folgendem Fehler:

Im Ereignisprotokoll fand sich dazu dieses:

Protokollname: System
Quelle: FancyCcV
Datum: 26.02.2020 22:06:34
Ereignis-ID: 18
Aufgabenkategorie:Keine
Ebene: Fehler
Schlüsselwörter:Klassisch
Benutzer: Nicht zutreffend
Computer: wts02
Beschreibung:
Failed to create or join a cache task.

Beide Meldungen wurden an den Support weitergeleitet, dieser antwortete zügig. Kurioserweise konnte ohne jedes weitere zutun am nächsten Tag der L1 Cache angelegt werden. Funktionieren wollte er dennoch nicht (siehe „Status – Level-1 Cache: Disabled“):

Eine wichtige Info kam vom Support: NUMA wird erst ab der kommenden Version 4 unterstützt:

[2019-12-31] PrimoCache 3.2.0 and 4.0.0 alpha released!

Wobei NUMA jetzt nicht speziell bei diesem System konfiguriert ist. Seltsamerweise lief einen Tag später der Cache dann urplötzlich. Dazu sei angemerkt, das dieser Server automatisch nachts um 04:00 Uhr neustartet.

Man ist an diesem Thema noch dran.


Windows: Mehrere Laufwerke in einem Ordner oder in einer Freigabe bereitstellen

$
0
0

Eine schon recht alte Technik in Windows ermöglicht das Bereitstellen von mehreren Laufwerken in einem Ordner bzw. in einer Freigabe.

Man benötigt neben mehreren Laufwerken einen Ordner bzw. eine Freigabe, in dem bzw. der man für jedes Laufwerk einen Unterordner anlegt, z.B.

  • „C:\Share“ als als eigentlichen Ordner, der ggf. freigegeben ist bzw. wird.
  • „C:\Share\DATA01“ als Unterordner für das hinzuzufügende (weitere) Laufwerk.

Die zusätzlichen Laufwerke müssen online, initialisiert, partitioniert und formatiert sein. GPT und NTFS sind dabei die aktuellen Mittel der Wahl. MBR geht ggf. ebenfalls.

  • In der Datenträgerverwaltung wählt man das zu verbindete Laufwerk aus und klickt es mit der rechten Maustaste an.
  • „Laufwerksbuchstaben und -Pfade ändern“ auswählen.
  • Auf „Hinzufügen“ klicken.
  • „In folgenden leeren NTFS-Ordner bereitstellen“ auswählen und den zuvor erstellten Unterordner angeben.

Nach einem Klick auf „OK“ wird das Laufwerk im angegebennen Ordner bereitgestellt und kann verwendet werden. Die NTFS-Berechtigungen müssen für den erfolgreichen Zugriff ggf. angepasst werden.

Von Vorteil ist, das jedes Laufwerk nach wie vor eigenständig über einen Laufwerksbuchstaben angesprochen werden kann, es ist keine Neuformatierung o.ä. notwendig ist. Selbst Laufwerke die bereits Daten enthalten können so eingebunden werden. Eine mehrfache Bereistellug in unterschiedliche (unter-)Ordner ist ebenfalls möglich. In umgekehrter Richtung, also beim Aufheben der Bereitstellung, bleiben die Daten erhalten.

Hierbei handelt es sich um eine relativ einfache Möglichkeit, Speicherplatz zu erweitern bzw. Laufwerke zusammenzufassen. Mit ausgewachsenen SDS-Lösungen wie Microsoft’s Storage Spaces oder virtuellen Laufwerken/Pools wie StableBit’s DrivePool oder Divison-M’s Drive Bender ist das nicht vergleichbar. So fehlen Funktionen wie Balancing (Daten über Laufwerke verteilen), Spiegelung (Mirror, Parity, RAIDx) und weiteres.

Je nach Anspruch oder Aufgabenstellung dennoch eine sinnvolle Möglichkeit.

Windows: Robocopy mit VSS (Schattenkopie)

$
0
0

Robocopy ansich kann keine geöffneten Dateien kopieren. Seit Windows Server 2003 schaffen die Schattenkopien (VSS) abhilfe. Mit ein paar zusätzlichen Befehlen bzw. einem Skript kann man Robocopy und VSS zusammenbringen.

Folgendes Skript erstellt eine Schattenkopie, sichert diese mittels Robocopy und entfernt sie wieder. Robocopy arbeitet dabei mit Versionen. Eine Protokollierung und etwas Fehlerbehandlung ist ebenfalls enthalten. Ein Monitoring kann beispielsweise bei vorhandensein einer „error.txt“ Alarm schlagen.

@echo off

cls

rem Evtl. vorhandenes altes Fehlerprotokoll entfernen

 if exist error.txt del /q error.txt

rem Protokoll erstellen

 echo %date% - %time% - Start > current.log

rem Konfiguration

 set DriveLetter=D:
 set ShadowCopyVolume=D:\CDP\ShadowCopyVolume

 set Source=%ShadowCopyVolume%\Share
 set Destination=D:\CDP\Backup\Share

 set NumberOfVersionsToKeep=10

rem Version.txt pruefen, falls diese nicht existiert, dann anlegen

 if not exist Version.txt echo %NumberOfVersionsToKeep% > Version.txt

rem Version auslesen und ggf. festlegen

 set /p Version=< Version.txt set Version=%Version: =% set /A Version=Version %% NumberOfVersionsToKeep + 1 echo %Version% > Version.txt

rem Ziel-Ordner pruefen und ggf. anlegen

 if not exist "%Destination%\%Version%" mkdir "%Destination%\%Version%"

rem Schattenkopie erstellen

 echo %date% - %time% - Schattenkopie erstellen >> current.log

 vssadmin create shadow /for=%DriveLetter% > ShadowCopy.txt
 if %errorlevel% neq 0 echo error > vss-error.txt & exit

rem Schattenkopie-Volumename auslesen

 type ShadowCopy.txt | find "Schattenkopie-Volumename:" > ShadowCopyName.txt
 set /p ShadowCopyName=< ShadowCopyName.txt set ShadowCopyName=%ShadowCopyName:~30% rem Schattenkopiekennung auslesen type ShadowCopy.txt | find "Schattenkopiekennung:" > ShadowCopyID.txt
 set /p ShadowCopyID=< ShadowCopyID.txt set ShadowCopyID=%ShadowCopyID:~26% rem Schattenkopie bereitstellen mklink /d "%ShadowCopyVolume%\" "%ShadowCopyName%\" > NUL
 
rem Robocopy ausfuehren

 echo %date% - %time% - Robocopy ausfuehren >> current.log

 robocopy "%Source%" "%Destination%\%Version%" /mir /r:0 /w:0 /xj /np /log:Logs\robocopy-%Version%.log
 if %errorlevel% gtr 1 echo Fehler bei der Ausfuehrung von Robocopy >> error.txt
 type Logs\robocopy-%Version%.log >> current.log

rem Schattenkopie-Bereitstellung aufheben

 echo %date% - %time% - Schattenkopie Bereitstellung aufheben und die Schattenkopie entfernen >> current.log

 rmdir "%ShadowCopyVolume%"
 
rem Schattenkopie loeschen

 vssadmin delete shadows /shadow=%ShadowCopyID% /quiet > NUL
 if %errorlevel% neq 0 echo Fehler beim Loeschen der Schattenkopie >> error.txt & exit
 
rem Aufraeumen

 del ShadowCopy.txt /q
 del ShadowCopyName.txt /q
 del ShadowCopyID.txt /q

echo %date% - %time% - Ende >> current.log

Den Schattenkopie-Teil des Skripts habe ich irgendwann 2016/2017 mal im Rahmen eines Feldversuchs geschrieben. Der Robocopy-Versionen-Teil stammt aus diesem Beitrag:

Windows: Robocopy-Backup mit Versionen

In dieser Fassung läuft das Skript bei einem Kunden auf einem Windows Server 2016 stündlich Montags bis Freitags von 08:00 bis 17:00 Uhr und stellt sozusagen ein Marke-Eigenbau-CDP für eine Freigabe dar.

Diese Maßnahme wurde notwendig, da immer wieder aus einer Branchen-Anwendung heraus aus versehen Dateien und Ordner gelöscht wurden.

Man kann zwar auch die regulären Schattenkopien häufiger laufen lassen, allerdings wird dann der Schattenkopie-Speicher entsprechend belastet. Da es allerdings nur darum geht einen Ordner öfter zu sichern erschien diese Lösung attraktiver. Mit dem Skript hat man außerdem die Option als Ziel ein anderes Laufwerk, ein NAS oder Server anzugeben.

Windows: PrimoCache per Skript überwachen

$
0
0

PrimoCache von Romex Software lässt sich neben der grafischen Oberfläche per Command Line Interface (CLI) steuern. Dies bietet die Möglichkeit, den Status abzufragen und so das Produkt bzw. den Cache-Status in ein Monitoring einzubinden.

Im Programmordner unter

C:\Program Files\PrimoCache

befindet sich die Datei „rxpcc.exe“. Die möglichen Parameter sind in der Hersteller-Hilfe beschrieben:

PrimoCache – Help Documents – Command Line Interface (CLI)

Die CLI kann nur ausgeführt werden, wenn die GUI geschlossen ist!

Ein Überblick über den Status der angelegten Cache-Tasks erhält man mit „status“. Die Ausgabe sieht so aus:

Cache Task #1 {4A493D32-AFD5-4319-B4A4-AF4861378139}
Status: Active
Level-1 Cache: 4096MB
MM: 4096MB, IM: 0MB
R/W Ratio: Shared
Options: -
Level-2 Cache: 0MB
Block Size: 8KB
Strategy: Read & Write
Defer-Write: Enabled
Latency: 10s
Mode: Native
Options: -
Prefetch: Enabled
Overhead: 182,41MB
Volume #4: Cache (Active)
Strategy: Read & Write
Level-2 Cache: Disabled
Defer-Write: Enabled
Prefetch: Enabled

Eine Statistik gibt es beispielsweise mit „perf -c <Task-Nummer>“:

Volume #4:
Total Read : 4,32GB
Cached Read : 400,42MB (9,0%)
L2Storage Read : 0 (0,0%)
L2Storage Write : 0
Total Write (Req) : 4,37GB
Total Write (L1/L2) : 4,37GB / 0
Total Write (Disk) : 3,48GB (79,5%)
Urgent/Normal : 0 / 3,48GB
Deferred Blocks : 52 (0,0%)
Trimmed Blocks : 21887
Prefetch : Inactive
Free Cache (L1) : 69,01MB
Free Cache (L2) : 0

Eine Verkettung mehrerer Parameter wie „mem status perf -c 1“ funktioniert leider nicht. Möchte man die Ausgaben aus den einzelnen Abfragen in eine Datei schreiben hilft ein kleiner Batch-Aufruf:

@echo off

set PCPath=C:\Program Files\PrimoCache
set LogPath=C:\Logs\PrimoCache

cd "%PCPath%"

rxpcc.exe mem > "%LogPath%"\PrimoCache.log
echo. >> "%LogPath%"\PrimoCache.log
rxpcc.exe status >> "%LogPath%"\PrimoCache.log
echo. >> "%LogPath%"\PrimoCache.log
rxpcc.exe perf -c 1 >> "%LogPath%"\PrimoCache.log

Die wichtigsten Indikatoren das der Cache aktiv ist dürften die Zeilen

  • „Status:“ – Mögliche Werte „Active“, „Paused“
  • „Level-1 Cache:“ – Mögliche Werte „Disabled“, „<Cache-Größe>“
  • „Level-2 Cache:“ – Mögliche Werte „Disabled“, „<Cache-Größe>“

aus der „status“-Ausgabe sein. Ergo könnte man das zuvor erstellte Log danach auswerten:

type "%LogPath%"\PrimoCache.log | find "Status: Active"
if %errorlevel% gtr 0 echo Cache-Status-Fehler >> "%LogPath%"\error.txt

type "%LogPath%"\PrimoCache.log | find "Level-1 Cache: 4096MB"
if %errorlevel% gtr 0 echo Level-1 Cache deaktiviert >> "%LogPath%"\error.txt

Windows: Robocopy-Sicherung nach einer Änderung durchführen

$
0
0

Mit dem Parameter „/mon“ lässt sich bei Robocopy angeben, das dieses ausgeführt wird, wenn eine definierte Anzahl an Änderungen in der Quelle festgestellt wurden.

Im einfachsten Fall sieht das beispielsweise so aus:

robocopy <Quelle> <Ziel> /mir /mon:1 /mot:0

„/mot“ gibt übrigens die Zeit an, wann ausgeführt wird. Zum Verständnis:

Mit „/mon:1 /mot:1“ erfolgt die Ausführung jede Minute, wenn in dieser Zeit mindestens eine Datei verändert wurde. Die Ausgabe sieht so aus:

-------------------------------------------------------------------------------
ROBOCOPY :: Robustes Dateikopieren für Windows
-------------------------------------------------------------------------------

Gestartet: Donnerstag, 27. Februar 2020 21:17:25
Quelle : C:\Temp\source\
Ziel : C:\Temp\Destination\

Dateien : *.*

Optionen: *.* /S /E /DCOPY:DA /COPY:DAT /PURGE /MIR /XJ /MON:1 /R:0 /W:0

------------------------------------------------------------------------------

Neues Verz. 0 C:\Temp\source\

------------------------------------------------------------------------------

Insgesamt KopiertÜbersprungenKeine Übereinstimmung FEHLER Extras
Verzeich.: 1 1 0 0 0 0
Dateien: 0 0 0 0 0 0
Bytes: 0 0 0 0 0 0
Zeiten: 0:00:00 0:00:00 0:00:00 0:00:00
Beendet: Donnerstag, 27. Februar 2020 21:17:25


Monitor: Warten für 1 Minuten und 1 Änderungen...
1 Minuten : 2 Änderungen.

Robocopy wird dabei sozusagen in Schleife ausgeführt bis das STRG+C gedrückt wird.

Geeigent ist dieser Modus um möglichst zeitnah Änderungen an eine andere Stelle zu spiegeln. Nicht geeignet ist er wiederum um jede Änderung in ein eigenes Ziel zu sichern, da Robocopy keine dynamische Änderung des Ziels, z.B. mit aktualisiertem Zeitstempel, zulässt.

 

Links und Use Cases von, über und mit PrimoCache

$
0
0

Über PrimoCache findet man nicht so wirklich viel im Netz, eine Google-Suche liefert „gerade mal“ 69.100 Treffer. Ok, das war jetzt nicht ganz ernst gemeint, dennoch hier mal eine kleine Link-Sammlung.

heise testete PrimoCache 2017 (kostenpflichtiger Artikel):

Kurztest – Festplatten-Cache – Turbo für Festplatten

Ein gutes Kommentar dazu findet sich wiederum später zu einem anderen Artikel:

RAM-Cache schlägt SSD

Nahezu selbstverständlich finden sich auch YouTube-Videos zum Programm.

Ein sehr interessanter Beitrag über die Performance in einer VDI-Umgebung (Virtual Desktop Infrastructure) findet sich hier:

How Do I Computer? – PrimoCache Server Edition 2.2.0 – Product Review

Dieser hat zwar mittlerweile schon ein paar Jahre auf dem Buckel (VÖ 2016), zeigt dafür sehr schön, welche Maßnahmen was für Änderungen bringen.

Eine Sammlung von Use Cases in verschiedenen Sprachen findet sich direkt auf der Hersteller-Seite:

Romex Software – PrimoCache – Examples of Usages, Tutorials, Articles, Reviews & Videos

Den zuvor genannten Beitrag sowie meine eigenen finden sich dort ebenfalls.

Zusätzlich sind auch die Kommentare zu Windows: Mit PrimoCache Windows und Anwendungen beschleunigen interessant.

Danke an Romex Software für’s Verlinken und Danke an alle die Kommentieren.

Weitere Erfahrungswerte sind willkommen!

Windows: Skript ausführen sobald eine Datei oder ein Ordner sich ändern

$
0
0

Möchte man eine Datei oder Ordner auf Änderungen überwachen und dann im Falle des eintretens eines Ereignisses einen Befehl oder Skript ausführen, so bieten sich hierfür Tools wie watchexec oder Watchman an. In diesem Beitrag geht es um das erstgenannte Tool.

Die Handhabe von watchexec ist denkbar einfach:

watchexec <Befehl>

Beim simplesten Aufruf wird der aktuelle Ordner auf Änderungen überwacht und sobald eine Eintritt der angegebene Befehl ausgeführt.

Gezielt kann man mit „-w“ den bzw. die zu überwachenden Ordner angeben:

watchexec -w <Ordner> <Befehl>

„-w“ kann mehrfach angegeben werden:

watchexec -w <Ordner 1> -w <Ordner 2> <Befehl>

Das Tool bietet eine Vielzahl ein Parametern:

watchexec 1.12.0
Execute commands when watched files change

USAGE:
    watchexec [FLAGS] [OPTIONS] ...

FLAGS:
    -c, --clear                Clear screen before executing command
    -h, --help                 Prints help information
    -k, --kill                 Send SIGKILL to child processes (deprecated, use -s SIGKILL instead)
        --no-default-ignore    Skip auto-ignoring of commonly ignored globs
        --no-ignore            Skip auto-loading of ignore files (.gitignore, .ignore, etc.) for filtering
    -n, --no-shell             Do not wrap command in 'sh -c' resp. 'cmd.exe /C'
        --no-vcs-ignore        Skip auto-loading of .gitignore files for filtering
    -p, --postpone             Wait until first change to execute command
    -r, --restart              Restart the process if it's still running
    -V, --version              Prints version information
    -v, --verbose              Print debugging messages to stderr
    -W, --watch-when-idle      Ignore events while the process is still running

OPTIONS:
    -d, --debounce     Set the timeout between detected change and command execution, defaults to 500ms
    -e, --exts           Comma-separated list of file extensions to watch (js,css,html)
    -f, --filter ...        Ignore all modifications except those matching the pattern
    -i, --ignore ...        Ignore modifications to paths matching the pattern
    -w, --watch ...            Watch a specific directory
        --force-poll       Force polling mode
    -s, --signal             Send signal to process upon changes, e.g. SIGHUP

ARGS:
    ...    Command to execute

Wenn man nicht möchte, das direkt nach dem Start bereits einmal der angegebene Befehl ausgeführt wird, muss „-p“ verwendet werden. Beendet bzw. abgebrochen wird mit „Strg + c“.

Nachdem die Parameter „/mon“ und „/mot“ von Robocopy nur bedingt dazu geeignet sind, um Änderung à la CDP in einen jeweiligen Ordner zu erfassen, bietet sich nun in der Kombi mit watchexec eine neue Gelegenheit.

Der Befehl zum Aufruf kann so aussehen:

watchexec -p -w C:\Source --force-poll 30000 cdp.cmd

„–force-poll“ mit der Angabe von 30000 ms (30 s) ist in diesem Kontext notwendig, da sonst sowohl die geänderte Datei(en) als auch eine leere Kopie des Quellordners am Ziel erstellt wurden. Die Parameter muss man ggf. den eigenen Bedürfnissen anpassen. Anbei ein Beispiel-Skript für die Nutzung von Robocopy. Am Ziel-Ordner wird nach jeder Änderung ein Unterordner mit Zeitstempel erstellt, der die geänderte(n) Daten enthält.

@echo off


rem Konfiguration

 set source=C:\Source
 set destination=C:\Backup

rem Datum und Uhrzeit umwandeln

 set day=%date:~0,2%
 set month=%date:~3,2%
 set year=%date:~6,4%

 set hh=%time:~0,2%
 set mm=%time:~3,2%
 set ss=%time:~6,2%

rem Robocopy

 robocopy "%source%" "%destination%\%year%-%month%-%day%_%hh%-%mm%-%ss%" /s /xj /r:0 /w:0 /m /xx

Die Ausgabe sieht bei einem Durchlauf so aus:

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robustes Dateikopieren für Windows
-------------------------------------------------------------------------------

  Gestartet: Sonntag, 1. März 2020 22:29:55
   Quelle : C:\source\
     Ziel : C:\Backup\2020-03-01_22-29-55\

    Dateien : *.*

  Optionen: *.* /S /DCOPY:DA /COPY:DAT /XX /XJ /M /R:0 /W:0

------------------------------------------------------------------------------

         Neues Verz.       1    C:\source\test-ordner5\
100%        Neue Datei                 1        test-file5.txt

------------------------------------------------------------------------------

           Insgesamt   KopiertÜbersprungenKeine Übereinstimmung    FEHLER    Extras
Verzeich.:         8         8         0         0         0         0
  Dateien:         8         1         7         0         0         0
    Bytes:       280         1       279         0         0         0
   Zeiten:   0:00:00   0:00:00                       0:00:00   0:00:00


Geschwindigkeit:                 500 Bytes/Sek.
Geschwindigkeit:               0.028 Megabytes/Min.
   Beendet: Sonntag, 1. März 2020 22:29:55

Im Ziel-Ordner sieht es so aus:

28.02.2020  23:14    <DIR>          2020-02-29_12-08-09
28.02.2020  23:14    <DIR>          2020-02-29_12-08-35
28.02.2020  23:14    <DIR>          2020-02-29_12-08-42
28.02.2020  23:14    <DIR>          2020-02-29_12-08-44
01.03.2020  22:15    <DIR>          2020-03-01_22-15-39

Ein paar Notizen zu pcvisit

$
0
0

Ich schreibe viel zu selten über die Fernwartungssoftware pcvisit, das liegt zum einen daran, das es einfach läuft und eigentlich nicht viel zu sagen gibt. Oder vielleicht doch?

Seit Ende 2018 nutzen wir statt TeamViewer nun pcvisit, im Großen und Ganzen läuft’s. Hier and da gab’s mal ein paar Kleinigkeiten, wie den schwarzen Bildschirm, der allerdings nicht pcvisit-spezifisch ist. Die weiteren Zeilen enthalten ein bisschen Troubleshooting und Konfigurationshinweise.

Multi-Monitor

Manchmal kommt das Programm etwas durcheinander, wenn man sich mit Computern verbindet, die zwei (oder mehr) Displays verwenden. Entweder die 1 ist dann 2 und umgekerht, oder es wird der gesamte Desktop unter 1 oder 2 angezeigt. Auch das ist kein Problem, man klickt einfach ? und wählt das richtige Display aus und/oder ändert den Zoom und gut ist’s.

Nicht übernommene Einstellungen

Ab und an kommt es vor, das die Einstellungen des jeweiligen Ordners beim Verschieben eines neu hinzugefügten Computers nicht vererbt werden. Gelöst wird dies so:

  • Rechtsklick auf den betroffenen Host und „Computer verwalten…“ auswählen.
  • Zu „Firmenspezifischen Computereinstellungen“ wechseln.
  • Dort die Einstellungen bzw. Haken zum übernehmen von Einstellungen prüfen.

Keine Verbindung möglich, obwohl der Host online ist

Zwei-Dreimal hing der Dienst, aber das hatten wir bei TeamViewer auch immer mal wieder. Von Vorteil ist, das man aus der Ferne den Dienst neustarten kann, sofern er noch irgendwie reagiert, versteht sich.

Tools

Generell ist das Kontextmenü eine Hilfe, vor allem die Tools:

Direkter Zugriff auf RDP-Sitzungen

Beim Zugriff auf Terminalserver (aka RDSH – Remote Desktop Session Host) kommt dem Supporter zu gute, das man via „Rechtsklick – Verbinden mit Benutzer…“ direkt in die Sitzung des Benutzer springen kann:

Was gibt’s denn noch?

Einiges! Nachfolgend ein paar „Kleinigkeiten“:

Eigenes Logo in die Kunden-Module einbinden

Unter

Einstellungen - Meine Daten einsehen

das Logo anklicken und ein Eigenes hochladen.

Automatisches Anlegen von Desktop-Verknüpfungen nach der Nutzung des Kunden-Moduls deaktivieren

Die passende Konfiguration findet man unter

Einstellungen - Kunden-Module anpassen - Automatisches Erstellen von Verknüpfungen einstellen

bzw. (führt beides zum gleichen Ziel)

Einstellungen - In Fernwartung einladen

Download-Link für den spontanten Suppert für die eigene Homepage erzeugen

Um für den spontanten Support den Download eines Kunden-Moduls beispeilsweise auf der Homepage anbieten zu können, benötigt man einen passenden Link. Dieser findet sich in den Einstellungen des Supporter-Moduls unter

Einstellungen - In Fernwartung einladen - Downloadlink in die Zwischenablage kopieren

Alternativ:

Einstellungen - In Fernwartung einladen - HTML-Code für ihre Homepage in die Zwischenablage kopieren

Vorkonfiguriertes Host-Setup erstellen

Es gibt mal mindestens drei Optionen einen Host zu installieren:

  • Manuell
  • Halbautomatisch
  • Vollautomatisch

Einen Host komplett „zu Fuß“ einzurichten mit Firmen-ID, etc. macht wenig Freude, ein angepasstes Setup ist da schon angenehmer. Damit das funktioniert muss zunächst konfiguriert sein, mit welchen Daten die Installation vorbelegt sein soll.

Unter

Einstellungen - pcvisit-Remote-Hosts bei Kunden installieren

zuerst auf „Fernzugriff auf neue Computer konfigurieren“ klicken und mindestens die Kennwörter setzen. Anschließend kann man einen Schritt zurückgehen und das angepasste Setup herunterladen.

In dieser Form wird bei der Installation die Firmen-ID vorbelegt und man wird gefragt, ob man die Einstellungen des Supporters übernehmen möchte. Kurzum: Das Setup ist halbautomatisch.

Hängt man an das angepasste Setup ein „/S“ an, so wird dieses vollautomatisch ohne Interaktion oder Fortschrittsanzeige ausgeführt.

Um eine Setup-Datei zu erhalten, die vollautomatisch ausgeführt wird und ohne das man irgendetwas anhängen muss, kann man sich diese selbst bauen.

Am Beispiel von 7-Zip ist das Vorgehen wie folgt:

  • Das aktuelle Host-Setup aus dem Kundenbereich oder das angepasste Setup herunterladen.
  • Mittels 7-Zip die zuvor heruntergeladene Datei als 7-Zip-Archiv packen. An dieser Stelle ist relevant, das aus der „pcvisit_RemoteHost_Setup*.exe“ eine „pcvisit_RemoteHost_Setup*.7z“ wird.
  • LZMA SDK herunterladen und entpacken.
  • Eine Datei mit dem Namen „config.txt“ erstellen und folgendes Einfügen. Die „ExecuteFile“-Zeile muss mit den entsprechenden Dateinamen angepasst werden.
    Nicht angepasstes Setup:
    ;!@Install@!UTF-8!
    Title="pcvisit Host-Setup"
    ExecuteFile="pcvisit_RemoteHost_Setup.exe"
    ExecuteParameters="/S /CompanyAccountId=<Firmen-ID> /UseCompanyPreset"
    ;!@InstallEnd@!

    Angepasstes Setup:

    ;!@Install@!UTF-8!
    Title="pcvisit Host-Setup"
    ExecuteFile="pcvisit_RemoteHost_Setup.c.<Firmen-ID>...g.lb3.pcvisit.de...exe"
    ExecuteParameters="/S"
    ;!@InstallEnd@!
  • In einer Eingabeaufforderung folgenden Befehl ausführen:
    copy /b lzma1900\bin\7zSD.sfx + config.txt + pcvisit_RemoteHost_Setup*.7z pcvisit-host-autosetup.exe

Die so erzeugte *.exe-Datei installiert den Host ohne jede weitere Nachfrage (außer nach erhöten Rechten), es wird kein Fenster angezeigt.

Möchte man dennoch eine Abfrage vor der Installation haben, kann man folgende Zeile in der „config.txt“ nach der „title“-Zeile einfügen:

BeginPrompt="Möchten sie den pcvisit-Host installieren?"

Wie installiere ich einen vorkonfigurierten Remote-Host?

Wie kann ich die Module automatisiert installieren?

Remote-Host per Softwareverteilung installieren

Selbstverständlich lässt sich der Host auch per klassischer Softwareverteilung, mit und ohne MSI und Gruppenrichtlinie verteilen:

Wie kann ich den pcvisit Remote-Host per Softwareverteilung in einer Windows-Domäne ausrollen?

Für die Installation und die allgemeine Nutzung als auch die Integration sind die Kommandozeilenparameter interessant.

Integration

pcvisit bietet gleich mehrere Mittel und Wege zum Einbinden an. Zusätzlich zu der Kommandozeile ein paar Links und ein Beispiel:

Integration von pcvisit in Remote Desktop Manager

Die Integration von pcvisit in Ihr Ticketsystem

Dokumentation erbrachter Leistungen via E-Mail: Integration in Systeme, wie AutoTask, TANSS, googleSheets, SQL etc.

pcvisit lässt sich dank seines CLI von jedem Programm aus aufrufen. Als externes Programm in mRemoteNG sieht das beispielsweise wie folgt aus:

Im Benutzerfeld der mRemoteNG-Verbindung trägt man den Remote-Host ein. Den richtigen Namen findet man im Supporter-Modul nach einem Rechtsklick auf den Computer unter

Computer verwalten... - Fernzugriff für diesen Computer konfigurieren - Computer-Kennung

Fernwartungsberichte de-/aktivieren

Per Vorgabe wird auf dem Supporter-PC nach Beendigung einer Fernwartung ein Bericht auf dem Desktop abgelegt. Benötigt man diese nicht oder möchte man weiteres konfigurieren so kann das unter

Einstellungen - Dokumentation, Integrationen einrichten

geschehen.

Was (imho) noch fehlt

Zumindest das Kopieren kleinerer Dateien mittels copy & paste wäre hilfreich. Für größere bzw. viele Dateien ist die integrierte Nutzung von FileZilla völlig in Ordnung und erfüllte bislang seinen Dienst tadellos.

Für die Automatisierung wäre nett, wenn man den Ziel-Ordner, also den Kunden bzw. die Abteilung sowie den angezeigten Namen mit übergeben könnte, damit der neu hinzugefügte Computer gleich an der richtigen Stelle hinterlegt wird.


Windows: Remotedesktopverbindung mit PSK oder TLS schützen

$
0
0

Nachdem der mittlerweie mehrere Jahre alte Beitrag Remotedesktopverbindung mit SSL schützen in dieser Form heute nicht mehr funktioniert, nun eine aktualisierte Fassung.

Im Gegensatz zur ursprünglichen Fassung werden diesmal in Verbindung mit stunnel zwei unterschiedliche Ansätze vorgestellt. Zum einen die recht einfache Variante mit einem Pre-shared Key (PSK), zum anderen mit Zertifikaten. Das Ganze wurde erfolgreich unter Windows 10 Pro 1909 und stunnel 5.56 getestet.

Der Einfachheit halber wurde stunnel unter „C:\stunnel“ installiert. So hat man es leichter die Konfigurationsdatei zu bearbeiten und Zertifikate zu erstellen, ohne das man ständig mit der Benutzerkontensteuerung von Windows aneinander gerät. Die Daten können über die NTFS-Berechtigungen vor unerwünschten Zugriffe geschützt werden.

Warum nicht Certificate-Pinning?

Als einfachste und quasi-nachfolge Methode zum ursprünglichen gegenseitigem Vertrauen der Zertifikate erscheint Certificate-Pinning. Client/Server-seitig ist dieses einfach zu konfigurieren:

Server:

; *** Logging ***
debug = info
output = stunnel.log

; *** Services ***

[RDP-TLS]

accept = 9000
connect = 127.0.0.1:3389
cert = stunnel.pem

Client:

; *** Logging ***
debug = info
output = stunnel.log

; *** Services ***

[RDP-TLS]
client = yes
accept = 127.0.0.1:9000
connect = <Ziel-IP-oder-Hostname>:9000
CAfile = stunnel.pem
verifyPeer = yes

Allerdings scheint dies ebenfalls nicht (mehr) zu funktionieren, denn im Log finden sich beim Verbindungsversuch folgende Meldungen:

CERT: Pre-verification error: unsupported certificate purpose
Rejected by CERT at depth=0...

Ich habe eine ganze Weile versucht das zu klären, hatte allerdings keinen Erfolg damit. Daher (lieber) die nachfolgenden Methoden.

stunnel mit PSK verwenden

Server-seitig benötigt man folgende Konfigurationsdatei:

; *** Logging ***
debug = info
output = stunnel.log

; *** Services ***
[RDP-PSK]
accept = 9000
connect = 127.0.0.1:3389
ciphers = PSK
PSKsecrets = secrets.txt

Anschließend erzeugt man den bzw. die PSK(s). Am einfachsten geht das mit einme kleinen Skript:

@echo off

set openssl_conf=C:\stunnel\config\openssl.cnf
set RANDFILE=C:\stunnel\config\.rnd

echo.

C:\stunnel\bin\openssl.exe rand -hex 32

echo.
pause

Den erzeugten PSK speichert man zusammen mit einem frei-definierbaren Benutzernamen in der Datei „C:\stunnel\config\secrets.txt“ ab:

<Benutzername>:<PSK>

Wahlweise kann man nun die „stunnel.exe“ mit einem Doppelklick aus dem Ordner „C:\stunnel\bin“ starten oder stunnel als Dienst einrichten und starten. Ersteres ist für Anfang und zum Beobachten des Live-Logs interessanter. Letzteres geht mit:

c:\stunnel\bin\stunnel.exe -install
c:\stunnel\bin\stunnel.exe -start

In der Firewall muss der entsprechende Port, im Beispiel „9000/tcp“ freigegeben sein, damit ein Verbindungsaufbau erfolgreich verlaufen kann. I.d.R. richtet stunnel bei der Installation von selbst Regeln für sich ein.

Die Client-Seite sieht nur leicht anders aus:

; *** Logging ***
debug = info
output = stunnel.log

; *** Services ***
[RDP-PSK]
client = yes
accept = 127.0.0.1:9000
connect = <Ziel-IP-oder-Hostname>:9000
ciphers = PSK
PSKsecrets = secrets.txt

In der „secrets.txt“ muss nur der Satz an Daten enthalten sein, der für diesen Client bestimmt ist. Auf dem Client kann man stunnel ebenso wie auf dem Server starten. Öffnet man nun die Remotedesktopverbindung (mstsc) gibt man bei „Computer:“ „127.0.0.1:9000“ ein.

stunnel mit Zertifikaten verwenden

Früher war’s einfacher, konnte man schlicht die jeweils selbst-signierten Zertifikate die stunnel bei der Installation generiert gegeneinander verifizieren lassen, einen vorigen Austausch vorausgesetzt. Das funktioniert so heute nicht mehr. Man kommt um den Einsatz eine PKI (Public Key Infrastructure, Zertifikatsinfrastruktur) nicht mehr herum. Das ist zwar komplexer, dafür allerdings auch sicherer.

CA einrichten

Damit erfolgreich Zertifikate ausgestellt werden können, sind ein paar Schritte notwendig. Zunächst die notwendigen Vorbereitungen:

  • OpenSSL (Light) herunterladen und nach „C:\OpenSSL“ installieren. Dieser Schritt ist empfohlen, da die openssl-Version die stunnel beiliegt nicht aktuell ist, ferner fehlt eine für die CA brauchbare „openssl.cnf“.
  • Die Datei „C:\Program Files\Common Files\SSL\openssl.cnf“ editieren und wie folgt ändern:
    dir = C:/stunnel/config
  • Unter „C:\OpenSSL\bin“ einen Ordner namens „newcerts“ anlegen.
  • Eine leere „index.txt“ unter „C:\OpenSSL\bin“ erzeugen.

Steht das Notwendige soweit, kann mit der Generierung der eigentlichen CA fortgefahren werden. Im Ordner „C:\OpenSSL\bin“ eine Eingabeaufforderung öffnen und folgende Befehle ausführen:

Privaten Schlüssel der CA erzeugen:

openssl genrsa -out ca.key

Zertifikatsanfrage der CA erzeugen:

openssl req -new -key ca.key -out ca.csr

Zertifikat der CA ausstellen:

openssl x509 -req -days 3650 -in ca.csr -out ca.crt -signkey ca.key

Server-Zertifikat ausstellen

Mit den nachfolgenden Befehlen werden die notwendigen Zertifikate samt Schlüssel sowohl für den Server als auch den Client erzeugt:

openssl genrsa -out server.key
openssl req -new -key server.key -out server.csr
openssl ca -in server.csr -cert ca.crt -keyfile ca.key -out server.crt -create_serial

Client-Zertifikat ausstellen

openssl genrsa -out client.key
openssl req -new -key client.key -out client.csr
openssl ca -in client.csr -cert ca.crt -keyfile ca.key -out client.crt

Die *.csr-Dateien können nach dem Ausstellen der Zertifikate gelöscht werden.

Server

Nachdem die CA steht, kommt die eigentliche stunnel-Konfiguration, die vergleichsweise einfach ausfällt. Die zuvor erstellten Dateien „ca.crt“, „server.crt“ und „server.key“ müssen nach „C:\stunnel\config“ kopiert werden.

; *** Logging ***
debug = info
output = stunnel.log

; *** Services ***

[RDP-TLS]

accept = 9000
connect = 127.0.0.1:3389
CAfile = ca.crt
verifyChain = yes
cert = server.crt
key = server.key

Client

Und hier die passende Client-Konfiguration. Wichtig ist, das auf den Client die Dateien „ca.crt“, „client.crt“ und „client.key“ hinterlegt werden.

; *** Logging ***
debug = info
output = stunnel.log

; *** Services ***

[RDP-TLS]
client = yes
accept = 127.0.0.1:9000
connect = <Ziel-IP-oder-Hostname>:9000
CAfile = ca.crt
verifyChain = yes
cert = client.crt
key = client.key

Client-seitig kann ein mehr an Sicherheit durch das Hinzufügen folgender Zeile(n) erreicht werden:

checkHost = <CommonName des Server-Zertifikats>
checkIP = <IP-Adresse des Servers>

Der restliche Ablauf, d.h. stunnel starten und mittels Remotedesktopverbindung arbeiten ist wie zuvor weiter oben beschrieben.

Quellen:

stackoverflow – OpenSSL as a CA without touching the certs/crl/index/etc environment

stunnel – Auth

stunnel – Docs – X509_check_host

Windows: MS Office 2019 Home and Business und Publisher 2019 (jeweils Klick-und-Los) parallel installieren

$
0
0

Verschiedene Office-Versionen, -Editionen und Lizenz-Formen auf einem Computer sind ein leidiges Thema. Bei einem Kunden tat sich jetzt folgende Kombi auf:

MS Office 2019 Home & Business war bereits installiert und nun sollte parallel dazu noch ein MS Publisher 2019 hinzukommen. Diese Konstellation, also zweimal Klick-und-Los (Click-to-Run, C2R) wird von Microsoft nicht unterstützt. Entweder das eie oder das andere bzw. eine größere Office-Suite lautet die offizielle Linie. Über ein-zwei Umwege geht es dennoch. In der Registry folgende Einstellungen ändern:

Unter

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\HomeBusiness2019Retail - de-de

einen neuen REG_DWORD mit dem Namen „SystemComponent“ und dem Wert „1“ setzen.

Unter

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\HomeBusiness2019Retail - de-de

den Eintrag „VersionsToReport“ umbenennen.

Anschließend das Setup starten. Es kann passieren, das der erste Durchlauf nicht klappt, dann einfach nochmal starten. Nach erfolgreicher Installation die Änderungen wieder zurücknehmen und das zuletzt installierte Office-Paket/-Programm aktivieren.

Quellen:

Der erste Regisrty-Eintrag fand sich in Borns IT- und Windows-Blog:

Office Click to Run und MSI-Version parallel installieren

Den Zweiten habe ich selbst mittels Process Monitor und dem Filter was die „Setup.exe“ in der Registry so treibt ermittelt.

Es gibt viele verschiedene Office-Versionen, -Editionen, -Lizenzformen, zwei Setup-Techniken (C2R, MSI) und Installationsreihenfolgen. Für die vorliegende Kombi hat das so funktioniert, bei anderen kann es allerding schon wieder ganz anders aussehen. Womöglich helfen die genannten Registry-Einstellungen auch bei weiteren unterschiedlichen Konstellationen.

Word: AutoText und Einstellungen des Schnellzugriffs auf neuen Computer übernehmen

$
0
0

Seine über Jahre gesammelten AutoText-Schnippsel und die angelegten Symbole im Schnellzugriff kann man einfach auf einen neuen Computer mitnehmen.

Das klappt dann beispielsweise auch von MS Office bzw. Word 2010 zu 2019. Die „AutoTexte“ werden in der Standard-Vorlage von Word gespeichert. Diese findet sich unter

C:\Users\%username%\AppData\Roaming\Microsoft\Templates

in der Datei „Normal.dotm“. Diese kann einfach an gleiche Stelle auf den neuen Computer kopiert werden. Die verknüpften Symbole und deren Anordnung im Schnellzugriff kann ex- und importiert werden.

  • Auf „Symbolleiste für den Schnellzugriff anpassen“ klicken und „Weitere Befehle…“ auswählen.
  • Auf „Importieren/Exportieren“ klicken.
  • Auf dem Quellcomputer „Alle Anpassungen exportieren“ auswählen und ein Ziel angeben.
  • Auf dem Zielcomputer „Anpassungsdatei importieren“ auswählen und die Datei angeben.

Wichtig: Nach dem Importieren Word neustarten, erst dann wird die Änderung sichtbar!

Nextcloud: Lesezeichen in der Cloud, auf dem Smartphone und dem Computer

$
0
0

Mit der Nextcloud-App Bookmarks (Lesezeichen, GitHub) kann man seine Browser-Favoriten in der Cloud verwalten, via Browser-Erweiterung und Smartphone-App abrufen, erweitern und editieren.

Mit Ordnern und Tags kann man die Links organisieren. Für jeden Eintrag kann der Name sowie Notizen festgelegt bzw. geändert werden.

Android

Mit NCBooksmark bin ich nicht warm geworden, grundsätzlich lief sie allerdings. Die App Save to Nextcloud Bookmarks (F-Droid) wiederum funktionierte bei mir nicht, es kam keine Verbindung zustande. Mit Nextcloud Bookmarks (F-Droid, Google Play Store [Kostenpflichtig]) klappte die Anbindung der Nextcloud Lesezeichen an Android, sowohl zum Abrufen, als auch um aus dem Browser heraus ein Lesezeichen an die Cloud zu senden. Da Ordner im Gegensatz zur Verwaltung im Browser in der App nicht unterstützt werden, sollte man unbedingt die Tags verwenden.

Firefox und Chrome

floccus synchronisiert Lesezeichen zwischem dem Browser und der Nextcloud.

FreedomMarks bitetet zwar keine Synchronisation an, dafür kann man neue Lesezeichen direkt in die Nextcloud „schicken“, Bestehende durchsuchen und öffnen.

Nextcloud: Newsfeeds in der Cloud und auf dem Smartphone

$
0
0

Bislang habe ich meine Newsfeeds im Thunderbird, das funktioniert hat aber den Nachteil, das man unterwegs nichts mitbekommt oder selbst wenn man irgendwie/irgendwo News liest, der Gelesen-/Markiert-Status nicht zentral übernommen wird.

Eine Möglichkeit das zu lösen wenn man eine Nextcloud am Laufen hat ist die Verwendung der Nextcloud-Erweiterung News (GitHub) zusammen mit der Android-App Nextcloud News. Man verwaltet die Newsfeeds in der Nextcloud via Browser und dockt die Smartphone-App einfach an. So hat man mobil ebenfalls die gleichen Newsfeeds, diese werden regelmässig in der Nextcloud aktualisiert und so sieht man die ungelesenen Feeds sowohl direkt in der Nextcloud im Browser als auch in der Smartphone-App.

Bemerkung: Die Screenshots sind zu unterschiedlichen Zeiten entstanden, daher keine Übereinstimmung bei den Artikeln und deren Stati.

Markieren, etc. geht auf beiden Seiten, d.h. der Lesen/Ungelesen-Status oder die Markierung der Artikel wird abgeglichen, so weiß man egal auf welchem Gerät man bereits was gelesen hat. Feine Sache und für mich eine wesentliche Verbesserung gegenüber der bisherigen Nutzung von Thunderbird, News-Apps, usw.

Die Feeds können einzeln vorhanden sein oder in Ordner organisiert werden. In den Einstellungen kann man regeln, ob man nur die ungelesen Nachrichten oder alle sieht und ob beispielsweise die kompakte Ansicht verwendet werden soll.

Startschwierigkeiten

Nach dem Export der Newsfeed aus Thunderbird als OPML-Datei und dem anschließenden Import in Nextcloud News sah’s zunächst gut aus. Alle Feeds waren da, allerdings jeder in einem eigenen Unterordner, das mag allerdings nur Kosmetik sein. Jedenfalls gab’s die ersten Überraschungen beim Verschieben der Feeds aus den jeweiligen Unterordnern, denn manche verschwanden daraufhin. Versuchte man diese manuell wieder neu anzulegen, erhielt man die Meldung, das dies nicht möglich sei, da der Feed bereits vorhanden wäre. Direkt sichtbar war das allerdings nicht. Woran es womöglich gehangen hat gleich mehr.

Als nächstes fiel auf, das keine Aktualisierung stattfand. Sozusagen ab Werk soll News den Nextcloud-Cronjob nutzen. Das dieser funktioniert konnte anhand der Benachrichtigungen von anderen Apps, dem Log und der Anzeige im Administrator unter „Einstellungen – Verwaltung – Grundeinstellungen“ entnommen werden.

Bei der Durchsicht des Nextcloud-Logs stach einem allerdings ins Auge, das die Datei „/var/www/nextcloud/data/news/config/config.ini“ nicht gefunden wurde. Tatsächlich war weder der „config“-Ordner noch die „config.ini“ vorhanden und das Problem scheint nicht unbekannt zu sein:

Nextcloud – News – Missing config.ini #515

Den Ordner und die Datei per Hand angelegt und mit den Standards gefüllt, die Rechte („www-data“, 0750 für den Ordner, 0644 für die Datei) angepasst und … es geschah immer noch nichts. Das Log war nun sauber und selbst ein manuelles Antriggern des Cronjobs brachte nichts. Entäuscht gab ich an einem frühen Freitag-Abend auf.

Apropos Standards: In der „config.ini“ gibt es einen Eintrag „autoPurgeMinimumInterval“ der besagt das gelöschte Feeds noch 60 Sekunden in der Datenbank verweilen, bis das sie endgültig gelöscht werden. Man könnte nun darauf spekulieren, das dies der Grund war, das die verschwundenen Feeds nicht gleich wieder neu angelegt werden konnten.

Verzögerter Erfolg

Ein paar Stunden später zeigte die Android-App an, das neue News zur Verfügung stehen und tatsächlich läuft es seitdem. Bis jetzt, gut drei Tage bislang, ohne weitere Überraschungen. Die Feeds die sich zunächst wieder neu anlegen liesen konnten am gleichen Freitag-Abend, allerdings Stunden später, wieder hinzugefügt werden.

Ohne weiteres Zutun hat sich das Ganze irgendwie gefangen und verrichtet seitdem seinen Dienst. Mal schauen wie’s weitergeht.

Viewing all 2191 articles
Browse latest View live