Tercih Değişkenleri Hakkında

Kısa açıklama

PowerShell'in davranışını özelleştiren değişkenler.

Uzun açıklama

PowerShell, davranışını özelleştirmenizi sağlayan bir dizi değişken içerir. Bu tercih değişkenleri GUI tabanlı sistemlerdeki seçenekler gibi çalışır.

Tercih değişkenleri PowerShell işletim ortamını etkiler ve tüm komutlar ortamda çalıştırılır. Çoğu durumda, cmdlet'ler belirli bir komutun tercih davranışını geçersiz kılmak için kullanabileceğiniz parametrelere sahiptir.

Aşağıdaki tabloda tercih değişkenleri ve varsayılan değerleri listelemektedir.

Değişken Varsayılan değer
$ConfirmPreference Yüksek
$DebugPreference SilentlyContinue
$ErrorActionPreference Devam et
$ErrorView Normal Görünüm
$FormatEnumerationLimit 4
$InformationPreference SilentlyContinue
$LogCommandHealthEvent False (günlüğe kaydedilmedi)
$LogCommandLifecycleEvent False (günlüğe kaydedilmedi)
$LogEngineHealthEvent True (günlüğe kaydedildi)
$LogEngineLifecycleEvent True (günlüğe kaydedildi)
$LogProviderLifecycleEvent True (günlüğe kaydedildi)
$LogProviderHealthEvent True (günlüğe kaydedildi)
$MaximumHistoryCount 4096
$OFS (Boşluk karakteri (" "))
$OutputEncoding UTF8Encoding nesnesi
$ProgressPreference Devam et
$PSDefaultParameterValues (Hiçbiri - boş karma tablosu)
$PSEmailServer (Yok)
$PSModuleAutoLoadingPreference Tümü
$PSSessionApplicationName Wsman
$PSSessionConfigurationName https://schemas.microsoft.com/powershell/Microsoft.PowerShell
$PSSessionOption Bkz . $PSSessionOption
$Transcript (yok)
$VerbosePreference SilentlyContinue
$WarningPreference Devam et
$WhatIfPreference Yanlış

PowerShell, kullanıcı tercihlerini depolayan aşağıdaki ortam değişkenlerini içerir. Bu ortam değişkenleri hakkında daha fazla bilgi için bkz. about_Environment_Variables.

  • env:PSExecutionPolicyPreference
  • $env:PSModulePath

Not

Tercih değişkenindeki değişiklikler yalnızca bu betiklerin veya işlevlerin tercihin kullanıldığı kapsamla aynı kapsamda tanımlanması durumunda betiklerde ve işlevlerde etkili olur. Daha fazla bilgi için bkz. about_Scopes.

Tercih değişkenleriyle çalışma

Bu belgede tercih değişkenlerinin her biri açıklanmaktadır.

Belirli bir tercih değişkeninin geçerli değerini görüntülemek için değişkenin adını yazın. Örneğin, aşağıdaki komut değişkenin $ConfirmPreference değerini görüntüler.

 $ConfirmPreference
High

Değişkenin değerini değiştirmek için atama deyimini kullanın. Örneğin, aşağıdaki deyim parametrenin $ConfirmPreference değerini Orta olarak değiştirir.

$ConfirmPreference = "Medium"

Ayarladığınız değerler geçerli PowerShell oturumuna özgü. Değişkenlerin tüm PowerShell oturumlarında etkili olmasını sağlamak için bunları PowerShell profilinize ekleyin. Daha fazla bilgi için bkz. about_Profiles.

Uzaktan çalışma

Komutları uzak bir bilgisayarda çalıştırdığınızda, uzak komutlar yalnızca uzak bilgisayarın PowerShell istemcisinde ayarlanan tercihlere tabidir. Örneğin, uzak bir komut çalıştırdığınızda, PowerShell'in $DebugPreference hata ayıklama iletilerine nasıl yanıt vereceğini uzak bilgisayarın değişkeninin değeri belirler.

Uzak komutlar hakkında daha fazla bilgi için bkz. about_Remote.

$ConfirmPreference

PowerShell'in bir cmdlet veya işlev çalıştırmadan önce sizden otomatik olarak onay isteyip istemediğinizi belirler.

Değişkenin $ConfirmPreference geçerli değerleri Yüksek, Orta veya Düşük'tir. Cmdlet'lere ve işlevlere Yüksek, Orta veya Düşük riski atanır. Değişkenin $ConfirmPreference değeri bir cmdlet'e veya işleve atanan riskten küçük veya ona eşit olduğunda, PowerShell cmdlet'i veya işlevi çalıştırmadan önce otomatik olarak sizden onay ister.

Değişkenin $ConfirmPreference değeri Yok ise, PowerShell bir cmdlet veya işlev çalıştırmadan önce hiçbir zaman otomatik olarak size sormaz.

Oturumdaki tüm cmdlet'lerin ve işlevlerin onaylama davranışını değiştirmek için değişkenin değerini değiştirin $ConfirmPreference .

Tek bir komutun $ConfirmPreference geçersiz kılmak için cmdlet'in veya işlevinin Confirm parametresini kullanın. Onay istemek için kullanın -Confirm. Onayı engellemek için kullanın -Confirm:$false.

