about_Preference_Variables

Mis à jour: mai 2014

S'applique à: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

RUBRIQUE

Variables des préférences

DESCRIPTION COURTE

Variables qui personnalisent le comportement de Windows PowerShell

DESCRIPTION DÉTAILLÉE

Windows PowerShell inclut un ensemble de variables qui vous permettent de personnaliser son comportement. Ces « variables des préférences » fonctionnent comme les options dans les systèmes basés sur l’interface utilisateur graphique.

Les variables des préférences affectent l’environnement opératoire Windows PowerShell et toutes les commandes exécutées 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 des préférences et leurs valeurs par défaut.

    Variable                             Default Value
    --------                             -------------
    $ConfirmPreference                   High
    $DebugPreference                     SilentlyContinue
    $ErrorActionPreference               Continue
    $ErrorView                           NormalView
    $FormatEnumerationLimit              4
    $LogCommandHealthEvent               False (not logged)
    $LogCommandLifecycleEvent            False (not logged)
    $LogEngineHealthEvent                True (logged)
    $LogEngineLifecycleEvent             True (logged)
    $LogProviderLifecycleEvent           True (logged)
    $LogProviderHealthEvent              True (logged)
    $MaximumAliasCount                   4096
    $MaximumDriveCount                   4096
    $MaximumErrorCount                   256
    $MaximumFunctionCount                4096
    $MaximumHistoryCount                 4096
    $MaximumVariableCount                4096
    $OFS                                 (Space character (" "))
    $OutputEncoding                      ASCIIEncoding object
    $ProgressPreference                  Continue
    $PSDefaultParameterValues            (None - empty hash table)     
    $PSEmailServer                       (None)
    $PSModuleAutoLoadingPreference       All
    $PSSessionApplicationName            WSMAN
    $PSSessionConfigurationName          https://schemas.microsoft.com/PowerShell/microsoft.PowerShell 
    $PSSessionOption                     (See below)
    $VerbosePreference                   SilentlyContinue
    $WarningPreference                   Continue
    $WhatIfPreference                    0

Windows PowerShell inclut également les variables d’environnement suivantes qui stockent les préférences de l’utilisateur. Pour plus d’informations sur ces variables d’environnement, consultez about_Environment_Variables.

    Variable                                         
    --------    
    PSExecutionPolicyPreference                     
    PSModulePath                        

UTILISATION DES VARIABLES DES PRÉFÉRENCES

Ce document décrit chacune des variables des préférences.

Pour afficher la valeur actuelle d’une variable de préférence spécifique, tapez le nom de la variable. En réponse, Windows PowerShell fournit la valeur. Par exemple, la commande suivante affiche la valeur de la variable $ConfirmPreference.

        PS> $ConfirmPreference
        High

Pour modifier la valeur d’une variable, utilisez une instruction d’assignation. Par exemple, l’instruction suivante affecte la valeur « Medium » à la variable $ConfirmPreference.

        PS> $ConfirmPreference = "Medium"

Comme toutes les variables, les valeurs que vous définissez sont spécifiques à la session Windows PowerShell active. Pour les rendre effectives dans toutes les sessions Windows PowerShell, ajoutez-les à votre profil Windows PowerShell. Pour plus d'informations, consultez about_Providers.

UTILISATION À DISTANCE

Quand vous exécutez des commandes sur un ordinateur distant, les commandes à distance ne sont soumises qu’aux préférences définies dans le client Windows PowerShell sur l’ordinateur distant. Par exemple, quand vous exécutez une commande à distance, la valeur de la variable $DebugPreference sur l’ordinateur distant détermine comment Windows PowerShell répond aux messages de débogage.

Pour plus d’informations sur les commandes à distance, consultez about_remote.

$ConfirmPreference
------------------

Détermine si Windows PowerShell vous demande automatiquement confirmation avant d’exécuter une applet de commande ou une fonction.

Quand la valeur de la variable $ConfirmPreference (High, Medium, Low) est inférieure ou égale au risque affecté à l’applet de commande ou à la fonction (élevé, moyen, faible), Windows PowerShell vous demande automatiquement confirmation avant d’exécuter l’applet de commande ou la fonction.

Si la valeur de la variable $ConfirmPreference est None, Windows PowerShell ne vous demande jamais automatiquement confirmation avant d’exécuter une applet de commande ou une fonction.

Pour modifier le comportement de confirmation pour toutes les applets de commande et fonctions dans la session, modifiez la valeur de la variable $ConfirmPreference.

Pour remplacer la variable $ConfirmPreference pour une seule commande, utilisez le paramètre Confirm de la fonction ou l’applet de commande. Pour demander confirmation, utilisez -Confirm. Pour supprimer la confirmation, utilisez -Confirm:$false.

Valeurs valides de $ConfirmPreference :

None : Windows PowerShell ne demande pas automatiquement confirmation. Pour demander confirmation d’une commande particulière, utilisez le paramètre Confirm de la fonction ou l’applet de commande.

Low : Windows PowerShell demande confirmation avant d’exécuter des fonctions ou des applets de commande avec un risque faible, moyen ou élevé.

Medium : Windows PowerShell demande confirmation avant d’exécuter des fonctions ou des applets de commande avec un risque moyen ou élevé.

High : Windows PowerShell demande confirmation avant d’exécuter des fonctions ou des applets de commande avec un risque élevé.

EXPLICATION DÉTAILLÉE

Quand les actions d’une applet de commande ou fonction affectent de manière significative le système, telles que celles qui suppriment des données ou utilisent une quantité importante de ressources système, Windows PowerShell peut vous demander automatiquement confirmation avant d’effectuer l’action.

Par exemple,

    PS> remove-item 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  [S] Suspend  [?] Help (default is "Y"):

L’estimation du risque est un attribut de l’applet de commande ou de la fonction appelé « ConfirmImpact ». Les utilisateurs ne peuvent pas le modifier.

Les applets de commande et fonctions qui peuvent représenter un risque pour le système ont un paramètre Confirm que vous pouvez utiliser pour demander ou supprimer la confirmation pour une commande unique.

