Aplikace Corinth 3D stahuje svůj obsah (3D modely, videa, hluboké zoomy…) z internetu, aby jej mohla prezentovat uživateli. Aplikace je schopna tato data sdílet mezi uživateli v rámci jednoho počítače. Data pak nemusejí být duplikována, čímž je minimalizováno využití místa na disku a předchází se zbytečnému stahování dat. Tuto funkcionalitu (sdílení dat UWP aplikací mezi uživateli) je třeba nejprve povolit. Lze tak učinit například pomocí nástroje GP nebo úpravou hodnoty Registru.

    1. Ujistěte se, že máte dostatečná oprávnění.
    2. Otevřete GP_LocEdit, např. přes Start menu napsáním gpedit.msc a stiskem klávesy Enter.
    3. Najděte položku GP_AppPkgDeployment vybráním GP_LocalCompPolicy -> GP_CompConfig -> GP_AdminTemplates -> GP_WinComponents -> GP_AppPkgDeployment v levé části okna GP_Edit. Místní Zásady skupiny (Sdílení dat)
    4. V nastavení GP_AppPkgDeployment otevřete dvojklikem možnost GP_AllowWinAppShare.
    5. Vyberte možnost GP_Enabled v levé horní části okna.
    6. Klikněte na tlačítko Gen_Apply a potom Gen_OK..
    1. Ujistěte se, že máte dostatečná oprávnění.
    2. Otevřete GP_MgmtEdit, např. v okně GP_Mgmt, klikněte pravým tlačítkem na GP_Obj dle svého výběru a klikněte na Gen_EditMore.
    3. Najděte položku GP_AppPkgDeployment vybráním GP_CompConfig -> GP_Policies -> GP_AdminTemplates -> GP_WinComponents -> GP_AppPkgDeployment v levé části okna GP_Edit. Active Directory Zásady skupiny (Sdílení dat)
    4. V nastavení GP_AppPkgDeployment otevřete dvojklikem možnost GP_AllowWinAppShare.
    5. Vyberte možnost GP_Enabled v levé horní části okna.
    6. Klikněte na tlačítko Gen_Apply a potom Gen_OK..
  1. Nalezněte nebo vytvořte záznam HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModel\StateManager a nastavte v něm hodnotu položky AllowSharedLocalAppData na 1.

    K nastavení hodnoty registru lze použít například:

    • nástroj RG_Edit
    • .reg soubor
    • Win_Cmd (Cmd) nebo PowerShell

      Příklad (Cmd/PowerShell)
      REG ADD 'HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\AppModel\StateManager' /t REG_DWORD /f /v 'AllowSharedLocalAppData' /d '1'

    • GP_Edit v Active Directory.

Pokud instalujete UWP aplikaci mimo Microsoft Store prostřednictvím balíčku aplikace, pak ji Instalujete bokem. Je možné získat instalační balíček aplikace Corinth 3D pro Instalaci bokem, nicméně aby bylo možné instalaci provést, je nutné nejprve Instalaci bokem na počítači povolit. Instalace bokem může být povolena v WS_WinSett, přes GP nebo nastavením hodnoty registru.

    1. Přihlaste se účtem správce.
    2. Otevřete Start menu.
    3. Klinutím na ozubené kolečko otevřete WS_Sett.
    4. Vyberte kategorii WS_UpdateAndSec.
    5. Vyberte položku WS_ForDevel v dolní části seznamu po levé straně okna.
    6. V rámci sekce WS_UseDevelFeat, vyberte položku WS_Sideload. Nastavení Pro vývojáře
    7. Prostudujte si upozornění a v případě, že souhlasíte, potvrďte povolení Instalace bokem.
    1. Ujistěte se, že máte dostatečná oprávnění.
    2. Otevřete GP_LocEdit, např. přes Start menu napsáním gpedit.msc a stiskem klávesy Enter.
    3. Najděte položku GP_AppPkgDeployment vybráním GP_LocalCompPolicy -> GP_CompConfig -> GP_AdminTemplates -> GP_WinComponents -> GP_AppPkgDeployment v levé části okna GP_Edit. Místní Zásady skupiny (Instalace bokem)
    4. V nastavení GP_AppPkgDeployment otevřete dvojklikem možnost GP_AllowAllTrustedApps.
    5. Vyberte možnost GP_Enabled v levé horní části okna.
    6. Klikněte na tlačítko Gen_Apply a potom Gen_OK.
    1. Ujistěte se, že máte dostatečná oprávnění.
    2. Otevřete GP_MgmtEdit, např. v okně GP_Mgmt, klikněte pravým tlačítkem na GP_Obj dle svého výběru a klikněte na Gen_EditMore.
    3. Najděte položku GP_AppPkgDeployment vybráním GP_CompConfig -> GP_Policies -> GP_AdminTemplates -> GP_WinComponents -> GP_AppPkgDeployment v levé části okna GP_Edit. Active Directory Zásady skupiny (Instalace bokem)
    4. V nastavení GP_AppPkgDeployment otevřete dvojklikem možnost GP_AllowAllTrustedApps.
    5. Vyberte možnost GP_Enabled v levé horní části okna.
    6. Klikněte na tlačítko Gen_Apply a potom Gen_OK.
  1. Nalezněte nebo vytvořte záznam HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock a nastavte v něm hodnotu položky AllowAllTrustedApps na 1.

    K nastavení hodnoty registru lze použít například:

    • nástroj RG_Edit
    • .reg soubor
    • Win_Cmd (Cmd) nebo PowerShell

      Příklad (Cmd/PowerShell):
      REG ADD 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock' /t REG_DWORD /f /v 'AllowAllTrustedApps' /d '1'

    • GP_Edit v Active Directory.
