ARGOMENTO
    Variabili di preferenza

DESCRIZIONE BREVE
    Variabili che personalizzano il comportamento di Windows PowerShell 

DESCRIZIONE DETTAGLIATA
    In Windows PowerShell è disponibile un insieme di variabili che 
    consentono di personalizzarne il comportamento. Queste "variabili 
    di preferenza" funzionano come le opzioni nei sistemi basati su 
    interfaccia utente grafica.

    Le variabili di preferenza interessano l'ambiente operativo di 
    Windows PowerShell e tutti i comandi eseguiti nell'ambiente. In 
    molti casi, i cmdlet dispongono di parametri utilizzabili per 
    eseguire l'override del comportamento di preferenza per un 
    comando specifico.

    Nella tabella seguente vengono elencati le variabili di 
    preferenza e i relativi valori predefiniti.

    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                 64
    $MaximumVariableCount                4096
    $OFS                                 (Space character (" "))
    $OutputEncoding		         ASCIIEncoding object
    $ProgressPreference                  Continue
    $PSEmailServer                       (None)
    $PSSessionApplicationName            WSMAN
    $PSSessionConfigurationName          https://schemas.microsoft.com/powershell/microsoft.powershell 
    $PSSessionOption                     (Vedere di seguito)
    $VerbosePreference                   SilentlyContinue
    $WarningPreference                   Continue
    $WhatIfPreference                    0


    In Windows PowerShell sono inoltre incluse le variabili di 
    ambiente seguenti nelle quali sono archiviate le preferenze 
    dell'utente. Per ulteriori informazioni sulle variabili di 
    ambiente, vedere about_environment_variables.

    Variable                                         
    --------                         
    PSModulePath                        


UTILIZZO DELLE VARIABILI DI PREFERENZA
    In questo documento vengono descritte le variabili di preferenza.

    Per visualizzare il valore corrente di una variabile di 
    preferenza specifica, digitare il nome della variabile. In 
    Windows PowerShell verrà fornito il valore. Ad esempio, il 
    comando seguente visualizza il valore della variabile 
    $ConfirmPreference.

        PS> $ConfirmPreference
        High

    Per modificare il valore di una variabile, utilizzare 
    un'istruzione di assegnazione. Ad esempio, l'istruzione seguente 
    assegna il valore "Medium" alla variabile $ConfirmPreference.

        PS> $ConfirmPreference = "Medium"

    Come tutte le variabili, i valori impostati sono specifici della 
    finestra di Windows PowerShell corrente. Per renderli effettivi 
    in tutte le finestre di Windows PowerShell, aggiungerli al 
    profilo di Windows PowerShell. Per ulteriori informazioni, vedere 
    about_profiles.


UTILIZZO DI COMANDI IN MODALITÀ REMOTA
   Quando si eseguono comandi in un computer remoto, i comandi remoti 
   sono interessati unicamente dalle preferenze impostate nel client 
   di Windows PowerShell nel computer remoto. Ad esempio, quando si 
   esegue un comando remoto, il valore della variabile $DebugPreferenc
   e nel computer remoto determina il modo in cui Windows PowerShell 
   risponde ai messaggi di debug. 

   Per ulteriori informazioni sui comandi remoti, vedere about_remote.



$ConfirmPreference
------------------
    Determina quali azioni del cmdlet richiedono automaticamente una 
    conferma dell'utente prima che vengano eseguite. 
        
    Quando il valore di $ConfirmPreference (High, Medium, Low, None) 
    è maggiore o uguale al rischio dell'azione del cmdlet (High, 
    Medium, Low, None), in Windows PowerShell viene automaticamente 
    richiesta la conferma dell'utente prima che tale azione venga 
    eseguita. 

    È possibile utilizzare il parametro Confirm di un cmdlet per 
    eseguire l'override della preferenza per un comando specifico.

        Valori validi:
		None:     nessuna azione del cmdlet viene confermata 
                          automaticamente. Gli utenti devono utilizzare 
                          il parametro Confirm per richiedere conferma 
                          di comandi specifici.

		Low:      vengono confermate automaticamente le azioni 
                          del cmdlet con un rischio minimo, medio o elevato. 
                          Per eliminare la conferma per un comando specifico, 
                          utilizzare -Confirm:$false.

		Medium:   vengono confermate automaticamente le azioni del 
                          cmdlet con un rischio medio o elevato. Per abilitare 
                          la conferma per un comando specifico, utilizzare 
                          -confirm. Per eliminare la conferma per un comando 
                          specifico, utilizzare confirm:$false.

                High      vengono automaticamente confermate le azioni del  
	   (predefinito): cmdlet con un rischio elevato. Per abilitare la 
                          conferma per un comando specifico, utilizzare 
                          -confirm. Per eliminare la conferma per un comando 
                          specifico, utilizzare -confirm:$false.


    SPIEGAZIONE DETTAGLIATA
        Quando un'azione del cmdlet influisce in modo significativo 
        sul sistema, ad esempio eliminando dati o utilizzando una 
        quantità considerevole di risorse del sistema, in Windows 
        PowerShell viene automaticamente richiesto di confermarla 
        prima di procedere. 

        Ad esempio,

	    PS> remove-item pref2.txt

            Confirm
            Eseguire l'operazione?
            Esecuzione dell'operazione "Remove File" sulla 
            destinazione "C:\pref2.txt".
            [S] Sì [A] Sì a tutti [N] No [U] No a tutti [O] Sospendi 
            [?] Guida (il valore predefinito è "S"):

        La valutazione del rischio fa parte del cmdlet noto come 
        "ConfirmImpact". Non è possibile apportarvi modifiche.

        I cmdlet che potrebbero costituire un rischio per il sistema 
        dispongono di un parametro Confirm che è possibile utilizzare 
        per richiedere o eliminare la conferma per un comando specifico.

	Poiché la maggior parte dei cmdlet utilizza il valore di rischio 
	predefinito Medium e il valore predefinito di $ConfirmPreference è 
	High, la richiesta automatica della conferma è alquanto rara. 
	Tuttavia, è possibile attivare la conferma automatica impostando il 
	valore di $ConfirmPreference su Medium o Low. 

    ESEMPI
      In questo esempio viene illustrato l'effetto prodotto dal 
      valore predefinito di $ConfirmPreference. Il valore High 
      conferma unicamente le azioni del cmdlet con rischio elevato. 
      Poiché la maggior parte delle azioni presenta un rischio medio, 
      non vengono confermate automaticamente, sebbene sia possibile 
      utilizzare il parametro Confirm del cmdlet per richiedere la 
      conferma per un comando specifico.

          PS> $confirmpreference              # Ottenere il valore 
          High                                  corrente della variabile 
          PS> remove-item temp1.txt           # Eliminazione di un file
          PS>                                 # Eliminato senza conferma 
          PS> remove-item temp2.txt -confirm  # Use the Confirm parameter

          Confirm
          Eseguire l'operazione?
          Esecuzione dell'operazione "Remove File" sulla destinazione 
          "C:\temp2.txt".
          [S] Sì [A] Sì a tutti [N] No [U] No a tutti [O] Sospendi 
          [?] Guida (il valore predefinito è "S"):


       In questo esempio viene illustrato l'effetto prodotto 
       dall'impostazione del valore di $ConfirmPrefernce su Medium. 
       Poiché la maggior parte delle azioni del cmdlet presenta un 
       rischio medio, vengono confermate automaticamente ed è 
       necessario utilizzare il parametro Confirm del cmdlet con il 
       valore $false per eliminare il prompt di conferma per un 
       comando specifico.

            
          PS> $confirmpreference = "Medium" 
                                     # Modifica del valore di $ConfirmPreference 
          PS> remove-item temp2.txt
                                     # L'eliminazione di un file attiva la conferma 
          Confirm
          Eseguire l'operazione?
          Esecuzione dell'operazione "Remove File" sulla destinazione 
          "C:\temp2.txt".
          [S] Sì [A] Sì a tutti [N] No [U] No a tutti [O] Sospendi 
          [?] Guida (il valore predefinito è "S"):
	

          PS> remove-item temp3.txt -confirm:$false   #Utilizzo del parametro  
                                                       Confirm per eliminare 
						       la conferma 
          PS>