geçerli değerleri $ConfirmPreference:

  • Hiçbiri: PowerShell otomatik olarak sormaz. Belirli bir komutun onaylanmasını istemek için cmdlet'in veya işlevin Confirm parametresini kullanın.
  • Düşük: PowerShell düşük, orta veya yüksek riskli cmdlet'leri veya işlevleri çalıştırmadan önce onay ister.
  • Orta: PowerShell, cmdlet'leri veya işlevleri orta veya yüksek riskli çalıştırmadan önce onay ister.
  • Yüksek: PowerShell, yüksek riskli cmdlet'leri veya işlevleri çalıştırmadan önce onay ister.

Ayrıntılı açıklama

PowerShell, bir eylem yapmadan önce otomatik olarak sizden onay isteyebilir. Örneğin, cmdlet veya işlev verileri silmek veya önemli miktarda sistem kaynağı kullanmak için sistemi önemli ölçüde etkilediğinde.

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"):

Riskin tahmini, cmdlet'in veya işlevin ConfirmImpact olarak bilinen bir özniteliğidir. Kullanıcılar bunu değiştiremez.

Sistem için risk oluşturabilecek cmdlet'ler ve işlevler, tek bir komut için onay istemek veya engellemek için kullanabileceğiniz confirm parametresine sahiptir.

Cmdlet'lerin ve işlevlerin çoğu Varsayılan risk değerini ( ConfirmImpact, Orta) kullandığından ve varsayılan değeri $ConfirmPreferenceYüksek olduğundan, otomatik onay nadiren gerçekleşir. Ancak değerini Orta veya Düşük olarak değiştirerek $ConfirmPreference otomatik onayı etkinleştirebilirsiniz.

Örnekler

Bu örnekte, değişkenin $ConfirmPreference varsayılan değeri Olan Yüksek'in etkisi gösterilmektedir. Yüksek değeri yalnızca yüksek riskli cmdlet'leri ve işlevleri onaylar. Cmdlet'lerin ve işlevlerin çoğu orta riskli olduğundan, bunlar otomatik olarak onaylanır ve Remove-Item dosyayı siler. Komutuna ekleme -Confirm işlemi kullanıcıdan onay ister.

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

Onay istemek için kullanın -Confirm .

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"):

Aşağıdaki örnekte değerini Orta olarak değiştirmenin etkisi gösterilmektedir$ConfirmPreference. Çoğu cmdlet ve işlev orta riskli olduğundan, bunlar otomatik olarak onaylanır. Tek bir komutun onay istemini engellemek için Confirm parametresini değeriyle $falsekullanın.

$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

PowerShell'in bir betik, cmdlet veya sağlayıcı tarafından ya da komut satırındaki bir Write-Debug komut tarafından oluşturulan hata ayıklama iletilerine nasıl yanıt vereceğini belirler.

Bazı cmdlet'ler genellikle programcılar ve teknik destek uzmanları için tasarlanmış teknik iletiler olan hata ayıklama iletilerini görüntüler. Varsayılan olarak, hata ayıklama iletileri görüntülenmez, ancak değerini $DebugPreferencedeğiştirerek hata ayıklama iletilerini görüntüleyebilirsiniz.

Belirli bir komutun hata ayıklama iletilerini görüntülemek veya gizlemek için cmdlet'in Debug ortak parametresini kullanabilirsiniz. Daha fazla bilgi için bkz. about_CommonParameters.

Geçerli değerler şunlardır:

  • Durdur: Hata ayıklama iletisini görüntüler ve yürütmeyi durdurur. Konsola bir hata yazar.
  • Sorgula: Hata ayıklama iletisini görüntüler ve devam etmek isteyip istemediğinizi sorar. Hata ayıklama ortak parametresini bir komuta eklediğinizde, komut hata ayıklama iletisi oluşturacak şekilde yapılandırıldığında değişkenin $DebugPreference değerini Sorgula olarak değiştirir.
  • Devam: Hata ayıklama iletisini görüntüler ve yürütmeye devam eder.
  • SilentlyContinue: (Varsayılan) Efekt yok. Hata ayıklama iletisi görüntülenmez ve yürütme kesintisiz devam eder.

Örnekler

Aşağıdaki örneklerde, komut satırına bir Write-Debug komut girildiğinde değerlerini $DebugPreference değiştirmenin etkisi gösterilmektedir. Değişiklik, cmdlet'ler ve betikler tarafından oluşturulan iletiler de dahil olmak üzere tüm hata ayıklama iletilerini etkiler. Örnekler, tek bir komutla ilgili hata ayıklama iletilerini görüntüleyen veya gizleyen Debug parametresini gösterir.

Bu örnekte değişkenin $DebugPreference varsayılan değeri Olan SilentlyContinue'un etkisi gösterilmektedir. Varsayılan olarak, Write-Debug cmdlet'in hata ayıklama iletisi görüntülenmez ve işleme devam eder. Debug parametresi kullanıldığında, tek bir komutun tercihini geçersiz kılar. Hata ayıklama iletisi görüntülenir.

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

Bu örnek, Continue değeriyle etkisini $DebugPreference gösterir. Hata ayıklama iletisi görüntülenir ve komut işlemeye devam eder.

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

Bu örnekte, tek bir komut için iletiyi gizlemeye yönelik değeriyle $falseDebug parametresi kullanılır. Hata ayıklama iletisi görüntülenmez.

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

Bu örnekte Stop değerine ayarlanmasının $DebugPreference etkisi gösterilmektedir. Hata ayıklama iletisi görüntülenir ve komut durdurulur.

$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"

Bu örnekte, tek bir komut için iletiyi gizlemeye yönelik değeriyle $falseDebug parametresi kullanılır. Hata ayıklama iletisi görüntülenmiyor ve işleme durdurulmuyor.

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

