Set-ExecutionPolicy
Windows bilgisayarlar için PowerShell yürütme ilkelerini ayarlar.
Syntax
All
Set-ExecutionPolicy
[-ExecutionPolicy] <ExecutionPolicy>
[[-Scope] <ExecutionPolicyScope>]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Set-ExecutionPolicy cmdlet'i Windows bilgisayarlar için PowerShell yürütme ilkelerini değiştirir. Daha fazla bilgi için bkz. about_Execution_Policies.
Windows olmayan bilgisayarlar için PowerShell 6.0'dan başlayarak, varsayılan yürütme ilkesi Sınırsız'dır ve değiştirilemez.
Set-ExecutionPolicy cmdlet'i kullanılabilir, ancak PowerShell desteklenmediğini belirten bir konsol iletisi görüntüler.
Yürütme ilkesi, PowerShell güvenlik stratejisinin bir parçasıdır. Yürütme ilkeleri, PowerShell profiliniz gibi yapılandırma dosyalarını yükleyip yükleyemeyeceğinizi veya betik çalıştırabileceğinizi belirler. Ayrıca betiklerin çalıştırılmadan önce dijital olarak imzalanması gerekip gerekmediği.
Cmdlet'in Set-ExecutionPolicy varsayılan kapsamı, bilgisayarı kullanan herkesi etkileyen LocalMachine'dir. LocalMachine için yürütme ilkesini değiştirmek için PowerShell'iYönetici Olarak Çalıştır ile başlatın.
Her kapsamın yürütme ilkelerini öncelik sırasına göre görüntülemek için Get-ExecutionPolicy -Listkullanın. PowerShell oturumunuzun etkin yürütme ilkesini görmek için parametresiz Get-ExecutionPolicy kullanın.
Örnekler
Örnek 1: Yürütme ilkesi ayarlama
Bu örnekte, yerel bilgisayar için yürütme ilkesinin nasıl ayarlanacağı gösterilmektedir.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine RemoteSigned
Get-ExecutionPolicy parametresiyle cmdlet'ini kullanın.
Örnek 2: Grup İlkesi ile çakişen bir yürütme ilkesi ayarlama
Bu komut, LocalMachine kapsamının yürütme ilkesini Kısıtlı olarak ayarlamaya çalışır. LocalMachine daha kısıtlayıcıdır, ancak bir Grup İlkesi ile çakıştığı için etkili bir ilke değildir. Kısıtlı ilke, kayıt defteri kovanına HKEY_LOCAL_MACHINE yazılır.
PS> Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope LocalMachine
Set-ExecutionPolicy : PowerShell updated your local preference successfully, but the setting is
overridden by the Group Policy applied to your system. Due to the override, your shell will retain
its current effective execution policy of "AllSigned". Contact your Group Policy administrator for
more information. At line:1 char:20 + Set-ExecutionPolicy <<<< restricted
PS> Get-ChildItem -Path HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds
Hive: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds
Name Property
---- --------
Microsoft.PowerShell Path : C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
ExecutionPolicy : Restricted
ScriptedDiagnostics ExecutionPolicy : Unrestricted
CmdletSet-ExecutionPolicy, Kısıtlı ilkeyi belirtmek için ExecutionPolicy parametresini kullanır. Get-ChildItem, kayıt defteri konumunu belirtmek için HKLM sağlayıcısıyla birlikte Path parametresini kullanır.
Örnek 3: Yürütme ilkesini uzak bir bilgisayardan yerel bilgisayara uygulama
Bu komut, uzak bir bilgisayardan yürütme ilkesi nesnesini alır ve ilkeyi yerel bilgisayarda ayarlar.
Get-ExecutionPolicy, Microsoft.PowerShell.ExecutionPolicy nesnesini işlem hattına gönderir.
Set-ExecutionPolicy işlem hattı girişini kabul eder ve executionpolicy parametresini gerektirmez.
PS> Invoke-Command -ComputerName Server01 -ScriptBlock { Get-ExecutionPolicy } | Set-ExecutionPolicy
Invoke-Command cmdlet'i yerel bilgisayarda yürütülür ve ScriptBlock uzak bilgisayara gönderir.
ComputerName parametresi, Server01uzak bilgisayarı belirtir.
ScriptBlock parametresi uzak bilgisayarda Get-ExecutionPolicy çalıştırır.
Get-ExecutionPolicy nesnesi işlem hattına Set-ExecutionPolicygönderilir.
Set-ExecutionPolicy yürütme ilkesini yerel bilgisayarın varsayılan kapsamı olan LocalMachine'e uygular.
Örnek 4: Yürütme ilkesinin kapsamını ayarlama
Bu örnekte, belirtilen bir kapsam olan CurrentUser için bir yürütme ilkesinin nasıl ayarlanacağı gösterilmektedir. CurrentUser kapsamı yalnızca bu kapsamı ayarlayan kullanıcıyı etkiler.
Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope CurrentUser
Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser AllSigned
LocalMachine RemoteSigned
Set-ExecutionPolicy
AllSigned ilkesini belirtmek için ExecutionPolicy parametresini kullanır.
Scope parametresi CurrentUser'ı belirtir. Yürütme ilkesi ayarlarını görüntülemek için Get-ExecutionPolicy parametresiyle cmdlet'ini kullanın.
Kullanıcı için etkili yürütme ilkesi AllSigned olur.
Örnek 5: Geçerli kullanıcının yürütme ilkesini kaldırma
Bu örnekte, belirtilen bir kapsam için yürütme ilkesini kaldırmak için Tanımsız yürütme ilkesinin nasıl kullanılacağı gösterilmektedir.
Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser
Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine RemoteSigned
Set-ExecutionPolicy
Tanımsız ilkeyi belirtmek için ExecutionPolicy parametresini kullanır.
Scope parametresi CurrentUser'ı belirtir. Yürütme ilkesi ayarlarını görüntülemek için Get-ExecutionPolicy parametresiyle cmdlet'ini kullanın.
Örnek 6: Geçerli PowerShell oturumu için yürütme ilkesini ayarlama
İşlem kapsamı yalnızca geçerli PowerShell oturumunu etkiler. Yürütme ilkesi $env:PSExecutionPolicyPreference ortam değişkenine kaydedilir ve oturum kapatıldığında silinir.
Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope Process
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process AllSigned
CurrentUser RemoteSigned
LocalMachine RemoteSigned
AllSigned Set-ExecutionPolicy ilkesini belirtmek için ExecutionPolicy parametresini kullanır.
Scope parametresi Process değerini belirtir. Yürütme ilkesi ayarlarını görüntülemek için Get-ExecutionPolicy parametresiyle cmdlet'ini kullanın.
Örnek 7: Yürütme ilkesini değiştirmeden çalıştırmak için bir betiğin engellemesini kaldırma
Bu örnekte, remotesigned yürütme ilkesinin
Betiğin kodunu okumak ve Unblock-File cmdlet, betiklerin çalıştırılabilmesi için engellerini kaldırır, ancak yürütme ilkesini değiştirmez.
PS> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
PS> Get-ExecutionPolicy
RemoteSigned
PS> .\Start-ActivityTracker.ps1
.\Start-ActivityTracker.ps1 : File .\Start-ActivityTracker.ps1 cannot be loaded.
The file .\Start-ActivityTracker.ps1 is not digitally signed.
The script will not execute on the system.
For more information, see about_Execution_Policies at https://go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ .\Start-ActivityTracker.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
PS> Unblock-File -Path .\Start-ActivityTracker.ps1
PS> Get-ExecutionPolicy
RemoteSigned
PS> .\Start-ActivityTracker.ps1
Task 1:
Start-ActivityTracker.ps1 betiği geçerli dizinden yürütülür. Betik dijital olarak imzalanmamış olduğundan RemoteSigned tarafından engellenir.
Bu örnekte betiğin kodu gözden geçirildi ve çalıştırılması güvenli olarak doğrulandı.
Unblock-File cmdlet'i, betiğin engelini kaldırmak için Path parametresini kullanır.
Start-ActivityTracker.ps1 betiği geçerli dizinden yürütülür. Betik, Unblock-File cmdlet'i tarafından engeli kaldırıldığından çalışmaya başlar.
Parametreler
-Confirm
Cmdlet'i çalıştırmadan önce sizden onay ister.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | False |
| Joker karakterleri destekler: | False |
| DontShow: | False |
| Diğer adlar: | Cf |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-ExecutionPolicy
Yürütme ilkesini belirtir. Grup İlkeleri yoksa ve her kapsamın yürütme ilkesi Tanımsız olarak ayarlanmışsa, Kısıtlı tüm kullanıcılar için geçerli ilke haline gelir.
Kabul edilebilir yürütme ilkesi değerleri aşağıdaki gibidir:
- AllSigned. Yerel bilgisayarda yazılan betikler de dahil olmak üzere tüm betiklerin ve yapılandırma dosyalarının güvenilir bir yayımcı tarafından imzalı olmasını gerektirir.
- Atla. Hiçbir şey engellenmez ve uyarı veya istem yoktur.
- Varsayılan. Varsayılan yürütme ilkesini ayarlar. Windows istemcileri için kısıtlı veya Windows sunucuları için RemoteSigned.
- RemoteSigned. İnternet'ten indirilen tüm betiklerin ve yapılandırma dosyalarının güvenilir bir yayımcı tarafından imzalı olmasını gerektirir. Windows sunucu bilgisayarları için varsayılan yürütme ilkesi.
- Kısıtlı. Yapılandırma dosyalarını yüklemez veya betikleri çalıştırmaz. Windows istemci bilgisayarları için varsayılan yürütme ilkesi.
- Tanımlanmamış. Kapsam için hiçbir yürütme ilkesi ayarlanmadı. Atanmış bir yürütme ilkesini, Grup İlkesi tarafından ayarlanmayan bir kapsamdan kaldırır. Tüm kapsamlardaki yürütme ilkesi Tanımsız ise, etkin yürütme ilkesi Sınırlı'dır.
- Sınırsız. PowerShell 6.0'da başlayarak, bu Windows olmayan bilgisayarlar için varsayılan yürütme ilkesidir ve değiştirilemez. Tüm yapılandırma dosyalarını yükler ve tüm betikleri çalıştırır. İnternet'ten indirilen imzasız bir betik çalıştırırsanız, çalıştırılmadan önce izniniz istenir.
Parametre özellikleri
| Tür: | ExecutionPolicy |
| Default value: | None |
| Kabul edilen değerler: | AllSigned, Bypass, Default, RemoteSigned, Restricted, Undefined, Unrestricted |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | 0 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | True |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-Force
Tüm onay istemlerini gizler. Beklenmeyen sonuçlardan kaçınmak için bu parametreyle dikkatli olun.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | False |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-Scope
Yürütme ilkesinden etkilenen kapsamı belirtir. Varsayılan kapsam LocalMachine'dir.
Etkin yürütme ilkesi, öncelik sırasına göre aşağıdaki gibi belirlenir:
- MachinePolicy
. Bilgisayarın tüm kullanıcıları için Grup İlkesi ile ayarlanır. - UserPolicy
. Bilgisayarın mevcut kullanıcısı için bir Grup İlkesiyle ayarlanır. - İşlem. Yalnızca geçerli PowerShell oturumunu etkiler.
- CurrentUser
. Yalnızca geçerli kullanıcıyı etkiler. - LocalMachine
. Bilgisayarın tüm kullanıcılarını etkileyen varsayılan kapsam.
İşlem kapsamı yalnızca geçerli PowerShell oturumunu etkiler. Yürütme ilkesi, kayıt defteri yerine ortam değişkenine $env:PSExecutionPolicyPreferencekaydedilir. PowerShell oturumu kapatıldığında değişken ve değer silinir.
CurrentUser kapsamı için yürütme ilkeleri, kayıt defteri kovanı HKEY_LOCAL_USER yazılır.
LocalMachine kapsamı için yürütme ilkeleri kayıt defteri kovanı HKEY_LOCAL_MACHINE yazılır.
Parametre özellikleri
| Tür: | ExecutionPolicyScope |
| Default value: | LocalMachine |
| Kabul edilen değerler: | CurrentUser, LocalMachine, MachinePolicy, Process, UserPolicy |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | 1 |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | True |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-WhatIf
Cmdlet çalıştırılırsa ne olacağını gösterir. Cmdlet çalıştırılmaz.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | False |
| Joker karakterleri destekler: | False |
| DontShow: | False |
| Diğer adlar: | Wi |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
CommonParameters
Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.
Girişler
Microsoft.PowerShell.ExecutionPolicy, System.String
Bir yürütme ilkesi nesnesini veya yürütme ilkesinin adını içeren bir dizeyi öğesine Set-ExecutionPolicyyöneltebilirsiniz.
Çıkışlar
None
Set-ExecutionPolicy herhangi bir çıktı döndürmez.
Notlar
Set-ExecutionPolicy , Grup İlkeleri tarafından ayarlandıkları için MachinePolicy ve UserPolicy kapsamlarını değiştirmez.
Set-ExecutionPolicy, kullanıcı tercihi ilkeden daha kısıtlayıcı olsa bile Grup İlkesi'ni geçersiz kılmaz.
Bilgisayar veya kullanıcı için Grup İlkesi Komut Dosyası Yürütmeyi Aç etkinleştirilmişse, kullanıcı tercihi kaydedilir, ancak bu işlem etkili olmaz. PowerShell çakışmayı açıklayan bir ileti görüntüler.