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.
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.
$ErrorActionPreference
dan 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
. GunakanGet-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
atauA
, 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 jenisMyModule\MyCommand
pengguna , PowerShell mengimpor modul MyModule .None
: Menonaktifkan impor otomatis modul. Untuk mengimpor modul, gunakanImport-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 tersebutStandard
.
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 Windows Remote Management.
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-PSSession
cmdlet , , Enter-PSSession
atau 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-Process
mendukung 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