Comme la plupart des applets de commande et fonctions utilisent la valeur par défaut de risque moyen (ConfirmImpact) et que la valeur par défaut de $ConfirmPreference est High, une confirmation automatique se produit rarement. Toutefois, vous pouvez activer la confirmation automatique en remplaçant la valeur de $ConfirmPreference par Medium ou Low.

EXEMPLES

Cet exemple montre l’effet de la valeur par défaut de $ConfirmPreference. La valeur High confirme uniquement les fonctions et les applets de commande à risque élevé. Étant donné que la plupart des applets de commande et fonctions sont à risque moyen, elles ne sont pas automatiquement confirmées.

          PS> $confirmpreference              #Get the current value of the
          High                                 variable
          
          PS> remove-item temp1.txt           #Delete a file
          PS>                                 #Deleted without confirmation

           
          PS> remove-item temp2.txt -confirm  #Use the Confirm parameter to
                                               request confirmation

          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 du remplacement de la valeur de $ConfirmPreference par Medium. Étant donné que la plupart des applets de commande et fonctions sont à risque moyen, elles sont automatiquement confirmées. Pour supprimer l’invite de confirmation pour une commande unique, utilisez le paramètre Confirm avec la valeur $false

            
          PS> $confirmpreference = "Medium"  #Change the value of $ConfirmPreference
          PS> remove-item temp2.txt          #Deleting a file triggers confirmation         
                                     
          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"):


          PS> remove-item temp3.txt -confirm:$false   #Use Confirm parameter
                                                       to suppress confirmation
          PS>

$DebugPreference
------------------

Détermine comment Windows PowerShell répond aux messages de débogage générés par un script, une applet de commande ou un fournisseur, ou une commande Write-Debug à la ligne de commande.

Certaines applets de commande affichent des messages de débogage qui sont généralement des messages très 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 les afficher en modifiant la valeur de $DebugPreference.

Vous pouvez également utiliser le paramètre commun Debug d’une applet de commande pour afficher ou masquer les messages de débogage pour une commande spécifique. Pour plus d’informations, tapez : « get-help about_commonparameters ».

Valeurs valides :

Stop : Affiche le message de débogage et arrête l’exécution. Écrit une erreur dans la console.

Inquire : Affiche le message de débogage et vous demande si vous souhaitez continuer. Notez que l’ajout du paramètre commun Debug à une commande (quand la commande est configurée pour générer un message de débogage) remplace la valeur de la variable $DebugPreference par Inquire.

Continue : 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 se poursuit sans interruption.

EXEMPLES

Les exemples suivants illustrent l’effet de la modification des valeurs de $DebugPreference quand une commande Write-Debug est entrée à la ligne de commande. La modification affecte tous les messages de débogage, y compris ceux générés par les applets de commande et scripts. Les exemples montrent également l’utilisation du paramètre commun Debug, qui affiche ou masque les messages de débogage liés à une commande unique.

Cet exemple illustre l’effet de la valeur par défaut, « SilentlyContinue ». Le message de débogage n’est pas affiché et le traitement continue. La dernière commande utilise le paramètre Debug pour remplacer la préférence pour une commande unique.

        PS> $debugpreference                    # Get the current value of
        SilentlyContinue                          $DebugPreference

        PS> write-debug "Hello, World"
        PS>                                     # The debug message is not
                                                  displayed.

        PS> write-debug "Hello, World" -Debug   # Use the Debug parameter
        DEBUG: Hello, World                     # The debug message is
                                                  is requested.                                                                                                    displayed and confirmation
        Confirm
        Continue with this operation?
        [Y] Yes  [A] Yes to All  [H] Halt Command  [S] Suspend  [?] Help (default is "Y"):

Cet exemple illustre l’effet de la valeur « Continue ». La dernière commande utilise le paramètre Debug avec la valeur $false pour supprimer le message pour une commande unique.

        PS> $debugpreference = "Continue"   # Change the value to "Continue"

        PS> write-debug "Hello, World"
        DEBUG: Hello, World                 # The debug message is displayed
        PS>                                   and processing continues.
                                           

        PS> write-debug "Hello, World" -Debug:$false   
                                            # Use the Debug parameter with
                                              false.
        PS>                                 # The debug message is not
                                              displayed.

Cet exemple illustre l’effet de la valeur « Stop ». La dernière commande utilise le paramètre Debug avec la valeur $false pour supprimer le message pour une commande unique.

        PS> $debugpreference = "Stop"       #Change the value to "Stop"
        PS> write-debug "Hello, World"
        DEBUG: Hello, World
        Write-Debug : Command execution stopped because the shell variable "DebugPreference" is
        set to Stop.
        At line:1 char:12
        + write-debug  <<<< "Hello, World"

        PS> write-debug "Hello, World" -Debug:$false   
                                            # Use the Debug parameter with
                                              $false
        PS>                                 # The debug message is not 
                                              displayed and processing is
                                              not stopped.

Cet exemple illustre l’effet de la valeur « Inquire ». La dernière commande utilise le paramètre Debug avec la valeur $false pour supprimer le message pour une commande unique.

        PS> $debugpreference = "Inquire"
        PS> write-debug "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"):

        PS> write-debug "Hello, World" -Debug:$false   
                                            # Use the Debug parameter with
                                              $false
        PS>                                 # The debug message is not
                                              displayed and processing
                                              continues without interruption.

$ErrorActionPreference
----------------------

Détermine comment Windows PowerShell répond à une erreur sans fin d’exécution (une erreur qui n’arrête pas le traitement de l’applet de commande) à la ligne de commande ou dans un script, une applet de commande ou un fournisseur, comme les erreurs générées par l’applet de commande Write-Error.

Vous pouvez également utiliser le paramètre commun ErrorAction d’une applet de commande pour remplacer la préférence pour une commande spécifique.

Valeurs valides :

Stop : Affiche le message d’erreur et arrête l’exécution.

Inquire : Affiche le message d’erreur et vous demande si vous souhaitez continuer.

Continue (valeur par défaut) : Affiche le message d’erreur et poursuit l’exécution.

Suspend : Interrompt automatiquement une tâche de workflow pour permettre une analyse plus approfondie. Après l'analyse, le workflow peut reprendre.

