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

Feljegyzés

A beállításváltozó módosításai csak akkor lépnek érvénybe a szkriptekben és a függvényekben, ha ezek a szkriptek vagy függvények ugyanabban a hatókörben vannak definiálva, mint amelyben a beállítást használták. 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. 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özepesre módosítja a $ConfirmPreference paraméter értékét.

$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 változójának $DebugPreference é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ó az ConfirmImpact enumerálási értékek egyikét veszi fel: Magas, Közepes, Alacsony vagy Nincs.

A parancsmagok és függvények magas, közepes vagy alacsony kockázattal vannak hozzárendelve. 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.

Ha a változó értéke Nincs, a $ConfirmPreference PowerShell soha nem kéri automatikusan a parancsmag vagy függvény futtatása előtt.

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 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. Ha megerősítést szeretne kérni, 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 Megerősítés 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 confirmImpact néven ismert parancsmag vagy 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 rendszer számára, rendelkeznek egy Confirm paraméterrel, amellyel egyetlen parancshoz kérhet vagy tilthat le megerősítést.

Mivel a parancsmagok és függvények többsége az alapértelmezett kockázati értéket, a ConfirmImpact közepes értéket használja, és az alapértelmezett érték $ConfirmPreferencemagas, az automatikus megerősítés ritkán fordul elő. Az automatikus megerősítést azonban aktiválhatja közepes vagy alacsony értékre $ConfirmPreference módosításával.

Példák

Ez a példa a változó alapértelmezett értékének , a Magas értéknek a $ConfirmPreference hatását mutatja. 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 törli a fájlt. Ha hozzáadja -Confirm a parancssort, megerősítést kér a felhasználótól.

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

Megerősítés -Confirm kérése.

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 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 Megerősítés paramétert a következő $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 szkript, parancsmag vagy szolgáltató vagy parancssori parancs által Write-Debug létrehozott hibakeresési üzenetekre.

A $DebugPreference változó a ActionPreference következő enumerálási értékek egyikét veszi fel: 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 készült technikai üzenetek. Alapértelmezés szerint a hibakeresési üzenetek nem jelennek meg, de a hibakeresési üzeneteket az érték $DebugPreferencemódosításával jelenítheti meg.

A parancsmag 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:

  • Törés – Adja meg a hibakeresőt, ha hiba történik, vagy ha kivétel lép fel.
  • 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.
  • 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 azt mutatják be, hogy milyen hatással van a parancsok parancssori beírásának $DebugPreferenceWrite-Debug értékeire. 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és paramétert mutatják be, amely megjeleníti vagy elrejti az egyetlen parancshoz kapcsolódó hibakeresési üzeneteket.

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álata felülírja az 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 Folytatás érték hatását $DebugPreferencemutatja 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 egyetlen parancs üzenetének $false letiltásához. 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á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és paramétert használja egyetlen parancs üzenetének $false 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 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 egyetlen parancs üzenetének $false 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 parancsmag által Write-Error generált hibákban.

A $ErrorActionPreference változó a ActionPreference következő enumerálási értékek egyikét veszi fel: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend vagy 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 – Adja meg a hibakeresőt, ha hiba történik, vagy ha kivétel lép fel.
  • Folytatás: (Alapértelmezett) Megjeleníti a hibaüzenetet, és folytatja a végrehajtást.
  • Figyelmen kívül hagyá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 effektus. 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 létrehoz egy ActionPreferenceStopException objektumot a hibastreamhez.
  • Felfüggesztés: Automatikusan felfüggeszt egy munkafolyamat-feladatot, hogy lehetővé tegye a további vizsgálatot. 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. A felfüggesztés 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 parancsmag feldolgozását leállító hibák megszüntetésére. Az ErrorAction gyakori paraméterével kapcsolatos további információkért lásd: about_CommonParameters.

További információkért sok natív parancs ír stderr alternatív streamként. 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) használata esetén nem a változóba $Error vannak írva, és a beállítási változó $ErrorActionPreference nem befolyásolja az átirányított kimenetet.

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

További információ: $PSNativeCommandUseErrorActionPreference.

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 az érték felülbírálására $ErrorActionPreference szolgál.

Ez a példa a $ErrorActionPreference Folytatás alapértelmezett értékét mutatja. 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

