about_Preference_Variables
Kısa açıklama
PowerShell'in davranışını özelleştiren değişkenler.
Uzun açıklama
PowerShell, davranışını özelleştirmenize olanak sağlayan bir değişken kümesi içerir. Bu tercih değişkenleri GUI tabanlı sistemlerde seçenekler gibi çalışır.
Tercih değişkenleri PowerShell işletim ortamını etkiler ve ortamda çalışan tüm komutlar. Çoğu durumda, cmdlet'ler belirli bir komutun tercih davranışını geçersiz kılmak için kullanabileceğiniz parametrelere sahip olur.
Aşağıdaki tabloda tercih değişkenleri ve bunların varsayılan değerleri listele devam eder.
PowerShell, kullanıcı tercihlerini depoleyen 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şkenine yapılan değişiklikler yalnızca bu betikler veya işlevler tercihin hangi kapsamda kullanıldıkları ile aynı kapsamda tanımlanmışsa 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çık bir şekilde açık almaktadı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 $ConfirmPreference değişkenin değerini görüntüler.
$ConfirmPreference
High
Değişkenin değerini değiştirmek için bir atama deyimi kullanın. Örneğin, aşağıdaki deyim parametresinin $ConfirmPreference değerini Orta olarak değiştirir.
$ConfirmPreference = "Medium"
Ayarladık değerler geçerli PowerShell oturumuna özgü. Değişkenlerin tüm PowerShell oturumlarında etkili olması için bunları PowerShell profilinize ekleyin. Daha fazla bilgi için bkz. about_Profiles.
Uzaktan çalışma
Uzak bir bilgisayarda komutlar çalıştırsanız, uzak komutlar yalnızca uzak bilgisayarın PowerShell istemcisinde ayarlanmış tercihlere tabi olur. Örneğin, uzak bir komut çalıştırsanız, uzak bilgisayarın değişkeninin değeri PowerShell'in hata ayıklama iletilerine $DebugPreference nasıl yanıt ver olduğunu belirler.
Uzak komutlar hakkında daha fazla bilgi için bkz. about_Remote.
$ConfirmPreference
Bir cmdlet'i veya işlevi çalıştırmadan önce PowerShell'in sizden otomatik olarak onay isteyip istemediğini belirler.
$ConfirmPreferencedeğişkeni,ConfirmImpact
enumeration values: High, Medium, Low veya None.
Cmdlet'ler ve işlevlere Yüksek, Orta veya Düşük riski atanır. Değişkenin değeri bir cmdlet'e veya işleve atanan riskten küçük veya onaya eşit $ConfirmPreference olduğunda, PowerShell cmdlet'i veya işlevi çalıştırmadan önce otomatik olarak onay ister.
değişkeninin değeri Yok ise, PowerShell hiçbir zaman bir cmdlet veya işlev $ConfirmPreference çalıştırmadan önce otomatik olarak sizden sorulmaz.
Oturumda tüm cmdlet'ler ve işlevler için onaylama davranışını değiştirmek için $ConfirmPreference değişkenin değerini değiştirme.
tek bir $ConfirmPreference komut için geçersiz kılmak için cmdlet'in veya işlevin Confirm parametresini kullanın. Onay isteği için -Confirm kullanın. Onayı bastırmak için -Confirm:$false kullanın.
Geçerli $ConfirmPreference değerleri:
- Hiçbiri: PowerShell otomatik olarak istemz. Belirli bir komutun onay isteminde, 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, eyleme başlamadan önce otomatik olarak sizden onay ister. Örneğin, cmdlet veya işlev, verileri silmek veya önemli miktarda sistem kaynağı kullanmak için sistemi önemli ölçüde etkilese.
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"):
Risk tahmini, cmdlet'in veya işlevin ConfirmImpact olarak bilinen bir özniteliğidir. Kullanıcılar bunu değiştiremez.
Sistemde risk oluşturan cmdlet'ler ve işlevler, tek bir komut için onay isteğinde veya gizlemede kullanabileceğiniz bir Confirm parametresine sahiptir.
Çoğu cmdlet ve işlev varsayılan risk değerini ( ConfirmImpact) Orta ve varsayılan değeri Yüksek olduğundan, otomatik onay nadiren $ConfirmPreference gerçekleşir. Ancak, değerini Orta veya Düşük olarak değiştirerek $ConfirmPreference otomatik onayı etkinleştirerek.
Örnekler
Bu örnekte değişkenin varsayılan $ConfirmPreference değeri Olan Yüksek etkisini gösterir. Yüksek değeri yalnızca yüksek riskli cmdlet'leri ve işlevleri onaylar. Çoğu cmdlet ve işlev orta riskli olduğu için bunlar otomatik olarak onaylanmaz Remove-Item ve dosyayı siler. komutuna -Confirm eklemek kullanıcıdan onay ister.
$ConfirmPreference
High
Remove-Item -Path C:\temp1.txt
Onay -Confirm isteği için kullanın.
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 örnek, değerini Orta olarak değiştirmenin $ConfirmPreference etkisini gösterir. Çoğu cmdlet ve işlev orta riskli olduğundan, bunlar otomatik olarak onaylanır. Tek bir komut için onay istemini gizlemek 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 komut dosyası, cmdlet veya sağlayıcı ya da komut satırı komutuyla oluşturulan hata ayıklama iletilerine Write-Debug nasıl yanıt verdiğini belirler.
$DebugPreferencedeğişkeni,ActionPreference
enumeration values: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend veya Break.
Bazı cmdlet'ler normalde 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 değiştirerek hata ayıklama iletilerini $DebugPreference görüntüebilirsiniz.
Belirli bir komutun hata ayıklama iletilerini görüntülemek veya gizlemek için bir cmdlet'in Ortak Hata Ayıklama parametresini kullanabilirsiniz. Daha fazla bilgi için bkz. about_CommonParameters.
Geçerli değerler aşağıdaki gibidir:
- Durdur: Hata ayıklama iletisi görüntülenir ve yürütülmiyor. Konsola bir hata yazar.
- Sorgu: Hata ayıklama iletiyi görüntüler ve devam etmek isteyip istemediklerini sorar. Hata ayıklama iletisi oluşturmak için komut yapılandırıldığında, bir komuta Hata Ayıklama ortak parametresi ekıldığında değişkeninin değerini
$DebugPreferenceInquire olarak değiştirir. - Devam: Hata ayıklama iletisi görüntülenir ve yürütmeye devam eder.
- SilentlyContinue:(Varsayılan) Etkisi yok. Hata ayıklama iletisi görüntülenmez ve yürütme kesinti olmadan devam eder.
Örnekler
Aşağıdaki örnekler, komut satırına bir komut $DebugPreference Write-Debug girilirken değerlerini değiştirmenin etkisini gösterir.
Değişiklik, cmdlet'ler ve betikler tarafından oluşturulan iletiler de dahil olmak üzere tüm hata ayıklama iletilerini etkiler. Örnekler, tek bir komutla ilgili hata ayıklama iletilerini görüntüleyen veya gizleyen Hata Ayıklama parametresini gösterir.
Bu örnekte değişkenin varsayılan $DebugPreference değeri Olan SilentlyContinue etkisini gösterir. Varsayılan Write-Debug olarak, cmdlet'in hata ayıklama iletisi görüntülenmez ve işleme devam eder. Hata ayıklama parametresi kullanıldığında, tek bir komutun tercihini geçersiz kılar. Hata ayıklama iletisi görüntülenir.
$DebugPreference
SilentlyContinue
Write-Debug -Message "Hello, World"
Write-Debug -Message "Hello, World" -Debug
DEBUG: Hello, World
Bu örnek, Continue $DebugPreference değeriyle etkisini 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, iletiyi tek bir komut için gizlemesi için $false Değeriyle Birlikte Hata Ayıklama parametresini kullanır. Hata ayıklama iletisi görüntülenmez.
Write-Debug -Message "Hello, World" -Debug:$false
Bu örnek, Stop $DebugPreference değerine ayarlamanın 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, iletiyi tek bir komut için gizlemesi için $false Değeriyle Birlikte Hata Ayıklama parametresini kullanır. Hata ayıklama iletisi görüntülenmez ve işleme durdurulmaz.
Write-Debug -Message "Hello, World" -Debug:$false
Bu örnekte, $DebugPreference Inquire değerine ayarlamanın etkisi gösterir. 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, iletiyi tek bir komut için gizlemesi için $false Değeriyle Birlikte Hata Ayıklama parametresini kullanı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 verdiğini belirler. Örneğin, komut satırı veya betikte, cmdlet'te veya sağlayıcıda, cmdlet tarafından oluşturulan Write-Error hatalar gibi.
$ErrorActionPreferencedeğişkeni,ActionPreference
enumeration values: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend veya Break.
Belirli bir komutun tercihini geçersiz kılmak için cmdlet'in ErrorAction ortak parametresini kullanabilirsiniz.
Geçerli değerler aşağıdaki gibidir:
- Kesme - 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 bastırarak komutu yürütmeye devam eder. Ignore değeri, kaydedilmiş tercih olarak kullanılmak üzere değil komut başına kullanım için tasarlanmıştır. Ignore, değişkeni için geçerli bir değer
$ErrorActionPreferencedeğildir. - Sorgu: Hata iletisini görüntüler ve devam etmek isteyip istemediklerini sorar.
- SilentlyContinue: Etkisi yok. Hata iletisi görüntülenmez ve yürütme kesinti olmadan devam eder.
- Durdur: Hata iletisini görüntüler ve yürütülmesini durdurur. Oluşturulan hataya ek olarak, Durdurma değeri hata akışına bir ActionPreferenceStopException nesnesi oluşturur. akış
- Askıya al: 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ürebilirsiniz. Askıya al değeri, kaydedilmiş tercih olarak kullanılmak üzere değil komut başına kullanım için tasarlanmıştır. Suspend, değişkeni için geçerli bir değer
$ErrorActionPreferencedeğ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..
Örnekler
Bu örnekler değişkenin farklı değerlerinin etkisini $ErrorActionPreference gösterir. Değeri geçersiz kılmak için ErrorAction parametresi $ErrorActionPreference kullanılır.
Bu örnek, Devam $ErrorActionPreference varsayılan değerini gösterir. Sonlandırıcı olmayan 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 varsayılan $ErrorActionPreference değeri (Inquire) gösterir. 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, Stop $ErrorActionPreference (Durdur) olarak ayarlanmış olan kümeyi gösterir. Ayrıca değişkenine oluşturulan ek nesneyi $Error de gösterir.
# Change the ErrorActionPreference to 'Stop'
$ErrorActionPreference = 'Stop'
# Error message is is generated and script stops processing
Write-Error -Message 'Test Error' ; Write-Host 'Hello World'
# Show the ActionPreferenceStopException and the error generated
$Error[0]
$Error[1]
Write-Error: 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üleme biçimini belirler.
değişkeni, $ErrorView ErrorView normalView, CategoryView veya ConciseView sabit değerlerinden birini alır.
Geçerli değerler aşağıdaki gibidir:
ConciseView:(Varsayılan) Gelişmiş modül oluşturucuları için kısa bir hata iletisi ve yeniden düzenleme görünümü sağlar. PowerShell 7.2'den itibaren hata komut satırı veya betik modülündense çıkış tek satırlık bir hata iletisidir. Aksi takdirde, hatayı içeren çok satırlı bir hata iletisi ve hatanın bu satırda nerede olduğunu 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, 'de
$Host.PrivateData.ErrorAccentColordeğiştirilebilir. İçGet-Errorözel durumlar da dahil olmak üzere tam hatanın kapsamlı ayrıntılı görünümü için cmdlet'ini kullanın.ConciseView, PowerShell 7'ye eklendi.
NormalView: Kullanıcıların çoğu için tasarlanmış ayrıntılı bir görünüm. Hatanın açıklamasını ve hataya dahil olan nesnenin adını içerir.
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 $ErrorView ConciseView olduğunda hatanın nasıl göründüğü gösterir. Get-ChildItem , mevcut olmayan bir dizini bulmak için kullanılır.
Get-ChildItem -path 'C:\NoRealDirectory'
Get-ChildItem: Cannot find path 'C:\NoRealDirectory' because it does not exist.
Bu örnekte, değeri varsayılan $ErrorView ConciseView olduğunda hatanın nasıl göründüğü gösterir. Script.ps1 çalıştırıldı ve deyiminden bir hata Get-Item döndürür.
./Script.ps1
Get-Item: C:\Script.ps1
Line |
11 | Get-Item -Path .\stuff
| ^ Cannot find path 'C:\demo\stuff' because it does not exist.
Bu örnekte, değeri NormalView olarak değiştirlendiğinde $ErrorView hatanın nasıl göründüğü gösterir. Get-ChildItem , mevcut olmayan bir dosyayı bulmak için kullanılır.
Get-ChildItem -Path C:\nofile.txt
Get-ChildItem : Cannot find path 'C:\nofile.txt' because it does not exist.
At line:1 char:1
+ Get-ChildItem -Path C:\nofile.txt
Bu örnekte değeri CategoryView olarak değiştirlendiğinde aynı $ErrorView hatanın nasıl göründüğü gösterir.
$ErrorView = "CategoryView"
Get-ChildItem -Path C:\nofile.txt
ObjectNotFound: (C:\nofile.txt:String) [Get-ChildItem], ItemNotFoundException
Bu örnek, değerinin yalnızca $ErrorView hata görüntülemesini etkilediğini gösterir. Otomatik değişkende depolanan hata nesnesinin yapısını $Error değiştirmez. Otomatik değişken hakkında bilgi $Error için bkz. about_automatic_variables.
Aşağıdaki komut, hata dizisinde 0 öğesinde bulunan en son hatayla ilişkili ErrorRecord nesnesini alır ve bir listede tüm hata nesnesinin özelliklerini biçimler.
$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 görüntüye dahil edilen numaralandır edilen öğenin kaç tane olduğunu belirler. Bu değişken, temel alınan nesneleri değil yalnızca ekranı etkiler. değeri numaralandı $FormatEnumerationLimit öğelerin sayısından azsa PowerShell, gösternilen öğeleri belirtmek için bir üç nokta ( ... ) ekler.
Geçerli değerler: Tamsayılar ( Int32 )
Varsayılan değer: 4
Örnekler
Bu örnekte, numaralandı $FormatEnumerationLimit öğeleri görüntülemeyi geliştirmek için değişkeninin nasıl kullanılası gösterilir.
Bu örnekteki komut, bilgisayarda çalışan tüm hizmetleri iki grupta listelemektedir: biri hizmetleri çalıştırma, biri durdurulmuş hizmetler için. Tüm hizmetleri almak için bir komut kullanır ve ardından sonuçları işlem hattı üzerinden cmdlet'e gönderir ve bu da sonuçları hizmet Get-Service Group-Object durumuna göre gruplar.
Sonuç, Name sütunundaki durumu ve Group sütunundaki işlemleri listeleen bir tablodur. Sütun etiketlerini değiştirmek için bir karma tablo kullanın, bkz. about_Hash_Tables. Daha fazla bilgi için Format-Table 'daki örneklere bakın.
geçerli değerini $FormatEnumerationLimit bulur.
$FormatEnumerationLimit
4
Tüm hizmetleri Durum'a göre gruplandı olarak listele. 4 değerine sahip olduğundan, her durum için Grup sütununda en fazla dört hizmet $FormatEnumerationLimit listelenir.
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 olarak artırabilirsiniz. Hizmetleri Get-Service görüntülemek için ve Group-Object kullanın.
$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 Format-Table listesini görüntülemek için Sarmala parametresiyle kullanın.
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ülenebilir istediğiniz bilgi akışı tercihlerini ayarlamanızı sağlar. Özellikle, Write-Information cmdlet'ini ekleyerek komutlara veya betiklere eklenen bilgilendirme iletileri. InformationAction parametresi kullanılırsa, değeri değişkenin değerini geçersiz $InformationPreference kılar. Write-Information , PowerShell 5.0'da tanıtıldı.
$InformationPreferencedeğişkeni,ActionPreference
enumeration values: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend veya Break.
Geçerli değerler aşağıdaki gibidir:
- Stop: Komutun oluşmasında bir komutu veya betiği
Write-Informationdurdurur. - Sorgu: Komutta belirttiğiniz bilgilendirme iletisi görüntülenir ve devam
Write-Informationetmek isteyip istemediklerini sorar. - Devam: Bilgilendirme iletisi görüntülenir ve çalışmaya devam eder.
- Askıya alma yalnızca PowerShell 6 ve üzerinde destek alınmayacak iş akışları için kullanılabilir.
- SilentlyContinue:(Varsayılan) Etkisi yok. Bilgilendirme iletileri görüntülenmez ve betik kesintisiz olarak devam eder.
$Günlük*Olay
Günlük*Olay tercih değişkenleri, powershell'de PowerShell olay günlüğüne hangi tür olayların yazıldığı Olay Görüntüleyicisi. Varsayılan olarak, yalnızca altyapı ve sağlayıcı olayları günlüğe kaydedilir. Ancak, günlüklerinizi özelleştirmek için Günlük*Olay tercihi değişkenlerini kullanabilirsiniz; örneğin, komutlar hakkında olayları günlüğe kaydetme.
Günlük*Olay tercih değişkenleri aşağıdaki gibidir:
$LogCommandHealthEvent: Komut başlatma ve işleme hatalarını ve özel durumları günlüğe kaydeder. Varsayılan$falsedeğerdir (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 ve durdurulmalarını günlüğe kaydeder. Varsayılan$falsedeğerdir (günlüğe kaydedilmez).$LogEngineHealthEvent: Oturum hatalarını ve hatalarını günlüğe kaydeder. Varsayılan$truedeğerdir (günlüğe kaydedilir).$LogEngineLifecycleEvent: Oturumların açılmasını ve kapatılmasını günlüğe kaydeder. Varsayılan$truedeğerdir (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$truedeğerdir (günlüğe kaydedilir).$LogProviderLifecycleEvent: PowerShell sağlayıcıları ekleme ve kaldırma günlüklerini içerir. Varsayılan$truedeğerdir (günlüğe kaydedilir). PowerShell sağlayıcıları hakkında bilgi için bkz. about_Providers.
Bir Log*Event'i etkinleştirmek için, değerine sahip değişkeni $true yazın, örneğin:
$LogCommandLifeCycleEvent = $true
Bir olay türünü devre dışı bırakmak için değerine sahip değişkeni $false yazın, örneğin:
$LogCommandLifeCycleEvent = $false
Etkinleştiren olaylar yalnızca geçerli PowerShell konsolu için geçerli olur. 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 kayded olduğunu belirler.
Geçerli değerler: 1 - 32768 ( Int32 )
Varsayılan: 4096
Komut geçmişine kaydedilen geçerli komut sayısını belirlemek için yazın:
(Get-History).Count
Oturum geçmişinize kaydedilen komutları görmek için Get-History cmdlet'ini kullanın. Daha fazla bilgi için bkz. about_History.
$OFS
Çıkış Alanı Ayırıcısı (OFS), dizeye dönüştürülen bir dizinin öğelerini ayıran karakteri belirtir.
Geçerli değerler: Herhangi bir dize.
Varsayılan: Alan
Varsayılan olarak, değişken mevcut değildir ve çıkış dosyası ayırıcısı bir boşluk olur, ancak bu değişkeni ekleyebilir ve herhangi $OFS bir dizeye ayarlayabilirsiniz. yazarak oturumda $OFS değerini $OFS="<value>" değiştirebilirsiniz.
Not
Betik, modül veya yapılandırma çıkışında bir boşluğun ( ) varsayılan değerini bekliyorsanız, varsayılan değerin kodunuzun başka bir yerinde değişmemiş olması konusunda " " $OFS dikkatli olun.
Örnekler
Bu örnekte, bir dizi dizeye dönüştür olduğunda değerleri ayırmak için bir boşluk kullanılmıştır. Bu durumda, bir tamsayı dizisi bir değişkende depolanır ve ardından değişkeni dize olarak dönüştürür.
$array = 1,2,3,4
[string]$array
1 2 3 4
Ayırıcıyı değiştirmek için $OFS değişkene bir değer ataarak değişkeni ekleyin.
Değişkenin adı olması $OFS gerekir.
$OFS = "+"
[string]$array
1+2+3+4
Varsayılan davranışı geri yüklemek için değerine bir boşluk ( " " ) atayabilirsiniz $OFS 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ğrulayın.
Remove-Variable OFS
[string]$array
1 2 3 4
$OutputEncoding
PowerShell'in diğer uygulamalara metin gönderirken kullandığı karakter kodlama yöntemini belirler.
Örneğin, bir uygulama PowerShell'e Unicode dizeleri döndürürse, karakterleri doğru göndermek için değeri UnicodeEncoding olarak değiştirmeniz gerekir.
Geçerli değerler şunlardır: ASCIIEncoding, UTF7Encoding , UTF8Encoding, UTF32Encodingve UnicodeEncodinggibi bir Encoding sınıfından türetilen nesneler.
Varsayılan: UTF8Encoding nesnesi.
Örnekler
Bu örnekte, Windows findstr.exe,Çince gibi Unicode karakterler kullanan bir dil için yerelleştirilmiş bir bilgisayarda PowerShell'de nasıl çalışır?
İlk komut değerini $OutputEncoding bulur. Değer bir kodlama nesnesi olduğundan, yalnızca encodingName özelliğini görüntüler.
$OutputEncoding.EncodingName
Bu örnekte, findstr.exe iki Çince karakteri aramak için birfindstr.exekomutu Test.txt kullanılır. Bu findstr.exe Komut İstemi ' Windows (cmd.exe), findstr.exe dosyasındaki karakterleri bulur. Ancak, PowerShell'de aynıfindstr.exe komutunu çalıştırarak karakterler bulunamaz çünkü PowerShell bunları Unicode metin yerine ASCIIfindstr.exe'e gönderir.
findstr <Unicode-characters>
Komutun PowerShell'de çalışması için değerini konsoldaki $OutputEncoding OutputEncoding özelliğinin değerine ayarlayın. Bu değer, komut için seçilen yerel ayara Windows. OutputEncoding konsolun statik bir özelliği olduğundan, komutunda çift iki nokta üst üste () :: kullanın.
$OutputEncoding = [console]::OutputEncoding
$OutputEncoding.EncodingName
OEM United States
Kodlama değiştikten sonra, findstr.exe komutu Unicode karakterlerini bulur.
findstr <Unicode-characters>
test.txt: <Unicode-characters>
$ProgressPreference
PowerShell'in, Write-Progress cmdlet'i tarafından oluşturulan ilerleme çubukları gibi bir betik, cmdlet veya sağlayıcı tarafından oluşturulan ilerleme durumu güncelleştirmelerine nasıl yanıt verdiğini belirler.
Write-ProgressCmdlet, bir komutun durumunu göstermek için ilerleme çubukları oluşturur.
$ProgressPreferencedeğişkeni,ActionPreference
enumeration values: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend veya Break.
Geçerli değerler aşağıdaki gibidir:
- Durdur: İlerleme çubuğu görüntülenmez. Bunun yerine, bir hata iletisi görüntüler ve yürütmeyi durdurur.
- Sorgu: İlerleme çubuğunu görüntülemez. Devam etmek için izin istemleri. veya ile
YAyanı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'lerinin ve gelişmiş işlevlerin parametreleri için varsayılan değerleri belirtir.
değeri, anahtarın cmdlet adını ve parametre adını iki nokta üst üste () ile ayırarak ayrıldığı $PSDefaultParameterValues karma : tablodur. Değer, belirttiğiniz özel bir varsayılan değerdir.
$PSDefaultParameterValues , PowerShell 3.0'da tanıtıldı.
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
Oturumda modüllerin otomatik içeri aktarmasını etkinleştiriyor ve devre dışı bırakıyor. Varsayılan değer, hepsidir. Değişkenin değerinden bağımsız olarak, bir modülü içeri aktarmak için Import-Module kullanabilirsiniz.
$PSModuleAutoloadingPreferencedeğişkeni,PSModuleAutoLoadingPreference
enumeration değerleri: Hiçbiri, ModuleQualified veya All.
Geçerli değerler:
- Tüm: Modüller ilk kullanım sırasında otomatik olarak içe aktarılır. Bir modülü içeri aktarın, modülde herhangi bir komutu alma veya kullanma. Örneğin,
Get-Commandkullanın. - ModuleQualified: Modüller, yalnızca kullanıcı modülde bir komutun modüle uygun adını kullandığında otomatik olarak içe aktarılır. Örneğin, kullanıcı türüne sahipse
MyModule\MyCommandPowerShell MyModule modülünü içeri aktarıyor. - Hiçbiri: Oturumda modüllerin otomatik içeri aktarması devre dışı bırakılmıştır. Bir modülü içeri aktarın,
Import-Modulecmdlet'ini kullanın.
Modüllerin otomatik içeri aktarması hakkında daha fazla bilgi için bkz. about_Modules.
$PSSessionApplicationName
Yönetim için Web Hizmetleri (WS-Management) teknolojisini kullanan uzak komut için varsayılan uygulama adını belirtir. Daha fazla bilgi için bkz. Uzaktan Windows Hakkında.
Sistem varsayılan uygulama WSMAN adıdır, ancak varsayılanı değiştirmek için bu tercih değişkenini kullanabilirsiniz.
Uygulama adı, bağlantı URI'sinde son düğüm. Örneğin, aşağıdaki örnek URI'de uygulama adı WSMAN olur.
http://Server01:8080/WSMAN
Varsayılan uygulama adı, uzak komut bağlantı URI'si veya uygulama adı belirtmezse kullanılır.
WinRM hizmeti, bağlantı isteğine hizmet etmek için bir dinleyici seçmek için uygulama adını kullanır. Parametrenin değeri, uzak bilgisayarda bir dinleyicinin URLPrefix özelliğinin değeriyle eşleşmeli.
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 üzere New-PSSession, Enter-PSSessionveya 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 kurma komutu başarısız olur.
$PSSessionConfigurationName
Geçerli oturumda oluşturulan PSSessions için kullanılan varsayılan oturum yapılandırmasını belirtir.
Bu tercih değişkeni yerel bilgisayarda ayarlanır, ancak uzak bilgisayarda bulunan bir oturum yapılandırmasını belirtir.
değişkeninin değeri $PSSessionConfigurationName tam kaynak URI'dir.
Varsayılan http://schemas.microsoft.com/PowerShell/microsoft.PowerShell değer, uzak bilgisayarda Microsoft.PowerShell oturum yapılandırmasını gösterir.
Yalnızca bir yapılandırma adı belirtirsiniz, aşağıdaki şema URI'si ekli olur:
http://schemas.microsoft.com/PowerShell/
, veya cmdlet'lerinin ConfigurationName parametresini kullanarak varsayılanı geçersiz kabilirsiniz ve belirli bir oturum için New-PSSession farklı bir oturum Enter-PSSession Invoke-Command yapılandırmasını seçin.
Bu değişkenin değerini herhangi bir zamanda değiştirebilirsiniz. Bunu yapmak için, seçerek oturum yapılandırmasının uzak bilgisayarda mevcut olması gerektiğini unutmayın. Yoksa, 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şturduklarında hangi yerel oturum yapılandırmalarının kullanılı olduğunu belirlemez. Ancak, hangi kullanıcıların bunları kullanabileceğini belirlemek için yerel oturum yapılandırmaları için izinleri kullanabilirsiniz.
$PSSessionOption
Uzak oturumda gelişmiş kullanıcı seçenekleri için varsayılan değerleri ayarlar. Bu seçenek tercihleri, oturum seçenekleri için sistem varsayılan değerlerini geçersiz kılar.
değişkeni $PSSessionOption bir PSSessionOption nesnesi içerir. Daha fazla bilgi için bkz. System.Management.Automation.Remoting.PSSessionOption.
Nesnenin her özelliği bir oturum seçeneğini temsil eder. Örneğin, NoCompression özelliği oturum sırasında veri sıkıştırmayı geri döner.
Varsayılan olarak, değişken aşağıda gösterildiği gibi tüm seçenekler için varsayılan değerlere sahip bir $PSSessionOption 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 değerini değiştirmek için cmdlet'ini kullanarak tercih ettiği seçenek değerleriyle $PSSessionOption New-PSSessionOption bir PSSessionOption nesnesi oluşturun. Çıktıyı adlı bir değişkene $PSSessionOption kaydedin.
$PSSessionOption = New-PSSessionOption -NoCompression
Tercih $PSSessionOption değişkenini her PowerShell oturumunda kullanmak için, değişkeni oluşturan bir New-PSSessionOption komutu $PSSessionOption PowerShell profilinize ekleyin. Daha fazla bilgi için bkz. about_Profiles.
Belirli bir uzak oturum için özel seçenekler oluşturabilirsiniz. Ayar istediğiniz seçenekler, sistem varsayılanlarına ve tercih değişkeninin değerine göre $PSSessionOption önceliklidir.
Özel oturum seçeneklerini ayarlamak için New-PSSessionOption cmdlet'ini kullanarak bir PSSessionOption nesnesi oluşturun. Ardından, , ve gibi bir oturum oluşturmak için cmdlet'lerde SessionOption parametresinin değeri olarak PSSessionOption New-PSSession nesnesini Enter-PSSession Invoke-Command kullanın.
$Transcript
Start-TranscriptTranskript dosyasının adını ve konumunu belirtmek için tarafından 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ısanız Start-Transcript transkriptleri dizinde dosya $Home\My Documents olarak \PowerShell_transcript.<time-stamp>.txt depolar.
$VerbosePreference
PowerShell'in, Write-Verbose cmdlet'i tarafından oluşturulan iletiler gibi bir betik, cmdlet veya sağlayıcı tarafından oluşturulan ayrıntılı iletilere nasıl yanıt verdiğini belirler. Ayrıntılı iletiler, bir komutu yürütmek için gerçekleştirilen eylemleri açıklar.
Varsayılan olarak ayrıntılı iletiler görüntülenmez, ancak değerini değiştirerek bu davranışı $VerbosePreference değiştirebilirsiniz.
$VerbosePreferencedeğişkeni,ActionPreference
enumeration values: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend veya Break.
Geçerli değerler aşağıdaki gibidir:
- Durdur: Ayrıntılı iletiyi ve bir hata iletisini görüntüler ve yürütmeyi durdurur.
- Sorgu: Ayrıntılı iletiyi görüntüler ve ardından devam etmek isteyip istemediklerini 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ı ileti görüntülenmez. Yürütmeye devam eder.
Belirli bir komutun ayrıntılı iletilerini görüntülemek veya gizlemek için bir cmdlet'in Ayrıntılı ortak parametresini kullanabilirsiniz. Daha fazla bilgi için bkz. about_CommonParameters.
Örnekler
Bu örnekler, tercih değerini geçersiz kılmak için ve $VerbosePreference Ayrıntılı parametresinin farklı değerlerinin etkisini gösterir.
Bu örnek, varsayılan olan SilentlyContinue değerinin etkisini gösterir. Komut Message parametresini kullanır ancak PowerShell konsoluna ileti yazmaz.
Write-Verbose -Message "Verbose message test."
Ayrıntılı parametresi kullanıldığında ileti yazılır.
Write-Verbose -Message "Verbose message test." -Verbose
VERBOSE: Verbose message test.
Bu örnekte Devam değerinin etkisi gösterir. değişkeni $VerbosePreference Devam olarak ayarlanır ve ileti görüntülenir.
$VerbosePreference = "Continue"
Write-Verbose -Message "Verbose message test."
VERBOSE: Verbose message test.
Bu örnekte Verbose parametresi, Continue değerini $false geçersiz kan bir değeriyle birlikte 2. İleti görüntülenmez.
Write-Verbose -Message "Verbose message test." -Verbose:$false
Bu örnek, Stop değerinin etkisini gösterir. değişkeni $VerbosePreference Durdur olarak ayarlanır ve ileti görüntülenir. Komut durdurulur.
$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 örnek, Stop değerini geçersiz kacak bir değeriyle Verbose $false parametresini kullanır. İleti görüntülenmez.
Write-Verbose -Message "Verbose message test." -Verbose:$false
Bu örnekte, Inquire değerinin etkisi gösterir. değişkeni $VerbosePreference Sorgulama 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 Verbose parametresi, $false Inquire değerini geçersiz kan bir değeriyle birlikte 2. Kullanıcıya sorulmaz ve ileti görüntülenmez.
Write-Verbose -Message "Verbose message test." -Verbose:$false
$WarningPreference
PowerShell'in, Write-Warning cmdlet'i tarafından oluşturulan iletiler gibi bir betik, cmdlet veya sağlayıcı tarafından oluşturulan uyarı iletilerine nasıl yanıt verdiğini belirler.
Varsayılan olarak uyarı iletileri görüntülenir ve yürütme devam eder, ancak değerini değiştirerek bu davranışı $WarningPreference değiştirebilirsiniz.
$WarningPreferencedeğişkeni,ActionPreference
enumeration values: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend veya Break.
Geçerli değerler aşağıdaki gibidir:
- Durdur: Uyarı iletisini ve bir hata iletisini görüntüler ve yürütmeyi durdurur.
- Sorgu: Uyarı iletisi görüntülenir ve devam etmek için izin istenir.
- Devam:(Varsayılan) Uyarı iletisi görüntülenir ve ardından yürütülmaya devam eder.
- SilentlyContinue: Uyarı iletisi görüntülenmez. 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 etkisini $WarningPreference gösterir.
WarningAction parametresi, tercih değerini geçersiz kılar.
Bu örnek, varsayılan değerin etkisini gösterir ve devam edin.
$m = "This action can delete data."
Write-Warning -Message $m
WARNING: This action can delete data.
Bu örnek, uyarıyı bastırmak için SilentlyContinue değeriyle WarningAction parametresini kullanır. İleti görüntülenmiyor.
$m = "This action can delete data."
Write-Warning -Message $m -WarningAction SilentlyContinue
Bu örnek, $WarningPreference değişkeni SilentlyContinue değeri olarak değiştirir. İleti görüntülenmiyor.
$WarningPreference = "SilentlyContinue"
$m = "This action can delete data."
Write-Warning -Message $m
Bu örnek, bir uyarı oluşturulduğunda durdurmak için WarningAction parametresini kullanı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, $WarningPreference değişkenini sorgulama değeri olarak 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 örnek, Sustlycontinue değeriyle WarningAction parametresini kullanır. Komut yürütülmeye devam eder ve hiçbir ileti gösterilmez.
$m = "This action can delete data."
Write-Warning -Message $m -WarningAction SilentlyContinue
Bu örnek, $WarningPreference değeri Durdur olarak değiştirir.
$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 örnek, sorgu değeriyle WarningAction kullanır. Kullanıcıya bir uyarı oluştuğunda 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
Destekleri destekleyen her komut için, whatIf 'in otomatik olarak etkinleştirilip etkinleştirilmeyeceğini belirler. WhatIf etkinleştirildiğinde cmdlet, komutun beklenen etkisini bildirir, ancak komutunu yürütmez.
Geçerli değerler aşağıdaki gibidir:
- Yanlış (0, etkin değil): (varsayılan) whatIf otomatik olarak etkinleştirilmez. El ile etkinleştirmek için cmdlet 'in whatIf parametresini kullanın.
- Doğru (1, etkin): whatIf , kendisini destekleyen herhangi bir komutta otomatik olarak etkinleştirilir. Kullanıcılar, gibi el ile devre dışı bırakmak için, bir değeri false olan whatIf parametresini kullanabilir
-WhatIf:$false.
Örnekler
Bu örnekler, farklı değerlerinin etkisini gösterir $WhatIfPreference .
Belirli bir komutun tercih değerini geçersiz kılmak için whatIf parametresini nasıl kullanacağınızı gösterir.
Bu örnek $WhatIfPreference , varsayılan değer olan false değerine ayarlanan değişkenin etkisini gösterir. Get-ChildItemDosyanın var olduğunu doğrulamak için kullanın.
Remove-Item dosyayı siler. Dosya silindikten sonra, ile silme işlemini doğrulayabilirsiniz Get-ChildItem .
Get-ChildItem -Path .\test.txt
Remove-Item -Path ./test.txt
Directory: C:\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 9/13/2019 10:53 10 test.txt
Get-ChildItem -Path .\test.txt
Get-ChildItem : Cannot find path 'C:\Test\test.txt' because it does not exist.
At line:1 char:1
+ Get-ChildItem -File test.txt
Bu örnek, değeri false olduğunda whatIf parametresini kullanmanın etkisini gösterir $WhatIfPreference .
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ışılması sonucunu öğrenmek 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 örnek $WhatIfPreference , true değerine ayarlanan değişkenin etkisini gösterir. Remove-ItemBir dosyayı silmek için kullandığınızda dosyanın yolu görüntülenir, ancak dosya silinmez.
Dosya silmeyi deneyin. Çalıştırıldığında ne olacağı hakkında bir ileti görüntülenir Remove-Item , ancak dosya silinmez.
$WhatIfPreference = "True"
Remove-Item -Path .\test2.txt
What if: Performing the operation "Remove File" on target "C:\Test\test2.txt".
Get-ChildItemDosyanın silinmediğini doğrulamak için kullanın.
Get-ChildItem -Path .\test2.txt
Directory: C:\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2/28/2019 17:06 12 test2.txt
Bu örnek, değeri true olduğunda bir dosyanın nasıl silineceğini gösterir $WhatIfPreference . Bir değeriyle whatIf parametresini kullanır $false . Get-ChildItemDosyanın silindiğini doğrulamak için kullanın.
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, Get-Process whatIf ' i desteklemeyen ve whatIf ' i destekleyen cmdlet örnekleri verilmiştir Stop-Process . $WhatIfPreferenceDeğişkenin değeri true.
Get-ProcesswhatIf desteklenmez. Komut yürütüldüğünde, 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şlem durdurulmadı.
Stop-Process -Name Winword
What if: Performing the operation "Stop-Process" on target "WINWORD (15024)".
Stop-ProcessBir değeriyle whatIf parametresini kullanarak whatIf davranışını geçersiz kılabilirsiniz $false . Winword işlem durduruldu.
Stop-Process -Name Winword -WhatIf:$false
Winword işleminin durdurulduğunu doğrulamak için kullanın Get-Process .
Get-Process -Name Winword
Get-Process : Cannot find a process with the name "Winword".
Verify the process name and call the cmdlet again.
At line:1 char:1
+ Get-Process -Name Winword