about_Preference_Variables

Rövid leírás

A PowerShell viselkedését testre szabó változók.

Hosszú leírás

A PowerShell változók készletét tartalmazza, amelyekkel testre szabhatja a viselkedését. Ezek a beállításváltozók a grafikus felhasználói felületen alapuló rendszerek beállításaihoz hasonlóan működnek.

A preferenciaváltozók hatással vannak a PowerShell üzemeltetési környezetére, és az összes parancs a környezetben fut. A parancsmagok sok esetben paraméterekkel rendelkeznek, amelyekkel felülbírálható egy adott parancs preferenciális viselkedése.

Az alábbi táblázat a beállítási változókat és azok alapértelmezett értékeit sorolja fel.

Változó Alapértelmezett érték
$ConfirmPreference High
$DebugPreference SilentlyContinue
$ErrorActionPreference Continue
$ErrorView ConciseView
$FormatEnumerationLimit 4
$InformationPreference SilentlyContinue
$LogCommandHealthEvent $False (nincs naplózva)
$LogCommandLifecycleEvent $False (nincs naplózva)
$LogEngineHealthEvent $True (naplózott)
$LogEngineLifecycleEvent $True (naplózott)
$LogProviderLifecycleEvent $True (naplózott)
$LogProviderHealthEvent $True (naplózott)
$MaximumHistoryCount 4096
$OFS Szóköz karakter (" ")
$OutputEncoding UTF8Encoding tárgy
$ProgressPreference Continue
$PSDefaultParameterValues @{} (üres kivonattábla)
$PSEmailServer $Null (nincs)
$PSModuleAutoLoadingPreference All
$PSSessionApplicationName 'wsman'
$PSSessionConfigurationName 'http://schemas.microsoft.com/powershell/Microsoft.PowerShell'
$PSSessionOption PSSessionOption tárgy
$Transcript $Null (nincs)
$VerbosePreference SilentlyContinue
$WarningPreference Continue
$WhatIfPreference $False

A PowerShell a következő környezeti változókat tartalmazza, amelyek a felhasználói beállításokat tárolják. További információ ezekről a környezeti változókról: about_Environment_Variables.

  • env:PSExecutionPolicyPreference
  • $env:PSModulePath

Megjegyzés

A beállításváltozó módosításai csak akkor lépnek érvénybe a parancsfájlokban és függvényekben, ha ezek a szkriptek vagy függvények ugyanabban a hatókörben vannak definiálva, mint a beállítás hatóköre. További információ: about_Scopes.

Beállításváltozók használata

Ez a dokumentum az egyes beállításváltozókat ismerteti.

Egy adott beállítási változó aktuális értékének megjelenítéséhez írja be a változó nevét. A következő parancs például a $ConfirmPreference változó értékét jeleníti meg.

 $ConfirmPreference
High

Egy változó értékének módosításához használjon hozzárendelési utasítást. Az alábbi utasítás például Közepes értékre módosítja a $ConfirmPreference paraméter értékét.

$ConfirmPreference = "Medium"

A beállított értékek az aktuális PowerShell-munkamenetre vonatkoznak. Ahhoz, hogy a változók minden PowerShell-munkamenetben hatékonyak legyenek, vegye fel őket a PowerShell-profiljába. További információ: about_Profiles.

Távoli munkavégzés

Ha távoli számítógépen futtat parancsokat, a távoli parancsokra csak a távoli számítógép PowerShell-ügyfélprogramjában megadott beállítások vonatkoznak. Távoli parancs futtatásakor például a távoli számítógép $DebugPreference változójának értéke határozza meg, hogy a PowerShell hogyan reagál a hibakeresési üzenetekre.

További információ a távoli parancsokról: about_Remote.

$ConfirmPreference

Meghatározza, hogy a PowerShell automatikusan megerősítést kér-e a parancsmagok vagy függvények futtatása előtt.

A $ConfirmPreference változó aConfirmImpact enumerálási értékek: Magas, Közepes, Alacsony vagy Nincs.

A parancsmagok és függvények magas, közepes vagy alacsony kockázattal vannak elosztva. Ha a $ConfirmPreference változó értéke kisebb vagy egyenlő egy parancsmaghoz vagy függvényhez rendelt kockázattal, a PowerShell automatikusan megerősítést kér a parancsmag vagy függvény futtatása előtt.

Ha a változó értéke Nincs, a $ConfirmPreference PowerShell soha nem kéri automatikusan, mielőtt parancsmagot vagy függvényt futtat.

A munkamenetben lévő összes parancsmag és függvény megerősítési viselkedésének módosításához módosítsa $ConfirmPreference a változó értékét.

Egyetlen parancs felülbírálásához $ConfirmPreference használja egy parancsmag vagy függvény Confirm paraméterét. Megerősítés kéréséhez használja a következőt -Confirm: . A megerősítés letiltásához használja a következőt -Confirm:$false: .

A következő $ConfirmPreferenceérvényes értékei:

  • Nincs: A PowerShell nem kéri automatikusan. Egy adott parancs megerősítésének kéréséhez használja a parancsmag vagy függvény Confirm paraméterét.
  • Alacsony: A PowerShell megerősítést kér, mielőtt alacsony, közepes vagy magas kockázatú parancsmagokat vagy függvényeket futtat.
  • Közepes: A PowerShell megerősítést kér, mielőtt közepes vagy magas kockázatú parancsmagokat vagy függvényeket futtat.
  • Magas: A PowerShell megerősítést kér, mielőtt magas kockázatú parancsmagokat vagy függvényeket futtat.

Részletes magyarázat

A PowerShell automatikusan megerősítést tud kérni a művelet végrehajtása előtt. Ha például a parancsmag vagy a funkció jelentősen befolyásolja a rendszert az adatok törlésére vagy jelentős mennyiségű rendszererőforrás használatára.

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

A kockázat becslése a parancsmag vagy a ConfirmImpact függvény attribútuma. A felhasználók nem módosíthatják.

Az olyan parancsmagok és függvények, amelyek kockázatot jelenthetnek a rendszerre, rendelkeznek egy Confirm paraméterrel, amellyel egyetlen parancs megerősítését kérheti le vagy tilthatja le.

Mivel a legtöbb parancsmag és függvény az alapértelmezett kockázati értéket használja, a ConfirmImpact közepes értéket, és az alapértelmezett értéke $ConfirmPreferenceMagas, az automatikus megerősítés ritkán fordul elő. Az automatikus megerősítést azonban aktiválhatja, ha közepes vagy alacsony értékre módosítja az értéket$ConfirmPreference.