Ez a példa az $ErrorActionPreference inquire alapértelmezett értékét mutatja be. 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 $ErrorActionPreference SilentlyContinue érték 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 $ErrorActionPreference Leállítás beállítás látható. A változóhoz $Error 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 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 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 a következő időpontban $Host.PrivateData.ErrorAccentColormódosítható: . Használja Get-Error a parancsmagot a teljes hiba átfogó részletes megtekintéséhez, beleértve a belső kivételeket is.

    A 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: Az éles környezetekhez tervezett tömör, strukturált nézet. A formátum a következő:

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

A CategoryView mezőivel kapcsolatos további információkért lásd: ErrorCategoryInfo osztály.

Példák

Ez a példa bemutatja, hogyan jelenik meg hiba, ha az érték $ErrorView 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 az érték $ErrorView az alapértelmezett ConciseView. Script.ps1 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
     | ^ Can't find path 'C:\demo\stuff' because it doesn't exist.

Ez a példa azt mutatja be, hogyan jelenik meg egy hiba, ha az érték $ErrorView NormalView-ra 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 az érték $ErrorView CategoryView-ra 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 módosítja az automatikus változóban tárolt hibaobjektum szerkezetét $Error . Az automatikus változóval kapcsolatos információkért $Error lásd : about_automatic_variables.

A következő parancs a hibatömb legutóbbi hibájához társított ErrorRecord objektumot veszi át, és formázja az objektum tulajdonságait 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 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 az érték $FormatEnumerationLimit kisebb, mint a számba vehető 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ó az $FormatEnumerationLimit enumerált 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 a szolgáltatások futtatásához, egyet pedig a leállított szolgáltatásokhoz. Get-Service Egy paranccsal lekéri az összes szolgáltatást, 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 oszlop állapotát é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.

Keresse meg a jelenlegi értéket.$FormatEnumerationLimit

$FormatEnumerationLimit
4

Az állapot szerint csoportosított összes szolgáltatás listázása. 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 az 1000-es értéket $FormatEnumerationLimit. 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...

A Format-Table Wrap paraméterrel megjelenítheti a szolgáltatások listáját.

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 beállíthatja a felhasználók számára megjeleníteni kívánt információstream-beállításokat. Pontosabban a parancsokhoz vagy szkriptekhez hozzáadott tájékoztató üzeneteket az Írási információk parancsmag hozzáadásával. 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 PowerShell 5.0-ban jelent meg.

A $InformationPreference változó a ActionPreference következő enumerálási értékek egyikét veszi fel: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend vagy Break.

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

  • Törés – Írja be a hibakeresőt, amikor az információs adatfolyamba ír.
  • 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 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*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 a Eseménynapló. Alapértelmezés szerint csak a motor- és szolgáltatóesemények lesznek naplózva. A Napló*Esemény beállítási változóival azonban testre szabhatja a naplót, például a parancsokkal kapcsolatos naplózási eseményeket.

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

  • $LogCommandHealthEvent: Naplózza a parancs inicializálásának és feldolgozásának hibáit és kivételeit. 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 biztonsági kivételeket a parancsfelderítésben. 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 ( $true naplózva).
  • $LogEngineLifecycleEvent: Naplózza a munkamenetek megnyitását és bezárását. Az alapértelmezett beállítás ( $true naplózva).
  • $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 beállítás ( $true naplózva).
  • $LogProviderLifecycleEvent: A PowerShell-szolgáltatók hozzáadásának és eltávolításának naplói. Az alapértelmezett beállítás ( $true naplózva). A PowerShell-szolgáltatókról további információt a about_Providers.

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

$LogCommandLifeCycleEvent = $true

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

$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 munkamenet értékét $OFS a beírással $OFS="<value>"módosíthatja.

Feljegyzés

Ha egy hely (" ") 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ö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ót el kell nevezni $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 az adatok natív alkalmazásokba való becsatolásához.

Feljegyzés

A forgatókönyvek többségében az értéknek $OutputEncoding a következő értékhez [Console]::InputEncodingkell 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 $OutputEncodinga következő értékét: . Mivel az érték egy kódolási objektum, csak annak EncodingName tulajdonsága jelenik meg.

$OutputEncoding.EncodingName

A többi példa a következő Mentett hexdump.ps1 PowerShell-szkripttel szemlélteti a viselkedését $OutputEncoding.

$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, hogyan kódolja a sztringértéket café bájtokra a fenti létrehozáskor hexdump.ps1 . 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 értékre történő módosításakor.

