Bagikan melalui


about_Preference_Variables

Deskripsi singkat

Variabel yang menyesuaikan perilaku PowerShell.

Deskripsi panjang

PowerShell menyertakan sekumpulan variabel yang memungkinkan Anda menyesuaikan perilakunya. Variabel preferensi ini berfungsi seperti opsi dalam sistem berbasis GUI.

Variabel preferensi memengaruhi lingkungan operasi PowerShell dan semua perintah berjalan di lingkungan. Beberapa cmdlet memiliki parameter yang memungkinkan Anda mengambil alih perilaku preferensi untuk perintah tertentu.

Tabel berikut mencantumkan variabel preferensi dan nilai defaultnya.

Variabel Nilai Default
$ConfirmPreference High
$DebugPreference SilentlyContinue
$ErrorActionPreference Continue
$ErrorView ConciseView
$FormatEnumerationLimit 4
$InformationPreference SilentlyContinue
$LogCommandHealthEvent $false (tidak dicatat)
$LogCommandLifecycleEvent $false (tidak dicatat)
$LogEngineHealthEvent $true (dicatat)
$LogEngineLifecycleEvent $true (dicatat)
$LogProviderHealthEvent $true (dicatat)
$LogProviderLifecycleEvent $true (dicatat)
$MaximumHistoryCount 4096
$OFS Karakter spasi (" ")
$OutputEncoding Objek UTF8Encoding
$ProgressPreference Continue
$PSDefaultParameterValues @{} (tabel hash kosong)
$PSEmailServer $null (tidak ada)
$PSModuleAutoLoadingPreference All
$PSNativeCommandArgumentPassing Windows pada Windows, Standard pada Non-Windows
$PSNativeCommandUseErrorActionPreference $false
$PSSessionApplicationName 'wsman'
$PSSessionConfigurationName 'http://schemas.microsoft.com/powershell/Microsoft.PowerShell'
$PSSessionOption Objek PSSessionOption
$PSStyle Objek PSStyle
$Transcript $null (tidak ada)
$VerbosePreference SilentlyContinue
$WarningPreference Continue
$WhatIfPreference $false

PowerShell menyertakan variabel lingkungan berikut yang menyimpan preferensi pengguna. Untuk informasi selengkapnya tentang variabel lingkungan ini, lihat about_Environment_Variables.

  • $env:PSExecutionPolicyPreference
  • $env:PSModulePath

Catatan

Perubahan pada variabel preferensi hanya berlaku dalam cakupan yang dibuat dan cakupan anak apa pun. Misalnya, Anda dapat membatasi efek mengubah variabel preferensi ke satu fungsi atau skrip. Untuk informasi selengkapnya, lihat about_Scopes.

Bekerja dengan variabel preferensi

Dokumen ini menjelaskan setiap variabel preferensi.

Untuk menampilkan nilai variabel preferensi tertentu saat ini, ketik nama variabel. Misalnya, perintah berikut menampilkan $ConfirmPreference nilai variabel.

 $ConfirmPreference
High

Untuk mengubah nilai variabel, gunakan pernyataan penugasan. Misalnya, pernyataan berikut mengubah $ConfirmPreference nilai parameter menjadi Sedang.

$ConfirmPreference = "Medium"

Nilai yang Anda tetapkan khusus untuk sesi PowerShell saat ini. Untuk membuat variabel efektif di semua sesi PowerShell, tambahkan ke profil PowerShell Anda. Untuk informasi selengkapnya, lihat about_Profiles.

Bekerja dari jarak jauh

Saat Anda menjalankan perintah di komputer jarak jauh, perintah jarak jauh hanya tunduk pada preferensi yang diatur di klien PowerShell komputer jarak jauh. Misalnya, saat Anda menjalankan perintah jarak jauh, nilai variabel komputer $DebugPreference jarak jauh menentukan bagaimana PowerShell merespons pesan penelusuran kesalahan.

Untuk informasi selengkapnya tentang perintah jarak jauh, lihat about_Remote.

$ConfirmPreference

Menentukan apakah PowerShell secara otomatis meminta konfirmasi sebelum menjalankan cmdlet atau fungsi.

Variabel $ConfirmPreference mengambil salah ConfirmImpact satu nilai enumerasi: Tinggi, Sedang, Rendah, atau Tidak Ada.

Cmdlet dan fungsi diberi risiko Tinggi, Sedang, atau Rendah. Ketika nilai $ConfirmPreference variabel kurang dari atau sama dengan risiko yang ditetapkan ke cmdlet atau fungsi, PowerShell secara otomatis meminta konfirmasi sebelum menjalankan cmdlet atau fungsi. Untuk informasi selengkapnya tentang menetapkan risiko ke cmdlet atau fungsi, lihat about_Functions_CmdletBindingAttribute.

Jika nilai $ConfirmPreference variabel tidak ada, PowerShell tidak pernah secara otomatis meminta Anda sebelum menjalankan cmdlet atau fungsi.

Untuk mengubah perilaku konfirmasi untuk semua cmdlet dan fungsi dalam sesi, ubah $ConfirmPreference nilai variabel.

Untuk mengambil $ConfirmPreference alih untuk satu perintah, gunakan parameter Konfirmasi cmdlet atau fungsi. Untuk meminta konfirmasi, gunakan -Confirm. Untuk menekan konfirmasi, gunakan -Confirm:$false.

Nilai yang valid dari $ConfirmPreference:

  • Tidak ada: PowerShell tidak meminta secara otomatis. Untuk meminta konfirmasi perintah tertentu, gunakan parameter Konfirmasi cmdlet atau fungsi.
  • Rendah: PowerShell meminta konfirmasi sebelum menjalankan cmdlet atau fungsi dengan risiko rendah, sedang, atau tinggi.
  • Sedang: PowerShell meminta konfirmasi sebelum menjalankan cmdlet atau fungsi dengan risiko sedang, atau tinggi.
  • Tinggi: PowerShell meminta konfirmasi sebelum menjalankan cmdlet atau fungsi dengan risiko tinggi.

Penjelasan terperinci

PowerShell dapat secara otomatis meminta konfirmasi sebelum melakukan tindakan. Misalnya, ketika cmdlet atau fungsi secara signifikan memengaruhi sistem untuk menghapus data atau menggunakan sejumlah besar sumber daya sistem.

Remove-Item -Path C:\file.txt
Confirm
Are you sure you want to perform this action?
Performing operation "Remove File" on Target "C:\file.txt".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "Y"):

Perkiraan risiko adalah atribut cmdlet atau fungsi yang dikenal sebagai ConfirmImpact. Pengguna tidak dapat mengubahnya.

Cmdlet dan fungsi yang mungkin menimbulkan risiko bagi sistem memiliki parameter Konfirmasi yang dapat Anda gunakan untuk meminta atau menekan konfirmasi untuk satu perintah.

Sebagian besar cmdlet dan fungsi menyimpan nilai default Medium for ConfirmImpact. $ConfirmPreference diatur ke Tinggi secara default. Oleh karena itu, jarang perintah secara otomatis meminta konfirmasi saat pengguna tidak menentukan parameter Konfirmasi . Untuk memperluas konfirmasi otomatis yang meminta ke lebih banyak cmdlet dan fungsi, atur nilai $ConfirmPreference ke Sedang atau Rendah.

Contoh

Contoh ini menunjukkan efek nilai $ConfirmPreference default variabel, Tinggi. Nilai Tinggi hanya mengonfirmasi cmdlet dan fungsi berisiko tinggi. Karena sebagian besar cmdlet dan fungsi berisiko sedang, cmdlet dan fungsi tidak secara otomatis dikonfirmasi dan Remove-Item menghapus file. -Confirm Menambahkan ke perintah meminta konfirmasi kepada pengguna.