Bu örnekte, Sorgu değeri olarak ayarlanmasının $DebugPreference etkisi gösterilmektedir. Hata ayıklama iletisi görüntülenir ve kullanıcıdan onay istenir.

$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"):

Bu örnekte, tek bir komut için iletiyi gizlemeye yönelik değeriyle $falseDebug parametresi kullanılır. Hata ayıklama iletisi görüntülenmez ve işleme devam eder.

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

$ErrorActionPreference

PowerShell'in cmdlet işlemeyi durdurmayan sonlandırıcı olmayan bir hataya nasıl yanıt vereceğini belirler. Örneğin, komut satırında veya cmdlet tarafından oluşturulan hatalar gibi bir betik, cmdlet veya sağlayıcıda Write-Error .

Belirli bir komutun tercihini geçersiz kılmak için cmdlet'in ErrorAction ortak parametresini kullanabilirsiniz.

Geçerli değerler şunlardır:

  • Devam: (Varsayılan) Hata iletisini görüntüler ve yürütmeye devam eder.
  • Yoksay: Hata iletisini bastırır ve komutu yürütmeye devam eder. Yoksay değeri, kaydedilmiş tercih olarak kullanmak için değil, komut başına kullanım için tasarlanmıştır. Yoksay değişkeni için $ErrorActionPreference geçerli bir değer değildir.
  • Sorgula: Hata iletisini görüntüler ve devam etmek isteyip istemediğinizi sorar.
  • SilentlyContinue: Etkisi yok. Hata iletisi görüntülenmez ve yürütme kesintisiz devam eder.
  • Durdur: Hata iletisini görüntüler ve yürütmeyi durdurur. Oluşturulan hataya ek olarak , Stop değeri hata akışına bir ActionPreferenceStopException nesnesi oluşturur. akış
  • Askıya al: Daha fazla araştırma yapmak için bir iş akışı işini otomatik olarak askıya alır. Araştırmadan sonra iş akışı sürdürülebilir. Suspend değeri, kaydedilmiş tercih olarak kullanmak için değil, komut başına kullanım için tasarlanmıştır. Suspend değişkeni için $ErrorActionPreference geçerli bir değer değildir.

$ErrorActionPreference ve ErrorAction parametresi, PowerShell'in cmdlet işlemeyi durduran sonlandırma hatalarına nasıl yanıt verdiğini etkilemez. ErrorAction ortak parametresi hakkında daha fazla bilgi için bkz. about_CommonParameters.

Örnekler

Bu örnekler değişkenin farklı değerlerinin $ErrorActionPreference etkisini gösterir. ErrorAction parametresi değeri geçersiz kılmak $ErrorActionPreference için kullanılır.

Bu örnekte, Devam varsayılan değeri gösterilmektedir$ErrorActionPreference. Sonlandırılmayan bir hata oluşturulur. İleti görüntülenir ve işleme devam eder.

# 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 -Message  'Test Error' ; Write-Host 'Hello World' : Test Error
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException

Hello World

Bu örnekte Sorgula $ErrorActionPreference varsayılan değeri gösterilmektedir. Bir hata oluşturulur ve eylem istemi gösterilir.

# 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"):

Bu örnekte $ErrorActionPreferenceSilentlyContinue olarak ayarlanmıştır. Hata iletisi gizlenmiş.

# 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

Bu örnekte $ErrorActionPreferenceDurdur olarak ayarlanmıştır. Ayrıca değişkenine oluşturulan $Error ek nesneyi de gösterir.

# Change the ErrorActionPreference to 'Stop'
$ErrorActionPreference = 'Stop'
# Error message is 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 -Message 'Test Error' ; Write-Host 'Hello World' : Test Error
At line:1 char:1
+ Write-Error -Message 'Test Error' ; Write-Host 'Hello World'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException

The running command stopped because the preference variable "ErrorActionPreference"
or common parameter is set to Stop: Test Error

Write-Error -Message 'Test Error' ; Write-Host 'Hello World' : Test Error
At line:1 char:1
+ Write-Error -Message 'Test Error' ; Write-Host 'Hello World'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException

$ErrorView

PowerShell'de hata iletilerinin görüntü biçimini belirler.

Geçerli değerler şunlardır:

  • NormalView: (Varsayılan) Çoğu kullanıcı için tasarlanmış ayrıntılı bir görünüm. Hatanın açıklamasından ve hataya dahil olan nesnenin adından oluşur.

  • CategoryView: Üretim ortamları için tasarlanmış kısa ve yapılandırılmış bir görünüm. Bunun biçimi aşağıdaki gibidir:

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

CategoryView'daki alanlar hakkında daha fazla bilgi için bkz. ErrorCategoryInfo sınıfı.

Örnekler

Bu örnekte değeri varsayılan olan NormalView olduğunda $ErrorView hatanın nasıl göründüğü gösterilir. Get-ChildItem var olmayan bir dosyayı bulmak için kullanılır.

Get-ChildItem -Path C:\nofile.txt
Get-ChildItem : Cannot find path 'C:\nofile.txt' because it does not exist.
At line:1 char:1
+ Get-ChildItem -Path C:\nofile.txt

Bu örnekte, değeri CategoryView olarak değiştirildiğinde aynı hatanın $ErrorView nasıl göründüğü gösterilir.

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

Bu örnekte değerinin $ErrorView yalnızca hata görünümünü etkilediği gösterilmektedir. Otomatik değişkende $Error depolanan hata nesnesinin yapısını değiştirmez. Otomatik değişken hakkında $Error bilgi için bkz. about_automatic_variables.