Példák

Ez a példa a $ConfirmPreference változó alapértelmezett értékének( High) hatását mutatja be. A Magas érték csak a magas kockázatú parancsmagokat és függvényeket erősíti meg. Mivel a legtöbb parancsmag és függvény közepes kockázattal jár, a rendszer nem erősíti meg automatikusan, és Remove-Item nem törli a fájlt. A parancssorba való felvétel -Confirm megerősítést kér a felhasználótól.

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

Megerősítés kéréséhez használható -Confirm .

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

Az alábbi példa azt mutatja be, hogy milyen hatással van a Közepes értékre $ConfirmPreference való váltás. Mivel a legtöbb parancsmag és funkció közepes kockázattal jár, a rendszer automatikusan megerősíti őket. To suppress the confirmation prompt for a single command, use the Confirm parameter with a value of $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

Meghatározza, hogy a PowerShell hogyan reagál egy szkript, parancsmag vagy szolgáltató vagy egy parancssori parancs által Write-Debug létrehozott hibakeresési üzenetekre.

A $DebugPreference változó aActionPreference enumerálási értékek: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend vagy Break.

Egyes parancsmagok hibakeresési üzeneteket jelenítenek meg, amelyek általában programozók és technikai támogatási szakemberek számára tervezett technikai üzenetek. Alapértelmezés szerint a hibakeresési üzenetek nem jelennek meg, de a hibakeresési üzeneteket a hibakeresési üzenetek értékének $DebugPreferencemódosításával jelenítheti meg.

A parancsmagok gyakori hibakeresési paraméterével megjelenítheti vagy elrejtheti egy adott parancs hibakeresési üzenetét. További információ: about_CommonParameters.

Az érvényes értékek a következők:

  • Leállítás: Megjeleníti a hibakeresési üzenetet, és leállítja a végrehajtást. Hibát ír a konzolra.
  • Inquire: Megjeleníti a hibakeresési üzenetet, és megkérdezi, hogy folytatja-e. Ha hozzáadja a hibakeresési gyakori paramétert egy parancshoz, amikor a parancs úgy van konfigurálva, hogy hibakeresési üzenetet hozzon létre, a változó értékét $DebugPreferenceInquire értékre módosítja.
  • Folytatás: Megjeleníti a hibakeresési üzenetet, és folytatja a végrehajtást.
  • SilentlyContinue: (Alapértelmezett) Nincs effektus. A hibakeresési üzenet nem jelenik meg, és a végrehajtás megszakítás nélkül folytatódik.

Példák

Az alábbi példák azt mutatják be, hogy milyen hatással van a parancsok parancssorba való beírásának $DebugPreferenceWrite-Debug értéke. A módosítás minden hibakeresési üzenetet érint, beleértve a parancsmagok és szkriptek által létrehozott üzeneteket is. A példák a hibakeresési paramétert mutatják be, amely egyetlen parancshoz kapcsolódó hibakeresési üzeneteket jelenít meg vagy rejt el.

Ez a példa a változó alapértelmezett értékének, a SilentlyContinue-nak a $DebugPreference hatását mutatja be. Alapértelmezés szerint a Write-Debug parancsmag hibakeresési üzenete nem jelenik meg, és a feldolgozás folytatódik. A hibakeresési paraméter használatakor felülbírálja egyetlen parancs beállítását. Megjelenik a hibakeresési üzenet.

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

Ez a példa a Folytatás érték hatását $DebugPreference mutatja be. Megjelenik a hibakeresési üzenet, és a parancs feldolgozása folytatódik.

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

Ez a példa a Hibakeresés paramétert használja egy olyan értékkel, amely egyetlen parancs üzenetének $false letiltására használható. A hibakeresési üzenet nem jelenik meg.

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

Ez a példa a Stop értékre való beállítás hatását $DebugPreference mutatja be. Megjelenik a hibakeresési üzenet, és a parancs le van állítva.

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

Ez a példa a Hibakeresés paramétert használja egy olyan értékkel, amely egyetlen parancs üzenetének $false letiltására használható. A hibakeresési üzenet nem jelenik meg, és a feldolgozás nem áll le.

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

Ez a példa az Inquire értékre való beállítás hatását $DebugPreference mutatja be. Megjelenik a hibakeresési üzenet, és a rendszer megerősítést kér a felhasználótól.

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

Ez a példa a Hibakeresés paramétert használja egy olyan értékkel, amely egyetlen parancs üzenetének $false letiltására használható. A hibakeresési üzenet nem jelenik meg, és a feldolgozás folytatódik.

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

$ErrorActionPreference

Meghatározza, hogy a PowerShell hogyan reagál egy nem megszakító hibára, amely nem állítja le a parancsmag feldolgozását. Például a parancssorban vagy egy szkriptben, parancsmagban vagy szolgáltatóban, például a Write-Error parancsmag által generált hibáknál.

A $ErrorActionPreference változó aActionPreference enumerálási értékek: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend vagy Break.

A parancsmag ErrorAction közös paraméterével felülbírálhatja egy adott parancs beállítását.

Az érvényes értékek a következők:

  • Törés – Adja meg a hibakeresőt hiba esetén vagy kivétel keletkezésekor.
  • Folytatás: (Alapértelmezett) Megjeleníti a hibaüzenetet, és folytatja a végrehajtást.
  • Mellőzés: Letiltja a hibaüzenetet, és továbbra is végrehajtja a parancsot. A Mellőzés érték parancsonkénti használatra szolgál, nem mentett beállításként való használatra. A figyelmen kívül hagyás nem érvényes érték a $ErrorActionPreference változóhoz.
  • Inquire: Megjeleníti a hibaüzenetet, és megkérdezi, hogy folytatja-e.
  • SilentlyContinue: Nincs hatás. A hibaüzenet nem jelenik meg, és a végrehajtás megszakítás nélkül folytatódik.
  • Leállítás: Megjeleníti a hibaüzenetet, és leállítja a végrehajtást. A létrehozott hiba mellett a Stop érték actionPreferenceStopException objektumot is létrehoz a hibastreamben.
  • Felfüggesztés: Automatikusan felfüggeszt egy munkafolyamat-feladatot a további vizsgálathoz. A vizsgálat után a munkafolyamat folytatható. A Suspend érték parancsonkénti használatra szolgál, nem mentett beállításként való használatra. A Suspend nem érvényes érték a $ErrorActionPreference változóhoz.

$ErrorActionPreference és az ErrorAction paraméter nincs hatással arra, hogy a PowerShell hogyan reagál a parancsmagok feldolgozását leállító leállási hibákra. További információ az ErrorAction gyakori paraméterről: about_CommonParameters.

