Powershell Yetki sorunlarını çözelim


powershell yetki hatalarını giderelim

Sıradan kullanıcılar kırk yılda bir KOmut istemi (Cmd) yi kullanır lakin çoğu Windows PowerShell in ismini bile duymamış olabilir , daha önceki yazılarımızda Powershell hakkında makalelerimiz olmuştu

kısaca hatırlarsak ; Windows üzerinde daha fazla kontrol ve otomasyon sağlamak amacı ile Microsoft tarafından oluşturulmuş olan bir yönetim çerçevesi/yapısıdır (Framework) , bir bir komut satırı kabuğu (command-line shell) ve .NET Framework üzerine kurulu bir script dilinden oluşur. tek bir bilgisayarda veya ağda Birçok admin görevini otomatikleştirmede kullanılır. gelelim asıl konumuza , Powershellde yetki sorunları yaşamamak için yapılması gerekenlere

1. Powershell i herzaman Yönetici olarak çalıştıralım

Windoslarda arama kutusuna “Powershell” yazıp çıkan linke sağ tıklayıp Admin olarak çalıştır diyerek Powershelli  çalıştırabiliriz.

powershell nasıl çalışır

Burada admin yetkilerinde çalıştırmamız önemli çünkü normal olarak çalıştırdığımızda bazı komutlarda yetki sorunu yaşarız.

2. Scriptlerdeki Engellemeyi kaldırmayı unutmayalım

İnternetten indirilen veya başka bir bilgisayarda oluşturulmuş olan Powershell scriptlerini çalıştırmadan önce mutlaka sağ tıklayıp özellikler deyip eğer varsa “engellemeyi kaldır” dememiz gerekir.

Engellemeyi kaldır

Çoğu defa ben dahil birçok kişi üstteki basit işaretlemeyi yapmadığından Powershell komutu veya scripti neden hata verdi diye kafa yormaktadır.

3. Powershell scriptlerini çalışır hale getirelim (ExecutionPolicy ayarları)

Varsayılan olarak powershell ayarları herhangi bir Powershell scriptini çalıştırmaya müsade etmez ve bu durum çoğu zaman powershell kullanıcılarını rahatsız eder , ExecutionPolicy – hangi tip PowerShell scriptlerinin sistemde çalışmasına müsade edileceğini düzenleyen ayarlardır varsayılan olarak bu ayar “Restricted” konumundadır yani hiçbir script çalışamaz , Powershell i çalıştırıp aşağıdaki komutlardan birini verdiğimizde

Get-ExecutionPolicy

yada

Get-ExecutionPolicy -List | Format-Table -AutoSize

yada

Get-ExecutionPolicy -List

muhtemelen sizdeki tabloda aşağıdaki ile benzer veya aynı çıkacaktır. (Sizde bazıları veya hepsi Restricted te olabilir.

Powershell yetkileri listesi

Bu durumda scriptlerin çalıştırılmasında sıkıntılar yaşanacaktır mesela alınan hatalardan en meşhuru “File… cannot be loaded. The file is not digitally signed. The script will not be executed on the system.” hatasıdır bunun anlamı scriptin güvenilmez olduğu için sisteminizde çalışmasına müsade edilmediğidir.

powershell not digitally signed hatası

Kısıtlamaları kaldırıp Scriptleri çalışır hale getirmek için tek tek aşağıdaki komutları verelim

Set-ExecutionPolicy Unrestricted
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope LocalMachine
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope UserPolicy
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Unrestricted
Set-ExecutionPolicy -Scope:CurrentUser -ExecutionPolicy:Unrestricted

yada

Set-ExecutionPolicy Unrestricted -Scope LocalMachine -Force
Set-ExecutionPolicy Unrestricted -Scope UserPolicy -Force
Set-ExecutionPolicy Unrestricted -Scope Process -Force
Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force 

Eğer kodları uygularken hata verirse aşağıdakini uygulayın:

1. Windows ve R tuşlarına basalım ve çalıştıra aşağıdakini yazalım

gpedit.msc

Yerel grup ilkesi düzenleyicisi açılacaktır , burada : Yönetim şablonları > Windows bileşenleri > Windows Powershell Kısmına gidelim ve sağ taraftaki “Turn on script execution” kısmına çift tıklayalım

powershellde script çalıştırmayı açalım

Açılan pencerede Etkin kısmını işaretleyelim ve aşağı açılır menüden “Allow All scripts” kısmını seçelim , dip kısımdaki uygula ve tamam butonları ile işlemi sonlandıralım.

Bütün scriptler çalışsın

Her windowsta üstteki yerde Powershell olmayabiliyor (Lütfen bu konuda Microsofta danışın) neticede aşağıdaki gibi bir tablo elde edeceksiniz bu hertür kısıtlamanın kaldırıldığı anlamına gelmektedir

powershelldeki kısıtlamalar kaldırıldı

Gpedit.msc (yerl grup ilkesi düzenleyicisi) bulunmayan sistemlerde aşağıdaki registry değerleri yardımcı olabilir

Windows 7 de aşağıdaki işe yaramıştı

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\PowerShell]
"EnableScripts"=dword:00000001
"ExecutionPolicy"="Bypass"

Windows 8 ve sonrası için aşağıdaki anahtarlara bakınız

HKLM\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
HKLM\software\Wow6432Node\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell\ExecutionPolicy

üstteki yerde sağ tarafta ExecutionPolicy isminde bir REG_SZ anahtarı oluşturup değer olarak Unrestricted giriniz.

Sonrasında Powershell ile çalışırken yetkilendirme ile ilgili herhangi bir hata uyarısı almayacaksınız.



2 Yorum Var

Yorum Ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

CAPTCHA