$ConfirmPreference
High
Remove-Item -Path C:\temp1.txt

Gunakan -Confirm untuk meminta konfirmasi.

Remove-Item -Path C:\temp2.txt -Confirm
Confirm
Are you sure you want to perform this action?
Performing operation "Remove File" on Target "C:\temp2.txt".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All
[?] Help (default is "Y"):

Contoh berikut menunjukkan efek mengubah nilai menjadi $ConfirmPreference Sedang. Karena sebagian besar cmdlet dan fungsi berisiko sedang, cmdlet dan fungsi secara otomatis dikonfirmasi. Untuk menekan perintah konfirmasi untuk satu perintah, gunakan parameter Konfirmasi dengan nilai $false.

$ConfirmPreference = "Medium"
Remove-Item -Path C:\temp2.txt
Confirm
Are you sure you want to perform this action?
Performing operation "Remove File" on Target "C:\temp2.txt".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All
[?] Help (default is "Y"):
Remove-Item -Path C:\temp3.txt -Confirm:$false

$DebugPreference

Menentukan bagaimana PowerShell merespons pesan debugging yang dihasilkan oleh skrip, cmdlet, atau penyedia, atau dengan Write-Debug perintah di baris perintah.

Variabel $DebugPreference mengambil salah ActionPreference satu nilai enumerasi: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend, atau Break.

Beberapa cmdlet menampilkan pesan debugging, yang biasanya merupakan pesan teknis yang dirancang untuk programmer dan profesional dukungan teknis. Secara default, pesan penelusuran kesalahan tidak ditampilkan, tetapi Anda dapat menampilkan pesan penelusuran kesalahan dengan mengubah nilai $DebugPreference.

Anda dapat menggunakan parameter umum Debug cmdlet untuk menampilkan atau menyembunyikan pesan penelusuran kesalahan untuk perintah tertentu. Untuk informasi selengkapnya, lihat about_CommonParameters.

Nilai yang valid adalah sebagai berikut:

  • Jeda - Masukkan debugger saat kesalahan terjadi atau saat pengecualian dinaikkan.
  • Berhenti: Menampilkan pesan debug dan berhenti mengeksekusi. Menulis kesalahan ke konsol.
  • Pertanyaan: Menampilkan pesan debug dan menanyakan apakah Anda ingin melanjutkan.
  • Lanjutkan: Menampilkan pesan debug dan melanjutkan eksekusi.
  • SilentlyContinue: (Default) Tidak ada efek. Pesan debug tidak ditampilkan dan eksekusi berlanjut tanpa gangguan.

Menambahkan parameter umum Debug ke perintah, saat perintah dikonfigurasi untuk menghasilkan pesan penelusuran kesalahan, mengubah nilai variabel menjadi $DebugPreference Lanjutkan.

Contoh

Contoh berikut menunjukkan efek mengubah nilai $DebugPreference saat Write-Debug perintah dimasukkan di baris perintah. Perubahan memengaruhi semua pesan penelusuran kesalahan, termasuk pesan yang dihasilkan oleh cmdlet dan skrip. Contoh menunjukkan parameter Debug , yang menampilkan atau menyembunyikan pesan penelusuran kesalahan yang terkait dengan satu perintah.

Contoh ini menunjukkan efek nilai $DebugPreference default variabel, SilentlyContinue. Secara default, Write-Debug pesan debug cmdlet tidak ditampilkan dan pemrosesan berlanjut. Saat parameter Debug digunakan, parameter akan mengambil alih preferensi untuk satu perintah. Pesan debug ditampilkan.

$DebugPreference
SilentlyContinue
Write-Debug -Message "Hello, World"
Write-Debug -Message "Hello, World" -Debug
DEBUG: Hello, World

Contoh ini memperlihatkan efek $DebugPreference dengan nilai Lanjutkan . Pesan debug ditampilkan dan perintah terus diproses.

$DebugPreference = "Continue"
Write-Debug -Message "Hello, World"
DEBUG: Hello, World

Contoh ini menggunakan parameter Debug dengan nilai $false untuk menekan pesan untuk satu perintah. Pesan debug tidak ditampilkan.

Write-Debug -Message "Hello, World" -Debug:$false

Contoh ini memperlihatkan efek $DebugPreference diatur ke nilai Hentikan . Pesan debug ditampilkan dan perintah dihentikan.

$DebugPreference = "Stop"
Write-Debug -Message "Hello, World"
DEBUG: Hello, World
Write-Debug : The running command stopped because the preference variable
 "DebugPreference" or common parameter is set to Stop: Hello, World
At line:1 char:1
+ Write-Debug -Message "Hello, World"

Contoh ini menggunakan parameter Debug dengan nilai $false untuk menekan pesan untuk satu perintah. Pesan debug tidak ditampilkan dan pemrosesan tidak dihentikan.

Write-Debug -Message "Hello, World" -Debug:$false

Contoh ini menunjukkan efek $DebugPreference diatur ke nilai Inquire . Pesan debug ditampilkan dan pengguna diminta untuk konfirmasi.

$DebugPreference = "Inquire"
Write-Debug -Message "Hello, World"
DEBUG: Hello, World

Confirm
Continue with this operation?
[Y] Yes  [A] Yes to All  [H] Halt Command  [?] Help (default is "Y"):

Contoh ini menggunakan parameter Debug dengan nilai $false untuk menekan pesan untuk satu perintah. Pesan debug tidak ditampilkan dan pemrosesan berlanjut.

Write-Debug -Message "Hello, World" -Debug:$false

$ErrorActionPreference

Menentukan bagaimana PowerShell merespons kesalahan yang tidak mengakhiri, kesalahan yang tidak menghentikan pemrosesan cmdlet. Misalnya, di baris perintah atau dalam skrip, cmdlet, atau penyedia, seperti kesalahan yang dihasilkan oleh Write-Error cmdlet.

Variabel $ErrorActionPreference mengambil salah ActionPreference satu nilai enumerasi: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend, atau Break.

Anda dapat menggunakan parameter umum ErrorAction cmdlet untuk mengambil alih preferensi untuk perintah tertentu.

Nilai yang valid adalah sebagai berikut:

  • Jeda - Masukkan debugger saat kesalahan terjadi atau saat pengecualian dinaikkan.
  • Lanjutkan: (Default) Menampilkan pesan kesalahan dan melanjutkan eksekusi.
  • Abaikan: Menekan pesan kesalahan dan terus menjalankan perintah. Nilai Abaikan ditujukan untuk penggunaan per perintah, bukan untuk digunakan sebagai preferensi tersimpan. Abaikan bukan nilai yang valid untuk $ErrorActionPreference variabel.
  • Pertanyaan: Menampilkan pesan kesalahan dan menanyakan apakah Anda ingin melanjutkan.
  • SilentlyContinue: Tidak ada efek. Pesan kesalahan tidak ditampilkan dan eksekusi berlanjut tanpa gangguan.
  • Berhenti: Menampilkan pesan kesalahan dan berhenti mengeksekusi. Selain kesalahan yang dihasilkan, nilai Stop menghasilkan objek ActionPreferenceStopException ke aliran kesalahan.
  • Tangguhkan: Secara otomatis menangguhkan pekerjaan alur kerja untuk memungkinkan penyelidikan lebih lanjut. Setelah diselidiki, alur kerja dapat dilanjutkan. Nilai Tangguhkan ditujukan untuk penggunaan per perintah, bukan untuk digunakan sebagai preferensi tersimpan. Tangguhkan bukan nilai yang valid untuk $ErrorActionPreference variabel.

$ErrorActionPreferencedan parameter ErrorAction tidak memengaruhi cara PowerShell merespons penghentian kesalahan yang menghentikan pemrosesan cmdlet. Untuk informasi selengkapnya tentang parameter umum ErrorAction , lihat about_CommonParameters.

