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