Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Skript gör det möjligt för IT-proffs att anpassa ett program dynamiskt till användarens miljö när det har paketerats med HJÄLP av MSIX. Du kan till exempel använda skript för att konfigurera databasen, konfigurera ett VPN, montera en delad enhet eller utföra en licenskontroll dynamiskt. Skript ger stor flexibilitet. De kan ändra registernycklar eller utföra filändringar baserat på datorn eller serverkonfigurationen.
Du kan använda Package Support Framework (PSF) för att köra ett PowerShell-skript innan ett paketerat körbart program körs och ett PowerShell-skript efter att programmets körbara körningar har körts för att rensa. Varje körbar app som definieras i programmanifestet kan ha egna skript. Du kan konfigurera skriptet så att det bara körs en gång vid den första appstarten och utan att visa PowerShell-fönstret så att användarna inte avslutar skriptet i förtid av misstag. Det finns andra alternativ för att konfigurera hur skript kan köras, som visas nedan.
Förutsättningar
Om du vill aktivera skript som ska köras måste du ange PowerShell-körningsprincipen till RemoteSigned. Du kan göra detta genom att köra det här kommandot:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Exekveringsprincipen måste anges för både den 64-bitars och 32-bitars PowerShell-programmet. Öppna varje version av PowerShell och kör ett av kommandona som visas ovan.
Här är platserna för varje körbar fil.
- 64-bitars dator:
- 64-bitars körbar fil: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
- 32-bitars exekverbar fil: %SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
- 32-bitars dator:
- 32-bitars körbar fil: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
Mer information om PowerShell-körningsprinciper finns i den här artikeln.
🚩 Se till att även inkludera filenStartingScriptWrapper.ps1 i paketet och placera den i samma mapp som den körbara filen. Du kan kopiera den här filen från PSF NuGet-paketet eller från PSF Github-lagringsplatsen.
Aktivera skript
Om du vill ange vilka skript som ska köras för varje körbart paketerat program måste du ändra config.json-filen. Om du vill uppmana PSF att köra ett skript innan det paketerade programmet körs lägger du till ett konfigurationsobjekt med namnet startScript. Om du vill be PSF att köra ett skript när det paketerade programmet har slutförts lägger du till ett konfigurationsobjekt med namnet endScript.
Konfigurationsobjekt för skript
Följande är de konfigurationsobjekt som är tillgängliga för skripten. Det avslutande skriptet ignorerar konfigurationsobjekten waitForScriptToFinish och stopOnScriptError .
| Nyckelnamn | Värdetyp | Krävs? | Förinställning | Beskrivning |
|---|---|---|---|---|
scriptPath |
snöre | Ja | Inte tillgänglig | Sökvägen till skriptet, inklusive namn och tillägg. Sökvägen är relativ till programmets arbetskatalog om den anges, annars börjar den i rotkatalogen för paketet. |
scriptArguments |
snöre | Nej | tom | Blankstegsavgränsad argumentlista. Formatet är detsamma för ett PowerShell-skriptanrop. Den här strängen läggs till scriptPath för att göra ett giltigt PowerShell.exe-anrop. |
runInVirtualEnvironment |
booleskt | Nej | sann | Anger om skriptet ska köras i samma virtuella miljö som det paketerade programmet körs i. |
runOnce |
booleskt | Nej | sann | Anger om skriptet ska köras en gång per användare och version. |
showWindow |
booleskt | Nej | falskt | Anger om PowerShell-fönstret visas. |
stopOnScriptError |
booleskt | Nej | falskt | Anger om programmet ska avslutas om startskriptet misslyckas. |
waitForScriptToFinish |
booleskt | Nej | sann | Anger om det paketerade programmet ska vänta tills startskriptet har slutförts innan det startas. |
timeout |
DWORD | Nej | OÄNDLIG | Hur länge skriptet ska tillåtas att köras. När tiden går stoppas skriptet. |
Anmärkning
Inställning stopOnScriptError: true och waitForScriptToFinish: false för exempelprogrammet stöds inte. Om du anger båda dessa konfigurationsobjekt returnerar PSF felet ERROR_BAD_CONFIGURATION.
Exempelkonfiguration
Här är en exempelkonfiguration med två olika körbara program.
{
"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)
]
}