Megosztás a következőn keresztül:


about_Preference_Variables

Rövid leírás

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

Hosszú leírás

A PowerShell olyan változókat tartalmaz, amelyek lehetővé teszik a viselkedés testreszabását. Ezek a beállítási változók a GUI-alapú rendszerek beállításaihoz hasonlóan működnek.

A beállítási változók hatással vannak a PowerShell operációs környezetére, és az összes parancs a környezetben fut. Egyes parancsmagok olyan paraméterekkel rendelkeznek, amelyek lehetővé teszik egy adott parancs beállítási viselkedésének felülbírálását.

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)
$LogProviderHealthEvent $true (naplózott)
$LogProviderLifecycleEvent $true (naplózott)
$MaximumHistoryCount 4096
$OFS Szóköz karakter (" ")
$OutputEncoding UTF8Encoding objektum
$ProgressPreference Continue
$PSDefaultParameterValues @{} (üres kivonattábla)
$PSEmailServer $null (nincs)
$PSModuleAutoLoadingPreference All
$PSNativeCommandArgumentPassing Windows Windows rendszeren, Standard nem Windows rendszeren
$PSNativeCommandUseErrorActionPreference $false
$PSSessionApplicationName 'wsman'
$PSSessionConfigurationName 'http://schemas.microsoft.com/powershell/Microsoft.PowerShell'
$PSSessionOption PSSessionOption objektum
$PSStyle PSStyle objektum
$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

Jegyzet

A beállítási változók módosítása csak az általuk végrehajtott hatókörre és azok gyermek hatókörére vonatkozik. Korlátozhatja például a beállításváltozó egyetlen függvényre vagy szkriptre való módosításának hatásait. További információ: about_Scopes.

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

Ez a dokumentum az egyes beállítási vá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. Az alábbi 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 a $ConfirmPreference paraméter értékét Közepesértékre módosítja.

$ConfirmPreference = "Medium"

A beállított értékek az aktuális PowerShell-munkamenetre vonatkoznak. Ha minden PowerShell-munkamenetben szeretné hatékonyan használni a változókat, 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élén beállított 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 parancsmag vagy függvény futtatása előtt.

A $ConfirmPreference változó a ConfirmImpact enumerálási értékek egyikét veszi fel: Magas, Közepes, Alacsonyvagy Nincs.

A parancsmagok és függvények Magas, Közepesvagy Alacsonykockázatával járnak. Ha a $ConfirmPreference változó értéke kisebb vagy egyenlő a 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. További információ a kockázatok parancsmagokhoz vagy függvényekhez való hozzárendeléséről: about_Functions_CmdletBindingAttribute.

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

Ha módosítani szeretné a munkamenet összes parancsmagjának és függvényének megerősítési viselkedését, módosítsa $ConfirmPreference változó értékét.

Ha egyetlen parancs $ConfirmPreference felül szeretne bírálni, használja egy parancsmag vagy függvény Confirm paraméterét. A megerősítés kéréséhez használja a -Confirm. A megerősítés letiltásához használja a -Confirm:$false.

A $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 megerősítése 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 kér a művelet végrehajtása előtt. Ha például a parancsmag vagy a függvény 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 ConfirmImpactnéven ismert 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, Megerősítés paraméterrel rendelkeznek, amellyel egyetlen parancs megerősítését kérheti le vagy tilthatja le.

A legtöbb parancsmag és függvény megtartja Közepes alapértelmezett értékét ConfirmImpactesetében. $ConfirmPreference alapértelmezés szerint a magas van beállítva. Ezért ritkán fordul elő, hogy a parancsok automatikusan megerősítést kérnek, ha a felhasználók nem adják meg a Confirm paramétert. Az automatikus megerősítési kérés további parancsmagokra és függvényekre való kiterjesztéséhez állítsa a $ConfirmPreference értékét Közepes vagy Alacsonyértékre.

Példák

Ez a példa a $ConfirmPreference változó alapértelmezett értékének hatását mutatja be, Magas. A Magas érték csak a magas kockázatú parancsmagokat és függvényeket erősíti meg. Mivel a parancsmagok és függvények többsége közepes kockázattal jár, a rendszer nem erősíti meg automatikusan őket, és Remove-Item törli a fájlt. Ha hozzáad -Confirm a parancssorhoz, a rendszer megerősítést kér a felhasználótól.

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

