Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Deskripsi singkat
File konfigurasi untuk PowerShell, mengganti konfigurasi Registri.
Deskripsi panjang
File powershell.config.json berisi pengaturan konfigurasi untuk PowerShell. PowerShell memuat konfigurasi ini saat startup. Pengaturan juga dapat dimodifikasi saat runtime. Sebelumnya, pengaturan ini disimpan di Registri Windows untuk PowerShell, tetapi sekarang terkandung dalam file untuk mengaktifkan konfigurasi di macOS dan Linux.
Ringkasan pengaturan
File powershell.config.json dapat berisi kunci berikut:
DisableImplicitWinCompatWindowsPowerShellCompatibilityModuleDenyListWindowsPowerShellCompatibilityNoClobberModuleListExperimentalFeaturesLogChannelsLogIdentityLogKeywordsLogLevelMicrosoft.PowerShell:ExecutionPolicyPSModulePathPowerShellPoliciesExecutionPolicyConsoleSessionConfigurationModuleLoggingProtectedEventLoggingScriptBlockLoggingScriptExecutionTranscriptionUpdatableHelp
Tidak semua kunci berlaku untuk semua platform. Kunci PowerShellPolicies berisi subkunjen yang mencerminkan pengaturan yang dikelola oleh Kebijakan Grup Jendela. Subkey tersebut juga berlaku untuk semua platform ketika didefinisikan pada tingkat akar file JSON.
Peringatan
Kunci yang tidak dikenali atau nilai yang tidak valid dalam file konfigurasi diabaikan. Jika file powershell.config.json berisi JSON yang tidak valid, PowerShell tidak dapat memulai sesi interaktif. Jika ini terjadi, Anda harus memperbaiki file konfigurasi.
Cakupan konfigurasi
Pengaturan konfigurasi dapat ditentukan untuk semua pengguna atau di tingkat pengguna individual.
Konfigurasi AllUsers (bersama)
File powershell.config.json di direktori $PSHOME menentukan konfigurasi untuk semua sesi PowerShell yang berjalan dari penginstalan PowerShell tersebut.
Nota
Lokasi $PSHOME didefinisikan sebagai direktori yang sama dengan rakitan System.Management.Automation.dll yang dijalankan. Ini berlaku untuk instans PowerShell SDK yang dihosting juga.
Konfigurasi CurrentUser (per pengguna)
Anda juga dapat mengonfigurasi PowerShell berdasarkan per pengguna dengan menempatkan file di direktori konfigurasi cakupan pengguna. Direktori konfigurasi pengguna dapat ditemukan di seluruh platform dengan perintah Split-Path $PROFILE.CurrentUserCurrentHost.
Prioritas cakupan
Pada Windows, pengaturan yang dikelola oleh Kebijakan Grup Windows lebih diutamakan daripada pengaturan dalam file konfigurasi. Kebijakan Grup tidak ada di platform non-Windows.
Setelah Kebijakan Grup, pengaturan yang ditentukan pada tingkat AllUsers lebih diutamakan daripada pengaturan yang ditentukan untuk tingkat CurrentUser.
Pengaturan khusus Windows
Pengaturan berikut ini hanya berlaku untuk platform Windows.
DisableImplicitWinCompatWindowsPowerShellCompatibilityModuleDenyListWindowsPowerShellCompatibilityNoClobberModuleListExecutionPolicyPowerShellPolicies
DisableImplicitWinCompat
Saat diatur ke true, pengaturan ini menonaktifkan fitur Kompatibilitas Windows PowerShell. Kompatibilitas Windows PowerShell memungkinkan PowerShell 7 memuat modul Windows PowerShell 5.1 dalam mode kompatibilitas.
Untuk informasi selengkapnya, lihat about_Windows_PowerShell_Compatibility.
WindowsPowerShellCompatibilityModuleDenyList
Pengaturan ini adalah array nama modul yang ingin Anda kecualikan dari partisipasi dalam fitur Kompatibilitas Windows PowerShell.
Untuk informasi selengkapnya, lihat about_Windows_PowerShell_Compatibility.
WindowsPowerShellCompatibilityNoClobberModuleList
Pengaturan ini adalah array nama modul yang tidak boleh disumbat dengan memuat modul versi Windows PowerShell 5.1.
Untuk informasi selengkapnya, lihat about_Windows_PowerShell_Compatibility.
ExecutionPolicy
Penting
Konfigurasi ini hanya berlaku pada platform Windows.
Mengonfigurasi kebijakan eksekusi untuk sesi PowerShell, menentukan skrip apa yang dapat dijalankan. Secara default, PowerShell menggunakan kebijakan eksekusi yang ada.
Untuk konfigurasi AllUsers, ini menetapkan kebijakan eksekusi LocalMachine. Untuk konfigurasi CurrentUser, ini menetapkan kebijakan eksekusi CurrentUser.
Contoh berikut menetapkan kebijakan eksekusi PowerShell ke RemoteSigned.
{
"Microsoft.PowerShell:ExecutionPolicy": "RemoteSigned"
}
Untuk informasi selengkapnya, lihat about_Execution_Policies.
PowerShellPolicies
Windows memiliki beberapa pengaturan yang dapat dikelola oleh Kebijakan Grup. Biasanya, pengaturan tersebut disimpan di registri Windows. Pengaturan tersebut juga dapat didefinisikan dalam file powershell.config.json.
PowerShellPolicies adalah objek JSON yang berisi pasangan kunci-nilai untuk berbagai pengaturan kebijakan. Pengaturan kebijakan tersebut juga dapat dicantumkan di tingkat akar file JSON, di luar objek PowerShellPolicies. Pengaturan ini dapat berisi subkunjuk berikut:
ConsoleSessionConfigurationModuleLoggingProtectedEventLoggingScriptBlockLoggingScriptExecutionTranscriptionUpdatableHelp
Pengaturan ScriptExecution digunakan untuk mengatur Kebijakan Eksekusi PowerShell.
Ini lebih diutamakan daripada pengaturan ExecutionPolicy yang dijelaskan di atas.
Contoh:
{
"PowerShellPolicies": {
"ScriptExecution": {
"ExecutionPolicy": "RemoteSigned"
}
}
}
Untuk deskripsi pengaturan kebijakan lainnya, lihat deskripsi di bagian Pengaturan konfigurasi umum.
Di Windows, PowerShell mencari pengaturan di registri. Pengaturan apa pun yang ditemukan dalam registri memiliki prioritas. PowerShell berikutnya membaca konfigurasi JSON. Pengaturan apa pun yang ditemukan di bawah PowerShellPolicies, dan tidak ditentukan dalam registri, lebih diutamakan daripada pengaturan yang ditemukan di tingkat akar konfigurasi JSON.
Untuk informasi selengkapnya, lihat about_Group_Policy_Settings.
Pengaturan untuk platform non-Windows
Pengaturan berikut hanya berlaku untuk platform Linux dan macOS.
Kunci berikut digunakan untuk mengonfigurasi pengelogan PowerShell untuk Linux dan macOS.
LogChannelsLogIdentityLogKeywordsLogLevel
Untuk deskripsi lengkap tentang pengelogan PowerShell untuk sistem non-Windows, lihat about_Logging_Non-Windows.
Pengaturan konfigurasi umum
Pengaturan berikut tersedia di semua platform yang didukung.
ConsoleSessionConfigurationExperimentalFeaturesModuleLoggingProtectedEventLoggingPSModulePathScriptBlockLoggingScriptExecutionTranscriptionUpdatableHelp
ConsoleSessionConfiguration
Pengaturan ini menentukan konfigurasi sesi yang akan digunakan untuk semua sesi PowerShell. Ini bisa menjadi titik akhir apa pun yang terdaftar di komputer lokal termasuk titik akhir jarak jauh PowerShell default atau titik akhir kustom yang memiliki kemampuan peran pengguna tertentu.
Kunci ini berisi dua subkunjuk:
EnableConsoleSessionConfiguration- untuk mengaktifkan konfigurasi sesi, atur nilai ketrue. Secara default, nilai inifalse.ConsoleSessionConfigurationName- Menentukan nama titik akhir konfigurasi tempat PowerShell dijalankan. Secara default, tidak ada sesi yang ditentukan.
{
"ConsoleSessionConfiguration": {
"EnableConsoleSessionConfiguration": false,
"ConsoleSessionConfigurationName" : []
}
}
Untuk informasi selengkapnya, lihat about_Session_Configurations.
ExperimentalFeatures
Nama fitur eksperimental untuk diaktifkan di PowerShell. Nilai defaultnya adalah array kosong.
Contoh berikut memungkinkan PSCommandNotFoundSuggestion dan PSSubsystemPluginModel fitur eksperimental saat PowerShell dimulai.
Contoh:
{
"ExperimentalFeatures": [
"PSCommandNotFoundSuggestion",
"PSSubsystemPluginModel"
]
}
Untuk informasi selengkapnya tentang fitur eksperimental, lihat Menggunakan fitur eksperimental.
ModuleLogging
Pengaturan ini mengontrol perilaku pengelogan untuk modul PowerShell. Pengaturan berisi dua subkunjuk:
-
EnableModuleLogging- untuk mengaktifkan pengelogan modul, atur nilai ketrue. Saat diaktifkan, peristiwa eksekusi alur untuk anggota modul yang ditentukan direkam dalam file log PowerShell. -
ModuleNames- Menentukan nama modul yang harus dicatat.
Contoh:
{
"ModuleLogging": {
"EnableModuleLogging": true,
"ModuleNames" : [
"PSReadLine",
"PowerShellGet"
]
}
}
ProtectedEventLogging
Pengaturan ini memungkinkan Anda mengonfigurasi Pembuatan Log Peristiwa Terproteksi. Pengaturan berisi dua subkunjuk:
-
EnableProtectedEventLogging- Jika Anda mengaktifkan pengaturan kebijakan ini, komponen yang mendukungnya menggunakan sertifikat yang Anda berikan untuk mengenkripsi data log sebelum menulisnya ke log. Data dienkripsi menggunakan standar Sintaks Pesan Kriptografi (CMS). Anda dapat menggunakanUnprotect-CmsMessageuntuk mendekripsi pesan terenkripsi ini, jika Anda memiliki akses ke kunci privat sertifikat. -
EncryptionCertificate- Menyediakan daftar nama sertifikat yang akan digunakan untuk enkripsi.
Contoh:
{
"ProtectedEventLogging": {
"EnableProtectedEventLogging": false,
"EncryptionCertificate": [
"Joe"
]
}
}
PSModulePath
Mengambil alih pengaturan PSModulePath untuk sesi PowerShell ini. Jika konfigurasi untuk pengguna saat ini, atur jalur modul CurrentUser. Jika konfigurasi untuk semua pengguna, atur jalur modul AllUsers.
Peringatan
Mengonfigurasi AllUsers atau jalur modul CurrentUser di sini tidak mengubah lokasi penginstalan terlingkup untuk cmdlet PowerShellGet seperti Install-Module. Cmdlet ini selalu menggunakan jalur modul default.
Jika tidak ada nilai yang diatur, PowerShell menggunakan nilai default untuk pengaturan jalur modul masing-masing. Untuk informasi selengkapnya tentang default ini, lihat about_PSModulePath.
Pengaturan ini memungkinkan variabel lingkungan digunakan dengan menyematkannya di antara karakter %, seperti "%HOME%\Documents\PowerShell\Modules", dengan cara yang sama seperti yang diizinkan Windows Command Shell. Sintaks ini juga berlaku di Linux dan macOS. Lihat di bawah ini untuk contohnya.
Contoh ini menunjukkan konfigurasi PSModulePath untuk lingkungan Windows:
{
"PSModulePath": "C:\\Program Files\\PowerShell\\6\\Modules"
}
Contoh ini menunjukkan konfigurasi PSModulePath untuk lingkungan macOS atau Linux:
{
"PSModulePath": "/opt/powershell/6/Modules"
}
Contoh ini menunjukkan penyematan variabel lingkungan dalam konfigurasi PSModulePath. Perhatikan bahwa menggunakan variabel lingkungan HOME dan pemisah direktori /, sintaks ini berfungsi pada Windows, macOS, dan Linux.
{
"PSModulePath": "%HOME%/Documents/PowerShell/Modules"
}
Contoh ini menggunakan variabel lingkungan yang hanya berfungsi di macOS dan Linux:
{
"PSModulePath": "%XDG_CONFIG_HOME%/powershell/Modules"
}
Nota
Variabel PowerShell tidak dapat disematkan dalam konfigurasi PSModulePath.
PSModulePath konfigurasi di Linux dan macOS peka huruf besar/kecil. Konfigurasi PSModulePath harus menggunakan pemisah direktori yang valid untuk platform. Di macOS dan Linux, ini berarti /. Di Windows, / dan \ berfungsi.
ScriptBlockLogging
Pengaturan ini mengontrol pengelogan semua input skrip PowerShell. Pengaturan ini berisi dua subkunjuk:
-
EnableScriptBlockLogging- Jika Anda mengaktifkan pengaturan kebijakan ini, PowerShell mencatat pemrosesan perintah, blok skrip, fungsi, dan skrip baik yang dipanggil secara interaktif, atau melalui otomatisasi. -
EnableScriptBlockInvocationLogging- memungkinkan pengelogan scriptblock memulai dan menghentikan peristiwa.
Contoh:
"ScriptBlockLogging": {
"EnableScriptBlockInvocationLogging": true,
"EnableScriptBlockLogging": false
}
Transkripsi
Pengaturan kebijakan ini memungkinkan Anda mengambil input dan output perintah PowerShell dalam transkrip berbasis teks. Jika Anda mengaktifkan pengaturan kebijakan ini, PowerShell mengaktifkan transkripsi untuk semua sesi PowerShell.
Pengaturan ini mengontrol cara kerja transkripsi di PowerShell. Pengaturan ini berisi tiga subkunjuk:
-
EnableTranscripting- Saat pengaturan ini diaktifkan, PowerShell membuat file log transkripsi di lokasi yang dikonfigurasi. -
EnableInvocationHeader- Secara default, PowerShell menyertakan header di bagian atas file log transkripsi. Anda dapat menonaktifkan header menggunakan pengaturan ini. -
OutputDirectory- Pengaturan ini memungkinkan Anda mengumpulkan file log transkripsi di lokasi pusat alih-alih lokasi default.
Contoh:
{
"Transcription": {
"EnableTranscripting": true,
"EnableInvocationHeader": true,
"OutputDirectory": "C:\\tmp"
}
}
Untuk informasi selengkapnya, lihat Start-Transcript .
UpdatableHelp
Pengaturan kebijakan ini memungkinkan Anda mengatur nilai default parameter SourcePath pada cmdlet Update-Help. Nilai default ini dapat diganti dengan menentukan nilai yang berbeda menggunakan parameter SourcePath.
Contoh:
{
"UpdatableHelp": {
"DefaultSourcePath": "F:\\temp"
}
}