Példák

Ezek a példák a változó különböző értékeinek $ErrorActionPreference hatását mutatják be. Az ErrorAction paraméter felülbírálja az $ErrorActionPreference értéket.

Ebben a példában a $ErrorActionPreference Continue ( Folytatás) alapértelmezett érték látható. Nem megszakító hiba jön létre. Megjelenik az üzenet, és a feldolgozás folytatódik.

# 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

Ebben a példában az $ErrorActionPreferenceInquire alapértelmezett érték látható. A rendszer hibát generál, és megjelenik egy műveletkérés.

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

Ebben a példában a $ErrorActionPreferenceSilentlyContinue érték van beállítva. A hibaüzenet el van rejtve.

# 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

Ebben a példában a $ErrorActionPreferenceLeállítás beállítás látható. A változóhoz $Error generált extra objektumot is megjeleníti.

# 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

Meghatározza a hibaüzenetek megjelenítési formátumát a PowerShellben.

A $ErrorView változó a ErrorView következő enumerálási értékek egyikét veszi fel: NormalView, CategoryView vagy ConciseView.

Az érvényes értékek a következők:

  • ConciseView: (Alapértelmezett) Tömör hibaüzenetet és újrabontási nézetet biztosít a speciális modulkészítők számára. A PowerShell 7.2-es verziójától kezdve, ha a hiba a parancssorból vagy egy szkriptmodulból származik, a kimenet egysoros hibaüzenet. Ellenkező esetben egy többsoros hibaüzenet jelenik meg, amely tartalmazza a hibát, és egy mutatót a hibára, amely azt mutatja, hogy hol fordul elő az adott sorban. Ha a terminál támogatja a virtuális terminált, akkor a rendszer ANSI-színkódokat használ a színkontraszt megadásához. Az ékezet színe itt módosítható $Host.PrivateData.ErrorAccentColor: . Használja Get-Error a parancsmagot a teljes hiba átfogó részletes nézetéhez, beleértve a belső kivételeket is.

    A ConciseView a PowerShell 7-ben lett hozzáadva.

  • NormalView: A részletes nézet célja a legtöbb felhasználó számára. A hiba leírását és a hibában érintett objektum nevét tartalmazza.

  • CategoryView: Az éles környezetekhez tervezett tömör, strukturált nézet. A formátum a következő:

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

További információ a CategoryView mezőiről: ErrorCategoryInfo osztály.

Példák

Ez a példa bemutatja, hogyan jelenik meg egy hiba, ha az érték $ErrorView az alapértelmezett ConciseView. Get-ChildItem A egy nem létező könyvtár megkeresésére szolgál.

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

Ez a példa bemutatja, hogyan jelenik meg egy hiba, ha az érték $ErrorView az alapértelmezett ConciseView. Script.ps1 A fut, és hibát jelez az utasításból Get-Item .

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

Ez a példa bemutatja, hogyan jelenik meg egy hiba, ha az érték $ErrorViewNormalView értékre változik. Get-ChildItem A egy nem létező fájl megkeresésére szolgál.

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

Ez a példa bemutatja, hogyan jelenik meg ugyanaz a hiba, ha az érték $ErrorViewCategoryView értékre változik.

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

Ez a példa azt mutatja be, hogy az érték $ErrorView csak a hibamegjelenítésre van hatással. Nem változtatja meg az automatikus változóban tárolt hibaobjektum szerkezetét $Error . Az automatikus változóval kapcsolatos információkért lásd: $Errorabout_automatic_variables.

A következő parancs a hibatömb 0. elemének legutóbbi hibájához társított ErrorRecord objektumot veszi át, és formázja a hibaobjektum összes tulajdonságát egy listában.

$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

Meghatározza, hogy hány enumerált elem szerepel egy megjelenítésben. Ez a változó nincs hatással a mögöttes objektumokra, csak a megjelenítésre. Ha az érték $FormatEnumerationLimit kevesebb, mint az enumerált elemek száma, a PowerShell egy három pontot (...) ad hozzá a nem megjelenített elemek jelzéséhez.

Érvényes értékek: egész számok (Int32)

Alapértelmezett érték: 4

Példák

Ez a példa bemutatja, hogyan használható a változó a $FormatEnumerationLimit számba adott elemek megjelenítésének javítására.

A példában szereplő parancs létrehoz egy táblát, amely két csoportban listázza a számítógépen futó összes szolgáltatást: egyet a szolgáltatások futtatásához , egyet pedig a leállított szolgáltatásokhoz. Egy parancsot használ Get-Service az összes szolgáltatás lekéréséhez, majd elküldi az eredményeket a folyamaton keresztül a Group-Object parancsmagnak, amely a szolgáltatás állapota szerint csoportosítja az eredményeket.

Az eredmény egy tábla, amely a Név oszlopban lévő állapotot és a Csoport oszlopban lévő folyamatokat sorolja fel. Az oszlopfeliratok módosításához használjon kivonattáblát, lásd : about_Hash_Tables. További információt a Format-Table példáiban talál.

Az aktuális érték megkeresése a következőben $FormatEnumerationLimit: .

$FormatEnumerationLimit
4

Az összes szolgáltatás listázása állapot szerint csoportosítva. A Csoport oszlopban állapotonként legfeljebb négy szolgáltatás szerepel, mert $FormatEnumerationLimit értéke 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...}

A felsorolt elemek számának növeléséhez növelje az értéket $FormatEnumerationLimit1000-ra. A szolgáltatások használata Get-Service és Group-Object megjelenítése.

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

Használja Format-Table a Wrap paraméterrel a szolgáltatások listájának megjelenítéséhez.

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

A $InformationPreference változóval megadhatja a felhasználók számára megjeleníteni kívánt információstream-beállításokat. Pontosabban a parancsokhoz vagy szkriptekhez az Write-Information parancsmag hozzáadásával hozzáadott tájékoztató üzeneteket. Az InformationAction paraméter használata esetén az értéke felülbírálja a $InformationPreference változó értékét. Write-Information A a PowerShell 5.0-ban lett bevezetve.

A $InformationPreference változó aActionPreference enumerálási értékek: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend vagy Break.