$DebugPreference
------------------
	Determina la modalità di risposta di Windows PowerShell ai messaggi 
	di debug generati da uno script, cmdlet o provider o da un comando 
	Write-Debug alla riga di comando. 

        Alcuni cmdlet visualizzano messaggi di debug, in genere 
        messaggi molto tecnici destinati ai programmatori e ai 
        professioni del supporto tecnico. Per impostazione 
        predefinita, i messaggi di debug non vengono visualizzati. 
        È tuttavia possibile visualizzarli modificando il valore di 
        $DebugPreference.
        
        È inoltre possibile utilizzare il parametro comune Debug di 
        un cmdlet per visualizzare o nascondere i messaggi di debug 
        per un comando specifico. Per ulteriori informazioni, 
        digitare: "get-help about_commonparameters".

        Valori validi:
	    Stop:               viene visualizzato il messaggio di 
                                debug e l'esecuzione viene arrestata. 
                                Viene scritto un errore nella console.

     	    Inquire:            viene visualizzato il messaggio di 
              	                debug e viene richiesto se continuare 
                                o meno.

            Continue:           viene visualizzato il messaggio di 
                                debug e l'esecuzione continua.

            SilentlyContinue    nessun effetto. Il messaggio di debug
                (Default):      non viene visualizzato e l'esecuzione 
                                continua senza interruzione.
             

    ESEMPI
    
    Negli esempi seguenti viene illustrato l'effetto prodotto dalla 
    modifica dei valori di $DebugPreference quando viene immesso un 
    comando Write-Debug alla riga di comando. La modifica interessa 
    tutti i messaggi di debug, inclusi quelli generati da cmdlet e 
    script. Negli esempi viene inoltre illustrato l'utilizzo del 
    parametro comune Debug che consente di visualizzare o nascondere 
    i messaggi di debug correlati a un singolo comando.

    In questo esempio viene illustrato l'effetto del valore predefinito 
    "SilentlyContinue". Il messaggio di debug non viene visualizzato e 
    l'elaborazione continua. Il comando finale utilizza il parametro 
    Debug per eseguire l'override della preferenza per un singolo comando.

        PS> $debugpreference                    # Ottenere il valore 
                                                  corrente di
        SilentlyContinue                          $DebugPreference

        PS> write-debug "Hello, World"
        PS>                                     # Il messaggio di debug non  
                                                  viene visualizzato.
        PS> write-debug "Hello, World" -Debug   # Utilizzo del parametro  
        DEBUG: Hello, World                     # Il messaggio di debug 
                                                  Debug viene richiesto
        Confirm?
        Continuare?
        [S] Sì [A] Sì a tutti [I] Interrompi comando [O] Sospendi [?] 
        Guida (il valore predefinito è "S"):

   
    In questo esempio viene illustrato l'effetto del valore 
    "Continue". Il comando finale utilizza il parametro Debug con il 
    valore $false per eliminare il messaggio per un singolo comando.

        PS> $debugpreference = "Continue"      # Modifica del valore in 
                                                 "Continue"

        PS> write-debug "Hello, World"
        DEBUG: Hello, World                    # Il messaggio di debug 
        PS>                                      viene visualizzato e 
						 l'elaborazione continua.
        


        PS> write-debug "Hello, World" -Debug:$false  
                                               # Utilizzo del parametro 
                                                 Debug con il valore false.
        PS>                                    # Il messaggio di debug non  
                                                 viene visualizzato.

        
    In questo esempio viene illustrato l'effetto del valore "Stop". 
    Il comando finale utilizza il parametro Debug con il valore 
    $false per eliminare il messaggio per un singolo comando.

        PS> $debugpreference = "Stop"          # Modifica del valore
                                                 in "Stop"
        PS> write-debug "Hello, World"
        DEBUG: Hello, World
        Write-Debug: l'esecuzione del comando è stata arrestata 
        perché la variabile della shell "DebugPreference" è impostata 
        su Stop.
        At line:1 char:12
        + write-debug <<<< "Hello, World"

        PS> write-debug "Hello, World" -Debug:$false  
                                                # Utilizzo del parametro 
                                                  Debug con $false
        PS>                                     # Il messaggio di debug 
                                                  non viene visualizzato 
                                                  e l'elaborazione non viene 
                                                  arrestata.


    In questo esempio viene illustrato l'effetto del valore 
    "Inquire". Il comando finale utilizza il parametro Debug con il 
    valore $false per eliminare il messaggio per un singolo comando.

        PS> $debugpreference = "Inquire"
        PS> write-debug "Hello, World"
        DEBUG: Hello, World

        Confirm
        Continuare?
        [S] Sì [A] Sì a tutti [I] Interrompi comando [O] Sospendi [?] 
        Guida (il valore predefinito è "S"):

        PS> write-debug "Hello, World" -Debug:$false  
                                                # Utilizzo del parametro 
                                                  Debug con $false
        PS>                                     # Il messaggio di debug 
                                                  non viene visualizzato 
                                                  e l'elaborazione continua 
                                                  senza interruzione.


