PowerShell-Skript-Editor

PowerShell-Skripteditor mit PSADT-Spezialfunktionen – Syntaxhervorhebung, IntelliSense, Sprungmarken für die PSADT-Abschnitte, Assistenten für EXE-/MSI-/Registry-Befehle und direkter Absprung in den Dateivergleich.

Der PowerShell Editor ist der Skripteditor von PSADT-PackageForge. 

Er öffnet Invoke-AppDeployToolkit.ps1 und jede andere PowerShell-Datei, hebt sie farbig hervor, bietet Codefaltung, Minimap, Suchen/Ersetzen und eine Reihe von Werkzeugen, die speziell auf PSADT-Pakete zugeschnitten sind.


Das Fenster arbeitet in zwei Betriebsarten, die sich in der verfügbaren Werkzeugleiste unterscheiden:

Betriebsart

Wann

Besonderheit

Paketeditor (Standard)

Aufruf aus PSADT-PackageForge heraus für das Skript eines Pakets

Voller Funktionsumfang; die Buttons Prüfen und Einstellungen sind ausgeblendet

Direkter PS1-Modus

Aufruf über die Dateizuordnung / den PS1-Wrapper für eine einzelne .ps1

Neu, Öffnen, Ausführen, Prüfen und Einstellungen sind ausgeblendet – das Fenster ist an genau diese eine Datei gebunden


Zusätzlich hängt der Funktionsumfang von der Lizenz ab:

  • Freeware-Lizenz: Vergleichen, Befehlsbrowser (Button, Schaltfläche und Kontextmenü-Eintrag) und Reg2Psadt sind deaktiviert.
  • IntelliSense (Autovervollständigung für PSADT-Cmdlets) wird nur bei lizenzierter Installation geladen.

Dateizeile

Element

Funktion

Skriptname

Zeigt den vollständigen Pfad der geladenen Datei (Tooltip: nur der Dateiname). Ohne geladene Datei steht hier der Standardname für ein neues Dokument.

Roter Stern *

Erscheint, sobald ungespeicherte Änderungen vorliegen, und verschwindet nach dem Speichern. Derselbe Hinweis steht zusätzlich im Fenstertitel.

Werkzeugleiste

Linker Teil: Sprungmarken

Diese Buttons springen direkt an die entsprechende Stelle im PSADT-Skript. 

Technisch wird der jeweilige Markertext gesucht und der Cursor in die Zeile darunter gesetzt; der Editor scrollt dorthin und erhält den Fokus. 

Der Marker steht jeweils im Tooltip des Buttons.

Symbol

Ziel

Gesuchter Marker

Software-Spezifikationen / Session-Definition

