about_Preference_Variables

Krátký popis

Proměnné, které přizpůsobují chování PowerShellu.

Dlouhý popis

PowerShell obsahuje sadu proměnných, které umožňují přizpůsobit jeho chování. Tyto proměnné předvoleb fungují stejně jako možnosti v systémech založených na grafickém uživatelském rozhraní.

Proměnné předvoleb ovlivňují operační prostředí PowerShellu a všechny příkazy se v prostředí spouští. V mnoha případech mají rutiny parametry, které můžete použít k přepsání chování předvoleb pro konkrétní příkaz.

Následující tabulka uvádí proměnné předvoleb a jejich výchozí hodnoty.

Proměnná Výchozí hodnota
$ConfirmPreference High
$DebugPreference SilentlyContinue
$ErrorActionPreference Continue
$ErrorView ConciseView
$FormatEnumerationLimit 4
$InformationPreference SilentlyContinue
$LogCommandHealthEvent $False (nezaprotokolováno)
$LogCommandLifecycleEvent $False (nezaprotokolováno)
$LogEngineHealthEvent $True (protokolováno)
$LogEngineLifecycleEvent $True (protokolováno)
$LogProviderLifecycleEvent $True (protokolováno)
$LogProviderHealthEvent $True (protokolováno)
$MaximumHistoryCount 4096
$OFS Znak mezery (" ")
$OutputEncoding UTF8Encoding Objekt
$ProgressPreference Continue
$PSDefaultParameterValues @{} (prázdná tabulka hodnot hash)
$PSEmailServer $Null (žádné)
$PSModuleAutoLoadingPreference All
$PSSessionApplicationName 'wsman'
$PSSessionConfigurationName 'http://schemas.microsoft.com/powershell/Microsoft.PowerShell'
$PSSessionOption PSSessionOption Objekt
$Transcript $Null (žádné)
$VerbosePreference SilentlyContinue
$WarningPreference Continue
$WhatIfPreference $False

PowerShell obsahuje následující proměnné prostředí, které ukládají předvolby uživatelů. Další informace o těchto proměnných prostředí najdete v tématu about_Environment_Variables.

  • env:PSExecutionPolicyPreference
  • $env:PSModulePath

Poznámka

Změny proměnné předvoleb se projeví pouze ve skriptech a funkcích, pokud jsou tyto skripty nebo funkce definovány ve stejném oboru jako obor, ve kterém byla předvolba použita. Další informace najdete v tématu about_Scopes.

Práce s proměnnými předvoleb

Tento dokument popisuje každou z proměnných předvoleb.

Pokud chcete zobrazit aktuální hodnotu konkrétní proměnné předvoleb, zadejte název proměnné. Například následující příkaz zobrazí $ConfirmPreference hodnotu proměnné.

 $ConfirmPreference
High

Pokud chcete změnit hodnotu proměnné, použijte příkaz přiřazení. Například následující příkaz změní hodnotu parametru $ConfirmPreference na Střední.

$ConfirmPreference = "Medium"

Hodnoty, které nastavíte, jsou specifické pro aktuální relaci PowerShellu. Pokud chcete, aby proměnné byly efektivní ve všech relacích PowerShellu, přidejte je do svého profilu PowerShellu. Další informace najdete v tématu about_Profiles.

Práce na dálku

Když spouštíte příkazy na vzdáleném počítači, vzdálené příkazy podléhají jenom předvolbám nastaveným v klientovi PowerShellu vzdáleného počítače. Když například spustíte vzdálený příkaz, hodnota proměnné vzdáleného počítače $DebugPreference určuje, jak PowerShell reaguje na zprávy ladění.

Další informace o vzdálených příkazech najdete v tématu about_Remote.

$ConfirmPreference

Určuje, jestli vás PowerShell před spuštěním rutiny nebo funkce automaticky vyzve k potvrzení.

Proměnná $ConfirmPreference přebírá jednu z hodnotConfirmImpact Výčtové hodnoty: Vysoká, Střední, Nízká nebo Žádná.

Rutinám a funkcím se přiřazuje riziko Vysoké, Střední nebo Nízké. Pokud je hodnota $ConfirmPreference proměnné menší nebo rovna riziku přiřazeného rutině nebo funkci, PowerShell vás před spuštěním rutiny nebo funkce automaticky vyzve k potvrzení.

Pokud je hodnota $ConfirmPreference proměnné None, PowerShell vás před spuštěním rutiny nebo funkce nikdy automaticky nevytádí.

Pokud chcete změnit potvrzovací chování pro všechny rutiny a funkce v relaci, změňte $ConfirmPreference hodnotu proměnné.

Pokud chcete přepsat $ConfirmPreference parametr pro jeden příkaz, použijte parametr Confirm rutiny nebo funkce. Pokud chcete požádat o potvrzení, použijte -Confirm. Pokud chcete potlačit potvrzení, použijte -Confirm:$false.

Platné hodnoty :$ConfirmPreference

  • Žádné: PowerShell automaticky nezobrazí výzvu. Pokud chcete požádat o potvrzení konkrétního příkazu, použijte parametr Confirm rutiny nebo funkce.
  • Nízká: PowerShell před spuštěním rutin nebo funkcí s nízkým, středním nebo vysokým rizikem vyzve k potvrzení.
  • Střední: PowerShell před spuštěním rutin nebo funkcí se středním nebo vysokým rizikem vyzve k potvrzení.
  • Vysoké: PowerShell před spuštěním rutin nebo funkcí s vysokým rizikem vyzve k potvrzení.

Podrobné vysvětlení

PowerShell vás může před provedením akce automaticky vyzvat k potvrzení. Například když rutina nebo funkce výrazně ovlivní systém, aby odstranila data nebo používala značné množství systémových prostředků.

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

Odhad rizika je atributem rutiny nebo funkce označované jako ConfirmImpact. Uživatelé ho nemůžou změnit.

Rutiny a funkce, které můžou představovat riziko pro systém, mají parametr Confirm , který můžete použít k vyžádání nebo potlačení potvrzení jednoho příkazu.

Vzhledem k tomu, že většina rutin a funkcí používá výchozí hodnotu rizika ConfirmImpact z hodnoty Medium a výchozí hodnotu $ConfirmPreference je Vysoká, k automatickému potvrzení dochází zřídka. Automatické potvrzení však můžete aktivovat tak, že změníte hodnotu $ConfirmPreference na Střední nebo Nízká.

Příklady

Tento příklad ukazuje efekt $ConfirmPreference výchozí hodnoty proměnné Vysoká. Vysoká hodnota pouze potvrzuje vysoce rizikové rutiny a funkce. Vzhledem k tomu, že většina rutin a funkcí má střední riziko, nepotvrdí se automaticky a Remove-Item soubor se odstraní. Přidání -Confirm do příkazu zobrazí uživateli výzvu k potvrzení.

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

