about_Preference_Variables
Description courte
Variables qui personnalisent le comportement de PowerShell.
Description longue
PowerShell inclut un ensemble de variables qui vous permettent de personnaliser son comportement. Ces variables de préférence fonctionnent comme les options des systèmes basés sur l’interface graphique graphique.
Les variables de préférence affectent l’environnement d’exploitation PowerShell et toutes les commandes s’exécutent dans l’environnement. Dans de nombreux cas, les applets de commande ont des paramètres que vous pouvez utiliser pour remplacer le comportement de préférence pour une commande spécifique.
Le tableau suivant répertorie les variables de préférence et leurs valeurs par défaut.
PowerShell inclut les variables d’environnement suivantes qui stockent les préférences utilisateur. Pour plus d’informations sur ces variables d’environnement, consultez about_Environment_Variables.
$env:PSExecutionPolicyPreference
$env:PSModulePath
Remarque
Les modifications apportées aux variables de préférence s’appliquent uniquement dans l’étendue qu’elles sont effectuées et les étendues enfants de celles-ci. Par exemple, vous pouvez limiter les effets de la modification d’une variable de préférence à une fonction ou un script unique. Pour plus d’informations, consultez about_Scopes.
Utilisation des variables de préférence
Ce document décrit chacune des variables de préférence.
Pour afficher la valeur actuelle d’une variable de préférence spécifique, tapez le nom de la variable. Par exemple, la commande suivante affiche la valeur de la $ConfirmPreference
variable.
$ConfirmPreference
High
Pour modifier la valeur d’une variable, utilisez une instruction d’affectation. Par exemple, l’instruction suivante remplace la $ConfirmPreference
valeur du paramètre par Medium.
$ConfirmPreference = "Medium"
Les valeurs que vous définissez sont spécifiques à la session PowerShell actuelle. Pour rendre les variables efficaces dans toutes les sessions PowerShell, ajoutez-les à votre profil PowerShell. Pour plus d’informations, consultez about_Profiles.
Télétravail
Lorsque vous exécutez des commandes sur un ordinateur distant, les commandes distantes sont uniquement soumises aux préférences définies dans le client PowerShell de l’ordinateur distant. Par exemple, lorsque vous exécutez une commande distante, la valeur de la variable de $DebugPreference
l’ordinateur distant détermine la façon dont PowerShell répond aux messages de débogage.
Pour plus d’informations sur les commandes à distance, consultez about_Remote.
$ConfirmPreference
Détermine si PowerShell vous invite automatiquement à confirmer avant d’exécuter une applet de commande ou une fonction.
La $ConfirmPreference
variable prend l’une des valeurs d’énumération ConfirmImpact
: High, Medium, Low ou None.
Les applets de commande et les fonctions sont affectées à un risque élevé, moyen ou faible.
Lorsque la valeur de la $ConfirmPreference
variable est inférieure ou égale au risque affecté à une applet de commande ou à une fonction, PowerShell vous invite automatiquement à confirmer avant d’exécuter l’applet de commande ou la fonction. Pour plus d’informations sur l’affectation d’un risque aux applets de commande ou aux fonctions, consultez about_Functions_CmdletBindingAttribute.
Si la valeur de la $ConfirmPreference
variable est None, PowerShell ne vous invite jamais automatiquement avant d’exécuter une applet de commande ou une fonction.
Pour modifier le comportement de confirmation de toutes les applets de commande et fonctions de la session, modifiez $ConfirmPreference
la valeur de la variable.
Pour remplacer la $ConfirmPreference
commande d’une seule commande, utilisez le paramètre Confirm d’une applet de commande ou de la fonction. Pour demander la confirmation, utilisez -Confirm
. Pour supprimer la confirmation, utilisez -Confirm:$false
.
Valeurs valides de $ConfirmPreference
:
- Aucun : PowerShell n’invite pas automatiquement. Pour demander la confirmation d’une commande particulière, utilisez le paramètre Confirm de l’applet de commande ou de la fonction.
- Faible : PowerShell demande une confirmation avant d’exécuter des applets de commande ou des fonctions avec un risque faible, moyen ou élevé.
- Moyen : PowerShell demande une confirmation avant d’exécuter des applets de commande ou des fonctions avec un risque moyen ou élevé.
- Élevé : PowerShell vous invite à confirmer avant d’exécuter des applets de commande ou des fonctions présentant un risque élevé.
Explication détaillée
PowerShell peut vous inviter automatiquement à confirmer avant d’effectuer une action. Par exemple, lorsque l’applet de commande ou la fonction affecte considérablement le système pour supprimer des données ou utiliser une quantité importante de ressources système.
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"):
L’estimation du risque est un attribut de l’applet de commande ou de la fonction appelée ConfirmImpact. Les utilisateurs ne peuvent pas le modifier.
Les applets de commande et les fonctions susceptibles de présenter un risque pour le système ont un paramètre Confirm que vous pouvez utiliser pour demander ou supprimer la confirmation pour une seule commande.
La plupart des applets de commande et des fonctions conservent la valeur par défaut de Medium pour ConfirmImpact.
$ConfirmPreference
est défini sur High par défaut. Par conséquent, il est rare que les commandes demandent automatiquement la confirmation lorsque les utilisateurs ne spécifient pas le paramètre Confirmer .
Pour étendre l’invite de confirmation automatique à davantage d’applets de commande et de fonctions, définissez la valeur sur $ConfirmPreference
Moyen ou Faible.
Exemples
Cet exemple montre l’effet de la valeur par défaut de la $ConfirmPreference
variable, High. La valeur élevée confirme uniquement les applets de commande et les fonctions à haut risque. Étant donné que la plupart des applets de commande et des fonctions sont à risque moyen, elles ne sont pas confirmées automatiquement et Remove-Item
suppriment le fichier. L’ajout -Confirm
à la commande invite l’utilisateur à confirmer.
$ConfirmPreference
High
Remove-Item -Path C:\temp1.txt
Permet -Confirm
de demander la confirmation.
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"):
L’exemple suivant montre l’effet de la modification de la valeur de $ConfirmPreference
medium. Étant donné que la plupart des applets de commande et des fonctions sont à risque moyen, elles sont automatiquement confirmées. Pour supprimer l’invite de confirmation d’une seule commande, utilisez le paramètre Confirm avec la valeur $false
.
$ConfirmPreference = "Medium"
Remove-Item -Path C:\temp2.txt
Confirm
Are you sure you want to perform this action?
Performing operation "Remove File" on Target "C:\temp2.txt".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend
[?] Help (default is "Y"):
Remove-Item -Path C:\temp3.txt -Confirm:$false
$DebugPreference
Détermine la façon dont PowerShell répond aux messages de débogage générés par un script, une applet de commande ou un fournisseur, ou par une Write-Debug
commande sur la ligne de commande.
La $DebugPreference
variable accepte l’une des valeurs d’énumération ActionPreference
: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend ou Break.
Certaines applets de commande affichent des messages de débogage, qui sont généralement des messages techniques conçus pour les programmeurs et les professionnels du support technique. Par défaut, les messages de débogage ne sont pas affichés, mais vous pouvez afficher les messages de débogage en modifiant la valeur de $DebugPreference
.
Vous pouvez utiliser le paramètre commun de débogage d’une applet de commande pour afficher ou masquer les messages de débogage d’une commande spécifique. Pour plus d’informations, consultez about_CommonParameters.
Les valeurs valides sont les suivantes :
- Arrêt : affiche le message de débogage et arrête l’exécution. Écrit une erreur dans la console.
- Demande de renseignements : affiche le message de débogage et vous demande si vous souhaitez continuer.
- Continuer : affiche le message de débogage et poursuit l’exécution.
- SilentlyContinue : (Valeur par défaut) Aucun effet. Le message de débogage n’est pas affiché et l’exécution continue sans interruption.
L’ajout du paramètre commun de débogage à une commande, lorsque la commande est configurée pour générer un message de débogage, modifie la valeur de la $DebugPreference
variable en Inquire.
Exemples
Les exemples suivants montrent l’effet de la modification des valeurs d’une commande lors de $DebugPreference
l’entrée d’une Write-Debug
commande sur la ligne de commande.
La modification affecte tous les messages de débogage, y compris les messages générés par les applets de commande et les scripts. Les exemples montrent le paramètre Debug , qui affiche ou masque les messages de débogage liés à une seule commande.
Cet exemple montre l’effet de la valeur par défaut de la $DebugPreference
variable, SilentlyContinue. Par défaut, le message de débogage de l’applet Write-Debug
de commande n’est pas affiché et le traitement continue. Lorsque le paramètre Debug est utilisé, il remplace la préférence d’une seule commande. L’utilisateur est invité à confirmer.
$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"):
Cet exemple montre l’effet de $DebugPreference
la valeur Continuer . Le message de débogage s’affiche et la commande continue de traiter.
$DebugPreference = "Continue"
Write-Debug -Message "Hello, World"
DEBUG: Hello, World
Cet exemple utilise le paramètre Debug avec la valeur de $false
supprimer le message pour une seule commande. Le message de débogage n’est pas affiché.
Write-Debug -Message "Hello, World" -Debug:$false
Cet exemple montre l’effet d’être $DebugPreference
défini sur la valeur Stop . Le message de débogage s’affiche et la commande est arrêtée.
$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"
Cet exemple utilise le paramètre Debug avec la valeur de $false
supprimer le message pour une seule commande. Le message de débogage n’est pas affiché et le traitement n’est pas arrêté.
Write-Debug -Message "Hello, World" -Debug:$false
Cet exemple montre l’effet d’être $DebugPreference
défini sur la valeur Inquire . Le message de débogage s’affiche et l’utilisateur est invité à confirmer.
$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"):
Cet exemple utilise le paramètre Debug avec la valeur de $false
supprimer le message pour une seule commande. Le message de débogage n’est pas affiché et le traitement continue.
Write-Debug -Message "Hello, World" -Debug:$false
$ErrorActionPreference
Détermine comment PowerShell répond à une erreur sans fin, une erreur qui n’arrête pas le traitement de l’applet de commande. Par exemple, sur la ligne de commande ou dans un script, une applet de commande ou un fournisseur, tels que les erreurs générées par l’applet Write-Error
de commande.
La $ErrorActionPreference
variable accepte l’un des ActionPreference
valeurs d’énumération : SilentlyContinue, Stop, Continue, Inquire, Ignore ou Suspend.
Vous pouvez utiliser le paramètre commun ErrorAction d’une applet de commande pour remplacer la préférence d’une commande spécifique.
Les valeurs valides sont les suivantes :
- Continue : (valeur par défaut) Affiche le message d’erreur et continue à s’exécuter.
- Ignorer : supprime le message d’erreur et continue d’exécuter la commande. La valeur Ignore est destinée à une utilisation par commande, et non à une utilisation comme préférence enregistrée. Ignorer n’est pas une valeur valide pour la
$ErrorActionPreference
variable. - Demande : affiche le message d’erreur et vous demande si vous souhaitez continuer.
- SilentlyContinue : Aucun effet. Le message d’erreur n’est pas affiché et l’exécution continue sans interruption.
- Arrêt : affiche le message d’erreur et arrête l’exécution. Outre l’erreur générée, la valeur Stop génère un objet ActionPreferenceStopException dans le flux d’erreurs.
- Suspendre : suspend automatiquement un travail de flux de travail pour permettre une investigation plus approfondie. Après examen, le flux de travail peut être repris. La valeur Suspend est destinée à une utilisation par commande, et non à une utilisation comme préférence enregistrée. La suspension n’est pas une valeur valide pour la
$ErrorActionPreference
variable.
$ErrorActionPreference
et le paramètre ErrorAction n’affectent pas la façon dont PowerShell répond aux erreurs qui arrêtent le traitement des applets de commande. Pour plus d’informations sur le paramètre commun ErrorAction , consultez about_CommonParameters.
Exemples
Ces exemples montrent l’effet des différentes valeurs de la $ErrorActionPreference
variable. Le paramètre ErrorAction est utilisé pour remplacer la $ErrorActionPreference
valeur.
Cet exemple montre la $ErrorActionPreference
valeur par défaut, Continuer. Une erreur de non-fin est générée. Le message s’affiche et le traitement se poursuit.
# 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
Cet exemple montre la $ErrorActionPreference
valeur par défaut, Inquire. Une erreur est générée et une invite d’action s’affiche.
# 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"):
Cet exemple montre l’ensemble $ErrorActionPreference
sur SilentlyContinue.
Le message d’erreur est supprimé.
# 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
Cet exemple montre l’option $ErrorActionPreference
Arrêter. Il affiche également l’objet supplémentaire généré à la $Error
variable.
# 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
Détermine le format d’affichage des messages d’erreur dans PowerShell.
La $ErrorView
variable accepte l’une des valeurs d’énumération ErrorView
: NormalView ou CategoryView.
Les valeurs valides sont les suivantes :
NormalView : vue détaillée conçue pour la plupart des utilisateurs. Se compose d’une description de l’erreur et du nom de l’objet impliqué dans l’erreur.
CategoryView : vue succincte et structurée conçue pour les environnements de production. Le format est le suivant :
{Category}: ({TargetName}:{TargetType}):[{Activity}], {Reason}
Pour plus d’informations sur les champs de CategoryView, consultez la classe ErrorCategoryInfo .
Exemples
Cet exemple montre comment une erreur s’affiche lorsque la valeur est la valeur $ErrorView
par défaut, NormalView. Get-ChildItem
est utilisé pour rechercher un fichier inexistant.
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
Cet exemple montre comment la même erreur s’affiche lorsque la valeur de $ErrorView
CategoryView est modifiée.
$ErrorView = "CategoryView"
Get-ChildItem -Path C:\nofile.txt
ObjectNotFound: (C:\nofile.txt:String) [Get-ChildItem], ItemNotFoundException
Cet exemple montre que la valeur de n’affecte $ErrorView
que l’affichage d’erreur. Elle ne modifie pas la structure de l’objet d’erreur stocké dans la $Error
variable automatique. Pour plus d’informations sur la $Error
variable automatique, consultez about_automatic_variables.
La commande suivante prend l’objet ErrorRecord associé à l’erreur la plus récente dans le tableau d’erreurs, l’élément 0 et met en forme les propriétés de l’objet dans une liste.
$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
Détermine le nombre d’éléments énumérés inclus dans un affichage. Cette variable n’affecte pas les objets sous-jacents, uniquement l’affichage. Lorsque la valeur est $FormatEnumerationLimit
inférieure au nombre d’éléments énumérés, PowerShell ajoute un point de suspension (...
) pour indiquer les éléments non affichés.
Valeurs valides : Entiers (Int32
)
Valeur par défaut : 4
Exemples
Cet exemple montre comment utiliser la $FormatEnumerationLimit
variable pour améliorer l’affichage des éléments énumérés.
La commande de cet exemple génère une table qui répertorie tous les services exécutés sur l’ordinateur dans deux groupes : un pour l’exécution des services et un pour les services arrêtés . Il utilise une Get-Service
commande pour obtenir tous les services, puis envoie les résultats via le pipeline à l’applet Group-Object
de commande, qui regroupe les résultats par état du service.
Le résultat est une table qui répertorie l’état dans la colonne Name et les processus de la colonne Groupe . Pour modifier les étiquettes de colonne, utilisez une table de hachage, consultez about_Hash_Tables. Pour plus d’informations, consultez les exemples dans Format-Table.
Recherchez la valeur actuelle de $FormatEnumerationLimit
.
$FormatEnumerationLimit
4
Répertoriez tous les services regroupés par état. Il existe un maximum de quatre services répertoriés dans la colonne Groupe pour chaque état, car $FormatEnumerationLimit
la valeur est 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...}
Pour augmenter le nombre d’éléments répertoriés, augmentez la valeur de $FormatEnumerationLimit
1 000. Utilisez Get-Service
et Group-Object
affichez les services.
$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...
Utilisez Format-Table
le paramètre Wrap pour afficher la liste des services.
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
La $InformationPreference
variable vous permet de définir les préférences de flux d’informations que vous souhaitez afficher aux utilisateurs. Plus précisément, les messages d’information que vous avez ajoutés à des commandes ou des scripts en ajoutant l’applet de commande Write-Information . Si le paramètre InformationAction est utilisé, sa valeur remplace la valeur de la $InformationPreference
variable.
Write-Information
a été introduit dans PowerShell 5.0.
La $InformationPreference
variable accepte l’un des ActionPreference
valeurs d’énumération : SilentlyContinue, Stop, Continue, Inquire, Ignore ou Suspend.
Les valeurs valides sont les suivantes :
- Arrêt : arrête une commande ou un script à une occurrence de la
Write-Information
commande. - Inquire : Affiche le message d’information que vous spécifiez dans une
Write-Information
commande, puis vous demande si vous souhaitez continuer. - Continuer : affiche le message d’information et continue à s’exécuter.
- Suspendre : suspend automatiquement un travail de flux de travail une fois qu’une
Write-Information
commande est effectuée, pour permettre aux utilisateurs de voir les messages avant de continuer. Le flux de travail peut être repris à la discrétion de l’utilisateur. - SilentlyContinue : (Valeur par défaut) Aucun effet. Les messages d’information ne sont pas affichés et le script continue sans interruption.
$Log*Événement
Les variables de préférence log*Event déterminent quels types d’événements sont écrits dans le journal des événements PowerShell dans l’Observateur d’événements. Par défaut, seuls les événements du moteur et du fournisseur sont enregistrés. Toutefois, vous pouvez utiliser les variables de préférence log*Event pour personnaliser votre journal, telles que la journalisation des événements sur les commandes.
Les variables de préférence d’événement Log*sont les suivantes :
$LogCommandHealthEvent
: journalise les erreurs et les exceptions dans l’initialisation et le traitement des commandes. La valeur par défaut est$false
(non journalisée).$LogCommandLifecycleEvent
: enregistre le démarrage et l’arrêt des commandes et des pipelines de commandes et des exceptions de sécurité dans la découverte de commandes. La valeur par défaut est$false
(non journalisée).$LogEngineHealthEvent
: journalise les erreurs et les échecs des sessions. La valeur par défaut est$true
(journalisée).$LogEngineLifecycleEvent
: enregistre l’ouverture et la fermeture des sessions. La valeur par défaut est$true
(journalisée).$LogProviderHealthEvent
: journalise les erreurs du fournisseur, telles que les erreurs de lecture et d’écriture, les erreurs de recherche et les erreurs d’appel. La valeur par défaut est$true
(journalisée).$LogProviderLifecycleEvent
: journaux d’ajout et de suppression de fournisseurs PowerShell. La valeur par défaut est$true
(journalisée). Pour plus d’informations sur les fournisseurs PowerShell, consultez about_Providers.
Pour activer un journal*Événement, tapez la variable avec une valeur de $true
, par exemple :
$LogCommandLifeCycleEvent = $true
Pour désactiver un type d’événement, tapez la variable avec une valeur de $false
, par exemple :
$LogCommandLifeCycleEvent = $false
Les événements que vous activez ne sont effectifs que pour la console PowerShell actuelle. Pour appliquer la configuration à toutes les consoles, enregistrez les paramètres de variable dans votre profil PowerShell. Pour plus d’informations, consultez about_Profiles.
$MaximumAliasCount
Détermine le nombre d’alias autorisés dans une session PowerShell. La valeur par défaut est 4096 et doit être suffisante pour la plupart des utilisations. Vous pouvez ajuster $MaximumAliasCount
pour répondre à vos besoins.
Valeurs valides : 1024 - 32768 (Int32
)
Valeur par défaut : 4096
Pour compter les alias sur votre système, tapez :
(Get-Alias).count
$MaximumDriveCount
Détermine le nombre de lecteurs PowerShell autorisés dans une session donnée. Par exemple, les lecteurs de système de fichiers et les magasins de données exposés par les fournisseurs PowerShell et apparaissent en tant que lecteurs, tels que les Alias:
lecteurs et HKLM:
les lecteurs.
Valeurs valides : 1024 - 32768 (Int32
)
Valeur par défaut : 4096
Pour compter les alias sur votre système, tapez :
(Get-PSDrive).count
$MaximumErrorCount
Détermine le nombre d’erreurs enregistrées dans l’historique des erreurs de la session.
Valeurs valides : 256 - 32768 (Int32
)
Valeur par défaut : 256
Les objets qui représentent chaque erreur conservée sont stockés dans la $Error
variable automatique. $Error
contient un tableau d’objets d’enregistrement d’erreur. L’erreur la plus récente est le premier objet du tableau. $Error[0]
Pour compter les erreurs sur votre système, utilisez la $Error
propriété Count du tableau.
$Error.count
Pour afficher une erreur spécifique, utilisez la [0]
notation de tableau pour afficher l’erreur la plus récente.
$Error[0]
Pour afficher l’erreur conservée la plus ancienne, tapez :
$Error[-1]
Le paramètre Force remplace la mise en forme spéciale des objets ErrorRecord et rétablit le format conventionnel. Pour afficher les propriétés de l’objet ErrorRecord , tapez la commande suivante :
$Error[0] | Format-List -Property * -Force
Dans cet exemple, $Error.Count
affiche le nombre d’erreurs. Pour supprimer toutes les erreurs de l’historique des erreurs, utilisez la Clear
méthode du tableau d’erreurs.
$Error.Count
17
$Error.Clear()
$Error.Count
0
Pour rechercher toutes les propriétés et méthodes d’un tableau d’erreurs, utilisez l’applet Get-Member
de commande avec son paramètre InputObject . Lorsque vous utilisez le paramètre InputObject , Get-Member
affiche les propriétés et méthodes de la collection.
Get-Member -InputObject $Error
Lorsque vous dirigez une collection d’objets vers Get-Member
, Get-Member
affiche les propriétés et méthodes des objets de la collection.
$Error | Get-Member
$MaximumFunctionCount
Détermine le nombre de fonctions autorisées dans une session donnée.
Valeurs valides : 1024 - 32768 (Int32
)
Valeur par défaut : 4096
Pour afficher les fonctions de votre session, utilisez le lecteur PowerShell Function:
exposé par le fournisseur PowerShell Function
. Pour plus d’informations sur le Function
fournisseur, about_Function_Provider.
Pour répertorier les fonctions de la session active, tapez :
Get-ChildItem Function:
Pour compter les fonctions de la session active, tapez :
(Get-ChildItem Function:).Count
$MaximumHistoryCount
Détermine le nombre de commandes enregistrées dans l’historique des commandes de la session active.
Valeurs valides : 1 - 32768 (Int32
)
Valeur par défaut : 4096
Pour déterminer le nombre de commandes actuellement enregistrées dans l’historique des commandes, tapez :
(Get-History).Count
Pour afficher les commandes enregistrées dans votre historique de session, utilisez l’applet de Get-History
commande. Pour plus d’informations, consultez about_History.
$MaximumVariableCount
Détermine le nombre de variables autorisées dans une session donnée, notamment les variables automatiques, les variables de préférence et les variables que vous créez dans les commandes et les scripts.
Valeurs valides : 1024 - 32768 (Int32
)
Valeur par défaut : 4096
Pour afficher les variables de votre session, utilisez l’applet Get-Variable
de commande et les fonctionnalités du lecteur PowerShell Variable:
et du fournisseur PowerShell Variable
. Pour plus d’informations, consultez about_Variable_Provider.
Pour rechercher le nombre actuel de variables sur le système, tapez :
(Get-Variable).Count
$OFS
Le séparateur de champ de sortie (OFS) spécifie le caractère qui sépare les éléments d’un tableau converti en chaîne.
Valeurs valides : n’importe quelle chaîne.
Valeur par défaut : Espace
Par défaut, la $OFS
variable n’existe pas et le séparateur de fichier de sortie est un espace, mais vous pouvez ajouter cette variable et la définir sur n’importe quelle chaîne. Vous pouvez modifier la valeur de $OFS
votre session en tapant $OFS="<value>"
.
Remarque
Si vous attendez la valeur par défaut d’un espace (" "
) dans votre script, module ou sortie de configuration, veillez à ce que la $OFS
valeur par défaut n’ait pas été modifiée ailleurs dans votre code.
Exemples
Cet exemple montre qu’un espace est utilisé pour séparer les valeurs lorsqu’un tableau est converti en chaîne. Dans ce cas, un tableau d’entiers est stocké dans une variable, puis la variable est castée en tant que chaîne.
$array = 1,2,3,4
[string]$array
1 2 3 4
Pour modifier le séparateur, ajoutez la $OFS
variable en lui affectant une valeur.
La variable doit être nommée $OFS
.
$OFS = "+"
[string]$array
1+2+3+4
Pour restaurer le comportement par défaut, vous pouvez affecter un espace (" "
) à la valeur ou $OFS
à supprimer la variable. Les commandes suivantes suppriment la variable, puis vérifient que le séparateur est un espace.
Remove-Variable OFS
[string]$array
1 2 3 4
$OutputEncoding
Détermine la méthode d’encodage de caractères utilisée par PowerShell lors de la canalisation de données dans des applications natives.
Remarque
Dans la majorité des scénarios, la valeur pour $OutputEncoding
laquelle doit s’aligner sur la valeur de [Console]::InputEncoding
.
Les valeurs valides sont les suivantes : Objets dérivés d’une classe Encoding, comme ASCIIEncoding, UTF7Encoding, UTF8Encoding, UTF32Encoding et UnicodeEncoding.
Valeur par défaut : objet ASCIIEncoding .
Exemples
La première commande recherche la valeur de $OutputEncoding
. Étant donné que la valeur est un objet d’encodage, affichez uniquement sa propriété EncodingName .
$OutputEncoding.EncodingName
Les exemples restants utilisent le script PowerShell suivant enregistré pour hexdump.ps1
illustrer le comportement de $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()
}
L’exemple suivant montre comment la valeur café
de chaîne est encodée en octets lorsqu’elle est redirigée vers hexdump.ps1
créée ci-dessus. Il montre que la valeur de chaîne est encodée à l’aide du windows-1252
schéma d’encodage qui est l’encodage par défaut sur le système testé en question.
'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?..
L’exemple suivant montre comment les octets changent lors de la modification de l’encodage en UTF-8. Au é
lieu d’être encodé 0x3F
comme terminé par windows-1252
celui-ci sera désormais 0xC3 0xA9
dû à l’utilisation de l’encodage UTF-8.
$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
Détermine la façon dont PowerShell répond aux mises à jour de progression générées par un script, une applet de commande ou un fournisseur, telles que les barres de progression générées par l’applet de commande Write-Progress . L’applet Write-Progress
de commande crée des barres de progression qui affichent l’état d’une commande.
La $ProgressPreference
variable accepte l’une des valeurs d’énumération ActionPreference
: SilentlyContinue, Stop, Continue, Inquire, Ignore ou Suspend.
Les valeurs valides sont les suivantes :
- Arrêt : n’affiche pas la barre de progression. Au lieu de cela, il affiche un message d’erreur et arrête l’exécution.
- Demande : n’affiche pas la barre de progression. Demande l’autorisation de continuer. Si vous répondez avec
Y
ouA
, il affiche la barre de progression. - Continuez : (valeur par défaut) Affiche la barre de progression et poursuit l’exécution.
- SilentlyContinue : exécute la commande, mais n’affiche pas la barre de progression.
$PSDefaultParameterValues
Spécifie les valeurs par défaut pour les paramètres des applets de commande et des fonctions avancées.
La valeur d’une table de $PSDefaultParameterValues
hachage où la clé se compose du nom de l’applet de commande et du nom de paramètre séparés par un signe deux-points (:
). La valeur est une valeur par défaut personnalisée que vous spécifiez.
$PSDefaultParameterValues
a été introduit dans PowerShell 3.0.
Pour plus d’informations sur cette variable de préférence, consultez about_Parameters_Default_Values.
$PSEmailServer
Spécifie le serveur de messagerie par défaut utilisé pour envoyer des messages électroniques. Cette variable de préférence est utilisée par les applets de commande qui envoient des e-mails, telles que l’applet de commande Send-MailMessage .
$PSModuleAutoloadingPreference
Active et désactive l’importation automatique de modules dans la session. La $PSModuleAutoloadingPreference
variable n’existe pas par défaut. Le comportement par défaut lorsque la variable n’est pas définie est identique à $PSModuleAutoloadingPreference = 'All'
.
Pour importer automatiquement un module, obtenez ou utilisez une commande contenue dans le module.
La $PSModuleAutoloadingPreference
variable accepte l’une PSModuleAutoLoadingPreference
des valeurs d’énumération :
All
: les modules sont importés automatiquement lors de la première utilisation.ModuleQualified
: les modules sont importés automatiquement uniquement lorsqu’un utilisateur utilise le nom qualifié de module d’une commande dans le module. Par exemple, si l’utilisateur tapeMyModule\MyCommand
, PowerShell importe le module MyModule .None
: désactive l’importation automatique de modules. Pour importer un module, utilisez l’applet deImport-Module
commande.
Pour plus d’informations sur l’importation automatique de modules, consultez about_Modules.
$PSSessionApplicationName
Spécifie le nom d’application par défaut d’une commande distante qui utilise les services Web pour la technologie de gestion (WS-Management). Pour plus d’informations, consultez À propos de la gestion à distance de Windows.
Le nom de l’application par défaut du système est WSMAN
, mais vous pouvez utiliser cette variable de préférence pour modifier la valeur par défaut.
Le nom de l’application est le dernier nœud d’un URI de connexion. Par exemple, le nom de l’application dans l’exemple d’URI suivant est WSMAN
.
http://Server01:8080/WSMAN
Le nom d’application par défaut est utilisé lorsque la commande distante ne spécifie pas d’URI de connexion ou de nom d’application.
Le service WinRM utilise le nom de l’application pour sélectionner un écouteur pour traiter la demande de connexion. La valeur du paramètre doit correspondre à la valeur de la propriété URLPrefix d’un écouteur sur l’ordinateur distant.
Pour remplacer la valeur par défaut du système et la valeur de cette variable, puis sélectionnez un autre nom d’application pour une session particulière, utilisez les paramètres ConnectionURI ou ApplicationName des applets de commande New-PSSession, Enter-PSSession ou Invoke-Command .
La $PSSessionApplicationName
variable de préférence est définie sur l’ordinateur local, mais elle spécifie un écouteur sur l’ordinateur distant. Si le nom de l’application que vous spécifiez n’existe pas sur l’ordinateur distant, la commande permettant d’établir la session échoue.
$PSSessionConfigurationName
Spécifie la configuration de session par défaut utilisée pour créer de nouvelles sessions dans la session active.
Cette variable de préférence est définie sur l’ordinateur local, mais elle spécifie une configuration de session située sur l’ordinateur distant.
La valeur de la $PSSessionConfigurationName
variable est un URI de ressource complet.
La valeur http://schemas.microsoft.com/PowerShell/microsoft.PowerShell
par défaut indique la configuration de session Microsoft.PowerShell sur l’ordinateur distant.
Si vous spécifiez uniquement un nom de configuration, l’URI de schéma suivant est ajouté :
http://schemas.microsoft.com/PowerShell/
Vous pouvez remplacer la valeur par défaut et sélectionner une autre configuration de session pour une session particulière à l’aide du paramètre ConfigurationName des applets de commande ou Invoke-Command
des applets de commande.New-PSSession
Enter-PSSession
Vous pouvez modifier la valeur de cette variable à tout moment. Lorsque vous le faites, n’oubliez pas que la configuration de session que vous sélectionnez doit exister sur l’ordinateur distant. Si ce n’est pas le cas, la commande permettant de créer une session qui utilise la configuration de session échoue.
Cette variable de préférence ne détermine pas les configurations de session locale utilisées lorsque les utilisateurs distants créent une session qui se connecte à cet ordinateur. Toutefois, vous pouvez utiliser les autorisations pour les configurations de session locale pour déterminer quels utilisateurs peuvent les utiliser.
$PSSessionOption
Établit les valeurs par défaut pour les options utilisateur avancées dans une session à distance. Ces préférences d’option remplacent les valeurs par défaut système pour les options de session.
La $PSSessionOption
variable contient un objet PSSessionOption . Pour plus d’informations, consultez System.Management.Automation.Remoting.PSSessionOption.
Chaque propriété de l’objet représente une option de session. Par exemple, la propriété NoCompression transforme la compression des données pendant la session.
Par défaut, la $PSSessionOption
variable contient un objet PSSessionOption avec les valeurs par défaut pour toutes les options, comme indiqué ci-dessous.
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
Pour obtenir des descriptions de ces options et plus d’informations, consultez New-PSSessionOption. Pour plus d’informations sur les commandes et sessions à distance, consultez about_Remote et about_PSSessions.
Pour modifier la valeur de la $PSSessionOption
variable de préférence, utilisez l’applet New-PSSessionOption
de commande pour créer un objet PSSessionOption avec les valeurs d’option que vous préférez. Enregistrez la sortie dans une variable appelée $PSSessionOption
.
$PSSessionOption = New-PSSessionOption -NoCompression
Pour utiliser la $PSSessionOption
variable de préférence dans chaque session PowerShell, ajoutez une New-PSSessionOption
commande qui crée la $PSSessionOption
variable à votre profil PowerShell. Pour plus d’informations, consultez about_Profiles.
Vous pouvez définir des options personnalisées pour une session à distance particulière. Les options que vous définissez sont prioritaires sur les valeurs par défaut du système et la valeur de la $PSSessionOption
variable de préférence.
Pour définir des options de session personnalisées, utilisez l’applet New-PSSessionOption
de commande pour créer un objet PSSessionOption . Ensuite, utilisez l’objet PSSessionOption comme valeur du paramètre SessionOption dans les applets de commande qui créent une session, telle que New-PSSession
, Enter-PSSession
et Invoke-Command
.
$Transcript
Utilisé par Start-Transcript
pour spécifier le nom et l’emplacement du fichier de transcription. Si vous ne spécifiez pas de valeur pour le paramètre Path , Start-Transcript
utilisez le chemin d’accès dans la valeur de la $Transcript
variable globale. Si vous n’avez pas créé cette variable, Start-Transcript
stocke les transcriptions à l’emplacement suivant à l’aide du nom par défaut.
- Emplacement par défaut :
$HOME\Documents
- Nom de fichier par défaut :
PowerShell_transcript.<computername>.<random>.<timestamp>.txt
$VerbosePreference
Détermine la façon dont PowerShell répond aux messages détaillés générés par un script, une applet de commande ou un fournisseur, tels que les messages générés par l’applet de commande Write-Verbose . Les messages détaillés décrivent les actions effectuées pour exécuter une commande.
Par défaut, les messages détaillés ne sont pas affichés, mais vous pouvez modifier ce comportement en modifiant la valeur de $VerbosePreference
.
La $VerbosePreference
variable accepte l’une des valeurs d’énumération ActionPreference
: SilentlyContinue, Stop, Continue, Inquire, Ignore ou Suspend.
Les valeurs valides sont les suivantes :
- Arrêt : affiche le message détaillé et un message d’erreur, puis arrête l’exécution.
- S’informer : affiche le message détaillé, puis affiche une invite qui vous demande si vous souhaitez continuer.
- Continuer : affiche le message détaillé, puis poursuit l’exécution.
- SilentlyContinue : (par défaut) N’affiche pas le message détaillé. Continue à s’exécuter.
Vous pouvez utiliser le paramètre commun Verbose d’une applet de commande pour afficher ou masquer les messages détaillés d’une commande spécifique. Pour plus d’informations, consultez about_CommonParameters.
Exemples
Ces exemples montrent l’effet des différentes valeurs du $VerbosePreference
paramètre Verbose pour remplacer la valeur de préférence.
Cet exemple montre l’effet de la valeur SilentlyContinue , c’est la valeur par défaut. La commande utilise le paramètre Message , mais n’écrit pas de message dans la console PowerShell.
Write-Verbose -Message "Verbose message test."
Lorsque le paramètre Verbose est utilisé, le message est écrit.
Write-Verbose -Message "Verbose message test." -Verbose
VERBOSE: Verbose message test.
Cet exemple montre l’effet de la valeur Continuer . La $VerbosePreference
variable est définie sur Continuer et le message s’affiche.
$VerbosePreference = "Continue"
Write-Verbose -Message "Verbose message test."
VERBOSE: Verbose message test.
Cet exemple utilise le paramètre Verbose avec une valeur qui $false
remplace la valeur Continuer . Le message n’est pas affiché.
Write-Verbose -Message "Verbose message test." -Verbose:$false
Cet exemple montre l’effet de la valeur Stop . La $VerbosePreference
variable est définie sur Arrêter et le message s’affiche. La commande est arrêtée.
$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."
Cet exemple utilise le paramètre Verbose avec une valeur qui $false
remplace la valeur Stop . Le message n’est pas affiché.
Write-Verbose -Message "Verbose message test." -Verbose:$false
Cet exemple montre l’effet de la valeur Inquire . La $VerbosePreference
variable est définie sur Inquire. Le message s’affiche et l’utilisateur est invité à confirmer.
$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"):
Cet exemple utilise le paramètre Verbose avec une valeur qui $false
remplace la valeur Inquire . L’utilisateur n’est pas invité et le message n’est pas affiché.
Write-Verbose -Message "Verbose message test." -Verbose:$false
$WarningPreference
Détermine la façon dont PowerShell répond aux messages d’avertissement générés par un script, une applet de commande ou un fournisseur, tels que les messages générés par l’applet de commande Write-Warning .
Par défaut, les messages d’avertissement sont affichés et l’exécution se poursuit, mais vous pouvez modifier ce comportement en modifiant la valeur de $WarningPreference
.
La $WarningPreference
variable accepte l’une des valeurs d’énumération ActionPreference
: SilentlyContinue, Stop, Continue, Inquire, Ignore ou Suspend.
Les valeurs valides sont les suivantes :
- Arrêt : affiche le message d’avertissement et un message d’erreur, puis arrête l’exécution.
- Inquire : affiche le message d’avertissement, puis demande l’autorisation de continuer.
- Continuez : (valeur par défaut) Affiche le message d’avertissement, puis continue à s’exécuter.
- SilentlyContinue : n’affiche pas le message d’avertissement. Continue à s’exécuter.
Vous pouvez utiliser le paramètre commun WarningAction d’une applet de commande pour déterminer comment PowerShell répond aux avertissements d’une commande particulière. Pour plus d’informations, consultez about_CommonParameters.
Exemples
Ces exemples montrent l’effet des différentes valeurs de $WarningPreference
.
Le paramètre WarningAction remplace la valeur de préférence.
Cet exemple montre l’effet de la valeur par défaut, Continue.
$m = "This action can delete data."
Write-Warning -Message $m
WARNING: This action can delete data.
Cet exemple utilise le paramètre WarningAction avec la valeur SilentlyContinue pour supprimer l’avertissement. Le message n’est pas affiché.
$m = "This action can delete data."
Write-Warning -Message $m -WarningAction SilentlyContinue
Cet exemple montre comment modifier la $WarningPreference
variable en fonction de la valeur SilentlyContinue . Le message n’est pas affiché.
$WarningPreference = "SilentlyContinue"
$m = "This action can delete data."
Write-Warning -Message $m
Cet exemple utilise le paramètre WarningAction pour s’arrêter lorsqu’un avertissement est généré.
$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
Cet exemple montre comment modifier la $WarningPreference
variable en fonction de la valeur Inquire . L’utilisateur est invité à confirmer.
$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"):
Cet exemple utilise le paramètre WarningAction avec la valeur SilentlyContinue. La commande continue à s’exécuter et aucun message n’est affiché.
$m = "This action can delete data."
Write-Warning -Message $m -WarningAction SilentlyContinue
Cet exemple montre comment modifier la $WarningPreference
valeur « Arrêter ».
$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
Cet exemple utilise WarningAction avec la valeur Inquire. L’utilisateur est invité lorsqu’un avertissement se produit.
$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
Détermine si WhatIf est automatiquement activé pour chaque commande qui la prend en charge. Lorsque WhatIf est activé, l’applet de commande signale l’effet attendu de la commande, mais n’exécute pas la commande.
Les valeurs valides sont les suivantes :
- False (0, non activé) : (Valeur par défaut) WhatIf n’est pas automatiquement activé. Pour l’activer manuellement, utilisez le paramètre WhatIf de l’applet de commande.
- True (1, activé) : WhatIf est automatiquement activé sur n’importe quelle commande qui la prend en charge. Les utilisateurs peuvent utiliser le paramètre WhatIf avec la valeur False pour le désactiver manuellement, par
-WhatIf:$false
exemple .
Exemples
Ces exemples montrent l’effet des différentes valeurs de $WhatIfPreference
.
Ils montrent comment utiliser le paramètre WhatIf pour remplacer la valeur de préférence d’une commande spécifique.
Cet exemple montre l’effet de la $WhatIfPreference
variable définie sur la valeur par défaut, False. Permet Get-ChildItem
de vérifier que le fichier existe.
Remove-Item
supprime le fichier. Une fois le fichier supprimé, vous pouvez vérifier la suppression avec 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
Cet exemple montre l’effet de l’utilisation du paramètre WhatIf lorsque la valeur de $WhatIfPreference
la valeur est False.
Vérifiez que le fichier existe.
Get-ChildItem -Path .\test2.txt
Directory: C:\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2/28/2019 17:06 12 test2.txt
Utilisez le paramètre WhatIf pour déterminer le résultat de la tentative de suppression du fichier.
Remove-Item -Path .\test2.txt -WhatIf
What if: Performing the operation "Remove File" on target "C:\Test\test2.txt".
Vérifiez que le fichier n’a pas été supprimé.
Get-ChildItem -Path .\test2.txt
Directory: C:\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2/28/2019 17:06 12 test2.txt
Cet exemple montre l’effet de la $WhatIfPreference
variable définie sur la valeur True. Lorsque vous utilisez Remove-Item
pour supprimer un fichier, le chemin d’accès du fichier s’affiche, mais le fichier n’est pas supprimé.
Tentez de supprimer un fichier. Un message s’affiche sur ce qui se passerait s’il Remove-Item
était exécuté, mais le fichier n’est pas supprimé.
$WhatIfPreference = "True"
Remove-Item -Path .\test2.txt
What if: Performing the operation "Remove File" on target "C:\Test\test2.txt".
Permet Get-ChildItem
de vérifier que le fichier n’a pas été supprimé.
Get-ChildItem -Path .\test2.txt
Directory: C:\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2/28/2019 17:06 12 test2.txt
Cet exemple montre comment supprimer un fichier lorsque la valeur de $WhatIfPreference
la valeur est True. Il utilise le paramètre WhatIf avec la valeur .$false
Permet Get-ChildItem
de vérifier que le fichier a été supprimé.
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
Voici des exemples de l’applet Get-Process
de commande qui ne prend pas en charge WhatIf et Stop-Process
qui prend en charge WhatIf. La valeur de la $WhatIfPreference
variable est True.
Get-Process
ne prend pas en charge WhatIf. Lorsque la commande est exécutée, elle affiche le processus Winword .
Get-Process -Name Winword
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
130 119.84 173.38 8.39 15024 4 WINWORD
Stop-Process
prend en charge WhatIf. Le processus Winword n’est pas arrêté.
Stop-Process -Name Winword
What if: Performing the operation "Stop-Process" on target "WINWORD (15024)".
Vous pouvez remplacer le Stop-Process
comportement WhatIf à l’aide du paramètre WhatIf avec la valeur .$false
Le processus Winword est arrêté.
Stop-Process -Name Winword -WhatIf:$false
Pour vérifier que le processus Winword a été arrêté, utilisez Get-Process
.
Get-Process -Name Winword
Get-Process : Cannot find a process with the name "Winword".
Verify the process name and call the cmdlet again.
At line:1 char:1
+ Get-Process -Name Winword