Читать книгу PowerShell 7 und Windows PowerShell - Tobias Weltner - Страница 92
Windows-Terminal in eine portable App verwandeln
ОглавлениеAlle »Apps«, die Sie über den Microsoft Store herunterladen und installieren, sind eigentlich ganz normale Programme. Sie werden aber über den Store verwaltet und zum Beispiel automatisch auf neuestem Stand gehalten.
Das ist schön, hat aber auch Nachteile:
Manuelle Installation: Es gibt keinen (praktikablen) Weg, die Installation einer Store-App zu automatisieren, und die Installation erfolgt immer nur für den aktuellen Anwender. Sie können Store-Apps also nicht einfach verteilen.
Automatische Updates: Der Store kann unangekündigt eine App aktualisieren und beendet sie dazu einfach. Das ist keine gute Idee, falls zeitgleich in Ihrem Windows-Terminal gerade ein wichtiges Skript arbeitet.
Listing 1.12 verwandelt das Windows-Terminal in eine eigenständige portable Anwendung, die von beliebigen Anwendern genutzt werden kann und nicht mehr unangekündigt vom Store aktualisiert wird. Das Skript muss dazu mit Administratorrechten ausgeführt werden (siehe Abbildung 1.7).
Bitte geben Sie dieses Skript nicht von Hand ein. Schauen Sie sich lieber zuerst im folgenden Abschnitt an, wie Sie die Beispielskripte dieses Buchs automatisch aus dem Internet in den Editor einfügen können.
Wenn Sie möchten, können Sie das Windows-Terminal in eine normale portable Anwendung verwandeln. Führen Sie dann darin das folgende Skript aus. Es verwandelt das Windows-Terminal in eine normale portable Anwendung.
#requires -RunAsAdmin
# (In einer PowerShell mit vollen Administratorrechten ausführen!)
# Diese Werte bei Bedarf anpassen:
# App hier speichern
$destination = 'c:\meinTerminal'
# Suchen nach folgender App:
$search = 'terminal'
# Anwendungsname:
$anwendung = 'wt.exe'
# Alle installierten Microsoft-Store-Apps durchsuchen
Get-ChildItem "$env:programfiles\WindowsApps\" |
# App mit Suchwort im Namen auswählen
Where-Object name -like "*$search*" |
# Anwendung finden ...
Get-ChildItem -Filter $anwendung |
# Version der Anwendung finden
Select-Object -ExpandProperty VersionInfo |
# Versionen absteigend sortieren
Sort-Object -Property ProductVersion -Descending |
# höchste Version wählen
Select-Object -First 1 -ExpandProperty filename |
# übergeordneten Ordner finden ...
Split-Path |
# Ordnerinhalt auflisten
Get-ChildItem |
# Ordnerinhalt in Zielordner kopieren
Copy-Item -Destination $destination -Force
# Zielordner im Explorer öffnen
explorer $destination
# Startbefehl der neu kopierten App ausgeben:
"$destination\$anwendung"