SilentlyContinue : Aucun effet. Le message d’erreur n’est pas affiché et l’exécution se poursuit sans interruption.

REMARQUE :

La valeur Ignore du paramètre commun ErrorAction n’est pas une valeur valide de la variable $ErrorActionPreference. La valeur Ignore est destinée à une utilisation par commande, et non à être utilisée comme préférence enregistrée.

Ni la variable $ErrorActionPreference ni le paramètre commun ErrorAction n’affectent la façon dont Windows PowerShell répond aux erreurs avec fin d’exécution (celles qui arrêtent le traitement de l’applet de commande).

Pour plus d’informations sur le paramètre commun ErrorAction, consultez about_CommonParameters (https://go.microsoft.com/fwlink/?LinkID=113216).

EXEMPLES

Ces exemples illustrent l’effet des différentes valeurs de $ErrorActionPreference et l’utilisation du paramètre commun ErrorAction pour remplacer la préférence pour une commande unique. Le paramètre ErrorAction a les mêmes valeurs valides que la variable $ErrorActionPreference.

Cet exemple illustre l’effet de la valeur Continue, qui est la valeur par défaut.

        PS> $erroractionpreference                      
        Continue# Display the value of the preference.          
                                  
        PS> write-error "Hello, World"                  
                                # Generate a non-terminating error.

        write-error "Hello, World" : Hello, World       
                                # The error message is displayed and
                                  execution continues.

        PS> write-error "Hello, World" -ErrorAction:SilentlyContinue
                                # Use the ErrorAction parameter with a 
                                  value of "SilentlyContinue".
        PS>                                             
                                # The error message is not displayed and
                                  execution continues.

Cet exemple illustre l’effet de la valeur SilentlyContinue.

        PS> $ErrorActionPreference = "SilentlyContinue"
                                # Change the value of the preference.
        PS> write-error "Hello, World"                  
                                # Generate an error message.
        PS>                     
                                # Error message is suppressed.
        PS> write-error "Hello, World" -erroraction:continue
                                # Use the ErrorAction parameter with a
                                  value of "Continue".
        write-error "Hello, World" -erroraction:continue : Hello, World
                                # The error message is displayed and
                                  execution continues.

Cet exemple illustre l’effet d’une erreur réelle. Dans ce cas, la commande obtient un fichier inexistant, nofile.txt. L’exemple utilise également le paramètre commun ErrorAction pour remplacer la préférence.

        PS> $erroractionpreference                      
        SilentlyContinue        # Display the value of the preference.     
                                

        PS> get-childitem -path nofile.txt
        PS>                     # Error message is suppressed.

        PS> $ErrorActionPreference = "Continue" 
                                # Change the value to Continue.

        PS> get-childitem -path nofile.txt
        Get-ChildItem : Cannot find path 'C:\nofile.txt' because it does not exist.
        At line:1 char:4
        + get-childitem  <<<< nofile.txt

        PS> get-childitem -path nofile.txt -erroraction SilentlyContinue
                                # Use the ErrorAction parameter
        PS>                     
                                # Error message is suppressed.
  
        PS> $ErrorActionPreference = "Inquire"          
                                # Change the value to Inquire.
        PS> get-childitem -path nofile.txt

        Confirm
        Cannot find path 'C:\nofile.txt' because it does not exist.
        [Y] Yes  [A] Yes to All  [H] Halt Command  [S] Suspend  [?] Help (default is "Y"): y
        
        Get-ChildItem : Cannot find path 'C:\nofile.txt' because it does not exist.
        At line:1 char:4
        + get-childitem  <<<< nofile.txt

        PS> $ErrorActionPreference = "Continue"                  
                                # Change the value to Continue.
        PS> Get-Childitem nofile.txt -erroraction "Inquire"      
                                # Use the ErrorAction parameter to override
                                  the preference value.

        Confirm
        Cannot find path 'C:\nofile.txt' because it does not exist.         
        [Y] Yes  [A] Yes to All  [H] Halt Command  [S] Suspend  [?] Help (default is "Y"):

$ErrorView
----------

Détermine le format d’affichage des messages d’erreur dans Windows PowerShell.

Valeurs valides

NormalView (valeur par défaut) : Vue détaillée, conçue pour la plupart des utilisateurs. Comprend une description de l’erreur, le nom de l’objet impliqué dans l’erreur et des flèches (<<<<) qui pointent vers les mots de la commande à l’origine de l’erreur.

CategoryView : Vue concise et structurée, conçue pour les environnements de production. Le format est : {Category}: ({TargetName}:{TargetType}):[{Activity}], {Reason}

Pour plus d’informations sur les champs de CategoryView, consultez « ErrorCategoryInfo, classe » dans le Kit de développement logiciel (SDK) Windows PowerShell.

EXEMPLES

Ces exemples illustrent l’effet des valeurs ErrorView.

Cet exemple montre comment une erreur s’affiche quand la valeur de $ErrorView est NormalView. Dans ce cas, la commande Get-ChildItem est utilisée pour rechercher un fichier inexistant.

        PS> $ErrorView                         # Verify the value.
        NormalView

        PS> get-childitem nofile.txt           # Find a non-existent file.
        Get-ChildItem : Cannot find path 'C:\nofile.txt' because it does not exist.
        At line:1 char:14
        + get-childitem  <<<< nofile.txt

Cet exemple montre comment la même erreur s’affiche quand la valeur de $ErrorView est CategoryView.

        PS> $ErrorView = "CategoryView"        # Change the value to 
                                                 CategoryView

        PS> get-childitem nofile.txt
        ObjectNotFound: (C:\nofile.txt:String) [Get-ChildItem], ItemNotFoundException

Cet exemple montre que la valeur d’ErrorView affecte uniquement l’affichage de l’erreur ; elle ne modifie pas la structure de l’objet d’erreur qui est stocké dans la variable automatique $error. Pour plus d’informations sur la variable automatique $error, consultez about_automatic_variables.

Cette commande prend l’objet ErrorRecord associé à l’erreur la plus récente dans le tableau d’erreurs (élément 0) et met en forme toutes les propriétés de l’objet d’erreur dans une liste.

        PS> $error[0] | format-list -property * -force

        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, CmdletProviderContext context)
                       at System.Management.Automation.ChildItemCmdletProviderIntrinsics.Get(String path,
                       Boolean recurse, 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

$FormatEnumerationLimit
-----------------------

Détermine le nombre d’éléments énuméré inclus dans un affichage. Cette variable n’affecte pas les objets sous-jacents, juste l’affichage. Quand la valeur de $FormatEnumerationLimit est inférieure au nombre d’éléments énumérés, Windows PowerShell ajoute des points de suspension (...) pour indiquer des éléments non affichés.

        Valid values: Integers (Int32)
        Default value: 4

EXEMPLES

Cet exemple montre comment utiliser la variable $FormatEnumerationLimit afin d’améliorer l’affichage des éléments énumérés.

Dans cet exemple, la commande génère une table qui répertorie tous les services exécutés sur l’ordinateur dans deux groupes : un pour les services en cours d’exécution et un pour les services arrêtés. Elle utilise une commande Get-Service pour obtenir tous les services et envoyer les résultats via le pipeline à l’applet de commande Group-Object, qui regroupe les résultats selon l’état du service.

L’affichage obtenu est une table qui répertorie l’état dans la colonne Nom et les processus avec cet état dans la colonne Groupe. (Pour modifier les étiquettes de colonne, utilisez une table de hachage. Pour plus d’informations, consultez les exemples dans « get-help format-table -examples ».)

Il existe un maximum de 4 services répertoriés dans la colonne Groupe pour chaque état. Pour augmenter le nombre d’éléments répertoriés, remplacez la valeur de $FormatEnumerationLimit par 1 000.

Dans l’affichage obtenu, la liste dans la colonne Groupe est désormais limitée par la longueur de ligne. Dans la dernière commande de l’exemple, utilisez le paramètre Wrap de Format-Table pour afficher tous les processus dans chaque groupe d’états.

        PS> $formatenumerationlimit         # Find the current value
        4
        
        PS> get-service | group-object -property status           
                                            # List all services grouped by
                                              status

        Count Name                      Group
        ----- ----                      -----
           60 Running                   {AdtAgent, ALG, Ati HotKey Poller, AudioSrv...}   
           41 Stopped                   {Alerter, AppMgmt, aspnet_state, ATI Smart...}

                                           # The list is truncated after
                                             4 items.


        PS> $formatenumerationlimit = 1000
                                           # Increase the limit to 1000.
        
        PS> get-service | group-object -property status           
                                           # Repeat the command.

        Count Name     Group
        ----- ----     -----
           60 Running  {AdtAgent, ALG, Ati HotKey Poller, AudioSrv, BITS, CcmExec...
           41 Stopped  {Alerter, AppMgmt, aspnet_state, ATI Smart, Browser, CiSvc...


        PS> get-service | group-object -property status | format-table -wrap
                                           # Add the Wrap parameter.

        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}

$Log*Event
----------

Les variables des préférences Log*Event déterminent les types d’événements qui sont consignés dans le journal des événements Windows PowerShell dans l’observateur d’événements. Par défaut, seuls les événements de moteur et de fournisseur sont enregistrés, mais vous pouvez utiliser les variables des préférences Log*Event pour personnaliser votre journal, par exemple pour enregistrer des événements sur les commandes.

Les variables des préférences Log*Event se présentent comme suit :

            $LogCommandHealthEvent: Logs errors and exceptions in command initialization
                and processing. Default = $false (not logged).

            $LogCommandLifecycleEvent: 
                Logs the starting and stopping of commands and command pipelines
                and security exceptions in command discovery. Default = $false (not logged).

            $LogEngineHealthEvent: Logs errors and failures of sessions. Default = $true (logged).

            $LogEngineLifecycleEvent: Logs the opening and closing of sessions. 
                Default = $true (logged).

            $LogProviderHealthEvent: Logs provider errors, such as read and write errors,
                lookup errors, and invocation errors. Default = $true (logged).

            $LogProviderLifecycleEvent: Logs adding and removing of Windows PowerShell providers.
                Default = $true (logged). (For information about Windows PowerShell providers, type:
                "get-help about_provider".

Pour activer une variable Log*Event, tapez la variable avec la valeur $true, par exemple :

            $LogCommandLifeCycleEvent

            - or -

            $LogCommandLifeCycleEvent = $true

Pour désactiver un type d’événement, tapez la variable avec la valeur $false, par exemple :

            $LogCommandLifeCycleEvent = $false

Les événements que vous activez sont effectifs uniquement pour la console Windows PowerShell actuelle. Pour appliquer la configuration à toutes les consoles, enregistrez les paramètres de variable dans votre profil Windows PowerShell.

$MaximumAliasCount
------------------

Détermine le nombre d’alias autorisés dans une session Windows PowerShell. La valeur par défaut, 4 096, devrait être suffisante pour la plupart des utilisations, mais vous pouvez l’adapter à vos besoins.

        Valid values: 1024 - 32768 (Int32)
        Default: 4096
      
        To count the aliases on your system, type: 

(get-alias).count

$MaximumDriveCount
------------------

Détermine le nombre de lecteurs Windows PowerShell autorisés dans une session donnée. Cela inclut les lecteurs de système de fichiers et magasins de données qui sont exposés par les fournisseurs Windows PowerShell et apparaissent comme des lecteurs, tels que les lecteurs Alias: et HKLM: .

        Valid values: 1024 - 32768 (Int32)
        Default: 4096
      
        To count the aliases on your system, type: 

(get-psdrive).count

$MaximumErrorCount
------------------

Détermine le nombre d’erreurs enregistrées dans l’historique des erreurs pour la session.

        Valid values: 256 - 32768 (Int32)
        Default: 256

Les objets qui représentent chaque erreur retenue sont stockés dans la variable automatique $Error. Cette variable contient un tableau d’objets d’enregistrements d’erreur, un pour chaque erreur. L’erreur la plus récente est le premier objet dans le tableau ($Error[0]).

Pour compter les erreurs sur votre système, utilisez la propriété Count du tableau $Error. Tapez :

$Error.count

Pour afficher une erreur spécifique, utilisez la notation de tableau. Par exemple, pour voir l’erreur la plus récente, tapez :

                $Error[0]

Pour afficher l’erreur retenue la plus ancienne, tapez :

                $Error[($Error.Count -1]

Pour afficher les propriétés de l’objet ErrorRecord, tapez :

                $Error[0] | format-list -property * -force

Dans cette commande, le paramètre Force remplace la mise en forme spéciale des objets ErrorRecord et rétablit le format conventionnel.

Pour supprimer toutes les erreurs de l’historique des erreurs, utilisez la méthode Clear du tableau d’erreurs.

               PS> $Error.count
               17
               PS> $Error.clear()
               PS>
               PS> $Error.count
               0

Pour rechercher toutes les propriétés et méthodes d’un tableau d’erreurs, utilisez l’applet de commande Get-Member avec son paramètre InputObject. Quand vous redirigez une collection d’objets vers Get-Member, Get-Member affiche les propriétés et méthodes des objets dans la collection. Quand vous utilisez le paramètre InputObject de Get-Member, Get-Member affiche les propriétés et méthodes de la collection.

$MaximumFunctionCount
------------------

Détermine le nombre de fonctions autorisées dans une session donnée.

        Valid values: 1024 - 32768 (Int32)
        Default: 4096

Pour afficher les fonctions dans votre session, utilisez le lecteur Windows PowerShell Function: qui est exposé par le fournisseur de fonctions Windows PowerShell. (Pour plus d’informations sur le fournisseur de fonctions, tapez « get-help function ».)

Pour répertorier les fonctions dans la session active, tapez :

            get-childitem function:

Pour compter les fonctions dans la session active, tapez :

            (get-childitem function:).count

$MaximumHistoryCount
------------------

Détermine le nombre de commandes enregistrées dans l’historique des commandes pour la session active.

        Valid values: 1 - 32768 (Int32)
        Default: 4096

Pour déterminer le nombre de commandes actuellement enregistrées dans l’historique des commandes, tapez :

            (get-history).count

Pour afficher la commande enregistrée dans votre historique de session, utilisez l’applet de commande Get-History. Pour plus d’informations, consultez about_History (https://go.microsoft.com/fwlink/?LinkID=113233).

REMARQUE : Dans Windows PowerShell 2.0, la valeur par défaut de la variable $MaximumHistoryCount est 64.

$MaximumVariableCount
------------------

Détermine le nombre de variables autorisées dans une session donnée, y compris les variables automatiques, les variables des préférences et les variables que vous créez dans les commandes et scripts.

        Valid values: 1024 - 32768 (Int32)
        Default: 4096

Pour afficher les variables dans votre session, utilisez l’applet de commande Get-Variable et les fonctionnalités du lecteur Windows PowerShell Variable: et du fournisseur de variables Windows PowerShell. Pour plus d’informations sur le fournisseur de variables, tapez « get-help variable ».

Pour rechercher le nombre actuel de variables sur le système, tapez :

            (get-variable).count

$OFS
----

Séparateur de champs de sortie. Spécifie le caractère qui sépare les éléments d’un tableau quand le tableau est converti en une chaîne.

        Valid values: Any string.
        Default: Space

Par défaut, la variable $OFS n’existe pas et le séparateur de fichiers de sortie est un espace, mais vous pouvez ajouter cette variable et la définir sur n’importe quelle chaîne.

EXEMPLES

Cet exemple montre qu’un espace est utilisé pour séparer les valeurs quand un tableau est converti en une chaîne. Dans ce cas, un tableau d’entiers est stocké dans une variable et la variable devient une chaîne via une conversion de type (transtypage).

       PS> $array = 1,2,3                 # Store an array of integers.       

       PS> [string]$array                 # Cast the array to a string.
       1 2 3                              # Spaces separate the elements

Pour modifier le séparateur, ajoutez la variable $OFS en lui assignant une valeur. Pour fonctionner correctement, la variable doit être nommée $OFS.

       PS> $OFS = "+"                     # Create $OFS and assign a "+"

       PS> [string]$array                 # Repeat the command
       1+2+3                              # Plus signs separate the elements

Pour restaurer le comportement par défaut, vous pouvez affecter un espace («   ») à la valeur de $OFS ou supprimer la variable. Cette commande supprime la variable, puis vérifie que le séparateur est un espace.

       PS> Remove-Variable OFS            # Delete $OFS
       PS>

       PS> [string]$array                 # Repeat the command
       1 2 3                              # Spaces separate the elements
       

$OutputEncoding
---------------

Détermine la méthode de codage de caractères utilisée par Windows PowerShell quand il envoie du texte à d’autres applications.

Par exemple, si une application retourne des chaînes Unicode à Windows PowerShell, vous devrez peut-être remplacer la valeur par UnicodeEncoding pour envoyer correctement les caractères.

        Valid values: Objects derived from an Encoding class, such as
                      ASCIIEncoding, SBCSCodePageEncoding, UTF7Encoding, 
                      UTF8Encoding, UTF32Encoding, and UnicodeEncoding.

        Default: ASCIIEncoding object (System.Text.ASCIIEncoding)

EXEMPLES

Cet exemple montre comment faire en sorte que la commande FINDSTR dans Windows fonctionne dans Windows PowerShell sur un ordinateur localisé dans une langue qui utilise des caractères Unicode, telle que le chinois. La première commande recherche la valeur de $OutputEncoding. Étant donné que la valeur est un objet de codage, affichez uniquement sa propriété EncodingName.

          PS> $OutputEncoding.EncodingName  # Find the current value
          US-ASCII

Dans cet exemple, une commande FINDSTR est utilisée pour rechercher deux caractères chinois qui sont présents dans le fichier Test.txt. Quand cette commande FINDSTR est exécutée dans l’invite de commandes Windows (Cmd.exe), FINDSTR recherche les caractères dans le fichier texte. Toutefois, quand vous exécutez la même commande FINDSTR dans Windows PowerShell, les caractères sont introuvables, car Windows PowerShell les envoie à FINDSTR en texte ASCII et non en texte Unicode.

          PS> findstr <Unicode-characters>  # Use findstr to search.
          PS>                               # None found.

Pour que la commande fonctionne dans Windows PowerShell, définissez la valeur de $OutputEncoding sur la valeur de la propriété OutputEncoding de la console, qui est basée sur les paramètres régionaux sélectionnés pour Windows. OutputEncoding étant une propriété statique de la console, utilisez le double signe deux-points (::) dans la commande.

          PS> $OutputEncoding = [console]::outputencoding
          PS>                               # Set the value equal to the
                                              OutputEncoding property of the
                                              console.
          PS> $OutputEncoding.EncodingName               
          OEM United States
                                            # Find the resulting value.

Suite à cette modification, la commande FINDSTR recherche les caractères.

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

# Use findstr to search. It find the
                                          characters in the text file.

$ProgressPreference
-------------------

Détermine comment Windows PowerShell répond aux mises à jour de progression générées par une applet de commande, un script ou un fournisseur, telles que les barres de progression générées par l’applet de commande Write-Progress. L’applet de commande Write-Progress crée des barres de progression qui décrivent l’état d’une commande.

Valeurs valides :

Stop : N’affiche pas la barre de progression. À la place, elle affiche un message d’erreur et arrête l’exécution.

Inquire : N’affiche pas la barre de progression. Demande l’autorisation de continuer. Si vous répondez par Y ou A, elle affiche la barre de progression.

Continue (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.

$PSEmailServer
--------------

Spécifie le serveur de messagerie par défaut qui est utilisé pour envoyer des messages électroniques. Cette variable de préférence est utilisée par les applets de commande qui envoient du courrier électronique, telles que l’applet de commande Send-MailMessage.

$PSDefaultParameterValues
-------------------------

Spécifie les valeurs par défaut pour les paramètres des applets de commande et fonctions avancées. La valeur de PSDefaultParameterValues est une table de hachage où la clé est composée du nom de l’applet de commande et du nom du paramètre séparés par un signe deux-points (:), et où la valeur correspond à une valeur par défaut personnalisée que vous spécifiez.

Cette variable a été introduite dans Windows PowerShell 3.0.

Pour plus d’informations sur cette variable de préférence, consultez about_Parameters_Default_Values.

$PSModuleAutoloadingPreference
------------------------------

Active et désactive l’importation automatique de modules dans la session. « All » est la valeur par défaut. Quelle que soit la valeur de cette variable, vous pouvez utiliser l’applet de commande Import-Module pour importer un module.

Les valeurs valides sont :

All Les modules sont importés automatiquement lors de la première utilisation. Pour importer un module, obtenez (Get-Command) ou utilisez toute commande dans le module.

ModuleQualified

Les modules ne sont importés automatiquement que quand un utilisateur emploie le nom qualifié de module d’une commande dans le module. Par exemple, si l’utilisateur tape « MyModule\MyCommand », Windows PowerShell importe le module MyModule.

None L’importation automatique de modules est désactivée dans la session. Pour importer un module, utilisez l’applet de commande Import-Module.

Pour plus d’informations sur l’importation automatique de modules, consultez about_Modules (https://go.microsoft.com/fwlink/?LinkID=144311).

$PSSessionApplicationName
---------------------------

Spécifie le nom d’application par défaut pour une commande à distance qui utilise la technologie WS-Management.

Le nom d’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 d’application est le dernier nœud dans un URI de connexion. Par exemple, le nom d’application dans l’exemple d’URI suivant est WSMAN.

           http://Server01:8080/WSMAN

Le nom d’application par défaut est utilisé quand la commande à distance ne spécifie pas d’URI de connexion ni de nom d’application.

Le service WinRM utilise le nom de l'application pour sélectionner un port d'écoute et traiter la demande de connexion. La valeur de ce 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électionner un nom d’application différent pour une session particulière, utilisez les paramètres ConnectionURI ou ApplicationName des applets de commande New-PSSession, Enter-PSSession ou Invoke-Command.

Cette 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 d’application que vous spécifiez n’existe pas sur l’ordinateur distant, la commande pour établir la session échoue.

$PSSessionConfigurationName
---------------------------

Spécifie la configuration de session par défaut qui est utilisée pour les sessions PSsession créées 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 variable $PSSessionConfigurationName est un URI de ressource complet.

La valeur par défaut :

         https://schemas.microsoft.com/PowerShell/microsoft.PowerShell 

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

           https://schemas.microsoft.com/PowerShell/

Vous pouvez remplacer la valeur par défaut et sélectionner une configuration de session différente pour une session particulière en utilisant le paramètre ConfigurationName des applets de commande New-PSSession, Enter-PSSession ou Invoke-Command.

Vous pouvez modifier la valeur de cette variable à tout moment. Quand vous effectuez cette opération, n’oubliez pas que la configuration de session que vous sélectionnez doit exister sur l’ordinateur distant. Dans le cas contraire, la commande pour 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 qui sont utilisées quand des utilisateurs distants créent une session qui se connecte à cet ordinateur. Toutefois, vous pouvez utiliser les autorisations pour les configurations de session locale afin de 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’options remplacent les valeurs par défaut du système pour les options de session.

La variable $PSSessionOption contient un objet PSSessionOption (System.Management.Automation.Remoting.PSSessionObject). Chaque propriété de l’objet représente une option de session. Par exemple, la propriété NoCompression active la compression de données pendant la session.

Par défaut, la variable $PSSessionOption contient un objet PSSessionOption avec les valeurs par défaut pour toutes les options, comme illustré ci-dessous.

            MaximumConnectionRedirectionCo For descriptions of these options, see the help topic for the unt : 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 les descriptions de ces options, consultez la rubrique d’aide pour l’applet de commande New-PSSessionOption.

Pour modifier la valeur de la variable de préférence $PSSessionOption, utilisez l’applet de commande New-PSSessionOption pour créer un objet PSSessionOption avec les valeurs d’options souhaitées. Enregistrez le résultat dans une variable appelée $PSSessionOption.

Par exemple,

            $PSSessionOption = New-PSSessionOption -NoCompression

Pour utiliser la variable de préférence $PSSessionOption dans chaque session Windows PowerShell, ajoutez une commande New-PSSessionOption qui crée la variable $PSSessionOption dans votre profil Windows PowerShell.

Vous pouvez également définir des options personnalisées pour une session à distance particulière. Les options que vous définissez ont priorité sur les valeurs par défaut du système et la valeur de la variable de préférence $PSSessionOption.

Pour définir des options de session personnalisées, utilisez l’applet de commande New-PSSessionOption 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, comme New-PSSession, Enter-PSSession et Invoke-Command.

Pour plus d’informations sur l’applet de commande New-PSSessionOption, consultez la rubrique d’aide pour New-PSSessionOption. Pour plus d’informations sur les sessions et commandes à distance, consultez about_Remote et about_PSSessions. Pour plus d’informations sur l’utilisation d’un profil, consultez about_Profiles.

$VerbosePreference
------------------

Détermine comment Windows PowerShell répond aux messages commentés générés par une applet de commande, un script ou un fournisseur, comme les messages générés par l’applet de commande Write-Verbose. En général, les messages commentés décrivent les actions effectuées pour exécuter une commande.

Par défaut, les messages commentés ne sont pas affichés, mais vous pouvez modifier ce comportement en changeant la valeur de $VerbosePreference.

Vous pouvez également utiliser le paramètre commun Verbose d’une applet de commande pour afficher ou masquer les messages commentés pour une commande spécifique. Pour plus d’informations, tapez : « get-help about_commonparameters ».

Valeurs valides :

Stop : Affiche le message commenté ainsi qu’un message d’erreur et arrête l’exécution.

Inquire : Affiche le message commenté, puis une invite vous demandant si vous souhaitez continuer.

Continue : Affiche le message commenté et poursuit l’exécution.

SilentlyContinue (valeur par défaut) : N’affiche pas le message commenté. Poursuit l’exécution.

EXEMPLES

Ces exemples illustrent l’effet des différentes valeurs de $VerbosePreference et l’utilisation du paramètre commun Verbose pour remplacer la valeur de préférence.

Cet exemple illustre l’effet de la valeur SilentlyContinue, qui est la valeur par défaut.

        PS> $VerbosePreference             # Find the current value.
        SilentlyContinue

        PS> Write-Verbose "Verbose message test."              
        PS>                                # Write a verbose message.
                                           # Message is not displayed.

        PS> Write-Verbose "Verbose message test." -verbose     
        VERBOSE: Verbose message test.
                                   # Use the Verbose parameter.

Cet exemple illustre l’effet de la valeur Continue.

        PS> $VerbosePreference = "Continue"                    
                                           # Change the value to Continue.
        PS> Write-Verbose "Verbose message test."              
                                           # Write a verbose message.
        VERBOSE: Verbose message test.                         
                                           # Message is displayed.

        PS> Write-Verbose "Verbose message test." -verbose:$false
                                           # Use the Verbose parameter with
                                             a value of $false.
        PS>                                  
                                           # Message is not displayed.

Cet exemple illustre l’effet de la valeur Stop.

        PS> $VerbosePreference = "Stop"                        
                                           # Change the value to Stop.
        PS> Write-Verbose "Verbose message test."              
                                           # Write a verbose message.
        VERBOSE: Verbose message test.
        Write-Verbose : Command execution stopped because the shell variable "VerbosePreference"
        is set to Stop.
        At line:1 char:14
        + Write-Verbose  <<<< "Verbose message test."

       PS> Write-Verbose "Verbose message test." -verbose:$false
                                          # Use the Verbose parameter with
                                            a value of $false
       PS>                                  
                                          # Message is not displayed.

Cet exemple illustre l’effet de la valeur Inquire.

       PS> $VerbosePreference = "Inquire"                      
                                         # Change the value to Inquire.
       PS> Write-Verbose "Verbose message test."               
       VERBOSE: Verbose message test.
                                         # Write a verbose message.
       Confirm
       Continue with this operation?
       [Y] Yes  [A] Yes to All  [H] Halt Command  [S] Suspend  [?] Help (default is "Y"): y
       PS>

       PS> Write-Verbose "Verbose message test." -verbose:$false
                                        # Use the Verbose parameter.
       PS>                              
                                        # Message is not displayed.

$WarningPreference
------------------

Détermine comment Windows PowerShell répond aux messages d’avertissement générés par une applet de commande, un script ou un fournisseur, comme 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 changeant la valeur de $WarningPreference.

Vous pouvez également utiliser le paramètre commun WarningAction d’une applet de commande pour déterminer comment Windows PowerShell répond aux avertissements à partir d’une commande particulière. Pour plus d’informations, tapez : « get-help about_commonparameters ».

Valeurs valides :

Stop : Affiche le message d’avertissement ainsi qu’un message d’erreur et arrête l’exécution.

Inquire : Affiche le message d’avertissement, puis demande l’autorisation de continuer.

Continue (valeur par défaut) : Affiche le message d’avertissement et poursuit l’exécution.

SilentlyContinue : N’affiche pas le message d’avertissement. Poursuit l’exécution.

EXEMPLES

Ces exemples illustrent l’effet des différentes valeurs de $WarningPreference et l’utilisation du paramètre commun WarningAction pour remplacer la valeur de préférence.

Cet exemple illustre l’effet de la valeur Continue, qui est la valeur par défaut.

            PS> $WarningPreference    # Find the current value.                           
            Continue                  

                                      # Write a warning message.
            PS> Write-Warning "This action can delete data."     
            WARNING: This action can delete data.
                                      
                                      # Use the WarningAction parameter to 
                                      # suppress the warning for this command                                             
            PS> Write-Warning "This action can delete data." -warningaction silentlycontinue     

Cet exemple illustre l’effet de la valeur SilentlyContinue.

            PS> $WarningPreference = "SilentlyContinue"           
                                      # Change the value to SilentlyContinue.
 
            PS> Write-Warning "This action can delete data."      
            PS>                        # Write a warning message.

       
            PS> Write-Warning "This action can delete data." -warningaction stop     
                                      # Use the WarningAction parameter to stop
                                      # processing when this command generates a
                                      # warning.         
            WARNING: This action can delete data.
            Write-Warning : Command execution stopped because the shell variable
            "WarningPreference" is set to Stop.
            At line:1 char:14
            + Write-Warning <<<<  "This action can delete data." -warningaction stop
                                 

Cet exemple illustre l’effet de la valeur Inquire.

           PS> $WarningPreference = "Inquire"                    
                                      # Change the value to Inquire.
           PS> Write-Warning "This action can delete data."   
                                      # Write a warning message.     
           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"): y
           PS>

           PS> Write-Warning "This action can delete data." -warningaction silentlycontinue
           PS>                         # Use the WarningAction parameter to change the
                                       # response to a warning for the current command.

Cet exemple illustre l’effet de la valeur Stop.

           PS> $WarningPreference = "Stop"                       
                                     # Change the value to Stop.

           PS> Write-Warning "This action can delete data."      
                                     # Write a warning message.
           WARNING: This action can delete data.
           Write-Warning : Command execution stopped because the shell variable 
             "WarningPreference" is set to Stop.
           At line:1 char:14
           + Write-Warning  <<<< "This action can delete data."


           PS> Write-Warning "This action can delete data." -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"):                        
                                       # Use the WarningAction parameter to change the
                                       # response to a warning for the current command.

$WhatIfPreference
------------------

Détermine si WhatIf est automatiquement activé pour toutes les commandes qui le prennent en charge. Quand WhatIf est activé, l’applet de commande signale l’effet attendu de la commande, mais n’exécute pas la commande.

Valeurs valides :

0 (valeur par défaut) : WhatIf n’est pas automatiquement activé. Pour l’activer manuellement, utilisez le paramètre WhatIf de la commande.

1: WhatIf est automatiquement activé sur toute commande qui le prend en charge. Les utilisateurs peuvent employer la commande WhatIf avec la valeur False pour le désactiver manuellement (WhatIf:$false).

EXPLICATION DÉTAILLÉE

Quand une applet de commande prend en charge WhatIf, l’applet de commande signale l’effet attendu de la commande, au lieu d’exécuter la commande. Par exemple, au lieu de supprimer le fichier test.txt en réponse à une commande Remove-Item, Windows PowerShell signale la suppression à effectuer. Une commande Get-Childitem postérieure confirme que le fichier n’a pas été supprimé.

              PS> remove-item test.txt
              What if: Performing operation "Remove-Item" on Target "Item: 
                C:\test.txt
              PS> get-childitem test.txt

              Directory: Microsoft.PowerShell.Core\FileSystem::C:


              Mode                LastWriteTime     Length     Name
              ----                -------------     ------     ----
              -a---         7/29/2006   7:15 PM         84     test.txt

EXEMPLES

Ces exemples illustrent l’effet des différentes valeurs de $WhatIfPreference. Ils montrent également comment utiliser le paramètre d’applet de commande WhatIf pour remplacer la valeur de préférence pour une commande spécifique.

Cet exemple illustre l’effet de la valeur 0 (non activé), qui est la valeur par défaut.

             PS> $whatifpreference                     
             0                         # Check the current value.

             PS> get-childitem test.txt | format-list FullName
             FullName : C:\test.txt
                                       # Verify that the file exists.

             PS> remove-item test.txt                  
             PS>                       # Delete the file.

             PS> get-childitem test.txt | format-list -property FullName
                                       # Verify that the file is deleted.

             Get-ChildItem : Cannot find path 'C:\test.txt' because it does not exist.
             At line:1 char:14
             + get-childitem  <<<< test.txt | format-list fullname

Cet exemple illustre l’effet de l’utilisation du paramètre WhatIf quand la valeur de $WhatIfPreference est 0.

             PS> get-childitem test2.txt | format-list -property FullName 
             FullName : C:\test2.txt
                                      # Verify that the file exists.

             PS> remove-item test2.txt -whatif         
             What if: Performing operation "Remove File" on Target "C:\test2.txt".
                                      # Use the WhatIf parameter

             PS> get-childitem test2.txt | format-list -property FullName
             FullName : C:\test2.txt
                                      # Verify that the file was not deleted

Cet exemple illustre l’effet de la valeur 1 (WhatIf activé). Quand vous utilisez Remove-Item pour supprimer une applet de commande, Remove-Item affiche le chemin d’accès au fichier à supprimer, mais ne supprime pas le fichier.

             PS> $whatifpreference = 1                 
             PS> $whatifpreference
             1                        # Change the value.
                                      
             PS> remove-item test.txt                  
             What if: Performing operation "Remove File" on Target "C:\test.txt".
                                      # Try to delete a file.

             PS> get-childitem test.txt | format-list FullName
             FullName : C:\test.txt
                                      # Verify that the file exists.

Cet exemple montre comment supprimer un fichier quand la valeur de $WhatIfPreference est 1. Il utilise le paramètre WhatIf avec la valeur $false.

             PS> remove-item test.txt -whatif:$false
                                      # Use the WhatIf parameter with $false.

Cet exemple montre que certaines applets de commande prennent en charge le comportement WhatIf et d’autres non. Dans cet exemple dans lequel la valeur de $WhatIfPreference est 1 (activé), une commande Get-Process, qui ne prend pas en charge WhatIf, est exécutée, mais une commande Stop-Process exécute le comportement WhatIf. Vous pouvez remplacer le comportement WhatIf de la commande Stop-Process en utilisant le paramètre WhatIf avec la valeur $false.

            PS> $whatifpreference = 1                  
                                     # Change the value to 1.
                                                      
            PS> get-process winword  
                                    # A Get-Process command completes.

            Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
            -------  ------    -----      ----- -----   ------     -- -----------
                234       8     6324      15060   154     0.36   2312 WINWORD


           PS> stop-process -name winword              
           What if: Performing operation "Stop-Process" on Target "WINWORD (2312)".
                                    # A Stop-Process command uses WhatIf.

           PS> stop-process -name winword  -whatif:$false
           PS>                      # WhatIf:$false overrides the preference.
           
           PS> get-process winword                     
           Get-Process : Cannot find a process with the name 'winword'. Verify the process name
            and call the cmdlet again.
           At line:1 char:12
           + get-process  <<<< winword
                                    # Verify that the process is stopped.

VOIR AUSSI

about_Automatic_Variables

about_CommonParameters

about_Environment_Variables

about_Profiles

about_Remote about_Scopes