Aşağıdaki komut, hata dizisi, öğe 0'daki en son hatayla ilişkili ErrorRecord nesnesini alır ve bir listedeki tüm hata nesnesinin özelliklerini biçimlendirir.

$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

Bir ekrana kaç tane numaralandırılmış öğe ekleneceğini belirler. Bu değişken temel alınan nesneleri etkilemez, yalnızca görüntüyü etkiler. değeri $FormatEnumerationLimit numaralandırılmış öğe sayısından az olduğunda, PowerShell öğelerin gösterilmediğini belirtmek için bir üç nokta (...) ekler.

Geçerli değerler: Tamsayılar (Int32)

Varsayılan değer: 4

Örnekler

Bu örnekte, numaralandırılmış öğelerin görüntülenmesini geliştirmek için değişkenin nasıl kullanılacağı $FormatEnumerationLimit gösterilmektedir.

Bu örnekteki komut, bilgisayarda çalışan tüm hizmetleri iki grupta listeleyen bir tablo oluşturur: biri hizmetleri çalıştırmak için, diğeri durdurulmuş hizmetler için. Tüm hizmetleri almak için bir Get-Service komut kullanır ve ardından sonuçları işlem hattı üzerinden cmdlet'ine Group-Object gönderir. Bu komut, sonuçları hizmet durumuna göre gruplandırmaktadır.

Sonuç, Ad sütunundaki durumu ve Grup sütunundaki işlemleri listeleyen bir tablodur. Sütun etiketlerini değiştirmek için karma tablo kullanın, bkz. about_Hash_Tables. Daha fazla bilgi için Bkz. Format-Table'daki örnekler.

geçerli değerini $FormatEnumerationLimitbulur.

$FormatEnumerationLimit
4

Durum'a göre gruplandırılmış tüm hizmetleri listeleyin. Her durum için Grup sütununda en fazla dört hizmet listelenir çünkü $FormatEnumerationLimit değeri 4'tür.

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...}

Listelenen öğe sayısını artırmak için değerini 1000'e$FormatEnumerationLimit yükseltin. Hizmetleri görüntülemek için ve Group-Object kullanınGet-Service.

$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...

Hizmet listesini görüntülemek için Wrap parametresiyle kullanınFormat-Table.

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

değişkeni, $InformationPreference kullanıcılara görüntülenmesini istediğiniz bilgi akışı tercihlerini ayarlamanıza olanak tanır. Özellikle, Write-Information cmdlet'ini ekleyerek komutlara veya betiklere eklediğiniz bilgilendirme iletileri. InformationAction parametresi kullanılırsa, değeri değişkenin $InformationPreference değerini geçersiz kılar. Write-Information PowerShell 5.0'da kullanıma sunulmuştur.

Geçerli değerler şunlardır:

  • Durdur: Komutun bir örneğinde Write-Information bir komutu veya betiği durdurur.
  • Sorgula: Komutta Write-Information belirttiğiniz bilgi iletisini görüntüler ve devam etmek isteyip istemediğinizi sorar.
  • Devam: Bilgilendirme iletisini görüntüler ve çalışmaya devam eder.
  • Askıya alma yalnızca PowerShell 6 ve sonrasında desteklenmeyen iş akışları için kullanılabilir.
  • SilentlyContinue: (Varsayılan) Efekt yok. Bilgilendirme iletileri görüntülenmez ve betik kesintisiz devam eder.

$Log*Olay

Günlük*Olay tercih değişkenleri, Olay Görüntüleyicisi PowerShell olay günlüğüne hangi olay türlerinin yazıldığına karar sağlar. Varsayılan olarak, yalnızca altyapı ve sağlayıcı olayları günlüğe kaydedilir. Ancak Günlük *Olay tercih değişkenlerini kullanarak komutlarla ilgili olayları günlüğe kaydetme gibi günlüklerinizi özelleştirebilirsiniz.

Günlük*Olay tercih değişkenleri aşağıdaki gibidir:

  • $LogCommandHealthEvent: Komut başlatma ve işlemedeki hataları ve özel durumları günlüğe kaydeder. Varsayılan değerdir $false (günlüğe kaydedilmez).
  • $LogCommandLifecycleEvent: Komut bulmada komutların ve komut işlem hatlarının ve güvenlik özel durumlarının başlatılmasını ve durdurulmasını günlüğe kaydeder. Varsayılan değerdir $false (günlüğe kaydedilmez).
  • $LogEngineHealthEvent: Oturum hatalarını ve hatalarını günlüğe kaydeder. Varsayılan değer ( $true günlüğe kaydedilir).
  • $LogEngineLifecycleEvent: Oturumların açılmasını ve kapatılmasını günlüğe kaydeder. Varsayılan değer ( $true günlüğe kaydedilir).
  • $LogProviderHealthEvent: Okuma ve yazma hataları, arama hataları ve çağırma hataları gibi sağlayıcı hatalarını günlüğe kaydeder. Varsayılan değer ( $true günlüğe kaydedilir).
  • $LogProviderLifecycleEvent: PowerShell sağlayıcılarını ekleme ve kaldırma günlükleri. Varsayılan değer ( $true günlüğe kaydedilir). PowerShell sağlayıcıları hakkında bilgi için bkz. about_Providers.

Log*Event'i etkinleştirmek için değişkenini değeriyle $trueyazın, örneğin:

$LogCommandLifeCycleEvent = $true

Bir olay türünü devre dışı bırakmak için değişkeni değeriyle $falseyazın, örneğin:

$LogCommandLifeCycleEvent = $false

Etkinleştirdiğiniz olaylar yalnızca geçerli PowerShell konsolu için geçerlidir. Yapılandırmayı tüm konsollara uygulamak için değişken ayarlarını PowerShell profilinize kaydedin. Daha fazla bilgi için bkz. about_Profiles.

$MaximumHistoryCount

Geçerli oturum için komut geçmişine kaç komutun kaydedileceğini belirler.

Geçerli değerler: 1 - 32768 (Int32)

Varsayılan: 4096

Geçerli komut geçmişine kaydedilen komutların sayısını belirlemek için şunu yazın:

(Get-History).Count

Oturum geçmişinize kaydedilen komutları görmek için cmdlet'ini Get-History kullanın. Daha fazla bilgi için bkz. about_History.

$OFS

Çıkış Alanı Ayırıcısı (OFS), dizeye dönüştürülen bir dizinin öğelerini ayıran karakteri belirtir.

Geçerli değerler: Herhangi bir dize.

Varsayılan: Boşluk

Varsayılan olarak, $OFS değişken yoktur ve çıkış dosyası ayırıcısı bir boşluk olur, ancak bu değişkeni ekleyebilir ve herhangi bir dizeye ayarlayabilirsiniz. yazarak oturumunuzda $OFS="<value>"değerini $OFS değiştirebilirsiniz.

Not

Betiğinizde, modülünüzde veya yapılandırma çıkışınızda bir alanın (" ") varsayılan değerini bekliyorsanız, varsayılan değerin $OFS kodunuzda başka bir yerde değiştirilmediğine dikkat edin.

Örnekler

Bu örnekte, bir dizi dizeye dönüştürüldüğünde değerleri ayırmak için boşluk kullanıldığı gösterilmektedir. Bu durumda, bir tamsayı dizisi bir değişkende depolanır ve ardından değişken dize olarak yayınlanır.

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

Ayırıcıyı değiştirmek için değişkene $OFS bir değer atayarak değişkeni ekleyin. Değişkenin adı $OFSolmalıdır.

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

Varsayılan davranışı geri yüklemek için değişkeninin değerine $OFS bir boşluk (" ") atayabilir veya değişkeni silebilirsiniz. Aşağıdaki komutlar değişkeni siler ve ayırıcının bir boşluk olduğunu doğrular.

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

$OutputEncoding

PowerShell'in diğer uygulamalara metin gönderirken kullandığı karakter kodlama yöntemini belirler.

Örneğin, bir uygulama PowerShell'e Unicode dizeleri döndürüyorsa, karakterleri doğru göndermek için değeri UnicodeEncoding olarak değiştirmeniz gerekebilir.

Geçerli değerler şunlardır: ASCIIEncoding, SBCSCodePageEncoding, UTF7Encoding, UTF8Encoding, UTF32Encoding ve UnicodeEncoding gibi bir Kodlama sınıfından türetilen nesneler.

Varsayılan: UTF8Encoding nesnesi (System.Text.UTF8Encoding)

Örnekler

Bu örnekte, Windows findstr.exe komutunun Çince gibi Unicode karakterleri kullanan bir dil için yerelleştirilmiş bir bilgisayarda PowerShell'de nasıl çalışacağı gösterilmektedir.

İlk komut değerini $OutputEncodingbulur. Değer bir kodlama nesnesi olduğundan yalnızca EncodingName özelliğini görüntüleyin.

$OutputEncoding.EncodingName

Bu örnekte, dosyada Test.txt bulunan iki Çince karakteri aramak için bir findstr.exe komutu kullanılır. Bu findstr.exe komutu Windows Komut İsteminde (cmd.exe) çalıştırıldığında findstr.exe metin dosyasındaki karakterleri bulur. Ancak, PowerShell'de aynı findstr.exe komutunu çalıştırdığınızda, PowerShell bunları Unicode metni yerine ASCII metninde findstr.exe gönderdiğinden karakterler bulunmaz.

findstr <Unicode-characters>

Komutun PowerShell'de çalışmasını sağlamak için değerini $OutputEncoding , Windows için seçilen yerel ayarı temel alan konsolunun OutputEncoding özelliğinin değerine ayarlayın. OutputEncoding konsolunun statik bir özelliği olduğundan, komutta iki nokta üst üste (::) kullanın.

$OutputEncoding = [console]::OutputEncoding
$OutputEncoding.EncodingName
OEM United States

Kodlama değiştikten sonra findstr.exe komutu Unicode karakterleri bulur.

findstr <Unicode-characters>
test.txt:         <Unicode-characters>

$ProgressPreference

PowerShell'in Yazma İlerlemesi cmdlet'i tarafından oluşturulan ilerleme çubukları gibi bir betik, cmdlet veya sağlayıcı tarafından oluşturulan ilerleme güncelleştirmelerine nasıl yanıt vereceğini belirler. cmdlet'i Write-Progress , bir komutun durumunu gösteren ilerleme çubukları oluşturur.

Geçerli değerler şunlardır:

  • Durdur: İlerleme çubuğunu görüntülemez. Bunun yerine, bir hata iletisi görüntüler ve yürütmeyi durdurur.
  • Sorgula: İlerleme çubuğunu görüntülemez. Devam etmek için izin ister. veya Aile Y yanıtlarsanız ilerleme çubuğu görüntülenir.
  • Devam: (Varsayılan) İlerleme çubuğunu görüntüler ve yürütmeye devam eder.
  • SilentlyContinue: Komutu yürütür, ancak ilerleme çubuğunu görüntülemez.

$PSEmailServer

E-posta iletilerini göndermek için kullanılan varsayılan e-posta sunucusunu belirtir. Bu tercih değişkeni Send-MailMessage cmdlet'i gibi e-posta gönderen cmdlet'ler tarafından kullanılır.

$PSDefaultParameterValues

Cmdlet'lerin ve gelişmiş işlevlerin parametreleri için varsayılan değerleri belirtir. değeri $PSDefaultParameterValues , anahtarın cmdlet adından ve parametre adından iki nokta (: ile ayrılmış) oluştuğu bir karma tablosudur. Değer, belirttiğiniz özel bir varsayılan değerdir.

$PSDefaultParameterValues PowerShell 3.0'da kullanıma sunulmuştur.

Bu tercih değişkeni hakkında daha fazla bilgi için bkz. about_Parameters_Default_Values.

$PSModuleAutoloadingPreference

Oturumdaki modüllerin otomatik içeri aktarılmasını etkinleştirir ve devre dışı bırakır. Tümü varsayılandır. Değişkenin değerinden bağımsız olarak, bir modülü içeri aktarmak için Import-Module kullanabilirsiniz.

Geçerli değerler:

  • Tümü: Modüller ilk kullanımda otomatik olarak içeri aktarılır. Bir modülü içeri aktarmak için modüldeki herhangi bir komutu alın veya kullanın. Örneğin, kullanın Get-Command.
  • ModuleQualified: Modüller, yalnızca kullanıcı modüldeki bir komutun modül nitelikli adını kullandığında otomatik olarak içeri aktarılır. Örneğin, kullanıcı türüne MyModule\MyCommandsahipse PowerShell MyModule modülünü içeri aktarır.
  • Hiçbiri: Oturumda modüllerin otomatik içeri aktarılması devre dışı bırakıldı. Bir modülü içeri aktarmak için cmdlet'ini Import-Module kullanın.

Modüllerin otomatik olarak içeri aktarılması hakkında daha fazla bilgi için bkz. about_Modules.

$PSSessionApplicationName

Yönetim için Web Hizmetleri (WS-Management) teknolojisini kullanan uzak komut için varsayılan uygulama adını belirtir. Daha fazla bilgi için bkz. Windows Uzaktan Yönetimi Hakkında.

Sistem varsayılan uygulama adı şeklindedir WSMAN, ancak varsayılanı değiştirmek için bu tercih değişkenini kullanabilirsiniz.

Uygulama adı, bağlantı URI'sindeki son düğümdür. Örneğin, aşağıdaki örnek URI'deki uygulama adı şeklindedir WSMAN.

http://Server01:8080/WSMAN

Uzak komut bağlantı URI'sini veya uygulama adını belirtmediğinde varsayılan uygulama adı kullanılır.

WinRM hizmeti, bağlantı isteğine hizmet vermek üzere bir dinleyici seçmek için uygulama adını kullanır. Parametrenin değeri, uzak bilgisayardaki dinleyicinin URLPrefix özelliğinin değeriyle eşleşmelidir.

Sistem varsayılanını ve bu değişkenin değerini geçersiz kılmak ve belirli bir oturum için farklı bir uygulama adı seçmek için New-PSSession, Enter-PSSession veya Invoke-Command cmdlet'lerinin ConnectionURI veya ApplicationName parametrelerini kullanın.

Tercih $PSSessionApplicationName değişkeni yerel bilgisayarda ayarlanır, ancak uzak bilgisayarda bir dinleyici belirtir. Belirttiğiniz uygulama adı uzak bilgisayarda yoksa, oturumu oluşturma komutu başarısız olur.

$PSSessionConfigurationName

Geçerli oturumda oluşturulan PSSessions için kullanılan varsayılan oturum yapılandırmasını belirtir.

Bu tercih değişkeni yerel bilgisayarda ayarlanır, ancak uzak bilgisayarda bulunan bir oturum yapılandırmasını belirtir.

değişkeninin $PSSessionConfigurationName değeri tam kaynak URI'sine sahip.

Varsayılan değer https://schemas.microsoft.com/PowerShell/microsoft.PowerShell , uzak bilgisayardaki Microsoft.PowerShell oturum yapılandırmasını gösterir.

Yalnızca bir yapılandırma adı belirtirseniz, aşağıdaki şema URI'sinin başına eklenir:

https://schemas.microsoft.com/PowerShell/

, Enter-PSSessionveya Invoke-Command cmdlet'lerinin ConfigurationName parametresini New-PSSessionkullanarak varsayılanı geçersiz kılabilir ve belirli bir oturum için farklı bir oturum yapılandırması seçebilirsiniz.

Bu değişkenin değerini istediğiniz zaman değiştirebilirsiniz. Bunu yaptığınızda, seçtiğiniz oturum yapılandırmasının uzak bilgisayarda mevcut olması gerektiğini unutmayın. Aksi takdirde, oturum yapılandırmasını kullanan bir oturum oluşturma komutu başarısız olur.

Bu tercih değişkeni, uzak kullanıcılar bu bilgisayara bağlanan bir oturum oluştururken hangi yerel oturum yapılandırmalarının kullanılacağını belirlemez. Ancak, hangi kullanıcıların bunları kullanabileceğini belirlemek için yerel oturum yapılandırmalarının izinlerini kullanabilirsiniz.

$PSSessionOption

Uzak oturumdaki gelişmiş kullanıcı seçenekleri için varsayılan değerleri belirler. Bu seçenek tercihleri, oturum seçenekleri için sistem varsayılan değerlerini geçersiz kılar.

$PSSessionOption değişkeni bir PSSessionOption nesnesi içerir. Daha fazla bilgi için bkz . System.Management.Automation.Remoting.PSSessionOption. Nesnesinin her özelliği bir oturum seçeneğini temsil eder. Örneğin, NoCompression özelliği oturum sırasında veri sıkıştırmayı açar.

Varsayılan olarak, $PSSessionOption değişken aşağıda gösterildiği gibi tüm seçenekler için varsayılan değerlere sahip bir PSSessionOption nesnesi içerir.

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

Bu seçeneklerin açıklamaları ve daha fazla bilgi için bkz. New-PSSessionOption. Uzak komutlar ve oturumlar hakkında daha fazla bilgi için bkz. about_Remote ve about_PSSessions.

Tercih değişkeninin $PSSessionOption değerini değiştirmek için cmdlet'ini New-PSSessionOption kullanarak tercih ettiğiniz seçenek değerleriyle bir PSSessionOption nesnesi oluşturun. Çıktıyı adlı $PSSessionOptionbir değişkene kaydedin.

$PSSessionOption = New-PSSessionOption -NoCompression

Tercih değişkenini $PSSessionOption her PowerShell oturumunda kullanmak için değişkeni PowerShell profilinize oluşturan $PSSessionOption bir New-PSSessionOption komut ekleyin. Daha fazla bilgi için bkz. about_Profiles.

Belirli bir uzak oturum için özel seçenekler ayarlayabilirsiniz. Ayarladığınız seçenekler, sistem varsayılanlarından ve tercih değişkeninin değerinden $PSSessionOption önceliklidir.

Özel oturum seçeneklerini ayarlamak için cmdlet'ini New-PSSessionOption kullanarak bir PSSessionOption nesnesi oluşturun. Ardından, , Enter-PSSessionve Invoke-Commandgibi New-PSSessionbir oturum oluşturan cmdlet'lerde SessionOption parametresinin değeri olarak PSSessionOption nesnesini kullanın.

$Transcript

Transkript dosyasının adını ve konumunu belirtmek için tarafından Start-Transcript kullanılır. Path parametresi için bir değer belirtmezseniz, Start-Transcript genel değişkenin $Transcript değerindeki yolu kullanır. Bu değişkeni oluşturmadıysanız, Start-Transcript dökümleri dizinde $Home\My Documents dosya olarak \PowerShell_transcript.<time-stamp>.txt depolar.

$VerbosePreference

PowerShell'in bir betik, cmdlet veya sağlayıcı tarafından oluşturulan ayrıntılı iletilere ( Örneğin, Write-Verbose cmdlet'i tarafından oluşturulan iletiler) nasıl yanıt vereceğini belirler. Ayrıntılı iletiler, bir komutu yürütmek için gerçekleştirilen eylemleri açıklar.

Varsayılan olarak ayrıntılı iletiler görüntülenmez, ancak değerini $VerbosePreferencedeğiştirerek bu davranışı değiştirebilirsiniz.

Belirli bir komutun ayrıntılı iletilerini görüntülemek veya gizlemek için bir cmdlet'in Ayrıntılı ortak parametresini kullanabilirsiniz. Daha fazla bilgi için bkz. about_CommonParameters.

Geçerli değerler şunlardır:

  • Durdur: Ayrıntılı iletiyi ve hata iletisini görüntüler ve yürütmeyi durdurur.
  • Sorgula: Ayrıntılı iletiyi görüntüler ve ardından devam etmek isteyip istemediğinizi soran bir istem görüntüler.
  • Devam: Ayrıntılı iletiyi görüntüler ve yürütmeye devam eder.
  • SilentlyContinue: (Varsayılan) Ayrıntılı iletiyi görüntülemez. Yürütmeye devam eder.

Örnekler

Bu örnekler, tercih değerini geçersiz kılmak için ve Ayrıntılı parametresinin farklı değerlerinin $VerbosePreference etkisini gösterir.

Bu örnek, varsayılan olan SilentlyContinue değerinin etkisini gösterir. Komut message parametresini kullanır, ancak PowerShell konsoluna ileti yazmaz.

Write-Verbose -Message "Verbose message test."

Verbose parametresi kullanıldığında, ileti yazılır.

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

Bu örnek , Continue değerinin etkisini gösterir. $VerbosePreference Değişken Devam olarak ayarlanır ve ileti görüntülenir.

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

Bu örnekte, Devam değerini geçersiz kılan bir değeri $false olan Verbose parametresi kullanılır. İleti görüntülenmez.

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

Bu örnekte Stop değerinin etkisi gösterilmektedir. $VerbosePreference Değişkeni Durdur olarak ayarlanır ve ileti görüntülenir. Komut durduruldu.

$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."

Bu örnekte, Stop değerini geçersiz kılan bir değeri $false olan Verbose parametresi kullanılır. İleti görüntülenmez.

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

Bu örnekte Inquire değerinin etkisi gösterilmektedir. $VerbosePreference değişkeni Inquire olarak ayarlanır. İleti görüntülenir ve kullanıcıdan onay istenir.

$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"):

Bu örnekte, Inquire değerini geçersiz kılan bir değeri $false olan Verbose parametresi kullanılır. Kullanıcıdan istenmez ve ileti görüntülenmez.

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

$WarningPreference

PowerShell'in , Yazma Uyarısı cmdlet'i tarafından oluşturulan iletiler gibi bir betik, cmdlet veya sağlayıcı tarafından oluşturulan uyarı iletilerine nasıl yanıt vereceğini belirler.

Varsayılan olarak, uyarı iletileri görüntülenir ve yürütme devam eder, ancak değerini $WarningPreferencedeğiştirerek bu davranışı değiştirebilirsiniz.

PowerShell'in belirli bir komuttan gelen uyarılara nasıl yanıt verdiğini belirlemek için cmdlet'in WarningAction ortak parametresini kullanabilirsiniz. Daha fazla bilgi için bkz. about_CommonParameters.

Geçerli değerler şunlardır:

  • Durdur: Uyarı iletisini ve hata iletisini görüntüler ve yürütmeyi durdurur.
  • Sorgula: Uyarı iletisini görüntüler ve devam etmek için izin ister.
  • Devam: (Varsayılan) Uyarı iletisini görüntüler ve yürütmeye devam eder.
  • SilentlyContinue: Uyarı iletisini görüntülemez. Yürütmeye devam eder.

Örnekler

Bu örnekler, farklı değerlerinin $WarningPreferenceetkisini gösterir. WarningAction parametresi tercih değerini geçersiz kılar.

Bu örnekte, Devam varsayılan değerinin etkisi gösterilmektedir.

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

Bu örnek, uyarıyı engellemek için SilentlyContinue değeriyle WarningAction parametresini kullanır. İleti görüntülenmez.

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

Bu örnek değişkeni SilentlyContinue değerine değiştirir$WarningPreference. İleti görüntülenmez.

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

Bu örnekte uyarı oluşturulduğunda durdurmak için WarningAction parametresi kullanılır.

$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

Bu örnek değişkenini $WarningPreferenceInquire değerine değiştirir. Kullanıcıdan onay istenir.

$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"):

Bu örnekte SilentlyContinue değeriyle WarningAction parametresi kullanılır. Komut yürütülmeye devam eder ve hiçbir ileti görüntülenmez.

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

Bu örnek değeri Durdur olarak değiştirir$WarningPreference.

$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

Bu örnekte, Inquire değeriyle WarningAction kullanılır. Bir uyarı oluştuğunda kullanıcıya sorulur.

$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

WhatIf'in onu destekleyen her komut için otomatik olarak etkinleştirilip etkinleştirilmediğini belirler. WhatIf etkinleştirildiğinde, cmdlet komutun beklenen etkisini bildirir, ancak komutu yürütmez.

Geçerli değerler şunlardır:

  • False (0, etkin değil): (Varsayılan) WhatIf otomatik olarak etkinleştirilmez. El ile etkinleştirmek için cmdlet'in WhatIf parametresini kullanın.
  • True (1, etkin): WhatIf , onu destekleyen tüm komutlarda otomatik olarak etkinleştirilir. Kullanıcılar, El ile devre dışı bırakmak için WhatIf parametresini False değeriyle kullanabilir, örneğin -WhatIf:$false.

Örnekler

Bu örnekler, farklı değerlerinin $WhatIfPreferenceetkisini gösterir. Belirli bir komutun tercih değerini geçersiz kılmak için WhatIf parametresinin nasıl kullanılacağını gösterir.

Bu örnekte, varsayılan değer olan False değerine ayarlanan değişkenin etkisi $WhatIfPreference gösterilmektedir. Dosyanın var olduğunu doğrulamak için kullanın Get-ChildItem . Remove-Item dosyayı siler. Dosya silindikten sonra silme işlemini ile Get-ChildItemdoğrulayabilirsiniz.

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

Bu örnekte değeri $WhatIfPreferenceFalse olduğunda WhatIf parametresini kullanmanın etkisi gösterilir.

Dosyanın var olduğunu doğrulayın.

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

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

Dosyayı silmeye çalışma sonucunu belirlemek için WhatIf parametresini kullanın.

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

Dosyanın silinmediğini doğrulayın.

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

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

Bu örnekte, true değerine ayarlanan değişkenin etkisi $WhatIfPreference gösterilmektedir. Bir dosyayı silmek için kullandığınızda Remove-Item , dosyanın yolu görüntülenir, ancak dosya silinmez.

Bir dosyayı silmeyi deneme. Çalıştırıldığında ne olacağı Remove-Item hakkında bir ileti görüntülenir, ancak dosya silinmez.

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

Dosyanın silinmediğini doğrulamak için kullanın Get-ChildItem .

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

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

Bu örnekte değeri $WhatIfPreferenceTrue olduğunda dosyanın nasıl silineceği gösterilmektedir. Değeri ile WhatIf parametresini $falsekullanır. Dosyanın silindiğini doğrulamak için kullanın Get-ChildItem .

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

Aşağıda, WhatIf'iGet-Process desteklemeyen ve Stop-Process WhatIf'i destekleyen cmdlet örnekleri verilmiştir. Değişkenin $WhatIfPreference değeri True'dur.

Get-ProcessWhatIf'i desteklemez. Komut yürütürken Winword işlemini görüntüler.

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-ProcessWhatIf'i destekler. Winword işlemi durdurulmuyor.

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

WhatIf parametresini Stop-Process değeriyle $falsekullanarak WhatIf davranışını geçersiz kılabilirsiniz. Winword işlemi durduruldu.

Stop-Process -Name Winword -WhatIf:$false

Winword işleminin durdurulduğunu doğrulamak için kullanınGet-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

Ayrıca bkz.

about_Automatic_Variables

about_CommonParameters

about_Environment_Variables

about_Profiles

about_Remote

about_Scopes

about_Variables