1. Anasayfa
  2. PowerShell

PowerShell Set-ExecutionPolicy Komutu:


PowerShell Windows sistemlerinde script ve komut dosyalarının çalıştırılma politikasını düzenleyen bir güvenlik stratejisine sahiptir. Bu politikalardan biri de Set-ExecutionPolicy cmdlet’idir. Bu makalede Set-ExecutionPolicy komutunun nasıl kullanıldığı hangi parametreleri desteklediği ve farklı kullanım senaryoları ele alınacaktır.

Set-ExecutionPolicy cmdlet’i Windows bilgisayarlar için PowerShell çalıştırma politikasını değiştirmek için kullanılır. İlgili politikanın kapsamını ve seviyesini belirlemek mümkün olur.

PowerShell 6.0 ve sonraki sürümlerde Windows dışındaki sistemlerde Set-ExecutionPolicy varsayılan olarak Unrestricted olarak ayarlanmıştır ve değiştirilemez.

Execution Policy PowerShell aşağıdaki çalıştırma politikalarını destekler:

  • Restricted: Scritplerin çalıştırılmasına izin vermez.
  • AllSigned: Tüm scriptlerin güvenilir bir yayıncı tarafından imzalanmış olması gerekir.
  • RemoteSigned: Yalnızca internetten indirilen script’lerin imzalanması gerekir.
  • Unrestricted: Tüm scriptleri çalıştırılabilir ancak internetten indirilenler için uyarı verilir.
  • Bypass: Hiçbir betik engellenmez.
  • Undefined: Hiçbir belirlenmiş politika yoktur.

Set-ExecutionPolicy Kullanımı Komutun genel kullanım yapısı aşağıdaki gibidir:

Set-ExecutionPolicy [-ExecutionPolicy] <ExecutionPolicy> [[-Scope] <ExecutionPolicyScope>] [-Force] [-WhatIf] [-Confirm]

Komut Parametreleri;

  • ExecutionPolicy: Uygulanacak çalıştırma politikası.
  • Scope: Politikanın hangi seviyede uygulanacağını belirler (LocalMachine, CurrentUser, vb.).
  • Force: Onay istemini atlar ve işlemi zorlar.
  • WhatIf: Komutun ne yapacağını simüle eder ama gerçekleştirmez.

Set-ExecutionPolicy Komutuna Ait Örnekler;

Örnek 1: LocalMachine İçin ExecutionPolicy Ayarlanması

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

Bu komut ile tüm kullanıcılar için RemoteSigned politikasını uygular.

Örnek 2: Group Policy Çatışması Olan Durumlar

Eğer bir Grup Politikaları (Group Policy) mevcutsa bu komutun etkili olup olmadığı Get-ExecutionPolicy -List komutu ile kontrol edilmelidir.

Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope LocalMachine

Örnek 3: Uzaktaki Bir Bilgisayarın ExecutionPolicy Ayarını Uygulanması

Aşağıdaki komut ile WebServer01 isimli uzaktaki bir bilgisayardan execution policy bilgisini alır ve yerel makineye uygular.

Invoke-Command -ComputerName Server01 -ScriptBlock { Get-ExecutionPolicy } | Set-ExecutionPolicy

Örnek 4: Belirli Bir Kullanıcı İçin Policy Belirleme

Aşağıdaki komut ile yalnızca mevcut kullanıcı için execution policy belirlenir.

Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope CurrentUser

Örnek 5: Belirli Bir Kullanıcı için Execution Policy Kaldırmak

Aşağıdaki komut CurrentUser kapsamındaki execution policy ayarını kaldırır.

Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser

Örnek 6: Geçici (Sadece Geçerli Oturumda) Execution Policy Belirleme

Aşağıdaki komut sadece mevcut PowerShell oturumu boyunca geçerli olacak bir execution policy belirler.

Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope Process

Örnek 7: Bir Betiği (Script) Çalıştırma Politikalarını Değiştirmeden Çalıştırma

Aşaüıdaki komut Start-ActivityTracker.ps1 dosyasının engellemesini kaldırır ancak execution policy değişmez.

Unblock-File -Path .\Start-ActivityTracker.ps1