Použijte -Confirm k žádosti o potvrzení.

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

Následující příklad ukazuje účinek změny hodnoty $ConfirmPreference na Střední. Vzhledem k tomu, že většina rutin a funkcí má střední riziko, jsou automaticky potvrzeny. Pokud chcete potlačit potvrzovací výzvu pro jeden příkaz, použijte parametr Confirm s hodnotou $false.

$ConfirmPreference = "Medium"
Remove-Item -Path C:\temp2.txt
Confirm
Are you sure you want to perform this action?
Performing operation "Remove File" on Target "C:\temp2.txt".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All
[?] Help (default is "Y"):
Remove-Item -Path C:\temp3.txt -Confirm:$false

$DebugPreference

Určuje, jak PowerShell reaguje na zprávy ladění generované skriptem, rutinou nebo zprostředkovatelem nebo příkazem Write-Debug na příkazovém řádku.

Proměnná $DebugPreference přebírá jednu z hodnotActionPreference Hodnoty výčtu: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend nebo Break.

Některé rutiny zobrazují ladicí zprávy, což jsou obvykle technické zprávy určené pro programátory a pracovníky technické podpory. Ve výchozím nastavení se zprávy ladění nezobrazují, ale můžete je zobrazit změnou hodnoty $DebugPreference.

Běžný parametr Debug rutiny můžete použít k zobrazení nebo skrytí zpráv ladění pro konkrétní příkaz. Další informace najdete v tématu about_CommonParameters.

Platné hodnoty jsou následující:

  • Zastavit: Zobrazí ladicí zprávu a ukončí provádění. Zapíše chybu do konzoly.
  • Dotaz: Zobrazí ladicí zprávu a zeptá se, jestli chcete pokračovat. Přidání společného parametru Debug do příkazu, když je příkaz nakonfigurovaný tak, aby vygeneroval ladicí zprávu, změní hodnotu proměnné na $DebugPreferenceInquire.
  • Pokračovat: Zobrazí zprávu ladění a pokračuje v provádění.
  • SilentlyContinue: (Výchozí) Žádný efekt. Zpráva ladění se nezobrazí a provádění pokračuje bez přerušení.

Příklady

Následující příklady ukazují účinek změny hodnot $DebugPreference při Write-Debug zadání příkazu na příkazovém řádku. Tato změna ovlivní všechny zprávy ladění, včetně zpráv generovaných rutinami a skripty. Příklady ukazují parametr Debug , který zobrazuje nebo skryje ladicí zprávy související s jedním příkazem.

Tento příklad ukazuje efekt $DebugPreference výchozí hodnoty proměnné SilentlyContinue. Ve výchozím nastavení Write-Debug se zpráva o ladění rutiny nezobrazí a zpracování pokračuje. Při použití parametru Debug přepíše předvolbu pro jeden příkaz. Zobrazí se zpráva ladění.

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

Tento příklad ukazuje účinek $DebugPreference s continue hodnota. Zobrazí se zpráva ladění a příkaz pokračuje ve zpracování.

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

Tento příklad používá parametr Debug s hodnotou $false k potlačení zprávy pro jeden příkaz. Zpráva ladění se nezobrazí.

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

Tento příklad ukazuje účinek $DebugPreference nastavení na hodnotu Stop . Zobrazí se zpráva ladění a příkaz se zastaví.

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

Tento příklad používá parametr Debug s hodnotou $false k potlačení zprávy pro jeden příkaz. Zpráva ladění se nezobrazí a zpracování se nezastaví.

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

Tento příklad ukazuje účinek $DebugPreference nastavení na hodnotu Inquire . Zobrazí se zpráva ladění a uživateli se zobrazí výzva k potvrzení.

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

Tento příklad používá parametr Debug s hodnotou $false k potlačení zprávy pro jeden příkaz. Zpráva ladění se nezobrazí a zpracování pokračuje.

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

$ErrorActionPreference

Určuje, jak PowerShell reaguje na neukončující chybu, která nezastaví zpracování rutiny. Například na příkazovém řádku nebo ve skriptu, rutině nebo zprostředkovateli, jako jsou chyby generované rutinou Write-Error .

Proměnná $ErrorActionPreference přebírá jednu z hodnotActionPreference výčtové hodnoty: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend nebo Break.

Pomocí společného parametru ErrorAction rutiny můžete přepsat předvolbu pro konkrétní příkaz.

Platné hodnoty jsou následující:

  • Přerušení – zadejte ladicí program při výskytu chyby nebo při vyvolání výjimky.
  • Pokračovat: (Výchozí) Zobrazí chybovou zprávu a pokračuje v provádění.
  • Ignorovat: Potlačí chybovou zprávu a pokračuje v provádění příkazu. Hodnota Ignore (Ignorovat ) je určená pro jednotlivé příkazy, nikoli pro použití jako uložené předvolby. Ignore není platná hodnota proměnné $ErrorActionPreference .
  • Diagnostika: Zobrazí chybovou zprávu a zeptá se, jestli chcete pokračovat.
  • SilentlyContinue: Bez efektu. Chybová zpráva se nezobrazí a provádění pokračuje bez přerušení.
  • Stop: Zobrazí chybovou zprávu a zastaví provádění. Kromě vygenerované chyby vygeneruje hodnota Stop objekt ActionPreferenceStopException pro datový proud chyby.
  • Pozastavit: Automaticky pozastaví úlohu pracovního postupu, aby bylo možné provést další šetření. Po prošetření je možné pracovní postup obnovit. Hodnota Pozastavit je určená pro jednotlivé příkazy, nikoli pro použití jako uložené předvolby. Suspend není platná hodnota pro proměnnou $ErrorActionPreference .

$ErrorActionPreference Parametr ErrorAction nemá vliv na to, jak PowerShell reaguje na ukončující chyby, které zastaví zpracování rutin. Další informace o společném parametru ErrorAction najdete v tématu about_CommonParameters.

Příklady

Tyto příklady ukazují vliv různých hodnot $ErrorActionPreference proměnné. Parametr ErrorAction se používá k přepsání $ErrorActionPreference hodnoty.

Tento příklad ukazuje $ErrorActionPreference výchozí hodnotu Continue ( Pokračovat). Vygeneruje se neukončující chyba. Zpráva se zobrazí a zpracování pokračuje.

# 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

Tento příklad ukazuje $ErrorActionPreference výchozí hodnotu Inquire. Vygeneruje se chyba a zobrazí se výzva k akci.

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

Tento příklad ukazuje $ErrorActionPreference nastavení na SilentlyContinue. Chybová zpráva je potlačena.