Az érvényes értékek a következők:

  • Leállítás: Leállít egy parancsot vagy szkriptet a Write-Information parancs előfordulásakor.
  • Inquire: Megjeleníti a parancsban Write-Information megadott tájékoztató üzenetet, majd megkérdezi, hogy folytatja-e.
  • Folytatás: Megjeleníti az információs üzenetet, és folytatja a futást.
  • A felfüggesztés csak olyan munkafolyamatokhoz érhető el, amelyek nem támogatottak a PowerShell 6-ban és azon túl.
  • SilentlyContinue: (Alapértelmezett) Nincs effektus. A tájékoztató üzenetek nem jelennek meg, és a szkript megszakítás nélkül folytatódik.

$Log*Esemény

A Log*Event preference változók határozzák meg, hogy a rendszer milyen típusú eseményeket ír a PowerShell-eseménynaplóba eseménymegtekintő. Alapértelmezés szerint csak a motor- és szolgáltatóesemények lesznek naplózva. A Log*Event preference változókkal azonban testre szabhatja a naplót, például naplózhatja a parancsokkal kapcsolatos eseményeket.

A Log*Event preference változók a következők:

  • $LogCommandHealthEvent: Naplózza a parancsok inicializálása és feldolgozása során felmerülő hibákat és kivételeket. Az alapértelmezett érték $false (nincs naplózva).
  • $LogCommandLifecycleEvent: Naplózza a parancsok és parancsfolyamatok indítását és leállítását, valamint a biztonsági kivételeket a parancsfelderítés során. Az alapértelmezett érték $false (nincs naplózva).
  • $LogEngineHealthEvent: Naplózza a munkamenetek hibáit és hibáit. Az alapértelmezett beállítás a $true (naplózott).
  • $LogEngineLifecycleEvent: A munkamenetek megnyitását és bezárását naplózza. Az alapértelmezett beállítás a $true (naplózott).
  • $LogProviderHealthEvent: Naplózza a szolgáltató hibáit, például az olvasási és írási hibákat, a keresési hibákat és a hívási hibákat. Az alapértelmezett beállítás a $true (naplózott).
  • $LogProviderLifecycleEvent: PowerShell-szolgáltatók hozzáadását és eltávolítását naplózza. Az alapértelmezett beállítás a $true (naplózott). További információ a PowerShell-szolgáltatókról: about_Providers.

A Log*Event engedélyezéséhez írja be a változót a következő $trueértékkel:

$LogCommandLifeCycleEvent = $true

Egy eseménytípus letiltásához írja be a változót a következő $falseértékkel:

$LogCommandLifeCycleEvent = $false

Az engedélyezett események csak az aktuális PowerShell-konzolon lépnek életbe. Ha a konfigurációt az összes konzolra szeretné alkalmazni, mentse a változóbeállításokat a PowerShell-profiljába. További információ: about_Profiles.

$MaximumHistoryCount

Meghatározza, hogy a rendszer hány parancsot ment az aktuális munkamenet parancselőzményeibe.

Érvényes értékek: 1 - 32768 (Int32)

Alapértelmezett: 4096

A parancselőzményekben mentett aktuális parancsok számának meghatározásához írja be a következőt:

(Get-History).Count

A munkamenet-előzményekben mentett parancsok megtekintéséhez használja a Get-History parancsmagot. További információ: about_History.

$OFS

A Kimeneti mező elválasztó (OFS) meghatározza azt a karaktert, amely elválasztja egy sztringgé konvertált tömb elemeit.

Érvényes értékek: Bármely sztring.

Alapértelmezett: Szóköz

Alapértelmezés szerint a $OFS változó nem létezik, és a kimeneti fájlelválasztó szóköz, de hozzáadhatja ezt a változót, és bármilyen sztringre beállíthatja. A munkamenet értékét $OFS a beírással $OFS="<value>"módosíthatja.

Megjegyzés

Ha egy szóköz (" ") alapértelmezett értékét várja a szkriptben, modulban vagy konfigurációs kimenetben, ügyeljen arra, hogy az $OFS alapértelmezett érték ne módosuljon a kód más részén.

Példák

Ez a példa azt mutatja be, hogy a tömb sztringgé alakításakor szóközzel választja el egymástól az értékeket. Ebben az esetben az egész számok tömbje egy változóban van tárolva, majd a változó sztringként lesz átalakítva.

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

Az elválasztó módosításához adja hozzá a $OFS változót egy érték hozzárendelésével. A változónak el kell neveznie $OFS.

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

Az alapértelmezett viselkedés visszaállításához rendeljen hozzá egy szóközt (" ") a változó értékéhez $OFS , vagy törölje azt. Az alábbi parancsok törlik a változót, majd ellenőrzik, hogy az elválasztó szóköz-e.

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

$OutputEncoding

Meghatározza, hogy a PowerShell milyen karakterkódolási módszert használ, amikor szöveget küld más alkalmazásoknak.

Ha például egy alkalmazás Unicode-sztringeket ad vissza a PowerShellnek, előfordulhat, hogy a karakterek helyes elküldéséhez UnicodeEncoding értékre kell módosítania az értéket.

Az érvényes értékek a következők: Kódolási osztályból származtatott objektumok, például ASCIIEncoding, UTF7Encoding, UTF8Encoding, UTF32Encoding és UnicodeEncoding.

Alapértelmezett: UTF8Encoding objektum.

Példák

Ez a példa bemutatja, hogyan használható a Windows findstr.exe parancs a PowerShellben egy Unicode-karaktereket (például kínait) használó nyelven honosított számítógépen.

The first command finds the value of $OutputEncoding. Mivel az érték egy kódolási objektum, csak annak EncodingName tulajdonsága jelenik meg.

$OutputEncoding.EncodingName

Ebben a példában egy findstr.exe paranccsal keresünk két kínai karaktert, amelyek megtalálhatók a Test.txt fájlban. Ha ezt a findstr.exe parancsot a Windows parancssorában (cmd.exe) futtatja, findstr.exe megkeresi a szövegfájlban lévő karaktereket. Ha azonban ugyanazt a findstr.exe parancsot futtatja a PowerShellben, a karakterek nem találhatók, mert a PowerShell a Unicode-szöveg helyett ASCII-szövegben küldi el őketfindstr.exe.

findstr <Unicode-characters>

Ahhoz, hogy a parancs működjön a PowerShellben, állítsa be a konzol OutputEncoding tulajdonságának $OutputEncoding értékét, amely a Windowshoz kiválasztott területi beállításon alapul. Mivel az OutputEncoding a konzol statikus tulajdonsága, használjon kettőspontot (::) a parancsban.

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

A kódolás módosítása után a findstr.exe parancs megkeresi a Unicode-karaktereket.

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

$ProgressPreference