Banyak perintah asli menulis sebagai stderr aliran alternatif untuk informasi tambahan. Perilaku ini dapat menyebabkan kebingungan saat melihat kesalahan atau informasi output tambahan dapat hilang kepada pengguna jika $ErrorActionPreference diatur ke status yang membisukan output.

Dimulai di PowerShell 7.2, rekaman kesalahan yang dialihkan dari perintah asli, seperti saat menggunakan operator pengalihan (2>&1), tidak ditulis ke $Error variabel dan variabel $ErrorActionPreference preferensi tidak memengaruhi output yang dialihkan.

PowerShell 7.3 menambahkan fitur eksperimental yang memungkinkan Anda mengontrol bagaimana pesan yang ditulis stderr ditangani.

Untuk informasi selengkapnya lihat, $PSNativeCommandUseErrorActionPreference.

Contoh

Contoh-contoh ini menunjukkan efek dari berbagai nilai $ErrorActionPreference variabel. Parameter ErrorAction digunakan untuk mengambil $ErrorActionPreference alih nilai.

Contoh ini menunjukkan $ErrorActionPreference nilai default, Lanjutkan. Kesalahan yang tidak mengakhiri dihasilkan. Pesan ditampilkan dan pemrosesan berlanjut.

# Change the ErrorActionPreference to 'Continue'
$ErrorActionPreference = 'Continue'
# Generate a non-terminating error and continue processing the script.
Write-Error -Message  'Test Error' ; Write-Host 'Hello World'
Write-Error: Test Error
Hello World

Contoh ini menunjukkan $ErrorActionPreference nilai default, Inquire. Kesalahan dihasilkan dan permintaan tindakan ditampilkan.

# Change the ErrorActionPreference to 'Inquire'
$ErrorActionPreference = 'Inquire'
Write-Error -Message 'Test Error' ; Write-Host 'Hello World'
Confirm
Test Error
[Y] Yes  [A] Yes to All  [H] Halt Command  [S] Suspend  [?] Help (default is "Y"):

Contoh ini menunjukkan set $ErrorActionPreference ke SilentlyContinue. Pesan kesalahan ditekan.

# Change the ErrorActionPreference to 'SilentlyContinue'
$ErrorActionPreference = 'SilentlyContinue'
# Generate an error message
Write-Error -Message 'Test Error' ; Write-Host 'Hello World'
# Error message is suppressed and script continues processing
Hello World

Contoh ini memperlihatkan atur $ErrorActionPreference ke Berhenti. Ini juga menunjukkan objek tambahan yang dihasilkan ke $Error variabel .

# Change the ErrorActionPreference to 'Stop'
$ErrorActionPreference = 'Stop'
# Error message is generated and script stops processing
Write-Error -Message 'Test Error' ; Write-Host 'Hello World'

# Show the ActionPreferenceStopException and the error generated
$Error[0]
$Error[1]
Write-Error: Test Error