# 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

Tento příklad ukazuje, že je nastavená $ErrorActionPreference na Zastavit. Zobrazuje také objekt navíc vygenerovaný do $Error proměnné .

# 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

Určuje formát zobrazení chybových zpráv v PowerShellu.

Proměnná $ErrorView přebírá jednu z hodnot výčtu ErrorView : NormalView, CategoryView nebo ConciseView.

Platné hodnoty jsou následující:

  • ConciseView: (Výchozí) Poskytuje stručnou chybovou zprávu a refaktorované zobrazení pro pokročilé tvůrce modulů. Od verze PowerShell 7.2 platí, že pokud chyba pochází z příkazového řádku nebo modulu skriptu, výstupem je chybová zpráva na jednom řádku. V opačném případě se zobrazí víceřádková chybová zpráva obsahující chybu a ukazatel na chybu, která ukazuje, kde na daném řádku dochází. Pokud terminál podporuje virtuální terminál, pak kódy barev ANSI slouží k poskytnutí barevného zvýraznění. Barvu motivu je možné změnit na adrese $Host.PrivateData.ErrorAccentColor. Pomocí Get-Error rutiny získáte komplexní podrobné zobrazení plně kvalifikované chyby, včetně vnitřních výjimek.

    V PowerShellu 7 byla přidána funkce ConciseView.

  • NormalView: Podrobné zobrazení navržené pro většinu uživatelů. Skládá se z popisu chyby a názvu objektu, který je součástí chyby.

  • CategoryView: Stručné strukturované zobrazení navržené pro produkční prostředí. Formát je následující:

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

Další informace o polích v CategoryView naleznete v tématu ErrorCategoryInfo třída.

Příklady

Tento příklad ukazuje, jak se zobrazí chyba, když hodnota $ErrorView je výchozí , ConciseView. Get-ChildItem se používá k vyhledání neexistující adresáře.

Get-ChildItem -path 'C:\NoRealDirectory'
Get-ChildItem: Cannot find path 'C:\NoRealDirectory' because it does not exist.

Tento příklad ukazuje, jak se zobrazí chyba, když hodnota $ErrorView je výchozí , ConciseView. Script.ps1 Aplikace se spustí a vyvolá chybu z Get-Item příkazu .

./Script.ps1
Get-Item: C:\Script.ps1
Line |
  11 | Get-Item -Path .\stuff
     | ^ Cannot find path 'C:\demo\stuff' because it does not exist.

Tento příklad ukazuje, jak se zobrazí chyba, když se hodnota $ErrorView změní na NormalView. Get-ChildItem se používá k vyhledání neexistující souboru.

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

Tento příklad ukazuje, jak se zobrazí stejná chyba, když se hodnota $ErrorView změní na CategoryView.

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

Tento příklad ukazuje, že hodnota ovlivňuje $ErrorView pouze zobrazení chyby. Nezmění strukturu objektu chyby, který je uložený v $Error automatické proměnné. Informace o automatické proměnné najdete v $Error tématu about_automatic_variables.

Následující příkaz vezme objekt ErrorRecord přidružený k nejnovější chybě v poli chyb, prvek 0, a naformátuje všechny vlastnosti objektu chyby v seznamu.

$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

Určuje, kolik položek výčtu je součástí zobrazení. Tato proměnná nemá vliv na podkladové objekty, ale jenom na zobrazení. Pokud je hodnota $FormatEnumerationLimit menší než počet položek výčtu, PowerShell přidá tři tečky (...), které označují položky, které se nezobrazují.

Platné hodnoty: Celá čísla (Int32)

Výchozí hodnota: 4

Příklady

Tento příklad ukazuje, jak použít proměnnou $FormatEnumerationLimit ke zlepšení zobrazení výčtu položek.

Příkaz v tomto příkladu vygeneruje tabulku, která vypíše všechny služby spuštěné v počítači ve dvou skupinách: jednu pro spuštěné služby a jednu pro zastavené služby. Pomocí Get-Service příkazu získá všechny služby a pak odešle výsledky prostřednictvím kanálu do Group-Object rutiny, která výsledky seskupí podle stavu služby.

Výsledkem je tabulka, která uvádí stav ve sloupci Název a procesy ve sloupci Skupina . Pokud chcete změnit popisky sloupců, použijte tabulku hash, viz about_Hash_Tables. Další informace najdete v příkladech v tématu Format-Table.

Vyhledá aktuální hodnotu .$FormatEnumerationLimit

$FormatEnumerationLimit
4

Vypíše všechny služby seskupené podle stavu. Ve sloupci Skupina jsou pro každý stav uvedené maximálně čtyři služby, protože $FormatEnumerationLimit má hodnotu 4.

Get-Service | Group-Object -Property Status
Count  Name       Group
-----  ----       -----
60     Running    {AdtAgent, ALG, Ati HotKey Poller, AudioSrv...}
41     Stopped    {Alerter, AppMgmt, aspnet_state, ATI Smart...}

Pokud chcete zvýšit počet uvedených položek, zvyšte hodnotu $FormatEnumerationLimit na 1000. Pomocí Get-Service a Group-Object zobrazte služby.

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

Pomocí Format-Table parametru Wrap zobrazte seznam služeb.

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

Proměnná $InformationPreference umožňuje nastavit předvolby informačního streamu, které se mají zobrazovat uživatelům. Konkrétně informační zprávy, které jste přidali do příkazů nebo skriptů přidáním rutiny Write-Information . Pokud se použije parametr InformationAction , jeho hodnota přepíše hodnotu $InformationPreference proměnné. Write-Information byl zaveden v PowerShellu 5.0.

Proměnná $InformationPreference přebírá jednu z hodnotActionPreference Hodnoty výčtu: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend nebo Break.

Platné hodnoty jsou následující:

  • Stop: Zastaví příkaz nebo skript při výskytu Write-Information příkazu.
  • Dotaz: Zobrazí informační zprávu, kterou zadáte v Write-Information příkazu, a pak se zeptá, jestli chcete pokračovat.
  • Pokračovat: Zobrazí informační zprávu a pokračuje v provozu.
  • Pozastavení je dostupné jenom pro pracovní postupy, které nejsou podporované v PowerShellu 6 a novějších verzích.
  • SilentlyContinue: (Výchozí) Žádný efekt. Informační zprávy se nezobrazují a skript pokračuje bez přerušení.

$Log*Událost

Proměnné předvoleb Log*Event určují, které typy událostí se zapisují do protokolu událostí PowerShellu v Prohlížeč událostí. Ve výchozím nastavení se protokolují pouze události modulu a zprostředkovatele. Můžete ale použít proměnné předvoleb Log*Event k přizpůsobení protokolu, například protokolování událostí o příkazech.

