Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Skripty umožňují IT specialistům dynamicky přizpůsobit aplikaci v uživatelském prostředí po zabalení pomocí MSIX. Pomocí skriptů můžete například nakonfigurovat databázi, nastavit síť VPN, připojit sdílenou jednotku nebo dynamicky provést kontrolu licence. Skripty poskytují velkou flexibilitu. Mohou změnit klíče registru nebo provádět úpravy souborů na základě konfigurace počítače nebo serveru.
Pomocí rozhraní PSF (Package Support Framework) můžete spustit jeden skript PowerShellu před spuštěním spustitelného souboru zabalené aplikace a jedním skriptem PowerShellu po spuštění spustitelného souboru aplikace k vyčištění. Každý spustitelný soubor aplikace definovaný v manifestu aplikace může mít vlastní skripty. Skript můžete nakonfigurovat tak, aby se spouštěl jenom jednou při prvním spuštění aplikace a bez zobrazení okna PowerShellu, aby uživatelé skript neskončili omylem. Existují další možnosti konfigurace způsobu spouštění skriptů, jak je znázorněno níže.
Požadavky
Pokud chcete povolit spouštění skriptů, musíte nastavit zásady spouštění PowerShellu na RemoteSigned. Můžete to provést spuštěním tohoto příkazu:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Zásady spouštění je potřeba nastavit pro 64bitový spustitelný soubor PowerShellu i 32bitový spustitelný soubor PowerShellu. Nezapomeňte otevřít každou verzi PowerShellu a spustit jeden z výše uvedených příkazů.
Tady jsou umístění každého spustitelného souboru.
- 64bitový počítač:
- 64bitový spustitelný soubor: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
- 32bitový spustitelný soubor: %SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
- 32bitový počítač:
- 32bitový spustitelný soubor: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
Další informace o zásadách spouštění PowerShellu najdete v tomto článku.
🚩 Nezapomeňte do balíčku zahrnout také StartingScriptWrapper.ps1 soubor a umístit ho do stejné složky jako spustitelný soubor. Tento soubor můžete zkopírovat z balíčku NuGet PSF nebo z úložiště PSF Na GitHubu.
Povolení skriptů
Pokud chcete určit, které skripty se budou spouštět pro každý spustitelný soubor zabalené aplikace, musíte upravit config.json soubor. Pokud chcete psF oznámit spuštění skriptu před spuštěním zabalené aplikace, přidejte položku konfigurace s názvem startScript. Chcete-li PSF oznámit, že má spustit skript po dokončení zabalené aplikace, musíte přidat položku konfigurace s názvem endScript.
Položky konfigurace skriptu
Níže jsou uvedené položky konfigurace, které jsou pro skripty k dispozici. Koncový skript ignoruje položky konfigurace waitForScriptToFinish a stopOnScriptError.
| Název klíče | Typ hodnoty | Povinné? | Výchozí | Popis |
|---|---|---|---|---|
scriptPath |
řetězec | Ano | není k dispozici | Cesta ke skriptu, včetně názvu a přípony Cesta je relativní vzhledem k pracovnímu adresáři aplikace, pokud je zadána, jinak začíná od kořenového adresáře balíčku. |
scriptArguments |
řetězec | Ne | prázdný | Seznam argumentů oddělených mezerami Formát je stejný pro volání skriptu PowerShellu. Tento řetězec se připojí k scriptPath, aby vytvořil platné volání PowerShell.exe. |
runInVirtualEnvironment |
Boolean | Ne | pravda | Určuje, jestli se má skript spustit ve stejném virtuálním prostředí, ve kterém běží zabalená aplikace. |
runOnce |
Boolean | Ne | pravda | Určuje, zda se má skript spustit jednou na každého uživatele a pro každou verzi. |
showWindow |
Boolean | Ne | Nepravda | Určuje, jestli se zobrazí okno PowerShellu. |
stopOnScriptError |
Boolean | Ne | Nepravda | Určuje, jestli se má aplikace ukončit, pokud se spouštěcí skript nezdaří. |
waitForScriptToFinish |
Boolean | Ne | pravda | Určuje, jestli má zabalená aplikace před spuštěním čekat na dokončení spouštěcího skriptu. |
timeout |
DWORD | Ne | NEKONEČNÝ | Jak dlouho bude skript povolený ke spuštění. Po uplynutí času se skript zastaví. |
Poznámka:
Nastavení stopOnScriptError: true a waitForScriptToFinish: false pro ukázkovou aplikaci se nepodporuje. Pokud nastavíte obě tyto položky konfigurace, nástroj PSF vrátí chybu ERROR_BAD_CONFIGURATION.
Vzorová konfigurace
Tady je ukázková konfigurace pomocí dvou různých spustitelných souborů aplikace.
{
"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)
]
}