Manuál pro pokročilou instalaci s Active Directory
Nastavení souvisejících funkcí Windows
Instalace prostřednictvím PowerShell skriptu
Příkaz Add-AppxPackage slouží k přidání aplikace (a potřebných závislostí) pro aktuálního uživatele. Pokud je Family Name instalované aplikace shodné s nějakou dříve nainstalovanou aplikací, dojde k její aktualizaci.
Příklad (PowerShell):
Add-AppxPackage -Path ".\Corinth3D_Sideload_x64.appxbundle" -DependencyPath ".\Dependencies\x64\Microsoft.NET.Native.Framework.1.3" ".\Dependencies\x64\Microsoft.NET.Native.Runtime.1.4.appx" ".\Microsoft.VCLibs.x64.14.00.appx"
Pozn.: Pokud použijete příkaz Add-AppxPackage, bude třeba jej provést pro každého uživatele zvlášť, protože příkaz zpřístupní aplikaci pouze aktuálnímu uživateli.
Příkaz Add-AppxPackage lze použít také ke zpřístupnění aplikace, která je již na počítači nainstalovaná, aktuálnímu uživateli. Aplikační balíček v tom případě již není potřeba.
Příklad (PowerShell):
Add-AppxPackage -RegisterByFamilyName -MainPackage "Corinth.Corinth3D_wv8kxjmt4maqr"
Příkaz Add-AppxProvisionedPackage přidá aplikaci do obrazu (image) Windows prostřednictvím nástroje DISM (Deployment Image Servicing and Management), tzv. provisioning aplikace. Tím pádem je aplikace zpřístupněna pro všechny uživatele na daném počítači, aktuálně existující i budoucí, podobně jako jsou jim dostupné výchozí aplikace Windows (Kalkulačka, Kalendář atd.).
Pozn.: Při spouštění příkazu je třeba specifikovat cílový obraz (image) Windows. Obvykle tím bude současné (právě spuštěné) prostředí, což lze určit přepínačem -Online
. Cestu k umístění jiného připojeného obrazu Windows můžete zadat parametrem -Path.
Pozn.: Příkaz předpokládá zadání licenčního souboru aplikace. Licenční soubor aplikace NENÍ soubor s Licenčním vstupem, který slouží k odemknutí obsahu aplikace Corinth 3D – ten je možné přidat do aplikačních dat po instalaci aplikace a využít funkci automatické aktivace). Pokud nemáte licenční soubor aplikace (u aplikace Corinth 3D jej pravděpodobně nemáte), je třeba explicitně vynutit vynechání příslušného kroku použitím přepínače -SkipLicense
.
Příklad (PowerShell):
Add-AppxProvisionedPackage -Online -PackagePath ".\Corint3D_Sideload_x64.appxbundle" -DependencyPackagePath ".\Dependencies\x64\Microsoft.NET.Native.Framework.1.3" ".\Dependencies\x64\Microsoft.NET.Native.Runtime.1.4.appx" ".\Microsoft.VCLibs.x64.14.00.appx" -SkipLicense
Pozn.: Po přihlášení dalšího uživatele může trvat i několik minut, než je mu aplikace přidána.
Pozn.: Pro odinstalování aplikace přidané tímto příkazem je nutné ji nejprve odebrat z daného obrazu Windows a následně odstranit ze všech existujících uživatelských účtů.
Pokud hodláte využít PowerShell k instalaci aplikace Corinth 3D, může být výhodné vytvořit si PowerShell skript namísto spouštění jednotlivých příkazů. Skript pak může nejen nainstalovat aplikaci (pomocí příkazů výše), ale také nakonfigurovat všechna související nastavení.
Doporučené kroky pro instalaci aplikace Corinth 3D (všechny lze provést PowerShell skriptem):
-
Povolit funkci Instalace bokem.
Příklad (Cmd/PowerShell):
REG ADD 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock' /t REG_DWORD /f /v 'AllowAllTrustedApps' /d '1'
sideloading_setup - Nainstalovat aplikaci (buď jejím přidáním pro jednoho uživatele, nebo zpřístupněním pro všechny uživatele).
-
Povolit Sdílení dat (důrazně doporučeno).
Příklad (Cmd/PowerShell):
REG ADD 'HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\AppModel\StateManager' /t REG_DWORD /f /v 'AllowSharedLocalAppData' /d '1'
datasharing_setup - Předat aplikaci soubor s Licenčním vstupem pro automatickou aktivaci (volitelné) – viz níže.
- Nastavit Strategii aktualizace (volitelné) – viz níže.
- Zkontrolovat výsledek a logovat postup (volitelné).
Tip: Instalační skript Corinth demonstruje všechny uvedené kroky v praxi a nabízí funkční příklad PowerShell skriptu, který je schopen nainstalovat aplikace Corinth 3D.
Výsledný skript můžete spouštět ručně, nebo automaticky v reakci na nějakou systémovou událost (např. spuštění počítače, přihlášení uživatele) pomocí široce dostupných nástrojů (viz kapitola o hromadném nasazení).Aktivace licence
Aplikaci Corinth 3D s omezeným (ukázkovým) obsahem můžete získat bezplatně. Pro odemčení dalšího obsahu je nutné zakoupit si licenci. Příslušný obsah bude zpřístupněn poté, co aktivujete svou licenci.
Licence se vztahuje na zařízení, aktivace na jednom počítači tedy vyžaduje vždy jednu licenci bez ohledu na počet uživatelů, kteří na daném počítači aplikaci používají. Pokud máte povolené Sdílení dat aplikace, aktivace je také sdílena. Stačí tedy absolvovat aktivační proces pouze jednou a obsah bude rovnou dostupný všem uživatelům aplikace Corinth 3D na daném počítači.
Kromě ručního zadání Licenčního klíče můžete svou licenci aktivovat rovněž nakopírováním souboru s Licenčním vstupem do dat aplikace Corinth 3D a následným spuštěním aplikace. Toto řešení je obzvláště výhodné při hromadném nasazování aplikace například při instalaci PowerShell skriptem. Tento způsob použítí je demonstrován v rámci ukázkového řešení Corinth Installation Script.
Aplikace očekává Licenční vstup v souboru license_input
(bez přípony) na jednom z těchto umístění (ke každému z nich se váže určité omezení):
-
Místní (uživatelská) složka aplikačních dat:
%LOCALAPPDATA&\Packages\Corinth.Corinth3D_wv8kxjmt4maqr\LocalState
Pozor: Místní složka není sdílena mezi uživateli – každý uživatel má vlastní aplikační složku, která je pro ostatní uživatele nepřístupná a aplikace ji používá, pouze když je spuštěna pod daným uživatelem. To znamená, že obsah aplikace bude odemčen teprve tehdy, až bude aplikace spuštěna uživatelem, kterému přísluší aplikační složka obsahující příslušný soubor s Licenčním vstupem.
-
Sdílená složka aplikačních dat:
%PROGRAMDATA%\Microsoft\Windows\AppRepository\Families\Corinth.Corinth3D_wv8kxjmt4maqr\SharedLocal
Pozor: Sdílená složka je používána pouze tehdy, je-li zapnuto Sdílení dat. Tato složka je navíc vytvořena teprve během prvního spuštění aplikace, a není tedy dostupná ihned po instalaci. Proto do ní nelze jednoduše vložit soubor s Licenčním vstupem jako další krok následující okamžitě po instalaci např. v rámci instalačního skriptu. Je však sdílená mezi uživateli, což znamená, že pokud vložíte soubor s Licenčním vstupem do této složky, dojde k aktivaci licence a odemčení obsahu při dalším spuštění aplikace bez ohledu na to, který uživatel toto spuštění provede.
-
Instalační složka aplikace
Pozor: Instalační složka je sdílena mezi uživateli a zároveň existuje ihned po instalaci aplikace, nicméně je typicky nedostupná pro zápis standardními uživateli (včetně účtů správců). Soubor s Licenčním vstupem tedy musí být součástí instalačního balíčku, nebo je třeba pro jeho vložení do instalační složky použít systémová práva.
Aktualizace
Pokud jste nainstalovali aplikaci Corinth 3D z Microsoft Store, aktualizace jsou prováděny automaticky. Pokud jste však využili Instalaci bokem, můžete specifikovat, jak se má aplikace chovat při detekci nově dostupné aktualizace.
K dispozici jsou Vám tři různé Strategie aktualizace. Vyberte podle toho, kdo by měl typicky iniciovat provedení aktualizace:
User
: Pokud aplikace detekuje dostupnou aktualizaci, je uživateli zobrazena hláška, která mu nabídne tlačítka pro výběr mezi provedením aktualizace a jejím odložením. Tím pádem má uživatel kontrolu nad okamžikem provedení aktualizace, takže může zabránit její instalaci v nevhodnou dobu. Pouze v případě, že aktualizace stále neproběhla několik týdnů od okamžiku její detekce, je vynucena a nainstalována, aniž by nabídla uživateli volbu.Admin
: Při vydání nové verze je zákazník (správce) emailem upozorněn na aktualizaci a možnost jejího provedení, ale uživatelům není zobrazena žádná hláška nabízející aktualizaci aplikace. Správce by měl při nejbližší vhodné příležitosti provést ruční aktualizaci nebo nasadit novou verzi aplikace. Tento přístup má za cíl to, aby běžní uživatelé neprováděli aktualizaci sami, čímž dává administrátorům větší kontrolu nad stavem počítačů. Pouze v případě, že aktualizace po delší době stále neproběhla, je uživatelům zobrazena hláška umožňující aktualizovat aplikaci. Pokud ani tak nebyla aplikace aktualizována několik týdnů od vydání aktualizace, je její provedení vynuceno.Force
: Aktualizace je provedena automaticky, jakmile je detekována, bez toho, aby aplikace kohokoliv předem upozorňovala. Nikdo tak nemusí ručně potvrzovat provedení aktualizace, ale také nikdo nemá kontrolu nad okamžikem provedení aktualizace.
Settings.xml
s následující strukturou:
<?xml version="1.0"?>
<UpdateSettings>
<Strategy>Admin</Strategy> <!-- User, Admin nebo Force -->
</UpdateSettings>
Pozn.: Můžete uvést Strategii „User“ nebo „Force“ namísto „Admin“, která je použita v příkladu výše.
Pozn.: Pokud nezadáte žádnou Strategii, je použita výchozí Strategie „User“.
Vytvořený soubor je třeba umístit do některé z následujících složek (ke každé z nich se váže určité omezení):
-
Místní (uživatelská) složka aplikačních dat:
%LOCALAPPDATA&\Packages\Corinth.Corinth3D_wv8kxjmt4maqr\LocalState
Pozor: Místní složka není sdílena mezi uživateli – každý uživatel má vlastní aplikační složku, které je pro ostatní uživatele nepřístupná a aplikace ji používá, pouze když je spuštěna pod daným uživatelem. To znamená, že pokud do ní vložíte soubor s nastavením strategie aktualizací, toto nastavení bude aplikováno pouze na uživatele, kterému tato složka přísluší.
-
Sdílená složka aplikačních dat:
%PROGRAMDATA%\Microsoft\Windows\AppRepository\Families\Corinth.Corinth3D_wv8kxjmt4maqr\SharedLocal
Pozor: Sdílená složka je používána pouze tehdy, je-li zapnuto Sdílení dat. Tato složka je navíc vytvořena teprve během prvního spuštění aplikace, a není tedy dostupná ihned po instalaci. Proto do ní nelze jednoduše vložit soubor s nastavením strategie aktualizací jako další krok následující okamžitě po instalaci v rámci instalačního skriptu. Je však sdílená mezi uživateli, což znamená, že pokud vložíte soubor s nastavením strategie aktualizací do této složky, bude toto nastavení platit pro všechny uživatele.
-
Instalační složka aplikace
Pozor: Instalační složka je sdílena mezi uživateli a zároveň existuje ihned po instalaci aplikace, nicméně je typicky nedostupná pro zápis standardními uživateli (včetně účtů správců). Soubor s nastavením strategie aktualizací tedy musí být součástí instalačního balíčku, nebo je třeba pro jeho vytvoření v instalační složce použít systémová práva.
Pozn.: Pokud vytvoříte různé soubory s nastavením v několika z výše uvedených umístění současně, aplikace použije ten, který se nachází v Místní složce. Teprve pokud tam žádný není, je aplikován soubor s nastavením ze Sdílené složky. Jedině v případě, že ani tam neexistuje, použije se soubor z Instalační složky. To umožňuje přebití nastavení v Instalační složce pomocí ručního zápisu jiného nastavení do Sdílené složky, případně vytvoření výjimek pro jednotlivé uživatele prostřednictvím zvláštních souborů v jejich Místních složkách.
Použití instalačního PowerShell skriptu
Příklad (PowerShell):
.\Install-CorinthAppPackage.ps1 -PackagePath ".\Corinth3D_Sideload_x64.appx" -LicensePath ".\license_input" -UpdateStrategy "Admin" -Verbose
Příklad (PowerShell):
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
Příklad (PowerShell):
PowerShell.exe -ExecutionPolicy Bypass -NoProfile -File .\Install-CorinthAppPackage.ps1 -PackagePath ".\Corinth3D_Sideload_x64.appx" -LicensePath ".\license_input" -UpdateStrategy "Admin" -Verbose
Vzdálené spouštění příkazů PowerShell
PowerShellové příkazy můžete volat vzdáleně, a to i na několika počítačích současně. Tímto způsobem lze též spustit PowerShell skript, je nutné pouze aby byl dosažitelný z místního počítače.
Příklad (PowerShell):
Invoke-Command -ComputerName TEST-PC1 TEST-PC2 -FilePath .\Install-CorinthAppPackage.ps1
Příklad (PowerShell):
$s = New-PSSession -ComputerName TEST-PC1 TEST-PC2
Invoke-Command -Session $s -FilePath .\Install-CorinthAppPackage.ps1
Ke spuštění PowerShell scriptu můžete využít také Naplánovanou úlohu (Scheduled Task). Tímto způsobem lze spustit skript i se systémovými oprávněními, což může být výhodné pro provedení některých akcí souvisejících s instalací aplikace, konkrétně pro automatickou aktivaci a nastavení Strategie aktualizací (podrobněji rozebráno výše).
K nastavení Naplánované úlohy na místním počítači:
- Otevřete okno TS. Lze to provést např. ze Start menu napsáním TS a následným stisknutím klávesy Enter.
- V panelu na levé straně okně TS vyberte vhodnou existující složku, nebo vytvořte novou tím, že vyberete nějakou existující, kliknete na ni pravým tlačítkem, zvolíte položku TS_NewFolderMore, zadáte jméno nové složky a potvrdíte kliknutím na tlačítko Gen_OK.
- Klikněte pravým tlačítkem na vybranou složku a zvolte TS_CreateTaskMore. Bude otevřeno okno TS_CreateTask.
- V okně TS_CreateTask vyberte záložku TS_General. Vyplňte název a popis vytvářené úlohy.
- Poté (stále v rámci téže záložky) zvolte uživatelský účet, který bude použit pro vykonávání úlohy. Například v případě, že skript má být spuštěn se systémovými oprávněními, klikněte na tlačítko TS_ChangeUserMore, poté v okně TS_SelectUser napište „SYSTEM“, klikněte na TS_CheckNames a potom na Gen_OK. Zpátky v okně TS_CreateTask zaškrtněte pole TS_HighestPrivileges.
- Vyberte záložku TS_Triggers, poté klikněte na TS_NewMore. Bude otevřeno okno TS_NewTriggerWin.
- V okně TS_NewTriggerWin nastavte, kdy se má úloha provést/provádět. Můžete například spouštět skript při spuštění systému tím, že v nastavení TS_BeginTask vyberete položku TS_Startup. Nakonec potvrďte nastavení kliknutím na Gen_OK.
- Vyberte záložku TS_Actions, poté klikněte na TS_NewMore. Bude otevřeno okno TS_NewActionWin.
-
V okně TS_NewActionWin se ujistěte, že v nastavení TS_Action je vybrána položka TS_StartProg. Poté zapište „powershell.exe“ do pole TS_ProgramScript. Dále zadejte všechny potřebné argumenty spuštení PowerShellu (zejména cestu k samotnému instalačnímu skriptu a případně jeho parametry) do pole TS_AddArgs. Například v případě, že používáte Instalační skript Corinth, který jste umístili do složky
X:\Install\Scripts\
, aplikační balíček se nachází vX:\Install\Packages\
a přejete si nevyužít funkci automatické aktivace, potom by argumenty mohly být následující:-ExecutionPolicy Bypass -NoProfile -File 'X:\Install\Scripts\Install-CorinthAppPackage.ps1' -PackagePath 'X:\Install\Package\Corinth3D_Sideload_x64.appxbundle' -SkipLicense
. Po zadání argumentů klikněte na Gen_OK. - Můžete upravit další nastavení na zbývajících záložkách okna TS_CreateTask. Až budete s nastavením spokojeni, klikněte na tlačítko Gen_OK.
Ke zprovoznění instalace skriptem při spuštění počítače přes AD GPO je třeba provést následující kroky:
- Vyberte vhodný existující GP_Obj (GPO) nebo vytvořte nový a nastavte jeho rozsah (scope).
- Přidejte Startup skript do GPO.
- Zadejte parametry skriptu.
Pozn.: Výše uvedený postup předpokládá, že skript se stará i o povolení funkce Instalace bokem a Sdílení dat. Pokud tomu tak není, je vhodné příslušná nastavení provést před pokusy o instalaci pomocí Startup skriptu.
K vytvoření nového GPO:
- Přistupte na Váš AD_DomainController.
-
Otevřete nástroj GP_Mgmt. Najdete jej například v okně AD_ServerManager po kliknutí na položku AD_SMTools a vybrání GP_Mgmt, nebo přes Start menu napsáním
gpmc.msc
a stiskem klávesy Enter. - V rámci příslušné domény vyberte vhodnou položku typu AD_OrgUnit (OU) nebo vytvořte novou tím, že kliknete pravým tlačítkem na doménu a vyberete možnost AD_NewOrgUnit. Co obsahuje AD_OrgUnit, můžete nastavit pomocí nástroje AD_UsersAndComps.
- Klikněte pravým tlačítkem na vybranou OU a zvolte možnost AD_CreateGPOMore. Nový GPO můžete vytvořit též kliknutím pravým tlačítkem na položku AD_GPOs a volbou Gen_New, musíte však potom připojit tento GPO k OU dle Vašeho výběru manuálně.
- Nový GPO vhodně pojmenujte a klikněte na Gen_OK.
- Můžete specifikovat, na které skupiny (Groups) má být GPO aplikován. Vyberte příslušný GPO, klikněte na záložku AD_GPOScope nahoře v pravé části okna, poté použijte panel AD_GPOScopeSecFilter vpravo dole.
K přidání PowerShellového skriptu při spuštění do GPO:
-
Klikněte pravým tlačítkem na příslušný GPO v okně GP_Mgmt a vyberte Gen_EditMore. Bude otevřeno okno AD_GPMgmtEdit. Alternativně můžete otevřít menu Start, napsat
gpme.msc
, stisknout Enter a v nové okně najít a otevřít příslušný GPO. - Vyberte GP_CompConfig -> GP_Policies -> GP_WinSettings -> GP_CompScripts, poté dvakrát klikněte na položku GP_Startup v pravé části okna. Otevře se okno GP_StartupProps.
- Vyberte záložku GP_PSScripts.
- V záložce GP_PSScripts klikněte na Gen_AddMore. V okně GP_AddScript klikněte na Gen_BrowseMore. Bude otevřen Win_Explorer.
-
Zkopírujte všechny potřebné soubory do složky otevřené v předchozím kroku. Například v případě použití Instalačního skriptu Corinth by bylo třeba nakopírovat soubory
Install-CorinthAppPackage.ps1
,CCInstallUtils.psm1
aCCInstallUtils.psd1
, přičemž by mohlo být vhodné umístit tam i další soubory, jako třeba soubor s Licenčním vstupem (license_input
). -
Označte skript (soubor s příponou
.ps1
) a klikněte na Gen_Open. Win_Explorer bude zavřen.
K nastavení parametrů Powershellového Startup skriptu:
- Pokud potřebujete specifikovat parametry skriptu, můžete tak učinit v okně GP_AddScript nebo GP_EditScript, které bylo otevřeno v předchozích krocích, případně jej můžete otevřít vybráním skriptu v záložce GP_PSScripts v okně GP_Startup a následným kliknutím na Gen_EditMore.
-
Konkrétní parametry zvolte s ohledem na požadované chování skriptu a na skript samotný. Například ve výchozím nastavení Instalačního skriptu Corinth (bez jakýchkoliv parametrů) skript předpokládá, že balíček aplikace a složky obsahující balíčky závislostí se nacházejí vedle vlastního skriptu (v téže složce jako skript). Pokud se balíčky nacházejí jinde, je nutné správné umístění určit parametrem
-PackagePath
(více informací o parametrech skriptu naleznete níže). - Zvolené parametry zapište do pole GP_ScriptParams v okně GP_AddScript nebo GP_EditScript.
- Klikněte na Gen_OK a poté Gen_Apply v okně GP_StartupProps.
Pozn.: Pokud máte licenci pro Corinth 3D na větší množství počítačů, každý počítač je započten právě jednou bez ohledu na počet uživatelů, pro které je na daném počítači aplikace dostupná. Při rozhodování o způsobu instalace na počítač (provisioning vs. přidávání jednotlivým uživatelům) tedy nemusíte brát počet licencí v úvahu.
Ke zprovoznění instalace skriptem při přihlášení uživatele přes AD GPO je třeba provést následující kroky:
- Povolte funkci Instalace bokem na dotčených počítačích.
- Povolte Sdílení dat na dotčených počítačích.
- Vyberte vhodný existující GP_Obj (GPO) nebo vytvořte nový a nastavte jeho rozsah (scope).
- Přidejte Logon skript do GPO.
- Zadejte parametry skriptu.
Pozn.: Funkce Instalace bokem a Sdílení dat by měly být povoleny mimo vlastní Logon skript, neboť hrozí, že skript při spuštění pod běžným uživatelem nebude mít dostatečná opravnění k provedení těchto nastavení. Mohou však být provedeny např. samostatným Startup skriptem nebo úpravou hodnot registrů v rámci téhož GPO.
K vytvoření nového GPO:
- Přistupte na Váš AD_DomainController.
-
Otevřete nástroj GP_Mgmt. Najdete jej například v okně AD_ServerManager po kliknutí na položku AD_SMTools a vybrání GP_Mgmt, nebo přes Start menu napsáním
gpmc.msc
a stiskem klávesy Enter. - V rámci příslušné domény vyberte vhodnou položku typu AD_OrgUnit (OU) nebo vytvořte novou tím, že kliknete pravým tlačítkem na doménu a vyberete možnost AD_NewOrgUnit. Co obsahuje AD_OrgUnit, můžete nastavit pomocí nástroje AD_UsersAndComps.
- Klikněte pravým tlačítkem na vybranou OU a zvolte možnost AD_CreateGPOMore. Nový GPO můžete vytvořit též kliknutím pravým tlačítkem na položku AD_GPOs a volbou Gen_New, musíte však potom připojit tento GPO k OU dle Vašeho výběru manuálně.
- Nový GPO vhodně pojmenujte a klikněte na Gen_OK.
- Můžete specifikovat, na které skupiny má být GPO aplikován. Vyberte příslušný GPO, klikněte na záložku AD_GPOScope nahoře v pravé části okna, poté použijte panel AD_GPOScopeSecFilter vpravo dole.
K přidání PowerShellového skriptu při přihlášení do GPO:
-
Klikněte pravým tlačítkem na příslušný GPO v okně GP_Mgmt a vyberte Gen_EditMore. Bude otevřeno okno AD_GPMgmtEdit. Alternativně můžete otevřít menu Start, napsat
gpme.msc
, stisknout Enter a v nové okně najít a otevřít příslušný GPO. - Vyberte GP_UserConfig -> GP_Policies -> GP_WinSettings -> GP_UserScripts, poté dvakrát klikněte na položku GP_Logon v pravé části okna. Otevře se okno GP_LogonProps.
- Vyberte záložku GP_PSScripts.
- V záložce GP_PSScripts klikněte na Gen_AddMore. V okně GP_AddScript klikněte na Gen_AddMore. Bude otevřen Win_Explorer.
-
Zkopírujte všechny potřebné soubory do složky otevřené v předchozím kroku. Například v případě použití Instalačního skriptu Corinth by bylo třeba nakopírovat soubory
Install-CorinthAppPackage.ps1
,CCInstallUtils.psm1
aCCInstallUtils.psd1
, přičemž by mohlo být vhodné umístit tam i další soubory, jako třeba soubor s Licenčním vstupem (license_input
). - Označte skript (soubor s příponou .ps1) a klikněte na Gen_Open. Win_Explorer souborů bude zavřen.
K nastavení parametrů Powershellového Logon skriptu:
- Pokud potřebujete specifikovat parametry skriptu, můžete tak učinit v okně GP_AddScript nebo GP_EditScript, které bylo otevřeno v předchozích krocích, případně jej můžete otevřít vybráním skriptu v záložce GP_PSScripts v okně GP_Logon a následným kliknutím na Gen_EditMore.
-
Konkrétní parametry zvolte s ohledem na požadované chování skriptu a na skript samotný. Například ve výchozím nastavení Instalačního skriptu Corinth (bez jakýchkoliv parametrů) skript předpokládá, že balíček aplikace a složky obsahující balíčky závislostí se nacházejí vedle vlastního skriptu (v téže složce jako skript). Pokud se balíčky nacházejí jinde, je nutné správné umístění určit parametrem
-PackagePath
(více informací o parametrech skriptu naleznete níže). - Zvolené parametry zapište do pole GP_ScriptParams v okně GP_AddScript nebo GP_EditScript.
- Klikněte na Gen_OK a poté Gen_Apply v okně GP_LogonProps.
Je možné jednu část práce (např. globální nastavení) provádět Startup skriptem a druhou část (např. přidání aplikace uživateli) Logon skriptem.
Může být výhodné také zdvojit kritickou část do obou skriptů. Například pokud používáte Startup skript pro zapnutí nutných funkcí i provisioning aplikace, skript běží správně (nastavení je provedeno, aplikace je nainstalována a EV nezobrazuje žádné relevantní chyby), ale některým uživatelům se aplikace nezobrazuje, resp. její přidání trvá nevhodně dlouhou dobu, můžete pro větší jistotu přidat ještě Logon skript pro její registraci každému uživateli při jeho přihlášení.
Ukázkový Instalační skript Corinth
Instalační skript Corinth představuje ukázku kompletního řešení instalace prostřednictvím PowerShellu. Lze jej použít způsoby popsanými v kapitole Použití instalačního PowerShell skriptu.
Pozor: Pokud hodláte skript spouštět, důkladně se seznamte s jeho obsahem a ujistěte se, že všechny operace, které provádí, jsou pro Vás žádoucí.
Skript můžete volně upravovat nebo jeho části použít při tvorbě vlastního řešení.
- pokusit se automaticky si zvýšit práva
- zapnout Instalaci bokem
- zapnout Sdílení dat
- nainstalovat aplikaci
- vložit soubor s Licenčním vstupem do dat aplikace
- vytvořit soubor pro nastavení Strategie aktualizace
- logovat svůj postup (lze následně prozkoumat přes EV)
- odesílat informace o spuštění, případných chybách a ukončení (shrnutí průběhu) za účelem statistického zpracování a následného vylepšování skriptu
Install-CorinthAppPackage.ps1
: vlastní skript, jádro rozhodovací logikyCC_InstallUtils.psm1
: modul obsahující užitečné pomocné funkce pro zapnutí souvisejících funkcí Windows, instalaci aplikace, zjišťování příslušných systémových cest atd.; tento modul může být výhodné použít při tvorbě vlastního řešeníCC_InstallUtils.psd1
: manifest modulu obsahující meta-informace (zejm. číslo verze modulu)
Corinth\
├── Dependencies\
│ └── x64\
│ ├── Microsoft.NET.Native.Framework.1.3.appx
│ ├── Microsoft.NET.Native.Runtime.1.4.appx
│ └── Microsoft.VCLibs.x64.14.00.appx
├── Install-CorinthAppPackage.ps1
├── CCInstallUtils.psm1
├── CCInstallUtils.psd1
├── license_input
└── Corinth_Sideload_x64.appxbundle
Pokud jste některé z nich umístili jinam, můžete příslušné cesty specifikovat prostřednictvím parametrů skriptu (viz níže).
-
Parametry přijímající řetězec:
-
PackagePath
- Význam: Cesta k balíčku aplikace. Balíčky závislostí jsou očekávány ve složce „Dependencies\x64“ umístěné v téže složce jako instalační balíček aplikace.
- Výchozí chování: Pokud tento parametr není zadán, bude skript očekávat balíček v téže složce, v jaké se sám nachází.
- Chování při chybě: Pokud je zadána neplatná cesta nebo pokud ve výchozí složce (tj. složka skriptu) není právě jeden aplikační balíček, skript skončí s chybou.
-
LicensePath
- Význam: Cesta k souboru s licenčním vstupem, který by měl být použit pro automatickou aktivaci aplikace během jejího následujícího spuštění.
- Výchozí chování: Pokud tento parametr není zadán, skript očekává soubor „license_input“ umístěný v téže složce, v jaké se sám nachází.
- Chování při chybě: Pokud je zadána neplatná cesta nebo pokud ve výchozí složce (tj. složka skriptu) není soubor „license_input“, skript skončí s chybou. Pokud nechcete zadávat soubor s licenčním vstupem, spusťte skript s přepínačem SkipLicense – aplikace bude nainstalována, ale obsah nebude odemčen.
-
UpdateStrategy
- Význam: Preferovaná strategie aktualizace.
- Povolené hodnoty: User, Admin nebo Force.
- Výchozí chování: Pokud tento parametr není zadán, nebude vytvořen soubor s nastavením a aplikace použije výchozí strategii aktualizací (User).
- Chování při chybě: Pokud je zadána neplatná hodnota, skript skončí s chybou.
-
-
Přepínače:
-
InstallFromWeb
- Význam: Skript stáhne poslední dostupnou verzi balíčku aplikace a závislostí z internetu a použije je pro instalaci. Soubory jsou staženy mezi dočasné soubory a po skončení instalace jsou skriptem smazány. Přebíjí nastavení PackagePath.
- Výchozí chování: Pokud přepínač není zadán, viz
PackagePath
.
-
RegisterOnly
- Význam: Provede se pouze registrace aplikace pro aktuálního uživatele. Žádné další kroky se neprovedou, všechny parametry (kromě
Verbose
,Help
,PrintLog
,PrintConfigReport
aWhatIf
) budou ignorovány. Předpokládá existující instalaci aplikace na počítači. - Výchozí chování: Pokud přepínač není zadán, aplikace bude nainstalována a provedou se další nutné kroky.
- Význam: Provede se pouze registrace aplikace pro aktuálního uživatele. Žádné další kroky se neprovedou, všechny parametry (kromě
-
SingleUser
- Význam: Skript nainstaluje aplikaci pouze pro aktuálního uživatele.
- Výchozí chování: Pokud přepínač není zadán, provádí se provisioning aplikace.
-
ForceInstall
- Význam: Skript bude znovu instalovat aplikaci i pokud je již nainstalovaná.
- Výchozí chování: Pokud přepínač není zadán a aplikace je již pro aktuálního uživatele dostupná, instalace a související kroky (např. kontrola certifikátu a povolení Instalace bokem) budou přeskočeny.
-
SkipLicense
- Význam: Soubor s licenčním vstupem se nebude umisťovat do dat aplikace.
- Výchozí chování: Pokud přepínač není zadán, skript se pokusí zkopírovat soubor s licenčním vstupem (z umístění zadaného pomocí parametru LicensePath nebo z výchozí složky) do složky s aplikačními daty. Pokud soubor není dostupný, skončí s chybou.
-
ForceLicense
- Význam: Skript zkopíruje soubor s licenčním vstupem i v případě, že aplikace již byla aktivována.
- Výchozí chování: Pokud přepínač není zadán a skript detekuje, že aplikace již byla aktivována, nebude kopírovat soubor s licenčním vstupem. Tím se předchází tomu, aby se aplikace snažila opakovaně aktivovat licenci při každém svém spuštění (to se provádí vždy, když je detekována změna souboru s licenčním vstupem).
-
Verbose
- Význam: Skript zapne výstup do konzole, což je vhodné zejména pokud skript spouštíte ručně.
- Výchozí chování: Pokud přepínač není zadán, skript nevypisuje nic kromě chyb a záznamů událostí (viz Řešení problémů níže).
-
Help
- Význam: Skript vypíše nápovědu a skončí.
-
PrintLog
- Význam: Skript vypíše seznam dřívějších událostí a skončí. Tyto záznamy můžete nalézt také přes EV.
-
PrintConfigReport
- Význam: Skript vypíše aktuální stav souvisejících položek systému (existující instalace aplikace, verze Windows, povolení relevantních funkcí Windows atd.) a skončí.
-
WhatIf
- Význam: Skript vypíše popis plánovaných kroků, které by byly provedeny s danými parametry a aktuální konfigurací, a skončí.
-
-
Skript se pokouší vložit soubor s Licenčním vstupem do instalační složky, a pokud se to nepovede, pak do lokální složky aplikačních dat, která přísluší uživateli, pod jehož účtem je skript prováděn. Pro zápis do instalační složky jsou vyžadována systémová oprávnění. Pokud tedy skript spustíte bez nich, pak bude licence aktivována při dalším spuštění aplikace tím uživatelem, který prováděl skript. Pro odemčení obsahu je tedy třeba spustit aplikace alespoň jednou pod daným uživatelským účtem. Pokud je povoleno Sdílení aplikačních dat, obsah aplikace pak bude odemčený i pro ostatní uživatele na daném počítači.
-
Skript je určen zejména pro účely hromadné instalace pro více uživatelů na tomtéž počítači. Vložení nastavení do lokální složky uživatele by vedlo k uplatnění tohoto nastavení pouze na daném uživatelském účtu (viz kapitola o nastavení strategie aktualizací), což by mohlo být matoucí. Z toho důvodu skript nikdy nevytváří nástavení v této složce; používá k tomu jen sdílenou složku a instalační složku. Zápis do instalační složky je možný pouze se systémovými právy. Aby byl možný zápis do sdílené složky, je třeba předtím alespoň jednou aplikaci spustit (a mít současně povoleno Sdílení aplikačních dat). Pokus o vytvoření tohoto nastavení jako kroku následujícího bezprostředně po instalaci při ručním spuštění instalačního skriptu tedy selže, i pokud je proveden pod účtem správce, neboť sdílená složka ještě nebude existovat a do instalační nebude možno zapsat. Chcete-li použít ruční spuštění skriptu pro vytvoření nastavení aktualizací, je třeba předtím alespoň jednou spustit aplikaci při povoleném Sdílení aplikačních dat. Pokud skript použijete jako Startup skript v GPO, vytvoření souboru s nastavením se povede, neboť skript bude probíhat se systémovými právy.
- Skript po provedení nezakazuje žádné funkce Windows, které povolil ve svém průběhu (Instalace bokem, Sdílení aplikačních dat).
Skript zaznamenává svůj průběh, který lze následně prozkoumat prostřednictvím nástroje EV. Záznamy můžete použít pro ověření korektní funkce, nebo pro zjištění příčiny případné chyby. V levé části okna EV vyberte EV_WindowsLogs -> EV_WinApplication a hledejte záznamy, jejichž EV_Source je „Corinth Installation Script“.
Každý z možných záznamů má vlastní unikátní číslo (EV_EventID). Čísla dodržují následující konvenci:
-
První číslice popisuje typ:
-
1xxx
- OK - běžný průběh, informace, úspěšné provedení -
2xxx
- OK - přeskočené operace (např. existující nastavení nevyžaduje změnu; může být v důsledku opakovaného spouštění skriptu) -
3xxx
- upozornění -
4xxx
- chyby
-
-
Druhá číslice udává příslušný krok skriptu:
-
x0xx
- přípravná fáze (tj. kontrola existující instalace aplikace, zpracování parametrů skriptu, tvorba plánu provádění atd.) -
x1xx
- kontrola a případné zvýšení oprávnění skriptu -
x2xx
- získání instalačních balíčků aplikace a závislostí -
x3xx
- kontrola certifikátu -
x4xx
- povolení Instalace bokem -
x5xx
- povolení Sdílení dat -
x6xx
- instalace (případně registrace nebo provisioning) -
x7xx
- uplatnění souboru s Licenčním vstupem a nastavení Strategie aktualizací -
x8xx
- úklid vytvořených souborů -
x9xx
- shrnutí průběhu skriptu
-
- Poslední dvě číslice identifikují dílčí část kroku (např. kontroly na začátku, v průběhu a na konci kroku) nebo jeho variantu (např. příliš málo nebo příliš mnoho nalezených souborů).