Von der PowerShell ISE auf VS Code wechseln

Nachdem die PowerShell ISE schon lange nicht mehr weiterentwickelt wird und in den neuen PowerShell Core Versionen überhaupt keine Rolle mehr spielt, habe ich den Umstieg auf VS Code gewagt.
Visual Studio Code ist ein kostenfreier, plattformübergreifender Quelltext-Editor von Microsoft, der sich durch PlugIns um Unterstützung für beliebige Sprachen erweitern lässt.

Um Dir den Wechsel zu erleichtern, habe ich die ersten Schritte hier zusammengefasst:

Installation von VS Code

VS Code ist als portable Version verfügbar. So kannst Du diese z.B. auf verschiedenen Systemen mit den gleichen Einstellungen nutzen, auch wenn eine Installation mangels Adminrechten oder sonstigen Einschränkungen nicht erwünscht ist.
Die hierfür benötigte ZIP-Datei kannst Du unter https://code.visualstudio.com/Download herunterladen und anschließend in ein Verzeichnis Deiner Wahl entpacken.
Je nach Windows-Einstellung musst Du zuvor eventuell noch die ZIP-Datei entsperren:

ZIP-Datei entsperren

Anschließend legst Du noch ein ‘data’-Verzeichnis im entpackten VS Code-Verzeichnis an, in dem dann alle Deine Einstellungen und heruntergeladenen Erweiterungen gespeichert werden. Später kannst Du dann dieses Verzeichnis einfach in ein anderes (neueres) VS Code Verzeichnis verschieben.

‘Data’-Verzeichnis anlegen

Nun kannst Du die ‘Code.exe’ starten.

Deutsches Sprachpaket installieren

Wenn Du VS Code gerne in Deutsch nutzen möchtest, kannst Du das ‘German Language Pack for Visual Studio Code’ installieren.
Hierfür drückst Du entweder [STRG + UMSCHALT + X] oder klickst auf das ‘EXTENSIONS’ Icon auf der linken Seite.
Wenn Du im Suchfenster mit der Eingabe von ‘German…’ beginnst, erscheint bald das Sprachpaket ganz oben und Du kannst auf ‘Install’ klicken:

Deutsches Sprachpaket installieren

Danach möchte VS Code einen Neustart haben. Den Button dazu findest Du in der rechten unteren Ecke:

‘Restart Now’-Button

Nun meldet sich VSCode mit der deutschen Willkommen-Seite zurück:

PowerShell Erweiterung installieren

Anschließend kannst Du die PowerShell-Erweiterung hinzufügen. Also wieder [STRG + UMSCHALT + X] drücken und im Suchfenster ‘PowerShell’ eingeben.

PowerShell Erweiterung installieren

Nach der Installation und dem Neustart ist auch gleich das ‘PowerShell ISE’- Farbschema aktiv:

Farbschema auswählen

Wenn Du doch den ‘DarkMode’ bevorzugst, rufst Du einfach mit
[STRG + UMSCHALT + P] die Befehlspalette aus und gibst im Suchfenster ‘Farbdesign’ ein:

Befehlspalette
Einstellungen: Farbdesign

Hier kannst Du das gewünschte Design auswählen:

Farbdesign auswählen

Einstellungen anpassen

Bevor Du nun mit dem Scripten loslegst, solltest Du noch ein paar Einstellungen anpassen.
In die Einstellungen kommst Du mit einem Klick auf das Zahnrad am linken unteren Fensterrand oder mit der Tastenkombination [STRG + ,]:

VSCode Einstellungen

Einstellungen lassen sich entweder in der grafischen Oberfläche vornehmen (was ich viel zu umständlich finde) oder direkt in der Datei
“[VSCode-Verzeichnis]\data\user-data\User\settings.json”, in der alle Einstellungen abgespeichert werden.

VSCode Einstellungen Grafik / ‘Settings’-Datei aufrufen

Hier ist ein Auszug meiner ‘settings.json’-Datei (zum Vergrößern auf das Bild klicken):

Auszug aus ‘Settings.json’-Datei