Meghatározza, hogy a PowerShell hogyan reagál a szkript, parancsmag vagy szolgáltató által létrehozott folyamatfrissítésekre, például a Write-Progress parancsmag által létrehozott folyamatjelző sávokra. A Write-Progress parancsmag olyan folyamatjelző sávokat hoz létre, amelyek egy parancs állapotát mutatják.

A $ProgressPreference változó aActionPreference enumerálási értékek: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend vagy Break.

Az érvényes értékek a következők:

  • Leállítás: Nem jelenik meg a folyamatjelző sáv. Ehelyett hibaüzenetet jelenít meg, és leállítja a végrehajtást.
  • Inquire: Nem jelenik meg a folyamatjelző sáv. Engedélyt kér a folytatáshoz. Ha válaszol, Y vagy Aazzal válaszol, az megjeleníti a folyamatjelző sávot.
  • Folytatás: (Alapértelmezett) Megjeleníti a folyamatjelző sávot, és folytatja a végrehajtást.
  • SilentlyContinue: Végrehajtja a parancsot, de nem jeleníti meg a folyamatjelző sávot.

$PSDefaultParameterValues

A parancsmagok és speciális függvények paramétereinek alapértelmezett értékeit adja meg. Az érték $PSDefaultParameterValues egy kivonattáblázat, amelyben a kulcs a parancsmag nevéből és a paraméternévből áll, kettősponttal (:) elválasztva. Az érték egy ön által megadott egyéni alapértelmezett érték.

$PSDefaultParameterValues A a PowerShell 3.0-ban lett bevezetve.

További információ erről a beállításváltozóról: about_Parameters_Default_Values.

$PSEmailServer

Megadja az e-mailek küldésére használt alapértelmezett e-mail-kiszolgálót. Ezt a beállításváltozót az e-maileket küldő parancsmagok használják, például a Send-MailMessage parancsmag.

$PSModuleAutoloadingPreference

Engedélyezi és letiltja a modulok automatikus importálását a munkamenetben. Minden az alapértelmezett beállítás. Modul importálásához szerezze be vagy használja a modul bármely parancsát. Használja például a következőt Get-Command: . A $PSModuleAutoloadingPreference változó alapértelmezés szerint nem létezik. Az alapértelmezett viselkedés, ha a változó nincs definiálva, ugyanaz, mint $PSModuleAutoloadingPreference = 'All'a .

A változó értékétől függetlenül az Import-Module használatával importálhat modulokat.

A $PSModuleAutoloadingPreference változó az egyikPSModuleAutoLoadingPreference enumerálási értékek: None, ModuleQualified vagy All.

Az érvényes értékek a következők:

  • Mind: A modulok importálása automatikusan megtörténik első használatkor.
  • ModuleQualified: A modulok importálása csak akkor történik meg automatikusan, ha egy felhasználó a modul egy parancsának modul-minősített nevét használja. Ha például a felhasználó begépeli MyModule\MyCommand, a PowerShell importálja a MyModule modult.
  • Nincs: A modulok automatikus importálása le van tiltva a munkamenetben. Modul importálásához használja a Import-Module parancsmagot.

További információ a modulok automatikus importálásáról: about_Modules.

$PSNativeCommandArgumentPassing

Megjegyzés

$PSNativeCommandArgumentPassing csak akkor érhető el, ha a PSNativeCommandArgumentPassing kísérleti funkció engedélyezve van. További információ: about_Experimental_Features és a kísérleti funkciók használata.

Ha ez a kísérleti funkció engedélyezve van, a PowerShell az ArgumentList objektum tulajdonságát használja ahelyett StartProcessInfo , hogy egy natív végrehajtható fájl meghívásakor a sztringet rekonstruáljuk.

Figyelemfelhívás

Az új viselkedés a jelenlegi viselkedéshez való kompatibilitástörő változás . Ez megszakíthatja a natív alkalmazások meghívása során felmerülő különböző problémákat megkerülő szkripteket és automatizálást. Az idézőjeleket előzményként meg kell adni, és nem lehet üres argumentumokat megadni egy natív alkalmazáshoz.

Ez a funkció egy új automatikus változót $PSNativeCommandArgumentPassing ad hozzá, amely lehetővé teszi, hogy futásidőben válassza ki a viselkedést. Az érvényes értékek a következők: Legacy, Standardés Windows. Legacy a történelmi viselkedés. A kísérleti funkció engedélyezésekor az alapértelmezett az új Standard viselkedés.

Ha a beállítási változó a következő fájlok meghívására van beállítva Windows , használja automatikusan a Legacy stílusargumentum átadását.

  • cmd.exe
  • cscript.exe
  • wscript.exe
  • végződés: .bat
  • végződés: .cmd
  • végződés: .js
  • végződés: .vbs
  • végződés: .wsf

Ha a $PSNativeArgumentPassing beállítás értéke vagy LegacyStandard, a fájlok ellenőrzése nem történik meg. Az alapértelmezett viselkedés platformspecifikus. Windows-platformokon az alapértelmezett beállítás, Windows a nem Windows-platformok pedig a .Standard

A módosítás által elérhetővé tett új viselkedések:

  • Az idézőjeleket tartalmazó literál- vagy bővíthető sztringek mostantól megmaradnak:

    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>
    
  • Az argumentumként megadott üres sztringek mostantól megmaradnak:

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

Az új viselkedés nem változtatja meg a következőhöz hasonló hívásokat:

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>

Emellett a paraméterkövetés is elérhető, így Trace-Command hasznos információkat nyújt a hibakereséshez.

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

Ez a beállítási változó csak a PowerShell 7.3-ban érhető el, és a PSNativeCommandErrorActionPreference funkció engedélyezve van.

Ha ez a funkció engedélyezve van, a nem nulla kilépési kóddal rendelkező natív parancsok az adott $trueállapotnak $ErrorActionPreference$PSNativeCommandUseErrorActionPreference megfelelően adnak ki hibákat.

További információ: PSNativeCommandErrorActionPreference.

$PSSessionApplicationName

A Web Services for Management (WS-Management) technológiát használó távoli parancsok alapértelmezett alkalmazásnevét adja meg. További információ: Tudnivalók a Windows távfelügyeletről.

A rendszer alapértelmezett alkalmazásneve WSMAN, de ezzel a beállításváltozóval módosíthatja az alapértelmezettet.

Az alkalmazás neve a kapcsolati URI utolsó csomópontja. Az alábbi minta URI-jában például az alkalmazás neve a következő WSMAN.

http://Server01:8080/WSMAN

Az alapértelmezett alkalmazásnevet akkor használja a rendszer, ha a távoli parancs nem ad meg kapcsolati URI-t vagy alkalmazásnevet.

