Posted in: Windows 10, Windows 11

Vytvoření zástupce na aplikaci z MS Store na ploše

Dnes to bude o malé fintě, která pomůže konzervativnímu uživateli zpříjemnit využívání aplikací z MS store. Tou nejběžnější cestou, kterou na plochu přidáváme zástupce na běžné programy není možné na plochu dostat aplikaci, která je určena pro distribuci výhradně pomocí MS Store, myslím tím aplikace ve formátech MSIX, APPX a APPXBOUNDLE.

  1. Otevřete příkazovou řádku
  2. Zadejte příkaz: explorer shell:AppsFolder
  3. Klikněte na požadovanou aplikaci pravým tlačítkem myši a zvolte: Vytvořit zástupce
  4. V chybovém dialogu klikněte na Ano

To je celé, bohužel zástupce nemá obvyklou podubu cesty v sobě, proto není možní tyto zástupce připravit pro více uživatelů na jednom PC i když budou mít všichni danou aplikaci nainstalovanou.

Posted in: Windows 10, Windows 11

Instalace aplikací z MS Store pro všechny uživatele automaticky

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

Back to Top