Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Skripts ermöglichen IT-Spezialisten das dynamische Anpassen einer Anwendung an die Umgebung des Benutzers, nachdem sie mithilfe von MSIX gepackt wurde. Sie können beispielsweise Skripts verwenden, um Ihre Datenbank zu konfigurieren, ein VPN einzurichten, ein freigegebenes Laufwerk zu installieren oder eine Lizenzüberprüfung dynamisch durchzuführen. Skripts bieten eine Menge Flexibilität. Sie können Registrierungsschlüssel ändern oder Dateiänderungen basierend auf der Computer- oder Serverkonfiguration durchführen.
Sie können das Paketunterstützungsframework (PACKAGE Support Framework, PSF) verwenden, um ein PowerShell-Skript auszuführen, bevor eine ausführbare Paketanwendung ausgeführt wird, und ein PowerShell-Skript, nachdem die ausführbare Anwendung ausgeführt wird, um zu bereinigen. Jede im Anwendungsmanifest definierte ausführbare Anwendung kann über eigene Skripts verfügen. Sie können das Skript so konfigurieren, dass es nur einmal beim ersten Start der App ausgeführt wird, ohne das PowerShell-Fenster anzuzeigen, damit Benutzer das Skript nicht versehentlich beenden. Es gibt weitere Optionen zum Konfigurieren der Ausführung von Skripts, wie unten dargestellt.
Voraussetzungen
Damit Skripts ausgeführt werden können, müssen Sie die PowerShell-Ausführungsrichtlinie auf RemoteSigned setzen. Sie können dies tun, indem Sie diesen Befehl ausführen:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Die Ausführungsrichtlinie muss sowohl für die ausführbare 64-Bit-PowerShell-Datei als auch für die ausführbare 32-Bit-PowerShell-Datei festgelegt werden. Öffnen Sie unbedingt jede Version von PowerShell, und führen Sie einen der oben gezeigten Befehle aus.
Hier sind die Speicherorte der einzelnen ausführbaren Dateien.
- 64-Bit-Computer:
- 64-Bit-Ausführbare Datei: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
- 32-Bit-Ausführbare Datei: %SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
- 32-Bit-Computer:
- 32-Bit-Ausführbare Datei: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
Weitere Informationen zu PowerShell-Ausführungsrichtlinien finden Sie in diesem Artikel.
🚩 Stellen Sie sicher, dass Sie auch die StartingScriptWrapper.ps1 Datei in Ihr Paket einschließen und sie in demselben Ordner wie Ihre ausführbare Datei platzieren. Sie können diese Datei aus dem PSF NuGet-Paket oder aus dem PSF Github-Repository kopieren.
Aktivieren von Skripts
Um anzugeben, welche Skripts für jede ausführbare Paketanwendung ausgeführt werden sollen, müssen Sie die config.json Datei ändern. Wenn Sie PSF anweisen möchten, ein Skript vor der Ausführung der verpackten Anwendung auszuführen, fügen Sie ein Konfigurationselement namens startScript hinzu. Um PSF anweisen, ein Skript auszuführen, nachdem die verpackte Anwendung abgeschlossen ist, fügen Sie ein Konfigurationselement namens hinzu endScript.
Skriptkonfigurationselemente
Im Folgenden sind die Konfigurationselemente aufgeführt, die für die Skripts verfügbar sind. Das endende Skript ignoriert die waitForScriptToFinish und stopOnScriptError Konfigurationselemente.
| Schlüsselname | Werttyp | Erforderlich? | Standard | BESCHREIBUNG |
|---|---|---|---|---|
scriptPath |
Schnur | Ja | Nicht verfügbar | Der Pfad zum Skript, einschließlich des Namens und der Erweiterung. Der Pfad ist relativ zum Arbeitsverzeichnis der Anwendung, falls angegeben, andernfalls beginnt er im Stammverzeichnis des Pakets. |
scriptArguments |
Schnur | Nein | leer | Durch Leerzeichen getrennte Argumentliste. Das Format ist für einen PowerShell-Skriptaufruf identisch. Diese Zeichenfolge wird an scriptPath angefügt, um einen gültigen PowerShell.exe-Aufruf vorzunehmen. |
runInVirtualEnvironment |
Boolescher Wert | Nein | Wahr | Gibt an, ob das Skript in derselben virtuellen Umgebung ausgeführt werden soll, in der die verpackte Anwendung ausgeführt wird. |
runOnce |
Boolescher Wert | Nein | Wahr | Gibt an, ob das Skript einmal pro Benutzer pro Version ausgeführt werden soll. |
showWindow |
Boolescher Wert | Nein | Falsch | Gibt an, ob das PowerShell-Fenster angezeigt wird. |
stopOnScriptError |
Boolescher Wert | Nein | Falsch | Gibt an, ob die Anwendung beendet werden soll, wenn das Startskript fehlschlägt. |
waitForScriptToFinish |
Boolescher Wert | Nein | Wahr | Gibt an, ob die verpackte Anwendung warten soll, bis das Startskript abgeschlossen ist, bevor es gestartet wird. |
timeout |
DWORD | Nein | UNENDLICH | Wie lange das Skript ausgeführt werden darf. Wenn die Zeit verstrichen ist, wird das Skript beendet. |
Hinweis
Das Festlegen stopOnScriptError: true und waitForScriptToFinish: false für die Beispielanwendung wird nicht unterstützt. Wenn Sie beide Konfigurationselemente festlegen, gibt PSF den Fehler ERROR_BAD_CONFIGURATION zurück.
Beispielkonfiguration
Hier ist eine Beispielkonfiguration mit zwei verschiedenen ausführbaren Anwendungsdateien.
{
"applications": [
{
"id": "Sample",
"executable": "Sample.exe",
"workingDirectory": "",
"stopOnScriptError": false,
"startScript":
{
"scriptPath": "RunMePlease.ps1",
"scriptArguments": "\\\"First argument\\\" secondArgument",
"runInVirtualEnvironment": true,
"showWindow": true,
"waitForScriptToFinish": false
},
"endScript":
{
"scriptPath": "RunMeAfter.ps1",
"scriptArguments": "ThisIsMe.txt"
}
},
{
"id": "CPPSample",
"executable": "CPPSample.exe",
"workingDirectory": "",
"startScript":
{
"scriptPath": "CPPStart.ps1",
"scriptArguments": "ThisIsMe.txt",
"runInVirtualEnvironment": true
},
"endScript":
{
"scriptPath": "CPPEnd.ps1",
"scriptArguments": "ThisIsMe.txt",
"runOnce": false
}
}
],
"processes": [
...(taken out for brevity)
]
}