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. Daha önce bu ayarlar PowerShell için Windows Kayıt Defteri'nde depolanıyordu, ancak artık macOS ve Linux'ta yapılandırmayı etkinleştirmek için bir dosyada barındırılıyordu.
Ayarların özeti
powershell.config.json dosyası aşağıdaki anahtarları içerebilir:
DisableImplicitWinCompatWindowsPowerShellCompatibilityModuleDenyListWindowsPowerShellCompatibilityNoClobberModuleListExperimentalFeaturesLogChannelsLogIdentityLogKeywordsLogLevelMicrosoft.PowerShell:ExecutionPolicyPSModulePathPowerShellPoliciesExecutionPolicyConsoleSessionConfigurationModuleLoggingProtectedEventLoggingScriptBlockLoggingScriptExecutionTranscriptionUpdatableHelp
Tüm anahtarlar tüm platformlar için geçerli değildir.
PowerShellPolicies anahtarı, Pencere Grup İlkesi tarafından yönetilen ayarları yansıtan alt anahtarları içerir. Bu alt anahtarlar, JSON dosyasının kök düzeyinde tanımlandığında tüm platformlar için de geçerlidir.
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.
Yapılandırma kapsamı
Yapılandırma ayarları tüm kullanıcılar için veya tek tek kullanıcı düzeyinde tanımlanabilir.
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, Split-Path $PROFILE.CurrentUserCurrentHostkomutuyla platformlar arasında bulunabilir.
Kapsam önceliği
Windows'da, Windows Grup İlkesi tarafından yönetilen ayarlar yapılandırma dosyasındaki ayarlardan önceliklidir. Grup İlkesi, Windows dışı platformlarda yoktur.
Grup İlkesi'nin ardından, AllUsers düzeyinde tanımlanan ayarlar, CurrentUser düzeyi için tanımlanan ayarlardan önceliklidir.
Windows'a özgü ayarlar
Aşağıdaki ayarlar yalnızca Windows platformları için geçerlidir.
DisableImplicitWinCompatWindowsPowerShellCompatibilityModuleDenyListWindowsPowerShellCompatibilityNoClobberModuleListExecutionPolicyPowerShellPolicies
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.
ExecutionPolicy
Önemli
Bu yapılandırma yalnızca Windows platformlarında geçerlidir.
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.
PowerShellPolicies
Windows,Grup İlkesi tarafından yönetilebilen çeşitli ayarlara sahiptir. Bu ayarlar genellikle Windows kayıt defterinde depolanır. Bu ayar powershell.config.json dosyasında da tanımlanabilir.
PowerShellPolicies, çeşitli ilke ayarları için anahtar-değer çiftleri içeren bir JSON nesnesidir. Bu ilke ayarları, PowerShellPolicies nesnesinin dışındaki JSON dosyasının kök düzeyinde de listelenebilir. Bu ayar aşağıdaki alt anahtarları içerebilir:
ConsoleSessionConfigurationModuleLoggingProtectedEventLoggingScriptBlockLoggingScriptExecutionTranscriptionUpdatableHelp
ScriptExecution ayarı, PowerShell Yürütme İlkesi'ni ayarlamak için kullanılır.
Bu, yukarıda açıklanan ExecutionPolicy ayarından önceliklidir.
Örnek:
{
"PowerShellPolicies": {
"ScriptExecution": {
"ExecutionPolicy": "RemoteSigned"
}
}
}
Diğer ilke ayarlarının açıklamaları için Ortak yapılandırma ayarları bölümündeki açıklamalara bakın.
Windows'da PowerShell, kayıt defterindeki ayarları arar. Kayıt defterinde bulunan tüm ayarlar önceliklidir. Sonraki PowerShell, JSON yapılandırmasını okur.
PowerShellPoliciesaltında bulunan ve kayıt defterinde tanımlanmayan tüm ayarlar, JSON yapılandırmasının kök düzeyinde bulunan ayarlardan önceliklidir.
Daha fazla bilgi için bkz. about_Group_Policy_Settings.
Windows dışı platformlar için ayarlar
Aşağıdaki ayarlar yalnızca Linux ve macOS platformları için geçerlidir.
Aşağıdaki anahtarlar, Linux ve macOS için PowerShell günlüğünü yapılandırmak için kullanılır.
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.
ConsoleSessionConfigurationExperimentalFeaturesModuleLoggingProtectedEventLoggingPSModulePathScriptBlockLoggingScriptExecutionTranscriptionUpdatableHelp
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.
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.
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"
]
}
}
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\\6\\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.
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
}
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