Proměnné předvoleb log*událostí jsou následující:

  • $LogCommandHealthEvent: Protokoluje chyby a výjimky při inicializaci a zpracování příkazu. Výchozí hodnota je $false (nezaprotokolováno).
  • $LogCommandLifecycleEvent: Zaznamenává spouštění a zastavování příkazů a kanálů příkazů a výjimky zabezpečení při zjišťování příkazů. Výchozí hodnota je $false (nezaprotokolováno).
  • $LogEngineHealthEvent: Protokoluje chyby a selhání relací. Výchozí hodnota je $true (protokolováno).
  • $LogEngineLifecycleEvent: Zaznamenává otevření a ukončení relací. Výchozí hodnota je $true (protokolováno).
  • $LogProviderHealthEvent: Protokoluje chyby zprostředkovatele, jako jsou chyby čtení a zápisu, chyby vyhledávání a chyby vyvolání. Výchozí hodnota je $true (protokolováno).
  • $LogProviderLifecycleEvent: Protokoluje přidání a odebrání zprostředkovatelů PowerShellu. Výchozí hodnota je $true (protokolováno). Informace o zprostředkovatelů PowerShellu najdete v tématu about_Providers.

Pokud chcete povolit Log*Event, zadejte proměnnou s hodnotou $true, například:

$LogCommandLifeCycleEvent = $true

Pokud chcete zakázat typ události, zadejte proměnnou s hodnotou $false, například:

$LogCommandLifeCycleEvent = $false

Události, které povolíte, platí jenom pro aktuální konzolu PowerShellu. Pokud chcete konfiguraci použít pro všechny konzoly, uložte nastavení proměnné do profilu PowerShellu. Další informace najdete v tématu about_Profiles.

$MaximumHistoryCount

Určuje, kolik příkazů je uloženo v historii příkazů pro aktuální relaci.

Platné hodnoty: 1 – 32768 (Int32)

Výchozí: 4096

Pokud chcete zjistit počet příkazů aktuálně uložených v historii příkazů, zadejte:

(Get-History).Count

Pokud chcete zobrazit příkazy uložené v historii relací, použijte rutinu Get-History . Další informace najdete v tématu about_History.

$OFS

Oddělovač výstupního pole (OFS) určuje znak, který odděluje prvky pole, které je převedeno na řetězec.

Platné hodnoty: Libovolný řetězec.

Výchozí: Mezera

Ve výchozím nastavení $OFS proměnná neexistuje a oddělovačem výstupního souboru je mezera, ale tuto proměnnou můžete přidat a nastavit ji na libovolný řetězec. Hodnotu $OFS v relaci můžete změnit zadáním $OFS="<value>"příkazu .

Poznámka

Pokud očekáváte výchozí hodnotu mezery (" ") ve skriptu, modulu nebo výstupu konfigurace, dávejte pozor, aby $OFS se výchozí hodnota nezměnila jinde v kódu.

Příklady

Tento příklad ukazuje, že mezera se používá k oddělení hodnot při převodu pole na řetězec. V tomto případě je pole celých čísel uloženo v proměnné a pak se proměnná přetypuje jako řetězec.

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

Pokud chcete změnit oddělovač, přidejte $OFS proměnnou tak, že k ní přiřadíte hodnotu. Proměnná musí mít název $OFS.

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

Pokud chcete obnovit výchozí chování, můžete k hodnotě proměnné přiřadit mezeru $OFS (" ") nebo ji odstranit. Následující příkazy odstraní proměnnou a pak ověří, že oddělovač je mezera.

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

$OutputEncoding

Určuje metodu kódování znaků, kterou PowerShell používá při odesílání textu do jiných aplikací.

Pokud například aplikace vrací řetězce Unicode do PowerShellu, může být potřeba změnit hodnotu na UnicodeEncoding , aby se znaky odeslaly správně.

Platné hodnoty jsou následující: Objekty odvozené od třídy Encoding, například ASCIIEncoding, UTF7Encoding, UTF8Encoding, UTF32Encoding a UnicodeEncoding.

Výchozí: Objekt UTF8Encoding .

Příklady

Tento příklad ukazuje, jak nastavit, aby příkaz Windowsfindstr.exe fungoval v PowerShellu na počítači, který je lokalizovaný pro jazyk, který používá znaky Unicode, například čínštinu.

První příkaz najde hodnotu $OutputEncoding. Vzhledem k tomu, že hodnota je objekt kódování, zobrazí se pouze jeho vlastnost EncodingName .

$OutputEncoding.EncodingName

V tomto příkladu se příkaz findstr.exe používá k vyhledání dvou čínských znaků, které jsou v Test.txt souboru. Když se tento příkazfindstr.exe spustí na příkazovém řádku systému Windows (cmd.exe), findstr.exe najde znaky v textovém souboru. Pokud ale spustíte stejný příkazfindstr.exe v PowerShellu, znaky se nenašly, protože PowerShell je odesílá dofindstr.exe v textu ASCII místo v textu Unicode.

findstr <Unicode-characters>

Pokud chcete, aby příkaz fungoval v PowerShellu, nastavte hodnotu $OutputEncoding na hodnotu vlastnosti OutputEncoding konzoly, která je založená na národním prostředí vybraném pro Windows. Vzhledem k tomu, že OutputEncoding je statická vlastnost konzoly, použijte v příkazu dvojitou dvojtečku (::).

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

Po změně kódování findstr.exepříkaz najde znaky Unicode.

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

$ProgressPreference

Určuje, jak PowerShell reaguje na aktualizace průběhu vygenerované skriptem, rutinou nebo zprostředkovatelem, například indikátory průběhu vygenerované rutinou Write-Progress . Rutina Write-Progress vytvoří indikátory průběhu, které zobrazují stav příkazu.

Proměnná $ProgressPreference přebírá jednu z hodnotActionPreference Hodnoty výčtu: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend nebo Break.

Platné hodnoty jsou následující:

  • Stop: Nezobrazuje indikátor průběhu. Místo toho zobrazí chybovou zprávu a ukončí provádění.
  • Inquire: Nezobrazuje indikátor průběhu. Zobrazí výzvu k zadání oprávnění k pokračování. Pokud odpovíte pomocí Y nebo A, zobrazí se indikátor průběhu.
  • Pokračovat: (Výchozí) Zobrazí indikátor průběhu a pokračuje v provádění.
  • SilentlyContinue: Spustí příkaz, ale nezobrazí indikátor průběhu.

$PSDefaultParameterValues

