Trčanje skripti PowerShell pomoću GPO

Pravila grupe prozora omogućuju vam pokretanje različitih datoteka skripta kada se računalo pokrene / zatvori, a korisnik se prijavi / odjavi. Pomoću GPO-a, na računalima domena možete izvršavati ne samo klasične datoteke skripte (.bat, .cmd ,, vbs), već i PowerShell skripte (.ps1) kao i Startup / Shutdown / Logon / Logoff

U modernim operativnim sustavima (Windows 10 / Windows Server 2016) možete konfigurirati pokretanje skripti za prijavu / logof na PowerShellu izravno iz GPO uređivača.

Prije Windows 7 i Windows Server 2008 R2, niste mogli izravno izvršavati PowerShell datoteke iz GPO-a (morali ste pozvati ps1 datoteke iz bat datoteka kao parametar u izvršnu datoteku powershell.exe).

Pokrenite konzolu za upravljanje politikom domena - GPMC.msc (Konzola za upravljanje grupnim politikama), kreirajte novo pravilo i dodijelite ga željenom spremniku s korisnicima ili računalima (za finije ciljne politike možete koristiti WMI GPO filtre). Prebacite se na način uređivanja pravila.

Za pokretanje skripte PowerShell morate odabrati GPO odjeljak, ovisno o tome kada želite pokrenuti svoju skriptu.

  • Ako se PS skripta treba pokrenuti kada se korisnik prijavi na računalo (postavljanje parametara okruženja korisnika, programa, na primjer: kada se korisnik prijavi, automatski kreirate potpis u programu Outlook na temelju podataka korisnika AD-a, konfigurirate čuvar zaslona ili start postavke ekrana) ili kada se korisnik odjavi. , morate ići na odjeljak za GPO: korisnik konfiguracija -> Politike -> Windows postavke -> Skripte (Prijava / Odjava);
  • Ako želite pokrenuti PowerShell skriptu kada se računalo pokrene (onemogući zastarjele protokole: NetBIOS, SMBv1, konfiguriranje postavki sigurnosti računala itd.) Ili prije ispravnog isključivanja računala, morate prijeći na odjeljak GPO s postavkama računala: Konfiguracija računala -> Pravila -> Postavke sustava Windows -> Skripte (pokretanje / isključivanje).

Trčanje PowerShell skripte pri pokretanju računala pomoću grupnih pravila

Recimo da moramo pokrenuti PowerShell skriptu prilikom podizanja sustava Windows. Da biste to učinili, odaberite Stavljanje u pogon i u prozoru koji se otvori idite na karticu PowerShell skripte.

Sada morate kopirati datoteku sa svojom skriptu PowerShell-a u regulator domene. Kliknite na gumb Prikaži datoteke i povucite datoteku sa skriptu PowerShell (ps1 ekstenzija) u otvoreni prozor Explorera (konzola će automatski otvoriti direktorij \\ vašdomena \ SysVol \ yourdomain \ Pravila \ Here_GUID_Your_GPO \ Stroj \ Skripte \ Pokretanje vaša pravila u direktoriju SysVol na najbližem regulatoru domene).

jer konfiguriramo pokretanje skripte Startup PowerShell, moramo provjeriti NTFS dozvole za čitanje i izvršavanje (Read & Execute) za grupu u dozvolama datoteke ps1 (ili cijelog direktorija Machine \ Scripts \ Startup) Računala s domenama.

Sada morate pritisnuti gumb dodati i dodajte kopiranu datoteku skripte ps1 na popis skripti pokrenut od strane PowerShell pravila.

Ako pokrenete nekoliko PowerShell skripti putem GPO-a, možete kontrolirati narudžbu od početka pomoću gumba Gore / Dolje.

Za ispravno izvršavanje PowerShell skripti pri pokretanju računala, morate konfigurirati vrijeme odgode prije nego što počnete koristiti politiku u odjeljku Konfiguracija računala -> Administrativni predlošci -> Sustav -> Grupna pravila. Omogući politiku Konfiguracija Prijava skripta kašnjenje (Postavite kašnjenje za skriptu za prijavu) i odredite odgodu u minutima prije pokretanja skripti za prijavu (dovoljno za dovršetak inicijalizacije i preuzimanje svih potrebnih usluga). Obično dovoljno da se ovdje stavi 1-2 minuta.

PowerShell skripte prema zadanim postavkama nisu dopuštene u sigurnosnim postavkama sustava Windows. Vrijednost trenutne postavke skripta PowerShell pravila može se dobiti naredbom dobiti-ExecutionPolicy. Ako pravilo nije konfigurirano, naredba će vratiti Ograničeno (sve skripte bit će blokirane). Sigurnosne postavke za pokretanje PowerShell skripte mogu se konfigurirati putem "Omogući skriptiranje" / "Pretvorite na skripta izvršenje”(Pod Konfiguracija GPO računala -> Administrativni predlošci -> Komponente sustava Windows -> Windows PowerShell). Moguće vrijednosti pravila:

  • dopustiti samo potpisan skripta (AllSigned) - mogu se pokrenuti samo potpisani PowerShell skripti ("Kako potpisati PowerShell skriptu?") - najbolji sigurnosni scenarij;
  • dopustiti lokalne skripta i daljinski potpisan skripta (RemoteSigned) - možete pokrenuti bilo koju lokalnu i potpisanu udaljenu skriptu;
  • dopustiti sve skripta (neograničen) - najopasnija opcija, jer Omogućuje pokretanje bilo koje skripte PowerShell-a.

Ako vam ne odgovara jedan od predloženih scenarija za postavljanje pravila za pokretanje skripti PowerShell, skripte PowerShell možete pokrenuti u načinu rada zaobići (skripte nisu blokirane, upozorenja se ne pojavljuju).

Da biste to učinili, skripta PowerShell mora se pokrenuti iz odjeljka Pokretanje -> Skripte. U ovom odjeljku možete konfigurirati pokretanje skripte ps1 stvaranjem redovne skripte pokretanja koja pokreće izvršnu datoteku powershell.exe (slično skripti opisanoj u članku). navesti:

  • Naziv skripte: % windir% \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe
  • Parametri skripte: -Neinteraktivan -ExecutionPolicy Bypass -Noprofile -file% ~ dp0MyPSScript.ps1

simboli % ~ dp0 kada se pokrene na klijentu, put do direktorija sa skriptu na SYSVOL-u automatski se pretvara u UNC.

U ovom slučaju silom ste omogućili pokretanje bilo koje (čak i nepouzdane) PowerShell skripte pomoću parametra Bypass.