A -Confirm használatával kérjen megerősítést.

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 a $ConfirmPreference értékének Közepesértékre történő módosításának hatását mutatja be. Mivel a parancsmagok és a függvények többsége közepes kockázattal jár, a rendszer automatikusan megerősíti őket. Egyetlen parancs megerősítő kérésének letiltásához használja a Confirm paramétert $falseértékkel.

$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 a parancsfájl, parancsmag vagy szolgáltató által vagy a parancssori Write-Debug parancs által létrehozott hibakeresési üzenetekre.

A $DebugPreference változó a ActionPreference számbavételi értékek egyikét veszi figyelembe: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspendvagy Break.

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

A parancsmag hibakeresési gyakori 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:

  • Törés – Írja be a hibakeresőt, ha hiba történik, vagy kivétel keletkezik.
  • leállítása: 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.
  • 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.

Ha hozzáadja a hibakeresési gyakori paramétert egy parancshoz, amikor a parancs hibakeresési üzenet létrehozására van konfigurálva, a $DebugPreference változó értékét Folytatásértékre módosítja.

Példák

Az alábbi példák a $DebugPreference értékeinek módosítását mutatják be, amikor egy Write-Debug parancsot a parancssorba ad meg. A módosítás az összes hibakeresési üzenetet érinti, beleértve a parancsmagok és szkriptek által létrehozott üzeneteket is. A példák a hibakeresési paramétert mutatják be, amely megjeleníti vagy elrejti az egyetlen parancshoz kapcsolódó hibakeresési üzeneteket.

Ez a példa a $DebugPreference változó alapértelmezett értékének hatását mutatja be, SilentlyContinue. Alapértelmezés szerint a Write-Debug parancsmag hibakeresési üzenete nem jelenik meg, és a feldolgozás folytatódik. Ha a Hibakeresés paramétert használja, az felülírja egyetlen parancs beállításait. 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 $DebugPreference hatását mutatja be a Folytatás értékkel. 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ési paramétert használja $false értékkel egyetlen parancs üzenetének letiltásához. A hibakeresési üzenet nem jelenik meg.

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

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

$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ési paramétert használja $false értékkel egyetlen parancs üzenetének letiltásához. 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 azt mutatja be, hogy a $DebugPreference a Inquire értékre van állítva. 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ési paramétert használja $false értékkel egyetlen parancs üzenetének letiltásához. 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 végződő 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ák.

A $ErrorActionPreference változó a ActionPreference számbavételi értékek egyikét veszi figyelembe: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspendvagy Break.

Egy parancsmag ErrorAction gyakori paraméterével felülbírálhatja egy adott parancs beállításait.

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

  • Törés – Írja be a hibakeresőt, ha hiba történik, vagy kivétel keletkezik.
  • Folytatás: (Alapértelmezett) Megjeleníti a hibaüzenetet, és folytatja a végrehajtást.
  • figyelmen kívül hagyása: 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. figyelmen kívül hagyása 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ása: Megjeleníti a hibaüzenetet, és leállítja a végrehajtást. A létrehozott hiba mellett a Stop érték létrehoz egy ActionPreferenceStopException objektumot a hibastreamhez.
  • felfüggesztése: Automatikusan felfüggeszt egy munkafolyamat-feladatot a további vizsgálathoz. A vizsgálat után a munkafolyamat folytatható. A Felfüggesztés érték parancsonkénti használatra szolgál, nem mentett beállításként való használatra. felfüggesztése nem érvényes érték a $ErrorActionPreference változóhoz.

$ErrorActionPreference és az ErrorAction paraméter nem befolyásolja, hogy a PowerShell hogyan reagál a parancsmagok feldolgozását leállító hibák megszüntetésére. További információ a ErrorAction gyakori paraméterről: about_CommonParameters.

Számos natív parancs ír a stderr alternatív streamként további információkért. Ez a viselkedés zavart okozhat a hibák keresésekor, vagy a további kimeneti információk elveszhetnek a felhasználó számára, ha $ErrorActionPreference olyan állapotra van beállítva, amely elnémítja a kimenetet.