Určuje výchozí hodnoty parametrů rutin a pokročilých funkcí. Hodnota $PSDefaultParameterValues je tabulka hash, kde klíč se skládá z názvu rutiny a názvu parametru odděleného dvojtečka (:). Hodnota je vlastní výchozí hodnota, kterou zadáte.

$PSDefaultParameterValues byl zaveden v PowerShellu 3.0.

Další informace o této proměnné předvoleb najdete v tématu about_Parameters_Default_Values.

$PSEmailServer

Určuje výchozí e-mailový server, který se používá k odesílání e-mailových zpráv. Tuto proměnnou předvoleb používají rutiny, které odesílají e-maily, jako je například rutina Send-MailMessage .

$PSModuleAutoloadingPreference

Povolí a zakáže automatický import modulů v relaci. Vše je výchozí. Pokud chcete importovat modul, získejte nebo použijte libovolný příkaz v modulu. Použijte Get-Commandnapříklad . Proměnná $PSModuleAutoloadingPreference ve výchozím nastavení neexistuje. Výchozí chování, když proměnná není definovaná, je stejné jako $PSModuleAutoloadingPreference = 'All'.

Bez ohledu na hodnotu proměnné můžete k importu modulu použít Import-Module .

Proměnná $PSModuleAutoloadingPreference přebírá jednu z hodnotPSModuleAutoLoadingPreference Hodnoty výčtu: None, ModuleQualified nebo All.

Platné hodnoty jsou:

  • Vše: Moduly se automaticky importují při prvním použití.
  • ModuleQualified: Moduly se importují automaticky, jenom když uživatel použije v modulu kvalifikovaný název příkazu. Pokud například uživatel zadá MyModule\MyCommand, PowerShell naimportuje modul MyModule .
  • Žádné: Automatický import modulů je v relaci zakázaný. K importu modulu použijte rutinu Import-Module .

Další informace o automatickém importu modulů najdete v tématu about_Modules.

$PSNativeCommandArgumentPassing

Poznámka

$PSNativeCommandArgumentPassing je k dispozici pouze v případech, kdy je povolená PSNativeCommandArgumentPassing experimentální funkce. Další informace najdete v tématech about_Experimental_Features a Používání experimentálních funkcí.

Pokud je tato experimentální funkce povolená, PowerShell při vyvolání nativního spustitelného StartProcessInfo souboru používá ArgumentList vlastnost objektu místo našeho aktuálního mechanismu rekonstrukce řetězce.

Upozornění

Nové chování představuje zásadní změnu oproti aktuálnímu chování. To může narušit skripty a automatizaci, které řeší různé problémy při vyvolání nativních aplikací. Historicky musí být uvozovky řídicí a není možné nativní aplikaci poskytnout prázdné argumenty.

Tato funkce přidá novou automatickou proměnnou $PSNativeCommandArgumentPassing , která umožňuje vybrat chování za běhu. Platné hodnoty jsou Legacy, Standarda Windows. Legacy je historické chování. Výchozí hodnota, pokud je experimentální funkce povolená, je nové Standard chování.

Pokud je proměnná předvoleb nastavená na Windows vyvolání následujících souborů, automaticky použijte předávání argumentu Legacy stylu.

  • cmd.exe
  • cscript.exe
  • wscript.exe
  • končící na .bat
  • končící na .cmd
  • končící na .js
  • končící na .vbs
  • končící na .wsf

$PSNativeArgumentPassing Pokud je hodnota nastavena na nebo StandardLegacy , kontrola těchto souborů se neprojeví. Výchozí chování je specifické pro platformu. Na platformách Windows je Windows výchozí nastavení a jiné platformy než Windows jsou Standard.

Nová chování zpřístupněná touto změnou:

  • Literálové nebo rozbalitelné řetězce s vloženými uvozovkami se teď zachovají:

    PS > $a = 'a" "b'
    PS > $PSNativeCommandArgumentPassing = "Legacy"
    PS > testexe -echoargs $a 'a" "b' a" "b
    Arg 0 is <a b>
    Arg 1 is <a b>
    Arg 2 is <a b>
    PS > $PSNativeCommandArgumentPassing = "Standard"
    PS > testexe -echoargs $a 'a" "b' a" "b
    Arg 0 is <a" "b>
    Arg 1 is <a" "b>
    Arg 2 is <a b>
    
  • Prázdné řetězce jako argumenty se teď zachovají:

    PS>  $PSNativeCommandArgumentPassing = "Legacy"
    PS> testexe -echoargs '' a b ''
    Arg 0 is <a>
    Arg 1 is <b>
    PS> $PSNativeCommandArgumentPassing = "Standard"
    PS> testexe -echoargs '' a b ''
    Arg 0 is <>
    Arg 1 is <a>
    Arg 2 is <b>
    Arg 3 is <>
    

Nové chování nezmění volání, která vypadají takto:

PS> $PSNativeCommandArgumentPassing = "Legacy"
PS> testexe -echoargs -k com:port=\\devbox\pipe\debug,pipe,resets=0,reconnect
Arg 0 is <-k>
Arg 1 is <com:port=\\devbox\pipe\debug,pipe,resets=0,reconnect>
PS> $PSNativeCommandArgumentPassing = "Standard"
PS> testexe -echoargs -k com:port=\\devbox\pipe\debug,pipe,resets=0,reconnect
Arg 0 is <-k>
Arg 1 is <com:port=\\devbox\pipe\debug,pipe,resets=0,reconnect>

Kromě toho je nyní k dispozici trasování parametrů, takže Trace-Command poskytuje užitečné informace pro ladění.

PS> $PSNativeCommandArgumentPassing = "Legacy"
PS> trace-command -PSHOST -Name ParameterBinding { testexe -echoargs $a 'a" "b' a" "b }
DEBUG: 2021-02-01 17:19:53.6438 ParameterBinding Information: 0 : BIND NAMED native application line args [/Users/james/src/github/forks/jameswtruher/PowerShell-1/test/tools/TestExe/bin/testexe]
DEBUG: 2021-02-01 17:19:53.6440 ParameterBinding Information: 0 :     BIND argument [-echoargs a" "b a" "b "a b"]
DEBUG: 2021-02-01 17:19:53.6522 ParameterBinding Information: 0 : CALLING BeginProcessing
Arg 0 is <a b>
Arg 1 is <a b>
Arg 2 is <a b>
PS> $PSNativeCommandArgumentPassing = "Standard"
PS> trace-command -PSHOST -Name ParameterBinding { testexe -echoargs $a 'a" "b' a" "b }
DEBUG: 2021-02-01 17:20:01.9829 ParameterBinding Information: 0 : BIND NAMED native application line args [/Users/james/src/github/forks/jameswtruher/PowerShell-1/test/tools/TestExe/bin/testexe]
DEBUG: 2021-02-01 17:20:01.9829 ParameterBinding Information: 0 :     BIND cmd line arg [-echoargs] to position [0]
DEBUG: 2021-02-01 17:20:01.9830 ParameterBinding Information: 0 :     BIND cmd line arg [a" "b] to position [1]
DEBUG: 2021-02-01 17:20:01.9830 ParameterBinding Information: 0 :     BIND cmd line arg [a" "b] to position [2]
DEBUG: 2021-02-01 17:20:01.9831 ParameterBinding Information: 0 :     BIND cmd line arg [a b] to position [3]
DEBUG: 2021-02-01 17:20:01.9908 ParameterBinding Information: 0 : CALLING BeginProcessing
Arg 0 is <a" "b>
Arg 1 is <a" "b>
Arg 2 is <a b>