A WinRM szolgáltatás az alkalmazás nevével választ ki egy figyelőt a kapcsolatkérés kiszolgálásához. A paraméter értékének meg kell egyeznie a távoli számítógépen lévő figyelő URLPrefix tulajdonságának értékével.

A rendszer alapértelmezett értékének és a változó értékének felülbírálásához és egy másik alkalmazásnév kiválasztásához használja a New-PSSession, az Enter-PSSession vagy az Invoke-Command parancsmagok ConnectionURI vagy ApplicationName paramétereit.

A $PSSessionApplicationName beállítási változó a helyi számítógépen van beállítva, de egy figyelőt ad meg a távoli számítógépen. Ha a megadott alkalmazásnév nem létezik a távoli számítógépen, a munkamenet létrehozására szolgáló parancs meghiúsul.

$PSSessionConfigurationName

Az aktuális munkamenetben létrehozott PSSessions szolgáltatáshoz használt alapértelmezett munkamenet-konfigurációt adja meg.

Ez a beállítási változó a helyi számítógépen van beállítva, de megadja a távoli számítógépen található munkamenet-konfigurációt.

A változó értéke $PSSessionConfigurationName egy teljes erőforrás-URI.

Az alapértelmezett érték http://schemas.microsoft.com/PowerShell/microsoft.PowerShell a Microsoft.PowerShell-munkamenet konfigurációját jelzi a távoli számítógépen.

Ha csak egy konfigurációnevet ad meg, a rendszer a következő séma URI-ját írja elő:

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

Felülbírálhatja az alapértelmezett beállítást, és egy adott munkamenethez másik munkamenet-konfigurációt választhat a New-PSSession, Enter-PSSessionvagy Invoke-Command parancsmagok ConfigurationName paraméterével.

A változó értékét bármikor módosíthatja. Amikor így tesz, ne feledje, hogy a kiválasztott munkamenet-konfigurációnak léteznie kell a távoli számítógépen. Ha nem, a munkamenet-konfigurációt használó munkamenet létrehozására vonatkozó parancs meghiúsul.

Ez a beállítási változó nem határozza meg, hogy a távoli felhasználók mely helyi munkamenet-konfigurációkat használják a számítógéphez csatlakozó munkamenet létrehozásakor. A helyi munkamenet-konfigurációk engedélyeinek használatával azonban meghatározhatja, hogy mely felhasználók használhatják őket.

$PSSessionOption

Létrehozza a speciális felhasználói beállítások alapértelmezett értékeit egy távoli munkamenetben. Ezek a beállítások felülbírálják a munkamenet-beállítások rendszer alapértelmezett értékeit.

A $PSSessionOption változó egy PSSessionOption objektumot tartalmaz. További információ: System.Management.Automation.Remoting.PSSessionOption. Az objektum minden tulajdonsága egy munkamenet-beállítást jelöl. Például a NoCompression tulajdonság adattömörítést vált a munkamenet során.

A változó alapértelmezés szerint $PSSessionOption tartalmaz egy PSSessionOption objektumot, amely az összes beállítás alapértelmezett értékeit tartalmazza, az alább látható módon.

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

A beállítások leírásáért és további információkért lásd: New-PSSessionOption. A távoli parancsokkal és munkamenetekkel kapcsolatos további információkért lásd: about_Remote és about_PSSessions.

A beállítási változó értékének $PSSessionOption módosításához a New-PSSessionOption parancsmaggal hozzon létre egy PSSessionOption objektumot a kívánt beállításértékekkel. Mentse a kimenetet egy .$PSSessionOption

$PSSessionOption = New-PSSessionOption -NoCompression

Ha minden PowerShell-munkamenetben használni szeretné a $PSSessionOption beállítási változót, adjon hozzá egy New-PSSessionOption parancsot, amely létrehozza a $PSSessionOption változót a PowerShell-profilban. További információ: about_Profiles.

Egyéni beállításokat adhat meg egy adott távoli munkamenethez. A megadott beállítások elsőbbséget élveznek a rendszer alapértelmezett értékével és a $PSSessionOption beállítási változó értékével szemben.

Egyéni munkamenet-beállítások beállításához a New-PSSessionOption parancsmaggal hozzon létre egy PSSessionOption objektumot. Ezután használja a PSSessionOption objektumot a munkamenetet létrehozó parancsmagok SessionOption paraméterének értékeként, például New-PSSession: , Enter-PSSessionés Invoke-Command.

$PSStyle

A PowerShell 7.2-ből mostantól hozzáférhet az automatikus változóhoz az $PSStyle ANSI-sztringkimenet megjelenítésének megtekintéséhez és módosításához. A változó a következő tulajdonságokat tartalmazza:

  • Alaphelyzetbe állítás – Az összes dekoráció kikapcsolása
  • Villogás – A Villogás bekapcsolva
  • BlinkOff – A Villogás kikapcsolása
  • Félkövér – Félkövér bekapcsolva
  • BoldOff – Félkövér kikapcsolása
  • Rejtett – A Rejtett bekapcsolva
  • HiddenOff – Rejtett kikapcsolása
  • Fordított – Fordított bekapcsolva
  • Fordított leállítás – Kikapcsolja a visszafordulást
  • Dőlt – Dőlt bekapcsolva
  • Dőlt betűs kikapcsolás – Dőlt betűs kikapcsolás
  • Aláhúzás – Aláhúzás bekapcsolva
  • UnderlineOff – Aláhúzás kikapcsolása
  • OutputRendering – A kimenet renderelésének szabályozása
  • Háttér – Beágyazott objektum a háttérszínezés szabályozásához
  • Előtér – Beágyazott objektum az előtérszínezés szabályozásához
  • Formázás – Beágyazott objektum, amely a kimeneti adatfolyamok alapértelmezett formázását szabályozza
  • Folyamat – Beágyazott objektum, amely a folyamatjelző sávok megjelenítését szabályozza
  • FileInfo – (kísérleti) Beágyazott objektum a FileInfo-objektumok színezésének szabályozásához.

Az alaptagok a nevükre leképezett ANSI-feloldósorozatok sztringeit adják vissza. Az értékek beállíthatók a testreszabás engedélyezéséhez. Például félkövérre válthat aláhúzásra. A tulajdonságnevek megkönnyítik a dekorált sztringek lapkiegészítéssel történő létrehozását:

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