Jazyk prostředí (položek nastavení):

Manuál pro pokročilou instalaci s Active Directory

Nastavení souvisejících funkcí Windows

datasharing_setup
sideloading_setup

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):

  1. 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
  2. Nainstalovat aplikaci (buď jejím přidáním pro jednoho uživatele, nebo zpřístupněním pro všechny uživatele).
  3. 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
  4. Předat aplikaci soubor s Licenčním vstupem pro automatickou aktivaci (volitelné) – viz níže.
  5. Nastavit Strategii aktualizace (volitelné) – viz níže.
  6. Zkontrolovat výsledek a logovat postup (volitelné).
Všechny tyto kroky lze provést v rámci PowerShell scriptu, nicméně můžete některé z nich provést pomocí jiného nástroje (klikněte na jednotlivé kroky pro zobrazení podrobností).

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.

Po zakoupení licence obdržíte Licenční klíč, který můžete v aplikaci vložit, čímž dojde k aktivování licence a odemčení příslušného obsahu. Klikněte na tlačítko CC_GetFullVersion, následně zadejte svůj Licenční klíč a kliněte na tlačítko CC_InsertLicKey. Pole pro Licenční klíč

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 je dostupná nová verze aplikace, lze provést aktualizaci manuálně z menu v pravém horním rohu aplikace -> CC_About -> CC_CheckUpdates. Menu Corinth 3D Tlačítko pro aktualizaci

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.
Chcete-li uplatnit některou z uvedených Strategií aktualizace, vytvořte soubor Settings.xml s následující strukturou:
Příklad (XML):
                                    
        <?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

Váš instalační skript (nebo jednotlivé příkazy) můžete spouštět ručně z okna PowerShell (z konzole).

Příklad (PowerShell):
.\Install-CorinthAppPackage.ps1 -PackagePath ".\Corinth3D_Sideload_x64.appx" -LicensePath ".\license_input" -UpdateStrategy "Admin" -Verbose

Pozn.: V závislosti na Vašem nastavení může být spouštění skriptů z různých zdrojů omezeno nebo zakázáno. Pokud máte dostatečná práva, PS_ExecutionPolicy může být změněna v PowerShellu prostřednictvím příkazu Set-ExecutionPolicy, kterým lze určit novou politiku i rozsah jejího použití. Pro uplatnění politiky jen na aktivní instanci PowerShellu použijte parametr -Scope Process.

Příklad (PowerShell):
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process

Pokud chcete spustit skript, aniž byste měnili nastavení PS_ExecutionPolicy, můžete obejít existující nastavení při spouštění skriptu. Odlišná pravidla tak budou aplikována pouze na toto konkrétní provádění. Ujistěte se, že máte dostatečné oprávnění a spusťte skript následujícím způsobem:

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

Můžete též navázat trvalé připojení:

Příklad (PowerShell):
$s = New-PSSession -ComputerName TEST-PC1 TEST-PC2
Invoke-Command -Session $s -FilePath .\Install-CorinthAppPackage.ps1