$PSNativeCommandUseErrorActionPreference

Tato proměnná předvoleb je dostupná jenom v PowerShellu 7.3 s povolenou PSNativeCommandErrorActionPreference funkcí.

Když je tato funkce povolená, nativní příkazy s nenulovými ukončovacími kódy vydávají chyby podle toho $ErrorActionPreference , kdy $PSNativeCommandUseErrorActionPreference je $true.

Další informace najdete v tématu PSNativeCommandErrorActionPreference.

$PSSessionApplicationName

Určuje výchozí název aplikace pro vzdálený příkaz, který používá technologii WS-Management (Web Services for Management). Další informace najdete v tématu Vzdálená správa systému Windows.

Výchozí název aplikace systému je WSMAN, ale tuto proměnnou předvoleb můžete použít ke změně výchozího nastavení.

Název aplikace je posledním uzlem v identifikátoru URI připojení. Například název aplikace v následujícím ukázkovém identifikátoru URI je WSMAN.

http://Server01:8080/WSMAN

Výchozí název aplikace se použije, když vzdálený příkaz nezadá identifikátor URI připojení nebo název aplikace.

Služba WinRM používá název aplikace k výběru naslouchacího procesu pro obsluhu žádosti o připojení. Hodnota parametru by se měla shodovat s hodnotou vlastnosti URLPrefix naslouchacího procesu ve vzdáleném počítači.

Pokud chcete přepsat výchozí nastavení systému a hodnotu této proměnné a vybrat jiný název aplikace pro konkrétní relaci, použijte parametry ConnectionURI nebo ApplicationName rutin New-PSSession, Enter-PSSession nebo Invoke-Command .

Proměnná $PSSessionApplicationName předvolby je nastavena v místním počítači, ale určuje naslouchací proces na vzdáleném počítači. Pokud zadaný název aplikace ve vzdáleném počítači neexistuje, příkaz k navázání relace selže.

$PSSessionConfigurationName

Určuje výchozí konfiguraci relace, která se používá pro pssession vytvořené v aktuální relaci.

Tato proměnná předvoleb je nastavena v místním počítači, ale určuje konfiguraci relace, která se nachází ve vzdáleném počítači.

Hodnota $PSSessionConfigurationName proměnné je plně kvalifikovaný identifikátor URI prostředku.

Výchozí hodnota http://schemas.microsoft.com/PowerShell/microsoft.PowerShell označuje konfiguraci relace Microsoft.PowerShellu na vzdáleném počítači.

Pokud zadáte pouze název konfigurace, je předem zadán následující identifikátor URI schématu:

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

Můžete přepsat výchozí a vybrat jinou konfiguraci relace pro konkrétní relaci pomocí parametru New-PSSessionConfigurationName rutin , Enter-PSSessionneboInvoke-Command.

Hodnotu této proměnné můžete kdykoli změnit. Pokud to uděláte, nezapomeňte, že vybraná konfigurace relace musí existovat na vzdáleném počítači. Pokud ne, příkaz k vytvoření relace, která používá konfiguraci relace, selže.

Tato proměnná předvoleb neurčí, které konfigurace místní relace se použijí, když vzdálení uživatelé vytvoří relaci, která se připojí k tomuto počítači. Pomocí oprávnění pro konfigurace místní relace však můžete určit, kteří uživatelé je mohou používat.

$PSSessionOption

Vytvoří výchozí hodnoty pro rozšířené možnosti uživatele ve vzdálené relaci. Tyto předvolby možností přepíšou výchozí systémové hodnoty pro možnosti relace.

Proměnná $PSSessionOption obsahuje objekt PSSessionOption . Další informace najdete v tématu System.Management.Automation.Remoting.PSSessionOption. Každá vlastnost objektu představuje možnost relace. Například vlastnost NoCompression změní kompresi dat během relace.

Ve výchozím nastavení $PSSessionOption proměnná obsahuje objekt PSSessionOption s výchozími hodnotami pro všechny možnosti, jak je znázorněno níže.

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

Popisy těchto možností a další informace najdete v tématu New-PSSessionOption. Další informace o vzdálených příkazech a relacích najdete v tématu about_Remote a about_PSSessions.

Pokud chcete změnit hodnotu $PSSessionOption proměnné předvoleb, pomocí rutiny New-PSSessionOption vytvořte objekt PSSessionOption s hodnotami voleb, kterým dáváte přednost. Uložte výstup do proměnné s názvem $PSSessionOption.

$PSSessionOption = New-PSSessionOption -NoCompression

Pokud chcete použít proměnnou $PSSessionOption předvoleb v každé relaci PowerShellu, přidejte do profilu PowerShellu New-PSSessionOption příkaz, který proměnnou vytvoří $PSSessionOption . Další informace najdete v tématu about_Profiles.

Můžete nastavit vlastní možnosti pro konkrétní vzdálenou relaci. Možnosti, které nastavíte, mají přednost před výchozími nastaveními systému a hodnotou $PSSessionOption proměnné předvoleb.

Pokud chcete nastavit vlastní možnosti relace, pomocí rutiny New-PSSessionOption vytvořte objekt PSSessionOption . Pak použijte objekt PSSessionOption jako hodnotu parametru SessionOption v rutinách, které vytvářejí relaci, například New-PSSession, Enter-PSSessiona Invoke-Command.

$PSStyle

