Dnes to bude o tom, jak si stáhnout balíčky aplikací z MS Store a instalovat je, buď pro sebe s tím, že zůstane v definované cestě uložený instalační balíček, nebo po drobné úpravě pro každého, kdo se na PC přihlásí s výhodou, že aplikace se nainstaluje vždy, když ji uživatel nemá z libovolného důvodu. Zde uvedený postup platí pro Windows 10 a 11.
Pro další informace a celý postup je nyní potřeba otevřít článek, dnes není vše na titulce, jak často bývá. Prvním krokem je nalezení balíčku pomocí odkazu z webové verze MS Store, nebo PackageFamilyName na stránce: https://store.rg-adguard.net/, kde můžeme balíček rovnou stáhnout prohlížečem, nebo si na něj zkopírovat přímý odkaz. Tento online nástroj vyhledává přímé odkazy na jednotlivé balíčky v serverech Microsoftu a dokáže vypsat i balíčky závislostí. Prerekvizitní balíčky jako je MS .NET si v tomto režimu musíme hlídat sami, normálně to za nás dělá v procesu instalace MS Store. Nás bude zajímat hlavně nalezený link na balíček.
Generování přímých odkazů na MS Store balíčky
Nyní nastal čas se rozhodnout, zda chci balíček pro sebe instalovat, pokud mi chybí, nebo zda budu chtít nainstalovat balíček všem. Pokud budu chtít balíček pouze pro sebe, pak stačí vyžít následující PowerShell skript:
$install = Read-Host -Prompt „Pouze stáhnout? (A/N)“
if(($install -eq „N“) -or ($install -eq „n“))
{
$link = Read-Host -Prompt „Zadej odkaz z store.rg-adguard.net „
$n = Read-Host -Prompt „Zadej název aplikace, např: RootPro „
$nazev = „*“ + $n + „*“
$soubor = Read-Host -Prompt „Zadej název souboru na disku (např. CAD) „
$typ = Read-Host -Prompt „Zadej typ souboru (appx, appxbundle, nebo msix)“
Write-Host „Vyber složku pro uložení souboru“
$shell = New-Object -ComObject Shell.Application
$cesta = $shell.BrowseForFolder( 0, ‚Select a folder to proceed‘, 16, $shell.NameSpace( 17 ).Self.Path ).Self.Path
if ($typ -eq „appx“) {
$umisteni = $cesta + „\“ + $soubor + „.appx“
}elseif ($typ -eq „appxbundle“) {
$umisteni = $cesta + „\“ + $soubor + „.appxbundle“
}elseif ($typ -eq „msix“) {
$umisteni = $cesta + „\“ + $soubor + „.Msix“
}else
{
Write-Error -Message „Spust skript uznovu a zadej validní typ aplikace“
exit
}
if(Get-AppxPackage | where name -like $nazev)
{
exit
}
else
{
if(Test-Path -Path $umisteni -PathType Leaf)
{
if ($typ -eq „appxbundle“) {
Add-AppxProvisionedPackage -Online -PackagePath $umisteni
}
else
{
Add-AppxPackage -Path $umisteni
}
}
else
{
Invoke-WebRequest -Uri $link -OutFile $umisteni
Add-AppxPackage -Path $umisteni
}
}
}elseif(($install -eq „A“) -or ($install -eq „a“))
{
$link = Read-Host -Prompt „Zadej odkaz z store.rg-adguard.net „
$soubor = Read-Host -Prompt „Zadej název souboru na disku (např. CAD) „
$typ = Read-Host -Prompt „Zadej typ souboru (appx, appxbundle, nebo msix)“
Write-Host „Vyber složku pro uložení souboru“
$shell = New-Object -ComObject Shell.Application
$cesta = $shell.BrowseForFolder( 0, ‚Select a folder to proceed‘, 16, $shell.NameSpace( 17 ).Self.Path ).Self.Path
if ($typ -eq „appx“) {
$umisteni = $cesta + „\“ + $soubor + „.appx“
}elseif ($typ -eq „appxbundle“) {
$umisteni = $cesta + „\“ + $soubor + „.appxbundle“
}elseif ($typ -eq „msix“) {
$umisteni = $cesta + „\“ + $soubor + „.Msix“
}else
{
Write-Error -Message „Spust skript uznovu a zadej validní typ aplikace“
exit
}
Invoke-WebRequest -Uri $link -OutFile $umisteni
}
else {
Write-Error „Chybně zvolen režim, zkus to znovu“
exit
}
#konec skriptu
Dále je postup, jak zajistit instalaci aplikace ze Store pro všechny uživatele na PC
Pokud chci balíček pro všechny uživatele, potřebuji provést celkem 3 kroky, tedy jednoduchý PowerShell, cmd soubor, který jej bude spouštět a registraci do registrů.
PowerShell bude jednoduchý, mohlo by to vypadat nějak takto:
$link = # Zadej odkaz z store.rg-adguard.net
$n = # Zadej název aplikace, např: RootPro
$nazev = „*“ + $n + „*“
$složka = #Zadej umístění balíčku
$format = #Zadej formát balíčku
$cesta = $složka + „\“ + $n + „.“ + $format
if(Get-AppxPackage | where name -like $nazev)
{
exit
}
else
{
if(Test-Path -Path $cesta -PathType Leaf)
{
Add-AppxPackage -Path $cesta
}
else
{
Invoke-WebRequest -Uri $link -OutFile $cesta
Add-AppxPackage -Path $cesta
}
}
#konc skriptu
Dále pak je potřeba volat PowerShell s parametrem spuštění skriptu, který samozřejmě může obsahovat více balíčků. Volání zajistí soubor formát cmd, který bude vypadat například takto: @powershell.exe -NoProfile -ExecutionPolicy Bypass -File „%~dp0StoreAPP.ps1″StoreAPP.ps1 je v našem případě název skriptu, který je uvedený výše. Oba soubory, jak ps1 tak cmd je potřeba umístit do složky, ze které mohou číst a spouštět všichni uživatelé, tedy mimo náš uživatelský profil.
Nyní stačí pomocí registru nastavit spuštění s každým přihlášením libovolného uživatele pod jeho právy, což provedeme zápisem do větve: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Zápis pomocí příkazu ukazuje následující příklad:
reg add „HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run“ /v „APP“ /t REG_SZ /d „C:\ProgramData\APPinstall.cmd“ /f