Menjalankan Skrip PowerShell Menggunakan GPO

Kebijakan Grup Jendela memungkinkan Anda untuk menjalankan berbagai file skrip ketika komputer boot / dimatikan, dan pengguna log in / out. Menggunakan GPO, Anda dapat mengeksekusi tidak hanya file skrip klasik (.bat, .cmd ,, vbs) di komputer domain, tetapi juga skrip PowerShell (.ps1) serta Startup / Shutdown / Logon / Logoff

Dalam sistem operasi modern (Windows 10 / Windows Server 2016), Anda dapat mengonfigurasi peluncuran skrip logon / logof di PowerShell langsung dari editor GPO.

Sebelum Windows 7 dan Windows Server 2008 R2, Anda tidak bisa secara langsung menjalankan file PowerShell dari GPO (Anda harus memanggil file ps1 dari file bat sebagai parameter ke file yang dapat dieksekusi powershell.exe).

Luncurkan Konsol Manajemen Kebijakan Domain - GPMC.msc (Konsol Manajemen Kebijakan Grup), buat kebijakan baru dan tetapkan ke wadah yang diinginkan bersama pengguna atau komputer (Anda dapat menggunakan filter WMI GPO untuk menyempurnakan kebijakan target). Beralih ke mode edit kebijakan.

Anda harus memilih bagian GPO untuk menjalankan skrip PowerShell, tergantung pada kapan Anda ingin menjalankan skrip Anda.

  • Jika skrip PS harus diluncurkan saat pengguna masuk ke komputer (mengatur parameter lingkungan, program, misalnya: saat Anda masuk, Anda secara otomatis membuat tanda tangan di Outlook berdasarkan data dari pengguna AD, mengonfigurasi screen saver atau memulai pengaturan layar) atau ketika pengguna keluar. , Anda harus pergi ke bagian GPO: Pengguna Konfigurasi -> Kebijakan -> Windows Pengaturan -> Script (Masuk / Logoff);
  • Jika Anda ingin menjalankan skrip PowerShell ketika komputer dinyalakan (menonaktifkan protokol yang usang: NetBIOS, SMBv1, mengkonfigurasi pengaturan keamanan komputer, dll.) Atau sebelum mematikan komputer dengan benar, Anda harus pergi ke bagian GPO dengan pengaturan komputer: Konfigurasi Komputer -> Kebijakan -> Pengaturan Windows -> Skrip (Startup / Shutdown).

Menjalankan skrip PowerShell saat startup komputer menggunakan Kebijakan Grup

Katakanlah kita perlu menjalankan skrip PowerShell saat mem-boot Windows. Untuk melakukan ini, pilih Startup dan di jendela yang terbuka, buka tab Powerhell Skrip.

Sekarang Anda perlu menyalin file dengan skrip PowerShell Anda ke pengontrol domain. Klik pada tombol Tampilkan file dan seret file dengan skrip PowerShell (ekstensi ps1) ke jendela Explorer yang dibuka (konsol akan secara otomatis membuka direktori \\ yourdomain \ SysVol \ yourdomain \ Kebijakan \ Here_GUID_Your_GPO \ Machine \ Scripts \ Startup kebijakan Anda di direktori SysVol di pengontrol domain terdekat).

Karena kami mengkonfigurasi peluncuran skrip Startup PowerShell, kami perlu memeriksa izin NTFS untuk membaca dan mengeksekusi (Baca & Jalankan) untuk grup dalam izin file ps1 (atau seluruh direktori Machine \ Scripts \ Startup) Komputer domain.

Sekarang Anda perlu menekan tombol Tambah dan tambahkan file skrip ps1 yang disalin ke daftar skrip yang diluncurkan oleh kebijakan PowerShell.

Jika Anda menjalankan beberapa skrip PowerShell melalui GPO, Anda dapat mengontrol urutan dari awal menggunakan tombol Atas / Bawah.

Untuk pelaksanaan yang benar dari skrip PowerShell saat startup komputer, Anda harus mengonfigurasi waktu tunda sebelum mulai menggunakan kebijakan di Konfigurasi Komputer -> Template Administratif -> Sistem -> bagian Kebijakan Grup. Aktifkan Kebijakan Konfigurasikan Log masuk Skrip Tunda (Tetapkan penundaan untuk skrip login) dan tentukan penundaan dalam beberapa menit sebelum memulai skrip log masuk (cukup untuk menyelesaikan inisialisasi dan unduh semua layanan yang diperlukan). Biasanya cukup untuk diletakkan di sini 1-2 menit.

Secara default, skrip PowerShell tidak diperbolehkan dalam pengaturan keamanan Windows. Nilai pengaturan kebijakan skrip PowerShell saat ini dapat diperoleh dengan perintah Dapatkan-Kebijakan Eksekusi. Jika kebijakan ini tidak dikonfigurasi, perintah akan mengembalikan Restricted (skrip apa pun akan diblokir). Pengaturan keamanan untuk memulai skrip PowerShell dapat dikonfigurasikan melalui "Enable Scripting" / "Putar Aktif Skrip Eksekusi”(Di bawah Konfigurasi Komputer GPO -> Template Administratif -> Komponen Windows -> Windows PowerShell). Nilai-nilai kebijakan yang mungkin:

  • Izinkan hanya ditandatangani skrip (AllSigned) - hanya skrip PowerShell yang ditandatangani yang dapat dijalankan (“Bagaimana cara menandatangani skrip PowerShell?”) - skenario keamanan terbaik;
  • Izinkan lokal skrip dan jauh ditandatangani skrip (RemoteSigned) - Anda dapat menjalankan skrip jarak jauh lokal dan yang ditandatangani;
  • Izinkan semua skrip (tidak dibatasi) - opsi yang paling tidak aman, karena Mengizinkan menjalankan skrip PowerShell.

Jika tidak salah satu skenario yang diusulkan untuk menyiapkan kebijakan untuk meluncurkan skrip PowerShell cocok untuk Anda, Anda dapat menjalankan skrip PowerShell dalam mode Lewati (skrip tidak diblokir, peringatan tidak muncul).

Untuk melakukan ini, skrip PowerShell harus dijalankan dari bagian Startup -> Scripts. Di bagian ini, Anda dapat mengonfigurasi skrip ps1 untuk dijalankan dengan membuat skrip Startup reguler yang meluncurkan file executable powershell.exe (mirip dengan skrip yang dijelaskan dalam artikel). Tunjukkan:

  • Nama skrip: % windir% \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe
  • Parameter Skrip: -Noninteraktif -ExecutionPolicy Bypass -Noprofile -file% ~ dp0MyPSScript.ps1

Karakter % ~ dp0 ketika diluncurkan pada klien, jalur ke direktori dengan skrip pada SYSVOL secara otomatis dikonversi ke UNC.

Dalam hal ini, Anda dengan paksa mengaktifkan awal skrip PowerShell (bahkan tidak dapat diandalkan) menggunakan parameter Bypass.