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.CurrentUserCurrentHostplatformlar 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 RemoteSignedayarlar.

{
  "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 PowerShellPoliciesbulunan 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 olarak trueayarlayın. Varsayılan olarak, bu değer şeklindedir false.

  • 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 olarak trueayarlayı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 kullanabilirsiniz Unprotect-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"
    }
}