Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kısa açıklama
PowerShell için yapılandırma dosyaları, Kayıt Defteri yapılandırmasının yerini alır.
Uzun açıklama
powershell.config.json dosyası PowerShell için yapılandırma ayarlarını içerir. PowerShell başlangıçta bu yapılandırmayı yükler. Ayarlar çalışma zamanında da değiştirilebilir. Tüm anahtarlar tüm platformlar için geçerli değildir.
Uyarı
Tanınmayan anahtarlar veya yapılandırma dosyasındaki geçersiz değerler yoksayılır.
powershell.config.json dosyası geçersiz JSON içeriyorsa PowerShell etkileşimli oturum başlatamaz. Bu durumda yapılandırma dosyasını düzeltmeniz gerekir.
Ayarların özeti
powershell.config.json dosyası aşağıdaki anahtarları içerebilir:
DisableImplicitWinCompatWindowsPowerShellCompatibilityModuleDenyListWindowsPowerShellCompatibilityNoClobberModuleListExperimentalFeaturesLogChannelsLogIdentityLogKeywordsLogLevelMicrosoft.PowerShell:ExecutionPolicyPSModulePathPowerShellPoliciesExecutionPolicyConsoleSessionConfigurationModuleLoggingProtectedEventLoggingScriptBlockLoggingScriptExecutionTranscriptionUpdatableHelp
Yapılandırma kapsamı
Yapılandırma ayarları tüm kullanıcılar için veya tek tek kullanıcı düzeyinde tanımlanabilir.
Kapsam önceliği
Birkaç özel durum dışında CurrentUser düzeyinde tanımlanan ayarlar , AllUsers düzeyi için tanımlanan ayarlardan önceliklidir.
Windows sistemlerinde:
- Windows Grup İlkesi tarafından yönetilen ayarlar, yapılandırma dosyalarındaki ayarlardan önceliklidir.
- Yürütme İlkesi, kapsam düzeyi ayarlarını destekler.
Tüm platformlarda:
- sonuç değeri
$env:PSModulePath, her iki kapsamdanPSModulePathanahtar değerlerinin birleştirilmesidir.
AllUsers (paylaşılan) yapılandırması
powershell.config.json dizinindeki bir $PSHOME dosyası, bu PowerShell yüklemesinden çalıştırılan tüm PowerShell oturumları için yapılandırmayı tanımlar.
Not
$PSHOME konumu, yürütülen System.Management.Automation.dll derlemesi ile aynı dizin olarak tanımlanır. Bu, barındırılan PowerShell SDK örnekleri için de geçerlidir.
CurrentUser (kullanıcı başına) yapılandırmaları
Dosyayı kullanıcı kapsamı yapılandırma dizinine yerleştirerek PowerShell'i kullanıcı başına temelinde de yapılandırabilirsiniz. Kullanıcı yapılandırma dizini aşağıdaki komutla platformlar arasında bulunabilir:
Split-Path $PROFILE.CurrentUserCurrentHost
Windows'a özgü ayarlar
Aşağıdaki ayarlar yalnızca Windows platformları için geçerlidir.
DisableImplicitWinCompatWindowsPowerShellCompatibilityModuleDenyListWindowsPowerShellCompatibilityNoClobberModuleListMicrosoft.PowerShell:ExecutionPolicyPowerShellPoliciesScriptExecution
DisableImplicitWinCompat
trueolarak ayarlandığında, bu ayar Windows PowerShell Uyumluluğu özelliğini devre dışı bırakır. Windows PowerShell Uyumluluğu, PowerShell 7'nin Windows PowerShell 5.1 modüllerini uyumluluk modunda yüklemesine olanak tanır.
Daha fazla bilgi için bkz. about_Windows_PowerShell_Compatibility.
WindowsPowerShellCompatibilityModuleDenyList
Bu ayar, Windows PowerShell Uyumluluğu özelliğine katılımın dışında tutmak istediğiniz modül adları dizisidir.
Daha fazla bilgi için bkz. about_Windows_PowerShell_Compatibility.
WindowsPowerShellCompatibilityNoClobberModuleList
Bu ayar, modülün Windows PowerShell 5.1 sürümü yüklenerek kopyalanması gereken modül adları dizisidir.
Daha fazla bilgi için bkz. about_Windows_PowerShell_Compatibility.
Microsoft. PowerShell:ExecutionPolicy
Hangi betiklerin çalıştırılabileceğini belirleyerek PowerShell oturumları için yürütme ilkesini yapılandırılır. PowerShell varsayılan olarak mevcut yürütme ilkesini kullanır.
AllUsers yapılandırmaları için bu, LocalMachine yürütme ilkesini ayarlar. CurrentUser yapılandırmaları için bu, CurrentUser yürütme ilkesini ayarlar.
Aşağıdaki örnek PowerShell'in yürütme ilkesini RemoteSignedolarak ayarlar.
{
"Microsoft.PowerShell:ExecutionPolicy": "RemoteSigned"
}
Daha fazla bilgi için bkz. about_Execution_Policies.
Windows dışı platformlar için ayarlar
Aşağıdaki ayarlar yalnızca Linux ve macOS platformları için geçerlidir.
Linux ve macOS için PowerShell günlüğünü yapılandırmak için aşağıdaki anahtarları kullanın.
LogChannelsLogIdentityLogKeywordsLogLevel
Windows olmayan sistemler için PowerShell günlüğünün tam açıklaması için bkz. about_Logging_Non-Windows.
Yaygın yapılandırma ayarları
Aşağıdaki ayarlar desteklenen tüm platformlarda kullanılabilir.
ExperimentalFeaturesPSModulePathPowerShellPolicies
ExperimentalFeatures
PowerShell'de etkinleştirecek deneysel özelliklerin adları. Varsayılan değer boş bir dizidir.
Aşağıdaki örnek, PowerShell başlatıldığında PSCommandNotFoundSuggestion ve PSSubsystemPluginModel deneysel özellikleri etkinleştirir.
Örnek:
{
"ExperimentalFeatures": [
"PSCommandNotFoundSuggestion",
"PSSubsystemPluginModel"
]
}
Deneysel özellikler hakkında daha fazla bilgi için bkz. Deneysel özellikleri kullanma.
PSModulePath
Bu PowerShell oturumu için PSModulePath ayarlarını geçersiz kılar. Yapılandırma geçerli kullanıcıya yönelikse CurrentUser modül yolunu ayarlar. Yapılandırma tüm kullanıcılar içinse AllUsers modül yolunu ayarlar.
Uyarı
AllUsers veya CurrentUser modül yolunu yapılandırmak, Install-Modulegibi PowerShellGet cmdlet'lerinin kapsamlı yükleme konumunu değiştirmez. Bu cmdlet'ler her zaman varsayılan modül yollarını kullanır.
Değer ayarlı değilse, PowerShell ilgili modül yolu ayarı için varsayılan değeri kullanır. Bu varsayılanlar hakkında daha fazla bilgi için bkz. about_PSModulePath.
Bu ayar, ortam değişkenlerinin Windows Komut Kabuğu'nda izin verdiği şekilde %gibi "%HOME%\Documents\PowerShell\Modules" karakterlerin arasına eklenerek kullanılmasını sağlar. Bu söz dizimi Linux ve macOS için de geçerlidir. Örnekler için aşağıya bakın.
Bu örnekte Bir Windows ortamı için PSModulePath yapılandırması gösterilmektedir:
{
"PSModulePath": "C:\\Program Files\\PowerShell\\7\\Modules"
}
Bu örnekte macOS veya Linux ortamı için PSModulePath yapılandırması gösterilmektedir:
{
"PSModulePath": "/opt/powershell/6/Modules"
}
Bu örnekte bir ortam değişkeninin PSModulePath yapılandırmasına katıştırılması gösterilmektedir.
HOME ortam değişkeni ve / dizin ayırıcısı kullanıldığında bu söz diziminin Windows, macOS ve Linux'ta çalıştığını unutmayın.
{
"PSModulePath": "%HOME%/Documents/PowerShell/Modules"
}
Bu örnekte yalnızca macOS ve Linux üzerinde çalışan bir ortam değişkeni kullanılır:
{
"PSModulePath": "%XDG_CONFIG_HOME%/powershell/Modules"
}
Not
PowerShell değişkenleri PSModulePath yapılandırmalarına eklenemez.
Linux ve macOS'ta PSModulePath yapılandırmaları büyük/küçük harfe duyarlıdır.
PSModulePath yapılandırması platform için geçerli dizin ayırıcıları kullanmalıdır. macOS ve Linux'ta bu, /anlamına gelir. Windows'ta hem / hem de \ çalışır.
PowerShellPolicies
PowerShellPolicies, çeşitli ayarlar için anahtar-değer çiftleri içeren bir JSON nesnesidir.
ScriptExecution Ayar dışında tüm ayarlar Windows, Linux ve macOS platformlarında kullanılabilir.
PowerShellPolicies aşağıdaki alt anahtarları içerir:
ConsoleSessionConfigurationModuleLoggingProtectedEventLoggingScriptBlockLoggingScriptExecutionTranscriptionUpdatableHelp
Windows bu ayarlar Windows Grup İlkesi tarafından yönetilebilir. Grup İlkesi ayarları önceliklidir. Bir değer Grup İlkesi tarafından ayarlanmadıysa PowerShell, JSON dosyasındaki değerleri kapsam önceliği sırasına göre uygular.
Grup İlkesi, Windows sistemlerde bu ayarları yönetmek için önerilen yoldur. Daha fazla bilgi için bkz. about_Group_Policy_Settings.
ConsoleSessionConfiguration
Bu ayar, tüm PowerShell oturumları için kullanılacak oturum yapılandırmasını belirtir. Bu, varsayılan PowerShell uzaktan iletişim uç noktaları veya belirli kullanıcı rolü özelliklerine sahip özel uç nokta dahil olmak üzere yerel makinede kayıtlı herhangi bir uç nokta olabilir.
Bu anahtar iki alt anahtar içerir:
EnableConsoleSessionConfiguration- Oturum yapılandırmalarını etkinleştirmek için değerinitrueolarak ayarlayın. Varsayılan olarak, bu değerfalse.ConsoleSessionConfigurationName- PowerShell'in çalıştırıldığı yapılandırma uç noktasının adını belirtir. Varsayılan olarak tanımlı bir oturum yoktur.
{
"ConsoleSessionConfiguration": {
"EnableConsoleSessionConfiguration": false,
"ConsoleSessionConfigurationName" : []
}
}
Daha fazla bilgi için bkz. about_Session_Configurations.
ModuleLogging
Bu ayar, PowerShell modülleri için günlüğe kaydetme davranışını denetler. Bu ayar iki alt anahtar içerir:
-
EnableModuleLogging- Modül günlüğünü etkinleştirmek için değerinitrueolarak ayarlayın. Etkinleştirildiğinde, belirtilen modüllerin üyeleri için işlem hattı yürütme olayları PowerShell günlük dosyalarına kaydedilir. -
ModuleNames- Günlüğe kaydedilmesi gereken modüllerin adını belirtir.
Örnek:
{
"ModuleLogging": {
"EnableModuleLogging": true,
"ModuleNames" : [
"PSReadLine",
"PowerShellGet"
]
}
}
ProtectedEventLogging
Bu ayar, Korumalı Olay Günlüğü'ne yapılandırmanıza olanak tanır. Bu ayar iki alt anahtar içerir:
-
EnableProtectedEventLogging- Bu ilke ayarını etkinleştirirseniz, bunu destekleyen bileşenler günlük verilerini günlüğe yazmadan önce şifrelemek için sağladığınız sertifikayı kullanır. Veriler Şifreleme İleti söz dizimi (CMS) standardı kullanılarak şifrelenir. Sertifikanın özel anahtarına erişiminiz varsa, bu şifrelenmiş iletilerin şifresini çözmek içinUnprotect-CmsMessagekullanabilirsiniz. -
EncryptionCertificate- Şifreleme için kullanılacak sertifikaların bir listesini sağlar.
Örnek:
{
"ProtectedEventLogging": {
"EnableProtectedEventLogging": false,
"EncryptionCertificate": [
"Joe"
]
}
}
ScriptBlockLogging
Bu ayar tüm PowerShell betik girişlerinin günlüğe kaydedilmesini denetler. Bu ayar iki alt anahtar içerir:
-
EnableScriptBlockLogging- Bu ilke ayarını etkinleştirirseniz PowerShell etkileşimli olarak veya otomasyon aracılığıyla çağrılsa bile komutların, betik engellemelerinin, işlevlerin ve betiklerin işlenmesini günlüğe kaydeder. -
EnableScriptBlockInvocationLogging- betik engelleme başlatma ve durdurma olaylarının günlüğe kaydedilmesini sağlar.
Örnek:
"ScriptBlockLogging": {
"EnableScriptBlockInvocationLogging": true,
"EnableScriptBlockLogging": false
}
ScriptExecution
ScriptExecution ayarı, PowerShell Yürütme İlkesi'ni ayarlamak için kullanılır.
Bu, daha önce açıklanan ayardan Microsoft.PowrShell:ExecutionPolicy önceliklidir.
Örnek:
{
"PowerShellPolicies": {
"ScriptExecution": {
"ExecutionPolicy": "RemoteSigned"
}
}
}
Not
Bu yalnızca Windows bir ayardır.
Transkripsiyon
Bu ilke ayarı, metin tabanlı transkriptlerde PowerShell komutlarının giriş ve çıkışını yakalamanızı sağlar. Bu ilke ayarını etkinleştirirseniz, PowerShell tüm PowerShell oturumları için transkripsiyonu etkinleştirir.
Bu ayar, Transkripsiyonun PowerShell'de nasıl çalıştığını denetler. Bu ayar üç alt anahtar içerir:
-
EnableTranscripting- Bu ayar etkinleştirildiğinde PowerShell, yapılandırılmış konumda transkripsiyon günlük dosyaları oluşturur. -
EnableInvocationHeader- PowerShell varsayılan olarak transkripsiyon günlük dosyasının en üstünde bir üst bilgi içerir. Bu ayarı kullanarak üst bilgiyi devre dışı bırakabilirsiniz. -
OutputDirectory- Bu ayar transkripsiyon günlük dosyalarını varsayılan konum yerine merkezi bir konumda toplamanıza olanak tanır.
Örnek:
{
"Transcription": {
"EnableTranscripting": true,
"EnableInvocationHeader": true,
"OutputDirectory": "C:\\tmp"
}
}
Daha fazla bilgi için bkz. Start-Transcript .
Güncelleştirilebilir Yardım
Bu ilke ayarı, cmdlet'inde Update-Help parametresinin varsayılan değerini ayarlamanıza olanak tanır. Bu varsayılan değer, SourcePath parametresi kullanılarak farklı bir değer belirtilerek geçersiz kılınabilir.
Örnek:
{
"UpdatableHelp": {
"DefaultSourcePath": "F:\\temp"
}
}
PowerShell