Az ANSI-formázás használatát a következő tagok határozzák meg:

  • $PSStyle.OutputRenderingSystem.Management.Automation.OutputRendering a következő értékekkel rendelkező enumerálás:

    • ANSI: Ez az alapértelmezett viselkedés. Az ANSI mindig a megfelelő módon van átadva.

      Fontos

      ANSI-módot kell használnia, amikor a kimenetet egy fájlra vagy a lefelé irányuló végrehajtásra szánt folyamatra irányítja át. Ez biztosítja, hogy a kimenet ne változik. Bármely más mód használata megváltoztatja a kimenetet az ANSI feloldósorozatok eltávolításával, ami megváltoztathatja a végrehajtási viselkedést.

    • Egyszerű szöveg: Az ANSI-feloldósorozatok mindig le vannak vetve, így csak egyszerű szövegről van szó.

    • Gazdagép: Az ANSI escape-szekvenciái átirányított vagy vezetékes kimenetben lesznek eltávolítva.

  • A $PSStyle.Background tagok olyan $PSStyle.Foreground sztringek, amelyek a 16 standard konzolszín ANSI-feloldósorozatait tartalmazzák.

    • Fekete
    • BrightBlack
    • Fehér
    • BrightWhite
    • Piros
    • BrightRed
    • Magenta
    • Fényesmagenta
    • Kék
    • BrightBlue
    • Cián
    • BrightCyan
    • Zöld
    • BrightGreen
    • Sárga
    • BrightYellow

    Az értékek beállíthatók, és tetszőleges számú ANSI-feloldási sorozatot tartalmazhatnak. A 24 bites szín megadására is van egy FromRgb() metódus. A metódus meghívásának FromRgb() két módja van.

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

    Az alábbi példák bármelyike a 24 bites Bézs háttérszínt állítja be.

    $PSStyle.Background.FromRgb(245, 245, 220)
    $PSStyle.Background.FromRgb(0xf5f5dc)
    
  • $PSStyle.Formatting A egy beágyazott objektum, amely a hibakeresési, hibakeresési, részletes és figyelmeztető üzenetek alapértelmezett formázását szabályozza. Olyan attribútumokat is szabályozhat, mint a félkövér és aláhúzás. Ez váltja $Host.PrivateData fel a színek formázási megjelenítésre való kezelésének módját. $Host.PrivateData A továbbra is létezik a visszamenőleges kompatibilitás érdekében, de nincs csatlakoztatva a következőhöz $PSStyle.Formatting: .

  • $PSStyle.Progress A lehetővé teszi a folyamatjelző sávok megjelenítésének szabályozását.

    • Stílus – ANSI-sztring, amely a megjelenítési stílust állítja be.
    • MaxWidth – A nézet maximális szélességét állítja be. 0 A konzol szélességének beállítása. Alapértelmezett érték: 120
    • Nézet – Értékeket tartalmazó enumerálás és MinimalClassic. Classic A a meglévő, módosítás nélküli renderelés. Minimal A egysoros minimális renderelés. A Minimal az alapértelmezett formátum.
    • UseOSCIndicator – Alapértelmezett érték: $false. Ezt az $true OSC-mutatókat támogató terminálok esetében állítsa be.

    Megjegyzés

    Ha a gazdagép nem támogatja a virtuális terminált, $PSStyle.Progress.View a rendszer automatikusan a következőre Classicvan állítva: .

    Az alábbi példa minimális folyamatjelző sávra állítja a megjelenítési stílust.

    $PSStyle.Progress.View = Minimal
    

$PSStyle.FileInfo A egy beágyazott objektum, amely a FileInfo-objektumok színezését szabályozza.

  • Címtár – Beépített tag a könyvtárak színének megadásához
  • SymbolicLink – Beépített tag a szimbolikus hivatkozások színének megadásához
  • Végrehajtható – Beépített tag a végrehajtható fájlok színének megadásához.
  • Bővítmény – Ennek a tagnak a használatával különböző fájlkiterjesztésekhez definiálhat színeket. A bővítménytag előre tartalmazza az archív és PowerShell-fájlok bővítményeit.

Megjegyzés

$PSStyle.FileInfo csak akkor érhető el, ha a PSAnsiRenderingFileInfo kísérleti funkció engedélyezve van. További információ: about_Experimental_Features és a kísérleti funkciók használata.

$Transcript

Az Start-Transcript átiratfájl nevének és helyének megadására szolgál. Ha nem ad meg értéket az Elérési út paraméterhez, Start-Transcript a globális változó értékének $Transcript elérési útját használja. Ha még nem hozta létre ezt a változót, Start-Transcript az átiratokat fájlként \PowerShell_transcript.<time-stamp>.txt tárolja a $Home\My Documents könyvtárban.

$VerbosePreference

Meghatározza, hogy a PowerShell hogyan reagál a szkript, parancsmag vagy szolgáltató által létrehozott részletes üzenetekre, például a Write-Verbose parancsmag által létrehozott üzenetekre. A részletes üzenetek a parancs végrehajtásához végrehajtott műveleteket írják le.

Alapértelmezés szerint a részletes üzenetek nem jelennek meg, de ezt a viselkedést módosíthatja $VerbosePreferenceaz érték módosításával.

A $VerbosePreference változó az egyikActionPreference enumerálási értékek: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend vagy Break.

Az érvényes értékek a következők:

  • Leállítás: Megjeleníti a részletes üzenetet és egy hibaüzenetet, majd leállítja a végrehajtást.
  • Inquire: Megjeleníti a részletes üzenetet, majd megjelenik egy kérdés, amely megkérdezi, hogy folytatja-e.
  • Folytatás: Megjeleníti a részletes üzenetet, majd a végrehajtással folytatódik.
  • SilentlyContinue: (Alapértelmezett) Nem jelenik meg a részletes üzenet. Folytatja a végrehajtást.

A parancsmag részletes gyakori paraméterével megjelenítheti vagy elrejtheti egy adott parancs részletes üzeneteit. További információ: about_CommonParameters.

Példák

Ezek a példák a különböző értékek $VerbosePreference és a Verbose paraméter hatását mutatják be a beállításérték felülbírálásához.

Ez a példa a SilentlyContinue érték hatását mutatja be, amely az alapértelmezett érték. A parancs az Üzenet paramétert használja, de nem ír üzenetet a PowerShell-konzolra.

Write-Verbose -Message "Verbose message test."

A Részletes paraméter használata esetén az üzenet meg lesz írva.

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

Ez a példa a Folytatás érték hatását mutatja be. A $VerbosePreference változó a Continue ( Folytatás ) értékre van állítva, és megjelenik az üzenet.

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

Ez a példa a Verbose paramétert használja olyan értékkel $false , amely felülbírálja a Folytatás értéket. Az üzenet nem jelenik meg.

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