Od PowerShellu 7.2 teď máte přístup k $PSStyle automatické proměnné, abyste mohli zobrazit a změnit vykreslování výstupu řetězce ANSI. Proměnná obsahuje následující vlastnosti:

  • Reset – vypne všechny dekorace.
  • Blink – zapne Blink
  • BlinkOff – vypne Blink.
  • Tučné – zapne tučné písmo.
  • BoldOff – vypne tučné písmo.
  • Skryté – zapne skrytí.
  • HiddenOff – vypne skryté
  • Reverse – zapíná zpětnou tísní
  • ReverseOff – vypne zpětnou nulu.
  • Kurzíva – zapne kurzívu.
  • Kurzíva – vypne kurzívu.
  • Podtržení – zapne podtržení.
  • UnderlineOff – vypne podtržení.
  • OutputRendering – řízení, kdy se používá vykreslování výstupu.
  • Pozadí – vnořený objekt pro ovládání barev pozadí
  • Popředí – vnořený objekt pro řízení barvení popředí
  • Formátování – vnořený objekt, který řídí výchozí formátování výstupních datových proudů.
  • Progress – vnořený objekt, který řídí vykreslování indikátorů průběhu.
  • FileInfo – (experimentální) vnořený objekt pro řízení barvení objektů FileInfo .

Základní členy vrací řetězce řídicích sekvencí ANSI namapovaných na jejich názvy. Hodnoty jsou nastavené tak, aby bylo možné přizpůsobit. Můžete například změnit tučné na podtržené. Názvy vlastností usnadňují vytváření zdobených řetězců pomocí dokončování tabulátoru:

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

Následující členové určují, jak a kdy se formátování ANSI používá:

  • $PSStyle.OutputRenderingSystem.Management.Automation.OutputRendering je výčet s hodnotami:

    • ANSI: Toto je výchozí chování. ANSI se vždy předává tak, jak je.

      Důležité

      Režim ANSI byste měli použít při přesměrování výstupu do souboru nebo kanálu, který má být spuštěn v podřízené instanci. Tím se zajistí, že se výstup nezmění. Použití jakéhokoli jiného režimu změní výstup odebráním řídicích sekvencí ANSI, což může změnit chování provádění.

    • Prostý text: Řídicí sekvence ANSI jsou vždy odstraněné, takže jde pouze o prostý text.

    • Hostitel: Řídicí sekvence ANSI se odeberou ve výstupu s přesměrováním nebo kanálem.

  • Členy $PSStyle.Background a $PSStyle.Foreground jsou řetězce, které obsahují řídicí sekvence ANSI pro 16 standardních barev konzoly.

    • Black
    • Světlá Sčerná
    • White
    • SvětléWhite
    • Red
    • BrightRed
    • Purpurová
    • BrightMagenta
    • Blue
    • BrightBlue
    • Azurová
    • BrightCyan
    • Green
    • Světlé zelené
    • Žlutý
    • Světlá

    Hodnoty jsou nastavitelné a můžou obsahovat libovolný počet řídicích sekvencí ANSI. Existuje také FromRgb() metoda pro určení 24bitové barvy. Existují dva způsoby volání FromRgb() metody.

    • string FromRgb(byte red, byte green, byte blue)
    • string FromRgb(int rgb)

    Některý z následujících příkladů nastaví barvu pozadí 24bitové béžové barvy.

    $PSStyle.Background.FromRgb(245, 245, 220)
    $PSStyle.Background.FromRgb(0xf5f5dc)
    
  • $PSStyle.Formatting je vnořený objekt, který řídí výchozí formátování zpráv ladění, chyb, podrobných zpráv a upozornění. Můžete také řídit atributy, jako je tučné písmo a podtržení. Nahrazuje $Host.PrivateData jako způsob správy barev pro formátování vykreslování. $Host.PrivateData nadále existuje pro zpětnou kompatibilitu, ale není připojen k $PSStyle.Formatting.

  • $PSStyle.Progress umožňuje řídit vykreslování pruhu zobrazení průběhu.

    • Style – řetězec ANSI, který nastavuje styl vykreslování.
    • MaxWidth – nastaví maximální šířku zobrazení. Nastavte na 0 šířku konzoly. Výchozí hodnota je 120
    • View – výčet s hodnotami Minimal a Classic. Classic je stávající vykreslování beze změn. Minimal je vykreslení s minimálním počtem řádků. Minimal je výchozí možnost.
    • UseOSCIndicator – výchozí hodnota je $false. Tuto možnost nastavte na $true pro terminály, které podporují indikátory OSC.

    Poznámka

    Pokud hostitel virtuální terminál nepodporuje, $PSStyle.Progress.View nastaví se automaticky na Classichodnotu .

    Následující příklad nastaví styl vykreslování na minimální indikátor průběhu.

    $PSStyle.Progress.View = Minimal
    

$PSStyle.FileInfo je vnořený objekt, který řídí barvení objektů FileInfo .

  • Adresář – předdefinovaný člen pro určení barvy adresářů
  • Symbolický odkaz – předdefinovaný člen pro určení barvy symbolických odkazů
  • Spustitelný soubor – předdefinovaný člen pro určení barvy spustitelných souborů.
  • Přípona – Tento člen slouží k definování barev pro různé přípony souborů. Člen rozšíření předem zahrnuje rozšíření pro archivní soubory a soubory PowerShellu.

Poznámka

$PSStyle.FileInfo je k dispozici pouze v případech, kdy je povolená PSAnsiRenderingFileInfo experimentální funkce. Další informace najdete v tématech about_Experimental_Features a Používání experimentálních funkcí.

V PowerShellu 7.3-preview.8 PSAnsiRenderingFileInfo se tato funkce stala standardní a ve výchozím nastavení dostupná.

$Transcript

Používá se Start-Transcript k zadání názvu a umístění souboru přepisu. Pokud nezadáte hodnotu parametru Path , Start-Transcript použije cestu v hodnotě $Transcript globální proměnné. Pokud jste tuto proměnnou nevytvořili, Start-Transcript uloží přepisy v adresáři $HOME\My Documents jako \PowerShell_transcript.<time-stamp>.txt soubory.

$VerbosePreference

Určuje, jak PowerShell reaguje na podrobné zprávy vygenerované skriptem, rutinou nebo zprostředkovatelem, jako jsou zprávy vygenerované rutinou Write-Verbose . Podrobné zprávy popisují akce provedené při spuštění příkazu.

Ve výchozím nastavení se podrobné zprávy nezobrazují, ale toto chování můžete změnit změnou hodnoty $VerbosePreference.

Proměnná $VerbosePreference přebírá jednu z hodnotActionPreference Hodnoty výčtu: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend nebo Break.

Platné hodnoty jsou následující:

  • Stop: Zobrazí podrobnou zprávu a chybovou zprávu a pak se zastaví.
  • Dotaz: Zobrazí podrobnou zprávu a pak zobrazí výzvu s dotazem, jestli chcete pokračovat.
  • Pokračovat: Zobrazí podrobnou zprávu a pak pokračuje v provádění.
  • SilentlyContinue: (Výchozí) Nezobrazuje podrobnou zprávu. Pokračuje v provádění.

Pomocí společného parametru Verbose rutiny můžete zobrazit nebo skrýt podrobné zprávy pro konkrétní příkaz. Další informace najdete v tématu about_CommonParameters.