Jetzt nur noch ein Neustart von VSCode und Du kannst mit dem Scripten loslegen 😉

Tastenkombinationen

Wenn Du gerne mit Tastaturkürzeln arbeitest, findest Du unter https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf eine Übersicht zum herunterladen.
Du kannst aber auch eigene Tastenkombinationen definieren oder vorhandene ändern.
Dazu öffnest Du mit [STRG + K] [STRG + S] in die Einstellungen und nimmst die gewünschten Änderungen vor:

Einstellungen: Tastenkurzbefehle öffnen
VSCode – Tastenkombinationen
Print Friendly, PDF & Email

Passwörter in PowerShell: einfach & sicher mit Zertifikaten

Welcher Admin hat sich nicht mindestens einmal die Frage gestellt, wie er seine Passwörter sicher abspeichern kann, um sie dann möglichst ohne viel Aufwand in seinem PowerShell Script verwenden zu können?
Und am besten soll das Script dann auch auf verschiedenen Systemen oder von allen Teammitgliedern ausgeführt werden können.
Ich habe viele verschiedene Methoden ausprobiert und war mit keiner richtig glücklich.

Bei der Variante mit

hast Du zwar das Passwort sicher auf Deiner Festplatte abgespeichert, Du kannst aber dann das Passwort nur mit DEM Benutzer und auf DEM System, wo es erzeugt wurde, wieder entschlüsseln – für Teamarbeit gänzlich ungeeignet.

Auch das Verschlüsseln mit einem Key (wie z.B. die Seriennummer der Festplatte oder ähnlichen) ist ungünstig: entweder Du musst den Schlüssel wieder irgendwo hinterlegen werden oder Du kannst das Passwort wiederum nur auf dem System entschlüsseln, wo Du es erzeugt hast.

Auf die Lösung kam ich dann beim Lesen von Dr. Tobias Weltner’s Buch “PowerShell 5: Windows-Automation für Einsteiger und Profis” im Abschnitt “Scripte digital signieren”: diese Technik lässt sich auch wunderbar für Passwörter verwenden.

Zertifikat erstellen

Seit Windows 10 / Server 2016 verfügt das Cmdlet New-SelfSignedCertificate über erweiterte Optionen, über die z.B. auch die Gültigkeitsdauer angepasst werden kann.

Erstellen wir also zuerst ein selbstsigniertes Zertifikat:

Als Ergebnis erhalten wir zwei Dateien – den öffentlichen und privaten Teil des Zertifikats:

Zertifikatsdateien

Jetzt kannst Du den privaten Teil des Zertifikats auf dem System (bzw. den Systemen der Kollegen), auf dem Du die Passwörter entschlüsseln möchtest, installieren. Am einfachsten geht das mit einem Doppelklick auf die *.pxf-Datei.
Im Zertifikatimport-Assistent kannst Du alle Einstellungen beibehalten. Nach Eingabe des zuvor gewählten Passworts und Abschluss des Assistenten findest Du das Zertifikat bei den Benutzerzertifikaten: 

Passwort verschlüsseln

Nun kannst Du das Passwort mit dem öffentlichen Teil des Zertifikats verschlüsseln und abspeichern:

Passwort entschlüsseln

Anschließend kannst Du das Passwort ganz einfach durch Dein Script auslesen und verwenden:
Die PowerShell ist so schlau und erkennt das zur Entschlüsselung notwendige Zertifikat automatisch.
So kannst Du auch mehrere Zertifikate zum Beispiel für unterschiedliche Bereiche und Anforderungen erstellen und diese dann nur an den berechtigten Personenkreis weitergeben.

Wenn Du nun die verschlüsselten Passwort-Dateien auf einem freigegebenen Laufwerk ablegst, kannst Du bzw. Deine Kollegen von verschiedenen Systemen darauf zugreifen, ohne dass Ihr bei der Ausführung des Scriptes ein Passwort eingeben müsst.
Vorausgesetzt natürlich, der ausführende Benutzer hat das entsprechende Zertifikat vorab installiert.

Print Friendly, PDF & Email