Ez a példa a Stop érték hatását mutatja be. A $VerbosePreference változó a Leállítás értékre van állítva, és megjelenik az üzenet. A parancs le van állítva.

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

Ez a példa a Verbose paramétert használja olyan értékkel $false , amely felülbírálja a Stop értéket. Az üzenet nem jelenik meg.

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

Ez a példa az Inquire érték hatását mutatja be. A $VerbosePreference változó inquire értékre van állítva. Megjelenik az üzenet, és a rendszer megerősítést kér a felhasználótól.

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

Ez a példa a Verbose paramétert használja olyan értékkel $false , amely felülbírálja az Inquire értéket. A rendszer nem kéri a felhasználót, és az üzenet nem jelenik meg.

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

$WarningPreference

Meghatározza, hogy a PowerShell hogyan reagál a parancsfájl, parancsmag vagy szolgáltató által létrehozott figyelmeztető üzenetekre, például a Write-Warning parancsmag által létrehozott üzenetekre.

Alapértelmezés szerint figyelmeztető üzenetek jelennek meg, és a végrehajtás folytatódik, de ezt a viselkedést módosíthatja $WarningPreferenceaz érték módosításával.

A $WarningPreference változó aActionPreference enumerálási értékek: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend vagy Break.

Az érvényes értékek a következők:

  • Leállítás: Megjeleníti a figyelmeztető üzenetet és egy hibaüzenetet, majd leállítja a végrehajtást.
  • Inquire: Megjeleníti a figyelmeztető üzenetet, majd engedélyt kér a folytatáshoz.
  • Folytatás: (Alapértelmezett) Megjeleníti a figyelmeztető üzenetet, majd folytatja a végrehajtást.
  • SilentlyContinue: Nem jelenik meg a figyelmeztető üzenet. Folytatja a végrehajtást.

A parancsmagok WarningAction általános paraméterével meghatározhatja, hogy a PowerShell hogyan reagáljon egy adott parancs figyelmeztetéseire. További információ: about_CommonParameters.

Példák

Ezek a példák a különböző értékek $WarningPreferencehatását mutatják be. A WarningAction paraméter felülbírálja a beállítás értékét.

Ez a példa az alapértelmezett Continue ( Folytatás) érték hatását mutatja be.

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

Ez a példa a WarningAction paramétert a SilentlyContinue értékkel használja a figyelmeztetés mellőzéséhez. Az üzenet nem jelenik meg.

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

Ez a példa a változót $WarningPreference a SilentlyContinue értékre módosítja. Az üzenet nem jelenik meg.

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

Ez a példa a WarningAction paraméterrel állítja le a figyelmeztetést.

$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

Ez a példa az $WarningPreferenceInquire értékre módosítja a változót. A rendszer megerősítést kér a felhasználótól.

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

Ez a példa a WarningAction paramétert használja a SilentlyContinue értékkel. A parancs végrehajtása folytatódik, és nem jelenik meg üzenet.

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

Ez a példa leállítás értékre módosítja az $WarningPreference értéket.

$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

Ez a példa a WarningAction függvényt használja az Inquire értékkel. A rendszer figyelmeztetés esetén kéri a felhasználót.

$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

Meghatározza, hogy a WhatIf automatikusan engedélyezve van-e minden olyan parancs esetében, amely támogatja azt. Ha a WhatIf engedélyezve van, a parancsmag jelenti a parancs várt hatását, de nem hajtja végre a parancsot.

Az érvényes értékek a következők:

  • Hamis (0, nincs engedélyezve): (Alapértelmezett) A WhatIf nincs automatikusan engedélyezve. Manuális engedélyezéséhez használja a parancsmag WhatIf paraméterét.
  • True (1, enabled): A WhatIf automatikusan engedélyezve van minden olyan parancson, amely támogatja azt. A felhasználók a WhatIf paramétert False értékkel használhatják a manuális letiltásához, például -WhatIf:$false.

Példák

Ezek a példák a különböző értékek $WhatIfPreferencehatását mutatják be. Bemutatják, hogyan használható a WhatIf paraméter egy adott parancs preferenciális értékének felülbírálásához.

Ez a példa az $WhatIfPreference alapértelmezett False (Hamis) értékre beállított változó hatását mutatja be. A fájl meglétének ellenőrzésére használható Get-ChildItem . Remove-Item törli a fájlt. A fájl törlése után a törlést a következővel Get-ChildItemellenőrizheti: .

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

Ez a példa azt mutatja be, hogy milyen hatással van a WhatIf paraméter használata, ha a értéke $WhatIfPreferenceHamis.

Ellenőrizze, hogy létezik-e a fájl.

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

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

A WhatIf paraméter használatával állapítsa meg a fájl törlésére tett kísérlet eredményét.

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

Ellenőrizze, hogy a fájl nem lett-e törölve.

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

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

Ez a példa az $WhatIfPreferenceIgaz értékre beállított változó hatását mutatja be. Fájl Remove-Item törlésekor megjelenik a fájl elérési útja, de a fájl nem törlődik.

Fájl törlésének megkísérlése. Megjelenik egy üzenet arról, hogy mi történne, ha Remove-Item futna, de a fájl nem törlődik.

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

Annak ellenőrzésére használható Get-ChildItem , hogy a fájl nem lett-e törölve.

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

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

Ez a példa bemutatja, hogyan törölhet egy fájlt, ha az értéke $WhatIfPreferenceIgaz. A WhatIf paramétert használja a következő $falseértékkel: . A fájl törlésének ellenőrzésére használható Get-ChildItem .

Remove-Item -Path .\test2.txt -WhatIf:$false
Get-ChildItem -Path .\test2.txt
Get-ChildItem : Cannot find path 'C:\Test\test2.txt' because it does not exist.
At line:1 char:1
+ Get-ChildItem -Path .\test2.txt

Az alábbiakban példákat láthat arra a parancsmagra, amely nem támogatja a Get-ProcessWhatIf-t , és Stop-Process amely támogatja a WhatIf-t. A $WhatIfPreference változó értéke Igaz.

Get-Process nem támogatja a WhatIf-t. A parancs végrehajtásakor megjelenik a Winword folyamat.

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 A támogatja a WhatIf-t. A Winword-folyamat nem áll le.

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

A WhatIf viselkedést felülbírálhatja Stop-Process a WhatIf paraméterrel, amelynek értéke $false. A Winword folyamat leállt.

Stop-Process -Name Winword -WhatIf:$false

A Winword-folyamat leállításának ellenőrzéséhez használja a következőt 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

Lásd még