about_Preference_Variables

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ışır. Bazı cmdlet'ler, belirli bir komut için tercih davranışını geçersiz kılmanıza olanak sağlayan parametrelere sahiptir.

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

Değişken Varsayılan değer
$ConfirmPreference High
$DebugPreference SilentlyContinue
$ErrorActionPreference Continue
$ErrorView ConciseView
$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)
$LogProviderHealthEvent $true (günlüğe kaydedildi)
$LogProviderLifecycleEvent $true (günlüğe kaydedildi)
$MaximumHistoryCount 4096
$OFS Boşluk karakteri (" ")
$OutputEncoding UTF8Encoding Nesne
$ProgressPreference Continue
$PSDefaultParameterValues @{} (boş karma tablo)
$PSEmailServer $null (yok)
$PSModuleAutoLoadingPreference All
$PSNativeCommandArgumentPassing Windows Windows'ta, Standard Windows Dışı'nda
$PSNativeCommandUseErrorActionPreference $false
$PSSessionApplicationName 'wsman'
$PSSessionConfigurationName 'http://schemas.microsoft.com/powershell/Microsoft.PowerShell'
$PSSessionOption PSSessionOption Nesne
$PSStyle PSStyle Nesne
$Transcript $null (yok)
$VerbosePreference SilentlyContinue
$WarningPreference Continue
$WhatIfPreference $false

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 betikler veya işlevler tercihin kullanıldığı kapsamla aynı kapsamda tanımlanıyorsa 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

Bir 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

Uzak bir bilgisayarda komut ç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, uzak bilgisayarın değişkeninin değeri PowerShell'in $DebugPreference hata ayıklama iletilerine nasıl yanıt vereceğini 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şkeni $ConfirmPreference sabit listesi değerlerinden birini ConfirmImpact alır: Yüksek, Orta, Düşük veya Yok.

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 buna 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'i veya işlevi ç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'ini 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:

  • Yok: 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, orta veya yüksek riskli cmdlet'leri veya işlevleri ç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 gerçekleştirmeden ö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, confirmImpact olarak bilinen cmdlet'in veya işlevin ö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 bir Confirm parametresine sahiptir.

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

Örnekler

Bu örnekte değişkenin varsayılan değeri olan $ConfirmPreference 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 eklemek -Confirm , 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 betik, cmdlet veya sağlayıcı tarafından veya komut satırındaki bir Write-Debug komutla oluşturulan hata ayıklama iletilerine nasıl yanıt vereceğini belirler.

değişkeni $DebugPreference numaralandırma değerlerinden ActionPreference birini alır: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend veya Break.

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 bir cmdlet'in Yaygın hata ayıklama parametresini kullanabilirsiniz. Daha fazla bilgi için bkz . about_CommonParameters.

Geçerli değerler şunlardır:

  • Break - Hata oluştuğunda veya özel durum oluştuğunda hata ayıklayıcıyı girin.
  • 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.
  • 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.

Hata ayıklama ortak parametresini bir komuta eklerken, komut hata ayıklama iletisi oluşturmak üzere yapılandırıldığında değişkenin $DebugPreference değerini Devam olarak değiştirir.

Örnekler

Aşağıdaki örneklerde $DebugPreference , komut satırına bir Write-Debug komut girildiğinde değerlerini 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. Örneklerde, tek bir komutla ilgili hata ayıklama iletilerini görüntüleyen veya gizleyen Debug parametresi gösterilir.

Bu örnek, değişkenin $DebugPreference varsayılan değeri olan SilentlyContinue'un etkisini gösterir. 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 komut için tercihi 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 iletinin gizlenmesinde değeri $false olan Debug parametresi kullanılır. Hata ayıklama iletisi görüntülenmez.

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

Bu örnek, Stop değerine ayarlanmasının $DebugPreferenceetkisini gösterir. 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 iletinin gizlenmesinde değeri $false olan Debug parametresi kullanılır. Hata ayıklama iletisi görüntülenmez ve işleme durdurulmuyor.

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

Bu örnekte Inquire değerine 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 iletinin gizlenmesinde değeri $false olan Debug 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 bir hata olan 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 .

değişkeni $ErrorActionPreference numaralandırma değerlerinden ActionPreference birini alır: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend veya Break.

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

Geçerli değerler şunlardır:

  • Break - Hata oluştuğunda veya özel durum oluştuğunda hata ayıklayıcıyı girin.
  • Devam: (Varsayılan) Hata iletisini görüntüler ve yürütmeye devam eder.
  • Yoksay: Hata iletisini gizler ve komutu yürütmeye devam eder. Yoksay değeri, kaydedilmiş tercih olarak kullanmak için değil, komut başına kullanıma yöneliktir. 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: Hiçbir etkisi yoktur. 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.
  • Askıya Alma: Daha fazla araştırma 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 kullanım için değil, komut başına kullanıma yöneliktir. Askıya alma , değişken için $ErrorActionPreference geçerli bir değer değildir.

$ErrorActionPreferenceve ErrorAction parametresi, PowerShell'in cmdlet işlemeyi durduran sonlandırıcı hatalara nasıl yanıt verdiğini etkilemez. ErrorAction ortak parametresi hakkında daha fazla bilgi için bkz. about_CommonParameters.

Birçok yerel komut, ek bilgi için alternatif akış olarak öğesine yazar stderr . Bu davranış, hatalara bakarken karışıklığa neden olabilir veya çıkışın sesini kapatan bir duruma ayarlanırsa $ErrorActionPreference ek çıkış bilgileri kullanıcıya kaybolabilir.

PowerShell 7.2'den başlayarak, yeniden yönlendirme işleçleri ()2>&1 kullanılırken olduğu gibi yerel komutlardan yeniden yönlendirilen hata kayıtları değişkene $Error yazılmaz ve tercih değişkeni $ErrorActionPreference yeniden yönlendirilen çıkışı etkilemez.

PowerShell 7.3, yazılan stderr iletilerin nasıl işleneceğini denetlemenizi sağlayan deneysel bir özellik ekledi.

Daha fazla bilgi için bkz . $PSNativeCommandUseErrorActionPreference.

Ö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: Test Error
Hello World

Bu örnekte Inquire varsayılan değeri gösterilmektedir$ErrorActionPreference. 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 $ErrorActionPreference SilentlyContinue olarak ayarlanmıştır. Hata iletisi gizlendi.

# 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 $ErrorActionPreference Durdur olarak ayarlanmıştır. Ayrıca değişkenine $Error oluşturulan ek nesneyi de gösterir.

# 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

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

değişkeni $ErrorView numaralandırma değerlerinden ErrorView birini alır: NormalView, CategoryView veya ConciseView.

Geçerli değerler şunlardır:

  • ConciseView: (Varsayılan) Gelişmiş modül oluşturucuları için kısa bir hata iletisi ve yeniden düzenlenmiş bir görünüm sağlar. PowerShell 7.2'den itibaren, hata komut satırından veya betik modülünden geliyorsa çıkış tek satırlı bir hata iletisidir. Aksi takdirde, hatayı içeren çok satırlı bir hata iletisi ve hatanın bu satırda nerede oluştuğunun gösterildiğini gösteren bir işaretçi alırsınız. Terminal Sanal Terminal'i destekliyorsa, renk vurgusu sağlamak için ANSI renk kodları kullanılır. Vurgu rengi adresinde $Host.PrivateData.ErrorAccentColordeğiştirilebilir. İç özel durumlar da dahil olmak üzere tam hatanın ayrıntılı bir görünümü için cmdlet'ini kullanın Get-Error .

    ConciseView , PowerShell 7'ye eklendi.

  • NormalView: Ç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 ConciseView olduğunda hatanın $ErrorView nasıl göründüğü gösterilir. Get-ChildItem mevcut olmayan bir dizini bulmak için kullanılır.

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

Bu örnekte değeri varsayılan olan ConciseView olduğunda hatanın $ErrorView nasıl göründüğü gösterilir. Script.ps1 çalıştırılır ve deyiminden Get-Item bir hata oluşturur.

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

Bu örnekte değeri NormalView olarak değiştirildiğinde hatanın $ErrorView nasıl göründüğü gösterilir. Get-ChildItem varolmayan bir dosyayı bulmak için kullanılır.

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

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 listedeki nesnenin ö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ç 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 gösterilmeyen öğeleri göstermek 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 $FormatEnumerationLimit geliştirmek için değişkenin nasıl kullanılacağı 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 de durdurulan hizmetler için. Tüm hizmetleri almak için bir Get-Service komut kullanır ve ardından sonuçları hizmet durumuna göre gruplandıran cmdlet'ine Group-Object işlem hattı üzerinden gönderir.

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

$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 $FormatEnumerationLimit 1000'e 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ın.Format-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şkeninin $InformationPreference değerini geçersiz kılar. Write-Information PowerShell 5.0'da kullanıma sunulmuştur.

değişkeni $InformationPreference numaralandırma değerlerinden ActionPreference birini alır: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend veya Break.

Geçerli değerler şunlardır:

  • Break - Bilgi akışına yazarken hata ayıklayıcıyı girin.
  • Durdur: Komutun oluşumunda Write-Information bir komutu veya betiği durdurur.
  • Sorgula: Bir Write-Information komutta belirttiğiniz bilgi iletisini görüntüler ve devam etmek isteyip istemediğinizi sorar.
  • Devam: Bilgilendiren iletiyi görüntüler ve çalışmaya devam eder.
  • SilentlyContinue: (Varsayılan) Efekt yok. Bilgilendirme iletileri görüntülenmez ve betik kesintisiz olarak devam eder.

$Log*Olay

Log*Event tercih değişkenleri, Olay Görüntüleyicisi PowerShell olay günlüğüne hangi tür olayların yazıldığına karar verir. 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.

Log*Event 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ğerdir $true (günlüğe kaydedilir).
  • $LogEngineLifecycleEvent: Oturumların açılmasını ve kapatılmasını günlüğe kaydeder. Varsayılan değerdir $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ğerdir $true (günlüğe kaydedilir).
  • $LogProviderLifecycleEvent: PowerShell sağlayıcılarını ekleme ve kaldırma günlükleri. Varsayılan değerdir $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şkeni 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ülmüş 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 boşluğun (" ") varsayılan değerini bekliyorsanız, varsayılan değerin kodunuzun $OFS başka bir yerinde değiştirilmediğine dikkat edin.

Örnekler

Bu örnekte, bir dizi dizeye dönüştürüldüğünde değerleri ayırmak için bir 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 verileri yerel uygulamalara aktarırken kullandığı karakter kodlama yöntemini belirler.

Not

Senaryoların çoğunda değerinin değerine $OutputEncoding[Console]::InputEncodinguygun olması gerekir.

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

Varsayılan: UTF8Encoding nesnesi.

Örnekler

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

$OutputEncoding.EncodingName

Kalan örneklerde, davranışını $OutputEncodinggöstermek için olarak hexdump.ps1 kaydedilen aşağıdaki PowerShell betiği kullanılır.

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

Aşağıdaki örnekte, yukarıda oluşturulan içine aktarıldığında dize değerinin café bayt olarak nasıl kodlanmış hexdump.ps1 olduğu gösterilmektedir. Dize değerinin UTF8Encoding şeması kullanılarak kodlandığını gösterir.

'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�

Aşağıdaki örnekte kodlama UnicodeEncoding olarak değiştirilirken baytların nasıl değiştiği gösterilmektedir.

$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

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, Write-Progress bir komutun durumunu gösteren ilerleme çubukları oluşturur.

değişkeni $ProgressPreference numaralandırma değerlerinden ActionPreference birini alır: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend veya Break.

Geçerli değerler şunlardır:

  • Break - İlerleme akışına yazarken hata ayıklayıcıyı girin.
  • Durdurma: İ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.

$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ış şekilde 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.

$PSEmailServer

E-posta iletileri 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.

$PSModuleAutoloadingPreference

Oturumdaki modüllerin otomatik içeri aktarılmasını etkinleştirir ve devre dışı bırakır. Değişken $PSModuleAutoloadingPreference varsayılan olarak mevcut değildir. Değişken tanımlanmadığında varsayılan davranış ile $PSModuleAutoloadingPreference = 'All'aynıdır.

Bir modülü otomatik olarak içeri aktarmak için modülde bulunan bir komutu alın veya kullanın.

$PSModuleAutoloadingPreference değişkeni numaralandırma değerlerinden PSModuleAutoLoadingPreference birini alır:

  • All: Modüller ilk kullanımda otomatik olarak içeri aktarılır.
  • ModuleQualified: Modüller, yalnızca kullanıcı modüldeki bir komutun modüle uygun 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.
  • None: Modüllerin otomatik olarak içeri aktarılmasını devre dışı bırakır. 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.

$PSNativeCommandArgumentPassing

PowerShell 7.3, yerel komutlar için komut satırını ayrıştırma şeklini değiştirdi. $PSNativeCommandArgumentPassing Yeni tercih değişkeni bu davranışı denetler.

Dikkat

Yeni davranış, önceki davranıştan kaynaklanan hataya neden olan bir değişikliktir . Bu, yerel uygulamaları çağırma sırasında karşılaşılan çeşitli sorunlara geçici çözüm getiren betikleri ve otomasyonu bozabilir.

Otomatik değişken $PSNativeCommandArgumentPassing çalışma zamanında davranışı seçmenize olanak tanır. Geçerli değerler , Standardve WindowsdeğerleridirLegacy. Legacy tarihi davranıştır.

Değişken $PSNativeCommandArgumentPassing varsayılan olarak tanımlanır ancak değer platforma özgüdür.

  • Windows'ta tercih olarak ayarlanır Windows.
  • Windows olmayan platformlarda tercih olarak ayarlanır Standard.
  • Değişkeni kaldırdıysanız $PSNativeCommandArgumentPassing PowerShell bu davranışı kullanır Standard .

ve modunun Windows davranışı aynıdır, ancak powershell, aşağıdaki dosyaları çalıştırdığınızda Windows bağımsız değişken geçirme davranışını kullanırLegacy.Standard

  • cmd.exe
  • cscript.exe
  • find.exe
  • sqlcmd.exe
  • wscript.exe
  • Şu dosyalarla biten dosyalar:
    • .bat
    • .cmd
    • .js
    • .vbs
    • .wsf

$PSNativeCommandArgumentPassing veya Standardolarak ayarlanırsaLegacy, ayrıştırıcı bu dosyaları denetlemez. Yeni davranış örnekleri için bkz . about_Parsing.

PowerShell 7.3 ayrıca yerel komutlar için parametre bağlamasını izleme özelliğini de ekledi. Daha fazla bilgi için bkz . Trace-Command.

$PSNativeCommandUseErrorActionPreference

olduğunda $PSNativeCommandUseErrorActionPreference$true, sıfır olmayan çıkış kodlarına sahip yerel komutlar' a $ErrorActionPreferencegöre hatalarla karşılanır.

Robocopy gibi bazı yerel komutlar, hata dışındaki bilgileri göstermek için sıfır olmayan çıkış kodları kullanır. Bu gibi durumlarda, davranışı geçici olarak devre dışı bırakabilir ve sıfır olmayan çıkış kodlarının hata vermesini önleyebilirsiniz.

& {
    # 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"
    }
}

Bu örnekte, $PSNativeCommandUseErrorActionPreference değişken bir betik bloğu içinde değiştirilir. Değişiklik, betik bloğunda yereldir. Betik bloğundan çıkıldığında değişken önceki değerine geri döner.

$PSSessionApplicationName

Yönetim için Web Hizmetleri (WS-Management) teknolojisini kullanan bir 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 Bağlan ionURI 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 yeni oturumlar oluşturmak 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'dir.

Varsayılan değerhttp://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:

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

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

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şturduğunuzda 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ı çevirir.

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ına ve tercih değişkeninin değerine göre önceliklidir $PSSessionOption .

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

$PSStyle

PowerShell 7.2'de ansi dize çıkışının işlenmesini $PSStyle görüntülemek ve değiştirmek için otomatik değişkene erişebilirsiniz. $PSStyle, PSStyle sınıfının bir örneğidir. Bu sınıfın üyeleri, terminaldeki metnin işlenmesini denetleen ANSI kaçış dizilerini içeren dizeleri tanımlar.

Temel üyeler adlarına eşlenmiş ANSI kaçış dizilerinin dizelerini döndürür. Değerler özelleştirmeye izin verecek şekilde ayarlanabilir. Özellik adları, sekme tamamlama kullanarak süslü dizeler oluşturmanızı kolaylaştırır. Örneğin:

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

Arka Plan ve Ön Plan üyelerinin de 24 bit renk belirtme yöntemi vardırFromRgb().

hakkında $PSStyledaha fazla bilgi için bkz . about_ANSI_Terminals.

$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 değerindeki $Transcript yolu kullanır. Bu değişkeni oluşturmadıysanız, Start-Transcript transkriptleri varsayılan adı kullanarak aşağıdaki konumda depolar:

  • Windows'da: $HOME\Documents
  • Linux veya macOS'ta: $HOME

Varsayılan dosya adı: PowerShell_transcript.<computername>.<random>.<timestamp>.txt.

$VerbosePreference

PowerShell'in bir betik, cmdlet veya sağlayıcı tarafından oluşturulan, Write-Verbose cmdlet'i tarafından oluşturulan iletiler gibi ayrıntılı iletilere nasıl yanıt vereceğini belirler. Ayrıntılı iletiler, komut 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.

değişkeni $VerbosePreference numaralandırma değerlerinden ActionPreference birini alır: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend veya Break.

Geçerli değerler şunlardır:

  • Break - Ayrıntılı akışa yazarken hata ayıklayıcıyı girin.
  • Durdur: Ayrıntılı iletiyi ve bir 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.

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

Örnekler

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

Bu örnekte, Varsayılan olan SilentlyContinue değerinin etkisi gösterilir. Komutu message parametresini kullanır, ancak PowerShell konsoluna ileti yazmaz.

Write-Verbose -Message "Verbose message test."

Ayrıntılı 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 Ayrıntılı 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 Ayrıntılı parametresi kullanılır. İleti görüntülenmez.

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

Bu örnek, Inquire değerinin etkisini gösterir. $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 Ayrıntılı parametresi kullanılır. Kullanıcıya sorulmuyor ve ileti görüntülenmiyor.

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

$WarningPreference

PowerShell'in bir betik, cmdlet veya sağlayıcı tarafından oluşturulan uyarı iletilerine (Write-Warning cmdlet'i tarafından oluşturulan iletiler gibi) 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.

değişkeni $WarningPreference numaralandırma değerlerinden ActionPreference birini alır: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend veya Break.

Geçerli değerler şunlardır:

  • Break - Bir uyarı iletisi yazıldığında hata ayıklayıcısını girin.
  • 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.

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.

Örnekler

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

Bu örnekte, Devam varsayılan değerin etkisi gösterilir.

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

Bu örnekte uyarıyı bastırmak için SilentlyContinue değeriyle WarningAction parametresi kullanılır. İleti görüntülenmez.

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

Bu örnek değişkenini $WarningPreferenceSilentlyContinue değerine değiştirir. İ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 False değeriyle WhatIf parametresini 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österilir. 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 örnek, değeri $WhatIfPreference False olduğunda WhatIf parametresini kullanmanın etkisini gösterir.

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 ayarlanmış 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ğıyla Remove-Item ilgili 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österilir. 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'i desteklemeyen ve Stop-Process WhatIf'i destekleyen cmdlet örnekleri verilmiştirGet-Process. 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-Processdeğ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.