PowerShell skript a cmd příkaz

Anonymní
2021-12-13T19:50:32+00:00

Tak jsem četl, že soubory PS skriptu nejde spouštět přímo, ale jen voláním z konzole.

Jak udělat, abych mohl dávku příkazů pro PS spustit přímo pokliknutím nebo via kontextové menu spustit jako správce, tak aby se rovnou příkazy provedly, tak jako když spouštím jakoukoliv jinou běžnou aplikaci.

A to nejlépe tak, abych předtím nemusel upravovat nastavení pro Execution Policy.

Pokud by to nešlo, tak bych vytvořil dávkový soubor pro cmd a odtamtud pro každý příkaz volal powershell - to by mělo, pokud se spustí jako správce, powershell rovnou volat též jako správce a takto i exekutivu provést - je to tak?

Další varianta by byla vše dělat rovnou v cmd, ale to by šlo jen tehdy, je-li vůbec možné odinstalovat UWP aplikace via cmd. Je to možné? Jak případně?

A ještě se potřebuji, kdybych to musel řešit via cmd, doptat na správnou syntaxi pro příkaz reg add - potřbuji tam dostat tuto hodnotu v podobě z .reg souboru:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]
"Path"="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
"ExecutionPolicy"="RemoteSigned"
Taky mě napadá, jestli tam vůbec musí být ta položka "Path" ..?

A ještě jeden dotaz - jak docílit toho aby soubor .cmd nebo .bat viditelně otevřel CMD a nechal ho otevřený i po provedení příkazů.

Děkuji.

Windows pro domácnosti | Windows 10 | Soubory, složky a úložiště

Otázka je uzamčená. Tato otázka se migrovala z komunity podpory Microsoftu. Můžete hlasovat, jestli je užitečná, ale nemůžete k ní přidávat komentáře či odpovědi ani ji nemůžete sledovat.

Počet komentářů: 0 Žádné komentáře
Odpověď přijatá autorem otázky
Anonymní
2021-12-14T17:41:52+00:00

Já to zkoušel v ps takto, příklad:

Remove-AppxProvisionedPackage -PackageName Microsoft.WindowsCamera_2018.826.98.0_neutral_~_8wekyb3d8bbwe -AllUsers -Online

A jak jsem psal, jen to ale přesunulo složku s appx do DeletedAllUserPackages.

Je lepší to dělat v instalačce, tam to veme i se souborama. Jestli to budeš dělat přes rouru tak spíš

Get-AppxProvisionedPackage -Online

má to jiné názvy.

Já osobně používám dism a odebírám to v instalačce tak jak jsem to popsal.

Však si to všechno vyzkoušej a použij co vyhovuje.

Byla tato odpověď užitečná?

Počet osob, které tuto odpověď považovaly za užitečnou: 1.
Počet komentářů: 0 Žádné komentáře
Odpověď přijatá autorem otázky
Anonymní
2021-12-14T13:00:24+00:00

Pokud se appx odebere (čistě) v nainstalovaném Windows, tak se vlastně jakoby jen odebere, ale neodinstaluje fakticky, např. její soubory stále jsou ve Windows. Pátral jsem jak docílit kompletní čistou odinstalaci appx v nainstralovaném Windows, zatím nevím jak.

Proto odinstalovávám appx už v instalačce, protože tam to tu appx odinstaluje fakt komplet včetně souborů v c:\Program Files\WindowsApps\ a včetně závislých appx, pokud jiná appx není na nich závislá.

Dělám to ručně, ne přes rouru, protože se to často nedělá, např. u Win 10 posledně u 19041 (20h1), protože se ty appx neaktualizují v instalačce pokud se fyzicky nemění i build (i 21h2 19044 je souborově 19041).

Ve zkratce. Nastavení aktuální složky jako výchozí v cmd jako admin

pushd "%~dp0"

Pauza je pause

Používat ve skriptech podle potřeby.

Namountování wim:

DISM /mount-wim /wimfile:install.wim /index:1 /mountdir:mount

Seznam appx:

DISM /Image:mount /Get-ProvisionedAppxPackages >ProvisionedAppxPack.txt

Z toho vyberu ty, které chci dát pryč.

Odstranění appx:

DISM /Image:mount /Remove-ProvisionedAppxPackage /Packagename:Microsoft.549981C3F5F10_1.1911.21713.0_neutral_~_8wekyb3d8bbwe