$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 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ó a ActionPreference következő enumerálási értékek egyikét veszi fel: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend vagy Break.

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

  • Törés – Írja be a hibakeresőt, amikor a folyamatfolyamba ír.
  • 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 vagy YA, megjelenik a folyamatjelző sáv.
  • 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. Az érték $PSDefaultParameterValues egy kivonattábla, amelyben a kulcs a parancsmag nevéből és a paraméternévből áll, kettősponttal (: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.

Erről a beállítási változóról további információt a about_Parameters_Default_Values talál.

$P Standard kiadás mailServer

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'a .

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

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

  • All: A modulok első használatkor automatikusan importálódnak.
  • ModuleQualified: A modulok csak akkor lesznek automatikusan importálva, ha egy felhasználó a modulban lévő parancs modul-minősített nevét használja. Ha például a felhasználó típusok, MyModule\MyCommanda 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.

Figyelemfelhívás

Az új viselkedés az előző viselkedéshez képest 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 a következőre Windowsvan állítva: .
  • A nem Windows-platformokon a beállítás Standardértéke .
  • Ha eltávolította a változót, a $PSNativeCommandArgumentPassing PowerShell a viselkedést Standard használja.

A viselkedés Windows és Standard a mód megegyezik, kivéve, Windows hogy a PowerShell a Legacy következő fájlok futtatásakor az argumentumátadás 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 az $PSNativeCommandArgumentPassing érték vagy LegacyStandarda beállítás, 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 igen, a $truenem nulla kilépési kóddal rendelkező natív parancsok aszerint adnak hibát.$ErrorActionPreference

Egyes natív parancsok, például a robocopy nem nulla kilépési kódokat használnak a hibáktól eltérő információk megjelenítésére. 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ó: Tudnivalók a Windows távfelügyeletről.

A rendszer alapértelmezett alkalmazásneve, WSMANde 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 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 válasszon egy másik alkalmazásnevet egy adott munkamenethez, használja a New-PSSession, az Enter-PSSession vagy a Invoke-Command parancsmagok Csatlakozás ionURI vagy ApplicationName paramétereit.

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 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 következő séma URI-ja elő van állítva:

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

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

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ó 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, ahogyan az alább látható.

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

Ezekről a lehetőségekről és további információkról a New-PSSessionOption című témakörben olvashat. 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 úgynevezett $PSSessionOptionvá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 változót $PSSessionOption 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.

Az 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-ben mostantól hozzáférhet az automatikus változóhoz az $PSStyle ANSI-sztring kimenetének megtekintéséhez és módosításához. $PSStyleA 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élda:

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

A háttér- és előtértagokFromRgb() 24 bites színt is megadhatnak.

További információ: $PSStyleabout_ANSI_Terminals.

$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 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évvel:

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

Az alapértelmezett fájlnév: PowerShell_transcript.<computername>.<random>.<timestamp>.txt.

$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ó a ActionPreference következő enumerálási értékek egyikét veszi fel: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend vagy Break.

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

  • Törés – Írja be a hibakeresőt, amikor a részletes adatfolyamba ír.
  • 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 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 különböző értékek $VerbosePreference és a Részletes paraméter hatását mutatják be a beállítási érték felülbírálásához.

Ez a példa a SilentlyContinue érték 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 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ó 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 Részletes 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 szkript, parancsmag vagy szolgáltató által létrehozott figyelmeztető üzenetekre, például a Write-Warning parancsmag által létrehozott üzenetekre.

Alapértelmezés szerint a figyelmeztető üzenetek megjelennek, é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ó a ActionPreference következő enumerálási értékek egyikét veszi fel: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend vagy Break.

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

  • Törés – Írja be a hibakeresőt figyelmeztető üzenet írásakor.
  • 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 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 különböző értékek $WarningPreferencehatását mutatják be. A WarningAction paraméter felülbírálja a beállítási értéket.

Ez a példa az alapértelmezett érték, a Continue (Folytatás) 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 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 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 a változót $WarningPreference az 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 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 parancshoz, amely támogatja azt. Ha a 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:

  • False (0, not enabled): (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 hamis é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 lehet a WhatIf paraméterrel felülbírálni egy adott parancs beállítási értékét.

Ez a példa az alapértelmezett értékre beállított változó false (Hamis) hatását $WhatIfPreference 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 ellenőrizheti a törlést a következővel 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 azt mutatja be, hogy a WhatIf paraméter milyen hatással van a Hamis értékre$WhatIfPreference.

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 a $WhatIfPreference true (Igaz) é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 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".

Annak ellenőrzésére, 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 $WhatIfPreference Igaz. 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-Process WhatIf-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 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és felülbírálhatóStop-Process a WhatIf paraméterrel, amelynek értéke a következő$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őtGet-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