In diesem Beitrag stellen wir einen QR-Code-Leser vor, der auf der Kommandozeile in PowerShell Skripten funktioniert. Darüber hinaus findet keine Übertragung der Bild-Datei an einen Web Service statt. Die lokale Verarbeitung ist insbesondere für sicherheitskritische QR-Codes, wie WLAN-Zugangsdaten1 oder OTP (One-Time Password)-Parameter für Zwei-Faktor-Authentifikationen, notwendig.

Möglich macht dies die .Net Library ZXing.Net2 von Michael Jahn, die auf einer Portierung der ursprünglich in Java implementierten Barcode-Leser und Generator Bibliothek zxing basiert. Damit das Skript funktioniert, muss ZXing.Net als erstes im GAC (Global Assembly Cache) installiert werden. Für die Installation wird das letzte auf GitHub veröffentlichte Release der Bibliothek benutzt:
Für die Installation muss das Skript mit administrativen Berechtigungen ausgeführt werden und verwendet die beiden Funktionen Install-GAC und Remove-GAC:
Der Barcode-Leser verwendet die Klasse BarcodeReader der ZXing.Net Bibliothek, um den Text aus deinem Barcode oder QR-Code auszulesen:
Für die Verarbeitung von Barcodes sind keine administrativen Berechtigungen mehr notwendig. Der BarcodeReader unterstütz die folgenden Formate: UPC-A, UPC-E, EAN-8, EAN-13, Code 39, Code 93, Code 128, ITF, Codabar, MSI, RSS-14 (all variants), QR Code, Data Matrix, Aztec and PDF-417. The encoder supports the following formats: UPC-A, EAN-8, EAN-13, Code 39, Code 128, ITF, Codabar, Plessey, MSI, QR Code, PDF-417, Aztec, Data Matrix.
Ausführung des Skriptes
Das Skript kann über die Kommandozeile mit der Barcode-Datei als Parameter aufgerufen werden:

Zusätzlich kann der Schalter „-install“ dem Skript übergeben werden, der die Installation der ZXing.Net Bibliothek durchführt. Die Installation wird auch durchgeführt, wenn die Bibliothek nicht gefunden wurde. Die Installation wird immer mit der Windows PowerShell (Powershell.exe) und nicht der PowerShell (pwsh.exe) durchgeführt.
Downloads
Convert-Barcode.zip | 38,7 KB | PowerShell Skript Convert-Barcode.ps1 und Beispiel QR-Code |