Příklady

Tyto příklady ukazují účinek různých hodnot $VerbosePreference a parametru Verbose na přepsání hodnoty předvolby.

Tento příklad ukazuje efekt hodnoty SilentlyContinue , která je výchozí. Příkaz používá parametr Message , ale nezapisuje zprávu do konzoly PowerShellu.

Write-Verbose -Message "Verbose message test."

Při použití parametru Verbose se zpráva zapíše.

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

Tento příklad ukazuje účinek hodnoty Pokračovat . Proměnná $VerbosePreference je nastavená na Pokračovat a zobrazí se zpráva.

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

V tomto příkladu se používá parametr Verbose s hodnotou $false , která přepíše hodnotu Continue . Zpráva se nezobrazí.

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

Tento příklad ukazuje účinek hodnoty Stop . Proměnná $VerbosePreference je nastavená na Zastavit a zobrazí se zpráva. Příkaz je zastaven.

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

V tomto příkladu se používá parametr Verbose s hodnotou $false , která přepíše hodnotu Stop . Zpráva se nezobrazí.

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

Tento příklad ukazuje účinek inquire hodnota. Proměnná $VerbosePreference je nastavená na Inquire. Zobrazí se zpráva a uživatel bude vyzván k potvrzení.

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

V tomto příkladu se používá podrobný parametr s hodnotou $false , která přepíše hodnotu Inquire . Uživateli se nezobrazí výzva a zpráva se nezobrazí.

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

$WarningPreference

Určuje, jak PowerShell reaguje na varovné zprávy vygenerované skriptem, rutinou nebo zprostředkovatelem, jako jsou zprávy vygenerované rutinou Write-Warning .

Ve výchozím nastavení se zobrazují varovné zprávy a provádění pokračuje, ale toto chování můžete změnit změnou hodnoty $WarningPreference.

Proměnná $WarningPreference přebírá jednu z hodnotActionPreference výčtové hodnoty: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend nebo Break.

Platné hodnoty jsou následující:

  • Zastavit: Zobrazí upozornění a chybovou zprávu a pak se zastaví.
  • Inquire (Diagnostika): Zobrazí zprávu upozornění a pak zobrazí výzvu k zadání oprávnění k pokračování.
  • Pokračovat: (Výchozí) Zobrazí zprávu upozornění a pak pokračuje v provádění.
  • SilentlyContinue: Nezobrazuje zprávu upozornění. Pokračuje v provádění.

Pomocí společného parametru WarningAction rutiny můžete určit, jak PowerShell reaguje na upozornění z konkrétního příkazu. Další informace najdete v tématu about_CommonParameters.

Příklady

Tyto příklady ukazují účinek různých hodnot .$WarningPreference Parametr WarningAction přepíše hodnotu předvolby.

Tento příklad ukazuje efekt výchozí hodnoty Continue (Pokračovat).

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

Tento příklad používá WarningAction parametr s hodnotou SilentlyContinue k potlačení upozornění. Zpráva se nezobrazí.

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

Tento příklad změní proměnnou $WarningPreference na hodnotu SilentlyContinue . Zpráva se nezobrazí.

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

Tento příklad používá WarningAction parametr zastavit při vygenerování upozornění.

$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

Tento příklad změní proměnnou $WarningPreference na hodnotu Inquire . Uživateli se zobrazí výzva k potvrzení.

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

Tento příklad používá WarningAction parametr s hodnotou SilentlyContinue. Příkaz se bude dál spouštět a nezobrazí se žádná zpráva.

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

Tento příklad změní hodnotu na $WarningPreferenceStop.

$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

Tento příklad používá WarningAction s inquire hodnotu. Když se zobrazí upozornění, zobrazí se uživateli výzva.

$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

Určuje, zda WhatIf je automaticky povolen pro každý příkaz, který ji podporuje. Když je povolená funkce WhatIf , rutina hlásí očekávaný účinek příkazu, ale nespustí příkaz.

Platné hodnoty jsou následující:

  • False (0, not enabled): (Výchozí) Funkce WhatIf není automaticky povolená. Pokud ho chcete povolit ručně, použijte parametr WhatIf rutiny.
  • Pravda (1, povoleno): Funkce WhatIf se automaticky povolí u každého příkazu, který ho podporuje. Uživatelé ho můžou ručně zakázat pomocí parametru WhatIf s hodnotou False , například -WhatIf:$false.

Příklady

Tyto příklady ukazují účinek různých hodnot .$WhatIfPreference Ukazují, jak pomocí parametru WhatIf přepsat hodnotu předvolby pro konkrétní příkaz.

Tento příklad ukazuje účinek $WhatIfPreference proměnné nastavené na výchozí hodnotu False. Pomocí příkazu Get-ChildItem ověřte, že soubor existuje. Remove-Item odstraní soubor. Po odstranění souboru můžete odstranění ověřit pomocí příkazu 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

Tento příklad ukazuje účinek použití WhatIf parametr, když hodnota $WhatIfPreference je False.

Ověřte, že soubor existuje.

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

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

Pomocí parametru WhatIf určete výsledek pokusu o odstranění souboru.

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

Ověřte, že se soubor neodstranil.

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

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

Tento příklad ukazuje účinek $WhatIfPreference proměnné nastavené na hodnotu True. Když k odstranění souboru použijete Remove-Item příkaz , zobrazí se cesta k souboru, ale soubor se neodstraní.

Pokus o odstranění souboru Zobrazí se zpráva o tom, co by se stalo Remove-Item při spuštění, ale soubor se neodstraní.

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

Pomocí příkazu Get-ChildItem ověřte, že se soubor neodstranil.

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

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

Tento příklad ukazuje, jak odstranit soubor, když je hodnota $WhatIfPreferenceTrue. Používá parametr WhatIf s hodnotou $false. Pomocí příkazu Get-ChildItem ověřte, že byl soubor odstraně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

Následují příklady rutiny Get-Process , která nepodporuje WhatIf a Stop-Process která podporuje WhatIf. Hodnota $WhatIfPreference proměnné je True.

Get-Process nepodporuje WhatIf. Při spuštění příkazu se zobrazí proces Winword .

Get-Process -Name Winword
 NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
 ------    -----      -----     ------      --  -- -----------
    130   119.84     173.38       8.39   15024   4 WINWORD

Stop-Process podporuje WhatIf. Proces Winword není zastaven.

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

Chování WhatIf můžete přepsat Stop-Process pomocí parametru WhatIf s hodnotou $false. Proces Winword je zastaven.

Stop-Process -Name Winword -WhatIf:$false

Pokud chcete ověřit, že se proces Winword zastavil, použijte 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

Viz také