$ErrorActionPreference
----------------------
	Determina la modalità di risposta di Windows PowerShell a un errore 
	non fatale (un errore che non comporta l'arresto dell'elaborazione 
	del cmdlet) alla riga di comando o in uno script, cmdlet o provider, 
	ad esempio gli errori generati dal cmdlet Write-Error. 

        È inoltre possibile utilizzare il parametro comune ErrorAction di 
        un cmdlet per eseguire l'override della preferenza per un comando
        specifico. Per ulteriori informazioni, digitare: "get-help
        about_commonparameters".


        Valori validi:
	    Stop:               viene visualizzato il messaggio di errore 
	                        e l'esecuzione viene arrestata. 

     	    Inquire:            viene visualizzato il messaggio di errore 
     	                        e viene richiesto se continuare o meno.

            Continue:           viene visualizzato il messaggio di errore
                                e l'esecuzione continua.

            SilentlyContinue    nessun effetto. Il messaggio di errore non
          (valore predefinito): viene visualizzato e l'esecuzione continua 
                                senza interruzione.


       Né $ErrorActionPreference né il parametro comune ErrorAction 
       influiscono sulla modalità di risposta di Windows PowerShell 
       agli errori fatali (quelli che comportano l'interruzione 
       dell'elaborazione del cmdlet).

       Per ulteriori informazioni sul parametro comune ErrorAction, 
       digitare "get-help about_commonparameters".


    ESEMPI

    In questi esempi vengono illustrati gli effetti dei diversi valori di 
    $ErrorActionPreference e l'utilizzo del parametro comune ErrorAction 
    per eseguire l'override della preferenza per un singolo comando. Il 
    parametro ErrorAction dispone degli stessi valori validi della variabile 
    $ErrorActionPreference.
    
    In questo esempio viene illustrato l'effetto del valore Continue, 
    ovvero il valore predefinito.

        PS> $erroractionpreference                      
        Continue		# Visualizzazione del valore della preferenza.		           
        PS> write-error "Hello, World"                  
                                # Generazione di un errore non fatale.

        write-error "Hello, World" : Hello, World        
                                # Viene visualizzato il messaggio di errore 
                                  e l'esecuzione continua.

        PS> write-error "Hello, World" -ErrorAction:SilentlyContinue
                                # Utilizzo del parametro ErrorAction con il 
                                  valore "SilentlyContinue".
        PS>                                             
                                # Il messaggio di errore non viene visualizzato 
                                  e l'esecuzione continua.

    In questo esempio viene illustrato l'effetto del valore SilentlyContinue.
    

        PS> $ErrorActionPreference = "SilentlyContinue"
                                # Modifica del valore della preferenza.
        PS> write-error "Hello, World"                  
                                # Generazione di un messaggio di errore.
        PS>                     
                                # Il messaggio di errore viene eliminato.
        PS> write-error "Hello, World" -erroraction:continue
                                # Utilizzo del parametro ErrorAction 
                                  con il valore "Continue".
        write-error "Hello, World" -erroraction:continue : Hello, 
        World # Viene visualizzato il messaggio di errore e 
        l'esecuzione continua.

       
    In questo esempio viene illustrato l'effetto di un errore reale. 
    In questo caso, il comando ottiene un file inesistente, 
    nofile.txt. Nell'esempio viene inoltre utilizzato il parametro 
    comune ErrorAction per eseguire l'override della preferenza.

        PS> $erroractionpreference SilentlyContinue                     
                                # Visualizzazione del valore della 
                                  preferenza.   

        PS> get-childitem -path nofile.txt
        PS>                     # Il messaggio di errore viene eliminato.

        PS> $ErrorActionPreference = "Continue" 
                                # Modifica del valore su Continue.

        PS> get-childitem -path nofile.txt
        Get-ChildItem : Impossibile trovare il percorso 'C:\nofile.txt' 
        perché non esiste.
        At line:1 char:4
        + get-childitem <<<< nofile.txt

        PS> get-childitem -path nofile.txt -erroraction SilentlyContinue
                                # Utilizzo del parametro ErrorAction
        PS> 
                                # Il messaggio di errore viene eliminato.
  
        PS> $ErrorActionPreference = "Inquire"          
                                # Modifica del valore su Inquire.
        PS> get-childitem -path nofile.txt

        Confirm
        Impossibile trovare il percorso 'C:\nofile.txt' perché non esiste.
        [S] Sì [A] Sì a tutti [I] Interrompi comando [O] Sospendi [?] 
        Guida (il valore predefinito è "S"): s 
        Get-ChildItem : Impossibile trovare il percorso 'C:\nofile.txt' 
        perché non esiste.
        At line:1 char:4
        + get-childitem <<<< nofile.txt

        PS> $ErrorActionPreference = "Continue"                  
                                # Modifica del valore su Continue.
        PS> Get-Childitem nofile.txt -erroraction "Inquire"   
                                # Utilizzo del parametro ErrorAction 
                                  per eseguire l'override del valore 
                                  della preferenza.

        Confirm
        Impossibile trovare il percorso 'C:\nofile.txt' perché non 
        esiste. [S] Sì [A] Sì a tutti [I] Interrompi comando [O]
        Sospendi [?] Guida (il valore predefinito è "S"):


$ErrorView
----------
        Determina il formato di visualizzazione dei messaggi di 
        errore in Windows PowerShell. 

        Valori validi:
	    NormalView        Visualizzazione dettagliata progettata
             (valore          per la maggior parte degli utenti.
           predefinito):      Comprende una descrizione dell'errore,    
	                      il nome dell'oggetto interessato dall'errore
	                      e le frecce (<<<<) dirette alle parole nel
	                      comando che ha causato l'errore.

     	    CategoryView:     visualizzazione strutturata e abbreviata
     	                      progettata per gli ambienti di produzione. 
                              Il formato è:{Category}: ({TargetName}:
                              {TargetType}):[{Activity}], {Reason}

        Per ulteriori informazioni sui campi in CategoryView, vedere 
        la classe ErrorCategoryInfo in Windows PowerShell SDK.
        
    ESEMPI

    In questo esempio viene illustrato l'effetto dei valori ErrorView.

    In questo esempio viene illustrato il modo in cui viene 
    visualizzato un errore quando $ErrorView è impostato sul valore 
    NormalView. In questo caso, viene utilizzato il comando 
    Get-ChildItem per trovare un file inesistente.

        PS> $ErrorView                         # Verifica del valore.
        NormalView

        PS> get-childitem nofile.txt           # Trovare un 
        file inesistente.
        Get-ChildItem : Impossibile trovare il percorso 'C:\nofile.txt'
        perché non esiste.
        At line:1 char:14
        + get-childitem <<<< nofile.txt

    In questo esempio viene illustrato il modo in cui viene 
    visualizzato lo stesso errore quando $ErrorView è impostato sul 
    valore CategoryView.

        PS> $ErrorView = "CategoryView"        # Modifica del 
        valore in 
                                                 CategoryView

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

 
   In questo esempio viene dimostrato che il valore di ErrorView 
   influisce solo sulla visualizzazione dell'errore, non sulla 
   struttura dell'oggetto errore archiviata nella variabile 
   automatica $error. Per informazioni sulla variabile automatica 
   $error, vedere about_automatic_variables.

   Questo comando accetta l'oggetto ErrorRecord associato all'errore 
   più recente nella matrice dell'errore (elemento 0) e formatta 
   tutte le proprietà dell'oggetto errore in un elenco.
           
        PS> $error[0] | format-list -property * -force

        Exception     : System.Management.Automation.ItemNotFoundException:
                        Impossibile trovare il percorso 'C:\nofile.txt' 
                        perché non esiste. in System.Management.Automation.
                        SessionStateInternal.GetChildItems(String path, 
                        Boolean recurse, CmdletProviderContext context) in 
                        System.Management.Automation.ChildItemCmdletProvider
                        Intrinsics.Get(String path, Boolean recurse, 
                        CmdletProviderContext context) in Microsoft.PowerShell.
                        Commands.GetChildItemCommand.
      ProcessRecord()         : C:\nofile.txt
        CategoryInfo          : ObjectNotFound: (C:\nofile.txt: String)
                                [Get-ChildItem], ItemNotFoundException 
      FullyQualifiedErrorId   : PathNotFound,Microsoft.PowerShell.Commands.GetChildIt
        emCommand             :
        InvocationInfo        : System.Management.Automation.InvocationInfo


$FormatEnumerationLimit
-----------------------
        Determina il numero di elementi enumerati inclusi in una 
        visualizzazione. Questa variabile non influisce sugli oggetti 
        sottostanti, ma solo sulla visualizzazione.
        Se il valore di $FormatEnumerationLimit è inferiore al numero 
        di elementi enumerati, in Windows PowerShell vengono aggiunti 
        dei puntini di sospensione (...) per indicare gli elementi 
        non visualizzati.

        Valori validi: numeri interi (Int32)
        Valore predefinito: 4

    ESEMPI

        In questo esempio viene illustrato come utilizzare la variabile 
        $FormatEnumerationLimit per migliorare la visualizzazione degli 
        elementi enumerati. 

        Il comando in questo esempio genera una tabella in cui tutti 
        i servizi in esecuzione nel computer sono elencati in due 
        gruppi, uno per i servizi in esecuzione, l'altro per quelli 
        arrestati. Utilizza un comando Get-Service per ottenere tutti 
        i servizi, quindi invia i risultati attraverso la pipeline al 
        cmdlet Group-Object, il quale raggruppa i risultati in base 
        allo stato del servizio. 

        La visualizzazione risultante è una tabella in cui sono 
        elencati lo stato nella colonna Name e i processi con quello 
        stato nella colonna Group. (Per modificare le etichette delle 
        colonne, utilizzare una tabella hash. Per ulteriori 
        informazioni, vedere gli esempi in "get-help format-table 
        -examples".) 

        Nella colonna Group sono elencati al massimo 4 servizi per 
        ogni stato. Per aumentare il numero di elementi elencati, 
        aumentare il valore di $FormatEnumerationLimit a 1000.

        Nella visualizzazione risultante l'elenco nella colonna Group 
        è ora limitato dalla lunghezza di riga. Nel comando finale 
        nell'esempio utilizzare il parametro Wrap di Format-Table per 
        visualizzare tutti i processi in ogni gruppo Status.
         

        PS> $formatenumerationlimit         # Trovare il 
        valore corrente
        4
        
        PS> get-service | group-object -property status           
                                            # Elenco di tutti i 
                                              servizi raggruppati  
                                              in base allo stato

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

                                           # L'elenco viene troncato 
                                             dopo 4 elementi.


        PS> $formatenumerationlimit = 1000
                                           # Aumento del limite a 1000.
        
        PS> get-service | group-object -property status           
                                           # Ripetizione del comando.

        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
        
                                           # Aggiunta del parametro 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, RSVP, 
                         SCardSvr, SwPrv, SysmonLog, TlntSvr, upnphost, UPS, VSS, 
                         WmdmPmSN, Wmi, WmiApSrv, xmlprov}


$Log*Event
----------
        Le variabili di preferenza Log*Event determinano i tipi di 
        eventi scritti nel registro eventi di Windows PowerShell nel 
        Visualizzatore eventi. Per impostazione predefinita, vengono 
        registrati solo gli eventi del provider e del modulo, 
        tuttavia è possibile utilizzare le variabili di preferenza 
        Log*Event per personalizzare il registro, ad esempio la 
        registrazione degli eventi relativi ai comandi.   

        Di seguito sono elencate le variabili di preferenza Log*Event:

            $LogCommandHealthEvent: registra gli errori e le eccezioni 
                nell'inizializzazione e nell'elaborazione dei comandi. 
                Default = $false (nessuna registrazione).

            $LogCommandLifecycleEvent: 
                registra l'avvio e l'arresto di comandi e di pipeline 
                dei comandi e le eccezioni di sicurezza 
                nell'individuazione dei comandi. Default = $false 
                (nessuna registrazione).

            $LogEngineHealthEvent: registra gli errori delle sessioni. 
                Default = $true (registrazione).

            $LogEngineLifecycleEvent: registra l'apertura e la 
                chiusura delle sessioni. Default = $true 
                (registrazione).

            $LogProviderHealthEvent: registra gli errori del 
                provider, ad esempio gli errori di lettura e scrittura, 
                di ricerca e di chiamata. Default = $true (registrazione).

            $LogProviderLifecycleEvent: registra l'aggiunta e la 
                rimozione dei provider di Windows PowerShell.
                Default = $true (registrazione). (Per informazioni 
                sui provider di Windows PowerShell, digitare:
                "get-help about_provider".


        Per abilitare un Log*Event, digitare la variabile con il 
        valore $true, ad esempio:

            $LogCommandLifeCycleEvent

            - oppure

            $LogCommandLifeCycleEvent = $true


        Per disabilitare un tipo di evento, digitare la variabile con 
        il valore $false, ad esempio:

            $LogCommandLifeCycleEvent = $false

        Gli eventi che vengono abilitati valgono unicamente per la 
        console corrente di Windows PowerShell. Per applicare la 
        configurazione a tutte le console, salvare le impostazioni 
        della variabile nel profilo di Windows PowerShell.


$MaximumAliasCount
------------------
        Determina il numero di alias consentiti in una sessione di 
        Windows PowerShell. Il valore predefinito, 4096, dovrebbe 
        essere sufficiente nella maggior parte delle situazioni, 
        tuttavia è possibile regolarlo in base alle esigenze specifiche.

        Valori validi: 1024 - 32768 (Int32)
        Valore predefinito: 4096
      
        Per contare gli alias nel sistema, digitare: 
		(get-alias).count

$MaximumDriveCount
------------------
        Determina il numero di unità di Windows PowerShell consentite 
        in una determinata sessione. Sono inclusi le unità del file 
        system e gli archivi dati esposti dai provider di Windows 
        PowerShell e che vengono visualizzati come unità, ad esempio 
        le unità Alias: e HKLM:.

        Valori validi: 1024 - 32768 (Int32)
        Valore predefinito: 4096
      
        Per contare gli alias nel sistema, digitare: 
		(get-psdrive).count



$MaximumErrorCount
------------------
        Determina il numero di errori salvati nella cronologia degli 
        errori relativa alla sessione. 

        Valori validi: 256 - 32768 (Int32)
        Valore predefinito: 256

        Gli oggetti che rappresentano ogni errore mantenuto vengono 
        archiviati nella variabile automatica $Error. Questa 
        variabile contiene una matrice di oggetti record di errore, 
        una per ogni errore. L'errore più recente è il primo oggetto 
        nella matrice ($Error[0]).
      
        Per contare gli errori nel sistema, utilizzare la proprietà 
        Count della matrice $Error. Digitare:
		
		$Error.count

        Per visualizzare un errore specifico, utilizzare la notazione 
        di matrice per visualizzare l'errore. Ad esempio, per 
        visualizzare l'errore più recente, digitare:

                $Error[0]

        Per visualizzare l'errore mantenuto meno recente, digitare:

                $Error[($Error.Count -1]

        Per visualizzare le proprietà dell'oggetto ErrorRecord, digitare:

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

        In questo comando il parametro Force esegue l'override della 
        formattazione speciale degli oggetti ErrorRecord e ripristina 
        il formato convenzionale.

        Per eliminare tutti gli errori dalla cronologia, utilizzare 
        il metodo Clear della matrice degli errori.

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

       Per trovare tutti i metodi e le proprietà di una matrice degli 
       errori, utilizzare il cmdlet Get-Member con il parametro 
       InputObject relativo. Quando si reindirizza una raccolta di 
       oggetti a Get-Member, quest'ultimo visualizza le proprietà e i 
       metodi degli oggetti nella raccolta. Quando si utilizza il 
       parametro InputObject di Get-Member, quest'ultimo visualizza 
       le proprietà e i metodi della raccolta.


$MaximumFunctionCount
------------------
        Determina il numero di funzioni consentite in una determinata 
        sessione. 

        Valori validi: 1024 - 32768 (Int32)
        Valore predefinito: 4096

        Per visualizzare le funzioni nella sessione, utilizzare 
        l'unità Function: di Windows PowerShell esposta dal provider 
        Function di Windows PowerShell. (Per ulteriori informazioni 
        sul provider Function, digitare "get-help function").

        Per elencare le funzioni nella sessione corrente, digitare:

            get-childitem function:

        Per contare le funzioni nella sessione corrente, digitare:

            (get-childitem function:).count


$MaximumHistoryCount
------------------
        Determina il numero di comandi salvati nella cronologia dei 
        comandi relativa alla sessione corrente. 

        Valori validi: 1 - 32768 (Int32)
        Valore predefinito: 64

        Per determinare il numero di comandi salvati nella cronologia 
        dei comandi, digitare:
 
            (get-history).count

        Per visualizzare il comando salvato nella cronologia della 
        sessione, utilizzare il cmdlet Get-History. Per ulteriori 
        informazioni, digitare: "get-help about_history".



$MaximumVariableCount
------------------
        Determina il numero di variabili consentite in una 
        determinata sessione, incluse le variabili automatiche, le 
        variabili di preferenza e le variabili create in comandi e 
        script. 

        Valori validi: 1024 - 32768 (Int32)
        Valore predefinito: 4096

        Per visualizzare le variabili nella sessione, utilizzare il 
        cmdlet Get-Variable e le funzionalità dell'unità Variable: e 
        del provider Variable di Windows PowerShell. Per informazioni 
        sul provider Variable, digitare "get-help variable".

        Per trovare il numero corrente di variabili nel sistema, digitare:

            (get-variable).count



$OFS
----
        Separatore dei campi di output. Specifica il carattere che 
        separa gli elementi di una matrice quando quest'ultima viene 
        convertita in una stringa. 

        Valori validi: qualsiasi stringa.
        Valore predefinito: spazio

        Per impostazione predefinita, la variabile $OFS non esiste e 
        il separatore del file di output è uno spazio, tuttavia è 
        possibile aggiungere questa variabile e impostarla su 
        qualsiasi stringa.

    ESEMPI

    In questo esempio viene illustrato l'utilizzo di uno spazio per 
    separare i valori quando una matrice viene convertita in una 
    stringa. In questo caso, una matrice di valori interi viene 
    archiviata in una variabile, dopodiché viene eseguito il cast di 
    tale variabile in una stringa.

       PS> $array = 1,2,3                 # Archiviazione di una 
                                            matrice di valori interi.       

       PS> [string]$array                 # Cast della matrice in una 
                                            stringa.
       1 2 3                              # Gli spazi separano gli elementi


    Per cambiare il separatore, aggiungere la variabile $OFS 
    assegnando ad essa un valore. Per un funzionamento corretto, la 
    variabile deve essere denominata $OFS. 

       PS> $OFS = "+"                     # Creazione della variabile 
                                            $OFS e assegnazione del 
                                            valore "+"

       PS> [string]$array                 # Ripetizione del comando
       1+2+3                              # I segni più separano gli elementi


    Per ripristinare il comportamento predefinito, è possibile 
    assegnare uno spazio (" ") al valore di $OFS oppure eliminare la 
    variabile. Questo comando elimina la variabile, quindi verifica 
    che il separatore sia uno spazio.
        
       PS> Remove-Variable OFS            # Eliminazione della 
       variabile $OFS
       PS>

       PS> [string]$array                 # Ripetizione del comando
       1 2 3                              # Gli spazi separano gli elementi 

$OutputEncoding
---------------
       Determina il metodo di codifica dei caratteri utilizzato da 
       Windows PowerShell quando viene inviato del testo ad altre 
       applicazioni. Se, ad esempio, vengono restituite stringhe 
       Unicode a Windows PowerShell, potrebbe essere necessario 
       modificare il valore per l'invio corretto dei caratteri.

        Valori validi: oggetti derivati da una classe di codifica, ad 
        esempio ASCIIEncoding, SBCSCodePageEncoding, UTF7Encoding, 
        UTF8Encoding, UTF32Encoding e UnicodeEncoding.

        Valore predefinito: oggetto ASCIIEncoding (System.Text.ASCIIEn
        coding)

    ESEMPI

       In questo esempio viene illustrato come far funzionare il 
       comando FINDSTR di Windows in Windows PowerShell in un 
       computer localizzato in una lingua che utilizza caratteri 
       Unicode, ad esempio la lingua cinese. 

       Il primo comando trova il valore di $OutputEncoding. Poiché il 
       valore è un oggetto di codifica, visualizzare unicamente la 
       sua proprietà EncodingName.
         
          PS> $OutputEncoding.EncodingName  # Trovare il valore corrente
          US-ASCII

       In questo esempio viene utilizzato un comando FINDSTR per 
       cercare due caratteri cinesi presenti nel file Test.txt. 
       Quando questo comando FINDSTR viene eseguito al prompt dei 
       comandi di Windows (Cmd.exe), i caratteri cinesi vengono 
       trovati nel file di testo. Tuttavia, quando lo stesso comando 
       FINDSTR viene eseguito in Windows PowerShell, i caratteri non 
       vengono trovati perché Windows PowerShell li invia a FINDSTR 
       in testo ASCII, non in Unicode.

          PS> findstr <caratteri-Unicode>  # Utilizzo di findstr per 
                                             la ricerca.
          PS>                              # Nessun carattere trovato.

        
       Per far funzionare il comando in Windows PowerShell, impostare 
       il valore di $OutputEncoding sul valore della proprietà 
       OutputEncoding della console, che è basata sulle impostazioni 
       locali selezionate per Windows. Poiché OutputEncoding è una 
       proprietà statica della console, utilizzare due caratteri due 
       punti (::) nel comando.

          PS> $OutputEncoding = [console]::outputencoding
          PS>                               # Impostazione del valore sulla
                                              proprietà 
                                              OutputEncoding della 
                                              console.
          PS> $OutputEncoding.EncodingName               
          OEM United States
                                            # Trovare il valore 
                                            risultante.
     
       In seguito a questa modifica, il comando FINDSTR troverà i 
       caratteri.

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

					# Utilizzo del comando findstr per  
                                          la ricerca. I caratteri vengono  
                                          trovati nel file di testo.



$ProgressPreference
-------------------
	Determina la modalità di risposta di Windows PowerShell agli 
	aggiornamenti dello stato generati da uno script, cmdlet o provider, 
	ad esempio gli indicatori di stato generati dal cmdlet Write-Progress. 
	Il cmdlet Write-Progress crea indicatori di stato che rappresentano
	lo stato di un comando.

        Valori validi:
	    Stop:               l'indicatore di stato non viene visualizzato. 
	                        Viene invece visualizzato un messaggio di errore 
                                e l'esecuzione viene arrestata.

     	    Inquire:            l'indicatore di stato non viene visualizzato. 
     	                        Per continuare, viene richiesta l'autorizzazione.
     	                        Se si risponde con Y o A, l'indicatore di stato 
                                viene visualizzato.

            Continue            l'indicator e di stato viene visualizzato e
       (valore predefinito):    l'esecuzione continua.

           SilentlyContinue:    il comando viene eseguito, ma l'indicatore di stato
                                non viene visualizzato.


$PSEmailServer
--------------
       Specifica il server di posta elettronica predefinito utilizzato
       per l'invio dei messaggi di posta elettronica. Questa variabile 
       di preferenza viene utilizzata dai cmdlet che inviano i messaggi
       di posta elettronica, ad esempio il cmdlet Send-MailMessage.


$PSSessionApplicationName
---------------------------
       Specifica il nome di applicazione predefinito di un comando 
       remoto che utilizza la tecnologia Gestione remota Windows 
       (WS-Management).

       Il nome di applicazione predefinito di sistema è WSMAN, 
       tuttavia è possibile utilizzare questa variabile di preferenza 
       per modificare questo valore predefinito. 

       Il nome di applicazione è l'ultimo nodo in un URI di 
       connessione. Ad esempio, il nome di applicazione nell'URI di 
       esempio seguente è WSMAN.

           http://Server01:8080/WSMAN


       Il nome di applicazione predefinito viene utilizzato quando il 
       comando remoto non specifica un URI di connessione o un nome 
       di applicazione.  

       Il servizio Gestione remota Windows utilizza il nome di 
       applicazione per selezionare un listener per la gestione della 
       richiesta di connessione. Il valore di questo parametro deve 
       corrispondere al valore della proprietà URLPrefix di un 
       listener nel computer remoto.

       Per eseguire l'override delle impostazioni predefinite del 
       sistema e del valore di questa variabile, quindi selezionare 
       un nome di applicazione diverso per una determinata sessione, 
       utilizzare il parametro ConnectionURI o ApplicationName del 
       cmdlet New-PSSession, Enter-PSSession o Invoke-Command.   

       Questa variabile di preferenza viene impostata nel computer 
       locale, ma specifica un listener nel computer remoto. Se il 
       nome di applicazione specificato non esiste nel computer 
       remoto, il comando per stabilire la sessione ha esito negativo.



$PSSessionConfigurationName
---------------------------
       Specifica la configurazione di sessione predefinita utilizzata 
       per le sessioni PSSession create nella sessione corrente.

       Questa variabile di preferenza viene impostata nel computer 
       locale, ma specifica una configurazione di sessione presente 
       nel computer remoto. 

       Il valore della variabile $PSSessionConfigurationName è un URI 
       di risorsa completo. 

       Valore predefinito: 

         https://schemas.microsoft.com/powershell/microsoft.powershell 

       indica la configurazione di sessione Microsoft.PowerShell nel 
       computer remoto. 

       Se si specifica unicamente un nome di configurazione, viene 
       anteposto l'URI di schema seguente:

           https://schemas.microsoft.com/powershell/

             
       È possibile eseguire l'override del valore predefinito e 
       selezionare una configurazione di sessione diversa per una 
       determinata sessione mediante il parametro ConfigurationName 
       del cmdlet New-PSSession, Enter-PSSession o Invoke-Command.   

       Il valore di questa variabile può essere modificato in 
       qualsiasi momento. Quando si decide di apportare tale 
       modifica, ricordare che la configurazione di sessione 
       selezionata deve essere presente nel computer remoto. In caso 
       contrario, il comando di creazione di una sessione che 
       utilizza la configurazione di sessione avrà esito negativo.

       Questa variabile di preferenza non determina le configurazioni 
       di sessione locali utilizzate dagli utenti remoti per creare 
       una sessione per la connessione a questo computer. È tuttavia 
       possibile utilizzare le autorizzazioni affinché le 
       configurazioni di sessione locali possano determinare quali 
       utenti potranno utilizzarle.


$PSSessionOption
----------------
        Stabilisce i valori predefiniti per le opzioni utente 
        avanzate in una sessione remota. Queste preferenze di opzione 
        eseguono l'override dei valori predefiniti di sistema per le 
        opzioni di sessione. 

        È inoltre possibile impostare opzioni personalizzate per una 
        determinata sessione remota mediante il parametro 
        SessionOption nei cmdlet che creano una sessione, ad esempio 
        New-PSSession, Enter-PSSession e Invoke-Command. Il valore 
        del parametro SessionOption ha la precedenza sui valori 
        predefiniti di sistema sui valori predefiniti impostati in 
        questa variabile.

        La variabile $PSSessionOption contiene un oggetto 
        PSSessionOption        
        (System.Management.Automation.Remoting.PSSessionObject).  
        Ogni proprietà dell'oggetto rappresenta un'opzione di sessione.  
        La proprietà NoCompression, ad esempio, comporta la disattivazione  
        della compressione dati durante la sessione.

        Per creare la variabile di preferenza $PSSessionOption, 
        utilizzare il cmdlet New-PSSessionOption. Salvare l'output in 
        una variabile denominata $PSSessionOption. 

        Ad esempio,

            $PSSessionOption = New-PSSessionOption -NoCompression 

        Per utilizzare la variabile di preferenza $PSSessionOption in 
        ogni sessione di Windows PowerShell, aggiungere un comando 
        New-PSSessionOption per la creazione della variabile 
        $PSSessionOption al profilo di Windows PowerShell.

        Per ulteriori informazioni sul cmdlet New-PSSessionOption, 
        vedere l'argomento della Guida relativo a New-PSSessionOption.
        Per ulteriori informazioni sulle sessioni e sui comandi 
        remoti, vedere about_Remote e about_PSSessions.
        Per ulteriori informazioni sull'utilizzo di un profilo, 
        vedere about_Profiles.




$VerbosePreference
------------------
       	Determina la modalità di risposta di Windows PowerShell ai 
       	messaggi dettagliati generati da uno script, cmdlet o 
       	provider, ad esempio i messaggi generati dal cmdlet 
       	Write-Verbose. Nei messaggi dettagliati vengono in genere 
       	descritte le azioni eseguite per eseguire un comando. 
        Per impostazione predefinita, i messaggi dettagliati non 
        vengono visualizzati. È tuttavia possibile modificare questo 
        comportamento modificando il valore di $VerbosePreference.

        È inoltre possibile utilizzare il parametro comune Verbose di 
        un cmdlet per visualizzare o nascondere i messaggi 
        dettagliati per un comando specifico. Per ulteriori 
        informazioni, digitare: "get-help about_commonparameters".


        Valori validi:
	    Stop:               vengono visualizzati un messaggio 
	                        dettagliato e un messaggio di errore 
                                e l'esecuzione viene arrestata.

     	    Inquire:            viene visualizzato il messaggio dettagliato,
      	                        dopodiché viene visualizzato un prompt che 
     	                        chiede se continuare o meno.

            Continue:           viene visualizzato il messaggio dettagliato
                                e l'esecuzione continua.

            SilentlyContinue    il messaggio dettagliato non viene visualizzato.
          (valore predefinito): L'esecuzione continua.

                                

    ESEMPI

    In questi esempi vengono illustrati gli effetti dei diversi valori di 
    $VerbosePreference e l'utilizzo del parametro comune Verbose per 
    eseguire l'override del valore della preferenza.
    
    In questo esempio viene illustrato l'effetto del valore 
    SilentlyContinue, ovvero il valore predefinito.

        PS> $VerbosePreference             # Trovare il valore corrente.
        
        SilentlyContinue

        PS> Write-Verbose "Test messaggio dettagliato."              
        PS>                                # Scrittura di un messaggio dettagliato.
                                           # Il messaggio non viene 
                                             visualizzato.

        PS> Write-Verbose "Test messaggio dettagliato." -verbose   
        VERBOSE: Test messaggio dettagliato.
	                                   # Utilizzo del parametro Verbose.


    In questo esempio viene illustrato l'effetto prodotto dal valore 
    Continue.

        PS> $VerbosePreference = "Continue"                    
                                           # Modifica del valore su 
                                             Continue.
        PS> Write-Verbose "Test messaggio dettagliato."              
                                           # Scrittura di un 
                                             messaggio dettagliato.
        VERBOSE: Test messaggio dettagliato.                          
                                           # Il messaggio viene visualizzato.

        PS> Write-Verbose "Test messaggio dettagliato." -verbose:$false
                                           # Utilizzo del parametro 
                                             Verbose con il valore $false.
        PS>                                  
                                           # Il messaggio non viene visualizzato.
                                             

    In questo esempio viene illustrato l'effetto prodotto dal valore Stop.

        PS> $VerbosePreference = "Stop"                        
                                           # Modifica del valore su Stop.
        PS> Write-Verbose "Test messaggio dettagliato."              
                                           # Scrittura di un messaggio dettagliato.
                                           
        VERBOSE: Test messaggio dettagliato.
        Write-Verbose: l'esecuzione del comando viene arrestata perché la variabile 
        della shell "VerbosePreference" è impostata su Stop.
        At line:1 char:14
        + Write-Verbose <<<< "Test messaggio dettagliato."

       PS> Write-Verbose "Test messaggio dettagliato." -verbose:$false
                                          # Utilizzo del parametro 
                                            Verbose con il valore $false 
                                          # Il messaggio non viene 
                                            visualizzato.

    In questo esempio viene illustrato l'effetto prodotto dal valore 
    Inquire.

       PS> $VerbosePreference = "Inquire"                      
                                         # Modifica del valore su Inquire.
       PS> Write-Verbose "Test messaggio dettagliato."               
       VERBOSE: Test messaggio dettagliato.
                                         # Scrittura di un messaggio 
                                           dettagliato.
       Confirm
       Continuare?
       [S] Sì [A] Sì a tutti [I] Interrompi comando [O] Sospendi [?] 
       Guida (il valore predefinito è "S"): s 

       PS> Write-Verbose "Test messaggio dettagliato." -verbose:$false
                                        # Utilizzo del parametro Verbose.
       PS>                              
                                        # Il messaggio non viene 
                                          visualizzato.


    
$WarningPreference
------------------
        Determina la modalità di risposta di Windows PowerShell ai 
        messaggi di avviso generati da uno script, cmdlet o provider, 
        ad esempio i messaggi generati dal cmdlet Write-Warning.

        Per impostazione predefinita, i messaggi di avviso vengono 
        visualizzati e l'esecuzione continua. È tuttavia possibile 
        modificare questo comportamento modificando il valore di 
        $WarningPreference.

        È inoltre possibile utilizzare il parametro comune 
        WarningAction di un cmdlet per determinare la risposta di 
        Windows PowerShell agli avvisi risultanti da un particolare 
        comando. Per ulteriori informazioni, digitare: "get-help 
        about_commonparameters".


        Valori validi:
	    Stop:               vengono visualizzati il messaggio di 
	                        avviso e un messaggio di errore e 
                                l'esecuzione viene arrestata.

     	    Inquire:            viene visualizzato il messaggio di 
     	                        avviso, quindi viene richiesta 
                                l'autorizzazione per continuare. 

            Continue 
        (valore predefinito):   viene visualizzato il messaggio di 
                                avviso e l'esecuzione continua.

            SilentlyContinue:   il messaggio di avviso non viene 
                                visualizzato. L'esecuzione continua.

    ESEMPI

    In questi esempi vengono illustrati gli effetti dei diversi valori di 
    $WarningPreference e l'utilizzo del parametro comune WarningAction 
    per eseguire l'override del valore della preferenza.

    
    In questo esempio viene illustrato l'effetto del valore Continue, 
    ovvero il valore predefinito.

            PS> $WarningPreference    # Trovare il valore corrente.                           
            Continue                  

                                      # Scrittura di un messaggio di 
                                        avviso.
            PS> Write-Warning "L'azione può eliminare i dati."   
            WARNING: L'azione può eliminare i dati.
                                      	
                                      # Utilizzo del parametro 
                                        WarningAction su Write-Warning                                         
            PS> Write-Warning "L'azione può eliminare i dati." -warningaction silentlycontinue   



   In questo esempio viene illustrato l'effetto del valore 
   SilentlyContinue.

            PS> $WarningPreference = "SilentlyContinue"           
                                      # Modifica del valore su 
                                        SilentlyContinue.
 
            PS> Write-Warning "L'azione può eliminare i dati."   
            PS>                        # Scrittura di un messaggio di avviso.

       
            PS> Write-Warning "L'azione può eliminare i dati." 
            -warningaction stop   
                                      # Utilizzo del parametro 
                                        WarningAction per arrestare 
                                        l'elaborazione 
                                      # quando questo comando genera un messaggio di 
                                        avviso 
                                      # Warning
            WARNING: L'azione può eliminare i dati.
            Write-Warning: l'esecuzione del comando è stata 
            interrotta perché la variabile della shell "WarningPrefere
            nce" è impostata su Stop.
            At line:1 char:14
            + Write-Warning <<<< "L'azione può eliminare i dati." 
            -warningaction stop 


    In questo esempio viene illustrato l'effetto prodotto dal valore 
    Inquire.

           PS> $WarningPreference = "Inquire"                    
                                      # Modifica del valore su Inquire.
           PS> Write-Warning "L'azione può eliminare i dati."  
                                      # Scrittura di un messaggio di 
                                        avviso. WARNING: L'azione può 
                                        eliminare i dati.

           Confirm
           Continuare?
           [S] Sì [A] Sì a tutti [I] Interrompi comando [O] Sospendi 
           [?] Guida (il valore predefinito è "S"): s 

           PS> Write-Warning "L'azione può eliminare i dati." 
           -warningaction silentlycontinue
           PS>                         # Utilizzo del parametro WarningAction 
                                         per modificare la
                                       # risposta a un avviso per il 
                                         comando corrente.


     In questo esempio viene illustrato l'effetto prodotto dal valore Stop.

           PS> $WarningPreference = "Stop"                       
                                     # Modifica del valore su Stop.

           PS> Write-Warning "L'azione può eliminare i dati."   
                                     # Scrittura di un messaggio di 
                                       avviso.
           WARNING: L'azione può eliminare i dati.
           Write-Warning: l'esecuzione del comando è stata interrotta 
           perché la variabile della shell "WarningPreference" è 
           impostata su Stop.
           At line:1 char:14
           + Write-Warning <<<< "L'azione può eliminare i dati."


           PS> Write-Warning "L'azione può eliminare i dati." 
           -warningaction inquire
           WARNING: L'azione può eliminare i dati.

           Confirm
           Continuare?
           [S] Sì [A] Sì a tutti [I] Interrompi comando [O] Sospendi 
           [?] Guida (il valore predefinito è "S"):                         
                                  # Utilizzo del parametro WarningAction  
                                    per modificare la risposta 
                                  # a un avviso per il comando corrente.


$WhatIfPreference
------------------
       	Determina se WhatIf viene abilitato automaticamente per ogni 
       	comando che lo supporta. Se WhatIf è abilitato, il cmdlet 
       	segnala l'effetto previsto del comando, ma non lo esegue. 

        Valori validi:
	    0:                  WhatIf non viene abilitato automaticamente.
	    (predefinito)       Per abilitarlo manualmente, utilizzare il 
	                        parametro WhatIf del comando.


     	    1:                  WhatIf viene abilitato automaticamente 
     	                        per qualsiasi comando che lo supporta. 
                                Gli utenti possono utilizzare il comando 
                                WhatIf con il valore False per disabilitarlo 
                                manualmente (WhatIf:$false).

    SPIEGAZIONE DETTAGLIATA

        Se un cmdlet supporta WhatIf, segnala l'effetto previsto del 
        comando, anziché eseguirlo. Ad esempio, anziché eliminare il 
        file test.txt in risposta a un comando Remove-Item, in 
        Windows PowerShell viene segnalato l'elemento che verrebbe 
        eliminato. Un comando Get-Childitem successivo confermerà che 
        il file non è stato eliminato.

              PS> remove-item test.txt
              What if: Esecuzione dell'operazione "Remove-Item" sulla 
                destinazione "Item: C:\test.txt
              PS> get-childitem test.txt

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


              Mode                LastWriteTime     Length     Name
              ----                -------------     ------     ----
              -a---         29/7/2006   19.15         84     test.txt



    ESEMPI

    In questi esempi viene illustrato l'effetto dei diversi valori di 
    $WhatIfPreference. Viene inoltre illustrato come utilizzare il 
    parametro del cmdlet WhatIf per eseguire l'override del valore 
    della preferenza per un comando specifico.
    
    In questo esempio viene illustrato l'effetto del valore 0 (non 
    abilitato), ovvero il valore predefinito.

             PS> $whatifpreference                     
             0                         # Verifica del valore corrente.

             PS> get-childitem test.txt | format-list FullName
             FullName : C:\test.txt
                                       # Verifica dell'esistenza del file.

             PS> remove-item test.txt                  
             PS>                       # Eliminazione del file.

             PS> get-childitem test.txt | format-list -property FullName
                                       # Verifica dell'eliminazione 
                                         del file.

             Get-ChildItem : Impossibile trovare il percorso 
             'C:\test.txt' perché non esiste.
             At line:1 char:14
             + get-childitem <<<< test.txt | format-list fullname


     In questo esempio viene illustrato l'effetto dell'utilizzo del 
     parametro WhatIf quando il valore di $WhatIfPreference è 0.

             PS> get-childitem test2.txt | format-list -property FullName 
             FullName : C:\test2.txt
                                      # Verifica dell'esistenza del file.

             PS> remove-item test2.txt -whatif         
             What if: Esecuzione dell'operazione "Remove File" sulla 
             destinazione "C:\test2.txt".
                                      # Utilizzo del parametro WhatIf.

             PS> get-childitem test2.txt | format-list -property FullName
             FullName : C:\test2.txt
                                      # Verifica del fatto che il 
                                        file non è stato eliminato 

    In questo esempio viene illustrato l'effetto prodotto dal valore 
    1 (WhatIf abilitato). Quando si utilizza Remove-Item per 
    eliminare un cmdlet, viene visualizzato il percorso del file che 
    verrebbe eliminato, ma l'eliminazione non viene eseguita.

             PS> $whatifpreference = 1                 
             PS> $whatifpreference
             1                        # Modifica del valore.
                                      
             PS> remove-item test.txt                  
             What if: Esecuzione dell'operazione"Remove File" sulla 
             destinazione "C:\test.txt".
                                      # Tentativo di eliminazione di 
                                        un file.

             PS> get-childitem test.txt | format-list FullName
             FullName : C:\test.txt
                                      # Verifica dell'esistenza del file.

     In questo esempio viene illustrato come eliminare un file quando 
     il valore di $WhatIfPreference è 1. Il parametro WhatIf viene 
     utilizzato con il valore $false.

             PS> remove-item test.txt -whatif:$false
                                      # Utilizzo del parametro WhatIf 
                                        with $false.

     In questo esempio viene dimostrato che non tutti i cmdlet 
     supportano il comportamento di WhatIf. In questo esempio, dove 
     il valore di $WhatIfPreference è 1 (abilitato), viene eseguito 
     un comando Get-Process che non supporta WhatIf, ma il 
     comportamento di WhatIf viene eseguito da un comando Stop-Process.
     È possibile eseguire l'override del comportamento di WhatIf del 
     comando Stop-Process mediante il parametro WhatIf con il valore 
     $false.

            PS> $whatifpreference = 1                  
                                     # Modifica del valore su 1.
                                                      
            PS> get-process winword 
                                    # Completamento del comando 
                                      Get-Process.

            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: Esecuzione dell'operazione "Stop-Process" sulla 
           destinazione "WINWORD (2312)".
                                    # Un comando Stop-Process 
                                      utilizza WhatIf.

           PS> stop-process -name winword -whatif:$false
           PS>                      # WhatIf:$false esegue l'override 
                                      della preferenza.
           
           PS> get-process winword                     
           Get-Process : C Impossibile trovare un processo con nome 
           'winword'. Verificare il nome del processo e chiamare di 
           nuovo il cmdlet.
           At line:1 char:12
           + get-process <<<< winword
                                    # Verifica dell'arresto del processo.





VEDERE ANCHE
    about_Automatic_Variables
    about_CommonParameters
    about_Environment_Variables
    about_Profiles
    about_Remote
    about_Scopes
    about_Variables




Argomenti della Guida