$adtSession = @{

Vorbereitende Installationsschritte

## <Perform Pre-Installation tasks here>

Eigentliche Installation

## <Perform Installation tasks here>

Nacharbeiten zur Installation

## <Perform Post-Installation tasks here>

Vorbereitung der Deinstallation

## <Perform Pre-Uninstallation tasks here>

Eigentliche Deinstallation

## <Perform Uninstallation tasks here>

Nacharbeiten zur Deinstallation

## <Perform Post-Uninstallation tasks here>

Vorbereitung der Reparatur

## <Perform Pre-Repair tasks here>

Eigentliche Reparatur

## <Perform Repair tasks here>

Nacharbeiten zur Reparatur

## <Perform Post-Repair tasks here>

Erkennungsregel schreiben (SMF)

## Set Software Footprint (SMF = Software Management Framework)

Erkennungsregel entfernen (SMF)

## Remove Software Footprint (SMF = Software Management Framework)

Öffnet den konfigurierten PSADT-Paketstammordner im Windows-Explorer


Hinweis: 

Fehlt ein Marker im Skript (z. B. weil das Skript kein PSADT-Template ist oder der Kommentar gelöscht wurde), passiert beim Klick nichts – es erscheint keine Fehlermeldung.

Rechter Teil: Datei- und Bearbeitungswerkzeuge

Symbol

Tastenkürzel

Bedeutung

Strg+W

Öffnet einen zweiten, leeren Editor als eigenes Fenster. Das aktuelle Fenster bleibt unverändert geöffnet.

Strg+N

Leert den Editor für ein neues Skript. Bei ungespeicherten Änderungen wird vorher gefragt. Im direkten PS1-Modus ausgeblendet.

Strg+O

Öffnet den Dateidialog (PowerShell-Dateien). Bei ungespeicherten Änderungen wird vorher gefragt. Im direkten PS1-Modus ausgeblendet.

Strg+S

Speichert die Datei als UTF-8. Ist noch kein Pfad gesetzt, erscheint der Speichern-unter-Dialog. Der Button ist nur aktiv, solange es Änderungen gibt.

-

Öffnet PowerShell Compare mit der aktuellen Datei auf der linken Seite; die rechte Seite wählen Sie dort aus. Wurde im Vergleichsfenster die linke Datei gespeichert, lädt der Editor sie beim Schliessen automatisch neu. In der Freeware-Version deaktiviert.

F5

Startet das Skript mit powershell.exe -ExecutionPolicy Bypass in einem eigenen Fenster. Bei ungespeicherten Änderungen wird gefragt, ob vorher gespeichert werden soll (Ja / Nein / Abbrechen). Ohne Dateipfad wird eine temporäre Kopie ausgeführt. Im direkten PS1-Modus ausgeblendet.

Strg+Z

Nimmt die letzte Änderung zurück (Editor-Verlauf).

Strg+Y

Stellt eine zurückgenommene Änderung wieder her.

Strg+F

Öffnet die Such- und Ersetzenleiste.

Strg+Shift+B

Öffnet den PSADT-Befehlsbrowser als eigenes Fenster (Nachschlagen). In der Freeware-Version deaktiviert.

-

Öffnet den PSADT-Variablenbrowser als eigenes Fenster (Nachschlagen).

#

Strg+Q

Kommentiert die aktuelle Zeile bzw. die gesamte Auswahl.


Editorbereich

Grundfunktionen

  • PowerShell-Syntaxhervorhebung, Schriftart Consolas, keine automatische Zeilenumbrüche.
  • Zeilennummern und ein blauer Pfeil links, der die Zeile des Cursors markiert.
  • Codefaltung: PSADT-typische Blöcke lassen sich zusammenklappen. Die Faltmarken werden nach jeder Änderung automatisch neu berechnet (etwa eine halbe Sekunde nach der letzten Eingabe).
  • IntelliSense (lizenzierte Version): Autovervollständigung für PSADT-Cmdlets. Der Editor sucht die Toolkit-Dateien (*.psm1 / *.ps1) im Umfeld des geöffneten Skripts und lädt alle gefundenen Module.
  • Minimap am rechten Rand: Miniaturübersicht der gesamten Datei. Die Breite lässt sich über den blauen Trennbalken zwischen Editor und Minimap ziehen.

Kommentieren (Strg+Q oder der #-Button)

  • Ohne Auswahl: Die Zeile am Cursor wird kommentiert bzw. das führende # entfernt.
  • Mit Auswahl: Alle berührten Zeilen werden gemeinsam behandelt. Sind bereits alle nicht-leeren Zeilen kommentiert, wird entkommentiert (dabei wird ein Leerzeichen hinter dem # mit entfernt), sonst werden alle nicht-leeren Zeilen kommentiert. Leerzeilen bleiben unangetastet.

Codefaltung per Tastatur

Taste

Funktion

Strg+M

Faltblock an der Cursorposition auf-/zuklappen.

Strg+Shift+L

Alle Faltblöcke zuklappen; sind bereits alle zu, werden sie alle aufgeklappt.

Zoom

Taste

Funktion

Strg + Mausrad

Stufenlos hinein-/herauszoomen.

Zoom-Buttons in der Statusleiste

In 10-%-Schritten.

Bereich

50 % bis 300 %, der aktuelle Wert steht in der Statusleiste.

Kontextmenü (rechte Maustaste im Editor)

Die Einträge des Kontextmenüs passen sich der aktuellen Auswahl an: Steht im markierten Text bereits ein passender Befehl, wechselt der Eintrag von „Wizard" (neu erzeugen) auf „Edit" (vorhandenen Befehl bearbeiten) samt passendem Symbol.


Symbol

Eintrag

Funktion

Befehlsbrowser

Öffnet den PSADT-Befehlsbrowser im Einfüge-Modus: Der ausgewählte Befehl wird an der Cursorposition eingefügt. 

In der Freeware-Version deaktiviert.

Variablenbrowser

Öffnet den Variablenbrowser im Einfüge-Modus: Die ausgewählte Variable wird an der Cursorposition eingefügt.

Start-ADTProcess (EXE) – Wizard / Edit

Assistent für EXE-Aufrufe. Enthält die Auswahl bereits Start-ADTProcess, wird dieser Befehl in den Assistenten geladen und nach dem Bestätigen ersetzt; andernfalls wird der erzeugte Befehl in einer neuen Zeile eingefügt.

Start-ADTMsiProcess (MSI, MSP, …) – Wizard / Edit

Dasselbe für MSI-/MSP-Aufrufe mit Start-ADTMsiProcess.

Registry – Wizard / Edit

Registry-Assistent. Beginnt die Auswahl mit Set-ADTRegistryKey bzw. Remove-ADTRegistryKey, wird genau dieser Befehl bearbeitet und ersetzt. Ohne passende Auswahl erzeugt der Assistent neue Befehle; liefert er sowohl einen Setz- als auch einen Entfernen-Befehl, werden beide untereinander eingefügt.

Suchen und Ersetzen

Strg+F oder der Lupen-Button öffnet die Leiste oben rechts im Editor.

Suchzeile


Symbol

Eintrag

Funktion

Umschalt-Button

Klappt die Ersetzen-Zeile auf bzw. wieder zu.


Suchfeld

Suchbegriff. Die Treffer werden während der Eingabe hervorgehoben.

Optionen-Dropdown

Gross-/Kleinschreibung beachten, Nur ganzes Wort, Regulärer Ausdruck.

Vorheriger Treffer (F3)

Vorheriger Treffer.

Nächster Treffer (Shift+F3)

Nächster Treffer.

Schliessen

Schliesst die Suchleiste.

Ersetzen-Zeile (nach dem Aufklappen)


Symbol

Eintrag

Funktion

Tauschen-Button

Vertauscht Suchbegriff und Ersetzungstext miteinander.


Ersetzungsfeld

Der einzusetzende Text (darf leer bleiben – dann wird der Treffer gelöscht).

Ersetzen

Ersetzt den aktuell markierten Treffer und springt anschließend zum nächsten. Der Button ist nur aktiv, wenn die aktuelle Markierung tatsächlich dem Suchbegriff entspricht – so wird nie versehentlich beliebiger markierter Text überschrieben.

Alle ersetzen

Ersetzt alle Treffer im gesamten Dokument in einem Schritt und meldet die Anzahl. Ist nichts zu ersetzen, erscheint ein entsprechender Hinweis; bei einem ungültigen regulären Ausdruck eine Fehlermeldung. Die Option Nur ganzes Wort wird dabei berücksichtigt.

Statusleiste

Anzeige

Bedeutung

Statusmeldung

Rückmeldung zur letzten Aktion: Datei geladen, gespeichert, neues Dokument, Rückgängig/Wiederholen, Skript gestartet, Prüfergebnis, Ersetzungen usw.

Zeile

Eingabefeld mit der aktuellen Cursorzeile. Tippen Sie eine Zeilennummer ein und drücken Sie Enter (oder den kleinen Pfeil-Button, der beim Tippen erscheint) – der Cursor springt dorthin. Zu große oder zu kleine Werte werden auf die erste bzw. letzte Zeile begrenzt.

Position

Aktuelle Position des Cursors.

Kodierung

Die Datei wird als UTF-8 gelesen und als UTF-8 gespeichert.

Zoom

Aktuelle Vergrößerung, mit − und + in 10-%-Schritten verstellbar.

Schaltflächen am unteren Rand

Schaltfläche

BedeutungFunktion

PowerShell Command Browser

Öffnet den PSADT-Befehlsbrowser als eigenes Fenster zum Nachschlagen (ohne Einfügen). In der Freeware-Version deaktiviert.

PowerShell Variables Browser

Öffnet den Variablenbrowser als eigenes Fenster zum Nachschlagen.

File Info

Öffnet das Fenster FileInfo – Dateieigenschaften einer EXE (Version, Hersteller usw.) für Erkennungsregeln und Skriptparameter.

MSI Info

Öffnet das Fenster MsiInfo – Eigenschaften einer MSI-/MSP-Datei (ProductCode, Version usw.).

Reg2Psadt

Öffnet das Werkzeug Reg2Psadt, das .reg-Dateien in Set-ADTRegistryKey-Befehle umsetzt. In der Freeware-Version deaktiviert.

Beenden

Schließt den Editor. Bei ungespeicherten Änderungen wird zuvor gefragt (Ja / Nein / Abbrechen); Abbrechen und ein fehlgeschlagener Speichervorgang halten das Fenster offen.

Speichern und ungespeicherte Änderungen

  • Gespeichert wird immer UTF-8; ist noch kein Pfad gesetzt, erscheint der Speichern-unter-Dialog.
  • Der Speichern-Button und der rote Stern zeigen jederzeit, ob es offene Änderungen gibt.
  • Die Rückfrage erscheint vor Neu, Öffnen, Ausführen und Beenden:

Antwort

Ergebnis

Ja

Datei wird gespeichert, danach läuft die Aktion weiter. Schlägt das Speichern fehl, wird abgebrochen.

Nein

Änderungen werden verworfen, die Aktion läuft weiter.

Abbrechen

Die Aktion wird nicht ausgeführt.

Tastenkürzel im Überblick

Zoom

Taste

Funktion

Strg+N

Neues Skript

Strg+O

Datei öffnen

Strg+S

Speichern

Strg+W

Neues Editorfenster

Strg+Z / Strg+Y

Rückgängig / Wiederholen

Strg+F

Suchen/Ersetzen öffnen

F3 / Shift+F3

Nächster / vorheriger Treffer

Strg+Q

Kommentar ein/aus

Strg+M

Faltblock auf-/zuklappen

Strg+Shift+L

Alle Faltblöcke auf-/zuklappen

Strg+Shift+B

Befehlsbrowser

Strg + Mausrad

Zoom

Typische Arbeitsabläufe

Ein PSADT-Paketskript anpassen

  1. Skript aus PSADT-PackageForge heraus öffnen.
  2. Über die Sprungmarken direkt in den gewünschten Abschnitt springen (z. B. Installation).
  3. Mit dem Kontextmenü den passenden Assistenten aufrufen – EXE, MSI oder Registry – und den erzeugten Befehl einfügen.
  4. Mit F7 die Klammerung prüfen, mit Strg+S speichern.

Einen vorhandenen Befehl ändern

  1. Den kompletten Befehl im Editor markieren.
  2. Rechtsklick – der Eintrag lautet jetzt „Edit" statt „Wizard".
  3. Im Assistenten anpassen, bestätigen – der markierte Befehl wird ersetzt.

Gegen eine Referenzfassung abgleichen

  1. Vergleichen klicken – das aktuelle Skript steht links.
  2. Rechts die Referenzdatei wählen und die Unterschiede zusammenführen.
  3. Nach dem Speichern im Vergleichsfenster lädt der Editor die Datei automatisch neu.

Hinweise und Grenzen

  • Ausführen startet das Skript ohne Einschränkung mit umgangener Execution Policy. Bei PSADT-Skripten bedeutet das eine echte Installation bzw. Deinstallation – nur auf Testsystemen verwenden.
  • Sprungmarken funktionieren nur bei Skripten, die den PSADT-Template-Aufbau verwenden.
  • Die Codefaltung wird verzögert aktualisiert; unmittelbar nach dem Tippen kann sie kurz veraltet sein.
  • Der Button Einstellungen ist derzeit ohne Funktion.
  • Die Oberfläche ist mehrsprachig (MUI); fehlt ein Text in der gewählten Sprache, wird der englische Standardtext angezeigt.