Zagon skriptov PowerShell z uporabo GPO

Politike okenskih skupin omogočajo zagon različnih skriptnih datotek, ko se računalnik zažene / izklopi in uporabnik prijavi / odjavi. Z uporabo GPO lahko na domenskih računalnikih izvajate ne samo klasične datoteke skriptov (.bat, .cmd ,, vbs), ampak tudi skripte PowerShell (.ps1), pa tudi zagon / izklop / prijavo / odjava

V sodobnih operacijskih sistemih (Windows 10 / Windows Server 2016) lahko konfigurirate zagon skriptov za prijavo / logof v PowerShellu neposredno iz urejevalnika GPO.

Pred operacijskim sistemom Windows 7 in Windows Server 2008 R2 niste mogli neposredno zagnati datotek PowerShell iz GPO-ja (morali ste poklicati datoteke ps1 iz datotek bat kot parameter za izvedljivo datoteko powershell.exe).

Zaženite konzolo za upravljanje politik domene - GPMC.msc (Konzola za upravljanje skupinskih politik), ustvarite novo politiko in jo dodelite želenemu vsebniku z uporabniki ali računalniki (za natančnejšo ciljno politiko lahko uporabite filtre GPO WMI. Preklopite v način urejanja pravilnika.

Za zagon skripta PowerShell morate izbrati razdelek GPO, odvisno od tega, kdaj želite zagnati skript.

  • Če je treba skript PS zagnati, ko se uporabnik prijavi v računalnik (nastavite uporabnikove okoljske parametre, programe, na primer: ko se prijavite, samodejno ustvarite podpis v Outlooku na podlagi podatkov uporabnika AD, konfigurirate ohranjevalnik zaslona ali zaženete nastavitve zaslona) ali ko se uporabnik odjavi. , morate iti v razdelek GPO: Uporabnik Konfiguracija -> Politike -> Windows Nastavitve -> Skripti (Prijava Odjava);
  • Če želite zagnati skript PowerShell, ko se računalnik zažene (onemogoči zastarele protokole: NetBIOS, SMBv1, konfigurira nastavitve računalniške varnosti itd.) Ali preden pravilno izklopite računalnik, morate iti v razdelek GPO z nastavitvami računalnika: Konfiguracija računalnika -> Politike -> Nastavitve sistema Windows -> Skripti (zagon / izklop).

Zagon skripta PowerShell ob zagonu računalnika z uporabo pravilnika skupine

Recimo, da moramo zagnati skript PowerShell pri zagonu sistema Windows. Če želite to narediti, izberite Zagon v oknu, ki se odpre, pojdite na zavihek Powerhell Skripti.

Zdaj morate kopirati datoteko s svojo skriptu PowerShell v krmilnik domene. Kliknite na gumb Pokaži datoteke in povlecite datoteko s skriptom PowerShell (razširitev ps1) v odprto okno Explorerja (konzola bo samodejno odprla imenik \\ vašadomena \ SysVol \ yourdomain \ Politike \ Here_GUID_Your_GPO \ Strojnik> Skripti \ Zagon vaš pravilnik v imeniku SysVol na najbližjem krmilniku domene).

Ker konfiguriramo zagon skripta Startup PowerShell, preveriti moramo dovoljenja NTFS za branje in izvajanje (branje in izvrševanje) za skupino v dovoljenjih datoteke ps1 (ali celotnega imenika Machine \ Scripts \ Startup) Domači računalniki.

Zdaj morate pritisniti na gumb Dodaj in dodajte kopirano datoteko skriptov ps1 na seznam skript, ki jih je sprožil pravilnik PowerShell.

Če zaženete več skriptov PowerShell prek GPO, lahko naročilo nadzorujete od začetka s pomočjo gumbov gor / dol..

Za pravilno izvedbo skriptov PowerShell ob zagonu računalnika morate konfigurirati čas zamude, preden začnete uporabljati pravilnik v razdelku Konfiguracija računalnika -> Administrativne predloge -> Sistem -> Skupinska politika. Omogoči pravilnik Konfigurirajte Vložek Scenarij Zamuda (Nastavite zamudo za skript za prijavo) in določite zamudo v minutah, preden zaženete skripte za prijavo (dovolj za dokončanje inicializacije in nalaganje vseh potrebnih storitev). Običajno dovolj, da tukaj 1-2 minut.

Skripta PowerShell pri varnostnih nastavitvah sistema Windows ni dovoljena. Vrednost trenutne nastavitve scenarijev PowerShell lahko dobite z ukazom Pridite-IzvedbaPolicija. Če pravilnik ni konfiguriran, bo ukaz vrnil Restricted (morebitni skripti bodo blokirani). Varnostne nastavitve za zagon skripta PowerShell lahko konfigurirate s pomočjo »Omogoči skripta« / »Obrni Na Scenarij Izvedba”(Pod Konfiguracija računalnika GPO -> Administrativne predloge -> Komponente Windows -> Windows PowerShell). Možne vrednosti politike:

  • Dovoli samo podpisali skripte (AllSigned) - zaženete lahko samo podpisane skripte PowerShell ("Kako podpisati skript PowerShell?") ​​- najboljši varnostni scenarij;
  • Dovoli lokalni skripte in daljinski podpisali skripte (RemoteSigned) - zaženete lahko vse lokalne in podpisane oddaljene skripte;
  • Dovoli vse skripte (neomejeno) - najbolj nevarna možnost, ker Omogoča izvajanje vseh skriptov PowerShell.

Če vam ne ustreza noben od predlaganih scenarijev za določanje pravilnika za zagon skriptov PowerShell, lahko skripte PowerShell zaženete v načinu Obvoz (skripte niso blokirane, opozorila se ne prikažejo).

Če želite to narediti, morate skript PowerShell zagnati iz razdelka Zagon -> Skripti. V tem razdelku lahko konfigurirate zagon skripta ps1 tako, da ustvarite navaden zagonski skript, ki zažene izvršljivo datoteko powershell.exe (podobno kot skript, opisan v članku). Navedite:

  • Ime skripta: % windir% \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe
  • Parametri skripta: -Neinteraktivni -ExecutionPolicy Bypass -Noprofile -file% ~ dp0MyPSScript.ps1

Liki % ~ dp0 ob zagonu na odjemalcu se pot do imenika s skriptom na SYSVOL samodejno pretvori v UNC.

V tem primeru ste s parametrom Bypass na silo omogočili začetek katerega koli (celo nezanesljivega) skripta PowerShell.