DISM /Image:mount /Remove-ProvisionedAppxPackage /Packagename:Microsoft.BingWeather_4.25.20211.0_neutral_~_8wekyb3d8bbwe

... atd, těch řádků mám hodně, odinstalovávám skoro všechno.

Odmountování wim:

DISM /unmount-wim /mountdir:mount /commit

Upozorňuju, že musíš vědět co děláš (takže doporučuju použít pro první pokusy třeba virtuálku a dělat to tam).

A upravovat a nastavovat v instalačce můžeš i další věci, já to tak dělám, nastavení layoutu Startu, asociaci přípon, nastavení Windows, přidání aplikací...

Platí to pak pro všechny vytvořené účty a co se týče appx, tak ty se dají doinstalovat přes Store, pokud by někomu chyběli.

Ještě poznámka, ve Store jsou myslím snad všechny appx kromě Xbox Speech To Text Overlay a Store Purchase App, pokud odstraníš tyto dvě tak vrátit asi nejdou, minimálně ne přes Store.

Byla tato odpověď užitečná?

Počet osob, které tuto odpověď považovaly za užitečnou: 1.
Počet komentářů: 0 Žádné komentáře
Odpověď přijatá autorem otázky
Anonymní
2021-12-14T09:43:54+00:00

Já nějčastěji používám to co jsem psal na minulé stránce, tedy spouštění přes cmd (a to mi funguje):

powershell -executionpolicy bypass -file powershell.ps1

A toto to podepsání obchází.

Info třeba tu:

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-7.2

pod ExecutionPolicy.

A v té druhé variantě, kde je to v samostatném ps, kterou jsem opsal z netu, je taky ExecutionPolicy Bypass, tak by to mělo taky fungovat.

Ty chceš v registru nastavovat to, co se dá nastavit v parametru při spouštění ps, Bypass je lepší než RemoteSigned.

Ale fain, dělej si co chceš :-)

Byla tato odpověď užitečná?

Počet osob, které tuto odpověď považovaly za užitečnou: 1.
Počet komentářů: 0 Žádné komentáře
Odpověď přijatá autorem otázky
Anonymní
2021-12-14T00:20:10+00:00

Můžu vědět co ti vadí na powershell skriptu jako souboru třeba powershell.ps1

if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File "$PSCommandPath"" -Verb RunAs; exit }

Write-Host "Tu bude powershell skript jaký potřebuješ"
Start-Sleep -Seconds 10

... a ten spouštět přes run with powershell?

Psal jsi: "nebo via kontextové menu spustit jako správce" a toto je přesně to, co chceš, ne?

Byla tato odpověď užitečná?

Počet osob, které tuto odpověď považovaly za užitečnou: 1.
Počet komentářů: 0 Žádné komentáře
Odpověď přijatá autorem otázky
Anonymní
2021-12-13T22:17:58+00:00

Napadá mě buď mít cmd skript a spouštět to přes cmd (jako správce):

powershell -executionpolicy bypass -file powershell.ps1

nebo třeba u ps1 je v kontextové nabídce run with powershell a v powershell skriptu je myslím možné vyvolat elevaci na admina: https://stackoverflow.com/questions/7690994/running-a-command-as-administrator-using-powershell Ale to jen střílím od oka, powershell zatím moc nepoužívám. Určitě ti někdo poradí líp :-)

Byla tato odpověď užitečná?

Počet osob, které tuto odpověď považovaly za užitečnou: 1.
Počet komentářů: 0 Žádné komentáře

Počet dalších odpovědí: 31

Seřadit podle: Nejužitečnější
  1. Anonymní
    2021-12-13T23:01:09+00:00

    Už jsem se smířil s tím, že to nejspíše budu volat z CMD, jen potřebuji znát tu správnou syntaxi.

    V podstatě to umím udělat, když budu mít 3 soubory - .ps1, .reg a .cmd nebo .bat, ale chtěl bych to mít v jednom souboru na jeden poklik.

    No ten PS je zase zhulená opičárna - nevím proč se CMD jenom nerozšířil o příslušné příkazy a funkce, takhle je to typická microsofťácká schíza, která začala u W8 a dodnes ti vývojáři nenavštívili psychiatra a proto se to nelepší, ale horší ...

    Byla tato odpověď užitečná?

    Počet komentářů: 0 Žádné komentáře