Více informací naleznete v oficiální dokumentaci.
Řada nástrojů pro správu umožňuje automatické spouštění skriptů. Tato kapitola se věnuje dvěma z nejrozšířenějších. Jeden je vhodný zejména pro instalaci aplikace Corinth 3D na jediný počítač, druhý lze použít pro hromadné nasazení. Oba představují „standardní Windowsový přístup“, jsou široce dostupné (na počítačích se systémem Windows a jako součást nástroje Microsoft Active Directory) a umí pracovat s PowerShell skripty, které byly předmětem předchozích kapitol.

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:

  1. 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.
  2. 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.
  3. Klikněte pravým tlačítkem na vybranou složku a zvolte TS_CreateTaskMore. Bude otevřeno okno TS_CreateTask.
  4. V okně TS_CreateTask vyberte záložku TS_General. Vyplňte název a popis vytvářené úlohy.
  5. 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.
  6. Vyberte záložku TS_Triggers, poté klikněte na TS_NewMore. Bude otevřeno okno TS_NewTriggerWin.
  7. 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.
  8. Vyberte záložku TS_Actions, poté klikněte na TS_NewMore. Bude otevřeno okno TS_NewActionWin.
  9. 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í v X:\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.
  10. 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.
Pokud spravujete počítače a uživatelské účty přes nástroj Active Directory, můžete využít Objekt zásad skupiny (Group Policy Object – GPO) k automatickému spuštění PowerShell skriptu, který nainstaluje aplikaci Corinth 3D. Skript lze volat buď při spuštění počítače/systému, nebo při přihlášení uživatele.
Pokud je skript vyvoláván při spuštění (Startup Script), pak je vykonáván v systémovém kontextu, což je výhodné zejm. pro provádění operací vyžadujících zvýšená oprávnění, jako je provisioning aplikace, tedy její přidání pro všechny existující i budoucí uživatele.

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:

  1. Vyberte vhodný existující GP_Obj (GPO) nebo vytvořte nový a nastavte jeho rozsah (scope).
  2. Přidejte Startup skript do GPO.
  3. 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:

  1. Přistupte na Váš AD_DomainController.
  2. 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.
  3. 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.
  4. 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ě.
  5. Nový GPO vhodně pojmenujte a klikněte na Gen_OK.
  6. 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:

  1. 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.
  2. 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.
  3. Vyberte záložku GP_PSScripts.
  4. 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.
  5. 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 a CCInstallUtils.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).
  6. 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:

  1. 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.
  2. 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).
  3. Zvolené parametry zapište do pole GP_ScriptParams v okně GP_AddScript nebo GP_EditScript.
  4. Klikněte na Gen_OK a poté Gen_Apply v okně GP_StartupProps.
Pokud je skript vyvoláván při přihlášení uživatele (Logon Script), pak je prováděn pod daným uživatelským účtem, a může tedy mít omezená oprávnění. To znamená, že potenciálně nemůže měnit některá nastavení související s instalací, nebo dokonce provádět instalaci samotnou, v závislosti na právech, která byla danému uživateli zpřístupněna. Před pokusy o provádění instalace prostřednictvím Logon skriptu je tedy vhodné zajistit, že všichni příslušní uživatelé mají dostatečná oprávnění pro provádění instalace UWP aplikací a že jsou provedena všechna další potřebná nastavení (tj. musí být povolena funkce Instalace bokem a mělo by být povoleno též Sdílení dat). Poté je možné používat Logon skript k instalaci aplikace pro jednotlivé uživatele, což přináší výhodu kontroly nad tím, pro koho je aplikace dostupná a pro koho nikoliv namísto plošné instalace pro všechny.

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:

  1. Povolte funkci Instalace bokem na dotčených počítačích.
  2. Povolte Sdílení dat na dotčených počítačích.
  3. Vyberte vhodný existující GP_Obj (GPO) nebo vytvořte nový a nastavte jeho rozsah (scope).
  4. Přidejte Logon skript do GPO.
  5. 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:

  1. Přistupte na Váš AD_DomainController.
  2. 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.
  3. 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.
  4. 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ě.
  5. Nový GPO vhodně pojmenujte a klikněte na Gen_OK.
  6. 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:

  1. 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.
  2. 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.
  3. Vyberte záložku GP_PSScripts.
  4. 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.
  5. 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 a CCInstallUtils.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).
  6. 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:

  1. 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.
  2. 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).
  3. Zvolené parametry zapište do pole GP_ScriptParams v okně GP_AddScript nebo GP_EditScript.
  4. 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í.

  • Install-CorinthAppPackage.ps1: vlastní skript, jádro rozhodovací logiky
  • CC_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)
Skript ve výchozím stavu předpokládá následující umístění souvisejících souborů:
                        
        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 a WhatIf) 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.
    • 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ů).