ErrorRecord                 : Test Error
WasThrownFromThrowStatement : False
TargetSite                  : System.Collections.ObjectModel.Collection`1[System.Management.Automation.PSObject]
                              Invoke(System.Collections.IEnumerable)
StackTrace                  :    at System.Management.Automation.Runspaces.PipelineBase.Invoke(IEnumerable input)
                                 at Microsoft.PowerShell.Executor.ExecuteCommandHelper(Pipeline tempPipeline,
                              Exception& exceptionThrown, ExecutionOptions options)
Message                     : The running command stopped because the preference variable "ErrorActionPreference" or
                              common parameter is set to Stop: Test Error
Data                        : {System.Management.Automation.Interpreter.InterpretedFrameInfo}
InnerException              :
HelpLink                    :
Source                      : System.Management.Automation
HResult                     : -2146233087

Write-Error: Test Error

$ErrorView

Menentukan format tampilan pesan kesalahan di PowerShell.

Variabel $ErrorView mengambil salah ErrorView satu nilai enumerasi: NormalView, CategoryView, atau ConciseView.

Nilai yang valid adalah sebagai berikut:

  • ConciseView: (Default) Menyediakan pesan kesalahan ringkas dan tampilan refaktor untuk penyusun modul tingkat lanjut. Pada PowerShell 7.2, jika kesalahan berasal dari baris perintah atau modul skrip, output adalah pesan kesalahan baris tunggal. Jika tidak, Anda menerima pesan kesalahan multibaris yang berisi kesalahan dan penunjuk ke kesalahan yang menunjukkan tempat kesalahan terjadi di baris tersebut. Jika terminal mendukung Terminal Virtual, maka kode warna ANSI digunakan untuk memberikan aksen warna. Warna Aksen dapat diubah di $Host.PrivateData.ErrorAccentColor. Gunakan Get-Error cmdlet untuk tampilan terperinci komprehensif dari kesalahan yang sepenuhnya memenuhi syarat, termasuk pengecualian dalam.

    ConciseView ditambahkan di PowerShell 7.

  • NormalView: Tampilan terperinci yang dirancang untuk sebagian besar pengguna. Terdiri dari deskripsi kesalahan dan nama objek yang terlibat dalam kesalahan.

  • CategoryView: Tampilan terstruktur dan ringkas yang dirancang untuk lingkungan produksi. Formatnya sebagai berikut:

    {Category}: ({TargetName}:{TargetType}):[{Activity}], {Reason}

Untuk informasi selengkapnya tentang bidang di CategoryView, lihat kelas ErrorCategoryInfo .

Contoh

Contoh ini menunjukkan bagaimana kesalahan muncul saat nilai $ErrorView adalah default, ConciseView. Get-ChildItem digunakan untuk menemukan direktori yang tidak ada.

Get-ChildItem -path 'C:\NoRealDirectory'
Get-ChildItem: Can't find path 'C:\NoRealDirectory' because it doesn't exist.

Contoh ini menunjukkan bagaimana kesalahan muncul saat nilai $ErrorView adalah default, ConciseView. Script.ps1 dijalankan dan melemparkan kesalahan dari Get-Item pernyataan.

./Script.ps1
Get-Item: C:\Script.ps1
Line |
  11 | Get-Item -Path .\stuff
     | ^ Can't find path 'C:\demo\stuff' because it doesn't exist.

Contoh ini menunjukkan bagaimana kesalahan muncul saat nilai $ErrorView diubah menjadi NormalView. Get-ChildItem digunakan untuk menemukan file yang tidak ada.

Get-ChildItem -Path C:\nofile.txt
Get-ChildItem : Can't find path 'C:\nofile.txt' because it doesn't exist.
At line:1 char:1
+ Get-ChildItem -Path C:\nofile.txt

Contoh ini menunjukkan bagaimana kesalahan yang sama muncul saat nilai $ErrorView diubah menjadi CategoryView.

$ErrorView = "CategoryView"
Get-ChildItem -Path C:\nofile.txt
ObjectNotFound: (C:\nofile.txt:String) [Get-ChildItem], ItemNotFoundException

Contoh ini menunjukkan bahwa nilai $ErrorView hanya memengaruhi tampilan kesalahan. Ini tidak mengubah struktur objek kesalahan yang disimpan dalam $Error variabel otomatis. Untuk informasi tentang $Error variabel otomatis, lihat about_automatic_variables.

Perintah berikut mengambil objek ErrorRecord yang terkait dengan kesalahan terbaru dalam array kesalahan, elemen 0, dan memformat properti objek dalam daftar.

$Error[0] | Format-List -Property * -Force
PSMessageDetails      :
Exception             : System.Management.Automation.ItemNotFoundException:
                          Cannot find path 'C:\nofile.txt' because it does
                          not exist.
                        at System.Management.Automation.SessionStateInternal.
                          GetChildItems(String path, Boolean recurse, UInt32
                          depth, CmdletProviderContext context)
                        at System.Management.Automation.ChildItemCmdlet
                          ProviderIntrinsics.Get(String path, Boolean
                          recurse, UInt32 depth, CmdletProviderContext context)
                        at Microsoft.PowerShell.Commands.GetChildItemCommand.
                          ProcessRecord()
TargetObject          : C:\nofile.txt
CategoryInfo          : ObjectNotFound: (C:\nofile.txt:String) [Get-ChildItem],
                          ItemNotFoundException
FullyQualifiedErrorId : PathNotFound,
                          Microsoft.PowerShell.Commands.GetChildItemCommand
ErrorDetails          :
InvocationInfo        : System.Management.Automation.InvocationInfo
ScriptStackTrace      : at <ScriptBlock>, <No file>: line 1
PipelineIterationInfo : {0, 1}

$FormatEnumerationLimit

Menentukan berapa banyak item enumerasi yang disertakan dalam tampilan. Variabel ini tidak memengaruhi objek yang mendasar, hanya tampilan. Ketika nilai kurang dari $FormatEnumerationLimit jumlah item yang dijumlahkan, PowerShell menambahkan elipsis (...) untuk menunjukkan item yang tidak ditampilkan.

Nilai yang valid: Bilangan bulat (Int32)

Nilai default: 4

Contoh

Contoh ini menunjukkan cara menggunakan $FormatEnumerationLimit variabel untuk meningkatkan tampilan item enumerasi.

Perintah dalam contoh ini menghasilkan tabel yang mencantumkan semua layanan yang berjalan di komputer dalam dua grup: satu untuk menjalankan layanan dan satu untuk layanan yang dihentikan. Ini menggunakan Get-Service perintah untuk mendapatkan semua layanan, lalu mengirim hasil melalui alur ke Group-Object cmdlet, yang mengelompokkan hasil berdasarkan status layanan.

Hasilnya adalah tabel yang mencantumkan status di kolom Nama , dan proses di kolom Grup . Untuk mengubah label kolom, gunakan tabel hash, lihat about_Hash_Tables. Untuk informasi selengkapnya, lihat contoh dalam Format-Tabel.

Temukan nilai saat ini dari $FormatEnumerationLimit.

$FormatEnumerationLimit
4

Cantumkan semua layanan yang dikelompokkan menurut Status. Ada maksimal empat layanan yang tercantum di kolom Grup untuk setiap status karena $FormatEnumerationLimit memiliki nilai 4.

Get-Service | Group-Object -Property Status
Count  Name       Group
-----  ----       -----
60     Running    {AdtAgent, ALG, Ati HotKey Poller, AudioSrv...}
41     Stopped    {Alerter, AppMgmt, aspnet_state, ATI Smart...}

Untuk meningkatkan jumlah item yang tercantum, tingkatkan nilai $FormatEnumerationLimit menjadi 1000. Gunakan Get-Service dan Group-Object untuk menampilkan layanan.

$FormatEnumerationLimit = 1000
Get-Service | Group-Object -Property Status
Count  Name       Group
-----  ----       -----
60     Running    {AdtAgent, ALG, Ati HotKey Poller, AudioSrv, BITS, CcmExec...
41     Stopped    {Alerter, AppMgmt, aspnet_state, ATI Smart, Browser, CiSvc...

Gunakan Format-Table dengan parameter Bungkus untuk menampilkan daftar layanan.

Get-Service | Group-Object -Property Status | Format-Table -Wrap
Count  Name       Group
-----  ----       -----
60     Running    {AdtAgent, ALG, Ati HotKey Poller, AudioSrv, BITS, CcmExec,
                  Client for NFS, CryptSvc, DcomLaunch, Dhcp, dmserver,
                  Dnscache, ERSvc, Eventlog, EventSystem, FwcAgent, helpsvc,
                  HidServ, IISADMIN, InoRPC, InoRT, InoTask, lanmanserver,
                  lanmanworkstation, LmHosts, MDM, Netlogon, Netman, Nla,
                  NtLmSsp, PlugPlay, PolicyAgent, ProtectedStorage, RasMan,
                  RemoteRegistry, RpcSs, SamSs, Schedule, seclogon, SENS,
                  SharedAccess, ShellHWDetection, SMT PSVC, Spooler,
                  srservice, SSDPSRV, stisvc, TapiSrv, TermService, Themes,
                  TrkWks, UMWdf, W32Time, W3SVC, WebClient, winmgmt, wscsvc,
                  wuauserv, WZCSVC, zzInterix}

41     Stopped    {Alerter, AppMgmt, aspnet_state, ATI Smart, Browser, CiSvc,
                  ClipSrv, clr_optimization_v2.0.50727_32, COMSysApp,
                  CronService, dmadmin, FastUserSwitchingCompatibility,
                  HTTPFilter, ImapiService, Mapsvc, Messenger, mnmsrvc,
                  MSDTC, MSIServer, msvsmon80, NetDDE, NetDDEdsdm, NtmsSvc,
                  NVSvc, ose, RasAuto, RDSessMgr, RemoteAccess, RpcLocator,
                  SCardSvr, SwPrv, SysmonLog, TlntSvr, upnphost, UPS, VSS,
                  WmdmPmSN, Wmi, WmiApSrv, xmlprov}

$InformationPreference

Variabel ini $InformationPreference memungkinkan Anda mengatur preferensi aliran informasi yang ingin Anda tampilkan kepada pengguna. Secara khusus, pesan informasi yang Anda tambahkan ke perintah atau skrip dengan menambahkan cmdlet Tulis-Informasi . Jika parameter InformationAction digunakan, nilainya akan mengambil alih nilai $InformationPreference variabel. Write-Information diperkenalkan di PowerShell 5.0.

Variabel $InformationPreference mengambil salah ActionPreference satu nilai enumerasi: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend, atau Break.

Nilai yang valid adalah sebagai berikut:

  • Break - Masukkan debugger saat Anda menulis ke aliran Informasi.
  • Hentikan: Menghentikan perintah atau skrip pada kemunculan Write-Information perintah.
  • Pertanyaan: Menampilkan pesan informasi yang Anda tentukan dalam Write-Information perintah, lalu menanyakan apakah Anda ingin melanjutkan.
  • Lanjutkan: Menampilkan pesan informasi, dan terus berjalan.
  • SilentlyContinue: (Default) Tidak ada efek. Pesan informasi tidak ditampilkan, dan skrip berlanjut tanpa gangguan.

$Log*Peristiwa

Variabel preferensi Log*Event menentukan jenis peristiwa mana yang ditulis ke log peristiwa PowerShell di Pemantau Peristiwa. Secara default, hanya peristiwa mesin dan penyedia yang dicatat. Namun, Anda dapat menggunakan variabel preferensi Log*Event untuk menyesuaikan log Anda, seperti peristiwa pengelogan tentang perintah.

Variabel preferensi Log*Event adalah sebagai berikut:

  • $LogCommandHealthEvent: Mencatat kesalahan dan pengecualian dalam inisialisasi dan pemrosesan perintah. Defaultnya adalah $false (tidak dicatat).
  • $LogCommandLifecycleEvent: Mencatat awal dan penghentian perintah dan alur perintah dan pengecualian keamanan dalam penemuan perintah. Defaultnya adalah $false (tidak dicatat).
  • $LogEngineHealthEvent: Mencatat kesalahan dan kegagalan sesi. Defaultnya adalah $true (dicatat).
  • $LogEngineLifecycleEvent: Mencatat pembukaan dan penutupan sesi. Defaultnya adalah $true (dicatat).
  • $LogProviderHealthEvent: Mencatat kesalahan penyedia, seperti kesalahan baca dan tulis, kesalahan pencarian, dan kesalahan pemanggilan. Defaultnya adalah $true (dicatat).
  • $LogProviderLifecycleEvent: Log menambahkan dan menghapus penyedia PowerShell. Defaultnya adalah $true (dicatat). Untuk informasi tentang penyedia PowerShell, lihat about_Providers.

Untuk mengaktifkan Log*Event, ketik variabel dengan nilai $true, misalnya:

$LogCommandLifeCycleEvent = $true

Untuk menonaktifkan jenis peristiwa, ketik variabel dengan nilai $false, misalnya:

$LogCommandLifeCycleEvent = $false

Peristiwa yang Anda aktifkan hanya efektif untuk konsol PowerShell saat ini. Untuk menerapkan konfigurasi ke semua konsol, simpan pengaturan variabel di profil PowerShell Anda. Untuk informasi selengkapnya, lihat about_Profiles.

$MaximumHistoryCount

Menentukan berapa banyak perintah yang disimpan dalam riwayat perintah untuk sesi saat ini.

Nilai yang valid: 1 - 32768 (Int32)

Default: 4096

Untuk menentukan jumlah perintah yang saat ini disimpan dalam riwayat perintah, ketik:

(Get-History).Count

Untuk melihat perintah yang disimpan dalam riwayat sesi Anda, gunakan Get-History cmdlet . Untuk informasi selengkapnya, lihat about_History.

$OFS

Pemisah Bidang Output (OFS) menentukan karakter yang memisahkan elemen array yang dikonversi menjadi string.

Nilai yang valid: String apa pun.

Default: Spasi

Secara default, $OFS variabel tidak ada dan pemisah file output adalah spasi, tetapi Anda dapat menambahkan variabel ini dan mengaturnya ke string apa pun. Anda dapat mengubah nilai $OFS dalam sesi Anda, dengan mengetik $OFS="<value>".

Catatan

Jika Anda mengharapkan nilai default spasi (" ") dalam output skrip, modul, atau konfigurasi Anda, berhati-hatilah bahwa $OFS nilai default belum diubah di tempat lain dalam kode Anda.

Contoh

Contoh ini menunjukkan bahwa spasi digunakan untuk memisahkan nilai saat array dikonversi menjadi string. Dalam hal ini, array bilangan bulat disimpan dalam variabel dan kemudian variabel ditransmisikan sebagai string.

$array = 1,2,3,4
[string]$array
1 2 3 4

Untuk mengubah pemisah, tambahkan $OFS variabel dengan menetapkan nilai ke dalamnya. Variabel harus diberi nama $OFS.

$OFS = "+"
[string]$array
1+2+3+4

Untuk memulihkan perilaku default, Anda dapat menetapkan spasi (" ") ke nilai $OFS atau menghapus variabel. Perintah berikut menghapus variabel lalu memverifikasi bahwa pemisah adalah spasi.

Remove-Variable OFS
[string]$array
1 2 3 4

$OutputEncoding

Menentukan metode pengodean karakter yang digunakan PowerShell saat mempipa data ke dalam aplikasi asli.

Catatan

Dalam sebagian besar skenario, nilai untuk $OutputEncoding harus selaras dengan nilai [Console]::InputEncoding.

Nilai yang valid adalah sebagai berikut: Objek yang berasal dari kelas Pengodean, seperti ASCIIEncoding, UTF7Encoding, UTF8Encoding, UTF32Encoding, dan UnicodeEncoding.

Default: Objek UTF8Encoding .

Contoh

Perintah pertama menemukan nilai $OutputEncoding. Karena nilainya adalah objek pengodean, hanya tampilkan properti EncodingName-nya.

$OutputEncoding.EncodingName

Contoh yang tersisa menggunakan skrip PowerShell berikut yang disimpan sebagai hexdump.ps1 untuk mengilustrasikan perilaku $OutputEncoding.

$inputStream = [Console]::OpenStandardInput()
try {
    $buffer = [byte[]]::new(1024)
    $read = $inputStream.Read($buffer, 0, $buffer.Length)
    Format-Hex -InputObject $buffer -Count $read
} finally {
    $inputStream.Dispose()
}

Contoh berikut menunjukkan bagaimana nilai café string dikodekan ke byte saat disalurkan ke hexdump.ps1 dibuat di atas. Ini menunjukkan bahwa nilai string dikodekan menggunakan skema UTF8Encoding.

'café' | pwsh -File ./hexdump.ps1
   Label: Byte[] (System.Byte[]) <28873E25>

          Offset Bytes                                           Ascii
                 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
          ------ ----------------------------------------------- -----
0000000000000000 63 61 66 C3 A9 0D 0A                            caf�

Contoh berikut menunjukkan bagaimana byte berubah saat mengubah pengodean menjadi UnicodeEncoding.

$OutputEncoding = [System.Text.Encoding]::Unicode
'café' | pwsh -File ./hexdump.ps1
   Label: Byte[] (System.Byte[]) <515A7DC3>

          Offset Bytes                                           Ascii
                 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
          ------ ----------------------------------------------- -----
0000000000000000 FF FE 63 00 61 00 66 00 E9 00 0D 00 0A 00       ÿþc a f é � �

$ProgressPreference

Menentukan bagaimana PowerShell merespons pembaruan kemajuan yang dihasilkan oleh skrip, cmdlet, atau penyedia, seperti bilah kemajuan yang dihasilkan oleh cmdlet Write-Progress . Write-Progress Cmdlet membuat bilah kemajuan yang memperlihatkan status perintah.

Variabel $ProgressPreference mengambil salah ActionPreference satu nilai enumerasi: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend, atau Break.

Nilai yang valid adalah sebagai berikut:

  • Break - Masukkan debugger saat Anda menulis ke aliran Kemajuan.
  • Berhenti: Tidak menampilkan bilah kemajuan. Sebaliknya, ia menampilkan pesan kesalahan dan berhenti mengeksekusi.
  • Pertanyaan: Tidak menampilkan bilah kemajuan. Meminta izin untuk melanjutkan. Jika Anda membalas dengan Y atau A, maka akan menampilkan bilah kemajuan.
  • Lanjutkan: (Default) Menampilkan bilah kemajuan dan dilanjutkan dengan eksekusi.
  • SilentlyContinue: Menjalankan perintah, tetapi tidak menampilkan bilah kemajuan.

$PSDefaultParameterValues

Menentukan nilai default untuk parameter cmdlet dan fungsi tingkat lanjut. Nilai $PSDefaultParameterValues adalah tabel hash di mana kunci terdiri dari nama cmdlet dan nama parameter yang dipisahkan oleh titik dua (:). Nilai adalah nilai default kustom yang Anda tentukan.

$PSDefaultParameterValues diperkenalkan di PowerShell 3.0.

Untuk informasi selengkapnya tentang variabel preferensi ini, lihat about_Parameters_Default_Values.

$PSEmailServer

Menentukan server email default yang digunakan untuk mengirim pesan email. Variabel preferensi ini digunakan oleh cmdlet yang mengirim email, seperti cmdlet Send-MailMessage .

$PSModuleAutoloadingPreference

Mengaktifkan dan menonaktifkan impor otomatis modul dalam sesi. Variabel $PSModuleAutoloadingPreference tidak ada secara default. Perilaku default ketika variabel tidak didefinisikan sama $PSModuleAutoloadingPreference = 'All'dengan .

Untuk mengimpor modul secara otomatis, dapatkan atau gunakan perintah yang terkandung dalam modul.

Variabel $PSModuleAutoloadingPreference mengambil salah PSModuleAutoLoadingPreference satu nilai enumerasi:

  • All: Modul diimpor secara otomatis pada penggunaan pertama.
  • ModuleQualified: Modul diimpor secara otomatis hanya ketika pengguna menggunakan nama perintah yang memenuhi syarat modul dalam modul. Misalnya, jika jenis MyModule\MyCommandpengguna , PowerShell mengimpor modul MyModule .
  • None: Menonaktifkan impor otomatis modul. Untuk mengimpor modul, gunakan Import-Module cmdlet .

Untuk informasi selengkapnya tentang impor modul otomatis, lihat about_Modules.

$PSNativeCommandArgumentPassing

PowerShell 7.3 mengubah cara mengurai baris perintah untuk perintah asli. Variabel preferensi baru $PSNativeCommandArgumentPassing mengontrol perilaku ini.

Perhatian

Perilaku baru adalah perubahan yang melanggar dari perilaku sebelumnya. Ini dapat merusak skrip dan otomatisasi yang mengatasi berbagai masalah saat memanggil aplikasi asli.

Variabel $PSNativeCommandArgumentPassing otomatis memungkinkan Anda memilih perilaku saat runtime. Nilai yang valid adalah Legacy, Standard, dan Windows. Legacy adalah perilaku bersejarah.

Variabel $PSNativeCommandArgumentPassing didefinisikan secara default tetapi nilainya spesifik untuk platform.

  • Di Windows, preferensi diatur ke Windows.
  • Pada platform non-Windows, preferensi diatur ke Standard.
  • Jika Anda telah menghapus $PSNativeCommandArgumentPassing variabel, PowerShell menggunakan perilaku tersebut Standard .

Perilaku Windows mode dan Standard sama kecuali, dalam Windows mode, PowerShell menggunakan Legacy perilaku argumen yang diteruskan saat Anda menjalankan file berikut.

  • cmd.exe
  • cscript.exe
  • find.exe
  • sqlcmd.exe
  • wscript.exe
  • File yang diakhir dengan:
    • .bat
    • .cmd
    • .js
    • .vbs
    • .wsf

$PSNativeCommandArgumentPassing Jika diatur ke atau Legacy Standard, pengurai tidak memeriksa file-file ini. Untuk contoh perilaku baru, lihat about_Parsing.

PowerShell 7.3 juga menambahkan kemampuan untuk melacak pengikatan parameter untuk perintah asli. Untuk informasi selengkapnya, lihat Trace-Command.

$PSNativeCommandUseErrorActionPreference

Ketika $PSNativeCommandUseErrorActionPreference adalah $true, perintah asli dengan kesalahan masalah kode keluar bukan nol menurut $ErrorActionPreference.

Beberapa perintah asli, seperti robocopy menggunakan kode keluar bukan nol untuk mewakili informasi selain kesalahan. Dalam kasus ini, Anda dapat menonaktifkan perilaku untuk sementara waktu dan mencegah kode keluar non-nol mengeluarkan kesalahan.

& {
    # Disable $PSNativeCommandUseErrorActionPreference for this scriptblock
    $PSNativeCommandUseErrorActionPreference = $false
    robocopy.exe D:\reports\operational "\\reporting\ops" CY2022Q4.md
    if ($LASTEXITCODE -gt 8) {
        throw "robocopy failed with exit code $LASTEXITCODE"
    }
}

Dalam contoh ini, $PSNativeCommandUseErrorActionPreference variabel diubah di dalam blok skrip. Perubahan bersifat lokal pada blok skrip. Ketika blok skrip keluar, variabel kembali ke nilai sebelumnya.

$PSSessionApplicationName

Menentukan nama aplikasi default untuk perintah jarak jauh yang menggunakan teknologi Web Services for Management (WS-Management). Untuk informasi selengkapnya, lihat Tentang Manajemen Jarak Jauh Windows.

Nama aplikasi default sistem adalah WSMAN, tetapi Anda dapat menggunakan variabel preferensi ini untuk mengubah default.

Nama aplikasi adalah simpul terakhir dalam URI koneksi. Misalnya, nama aplikasi dalam sampel URI berikut adalah WSMAN.

http://Server01:8080/WSMAN

Nama aplikasi default digunakan ketika perintah jarak jauh tidak menentukan URI koneksi atau nama aplikasi.

Layanan WinRM menggunakan nama aplikasi untuk memilih pendengar untuk melayani permintaan koneksi. Nilai parameter harus cocok dengan nilai properti URLPrefix pendengar di komputer jarak jauh.

Untuk mengambil alih default sistem dan nilai variabel ini, dan memilih nama aplikasi yang berbeda untuk sesi tertentu, gunakan parameter ConnectionURI atau ApplicationName dari cmdlet New-PSSession, Enter-PSSession, atau Invoke-Command .

Variabel $PSSessionApplicationName preferensi diatur pada komputer lokal, tetapi menentukan pendengar di komputer jarak jauh. Jika nama aplikasi yang Anda tentukan tidak ada di komputer jarak jauh, perintah untuk membuat sesi gagal.

$PSSessionConfigurationName

Menentukan konfigurasi sesi default yang digunakan untuk membuat sesi baru dalam sesi saat ini.

Variabel preferensi ini diatur pada komputer lokal, tetapi menentukan konfigurasi sesi yang terletak di komputer jarak jauh.

Nilai $PSSessionConfigurationName variabel adalah URI sumber daya yang sepenuhnya memenuhi syarat.

Nilai http://schemas.microsoft.com/PowerShell/microsoft.PowerShell default menunjukkan konfigurasi sesi Microsoft.PowerShell di komputer jarak jauh.

Jika Anda hanya menentukan nama konfigurasi, URI skema berikut akan ditangguhkan sebelumnya:

http://schemas.microsoft.com/PowerShell/

Anda dapat mengambil alih default dan memilih konfigurasi sesi yang berbeda untuk sesi tertentu dengan menggunakan parameter ConfigurationName dari New-PSSessioncmdlet , , Enter-PSSessionatau Invoke-Command .

Anda dapat mengubah nilai variabel ini kapan saja. Ketika Anda melakukannya, ingatlah bahwa konfigurasi sesi yang Anda pilih harus ada di komputer jarak jauh. Jika tidak, perintah untuk membuat sesi yang menggunakan konfigurasi sesi gagal.

Variabel preferensi ini tidak menentukan konfigurasi sesi lokal mana yang digunakan ketika pengguna jarak jauh membuat sesi yang tersambung ke komputer ini. Namun, Anda dapat menggunakan izin untuk konfigurasi sesi lokal untuk menentukan pengguna mana yang dapat menggunakannya.

$PSSessionOption

Menetapkan nilai default untuk opsi pengguna tingkat lanjut dalam sesi jarak jauh. Preferensi opsi ini mengambil alih nilai default sistem untuk opsi sesi.

Variabel $PSSessionOption berisi objek PSSessionOption . Untuk informasi selengkapnya, lihat System.Management.Automation.Remoting.PSSessionOption. Setiap properti objek mewakili opsi sesi. Misalnya, properti NoCompression mengubah kompresi data selama sesi.

Secara default, $PSSessionOption variabel berisi objek PSSessionOption dengan nilai default untuk semua opsi, seperti yang ditunjukkan di bawah ini.

MaximumConnectionRedirectionCount : 5
NoCompression                     : False
NoMachineProfile                  : False
ProxyAccessType                   : None
ProxyAuthentication               : Negotiate
ProxyCredential                   :
SkipCACheck                       : False
SkipCNCheck                       : False
SkipRevocationCheck               : False
OperationTimeout                  : 00:03:00
NoEncryption                      : False
UseUTF16                          : False
IncludePortInSPN                  : False
OutputBufferingMode               : None
Culture                           :
UICulture                         :
MaximumReceivedDataSizePerCommand :
MaximumReceivedObjectSize         : 209715200
ApplicationArguments              :
OpenTimeout                       : 00:03:00
CancelTimeout                     : 00:01:00
IdleTimeout                       : -00:00:00.0010000

Untuk deskripsi opsi ini dan informasi selengkapnya, lihat New-PSSessionOption. Untuk informasi selengkapnya tentang perintah dan sesi jarak jauh, lihat about_Remote dan about_PSSessions.

Untuk mengubah nilai $PSSessionOption variabel preferensi, gunakan New-PSSessionOption cmdlet untuk membuat objek PSSessionOption dengan nilai opsi yang Anda inginkan. Simpan output dalam variabel yang disebut $PSSessionOption.

$PSSessionOption = New-PSSessionOption -NoCompression

Untuk menggunakan $PSSessionOption variabel preferensi di setiap sesi PowerShell, tambahkan New-PSSessionOption perintah yang membuat variabel ke $PSSessionOption profil PowerShell Anda. Untuk informasi selengkapnya, lihat about_Profiles.

Anda dapat mengatur opsi kustom untuk sesi jarak jauh tertentu. Opsi yang Anda tetapkan lebih diutamakan daripada default sistem dan nilai $PSSessionOption variabel preferensi.

Untuk mengatur opsi sesi kustom, gunakan New-PSSessionOption cmdlet untuk membuat objek PSSessionOption . Kemudian, gunakan objek PSSessionOption sebagai nilai parameter SessionOption dalam cmdlet yang membuat sesi, seperti New-PSSession, Enter-PSSession, dan Invoke-Command.

$PSStyle

Pada PowerShell 7.2 Anda sekarang dapat mengakses $PSStyle variabel otomatis untuk melihat dan mengubah penyajian output string ANSI. $PSStyle adalah instans kelas PSStyle . Anggota kelas ini mendefinisikan string yang berisi urutan escape ANSI yang mengontrol penyajian teks di terminal.

Anggota dasar mengembalikan string urutan escape ANSI yang dipetakan ke namanya. Nilai diatur untuk memungkinkan kustomisasi. Nama properti memudahkan Anda membuat string yang didekorasi menggunakan penyelesaian tab. Contohnya:

"$($PSStyle.Background.BrightCyan)Power$($PSStyle.Underline)$($PSStyle.Bold)Shell$($PSStyle.Reset)"

Anggota Latar Belakang dan Latar Depan juga memiliki FromRgb() metode untuk menentukan warna 24-bit.

Untuk informasi selengkapnya tentang $PSStyle, lihat about_ANSI_Terminals.

$Transcript

Digunakan oleh Start-Transcript untuk menentukan nama dan lokasi file transkrip. Jika Anda tidak menentukan nilai untuk parameter Jalur , Start-Transcript gunakan jalur dalam nilai $Transcript variabel global. Jika Anda belum membuat variabel ini, Start-Transcript simpan transkrip di lokasi berikut menggunakan nama default:

  • Pada Windows: $HOME\Documents
  • Di Linux atau macOS: $HOME

Nama file default adalah: PowerShell_transcript.<computername>.<random>.<timestamp>.txt.

$VerbosePreference

Menentukan bagaimana PowerShell merespons pesan verbose yang dihasilkan oleh skrip, cmdlet, atau penyedia, seperti pesan yang dihasilkan oleh cmdlet Write-Verbose . Pesan verbose menjelaskan tindakan yang dilakukan untuk menjalankan perintah.

Secara default, pesan verbose tidak ditampilkan, tetapi Anda dapat mengubah perilaku ini dengan mengubah nilai $VerbosePreference.

Variabel $VerbosePreference mengambil salah ActionPreference satu nilai enumerasi: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend, atau Break.

Nilai yang valid adalah sebagai berikut:

  • Break - Masukkan debugger saat Anda menulis ke aliran Verbose.
  • Berhenti: Menampilkan pesan verbose dan pesan kesalahan lalu berhenti mengeksekusi.
  • Inquire: Menampilkan pesan verbose lalu menampilkan perintah yang menanyakan apakah Anda ingin melanjutkan.
  • Lanjutkan: Menampilkan pesan verbose lalu dilanjutkan dengan eksekusi.
  • SilentlyContinue: (Default) Tidak menampilkan pesan verbose. Melanjutkan eksekusi.

Anda dapat menggunakan parameter umum Verbose dari cmdlet untuk menampilkan atau menyembunyikan pesan verbose untuk perintah tertentu. Untuk informasi selengkapnya, lihat about_CommonParameters.

Contoh

Contoh-contoh ini menunjukkan efek dari nilai $VerbosePreference yang berbeda dan parameter Verbose untuk mengambil alih nilai preferensi.

Contoh ini menunjukkan efek nilai SilentlyContinue , itulah defaultnya. Perintah menggunakan parameter Pesan , tetapi tidak menulis pesan ke konsol PowerShell.

Write-Verbose -Message "Verbose message test."

Ketika parameter Verbose digunakan, pesan ditulis.

Write-Verbose -Message "Verbose message test." -Verbose
VERBOSE: Verbose message test.

Contoh ini memperlihatkan efek nilai Lanjutkan . Variabel $VerbosePreference diatur ke Lanjutkan dan pesan ditampilkan.

$VerbosePreference = "Continue"
Write-Verbose -Message "Verbose message test."
VERBOSE: Verbose message test.

Contoh ini menggunakan parameter Verbose dengan nilai $false yang mengambil alih nilai Lanjutkan . Pesan tidak ditampilkan.

Write-Verbose -Message "Verbose message test." -Verbose:$false

Contoh ini menunjukkan efek nilai Hentikan . Variabel $VerbosePreference diatur ke Berhenti dan pesan ditampilkan. Perintah dihentikan.

$VerbosePreference = "Stop"
Write-Verbose -Message "Verbose message test."
VERBOSE: Verbose message test.
Write-Verbose : The running command stopped because the preference variable
  "VerbosePreference" or common parameter is set to Stop: Verbose message test.
At line:1 char:1
+ Write-Verbose -Message "Verbose message test."

Contoh ini menggunakan parameter Verbose dengan nilai $false yang mengambil alih nilai Stop . Pesan tidak ditampilkan.

Write-Verbose -Message "Verbose message test." -Verbose:$false

Contoh ini menunjukkan efek nilai Inquire . Variabel $VerbosePreference diatur ke Inquire. Pesan ditampilkan dan pengguna diminta untuk konfirmasi.

$VerbosePreference = "Inquire"
Write-Verbose -Message "Verbose message test."
VERBOSE: Verbose message test.

Confirm
Continue with this operation?
[Y] Yes  [A] Yes to All  [H] Halt Command  [?] Help (default is "Y"):

Contoh ini menggunakan parameter Verbose dengan nilai $false yang mengambil alih nilai Inquire . Pengguna tidak diminta dan pesan tidak ditampilkan.

Write-Verbose -Message "Verbose message test." -Verbose:$false

$WarningPreference

Menentukan bagaimana PowerShell merespons pesan peringatan yang dihasilkan oleh skrip, cmdlet, atau penyedia, seperti pesan yang dihasilkan oleh cmdlet Write-Warning .

Secara default, pesan peringatan ditampilkan dan eksekusi berlanjut, tetapi Anda dapat mengubah perilaku ini dengan mengubah nilai $WarningPreference.

Variabel $WarningPreference mengambil salah ActionPreference satu nilai enumerasi: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend, atau Break.

Nilai yang valid adalah sebagai berikut:

  • Break - Masukkan debugger saat pesan peringatan ditulis.
  • Berhenti: Menampilkan pesan peringatan dan pesan kesalahan lalu berhenti mengeksekusi.
  • Pertanyaan: Menampilkan pesan peringatan lalu meminta izin untuk melanjutkan.
  • Lanjutkan: (Default) Menampilkan pesan peringatan lalu melanjutkan eksekusi.
  • SilentlyContinue: Tidak menampilkan pesan peringatan. Melanjutkan eksekusi.

Anda dapat menggunakan parameter umum WarningAction dari cmdlet untuk menentukan bagaimana PowerShell merespons peringatan dari perintah tertentu. Untuk informasi selengkapnya, lihat about_CommonParameters.

Contoh

Contoh-contoh ini menunjukkan efek dari nilai yang berbeda dari $WarningPreference. Parameter WarningAction mengambil alih nilai preferensi.

Contoh ini menunjukkan efek nilai default, Lanjutkan.

$m = "This action can delete data."
Write-Warning -Message $m
WARNING: This action can delete data.

Contoh ini menggunakan parameter WarningAction dengan nilai SilentlyContinue untuk menekan peringatan. Pesan tidak ditampilkan.

$m = "This action can delete data."
Write-Warning -Message $m -WarningAction SilentlyContinue

Contoh ini mengubah $WarningPreference variabel ke nilai SilentlyContinue . Pesan tidak ditampilkan.

$WarningPreference = "SilentlyContinue"
$m = "This action can delete data."
Write-Warning -Message $m

Contoh ini menggunakan parameter WarningAction untuk berhenti saat peringatan dihasilkan.

$m = "This action can delete data."
Write-Warning -Message $m -WarningAction Stop
WARNING: This action can delete data.
Write-Warning : The running command stopped because the preference variable
  "WarningPreference" or common parameter is set to Stop:
    This action can delete data.
At line:1 char:1
+ Write-Warning -Message $m -WarningAction Stop

Contoh ini mengubah $WarningPreference variabel ke nilai Inquire . Pengguna diminta untuk konfirmasi.

$WarningPreference = "Inquire"
$m = "This action can delete data."
Write-Warning -Message $m
WARNING: This action can delete data.

Confirm
Continue with this operation?
[Y] Yes  [A] Yes to All  [H] Halt Command  [?] Help (default is "Y"):

Contoh ini menggunakan parameter WarningAction dengan nilai SilentlyContinue. Perintah terus dijalankan dan tidak ada pesan yang ditampilkan.

$m = "This action can delete data."
Write-Warning -Message $m -WarningAction SilentlyContinue

Contoh ini mengubah nilai menjadi $WarningPreference Berhenti.

$WarningPreference = "Stop"
$m = "This action can delete data."
Write-Warning -Message $m
WARNING: This action can delete data.
Write-Warning : The running command stopped because the preference variable
  "WarningPreference" or common parameter is set to Stop:
    This action can delete data.
At line:1 char:1
+ Write-Warning -Message $m

Contoh ini menggunakan WarningAction dengan nilai Inquire . Pengguna diminta ketika peringatan terjadi.

$m = "This action can delete data."
Write-Warning -Message $m -WarningAction Inquire
WARNING: This action can delete data.

Confirm
Continue with this operation?
[Y] Yes  [A] Yes to All  [H] Halt Command  [?] Help (default is "Y"):

$WhatIfPreference

Menentukan apakah WhatIf diaktifkan secara otomatis untuk setiap perintah yang mendukungnya. Ketika WhatIf diaktifkan, cmdlet melaporkan efek perintah yang diharapkan, tetapi tidak menjalankan perintah.

Nilai yang valid adalah sebagai berikut:

  • False (0, tidak diaktifkan): (Default) WhatIf tidak diaktifkan secara otomatis. Untuk mengaktifkannya secara manual, gunakan parameter WhatIf cmdlet.
  • True (1, diaktifkan): WhatIf secara otomatis diaktifkan pada perintah apa pun yang mendukungnya. Pengguna dapat menggunakan parameter WhatIf dengan nilai False untuk menonaktifkannya secara manual, seperti -WhatIf:$false.

Contoh

Contoh-contoh ini menunjukkan efek dari nilai yang berbeda dari $WhatIfPreference. Mereka menunjukkan cara menggunakan parameter WhatIf untuk mengambil alih nilai preferensi untuk perintah tertentu.

Contoh ini menunjukkan efek variabel yang $WhatIfPreference diatur ke nilai default, False. Gunakan Get-ChildItem untuk memverifikasi bahwa file ada. Remove-Item menghapus file. Setelah file dihapus, Anda dapat memverifikasi penghapusan dengan Get-ChildItem.

Get-ChildItem -Path .\test.txt
Remove-Item -Path ./test.txt
    Directory: C:\Test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           9/13/2019    10:53             10 test.txt
Get-ChildItem -Path .\test.txt
Get-ChildItem : Cannot find path 'C:\Test\test.txt' because it does not exist.
At line:1 char:1
+ Get-ChildItem -File test.txt

Contoh ini menunjukkan efek menggunakan parameter WhatIf saat nilainya $WhatIfPreference adalah False.

Verifikasi bahwa file ada.

Get-ChildItem -Path .\test2.txt
    Directory: C:\Test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           2/28/2019    17:06             12 test2.txt

Gunakan parameter WhatIf untuk menentukan hasil upaya menghapus file.

Remove-Item -Path .\test2.txt -WhatIf
What if: Performing the operation "Remove File" on target "C:\Test\test2.txt".

Verifikasi bahwa file tidak dihapus.

Get-ChildItem -Path .\test2.txt
    Directory: C:\Test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           2/28/2019    17:06             12 test2.txt

Contoh ini menunjukkan efek variabel yang $WhatIfPreference diatur ke nilai , True. Saat Anda menggunakan Remove-Item untuk menghapus file, jalur file ditampilkan, tetapi file tidak dihapus.

Coba hapus file. Pesan ditampilkan tentang apa yang akan terjadi jika Remove-Item dijalankan, tetapi file tidak dihapus.

$WhatIfPreference = "True"
Remove-Item -Path .\test2.txt
What if: Performing the operation "Remove File" on target "C:\Test\test2.txt".

Gunakan Get-ChildItem untuk memverifikasi bahwa file tidak dihapus.

Get-ChildItem -Path .\test2.txt
    Directory: C:\Test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           2/28/2019    17:06             12 test2.txt

Contoh ini menunjukkan cara menghapus file saat nilainya $WhatIfPreference adalah True. Ini menggunakan parameter WhatIf dengan nilai $false. Gunakan Get-ChildItem untuk memverifikasi bahwa file telah dihapus.

Remove-Item -Path .\test2.txt -WhatIf:$false
Get-ChildItem -Path .\test2.txt
Get-ChildItem : Cannot find path 'C:\Test\test2.txt' because it does not exist.
At line:1 char:1
+ Get-ChildItem -Path .\test2.txt

Berikut ini adalah contoh Get-Process cmdlet yang tidak mendukung WhatIf dan Stop-Process yang mendukung WhatIf. Nilai $WhatIfPreference variabel adalah True.

Get-Process tidak mendukung WhatIf. Ketika perintah dijalankan, perintah akan menampilkan proses Winword .

Get-Process -Name Winword
 NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
 ------    -----      -----     ------      --  -- -----------
    130   119.84     173.38       8.39   15024   4 WINWORD

Stop-Processmendukung WhatIf. Proses Winword tidak dihentikan.

Stop-Process -Name Winword
What if: Performing the operation "Stop-Process" on target "WINWORD (15024)".

Anda dapat mengambil alih Stop-Process perilaku WhatIf dengan menggunakan parameter WhatIf dengan nilai $false. Proses Winword dihentikan.

Stop-Process -Name Winword -WhatIf:$false

Untuk memverifikasi bahwa proses Winword dihentikan, gunakan Get-Process.

Get-Process -Name Winword
Get-Process : Cannot find a process with the name "Winword".
  Verify the process name and call the cmdlet again.
At line:1 char:1
+ Get-Process -Name Winword

Lihat juga