PowerShell

Not Digitally Signed” Hatası: PowerShell Script’lerini Çalıştırma Sorunu ve Çözümleri

PowerShell kullanıcılarının sıkça karşılaştığı “not digitally signed” (dijital olarak imzalanmamış) hatası, script’lerin çalıştırılmasını engelleyebilen can sıkıcı bir sorundur. Bu blog yazısında, bu hatanın nedenlerini ve çeşitli çözüm yöntemlerini detaylıca ele alacağız.

Hatanın Nedeni

PowerShell’in güvenlik politikaları, sisteminizi potansiyel kötü amaçlı script’lere karşı korumak için tasarlanmıştır. Varsayılan olarak, PowerShell yalnızca güvenilir kaynaklardan gelen ve dijital olarak imzalanmış script’leri çalıştırır. Bu nedenle, kendi yazdığınız veya güvenilir kaynaklardan indirdiğiniz script’ler bile bu hatayı verebilir.

Çözüm Yöntemleri

1. Execution Policy (Çalıştırma Politikası) Değiştirme

En yaygın çözüm, PowerShell’in execution policy ayarını geçici veya kalıcı olarak değiştirmektir:

powershell
Geçici çözüm (yalnızca mevcut oturum için)
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

Kalıcı çözüm (dikkatli olun)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Uyarı: Unrestricted politikası güvenlik riski oluşturabilir, sadece güvendiğiniz script’ler için kullanın.

2. Script’i Dijital Olarak İmzalama

Daha güvenli bir yaklaşım, script’inizi dijital sertifika ile imzalamaktır:

1. Code signing sertifikası edinin
2. Script’i imzalayın:
powershell
Set-AuthenticodeSignature -FilePath C:\path\to\script.ps1 -Certificate $cert

3. Script’i Komut Satırından Çalıştırma

Alternatif olarak, script’i aşağıdaki komutla çalıştırabilirsiniz:

cmd
powershell.exe -ExecutionPolicy Bypass -File “C:\path\to\script.ps1”

4. Script İçeriğini Doğrudan Çalıştırma

Script içeriğini kopyalayıp PowerShell’de doğrudan çalıştırabilirsiniz:

1. Script içeriğini kopyala
2. PowerShell’de yapıştır ve Enter’a bas

Güvenlik Uyarıları

Execution policy’yi değiştirmeden önce aşağıdaki noktaları göz önünde bulundurun:

– Yalnızca güvendiğiniz script’ler için politikayı gevşetin
– Mümkünse script’leri imzalamayı tercih edin
– İş bitince politikayı eski haline getirin:
powershell
Set-ExecutionPolicy -ExecutionPolicy Restricted

Sonuç

“Not digitally signed” hatası PowerShell’in güvenlik özelliklerinin bir parçasıdır. Geçici çözümler hızlı bir çıkış yolu sunsa da, uzun vadede script’lerinizi dijital olarak imzalamak en güvenli yaklaşım olacaktır. Hangi yöntemi seçerseniz seçin, güvenlik risklerini daima göz önünde bulundurmayı unutmayın.

PowerShell script’lerinizi sorunsuz çalıştırabilmeniz dileğiyle!

Yorum Yazın