A PowerShell 7.2-től kezdődően a natív parancsokból átirányított hibarekordok( például átirányítási operátorok (2>&1) nem a $Error változóba vannak írva, és a $ErrorActionPreference beállítási változó nem befolyásolja az átirányított kimenetet.

A PowerShell 7.3 egy kísérleti funkciót adott hozzá, amely lehetővé teszi a stderr írt üzenetek kezelésének szabályozását.

További információ: $PSNativeCommandUseErrorActionPreference.

Példák

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

Ebben a példában az $ErrorActionPreference alapértelmezett érték látható, Folytatás. Nem végződő 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 $ErrorActionPreference alapértelmezett érték látható, Inquire. Hiba jön létre, é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 SilentlyContinue $ErrorActionPreference van beállítva. A hibaüzenet el van tiltva.

# 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 $ErrorActionPreferenceStopértékre van állítva. A $Error változóhoz létrehozott extra objektumot is megjeleníti.

# Change the ErrorActionPreference to 'Stop'
$ErrorActionPreference = 'Stop'
# Error message is generated and script stops processing
Write-Error -Message 'Test Error' ; Write-Host 'Hello World'

# Show the ActionPreferenceStopException and the error generated
$Error[0]
$Error[1]
Write-Error: Test Error

ErrorRecord                 : Test Error
WasThrownFromThrowStatement : False
TargetSite                  : System.Collections.ObjectModel.Collection`1[System.Management.Automation.PSObject]
                              Invoke(System.Collections.IEnumerable)
StackTrace                  :    at System.Management.Automation.Runspaces.PipelineBase.Invoke(IEnumerable input)
                                 at Microsoft.PowerShell.Executor.ExecuteCommandHelper(Pipeline tempPipeline,
                              Exception& exceptionThrown, ExecutionOptions options)
Message                     : The running command stopped because the preference variable "ErrorActionPreference" or
                              common parameter is set to Stop: Test Error
Data                        : {System.Management.Automation.Interpreter.InterpretedFrameInfo}
InnerException              :
HelpLink                    :
Source                      : System.Management.Automation
HResult                     : -2146233087

Write-Error: Test Error

$ErrorView

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

A $ErrorView változó a ErrorView enumerálási értékek egyikét veszi fel: NormalView, CategoryViewvagy 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 modulszerkesztők számára. A PowerShell 7.2-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 az ANSI-színkódok színkontrasztot biztosítanak. Az ékezet színe módosítható a $Host.PrivateData.ErrorAccentColor. Használja Get-Error parancsmagot a teljes hiba részletes áttekintéséhez, beleértve a belső kivételeket is.

    ConciseView a PowerShell 7-ben lett hozzáadva.

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

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

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

A CategoryViewmezőivel kapcsolatos további információkért lásd ErrorCategoryInfo osztályt.

Példák

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

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

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

./Script.ps1
Get-Item: C:\Script.ps1
Line |
  11 | Get-Item -Path .\stuff
     | ^ Can't find path 'C:\demo\stuff' because it doesn't exist.

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

Get-ChildItem -Path C:\nofile.txt
Get-ChildItem : Can't find path 'C:\nofile.txt' because it doesn't exist.
At line:1 char:1
+ Get-ChildItem -Path C:\nofile.txt

Ez a példa azt mutatja be, hogy ugyanaz a hiba jelenik meg, amikor a $ErrorView értéke CategoryViewé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 a $ErrorView értéke csak a hibamegjelenítésre van hatással. Nem módosítja a $Error automatikus változóban tárolt hibaobjektum szerkezetét. Az $Error automatikus változóval kapcsolatos információkért lásd: about_Automatic_Variables.

Az alábbi parancs a hibatömb legutóbbi hibájához társított ErrorRecord objektumot, 0. elemet, és egy listában formázja az objektum tulajdonságait.

$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 számba vett elem szerepel a megjelenítésben. Ez a változó nem befolyásolja a mögöttes objektumokat, csak a megjelenítést. Ha a $FormatEnumerationLimit értéke kevesebb, mint a számba vehető elemek száma, a PowerShell hozzáad egy három pontot (...) 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 $FormatEnumerationLimit változó a 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 sorolja fel a számítógépen futó összes szolgáltatást: egyet szolgáltatásokat, egyet pedig a leállított szolgáltatásokhoz. Egy Get-Service parancsot használ 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áblázat, amely felsorolja a Név oszlop állapotát, valamint a Csoport oszlop folyamatait. Az oszlopfeliratok módosításához használjon kivonattáblát, lásd: about_Hash_Tables. További információ: Format-Table.

Keresse meg a $FormatEnumerationLimitaktuális értékét.

$FormatEnumerationLimit
4

Az összes szolgáltatás listázása Állapotszerint csoportosítva. Az egyes állapotok Csoport oszlopában 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 a $FormatEnumerationLimit értékét 1000 . A szolgáltatások megjelenítéséhez használja Get-Service és Group-Object.

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

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

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ó lehetővé teszi a felhasználók számára megjeleníteni kívánt információstream-beállítások beállítását. Pontosabban a parancsokhoz vagy szkriptekhez hozzáadott tájékoztató üzeneteket a Írási információk parancsmag hozzáadásával. Ha a InformationAction paramétert használja, az értéke felülbírálja a $InformationPreference változó értékét. Write-Information a PowerShell 5.0-s verzióban jelent meg.

A $InformationPreference változó a ActionPreference számbavételi értékek egyikét veszi figyelembe: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspendvagy Break.

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

  • megszakítása – Írja be a hibakeresőt, amikor az információs adatfolyamba ír.
  • leállítása: A parancs vagy szkript leállítása a Write-Information parancs előfordulásakor.
  • Érdeklődjön: Megjeleníti a Write-Information parancsban megadott tájékoztató üzenetet, majd megkérdezi, hogy folytatja-e.
  • Folytatás: Megjeleníti az információs üzenetet, és továbbra is fut.
  • 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*Event

A Napló*Esemény beállítási változók határozzák meg, hogy a rendszer milyen típusú eseményeket ír a PowerShell-eseménynaplóba az Eseménynaplóban. Alapértelmezés szerint csak a motor- és szolgáltatóesemények lesznek naplózva. A napló testreszabásához azonban használhatja a Napló*Esemény beállítási változókat, például a parancsokkal kapcsolatos naplózási eseményeket.

A Napló*Esemény beállítási változók a következők:

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

A Napló*Eseményengedélyezéséhez írja be a változót $trueértékkel, például:

$LogCommandLifecycleEvent = $true

Egy eseménytípus letiltásához írja be a változót $falseértékkel, például:

$LogCommandLifecycleEvent = $false

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

$MaximumHistoryCount

Meghatározza, hogy hány parancsot ment a rendszer 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) azt a karaktert adja meg, 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 $OFS értékét módosíthatja a munkamenetben a $OFS="<value>"beírásával.

Jegyzet

Ha egy hely (" ") alapértelmezett értékét várja a szkriptben, modulban vagy konfigurációs kimenetben, ügyeljen arra, hogy a $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ök sztringgé alakításakor egy szóköz 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ót sztringként öntötte.

$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 $OFS értékéhez, vagy törölje a változót. 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 az adatok natív alkalmazásokba való becsatolásához.

Jegyzet

A forgatókönyvek többségében a $OutputEncoding értékének a [Console]::InputEncodingértékéhez kell igazodnia .

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

Alapértelmezett: UTF8Encoding objektum.

Példák

Az első parancs megkeresi a $OutputEncodingértékét. Mivel az érték egy kódolási objektum, csak a EncodingName tulajdonságot jelenítse meg.

$OutputEncoding.EncodingName

A többi példa a következő, hexdump.ps1 mentett PowerShell-szkriptet használja a $OutputEncodingviselkedésének szemléltetésére.

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

Az alábbi példa bemutatja, hogy a sztring értéke café bájtra van kódolva, amikor a fenti hexdump.ps1 létrejön. Bemutatja, hogy a sztring értéke az UTF8Encoding sémával van kódolva.

'café' | pwsh -File ./hexdump.ps1
   Label: Byte[] (System.Byte[]) <28873E25>

          Offset Bytes                                           Ascii
                 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
          ------ ----------------------------------------------- -----
0000000000000000 63 61 66 C3 A9 0D 0A                            caf�

Az alábbi példa bemutatja, hogyan változnak a bájtok a kódolás UnicodeEncoding.

$OutputEncoding = [System.Text.Encoding]::Unicode
'café' | pwsh -File ./hexdump.ps1
   Label: Byte[] (System.Byte[]) <515A7DC3>

          Offset Bytes                                           Ascii
                 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
          ------ ----------------------------------------------- -----
0000000000000000 FF FE 63 00 61 00 66 00 E9 00 0D 00 0A 00       ÿþc a f é � �

$ProgressPreference

Meghatározza, hogy a PowerShell hogyan reagál a szkript, parancsmag vagy szolgáltató által létrehozott folyamatfrissítésekre, például a Írási folyamat 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ó a ActionPreference számbavételi értékek egyikét veszi figyelembe: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspendvagy Break.

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

  • megszakítása – Írja be a hibakeresőt, amikor a folyamatfolyamba ír.
  • leállítása: Nem jelenik meg a folyamatjelző sáv. Ehelyett hibaüzenetet jelenít meg, és leállítja a végrehajtást.
  • Lekérdezés: Nem jelenik meg a folyamatjelző sáv. Engedélyt kér a folytatáshoz. Ha Y vagy Aválaszt ad, 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 a speciális függvények paramétereinek alapértelmezett értékeit adja meg. A $PSDefaultParameterValues értéke egy kivonattábla, amelyben a kulcs a parancsmag nevéből és paraméternevéből áll, kettősponttal (:) elválasztva. Az érték egy ön által megadott egyéni alapértelmezett érték.

$PSDefaultParameterValues a PowerShell 3.0-ban jelent meg.

A beállítási változóval kapcsolatos további információkért lásd: about_Parameters_Default_Values.

$PSEmailServer

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

$PSModuleAutoLoadingPreference

Engedélyezi és letiltja a modulok automatikus importálását a munkamenetben. 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'.

Modul automatikus importálásához szerezze be vagy használja a modulban található parancsot.

A $PSModuleAutoLoadingPreference változó a PSModuleAutoLoadingPreference enumerálási értékek egyikét veszi fel:

  • All: A modulok első használatkor automatikusan importálódnak.
  • ModuleQualified: A modulok importálása csak akkor történik automatikusan, ha egy felhasználó a modulban lévő parancs modul-minősített nevét használja. Ha például a felhasználó MyModule\MyCommandtípust használ, a PowerShell importálja a MyModule modult.
  • None: Letiltja a modulok automatikus importálását. 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

A PowerShell 7.3 módosította a natív parancsok parancssorának elemzési módját. Ezt a viselkedést az új $PSNativeCommandArgumentPassing beállításváltozó vezérli.

Figyelmeztet

Az új viselkedés az előző viselkedés kompatibilitástörő változás. Ez megszakíthatja a szkripteket és az automatizálást, amelyek a natív alkalmazások meghívása során felmerülő különböző problémákat megkerülik.

Az automatikus változó $PSNativeCommandArgumentPassing 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 $PSNativeCommandArgumentPassing változó alapértelmezés szerint definiálva van, de az érték platformspecifikus.

  • Windows rendszeren a beállítás értéke Windows.
  • A nem Windows-platformokon a beállítás Standard.
  • Ha eltávolította a $PSNativeCommandArgumentPassing változót, a PowerShell a Standard viselkedést használja.

A Windows és a Standard mód viselkedése megegyezik, kivéve, hogy Windows módban a PowerShell a következő fájlok futtatásakor átadott argumentumok Legacy viselkedését használja.

  • cmd.exe
  • cscript.exe
  • find.exe
  • sqlcmd.exe
  • wscript.exe
  • A következő végződésű fájlok:
    • .bat
    • .cmd
    • .js
    • .vbs
    • .wsf

Ha a $PSNativeCommandArgumentPassingLegacy vagy Standardértékre van állítva, az elemző nem ellenőrzi ezeket a fájlokat. Példák az új viselkedésre: about_Parsing.

A PowerShell 7.3 emellett lehetővé tette a natív parancsok paraméterkötésének nyomon követését is. További információ: Trace-Command.

$PSNativeCommandUseErrorActionPreference

Ha $PSNativeCommandUseErrorActionPreference$true, a nem nulla kilépési kóddal rendelkező natív parancsok hibát okoznak a $ErrorActionPreferenceszerint.

Egyes natív parancsok, például robocopy nem nulla kilépési kódokat használnak a hibáktól eltérő információk megjelenítéséhez. Ezekben az esetekben ideiglenesen letilthatja a viselkedést, és megakadályozhatja, hogy a nem nulla kilépési kódok hibákat bocsátanak ki.

& {
    # Disable $PSNativeCommandUseErrorActionPreference for this scriptblock
    $PSNativeCommandUseErrorActionPreference = $false
    robocopy.exe D:\reports\operational "\\reporting\ops" CY2022Q4.md
    if ($LASTEXITCODE -gt 8) {
        throw "robocopy failed with exit code $LASTEXITCODE"
    }
}

Ebben a példában a $PSNativeCommandUseErrorActionPreference változó egy szkriptblokkon belül módosul. A módosítás helyi a szkriptblokkban. Amikor a szkriptblokk kilép, a változó visszaáll a korábbi értékére.

$PSSessionApplicationName

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

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

Az alkalmazás neve a kapcsolati URI utolsó csomópontja. Az alábbi minta URI-ban például az alkalmazás neve 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 adott munkamenet másik alkalmazásnevének kiválasztásához használja a ConnectionURI vagy ApplicationName paramétert a New-PSSession, Enter-PSSessionvagy Invoke-Command parancsmagok használatával.

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

$PSSessionConfigurationName

Megadja az aktuális munkamenetben új munkamenetek létrehozásához használt alapértelmezett munkamenet-konfigurációt.

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 $PSSessionConfigurationName változó értéke egy teljes erőforrás-URI.

Az alapértelmezett http://schemas.microsoft.com/PowerShell/microsoft.PowerShell érték 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 következő séma URI-ja elő van állítva:

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

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

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ásváltozó nem határozza meg, hogy mely helyi munkamenet-konfigurációkat használják a távoli felhasználó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ási 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. A NoCompression tulajdonság például adattömörítést vált a munkamenet során.

Alapértelmezés szerint a $PSSessionOption változó egy PSSessionOption objektumot tartalmaz, 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

Ezeknek a lehetőségeknek a leírásáért és további információkért lásd New-PSSessionOption. További információ a távoli parancsokról és munkamenetekről: about_Remote és about_PSSessions.

A $PSSessionOption beállítási változó értékének 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 $PSSessionOptionnevű változóban.

$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 $PSStyle automatikus változóhoz az ANSI-sztring kimenetének megtekintéséhez és módosításához. $PSStyle a PSStyle osztály egy példánya. Az osztály tagjai olyan ANSI-feloldósorozatokat tartalmazó sztringeket határoznak meg, amelyek a terminálban lévő szöveg renderelését szabályozzák.

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. A tulajdonságnevek megkönnyítik a dekorált sztringek lapkiegészítéssel történő létrehozását. Például:

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

A Háttér és Előtér tagjai szintén FromRgb() metódussal 24 bites színt adhatnak meg.

A $PSStyletovábbi információkért lásd: about_ANSI_Terminals.

$Transcript

A Start-Transcript használja az átiratfájl nevének és helyének megadásához. Ha nem ad meg értéket a Elérési út paraméterhez, Start-Transcript az elérési utat használja a $Transcript globális változó értékében. Ha még nem hozta létre ezt a változót, Start-Transcript az átiratokat az alábbi helyen tárolja az alapértelmezett név használatával:

  • Windows rendszeren: $HOME\Documents
  • Linux vagy macOS rendszeren: $HOME

Az alapértelmezett fájlnév a következő: PowerShell_transcript.<computername>.<random>.<timestamp>.txt.

$VerbosePreference

Meghatározza, hogy a PowerShell hogyan reagál a szkript, parancsmag vagy szolgáltató által generált 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 a $VerbosePreferenceértékének módosításával.

A $VerbosePreference változó a ActionPreference számbavételi értékek egyikét veszi figyelembe: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspendvagy Break.

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

  • Break – Írja be a hibakeresőt, amikor a részletes adatfolyamba ír.
  • leállítása: 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 folytatja a végrehajtást.
  • 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 üzenetét. További információ: about_CommonParameters.

Példák

Ezek a példák a $VerbosePreference különböző értékeinek és a Részletes paraméternek a preferenciális érték felülbírálására gyakorolt hatását mutatják be.

Ez a példa a SilentlyContinue értékének hatását mutatja be, ez 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."

Ha a Részletes paramétert használja, 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 Folytatás van beállítva, és megjelenik az üzenet.

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

Ez a példa a Részletes paramétert használja olyan $false értékkel, 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ó 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 Részletes paramétert használja olyan $false értékkel, 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 a Inquire értékének hatását mutatja be. A $VerbosePreference változó az Inquire van beá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 Részletes paramétert használja olyan $false értékkel, amely felülírja a 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 egy szkript, parancsmag vagy szolgáltató által létrehozott figyelmeztető üzenetekre, például a Írási figyelmeztetés parancsmag által létrehozott üzenetekre.

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

A $WarningPreference változó a ActionPreference számbavételi értékek egyikét veszi figyelembe: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspendvagy Break.

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

  • megszakítása – Figyelmeztető üzenet írásakor adja meg a hibakeresőt.
  • leállítása: 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 parancsmag WarningAction gyakori paraméterével meghatározhatja, hogy a PowerShell hogyan reagál egy adott parancs figyelmeztetéseire. További információ: about_CommonParameters.

Példák

Ezek a példák a $WarningPreferencekülönböző értékeinek hatá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 érték hatását mutatja be, Folytatás.

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

Ez a példa a WarningAction paramétert használja a SilentlyContinue értékkel a figyelmeztetés letiltásához. Az üzenet nem jelenik meg.

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

Ez a példa a $WarningPreference változót 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 figyelmeztetés létrehozásakor a WarningAction paramétert használja.

$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 a $WarningPreference változót a Inquire értékre módosítja. 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 továbbra is fut, és nem jelenik meg üzenet.

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

Ez a példa a $WarningPreference értékét Stopértékre módosítja.

$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 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 WhatIf automatikusan engedélyezve van-e minden olyan parancs esetében, amely támogatja azt. Ha WhatIf engedélyezve van, a parancsmag a parancs várt hatását jelenti, 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, engedélyezve): WhatIf automatikusan engedélyezve van minden olyan parancson, amely támogatja azt. A felhasználók a WhatIf paramétert használhatják Hamis értékkel, hogy manuálisan tiltsák le, például -WhatIf:$false.

Példák

Ezek a példák a $WhatIfPreferencekülönböző értékeinek hatását mutatják be. Bemutatják, hogyan használhatja a WhatIf paramétert egy adott parancs beállítási értékének felülbírálásához.

Ez a példa azt mutatja be, hogy a $WhatIfPreference változó alapértelmezett értékre van állítva, Hamis. A fájl meglétének ellenőrzéséhez használja a Get-ChildItem. Remove-Item törli a fájlt. A fájl törlése után ellenőrizheti a törlést 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

Ez a példa a WhatIf paraméter használatát mutatja be, ha a $WhatIfPreference értéke Hamis.

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ének 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 értékre beállított $WhatIfPreference változó hatását mutatja be, Igaz. Ha Remove-Item használ egy fájl törléséhez, megjelenik a fájl elérési útja, de a fájl nem törlődik.

Fájl törlésének kísérlete. 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".

A Get-ChildItem használatával 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 bemutatja, hogyan törölhet egy fájlt, ha a $WhatIfPreference értéke Igaz. A WhatIf paramétert használja $falseértékkel. A Get-ChildItem használatával ellenőrizze, hogy a fájl törölve lett-e.

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 a Get-Process parancsmagra, amely nem támogatja WhatIf és Stop-Process, amelyek támogatják a WhatIf . A $WhatIfPreference változó értéke Igaz.

Get-Process nem támogatja WhatIf. 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 támogatja WhatIf. A Winword folyamata nem áll le.

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

A Stop-ProcessWhatIf viselkedését felülbírálhatja a WhatIf paraméterrel $falseértékkel. A Winword folyamat leáll.

Stop-Process -Name Winword -WhatIf:$false

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