Читать книгу 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"

PowerShell 7 und Windows PowerShell

Подняться наверх