Dnes bych rád ukázal, jak si může naprosto běžný uživatel spustit skript PowerShellu aníž by měl právo si měnit ExecutionPolicy. Jak víme, tak ExecutionPolicy říká, zda je možné na daném systému spouštět skripty (případně jaké skripty) psané v PowerShellu a také zda systém přijme prostřednictvím PowerShellu soubory stažené z internetu.
Ve výchozím stavu máme na klientských Windows (7, 8, 10) restricted, což velmi zjednodušeně znamená, že skripy nelze spouštět.
Užijeme PowerShell ISE:
Skript otevřeme pomocí ISE, následně pomocí CTRL+A vybareme vše a využijeme Run Selection (zkratka: F8). skript se provede. Bohužel jediné parametry, které takto můžeme zadat jsou ty Mandatory.
Využijeme průzkumníku Windows:
Na skript klikneme pravým tlačítkem myši a zvolíme Run with PowerShell. Bohužel jediné parametry, které takto můžeme zadat jsou ty Mandatory.
Změníme ExecutionPolicy v rámci daného procesu:
Použijeme příkaz: Set-ExecutionPolicy Bypass -Scope Process
Nyní v rámci daného okna PowerShellu nemáme žádné restrikce
Spustíme skript pomocí načtení do paměti:
Využijeme příkaz: Get-Content .\skript.ps1 | PowerShell -noprofile -exec bypass
Tím dojde k načtení skriptu jako příkazu a provede se. Bohužel předání parametrů je problematické, ty Mandatory předané budou.