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. A parancsmagok számos esetben olyan paraméterekkel rendelkeznek, amelyekkel felülbírálhatja egy adott parancs beállítási viselkedését.
Az alábbi táblázat a beállítási változókat és azok alapértelmezett értékeit sorolja fel.
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á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. 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. A kockázat parancsmagokhoz vagy függvényekhez való hozzárendeléséről további információt a about_Functions_CmdletBindingAttribute című témakörben talál.
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.
A legtöbb parancsmag és függvény megtartja a ConfirmImpact alapértelmezett Közepes értékét.
$ConfirmPreference
alapértelmezés szerint Magas értékre van á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 Megerősítés paramétert.
Ha további parancsmagokra és függvényekre szeretné kiterjeszteni $ConfirmPreference
az automatikus megerősítési kérést, állítsa közepes vagy alacsony értékre.
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 [S] Suspend
[?] 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 [S] Suspend
[?] 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 $DebugPreference
mó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:
- 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 változó értékét $DebugPreference
Inquire é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 $DebugPreference
Write-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. A rendszer megerősítést kér a felhasználótól.
$DebugPreference
SilentlyContinue
Write-Debug -Message "Hello, World"
Write-Debug -Message "Hello, World" -Debug
DEBUG: Hello, World
Confirm
Continue with this operation?
[Y] Yes [A] Yes to All [H] Halt Command [S] Suspend
[?] Help (default is "Y"):
Ez a példa a Folytatás érték hatását $DebugPreference
mutatja be. Megjelenik a hibakeresési üzenet, és a parancs feldolgozása folytatódik.
$DebugPreference = "Continue"
Write-Debug -Message "Hello, World"
DEBUG: Hello, World
Ez a példa a Hibakeresés paramétert használja 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 [S] Suspend
[?] 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
enumerálási értékek: SilentlyContinue, Stop, Continue, Inquire, Ignore vagy Suspend.
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:
- 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.
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 -Message 'Test Error' ; Write-Host 'Hello World' : Test Error
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException
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 -Message 'Test Error' ; Write-Host 'Hello World' : Test Error
At line:1 char:1
+ Write-Error -Message 'Test Error' ; Write-Host 'Hello World'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException
The running command stopped because the preference variable "ErrorActionPreference"
or common parameter is set to Stop: Test Error
Write-Error -Message 'Test Error' ; Write-Host 'Hello World' : Test Error
At line:1 char:1
+ Write-Error -Message 'Test Error' ; Write-Host 'Hello World'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException
$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 vagy CategoryView.
Az érvényes értékek a következők:
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 egy hiba, ha az érték $ErrorView
az alapértelmezett NormalView. Get-ChildItem
nem létező fájl megkeresésére szolgál.
Get-ChildItem -Path C:\nofile.txt
Get-ChildItem : Cannot find path 'C:\nofile.txt' because it does not exist.
At line:1 char:1
+ Get-ChildItem -Path C:\nofile.txt
Ez a példa 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
enumerálási értékek: SilentlyContinue, Stop, Continue, Inquire, Ignore vagy Suspend.
Az érvényes értékek a következők:
- Leállítás: Leállít egy parancsot vagy szkriptet a
Write-Information
parancs előfordulásakor. - Inquire: Megjeleníti a parancsban
Write-Information
megadott tájékoztató üzenetet, majd megkérdezi, hogy folytatja-e. - Folytatás: Megjeleníti az információs üzenetet, és továbbra is fut.
- Felfüggesztés: A parancs végrehajtása után
Write-Information
automatikusan felfüggeszti a munkafolyamat-feladatokat, hogy a felhasználók a folytatás előtt lássák az üzeneteket. A munkafolyamat a felhasználó belátása szerint folytatható. - 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.
$MaximumAliasCount
Meghatározza, hogy hány alias engedélyezett egy PowerShell-munkamenetben. Az alapértelmezett érték 4096 , és a legtöbb használathoz elegendőnek kell lennie. Igényeinek megfelelően alkalmazkodhat $MaximumAliasCount
.
Érvényes értékek: 1024 – 32768 (Int32
)
Alapértelmezett: 4096
A rendszeren lévő aliasok megszámlálásához írja be a következőt:
(Get-Alias).count
$MaximumDriveCount
Meghatározza, hogy egy adott munkamenetben hány PowerShell-meghajtó engedélyezett. Például a PowerShell-szolgáltatók által közzétett és meghajtóként megjelenő fájlrendszer-meghajtók és adattárak, például a meghajtók és HKLM:
a Alias:
meghajtók.
Érvényes értékek: 1024 – 32768 (Int32
)
Alapértelmezett: 4096
A rendszeren lévő aliasok megszámlálásához írja be a következőt:
(Get-PSDrive).count
$MaximumErrorCount
Meghatározza, hogy a rendszer hány hibát ment a munkamenet hibaelőzményeibe.
Érvényes értékek: 256 – 32768 (Int32
)
Alapértelmezett: 256
Az egyes megtartott hibákat jelképező objektumok az $Error
automatikus változóban vannak tárolva. $Error
hibarekord-objektumok tömbje. A legutóbbi hiba a tömb első objektuma. $Error[0]
A rendszer hibáinak megszámlálásához használja a $Error
tömb Darabszám tulajdonságát.
$Error.count
Egy adott hiba megjelenítéséhez használja a [0]
tömb jelölését a legutóbbi hiba megtekintéséhez.
$Error[0]
A legrégebbi megtartott hiba megjelenítéséhez írja be a következőt:
$Error[-1]
A Force paraméter felülbírálja az ErrorRecord objektumok speciális formázását, és visszaállítja a hagyományos formátumot. Az ErrorRecord objektum tulajdonságainak megjelenítéséhez írja be a következő parancsot:
$Error[0] | Format-List -Property * -Force
Ebben a példában $Error.Count
a hibák számát jeleníti meg. A hibaelőzmények összes hibájának törléséhez használja a Clear
hibatömb metódusát.
$Error.Count
17
$Error.Clear()
$Error.Count
0
A hibatömb összes tulajdonságának és metódusának megkereséséhez használja a parancsmagot az Get-Member
InputObject paraméterrel. Az InputObject paraméter Get-Member
használatakor megjeleníti a gyűjtemény tulajdonságait és metódusait.
Get-Member -InputObject $Error
Amikor objektumgyűjteményt Get-Member
csövez be, Get-Member
megjeleníti a gyűjtemény objektumainak tulajdonságait és módszereit.
$Error | Get-Member
$MaximumFunctionCount
Meghatározza, hogy egy adott munkamenetben hány függvény engedélyezett.
Érvényes értékek: 1024 – 32768 (Int32
)
Alapértelmezett: 4096
A munkamenet funkcióinak megtekintéséhez használja a PowerShell-szolgáltató által közzétett PowerShell-meghajtót Function:
Function
. A szolgáltatóval kapcsolatos további információkért Function
about_Function_Provider.
Az aktuális munkamenet függvényeinek listázásához írja be a következőt:
Get-ChildItem Function:
Az aktuális munkamenet függvényeinek megszámlálásához írja be a következőt:
(Get-ChildItem Function:).Count
$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.
$MaximumVariableCount
Meghatározza, hogy egy adott munkamenetben hány változó engedélyezett, beleértve az automatikus változókat, a beállítási változókat és a parancsokban és szkriptekben létrehozott változókat.
Érvényes értékek: 1024 – 32768 (Int32
)
Alapértelmezett: 4096
A munkamenet változóinak megtekintéséhez használja a Get-Variable
parancsmagot, valamint a PowerShell-meghajtó Variable:
és a PowerShell-szolgáltató funkcióit Variable
. További információ: about_Variable_Provider.
A rendszeren lévő változók aktuális számának megkereséséhez írja be a következőt:
(Get-Variable).Count
$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]::InputEncoding
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: ASCIIEncoding objektum.
Példák
Az első parancs megkeresi $OutputEncoding
a 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)
$actual = [byte[]]::new($read)
[Array]::Copy($buffer, $actual, $read)
Format-Hex -InputObject $actual
} 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ék a windows-1252
kódolási sémával van kódolva, amely az alapértelmezett kódolás a szóban forgó rendszeren.
'café' | powershell.exe -File .\hexdump.ps1
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 63 61 66 3F 0D 0A caf?..
Az alábbi példa bemutatja, hogyan változnak a bájtok, amikor a kódolást UTF-8-ra módosítják. Ahelyett é
, hogy 0x3F
az általa windows-1252
végzett kódolásra lenne kódolva, most 0xC3 0xA9
az UTF-8 kódolás lesz a használatban.
$OutputEncoding = [System.Text.UTF8Encoding]::new()
'café' | powershell.exe -File .\hexdump.ps1
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 63 61 66 C3 A9 0D 0A café..
$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 vagy Suspend.
Az érvényes értékek a következők:
- Leállítás: Nem jelenik meg a folyamatjelző sáv. Ehelyett hibaüzenetet jelenít meg, és leállítja a végrehajtást.
- Inquire: Nem jelenik meg a folyamatjelző sáv. Engedélyt kér a folytatáshoz. Ha válaszol vagy
Y
A
, 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.
$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'
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\MyCommand
a PowerShell importálja a MyModule modult.None
: Letiltja a modulok automatikus importálását. Modul importálásához használja aImport-Module
parancsmagot.
További információ a modulok automatikus importálásáról: about_Modules.
$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, 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 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 az Invoke-Command parancsmagok ConnectionURI vagy ApplicationName paramétereit.
A $PSSessionApplicationName
beállítási változó a helyi számítógépen van beállítva, de 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-PSSession
vagy 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 $PSSessionOption
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 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
.
$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.
- Alapértelmezett hely:
$HOME\Documents
- 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 $VerbosePreference
az é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 vagy Suspend.
Az érvényes értékek a következők:
- Leállítás: Megjeleníti a részletes üzenetet és egy hibaüzenetet, majd leállítja a végrehajtást.
- Inquire: Megjeleníti a részletes üzenetet, majd megjelenik egy kérdés, amely megkérdezi, hogy folytatja-e.
- Folytatás: Megjeleníti a részletes üzenetet, majd 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 [S] Suspend
[?] 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 $WarningPreference
az é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 vagy Suspend.
Az érvényes értékek a következők:
- Leállítás: Megjeleníti a figyelmeztető üzenetet és egy hibaüzenetet, majd leállítja a végrehajtást.
- Inquire: Megjeleníti a figyelmeztető üzenetet, majd engedélyt kér a folytatáshoz.
- Folytatás: (Alapértelmezett) Megjeleníti a figyelmeztető üzenetet, majd folytatja a végrehajtást.
- SilentlyContinue: Nem jelenik meg a figyelmeztető üzenet. Folytatja a végrehajtást.
A parancsmagOk WarningAction 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 $WarningPreference
hatá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 [S] Suspend
[?] 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 [S] Suspend
[?] 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 $WhatIfPreference
hatá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