PowerShell Hata Ayıklama: Scriptlerinizin Neden Çalışmadığını ve Bunu Nasıl Düzeltileceğini Öğrenin
Eğer hiç bir PowerShell scriptini çalıştırmayı denediyseniz ve “Bu sistemde scriptlerin yürütülmesi devre dışı bırakıldığı için yüklenemiyor” diye sinir bozucu bir mesajla karşılaştıysanız, yalnız değilsiniz. Bu sorun, özellikle PowerShell’de script yazmaya yeni başlayan kullanıcıları çoğu zaman hazırlıksız yakalayabilir. Bu blog yazısında, bu hatanın ardındaki nedenleri keşfedecek ve onu çözmek için gereken adımları sağlayarak scriptlerinizi kolaylıkla çalıştırmanızı sağlayacağız.
Sorunu Anlamak
Script yürütmenin devre dışı olduğunu belirten hata mesajıyla karşılaştığınızda, genellikle bu PowerShell’in yerleşik güvenlik ayarlarından kaynaklanmaktadır. Varsayılan olarak, PowerShell, güvenilir bir yayıncı tarafından imzalanmamış scriptlerin yürütülmesini engelleyecek şekilde yapılandırılmıştır. Bu, sisteminizin güvenliğini tehlikeye atabilecek zararlı scriptlerin çalıştırılmasını önlemek için bir koruma önlemidir.
Aldığınız spesifik hata, yürütme politikasının script çalıştırmayı engelleyecek şekilde ayarlandığını vurgulamaktadır, bu da PowerShell scriptlerinizi çalıştırmaya çalışırken bir engel oluşturur.
Çözüm: Yürütme Politikasını Değiştirmek
Bu sorunu çözmek için, yerel makinenizde bulunan imzasız scriptlerin yürütülmesine izin verecek şekilde yürütme politikasını değiştirebilirsiniz. PowerShell ayarlarınızı güncellemek için aşağıdaki basit adımları takip edin.
Adım 1: PowerShell’i Yönetici Olarak Açın
Herhangi bir değişiklik yapmadan önce, PowerShell’i yönetici ayrıcalıkları ile açmanız gerekir. Bunu yapmak için:
- Windows başlangıç menünüzde PowerShell’i arayın.
- “Windows PowerShell” üzerine sağ tıklayın ve “Yönetici olarak çalıştır” seçeneğini seçin.
Adım 2: Mevcut Yürütme Politikasını Kontrol Edin
Mevcut yürütme politikanızı bilmek her zaman faydalıdır. Bu bilgiyi yükseltilmiş PowerShell penceresinde aşağıdaki komutu yazarak kontrol edebilirsiniz:
Get-ExecutionPolicy
Bu, PowerShell ortamınız için ayarlanmış mevcut politikayı gösterecektir.
Adım 3: Yürütme Politikasını Güncelleyin
Yerel, imzasız scriptlerin yürütülmesine izin vermek için, yürütme politikasını RemoteSigned
olarak değiştirebilirsiniz. Bu ayar, yerel olarak oluşturulan scriptlerin bir imza gerektirmeden çalışmasına izin verir. Bunu yapmak için aşağıdaki komutu yazın:
Set-ExecutionPolicy RemoteSigned
Bu komutu çalıştırdıktan sonra, PowerShell değişikliği onaylamanızı isteyebilir. Y tuşuna basın ve Enter‘a tıklayın.
Adım 4: Scriptinizi Yeniden Çalıştırın
Artık yürütme politikanızı ayarladığınıza göre, PowerShell scriptinizi tekrar çalıştırmayı deneyin. Scriptiniz artık önceki hatalar olmadan çalışmalıdır.
Önemli Hususlar
- Güvenlik Riskleri: Yürütme politikalarını gevşetmenin, özellikle güvensiz scriptlerden dolayı sisteminizi riske atabileceğini unutmayın. Her zaman çalıştırdığınız scriptlerin güvenilir kaynaklardan geldiğinden emin olun.
- Oturuma Özgü Politika: Yürütme politikasını yalnızca mevcut PowerShell oturumunuzun süresi boyunca değiştirmek istiyorsanız,
Set-ExecutionPolicy
komutuyla-Scope Process
parametresini kullanabilirsiniz.
Örnek:
Set-ExecutionPolicy RemoteSigned -Scope Process
Bu şekilde, değişiklikler sistemdeki diğer kullanıcılar veya oturumlar üzerinde etkili olmayacaktır.
Sonuç
PowerShell scriptlerini çalıştırmak, verimliliğinizi önemli ölçüde artırabilir, ancak güvenlik ayarları arasında gezinmek zaman zaman zorlayıcı olabilir. Yürütme politikasını anlayarak ve nasıl değiştireceğinizi bilerek, bu yaygın engeli aşabilirsiniz. Scriptleri çalıştırırken her zaman dikkatli bir yaklaşım sergilemeyi ve sistem güvenliğinizi akılda tutmayı unutmayın.
Bu basit adımlarla, “scriptlerin yürütülmesi devre dışı” hatasını çözmek için iyi bir şekilde donatılmış olmalısınız ve görevlerinizi verimli bir şekilde otomasyona geri dönmelisiniz. İyi script yazmalar!