Spuštění skriptů PowerShell pomocí GPO

Zásady skupiny oken vám umožňují spouštět různé soubory skriptu, když se počítač spustí / vypne a uživatel se přihlásí / odhlásí. Pomocí GPO můžete provádět nejen klasické skriptové soubory (.bat, .cmd ,, vbs) na doménových počítačích, ale také skripty PowerShell (.ps1), jakož i spouštěcí / vypínací / přihlašovací / odhlašovací

V moderních operačních systémech (Windows 10 / Windows Server 2016) můžete nakonfigurovat spouštění skriptů přihlášení / logof na PowerShell přímo z editoru GPO.

Před Windows 7 a Windows Server 2008 R2 jste nemohli přímo spustit PowerShell soubory z GPO (museli jste volat soubory ps1 ze souborů bat jako parametr do spustitelného souboru powershell.exe).

Spusťte konzolu pro správu zásad domény - GPMC.msc (Konzola pro správu zásad skupiny), vytvořte novou zásadu a přiřaďte ji požadovanému kontejneru s uživateli nebo počítači (pomocí filtrů WMI GPO můžete vylepšit cílovou zásadu). Přepněte do režimu úprav zásad.

Chcete-li spustit skript PowerShell, musíte vybrat sekci GPO, v závislosti na tom, kdy chcete skript spustit.

  • Pokud by se měl skript PS spustit, když se uživatel přihlásí k počítači (nastavení parametrů prostředí uživatele, například programy: když se přihlásíte, automaticky vytvoříte v aplikaci Outlook podpis na základě dat od uživatele služby AD, nakonfigurujete spořič obrazovky nebo zahájíte nastavení obrazovky) nebo když se uživatel odhlásí , musíte přejít do sekce GPO: Uživatel Konfigurace -> Zásady -> Windows Nastavení -> Skripty (Přihlášení / Odhlášení);
  • Pokud chcete spustit skript PowerShell při spuštění počítače (deaktivace zastaralých protokolů: NetBIOS, SMBv1, konfigurace nastavení zabezpečení počítače atd.) Nebo před správným vypnutím počítače, musíte přejít do části GPO s nastavením počítače: Konfigurace počítače -> Zásady -> Nastavení systému Windows -> Skripty (spuštění / vypnutí).

Spuštění skriptu PowerShell při spuštění počítače pomocí zásad skupiny

Řekněme, že při spouštění systému Windows je třeba spustit skript PowerShell. Chcete-li to provést, vyberte Spuštění a v okně, které se otevře, přejděte na kartu Powerhell Skripty.

Nyní musíte zkopírovat soubor pomocí skriptu PowerShell do řadiče domény. Klikněte na tlačítko Zobrazit soubory a přetáhněte soubor pomocí skriptu PowerShell (rozšíření ps1) do otevřeného okna Průzkumníka (konzole automaticky otevře adresář \\ yourdomain \ SysVol \ yourdomain \ Policies \ Here_GUID_Your_GPO \ Machine \ Scripts \ Startup vaše zásady v adresáři SysVol na nejbližším řadiči domény).

Protože konfigurujeme spouštění spouštěcího skriptu PowerShell, potřebujeme zkontrolovat oprávnění NTFS pro čtení a spouštění (čtení a spuštění) pro skupinu v oprávnění souboru ps1 (nebo celého adresáře Machine \ Scripts \ Startup) Doménové počítače.

Nyní musíte stisknout tlačítko Přidat a přidejte zkopírovaný soubor skriptu ps1 do seznamu skriptů spuštěných zásadou PowerShell.

Pokud spouštíte několik skriptů PowerShell prostřednictvím GPO, můžete ovládat pořadí od začátku pomocí tlačítek nahoru / dolů..

Pro správné provedení skriptů PowerShell při spuštění počítače musíte nakonfigurovat dobu zpoždění před zahájením používání zásady v části Konfigurace počítače -> Šablony pro správu -> Systém -> Zásady skupiny. Povolit zásady Konfigurovat Přihlášení Skript Zpoždění (Nastavte zpoždění přihlašovacího skriptu) a zadejte zpoždění v minutách před spuštěním přihlašovacích skriptů (dostatečné pro dokončení inicializace a stažení všech nezbytných služeb). Obvykle stačí, aby sem 1-2 minut.

Ve výchozím nastavení nejsou skripty PowerShell v nastavení zabezpečení Windows povoleny. Hodnota aktuálního nastavení politiky skriptování PowerShell lze získat příkazem Jdi-ExecutionPolicy. Pokud zásada není nakonfigurována, příkaz vrátí Omezené (všechny skripty budou blokovány). Nastavení zabezpečení pro spuštění skriptu PowerShell lze nakonfigurovat pomocí „Povolit skriptování“ / „Otočte se Zapnuto Skript Poprava“(V části Konfigurace počítače GPO -> Šablony pro správu -> Komponenty Windows -> Windows PowerShell). Možné hodnoty zásad:

  • Povolit pouze podepsáno skripty (AllSigned) - lze spustit pouze podepsané skripty PowerShell („Jak podepsat skript PowerShell?“) - nejlepší scénář zabezpečení;
  • Povolit místní skripty a vzdálené podepsáno skripty (RemoteSigned) - můžete spouštět jakékoli lokální a podepsané vzdálené skripty;
  • Povolit vše skripty (neomezené) - nejbezpečnější možnost, protože Umožňuje spouštět všechny skripty PowerShell.

Pokud vám žádný z navrhovaných scénářů pro nastavení zásady spouštění skriptů PowerShell nevyhovuje, můžete v režimu spouštět skripty PowerShell Bypass (skripty nejsou blokovány, varování se nezobrazí).

Za tímto účelem musí být skript PowerShell spuštěn v části Spuštění -> Skripty. V této části můžete nakonfigurovat spouštění skriptu ps1 vytvořením pravidelného spouštěcího skriptu, který spouští spustitelný soubor powershell.exe (podobný skriptu popsanému v článku). Uveďte:

  • Název skriptu: % windir% \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe
  • Parametry skriptu: -Noninteractive -ExecutionPolicy Bypass -Noprofile -file% ~ dp0MyPSScript.ps1

Postavy % ~ dp0 při spuštění na klientovi se cesta do adresáře se skriptem na SYSVOL automaticky převede na UNC.

V tomto případě jste násilně povolili spuštění jakéhokoli (i nespolehlivého) skriptu PowerShell pomocí parametru Bypass.