about_PowerShell_Config
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
Dosya, powershell.config.json
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
Dosya powershell.config.json
aşağıdaki anahtarları içerebilir:
DisableImplicitWinCompat
WindowsPowerShellCompatibilityModuleDenyList
WindowsPowerShellCompatibilityNoClobberModuleList
ExperimentalFeatures
LogChannels
LogIdentity
LogKeywords
LogLevel
Microsoft.PowerShell:ExecutionPolicy
PSModulePath
PowerShellPolicies
ExecutionPolicy
ConsoleSessionConfiguration
ModuleLogging
ProtectedEventLogging
ScriptBlockLogging
ScriptExecution
Transcription
UpdatableHelp
Tüm anahtarlar tüm platformlar için geçerli değildir. Anahtar, PowerShellPolicies
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. Dosya geçersiz powershell.config.json
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ı
Dizindeki bir powershell.config.json
dosya, $PSHOME
bu PowerShell yüklemesinden çalıştırılan tüm PowerShell oturumları için yapılandırmayı tanımlar.
Not
$PSHOME
Konum, 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, komutuyla Split-Path $PROFILE.CurrentUserCurrentHost
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.
DisableImplicitWinCompat
WindowsPowerShellCompatibilityModuleDenyList
WindowsPowerShellCompatibilityNoClobberModuleList
ExecutionPolicy
PowerShellPolicies
DisableImplicitWinCompat
olarak ayarlandığında true
, 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 olarak RemoteSigned
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 dosyada powershell.config.json
da tanımlanabilir.
PowerShellPolicies
, çeşitli ilke ayarları için anahtar-değer çiftleri içeren bir JSON nesnesidir. Bu ilke ayarları, nesnenin PowerShellPolicies
dışındaki JSON dosyasının kök düzeyinde de listelenebilir. Bu ayar aşağıdaki alt anahtarları içerebilir:
ConsoleSessionConfiguration
ModuleLogging
ProtectedEventLogging
ScriptBlockLogging
ScriptExecution
Transcription
UpdatableHelp
Bu ScriptExecution
ayar, PowerShell Yürütme İlkesi'ni ayarlamak için kullanılır.
Bu, yukarıda açıklanan ayardan ExecutionPolicy
ö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. altında PowerShellPolicies
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 olmayan 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.
LogChannels
LogIdentity
LogKeywords
LogLevel
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.
ConsoleSessionConfiguration
ExperimentalFeatures
ModuleLogging
ProtectedEventLogging
PSModulePath
ScriptBlockLogging
ScriptExecution
Transcription
UpdatableHelp
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ğerini olaraktrue
ayarlayın. Varsayılan olarak, bu değer şeklindedirfalse
.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 özelliklerini 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
- oturum yapılandırmalarını etkinleştirmek için değerini olaraktrue
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 şifreli iletilerin şifresini çözmek için kullanabilirsinizUnprotect-CmsMessage
.EncryptionCertificate
- Şifreleme için kullanılacak sertifikaların bir listesini sağlar.
Örnek:
{
"ProtectedEventLogging": {
"EnableProtectedEventLogging": false,
"EncryptionCertificate": [
"Joe"
]
}
}
PSModulePath
PSModulePath
Bu PowerShell oturumu için ayarları geçersiz kılar. Yapılandırma geçerli kullanıcı içinse CurrentUser modül yolunu ayarlar. Yapılandırma tüm kullanıcılar içinse, AllUsers modül yolunu ayarlar.
Uyarı
Burada AllUsers veya CurrentUser modül yolunun yapılandırılması, Install-Module gibi 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 karakterlerin "%HOME%\Documents\PowerShell\Modules"
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 yapılandırma PSModulePath
gösterilmektedir:
{
"PSModulePath": "C:\\Program Files\\PowerShell\\6\\Modules"
}
Bu örnekte macOS veya Linux ortamı için bir PSModulePath
yapılandırma gösterilmektedir:
{
"PSModulePath": "/opt/powershell/6/Modules"
}
Bu örnekte bir ortam değişkeninin bir yapılandırmaya katıştırılması gösterilmektedir PSModulePath
. Ortam değişkenini HOME
ve dizin ayırıcısını kullanarak 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 yapılandırmalara PSModulePath
eklenemez.
PSModulePath
Linux ve macOS'ta yapılandırmalar büyük/küçük harfe duyarlıdır. Bir PSModulePath
yapılandırma, 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 /
\
iş.
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 bloklarının, işlevlerin ve betiklerin işlenmesini günlüğe kaydeder.EnableScriptBlockInvocationLogging
- Betik bloğu başlatma ve durdurma olaylarının günlüğe kaydedilmesini sağlar.
Örnek:
"ScriptBlockLogging": {
"EnableScriptBlockInvocationLogging": true,
"EnableScriptBlockLogging": false
}
Döküm
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
- Varsayılan olarak, PowerShell 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'indeki SourcePath parametresinin varsayılan değerini ayarlamanıza Update-Help
olanak tanır. SourcePath parametresi kullanılarak farklı bir değer belirtilerek bu varsayılan değer geçersiz kılınabilir.
Örnek:
{
"UpdatableHelp": {
"DefaultSourcePath": "f:\\temp"
}
}
PowerShell
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin