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.
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şkenlerinde yapılan değişiklikler yalnızca yapıldıkları kapsamda ve bunların alt kapsamlarında geçerlidir. Örneğin, tercih değişkenini tek bir işlev veya betikle değiştirmenin etkilerini sınırlayabilirsiniz. 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. Cmdlet'lere veya işlevlere risk atama hakkında daha fazla bilgi için bkz . about_Functions_CmdletBindingAttribute.
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.
Çoğu cmdlet ve işlev ConfirmImpact için varsayılan Orta değerini tutar.
$ConfirmPreference
varsayılan olarak Yüksek olarak ayarlanır. Bu nedenle, kullanıcılar Confirm parametresini belirtmediğinde komutların otomatik olarak onay istemesi nadirdir.
Otomatik onay istemini daha fazla cmdlet'e ve işleve genişletmek için değerini $ConfirmPreference
Orta veya Düşük olarak ayarlayın.
Ö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 $false
kullanı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 $DebugPreference
değ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 $DebugPreference
etkisini 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.
$ErrorActionPreference
ve 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.ErrorAccentColor
değiştirilebilir. İç özel durumlar da dahil olmak üzere tam hatanın ayrıntılı bir görünümü için cmdlet'ini kullanınGet-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 $FormatEnumerationLimit
bulun.
$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 $true
yazın, örneğin:
$LogCommandLifeCycleEvent = $true
Bir olay türünü devre dışı bırakmak için değişkeni değeriyle $false
yazı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ı $OFS
olmalı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]::InputEncoding
uygun 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 $OutputEncoding
bulur. Değer bir kodlama nesnesi olduğundan yalnızca EncodingName özelliğini görüntüleyin.
$OutputEncoding.EncodingName
Kalan örneklerde, davranışını $OutputEncoding
gö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
A
ileY
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üneMyModule\MyCommand
sahipse 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'iniImport-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 , Standard
ve Windows
değ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ırStandard
.
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 Standard
olarak 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 $ErrorActionPreference
gö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 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 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-PSSession
New-PSSession
kullanarak 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ı $PSSessionOption
bir 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-Command
gibi bir oturum oluşturan cmdlet'lerde SessionOption parametresinin değeri olarak New-PSSession
Enter-PSSession
PSSessionOption 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 $PSStyle
daha 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 $VerbosePreference
değ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 $VerbosePreference
etkisini 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 $WarningPreference
değ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 $WarningPreference
etkisini 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 $WarningPreference
SilentlyContinue 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 $WarningPreference
Inquire 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 $WhatIfPreference
etkisini 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-ChildItem
doğ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 $WhatIfPreference
True olduğunda dosyanın nasıl silineceği gösterilir. Değeri ile WhatIf parametresini $false
kullanı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-Process
WhatIf'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-Process
WhatIf'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 $false
kullanarak 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.
PowerShell