Guida di Windows PowerShell

  • Guida introduttiva a Windows PowerShell

  • Manuale dell'utente di Windows PowerShell

  • Argomenti della Guida "About" di Windows PowerShell

  • Argomenti della Guida relativi ai cmdlet di Windows PowerShell

  • Argomenti della Guida relativi ai provider di Windows PowerShell

  • Guida di Windows PowerShell Integrated Scripting Environment (ISE)

  • Guida della console PowerShell.exe


Guida introduttiva a Windows PowerShell

Windows PowerShell è una nuova shell della riga di comando Windows ideata specificamente per gli amministratori di sistema. Windows PowerShell include un prompt interattivo e un ambiente di script utilizzabili indipendentemente l'uno dall'altro o in combinazione.

Diversamente dalla maggior parte delle shell, da cui viene accettato e restituito testo, Windows PowerShell si basa su .NET Framework Common Language Runtime (CLR) e su .NET Framework e accetta e restituisce oggetti .NET Framework. Grazie a questa modifica fondamentale all'ambiente, sono disponibili strumenti e metodi completamente nuovi per la gestione e la configurazione di Windows.

In Windows PowerShell viene introdotto il concetto di cmdlet (pronunciato come in inglese "command-let"), un semplice strumento da riga di comando a funzione singola incorporato nella shell. Ogni cmdlet può essere utilizzato separatamente, ma per ottenere una maggiore efficienza è possibile utilizzare questi semplici strumenti in combinazione per eseguire attività complesse. Windows PowerShell include più di cento cmdlet principali di base ed è inoltre possibile scrivere cmdlet personalizzati e condividerli con altri utenti.

In modo analogo alla maggior parte delle shell, Windows PowerShell consente di accedere al file system nel computer. I provider di Windows PowerShell consentono inoltre di accedere ad altri archivi dati, ad esempio il Registro di sistema e gli archivi certificati per la firma digitale, con la stessa semplicità con cui è possibile accedere al file system.

La presente Guida introduttiva offre un'introduzione a Windows PowerShell, descrivendone il linguaggio, i cmdlet, i provider e l'utilizzo di oggetti.


Introduzione a Windows PowerShell

La maggior parte delle shell, incluse Cmd.exe e le shell UNIX SH, KSH, CSH e BASH, funziona eseguendo un comando o un'utilità in un nuovo processo e restituendo all'utente i risultati sotto forma di testo. Col tempo, molte utilità di elaborazione di testo, ad esempio sed, AWK e PERL, si sono evolute per supportare questa interazione.

Queste shell includono anche comandi predefiniti che vengono eseguiti nel processo shell, ad esempio il comando typeset in KSH e il comando dir in Cmd.exe. Poiché nella maggior parte delle shell i comandi predefiniti sono in numero limitato, sono state create diverse utilità.

Windows PowerShell si differenzia notevolmente da queste shell.

  • In Windows PowerShell non viene elaborato testo, ma vengono elaborati oggetti basati sulla piattaforma .NET Framework.

  • In Windows PowerShell sono inclusi numerosi comandi predefiniti che possono essere utilizzati in un'interfaccia coerente.

  • Per tutti i comandi della shell viene utilizzato lo stesso parser e non sono necessari parser diversi per ogni strumento. In questo modo, è possibile apprendere l'utilizzo dei comandi con maggiore semplicità.

Non è inoltre necessario abbandonare gli strumenti che si è abituati a utilizzare. In Windows PowerShell è possibile continuare a utilizzare gli strumenti tradizionali di Windows, ad esempio Net, SC e Reg.exe.

In questa sezione sono contenuti gli argomenti seguenti:

  • Cmdlet di Windows PowerShell

  • Nuovo linguaggio di scripting

  • Utilità e comandi di Windows

  • Elaborazione di oggetti

  • Pipeline di oggetti


Cmdlet di Windows PowerShell

Un cmdlet (pronunciato come in inglese "command-let") è un comando a funzionalità singola che consente di modificare gli oggetti in Windows PowerShell. È possibile riconoscere i cmdlet dal formato del nome, costituito da un verbo e un sostantivo separati da un trattino (-), ad esempio Get-Help, Get-Process e Start-Service.

Nelle shell tradizionali i comandi sono programmi eseguibili che possono essere molto semplici, come nel caso di attrib.exe, ma anche molto complessi, come netsh.exe.

In Windows PowerShell i cmdlet sono in genere molto semplici e sono progettati per essere utilizzati in combinazione con altri cmdlet. I cmdlet "get", ad esempio, consentono solo di recuperare dati, i cmdlet "set" consentono solo di impostare o modificare i dati, i cmdlet "format" consentono solo di formattare i dati e i cmdlet "out" consentono solo di indirizzare l'output a una destinazione specifica.

Per ogni cmdlet è disponibile un file della Guida a cui è possibile accedere digitando:

get-help <cmdlet-name> -detailed

La visualizzazione dettagliata del file della Guida del cmdlet include una descrizione del cmdlet, la sintassi dei comandi, descrizioni dei parametri e un esempio che illustra l'utilizzo del cmdlet.


Nuovo linguaggio di scripting

In Windows PowerShell non vengono utilizzati i linguaggi esistenti, bensì un linguaggio proprio di questo strumento, per i motivi seguenti.

  • Per Windows PowerShell è necessario un linguaggio per la gestione degli oggetti Microsoft .NET Framework.

  • Il linguaggio deve offrire un ambiente coerente per l'utilizzo di cmdlet.

  • Il linguaggio deve supportare attività complesse, senza però rendere più complesse le attività semplici.

  • Il linguaggio deve essere coerente con i linguaggi di livello più alto utilizzati nella programmazione .NET Framework, ad esempio C#.


Utilità e comandi di Windows

È possibile eseguire i programmi della riga di comando di Windows in Windows PowerShell, nonché avviare le applicazioni Windows che dispongono di un'interfaccia utente grafica, ad esempio Blocco note e Calcolatrice, al prompt di Windows PowerShell. È inoltre possibile acquisire il testo generato dalle applicazioni Windows e utilizzarlo in Windows PowerShell.

Ad esempio, nei comandi seguenti vengono utilizzati i comandi Windows, IPConfig, Net e Shutdown.

C:\PS> net localgroup administrators /add domain01\user01
The command completed successfully.

C:\PS> ipconfig
Windows IP Configuration
Ethernet adapter Local Area Connection:
       Connection-specific DNS Suffix  . : domain.corp.fabricam.com
       IP Address. . . . . . . . . . . . : 142.20.152.115
       Subnet Mask . . . . . . . . . . . : 255.255.252.0
       Default Gateway . . . . . . . . . : 172.30.180.1

C:\PS> shutdown -r

È possibile utilizzare cmdlet di Windows PowerShell, come Select-String, anche per modificare il testo restituito dalle applicazioni Windows.

Ad esempio, nel comando seguente viene utilizzato un operatore pipeline per inviare i risultati di un comando IPConfig al cmdlet Select-String di Windows PowerShell, che esegue la ricerca del testo nelle stringhe. In questo caso, si utilizza Select-String per trovare il modello "255" nell'output di IpConfig.

C:\PS> ipconfig | select-string -pattern 255
Subnet Mask . . . . . . . . . . . : 255.255.252.0

Quando un comando o uno strumento di Windows dispone di parametri, come il parametro "- r" (riavvio) di Shutdown, in Windows PowerShell i parametri vengono passati allo strumento senza essere interpretati.

Tuttavia, se lo strumento utilizza una parola riservata di Windows PowerShell o un formato di comando non familiare a Windows PowerShell, come il parametro "-D:debug=false" di Nant (Windows PowerShell lo interpreta come due parametri, "- D" e "debug=false")", racchiudere i parametri tra virgolette per indicare a Windows PowerShell che i parametri devono essere inviati allo strumento senza interpretazione.


Elaborazione di oggetti

Sebbene a prima vista potrebbe non risultare chiaro, quando si lavora con Windows PowerShell si utilizzano oggetti .NET Framework. Man mano che si acquisisce familiarità, l'efficacia dell'elaborazione degli oggetti diventa più evidente e sarà possibile comprendere meglio le modalità di utilizzo degli oggetti e il concetto di oggetto.

Da un punto di vista tecnico, un oggetto .NET Framework è un'istanza di una classe .NET Framework costituita dai dati e dalle operazioni associate a tali dati. È possibile pensare a un oggetto come a un'entità di dati che include proprietà, che corrispondono alle caratteristiche, e metodi, ovvero azioni che è possibile eseguire sull'oggetto.

Quando, ad esempio, si ottiene un servizio in Windows PowerShell, si ottiene un oggetto che rappresenta il servizio. Quando si visualizzano informazioni su un servizio, si visualizzano le proprietà del relativo oggetto servizio. Quando, infine, si avvia un servizio, ovvero si modifica la proprietà Status del servizio impostandola su "started", si utilizza un metodo dell'oggetto servizio.

Tutti gli oggetti dello stesso tipo dispongono degli stessi metodi e proprietà, ma ogni istanza di un oggetto può avere diversi valori per le proprietà. Ogni oggetto servizio, ad esempio, dispone di una proprietà Name e di una proprietà Status. Ogni servizio può tuttavia avere un nome e uno stato diversi.

Dopo avere acquisito un po' di familiarità, sarà possibile apprendere i concetti relativi agli oggetti in modo semplice. Per individuare il tipo di oggetto ottenuto da un cmdlet, utilizzare un operatore pipeline (|) per inviare i risultati di un comando "get" al comando Get-Member. Tramite il comando seguente, ad esempio, gli oggetti recuperati da un comando Get-Service vengono inviati a Get-Member.

get-service | get-member

Tramite Get-Member vengono visualizzate le informazioni sull'oggetto servizio, incluso il nome di tipo e un elenco dei relativi metodi e proprietà.

   TypeName: System.ServiceProcess.ServiceController

Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
add_Disposed              Method        System.Void add_Disposed(EventHandler value)
Close                     Method        System.Void Close()
Continue                  Method        System.Void Continue()
...

Per informazioni sulla classe di oggetti, copiare e incollare il nome di tipo, ad esempio System.ServiceProcess.ServiceController, in MSDN. Dopo aver trovato la classe, leggere gli argomenti secondari in MSDN per informazioni sulle proprietà e sui metodi degli oggetti basati su tale classe, analoghi a quelli di Windows PowerShell.

Per trovare i valori di tutte le proprietà di un oggetto specifico, utilizzare un operatore pipeline (|) per inviare i risultati di un comando "get"a un comando Format-List o Format-Table. Utilizzare il parametro Property dei cmdlet Format con un valore indicante tutti gli elementi (*). Per trovare, ad esempio, tutte le proprietà del servizio di pianificazione (Schedule) nel sistema, digitare:

get-service schedule | format-list -property *

Di seguito è illustrato un esempio del risultato.

Name                : Schedule
CanPauseAndContinue : True
CanShutdown         : True
CanStop             : True
DisplayName         : Task Scheduler
DependentServices   : {}
MachineName         : .
ServiceName         : Schedule
ServicesDependedOn  : {RpcSs}
ServiceHandle       : SafeServiceHandle
Status              : Running
ServiceType         : Win32ShareProcess
Site                :
Container           :

Per iniziare ad apprendere l'utilizzo di Windows PowerShell, non è necessario comprendere tutte le caratteristiche degli oggetti, ma è consigliabile iniziare a familiarizzare con tale concetto. per riuscire a utilizzare al meglio gli oggetti sfruttando i vantaggi offerti.


Pipeline di oggetti

Uno dei vantaggi principali dell'utilizzo degli oggetti consiste nel fatto che è possibile inviare in modo più semplice i comandi attraverso la pipeline, ovvero passare l'output di un comando a un altro comando come input. In un ambiente di riga di comando tradizionale, sarebbe necessario modificare il testo per convertire l'output da un formato a un altro e per rimuovere titoli e intestazioni di colonna.

Windows PowerShell offre una nuova architettura basata sugli oggetti, anziché sul testo. Il cmdlet che riceve un oggetto può agire direttamente sui relativi metodi e proprietà senza alcuna conversione o modifica. Gli utenti possono fare riferimento alle proprietà e ai metodi dell'oggetto in base al nome, anziché calcolare la posizione dei dati nell'output.

Nell'esempio seguente il risultato di un comando IpConfig viene passato a un comando Findstr. Tramite l'operatore pipeline (|) il risultato del comando nella parte a sinistra dell'operatore viene inviato al comando nella parte alla sua destra. In Windows PowerShell™ non è necessario modificare le stringhe o calcolare offset dei dati.

PS> ipconfig | findstr "Address"
        IP Address. . . . . . . . . . . . : 172.28.21.5
        IP Address. . . . . . . . . . . . : 172.30.160.225


Interazione e utilizzo di script

In questa sezione sono contenuti gli argomenti seguenti:

  • Ambiente interattivo

  • Supporto per l'utilizzo di script


Ambiente interattivo

Come altre shell, Windows PowerShell supporta un ambiente interattivo completo. Quando si digita un comando al prompt, il comando viene elaborato e l'output viene visualizzato nella finestra della shell. È possibile inviare l'output di un comando a un file o a una stampante o utilizzare l'operatore pipeline (|) per inviarlo a un altro comando.


Supporto per l'utilizzo di script

Se si eseguono sequenze di comandi o comandi specifici in modo ripetuto oppure se si sviluppa una serie di comandi per l'esecuzione di un'attività complessa, è possibile salvare i comandi in un file ed eseguire il file di comando, anziché digitare i comandi al prompt. Un file contenente comandi è denominato script.

Oltre all'interfaccia interattiva, Windows PowerShell offre supporto completo per l'utilizzo di script. In Windows PowerShell i file script hanno estensione .ps1. Per eseguire uno script, digitarne il nome al prompt dei comandi. L'estensione di file è facoltativa.

Ad esempio:

c:\test\testscript.ps1

-oppure-

c:\test\testscript

È necessario specificare il percorso completo del file script, anche se lo script si trova nella directory corrente. Per indicare la directory corrente, digitare il relativo nome o utilizzare un punto (.) per rappresentarla. Ad esempio:

.\testscript.ps1

Sebbene gli script siano estremamente utili, o addirittura essenziali, in alcune aziende possono essere utilizzati per diffondere malware. Di conseguenza, i criteri di sicurezza di Windows PowerShell, denominati criteri di esecuzione, consentono di determinare se gli script possono essere eseguiti e se devono includere una firma digitale. Per eliminare un rischio palese, nessuno dei criteri di esecuzione di Windows PowerShell consente di eseguire uno script facendo doppio clic sulla relativa icona. Per ulteriori informazioni, digitare:

get-help about_execution_policies

Windows PowerShell include inoltre un linguaggio di scripting molto ricco che consente di creare script da molto semplici a molto complessi. Sono supportati i costrutti del linguaggio per cicli, condizioni, controllo di flusso e assegnazione di variabili.

Vedere anche

  • about_Scripts
  • about_Execution_Policies


Avvio di Windows PowerShell

È possibile avviare Windows PowerShell dal menu Start, dalla barra delle applicazioni, dalla casella Cerca o Esegui, da una finestra del prompt dei comandi o da un'altra finestra di Windows PowerShell.

È inoltre possibile avviare più istanze di Windows PowerShell (o Windows PowerShell ISE) in un solo computer.

Modalità di avvio di Windows PowerShell

In Windows Vista, Windows Server 2008 e versioni successive di Windows, per avviare Windows PowerShell dal menu Start, fare clic sul pulsante Start, scegliere Tutti i programmi, Accessori, fare clic sulla cartella Windows PowerShell, quindi sull'elemento Windows PowerShell.

In Windows XP e Windows Server 2003, per avviare Windows PowerShell dal menu Start, fare clic sul pulsante Start, scegliere Programmi, Accessori, fare clic sulla cartella Windows PowerShell, quindi sull'elemento Windows PowerShell.

Modalità di avvio di Windows PowerShell ISE

Windows PowerShell Integrated Scripting Environment (ISE) è una nuova applicazione host che consente di eseguire comandi, nonché di scrivere script ed eseguirne il test e il debug in un ambiente di semplice utilizzo con sintassi a colori.

In Windows Vista, Windows Server 2008 e versioni successive di Windows, per avviare Windows PowerShell ISE dal menu Start, fare clic sul pulsante Start, scegliere Tutti i programmi, Accessori, fare clic sulla cartella Windows PowerShell, quindi sull'elemento Windows PowerShell ISE.

In Windows XP e Windows Server 2003, per avviare Windows PowerShell dal menu Start, fare clic sul pulsante Start, scegliere Programmi, Accessori, fare clic sulla cartella Windows PowerShell, quindi sull'elemento Windows PowerShell ISE.

Modalità di avvio di Windows PowerShell con tutti i moduli

In Windows 7 e Windows Server 2008 R2, è possibile utilizzare un'attività per avviare una finestra di Windows PowerShell contenente tutti i comandi disponibili da moduli e snap-in facoltativi, inclusi quelli che non vengono aggiunti per impostazione predefinita. Per la finestra sono disponibili i privilegi dell'account amministratore.

Per ulteriori informazioni sui moduli e sugli snap-in di Windows PowerShell, vedere Utilizzo di moduli e snap-in, Modalità di importazione di un modulo e about_Modules.

Per avviare Windows PowerShell con tutti i moduli, utilizzare una delle procedure seguenti.

  • Nella barra delle applicazioni fare clic con il pulsante destro del mouse sull'icona di Windows PowerShell, quindi fare clic su Importa tutti i moduli.

Fare clic sul pulsante Start, quindi scegliere Strumenti di amministrazione e Moduli di Windows PowerShell.

Nota

Per impostazione predefinita, in Windows Server 2008 R2 l'icona di Windows PowerShell è bloccata sulla barra delle applicazioni. È tuttavia necessario avviare Windows PowerShell una volta per rendere disponibile l'attività Importa tutti i moduli.

In tutte le versioni supportate di Windows è possibile aggiungere tutti i moduli disponibili a una sessione di Windows PowerShell. Avviare Windows PowerShell e al relativo prompt digitare:

get-module -listAvailable | import-module

Modalità di avvio di Windows PowerShell con privilegi di amministratore

In Windows 7 e Windows Server 2008 R2, è possibile utilizzare un'attività per avviare una finestra di Windows PowerShell con tutti i privilegi dell'account amministratore. In genere, questo non è necessario, ma alcuni comandi richiedono questi privilegi.

Nella barra delle applicazioni di Windows fare clic con il pulsante destro del mouse sull'icona di Windows PowerShell, quindi scegliere Esegui Windows PowerShell come amministratore.

Per avviare Windows PowerShell (o Windows PowerShell ISE) con i privilegi di amministratore in tutte le versioni supportate di Windows, utilizzare la procedura seguente.

  1. Fare clic sul pulsante Start, scegliere Programmi, Accessori, quindi fare clic sulla cartella Windows PowerShell.

  2. Fare clic con il pulsante destro del mouse sull'elemento Windows PowerShell (o Windows PowerShell ISE), quindi scegliere Esegui come amministratore.

Modalità di avvio di Windows PowerShell con altre opzioni

In Windows PowerShell sono disponibili numerose opzioni che consentono di avviare una sessione di Windows PowerShell personalizzata, tra cui le opzioni che utilizzano un determinato file della console, vengono eseguite con criteri di esecuzione particolari, escludono il profilo di Windows PowerShell, eseguono un particolare comando o script o utilizzano un apartment a thread singolo (STA).

Per visualizzare queste opzioni, in una finestra del prompt dei comandi (Cmd.exe) o in una finestra di Windows PowerShell esistente digitare:

powershell -?

Per avviare Windows PowerShell con una determinata opzione, utilizzare il parametro per l'opzione. Ad esempio, per avviare Windows PowerShell con i criteri di esecuzione RemoteSigned digitare:

powershell -executionPolicy RemoteSigned


Utilizzo di Windows PowerShell

In questa sezione vengono illustrate le nozioni di base per l'utilizzo di Windows PowerShell. Per prima cosa, viene illustrato il cmdlet Get-Help (pronuncia "command-let"), che consente di visualizzare informazioni sui cmdlet e sugli argomenti concettuali di Windows PowerShell. Vengono quindi descritti alcuni cmdlet di base e viene illustrato come utilizzare i parametri dei cmdlet e come formattare il loro output per ottenere i dati necessari per una visualizzazione efficace. Infine, viene illustrato come utilizzare gli alias in Windows PowerShell, come eseguire applicazioni Windows tradizionali in Windows PowerShell e come gestire gli errori.

In questa sezione sono contenuti gli argomenti seguenti:

  • Visualizzazione della Guida: Get-Help

  • Utilizzo di cmdlet

  • Informazioni sugli oggetti: Get-Member

  • Formattazione dell'output dei comandi

  • Utilizzo di alias

  • Utilizzo di applicazioni Windows

  • Gestione degli errori


Visualizzazione della Guida: Get-Help

Il cmdlet Get-Help è uno strumento utile per ottenere informazioni su Windows PowerShell. Leggendo le descrizioni dei cmdlet, apprendendo informazioni sui concetti ed esplorando gli argomenti sul linguaggio, è possibile comprendere le modalità di utilizzo di Windows PowerShell.

Il primo argomento interessante è costituito dalla Guida stessa. Per visualizzare le informazioni relative alla Guida di Windows PowerShell, digitare:

get-help

Potrebbe quindi essere interessante apprendere informazioni su alcuni cmdlet di base, quali Get-Help, Get-Command, Get-Process, Get-Service e Get-Eventlog.

Per utilizzare la visualizzazione più semplice della Guida di un cmdlet, digitare "get-help" seguito dal nome del cmdlet. Ad esempio, per visualizzare la Guida per il cmdlet Get-Command, digitare:

get-help get-command

Se la Guida del cmdlet non è formattata correttamente, ovvero se inizia con tag XMLNS, tramite i criteri di esecuzione di Windows PowerShell impostati nel sistema potrebbe essere stato impedito il caricamento del file di configurazione per la formattazione della Guida del cmdlet. Per ulteriori informazioni sui criteri di esecuzione, digitare:

get-help about_execution_policies

Per visualizzare informazioni dettagliate su un cmdlet, inclusi esempi e descrizioni dei parametri, utilizzare il parametro Detailed di Get-Help. Ad esempio, per ottenere informazioni dettagliate sul cmdlet Get-Command, digitare:

get-help get-command -detailed

Per visualizzare tutte le informazioni della Guida disponibili per un cmdlet, incluse le informazioni tecniche sul cmdlet e sui relativi parametri, utilizzare il parametro Full. Ad esempio, per visualizzare la Guida completa per il cmdlet Get-Command, digitare:

get-help get-command -full

È inoltre possibile visualizzare parti specifiche del file della Guida. Per visualizzare solo gli esempi, utilizzare il parametro Examples. Ad esempio, per visualizzare gli esempio per il cmdlet Get-Command, digitare:

get-help get-command -examples

Per visualizzare solo le descrizioni dettagliate dei parametri, utilizzare il parametro Parameter di Get-Help. È possibile specificare il nome di un parametro o utilizzare il carattere jolly (*) per specificare tutti i parametri. Per visualizzare, ad esempio, una descrizione del parametro TotalCount di Get-Command, digitare:

get-help get-command -parameter totalcount

Per visualizzare tutti i parametri del cmdlet Get-Command, digitare:

get-help get-command -parameter *

La Guida di Windows PowerShell è anche disponibile online nella Microsoft Technet Library nell'argomento Windows PowerShell. La versione online della Guida è spesso di più facile lettura e viene aggiornata con maggior frequenza rispetto alla Guida visualizzata al prompt dei comandi.

In Windows PowerShell v.2, è possibile utilizzare il parametro Online del cmdlet Get-Help per visualizzare la versione online di un argomento della Guida del cmdlet. Per impostazione predefinita, il parametro Online consente di collegarsi agli argomenti della Guida di TechNet Library.

Ad esempio, per aprire la versione online dell'argomento della Guida relativo al cmdlet Get-Process, digitare.

get-help get-process -online

È inoltre possibile utilizzare una delle funzioni di Windows PowerShell che consentono di chiamare Get-Help. La funzione Help consente di visualizzare una schermata della Guida per volta. La funzione Man consente di visualizzare le informazioni della Guida con un aspetto simile a quello delle pagine Man in UNIX. Per utilizzare le funzioni Help e Man per la visualizzazione della Guida del cmdlet Get-Command, digitare:

man get-command

oppure

help get-command

Quando si richiede un argomento della Guida specifico, tramite Get-Help viene visualizzato il contenuto dell'argomento, ma quando si utilizzano caratteri jolly per richiedere più di un argomento, tramite Get-Help viene visualizzato un elenco di argomenti. Per visualizzare, ad esempio, un elenco di argomenti della Guida per i cmdlet "Get", digitare:

get-help get-*

Gli argomenti della Guida in cui vengono spiegati i concetti di Windows PowerShell iniziano con "about_". Per visualizzare la Guida relativa a un concetto di Windows PowerShell, digitare "get-help" seguito dal nome del concetto. Il nome del concetto deve essere immesso in inglese, anche nelle versioni di Windows PowerShell non in lingua inglese.

Ad esempio, per visualizzare la Guida relativa ai caratteri jolly, digitare:

get-help about_wildcards

Per visualizzare un elenco di tutti gli argomenti concettuali della Guida di Windows PowerShell, digitare:

get-help about_*

Leggendo gli argomenti della Guida e provando a utilizzare gli esempi, sarà possibile imparare a utilizzare Windows PowerShell.

Vedere anche

  • Get-Help
  • Get-Command


Utilizzo di cmdlet

Un cmdlet è un semplice strumento da riga di comando a funzione singola incorporato nella shell. I cmdlet vengono utilizzati come i tradizionali comandi e utilità. Digitare innanzitutto il nome del cmdlet al prompt dei comandi di Windows PowerShell. Nei comandi di Windows PowerShell non viene fatta distinzione tra maiuscole e minuscole, pertanto è possibile utilizzare entrambe.

Provare, ad esempio, a utilizzare il cmdlet Get-Date:

C:\PS> get-date
Thursday, November 10, 2005 4:43:50 PM

Per elencare i cmdlet inclusi nella sessione, utilizzare il cmdlet Get-Command senza alcun parametro:

PS> get-command

CommandType     Name                            Definition
-----------     ----                            ----------
Cmdlet          Add-Content                     Add-Content [-Path] <String[...
Cmdlet          Add-History                     Add-History [[-InputObject] ...
Cmdlet          Add-Member                      Add-Member [-MemberType] <PS...
...
…

La visualizzazione predefinita di Get-Command presenta tre colonne: CommandType, Name e Definition. Quando vengono elencati i cmdlet, nella colonna Definition viene visualizzata la sintassi del cmdlet. I puntini di sospensione (…) nella sintassi indicano che i dati sono troncati.

Il comando Get-Command consente inoltre di ottenere comandi ed elementi dei comandi diversi dai cmdlet, inclusi alias, ovvero nomi alternativi dei comandi, funzioni e file eseguibili disponibili in Windows PowerShell.

Tramite il comando seguente vengono elencati i file eseguibili disponibili in Windows PowerShell utilizzando il parametro Name di Get-Command.

PS> get-command -name *.exe

CommandType Name                   Definition
----------- ----                   ----------
Application 000StTHK.exe           C:\WINDOWS\system32\000StTHK.exe
Application 00THotkey.exe          C:\WINDOWS\system32\00THotkey.exe
Application accwiz.exe             C:\WINDOWS\system32\accwiz.exe
...

Quando si elencano i file eseguibili, nella colonna Definition viene indicato il percorso completo del file.

Provare alcuni degli altri cmdlet, come Get-Process, Get-Service, Get-EventLog e Get-Alias.

Dopo aver acquisito sufficiente familiarità con i cmdlet "Get-" semplici, provare Get-WmiObject. Questo cmdlet consente di visualizzare e modificare i componenti di computer remoti. Tramite il comando seguente, ad esempio, è possibile ottenere informazioni sul BIOS nel computer remoto Server01:

get-wmiobject win32_bios -computername server01

Per informazioni su un cmdlet, digitare:

get-help <cmdlet-name> -detailed

Ad esempio:

get-help get-alias -detailed


Utilizzo delle funzioni

Oltre ad eseguire i cmdlet, è anche possibile eseguire funzioni in Windows PowerShell. Windows PowerShell viene fornito con funzioni predefinite, ma è possibile aggiungere funzioni ottenute da altri utenti e scriverne di nuove.

Informazioni sulle funzioni

In Windows PowerShell le funzioni sono un tipo di comando. Per eseguire una funzione digitarne il nome, proprio come se si trattasse di un cmdlet. Le funzioni dispongono di parametri proprio come i cmdlet. Analogamente ai cmdlet, le funzioni possono accettare oggetti .NET come input e restituire oggetti .NET come output. Di fatto, le funzioni consentono di eseguire tutte le attività che consentono di eseguire i cmdlet.

Le funzioni hanno il vantaggio di poter essere scritte con molta facilità. A differenza dei cmdlet, che vengono scritti in C#, le funzioni sono solo un raggruppamento denominato di comandi ed espressioni di Windows PowerShell. Se si è in grado di digitare comandi in Windows PowerShell, è possibile scrivere funzioni.

Ricerca di funzioni

Le funzioni sono comandi, pertanto per trovarle, è possibile utilizzare il cmdlet Get-Command.

Ad esempio, per trovare tutte le funzioni nella sessione, digitare:

get-command -CommandType function

Windows PowerShell viene inoltre fornito con un'unità Function: che contiene tutte le funzioni nella sessione. Per spostarsi all'interno dell'unità Function:, utilizzare gli stessi metodi che si utilizzano per spostarsi all'interno delle unità del file system.

Per accedere all'unità Function:, digitare:

cd function:

Per visualizzare le funzioni nell'unità Function:, digitare:

dir function:

Esecuzione di funzioni

Per eseguire una funzione, è sufficiente digitarne il nome. Ad esempio, per eseguire la funzione Clear-Host, digitare:

clear-host

Nella console di Windows PowerShell, la funzione Clear-Host elimina tutto il testo nella finestra della console. In altri programmi host potrebbe avere un comportamento diverso o non produrre alcun effetto.

Per utilizzare i parametri di una funzione, digitare il nome del parametro preceduto da un trattino e seguito da un valore, come per i parametri di un cmdlet.

Ad esempio, la funzione Help, che consente di visualizzare gli argomenti della Guida una pagina per volta, dispone degli stessi parametri del cmdlet Get-Help. Per utilizzare la funzione Help per ottenere solo gli esempi nell'argomento della Guida per il cmdlet Get-Service, digitare:

help -name get-service -examples

Visualizzazione della Guida relativa alle funzioni

Per le funzioni possono essere disponibili argomenti della Guida. Per trovare l'argomento della Guida per una funzione, utilizzare il cmdlet Get-Help. Si tratta dello stesso cmdlet utilizzato per visualizzare la Guida relativa ai cmdlet.

Ad esempio, per visualizzare la Guida per la funzione Disable-PSRemoting, digitare:

get-help Disable-PSRemoting

È possibile utilizzare tutti i parametri del cmdlet Get-Help per visualizzare la Guida relativa alle funzioni. Ad esempio, per visualizzare unicamente gli esempi nell'argomento della Guida per la funzione Disable-PSRemoting, digitare:

get-help Disable-PSRemoting -example

Scrittura di funzioni

Una funzione è un gruppo denominato di comandi o espressioni. Per scrivere una funzione semplice, utilizzare il formato seguente.

function <name> { <commands> }

Digitare solo function, un nome per la funzione e racchiudere i comandi tra parentesi graffe ({ }).

Ad esempio, se si digita ripetutamente un determinato comando, ad esempio get-help get-member -examples, è possibile risparmiare tempo scrivendo una funzione che esegue il comando. La funzione seguente, denominata GMEX, esegue il comando.

function GMEX {get-help get-member -examples}

Dopo avere digitato la funzione al prompt di Windows PowerShell (o averla copiata e incollata da questo argomento) e dopo avere premuto INVIO, è possibile utilizzare la funzione nella sessione. Per eseguire la funzione, digitare GMEX.

Si tratta di una funzione semplice, ma con solo alcune righe in più, è possibile aggiungere parametri, rendere i parametri facoltativi o obbligatori, aggiungere messaggi utente e un argomento della Guida per la funzione. Una volta acquisita maggiore familiarità con Windows PowerShell, sarà possibile scrivere funzioni avanzate con tutte le funzionalità dei cmdlet.

Per ulteriori informazioni sulla scrittura di funzioni, vedere about_Functions, about_Comment_Based_Help e about_Functions_Advanced.

Salvataggio di funzioni

Quando si apre Windows PowerShell, si stabilisce una sessione di Windows PowerShell. La sessione rimane attiva finché non si chiude la finestra di Windows PowerShell (o si digita Exit per terminare la sessione). A meno che non vengano salvati in un file su disco o nel Registro di sistema, gli elementi creati nella sessione vengono eliminati al termine della sessione.

Per salvare le funzioni scritte affinché siano disponibili nelle sessioni di Windows PowerShell future, creare un profilo di Windows PowerShell e salvare in esso le funzioni.

Per ulteriori informazioni, vedere about_Profiles.

Vedere anche

    Using Cmdlet Parameters
  • about_Functions
  • about_Functions_Advanced
  • about_Command_Syntax
  • about_Comment_Based_Help
  • about_Profiles
  • Utilizzo di cmdlet


Utilizzo di moduli e snap-in

Windows PowerShell è un ambiente completamente estendibile. Chiunque può scrivere comandi per Windows PowerShell. È possibile utilizzare comandi scritti da altri e condividere i propri comandi con altri.

I comandi sono condivisi tramite moduli e snap-in. I moduli e gli snap-in di Windows PowerShell sono pacchetti che contengono comandi di Windows PowerShell e altri elementi. Tutti i cmdlet e i provider in Windows PowerShell vengono forniti in snap-in o in moduli e questi ultimi possono contenere anche funzioni, alias, variabili e unità.

Alcuni snap-in e moduli vengono aggiunti automaticamente a ogni sessione di Windows PowerShell. Quando si riceve uno snap-in o un modulo, è possibile installarlo e aggiungere i comandi alle sessioni di Windows PowerShell. Per condividere i comandi scritti, è possibile creare un modulo o uno snap-in di Windows PowerShell.

Informazioni sui moduli

Un modulo è un pacchetto di comandi e di altri elementi che è possibile utilizzare in Windows PowerShell. Dopo aver eseguito il programma di installazione o salvato il modulo su disco, è possibile importare il modulo nella sessione di Windows PowerShell e utilizzare i comandi e gli elementi. È inoltre possibile utilizzare i moduli per organizzare cmdlet, provider, funzioni, alias e altri comandi creati e condividerli con altri.

Per informazioni sull'installazione e sull'utilizzo dei moduli, vedere about_Modules. Per informazioni sulla creazione dei moduli, vedere l'argomento relativo alla scrittura di un modulo di Windows PowerShell in MSDN.

Informazioni sugli snap-in

Uno snap-in di Windows PowerShell (PSSnapin) è una DLL (.dll) che implementa cmdlet e provider. Quando si riceve uno snap-in, è necessario installarlo e successivamente sarà possibile aggiungere i cmdlet e i provider dello snap-in alla sessione di Windows PowerShell.

Per informazioni sull'installazione e sull'utilizzo degli snap-in, vedere about_PSSnapins. Per informazioni sulla scrittura degli snap-in, vedere l'argomento relativo alla scrittura di uno snap-in di Windows PowerShell in MSDN.


Modalità di importazione di un modulo

I moduli sono pacchetti di comandi, come cmdlet e funzioni, e di elementi, quali provider, variabili, alias e unità di Windows PowerShell. Se è stato scaricato, installato o ricevuto un modulo, attenersi alla procedura descritta in questo argomento per importarlo o aggiungerlo alla sessione di Windows PowerShell.

Prima di importare: installare il modulo

Se si riceve un modulo sotto forma di cartella contenente file, è necessario installarlo nel computer prima di poterlo importare in Windows PowerShell. In genere, l'installazione consiste semplicemente nel copiare il modulo in un particolare percorso su un'unità alla quale il computer può accedere.

La maggior parte dei moduli vengono installati automaticamente. In Windows PowerShell sono disponibili diversi moduli preinstallati. In Windows Server 2008 R2, tramite Add Features Wizard in Server Manager vengono automaticamente installati i moduli di funzionalità selezionati. Molti altri moduli vengono forniti in un programma di installazione che li installa nel computer.

Per informazioni sull'installazione dei moduli, vedere about_Modules.

Modalità di importazione di un modulo

Per utilizzare i comandi in un modulo, importare il modulo in una sessione di Windows PowerShell. Per importare i moduli da un percorso predefinito nella sessione corrente, utilizzare il formato di comando seguente.

import-module <module-name>

Ad esempio, con il comando seguente viene importato il modulo BitsTransfer nella sessione corrente.

import-module BitsTransfer

Per importare un modulo che non si trova in un percorso predefinito, utilizzare il percorso completo della cartella del modulo nel comando. Ad esempio, per aggiungere il modulo TestCmdlets che si trova nella directory C:\ps-test alla sessione, digitare:

import-module c:\ps-test\TestCmdlets

Per ulteriori informazioni sull'aggiunta di moduli alla sessione, vedere Import-Module.

Vedere anche

  • about_Modules
  • Import-Module


Informazioni sugli oggetti: Get-Member

Uno dei cmdlet più utili è Get-Member, che consente di visualizzare informazioni sull'oggetto .NET Framework restituito da un comando. Le informazioni includono il tipo, le proprietà e i metodi dell'oggetto.

Per sfruttare Get-Member, utilizzare un operatore pipeline (|) per inviare i risultati di un comando a Get-Member. Ad esempio:

get-service | get-member

Tramite questo comando è possibile sapere che Get-Service restituisce un gruppo di oggetti System.ServiceProcess.ServiceController, uno per ogni servizio presente nel computer.

   TypeName: System.ServiceProcess.ServiceController

Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
add_Disposed              Method        System.Void add_Disposed(EventHandler value)
Close                     Method        System.Void Close()
Continue                  Method        System.Void Continue()
CreateObjRef              Method        System.Runtime.Remoting.ObjRef CreateObjRef(Type requestedType)
Dispose                   Method        System.Void Dispose()
Equals                    Method        System.Boolean Equals(Object obj)
ExecuteCommand            Method        System.Void ExecuteCommand(Int32 command)
get_CanPauseAndContinue   Method        System.Boolean get_CanPauseAndContinue()
get_CanShutdown           Method        System.Boolean get_CanShutdown()
get_CanStop               Method        System.Boolean get_CanStop()
get_Container             Method        System.ComponentModel.IContainer get_Container()
get_DependentServices     Method        System.ServiceProcess.ServiceController[] get_DependentServices()
get_DisplayName           Method        System.String get_DisplayName()
get_MachineName           Method        System.String get_MachineName()
get_ServiceHandle         Method        System.Runtime.InteropServices.SafeHandle get_ServiceHandle()
get_ServiceName           Method        System.String get_ServiceName()
get_ServicesDependedOn    Method        System.ServiceProcess.ServiceController[] get_ServicesDependedOn()
get_ServiceType           Method        System.ServiceProcess.ServiceType get_ServiceType()
get_Site                  Method        System.ComponentModel.ISite get_Site()
get_Status                Method        System.ServiceProcess.ServiceControllerStatus get_Status()
GetHashCode               Method        System.Int32 GetHashCode()
GetLifetimeService        Method        System.Object GetLifetimeService()
GetType                   Method        System.Type GetType()
InitializeLifetimeService Method        System.Object InitializeLifetimeService()
Pause                     Method        System.Void Pause()
Refresh                   Method        System.Void Refresh()
remove_Disposed           Method        System.Void remove_Disposed(EventHandler value)
set_DisplayName           Method        System.Void set_DisplayName(String value)
set_MachineName           Method        System.Void set_MachineName(String value)
set_ServiceName           Method        System.Void set_ServiceName(String value)
set_Site                  Method        System.Void set_Site(ISite value)
Start                     Method        System.Void Start(), System.Void Start(String[] args)
Stop                      Method        System.Void Stop()
ToString                  Method        System.String ToString()
WaitForStatus             Method        System.Void WaitForStatus(ServiceControllerStatus desiredStatus), System.Voi...
CanPauseAndContinue       Property      System.Boolean CanPauseAndContinue {get;}
CanShutdown               Property      System.Boolean CanShutdown {get;}
CanStop                   Property      System.Boolean CanStop {get;}
Container                 Property      System.ComponentModel.IContainer Container {get;}
DependentServices         Property      System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName               Property      System.String DisplayName {get;set;}
MachineName               Property      System.String MachineName {get;set;}
ServiceHandle             Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName               Property      System.String ServiceName {get;set;}
ServicesDependedOn        Property      System.ServiceProcess.ServiceController[] ServicesDependedOn {get;}
ServiceType               Property      System.ServiceProcess.ServiceType ServiceType {get;}
Site                      Property      System.ComponentModel.ISite Site {get;set;}
Status                    Property      System.ServiceProcess.ServiceControllerStatus Status {get;}

Queste informazioni sembrano estremamente tecniche, ma in realtà sono molto pratiche.

  • Il valore typename, ad esempio "System.ServiceProcess.ServiceController", indica il tipo di oggetto .NET restituito dal cmdlet. Per informazioni sugli oggetti in questa classe .NET, incollare il nome di tipo, indicato da Typename, nella casella di ricerca di MSDN. L'argomento di MSDN associato include informazioni sulle proprietà e sui metodi degli oggetti di questa classe, inclusi gli oggetti restituiti da Get-Service.

  • I tipi Property rappresentano proprietà degli oggetti. Il valore di ogni proprietà offre informazioni sull'oggetto servizio. Gli oggetti ServiceController, ad esempio, dispongono di una proprietà CanPauseAndContinue. La descrizione della proprietà disponibile in MSDN illustra che la proprietà indica se è possibile sospendere e riprendere il servizio.

    Per visualizzare il valore di una proprietà di un servizio specifico, digitare:

    (get-service <service-name>).<property-name>
    Ad esempio:

    (get-service alerter).canpauseandcontinue
    Per visualizzare un elenco con il nome e il valore della proprietà CanPauseAndContinue del servizio Avvisi (Alerter), digitare:

    get-service alerter | format-list -property name, CanPauseAndContinue
    Per visualizzare un elenco dei valori di tutte le proprietà del servizio Avvisi (Alerter), digitare:

    get-service alerter | format-list -property *
    Per visualizzare una tabella con il nome e il valore della proprietà CanPauseAndContinue di tutti i servizi, digitare:

    get-service | format-table -property name, CanPauseAndContinue
  • I tipi Method rappresentano metodi dell'oggetto, ovvero azioni che è possibile eseguire sull'oggetto. Gli oggetti ServiceController dispongono, ad esempio, di un metodo Stop che consente di interrompere il servizio.

    Per chiamare un metodo di un oggetto servizio, utilizzare il formato seguente, includendo le parentesi.

    (get-service <service-name>).<method-name>()
For example,
(get-service schedule).stop()

Per ulteriori informazioni sul comando Get-Member, digitare:

get-help get-member -detailed


Formattazione dell'output dei comandi

Nelle shell tradizionali ogni strumento o comando determina il formato del proprio output. Alcuni strumenti consentono di personalizzare l'output e includono parametri speciali per il controllo della formattazione.

In Windows PowerShell gli unici cmdlet che consentono di formattare l'output sono i cmdlet Format:

  • Format-List

  • Format-Custom

  • Format-Table

  • Format-Wide

Nessuno degli altri cmdlet consente di formattare l'output. Di conseguenza, non è necessario apprendere parametri e routine di formattazione di più strumenti, ma è sufficiente apprendere l'utilizzo dei cmdlet Format e dei relativi parametri.

Quando si esegue un comando, tramite Windows PowerShell viene chiamato il formattatore predefinito, determinato dal tipo di dati da visualizzare. Il formattatore determina quali sono le proprietà dell'output da visualizzare e se tali proprietà vengono visualizzate in un elenco o in una tabella.

Quando si utilizza, ad esempio, il cmdlet Get-Service, la visualizzazione predefinita è costituita da una tabella con tre colonne, come illustrato di seguito:

C:\PS> get-service
Status   Name               DisplayName
------   ----               -----------
Running  AdtAgent           Event Forwarder
Stopped  Alerter            Alerter
Running  ALG                Application Layer Gateway Service

Per modificare il formato dell'output di qualsiasi cmdlet, utilizzare l'operatore pipeline (|) per inviare l'output del comando a un cmdlet Format.

Ad esempio, il comando seguente invia l'output di un comando Get-Service al cmdlet Format-List. Di conseguenza, i dati dei servizi vengono formattati sotto forma di un elenco per ogni servizio.

C:\PS> get-service | format-list
Name                : AdtAgent
DisplayName         : Event Forwarder
Status              : Running
DependentServices   : {}
ServicesDependedOn  : {eventlog, dnscache}
CanPauseAndContinue : False
CanShutdown         : True
CanStop             : True
ServiceType         : Win32OwnProcess

Name                : Alerter
DisplayName         : Alerter
Status              : Stopped
DependentServices   : {}
ServicesDependedOn  : {LanmanWorkstation}
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
ServiceType         : Win32ShareProcess

Name                : ALG
DisplayName         : Application Layer Gateway Service
Status              : Running
DependentServices   : {}

In questo formato i dati vengono visualizzati in un elenco anziché in una tabella e sono disponibili maggiori informazioni su ogni servizio. Anziché tre colonne di dati per ogni servizio, sono presenti nove righe di dati. Format-List non ha recuperato le informazioni sul servizio aggiuntive. I dati erano presenti anche negli oggetti recuperati da Get-Service, ma sono stati omessi da Format-Table, il formattatore predefinito, in quanto sullo schermo è possibile visualizzare un massimo di tre colonne.

Oltre a impostare la visualizzazione dei dati in un elenco o in una tabella, è anche possibile determinare quali proprietà dell'oggetto devono essere visualizzate. Nella visualizzazione predefinita di Get-Service, ad esempio, sono incluse solo le proprietà Status, Name e DisplayName dell'oggetto servizio.

Per visualizzare tutte le proprietà di un oggetto, utilizzare un operatore pipeline (|) per inviare l'output di un comando al cmdlet Get-Member. Per visualizzare, ad esempio, tutte le proprietà di un oggetto servizio, digitare:

get-service | get-member -membertype *property

   TypeName: System.ServiceProcess.ServiceController

Name                MemberType    Definition
----                ----------    ----------
Name                AliasProperty Name = ServiceName
CanPauseAndContinue Property      System.Boolean CanPauseAndContinue {get;}
CanShutdown         Property      System.Boolean CanShutdown {get;}
CanStop             Property      System.Boolean CanStop {get;}
Container           Property      System.ComponentModel.IContainer Container {get;}
DependentServices   Property      System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName         Property      System.String DisplayName {get;set;}
MachineName         Property      System.String MachineName {get;set;}
ServiceHandle       Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName         Property      System.String ServiceName {get;set;}
ServicesDependedOn  Property      System.ServiceProcess.ServiceController[] ServicesDependedOn {get;}
ServiceType         Property      System.ServiceProcess.ServiceType ServiceType {get;}
Site                Property      System.ComponentModel.ISite Site {get;set;}
Status              Property      System.ServiceProcess.ServiceControllerStatus Status {get;}

Poiché tutte queste proprietà sono incluse nell'oggetto recuperato da Get-Service per ogni servizio, è possibile visualizzarle tutte o solo alcune. Utilizzare il parametro Property dei cmdlet Format per selezionare le proprietà da visualizzare e l'ordine di visualizzazione. Nel comando seguente, ad esempio, viene utilizzato Format-Table per visualizzare solo le proprietà Name, ServiceType e CanShutDown del servizio.

get-service | format-table name, Servicetype, Canshutdown

Le operazioni descritte sono solo alcune tra le operazioni di base che è possibile utilizzare per definire le modalità di visualizzazione in Windows PowerShell. Per ulteriori informazioni, utilizzare i comandi seguenti per visualizzare la Guida per i cmdlet Format:

get-help format-list
get-help format-table
get-help format-wide
get-help format-custom


Utilizzo di alias

I nomi dei cmdlet possono essere scomodi da digitare. Per ridurre al minimo il numero di caratteri da digitare e semplificare l'utilizzo di Windows PowerShell da parte di utenti abituati ad altre shell, in Windows PowerShell è supportato il concetto di alias, ovvero un nome alternativo per un comando. È possibile creare un alias per il nome di un cmdlet, una funzione o un file eseguibile, quindi digitare l'alias al posto del nome del comando.

In Windows PowerShell sono inclusi numerosi alias predefiniti ed è inoltre possibile creare alias personalizzati. Gli alias creati sono validi solo nella sessione corrente. Per creare un alias permanente, aggiungerlo al profilo di Windows PowerShell.

Per trovare tutti gli alias disponibili nella sessione, digitare:

get-alias

Per trovare gli alias per un cmdlet, digitare:

get-alias | where-object {$_.definition -eq "<cmdlet-name>"}

Ad esempio:

get-alias | where-object {$_.definition -eq "set-location"}

Gli alias in Windows PowerShell sono supportati dal provider Alias, un assembly .NET Framework che consente di visualizzare gli alias in un'unità molto simile a quelle del file system in Windows. Alias: è il nome dell'unità relativa agli alias.

Per passare all'unità Alias:, digitare:

set-location alias:

Per visualizzare gli alias, ovvero gli elementi figlio presenti nell'unità Alias:, digitare

get-childitem

Per visualizzare gli elementi figlio presenti nell'unità Alias: da un'altra unità, includere il nome dell'unità nel comando. Ad esempio:

get-childitem alias:

Creazione di un alias

Per creare alias per cmdlet e comandi in Windows PowerShell, utilizzare il cmdlet Set-Alias. Ad esempio, per creare l'alias "gh" per il cmdlet Get-Help, digitare:

set-alias gh get-help

È inoltre possibile creare alias per i comandi, ad esempio quelli per l'avvio di un'applicazione. Per creare, ad esempio, l'alias "np" per Notepad.exe, per l'avvio di Blocco note, digitare:

set-alias np c:\windows\notepad.exe

Il percorso di Blocco note potrebbe essere diverso nel sistema in uso.

Eliminazione di un alias

Per eliminare un alias, utilizzare il cmdlet Remove-Item per eliminare l'alias dalla relativa unità. Per rimuovere, ad esempio, l'alias "ls", digitare:

remove-item alias:ls

Utilizzo di funzioni per la creazione di nomi alternativi

È possibile creare un alias per un cmdlet, una funzione o un file eseguibile, ma non è possibile crearlo per un comando con parametri. È possibile, tuttavia, creare una funzione che si comporti in modo analogo a un alias.

Per utilizzare, ad esempio, Blocco note per aprire il file Boot.ini in un computer in cui è in esecuzione Windows XP, digitare:

notepad c:\boot.ini

Non è possibile creare un alias per "notepad c:\boot.ini", ma è possibile creare una funzione. Tramite il comando seguente viene creata la funzione bootini.

function bootini {notepad c:\boot.ini}

Questa funzione può essere utilizzata come un alias. Digitando bootini al prompt di Windows PowerShell, il file Boot.ini verrà visualizzato in Blocco note.


Utilizzo di applicazioni Windows

È possibile eseguire programmi della riga di comando di Windows e avviare applicazioni di grafica in Windows PowerShell. Se tramite il programma viene generato output di testo, è possibile acquisire il testo e utilizzarlo nella nuova shell, come si farebbe in qualsiasi shell.

Per eseguire un'applicazione, ad esempio Blocco note, in Windows PowerShell, è necessario che il relativo file eseguibile si trovi in una directory inclusa nella variabile di ambiente Path, in quanto il valore di questa variabile determina il percorso in cui viene eseguita la ricerca di applicazioni, utilità e script da parte di Windows PowerShell. I cmdlet non devono necessariamente essere nella directory inclusa in Path.

Per visualizzare i percorsi inclusi nella variabile di ambiente Path, digitare:

PS> $env:path

Per aggiungere directory alla variabile di ambiente Path, digitare:

PS> $env:path += ";newdirectory"

Per aggiungere, ad esempio, la directory del file WordPad.exe alla variabile Path, digitare:

PS> $env:path += ";C:\Program Files\Windows NT\Accessories"

Analogamente a quanto succede con il comando set, questa istruzione di assegnazione modifica il valore di Path solo per la sessione di Windows PowerShell corrente. Per rendere permanente la modifica, aggiungere l'istruzione di assegnazione al profilo di Windows PowerShell. Per informazioni dettagliate, vedere l'argomento "Profili di Windows PowerShell".


Gestione degli errori

Quando si utilizza Windows PowerShell, possono verificarsi errori occasionali, ad esempio quando si cerca di impostare un percorso su una directory che non esiste o di rimuovere un file senza disporre dei privilegi necessari.

In Windows PowerShell possono verificarsi due tipi di errori:

  • Errori fatali: errori che interrompono l'esecuzione del comando.

  • Errori non fatali: errori che non interrompono l'esecuzione del comando.

Se, ad esempio, si stanno rimuovendo tutti i file TMP da una directory, è preferibile che l'operazione non si interrompa se uno dei file non può essere rimosso. In genere, si desidera rimuovere tutti i file che possono essere rimossi, quindi analizzare in un secondo momento i file che non è stato possibile rimuovere.

L'errore che si verifica quando non è possibile rimuovere un file è denominato errore non fatale. Quando si verifica un errore di questo tipo, tramite Windows PowerShell l'elaborazione continua indipendentemente dall'errore, che viene quindi visualizzato insieme all'output.

Gli errori più gravi comportano l'interruzione dell'elaborazione del comando. Errori di questo tipo sono denominati errori fatali. comportano l'interruzione dell'elaborazione del comando. Se, ad esempio, si inviano dati non validi o se non si dispone delle autorizzazioni necessarie per eseguire il comando, in Windows PowerShell viene generato un errore fatale.


Spostamento in Windows PowerShell

Una delle funzionalità più efficaci di Windows PowerShell™ consiste nella possibilità di spostarsi tra numerosi archivi dati diversi utilizzando le stesse tecniche familiari che consentono di spostarsi nel file system.

Oltre alle note unità del file system, ad esempio C: e D:, Windows PowerShell include unità che rappresentano gli hive del Registro di sistema HKEY_LOCAL_MACHINE (HKLM:) e HKEY_CURRENT_USER (HKCU:), l'archivio certificati per la firma digitale presente nel computer (Cert:), le funzioni della sessione corrente (Function:) e altre unità. Queste sono denominate unità di Windows PowerShell.

Windows PowerShell™ viene fornito con numerose unità utili supportate da provider di Windows PowerShell. Per visualizzare un elenco di unità di Windows PowerShell, digitare:

get-psdrive

In questa sezione sono contenuti gli argomenti seguenti:

  • Spostamento nel file system

  • Spostamento nel Registro di sistema

  • Spostamento nell'archivio certificati

  • Spostamento in altre unità

  • Informazioni sulle unità di Windows PowerShell

  • Unità e provider


Spostamento nel file system

All'avvio di Windows PowerShell™, potrebbe venire spontaneo digitare i familiari comandi cd, dir o ls. Questa operazione è possibile, in quanto cd è un alias per il cmdlet Set-Location, che consente di passare dal percorso corrente a quello specificato, mentre dir e ls sono alias per il cmdlet Get-Childitem, che consente di ottenere gli elementi figlio in un percorso.

Per spostarsi all'interno dell'unità del file system, utilizzare i cmdlet Set-Location (cd) e Get-Childitem (dir, ls). In Windows PowerShell le unità sono indicate dal rispettivo nome seguito dai due punti (:), ad esempio C:, e gli elementi padre sono separati dagli elementi figlio tramite barre rovesciate (\) o barre (/), ad esempio C:\Windows\System32.

Sono disponibili alcune funzionalità che semplificano lo spostamento in Windows PowerShell:

  • Sono disponibili simboli per la directory corrente (.) e per i contenuti di una directory (*).

  • Sono disponibili variabili predefinite per la home directory, $home, e per la directory di installazione di Windows PowerShell, $pshome.

Come nelle altre shell, è possibile modificare i percorsi, creare, eliminare, spostare e copiare directory e file, nonché modificare le relative proprietà. È inoltre possibile utilizzare la funzionalità di completamento tramite tasto TAB per i nomi dei percorsi. Per informazioni dettagliate, consultare la Guida per i cmdlet Item (Get-Item, Get-Childitem, New-Item, Remove-Item, Set-Item, Move-Item e Copy-Item).


Spostamento nel Registro di sistema

È possibile spostarsi nel Registro di sistema di Windows utilizzando le stesse tecniche che consentono di spostarsi nell'unità del file system. In Windows PowerShell, l'hive HKEY_LOCAL_MACHINE esegue il mapping all'unità HKLM: di Windows PowerShell e l'hive HKEY_CURRENT_USER esegue il mapping all'unità HKCU: di Windows PowerShell.

Ad esempio:

PS C:\> cd hklm:
PS HKLM:\> dir
PS HKLM:\> dir
   Hive: Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE
SKC  VC Name                           Property
---  -- ----                           --------
  4   0 HARDWARE                       {}
  1   0 SAM                            {}
Get-ChildItem : Requested registry access is not allowed.
At line:1 char:3
+ dir <<<<
 39   2 SOFTWARE                       {flash, (default)}
  8   0 SYSTEM                         {}
PS HKLM:\> cd system\currentcontrolset\control
PS HKLM:\system\currentcontrolset\control> dir

Spostandosi tra i vari elementi, sarà possibile notare che l'output di dir (Get-Childitem) è diverso nelle unità del Registro di sistema rispetto al file system. Poiché il Registro di sistema include diverse unità, Windows PowerShell offre una visualizzazione diversa dei dati. In questo caso, è importante conoscere il numero di sottochiavi e voci presenti, in modo che l'output includa un conteggio delle sottochiavi (SKC) e un conteggio delle voci dei valori (VC), oltre ai nomi delle sottochiavi e delle voci.

PS> cd "CurrentControlSet\Control\Session Manager"
PS> dir
    Hive: Registry::HKEY_LOCAL_MACHINE\system\CurrentControlSet\Control\Session
Manager

SKC  VC ChildName                      Property
---  -- ---------                      --------
  0   1 AppCompatibility               {AppCompatCache}
 15   0 AppPatches                     {}
  0   7 DOS Devices                    {AUX, MAILSLOT, NUL, PIPE, PRN, UNC, f...

Lo spostamento non risulterà molto diverso fino a quando non si passa alle voci del Registro di sistema. Le voci di una chiave del Registro di sistema sono considerate proprietà della chiave in cui si trovano. È pertanto possibile utilizzare il cmdlet Get-ItemProperty per recuperarle.

Se, ad esempio, si desidera visualizzare il valore dei criteri di esecuzione di Windows PowerShell, è possibile utilizzare il cmdlet Get-ExecutionPolicy oppure spostarsi alla voce del Registro di sistema ExecutionPolicy il cui valore è archiviato in HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell.

PS C:\> cd hklm:
PS HKLM:\> cd software\microsoft\powershell\1\ShellIds\Microsoft.PowerShell
PS HKLM:\software\microsoft\powershell\1\ShellIds\Microsoft.PowerShell> dir
PS HKLM:\software\microsoft\powershell\1\ShellIds\Microsoft.PowerShell> get-itemproperty -path . -name executionpolicy

PSPath          : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\microsoft\powershell\1\ShellIds\Micro
                  soft.PowerShell
PSParentPath    : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\microsoft\powershell\1\ShellIds
PSChildName     : Microsoft.PowerShell
PSDrive         : HKLM
PSProvider      : Microsoft.PowerShell.Core\Registry
ExecutionPolicy : RemoteSigned


Spostamento nell'archivio certificati

È possibile spostarsi nell'archivio certificati per la firma digitale presente nel computer. Questo archivio è mappato all'unità Cert: di Windows PowerShell. Nell'esempio seguente viene illustrato come utilizzare Set-Location (cd) e Get-Childitem (dir, ls) per spostarsi nell'unità Cert:.

PS C:\> cd cert:
PS cert:\> dir
Location   : CurrentUser
StoreNames : {TrustedPeople, _NMSTR, Trust, REQUEST...}

Location   : LocalMachine
StoreNames : {_NMSTR, Trust, REQUEST, TrustedPeople...}

PS cert:\> cd currentuser
PS cert:\currentuser> dir

Name : TrustedPeople
Name : _NMSTR
Name : Trust
Name : REQUEST
Name : AuthRoot
Name : ACRS
Name : My
Name : addressbook
Name : Disallowed
Name : CA
Name : UserDS
Name : Root
Name : TrustedPublisher

PS cert:\currentuser> cd authroot
PS cert:\currentuser\authroot> dir
    Directory: Microsoft.PowerShell.Security\Certificate::currentuser\authroot
Thumbprint                                Subject
----------                                -------
F88015D3F98479E1DA553D24FD42BA3F43886AEF  O=C&W HKT SecureNet CA SGC Root, C=hk
F44095C238AC73FC4F77BF8F98DF70F8F091BC52  CN=Class 3TS Primary CA, O=Certplus, C=FR
EF2DACCBEABB682D32CE4ABD6CB90025236C07BC  O="Colegio Nacional de Correduria Publica Mexicana, A.C.", CN="Autoridad C...
...
PS cert:\currentuser\authroot> get-childitem F88015D3F98479E1DA553D24FD42BA3F43886AEF
    Directory: Microsoft.PowerShell.Security\Certificate::currentuser\authroot
Thumbprint                                Subject
----------                                -------
F88015D3F98479E1DA553D24FD42BA3F43886AEF  O=C&W HKT SecureNet CA SGC Root, C=hk

PS cert:\currentuser\authroot> get-childitem F88015D3F98479E1DA553D24FD42BA3F43886AEF | format-list -property *

PSPath             : Microsoft.PowerShell.Security\Certificate::currentuser\authroot\F88015D3F98479E1DA553D24FD42BA3F43
                     886AEF
PSParentPath       : Microsoft.PowerShell.Security\Certificate::currentuser\authroot
PSChildName        : F88015D3F98479E1DA553D24FD42BA3F43886AEF
PSDrive            : cert
PSProvider         : Microsoft.PowerShell.Security\Certificate
PSIsContainer      : False
Archived           : False
Extensions         : {}
FriendlyName       : CW HKT SecureNet CA SGC Root
IssuerName         : System.Security.Cryptography.X509Certificates.X500DistinguishedName
NotAfter           : 10/16/2009 2:59:00 AM
NotBefore          : 6/30/1999 3:00:00 AM
HasPrivateKey      : False
PrivateKey         :
PublicKey          : System.Security.Cryptography.X509Certificates.PublicKey
RawData            : {48, 130, 2, 235...}
SerialNumber       : 00
SubjectName        : System.Security.Cryptography.X509Certificates.X500DistinguishedName
SignatureAlgorithm : System.Security.Cryptography.Oid
Thumbprint         : F88015D3F98479E1DA553D24FD42BA3F43886AEF
Version            : 1
Handle             : 1577256
Issuer             : O=C&W HKT SecureNet CA SGC Root, C=hk
Subject            : O=C&W HKT SecureNet CA SGC Root, C=hk


Spostamento in altre unità

Oltre alle unità del file system, del Registro di sistema e dei certificati, in Windows PowerShell sono incluse numerose altre utili unità, tra cui l'unità Alias (Alias:), il provider di ambiente (Env:), l'unità Function (Function:) e l'unità Variable (Variable:). Per spostarsi in queste unità, è possibile utilizzare le stesse tecniche di base.


Informazioni sulle unità di Windows PowerShell

Le funzionalità di spostamento ampliate di Windows PowerShell sono basate sul concetto di unità di Windows Powershell.

Le unità di Windows PowerShell possono essere create in qualsiasi archivio dati disponibile in Windows PowerShell e possono avere qualsiasi nome valido, ad esempio C: o "Unità personale" seguito dai due punti (:). È possibile spostarsi nelle unità utilizzando gli stessi metodi utilizzati in un'unità del file system. Le unità di Windows PowerShell sono tuttavia visibili solo in Windows PowerShell. Non è possibile visualizzarle o accedervi in Esplora risorse o tramite Cmd.exe.

In Windows PowerShell sono disponibili diverse utili unità supportate dai provider di Windows PowerShell. Per visualizzare un elenco di unità di Windows PowerShell, digitare:

get-psdrive

È inoltre possibile creare unità di Windows PowerShell personalizzate utilizzando il cmdlet New-PsDrive. Per creare, ad esempio, una nuova unità denominata "DocPersonali:" la cui radice si trova nella directory My Documents, digitare:

new-psdrive -name MyDocs -psprovider FileSystem -root "$home\My Documents"

A questo punto è possibile utilizzare l'unità DocPersonali: come qualsiasi altra unità. Sarà possibile passare a questa unità, enumerare i relativi contenuti e modificarne le proprietà.


Unità e provider

Le unità di Windows PowerShell vengono rese disponibili per la sessione dai provider di Windows PowerShell, ovvero assembly .NET Framework che rendono disponibili i dati di archivi dati specializzati in modo che possano essere visualizzati e gestiti in modo semplice. Per informazioni sui provider di Windows PowerShell, digitare:

get-help about_providers

Per visualizzare un elenco di provider di Windows PowerShell, digitare:

get-psprovider

Per un elenco di file della Guida per i provider, digitare:

get-help -category provider

Per informazioni su un provider specifico, digitare:

get-help <provider-name>

Ad esempio,

get-help registry


Personalizzazione di Windows PowerShell

In questa sezione vengono descritti alcuni modi in cui è possibile personalizzare Windows PowerShell in base alle proprie esigenze.

In questa sezione sono contenuti gli argomenti seguenti:

  • Analisi del criterio di esecuzione

  • Profili di Windows PowerShell


Analisi del criterio di esecuzione

Gli script sono strumenti molto potenti, ma possono essere utilizzati impropriamente per eseguire attività dannose. Per proteggere i dati degli utenti e l'integrità del sistema operativo, in Windows PowerShell sono disponibili diverse funzionalità di sicurezza, tra cui il criterio di esecuzione.

Il criterio di esecuzione di Windows PowerShell determina se gli script possono essere eseguiti e, in caso affermativo, se devono essere firmati digitalmente. Questo criterio determina inoltre se è possibile caricare file di configurazione.

Il criterio di esecuzione predefinito, Restricted, è quello che garantisce il livello di sicurezza maggiore. Questa impostazione non consente l'esecuzione di script né il caricamento di file di configurazione, incluso il profilo di Windows PowerShell. È comunque possibile utilizzare Windows PowerShell in modo interattivo.

Se, tuttavia, si desidera eseguire script o caricare file di configurazione, è possibile modificare il criterio di esecuzione nel sistema. Per informazioni e istruzioni, digitare:

get-help about_execution_policies

Per individuare il criterio di esecuzione nel sistema, digitare:

get-executionpolicy

Per modificare il criterio di esecuzione nel sistema, utilizzare il cmdlet Set-ExecutionPolicy. Per modificare, ad esempio, il criterio di esecuzione impostandolo su RemoteSigned, digitare:

set-executionpolicy remotesigned

Il criterio di esecuzione di Windows PowerShell viene salvato nel Registro di sistema di Windows e mantenuto anche quando si disinstalla e si reinstalla Windows PowerShell.

Vedere anche

  • about_Execution_Policies
  • about_Signing
  • Get-ExecutionPolicy
  • Set-ExecutionPolicy


Profili di Windows PowerShell

Le aggiunte di alias, funzioni e variabili hanno effetto solo nella sessione corrente di Windows PowerShell. Se si esce dalla sessione o si chiude Windows PowerShell, le modifiche vengono perse.

Per mantenere le modifiche, è possibile creare un profilo di Windows PowerShell e aggiungere alias, funzioni e variabili ai profili. Il profilo viene caricato all'avvio di Windows PowerShell.

Per poter caricare un profilo, il criterio di esecuzione di Windows PowerShell deve consentire il caricamento di file di configurazione. In caso contrario, non sarà possibile caricare il profilo e in Windows PowerShell verrà visualizzato un messaggio di errore.

Informazioni sui profili

In Windows PowerShell possono essere presenti quattro diversi profili. I profili sono elencati nell'ordine in cui vengono caricati. I profili più specifici hanno la precedenza su quelli meno specifici, per quanto riguarda l'ambito di applicazione.

  • %windir%\system32\WindowsPowerShell\v1.0\profile.ps1

    Questo profilo si applica a tutti gli utenti e a tutte le shell.

  • %windir%\system32\WindowsPowerShell\v1.0\ Microsoft.PowerShell_profile.ps1

    Questo profilo si applica a tutti gli utenti, ma solo alla shell Microsoft.PowerShell.

  • %UserProfile%\Documenti\WindowsPowerShell\profile.ps1

    Questo profilo si applica solo all'utente corrente, ma riguarda tutte le shell.

  • %UserProfile%\Documenti\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

    Questo profilo si applica solo all'utente corrente e alla shell Microsoft.PowerShell.

Creazione di un profilo

Quando si creano o si importano variabili, alias o funzioni o si aggiunge uno snap-in di Windows PowerShell, questi elementi vengono aggiunti solo alla sessione corrente. Se si esce dalla sessione o si chiude la finestra, gli elementi andranno persi.

Per salvare variabili, alias, funzioni e comandi di utilizzo frequente e renderli disponibili in ogni sessione di Windows PowerShell, aggiungerli al profilo di Windows PowerShell.

È anche possibile creare, condividere e distribuire profili per garantire una visualizzazione coerente di Windows PowerShell in un'azienda di grandi dimensioni.

I profili di Windows PowerShell non vengono creati automaticamente. Per creare un profilo, creare un file di testo con il nome specificato nel percorso specificato. In genere, si utilizza il profilo specifico dell'utente e della shell, denominato profilo utente di Windows PowerShell. Questo profilo è archiviato nella variabile $profile.

Per visualizzare il percorso del profilo di Windows PowerShell, digitare:

$profile

Per stabilire se un profilo di Windows PowerShell è stato creato nel sistema, digitare:

test-path $profile

Se il profilo è presente la risposta sarà True, altrimenti False.

Per creare un file del profilo di Windows PowerShell, digitare:

new-item -path $profile -itemtype file -force

Per aprire il profilo in Blocco note, digitare:

notepad $profile

Per creare uno degli altri profili, ad esempio quello che si applica a tutti gli utenti e a tutte le shell, digitare:

new-item -path $env:windir\System32\WindowsPowerShell\v1.0\profile.ps1 -itemtype file -force

Il profilo è valido solo quando il file si trova esattamente nel percorso e presenta il nome file archiviato nella variabile $profile. Pertanto, se si crea un profilo in Blocco note e lo si salva o se si copia un profilo nel sistema, assicurarsi di salvare il file nel percorso e con il nome file specificato nella variabile $profile.

Se si crea un profilo in Blocco note, racchiudere il nome file tra virgolette per conservare l'estensione PS1. Ad esempio:

"Microsoft.PowerShell_profile.ps1"

Se non si utilizzano le virgolette, in Blocco note viene aggiunta l'estensione txt e il file non viene riconosciuto da Windows PowerShell.

Utilizzare il profilo per archiviare gli alias, le funzioni e le variabili utilizzati di frequente. Una funzione molto utile consente di aprire il profilo utente nell'editor di testo preferito. Tramite il comando seguente viene ad esempio creata una funzione denominata pro che consente di aprire il profilo utente in Blocco note.

function pro { notepad $profile }

Un profilo ben strutturato consente di semplificare l'utilizzo di Windows PowerShell e l'amministrazione del sistema.


Introduzione a Windows PowerShell ISE

Per avviare Windows PowerShell ISE

  1. In Windows Vista, Windows Server 2008 e versioni successive di Windows, dal menu Start, fare clic sul pulsante Start, scegliere Tutti i programmi, Accessori, fare clic sulla cartella Windows PowerShell, quindi sull'elemento Windows PowerShell ISE.

  2. In Windows XP e Windows Server 2003, per avviare Windows PowerShell dal menu Start, fare clic sul pulsante Start, scegliere Programmi, Accessori, fare clic sulla cartella Windows PowerShell, quindi sull'elemento Windows PowerShell ISE.

  3. In console di Windows PowerShell, Cmd.exe o nella casella Esegui, digitare "powershell_ise.exe".

Per visualizzare la Guida in Windows PowerShell ISE

  • Scegliere Guida di Windows PowerShell dal menu? di Windows PowerShell ISE oppure premere F1.

    Nel file visualizzato vengono descritti Windows PowerShell ISE e Windows PowerShell, comprese tutte le informazioni della Guida disponibili dal cmdlet Get-Help.


Manuale dell'utente di Windows PowerShell

Windows PowerShell è una shell della riga di comando e un ambiente di script che offre la potenza di .NET Framework agli utenti della riga di comando e ai creatori di script. Introduce vari concetti nuovi ed efficaci che consentono di ampliare la conoscenza acquisita e di estendere gli script creati negli ambienti del prompt dei comandi di Windows e di Windows Script Host.

Destinatari

Il Manuale dell'utente di Windows PowerShell si rivolge ai professionisti IT, ai programmatori e agli utenti esperti che non conoscono Windows PowerShell. Sebbene consigliabile, la conoscenza degli script e di WMI (Windows Management Instrumentation) non è un requisito indispensabile per la comprensione del presente documento.


Nozioni di base su Windows PowerShell

Le interfacce utente grafiche si basano su alcuni concetti essenziali noti alla maggior parte degli utenti. Per l'esecuzione delle diverse attività gli utenti si affidano a tali interfacce familiari. Nei sistemi operativi viene offerta agli utenti una rappresentazione grafica degli elementi, a cui di solito è possibile accedere tramite menu a discesa, che consentono di utilizzare funzionalità specifiche, e menu di contesto, che permettono di avvalersi delle funzionalità peculiari del contesto specifico.

Un'interfaccia della riga di comando, come Windows PowerShell, deve utilizzare un approccio diverso all'esposizione delle informazioni perché non dispone di menu o sistemi grafici per aiutare l'utente, il quale ha la necessità di conoscere i nomi dei comandi prima di poterli utilizzare. Sebbene sia possibile digitare comandi complessi equivalenti alle funzionalità di un ambiente con interfaccia grafica, è necessario familiarizzarsi con i comandi più frequentemente utilizzati e con i relativi parametri.

La maggior parte delle interfacce della riga di comando non ha modelli in grado di aiutare l'utente nell'apprendimento delle caratteristiche dell'interfaccia stessa. Dal momento che le interfacce della riga di comando sono state le prime shell dei sistemi operativi, i nomi di molti comandi e di molti parametri sono stati scelti in modo arbitrario. In genere sono stati scelti nomi concisi piuttosto che chiari. Sebbene in quasi tutte le interfacce della riga di comando siano integrati la Guida e gli standard di progettazione dei comandi, sono di solito stati ideati per essere compatibili con i primissimi comandi, pertanto l'intero insieme dei comandi è ancora modellato sulla base di decisioni prese decenni fa.

Windows PowerShell è stato progettato per sfruttare la conoscenza oramai consolidata degli utenti in fatto di interfacce della riga di comando. In questo capitolo verranno descritti alcuni degli strumenti e dei concetti di base utili per apprendere rapidamente l'utilizzo di Windows PowerShell. Sono inclusi:

  • Utilizzo di Get-Command

  • Utilizzo di Cmd.exe e dei comandi UNIX

  • Utilizzo di comandi esterni

  • Utilizzo di Tab-Completion

  • Utilizzo di Get-Help


Informazioni su Windows PowerShell

Windows PowerShell è stato ideato per migliorare l'ambiente della riga di comando e degli script eliminando annosi problemi e aggiungendo nuove funzionalità.

Facilità di individuazione

In Windows PowerShell è facile individuare le funzionalità. Ad esempio, per trovare l'elenco dei cmdlet che consentono di visualizzare e modificare i servizi di Windows, digitare:

get-command *-service

Dopo aver individuato il cmdlet che esegue una determinata attività, è possibile apprendere ulteriori informazioni sul relativo utilizzo mediante il cmdlet Get-Help. Ad esempio, per visualizzare la Guida sul cmdlet Get-Service, digitare:

get-help get-service

Per comprendere appieno l'output del cmdlet, reindirizzarne l'output al cmdlet Get-Member. Ad esempio, con il comando seguente, in cui viene utilizzato il cmdlet Get-Service, è possibile visualizzare informazioni sull'output dei membri dell'oggetto.

get-service | get-member

Coerenza

La gestione dei sistemi può essere un compito complesso. Tale complessità tuttavia può essere tenuta sotto controllo mediante strumenti dotati di un'interfaccia coerente. Purtroppo né gli strumenti della riga di comando né gli oggetti COM per gli script sono noti per la loro coerenza.

Uno dei maggiori pregi di Windows PowerShell è la coerenza. Ad esempio, se si apprende come utilizzare il cmdlet Sort-Object, è possibile utilizzare tale informazione per ordinare l'output di qualsiasi cmdlet. Non occorre apprendere le varie routine di ordinamento di ciascun cmdlet.

Inoltre, gli sviluppatori di cmdlet non devono progettare funzionalità di ordinamento per i propri cmdlet. Windows PowerShell offre loro un'infrastruttura che mette a disposizione funzionalità di base, costringendoli ad essere coerenti nei molti aspetti dell'interfaccia. L'infrastruttura elimina alcune delle scelte lasciate di solito all'arbitrio dello sviluppatore, ma in cambio rende molto più semplice lo sviluppo di cmdlet efficaci e facili da utilizzare.

Ambiente interattivo e ambiente di script

Windows PowerShell combina un ambiente interattivo e un ambiente di script consentendo di accedere agli strumenti della riga di comando e agli oggetti COM nonché di sfruttare la potenza della libreria di classi di .NET Framework (FCL, .NET Framework Class Library).

Tale ambiente costituisce un miglioramento del prompt dei comandi di Windows, che fornisce un ambiente interattivo con più strumenti della riga di comando. Costituisce inoltre un miglioramento degli script WSH (Windows Script Host), che consentono di utilizzare più strumenti della riga di comando e oggetti di automazione COM, ma che non offrono un ambiente interattivo.

Combinando l'accesso a tutte queste funzionalità, Windows PowerShell amplia le possibilità degli utenti interattivi e dei creatori di script e rende più gestibile l'amministrazione dei sistemi.

Orientamento agli oggetti

Sebbene l'interazione con Windows PowerShell avvenga tramite la digitazione di comandi di testo, la shell si basa sugli oggetti, non sul testo. L'output di un comando è costituito da un oggetto. È possibile inviare l'oggetto di output a un altro comando come output a propria volta. Windows PowerShell è dotato di un'interfaccia familiare a chi ha esperienza con altre shell, introducendo al contempo un nuovo ed efficace modello di riga di comando. Amplia il concetto di invio di dati tra comandi consentendo l'invio di oggetti anziché di testo.

Transizione facile agli script

Windows PowerShell facilita la transizione dalla digitazione di comandi in modo interattivo alla creazione ed esecuzione di script. È possibile digitare i comandi al prompt dei comandi di Windows PowerShell per individuare i comandi che eseguono una determinata attività. Quindi è possibile salvare tali comandi in una trascrizione o in una cronologia prima di copiarli in un file per utilizzarli come uno script.


Concetti fondamentali di Windows PowerShell

Nella struttura di Windows PowerShell sono integrati concetti derivati da ambienti diversi, molti dei quali già noti a chi ha esperienza con shell o ambienti di programmazione specifici. Tuttavia solo poche persone li conoscono tutti. L'esame di alcuni di tali concetti costituisce un'utile introduzione alla shell.

I comandi non sono basati su testo

Diversamente dai comandi delle tradizionali interfacce della riga di comando, i cmdlet di Windows PowerShell sono stati ideati per l'utilizzo di informazioni strutturate in forma di oggetti, ben più quindi di una semplice stringa di caratteri visualizzata sullo schermo. L'output dei comandi include sempre informazioni aggiuntive che possono essere utilizzate in caso di necessità. Questo aspetto verrà trattato approfonditamente in questo documento.

Se in passato si è fatto uso di strumenti di elaborazione di testo per elaborare i dati della riga di comando, se ne potrà notare il diverso funzionamento se si cerca di utilizzarli in Windows PowerShell. Nella maggior parte dei casi non occorrono strumenti di elaborazione di testo per estrarre informazioni specifiche. È infatti possibile accedere a parti di dati direttamente mediante i comandi standard di Windows PowerShell per la modifica degli oggetti.

La famiglia di comandi è estendibile

Le interfacce come Cmd.exe non consentono di estendere direttamente il gruppo di comandi incorporato. È possibile creare strumenti della riga di comando esterni eseguibili in Cmd.exe, ma tali strumenti esterni non dispongono di servizi quali l'integrazione della Guida, né Cmd.exe sa automaticamente che si tratta di comandi validi.

I comandi binari nativi di Windows PowerShell, noti come cmdlets (pronunciato come in inglese "command-let"), possono essere incrementati con i cmdlet creati dall'utente che vengono aggiunti a Windows PowerShell mediante gli snap-in. Gli snap-in di Windows PowerShell vengono compilati allo stesso modo degli strumenti binari di qualsiasi altra interfaccia. Gli snap-in possono essere utilizzati per aggiungere provider di Windows PowerShell alla shell, nonché nuovi cmdlet.

Per la particolare natura dei comandi interni di Windows PowerShell, ad essi si fa riferimento con il termine cmdlet.

Nota

In Windows PowerShell è possibile eseguire comandi diversi dai cmdlet, che non verranno trattati dettagliatamente nel Manuale dell'utente di Windows PowerShell ma che è utile conoscere come categorie di tipi di comando. In Windows PowerShell sono supportati script analoghi a quelli delle shell UNIX e ai file batch di Cmd.exe, ma la loro estensione di file è ps1. In Windows PowerShell è inoltre possibile creare funzioni interne utilizzabili direttamente nell'interfaccia o negli script.

Windows PowerShell gestisce l'input e la visualizzazione della console

Quando si digita un comando, Windows PowerShell elabora sempre direttamente l'input della riga di comando e formatta l'output che compare sullo schermo. Questa significativa caratteristica consente di ridurre le operazioni necessarie per ciascun cmdlet e garantisce la possibilità di effettuare le operazioni sempre nello stesso modo a prescindere dal cmdlet utilizzato. Un esempio di come ciò semplifichi il lavoro per gli sviluppatori e per gli utenti degli strumenti è la Guida della riga di comando.

Gli strumenti tradizionali della riga di comando hanno propri schemi per la richiesta e la visualizzazione della Guida. Alcuni strumenti della riga di comando utilizzano /? per attivare la visualizzazione della Guida; altri utilizzano -?, /H o anche //. Alcuni visualizzano la Guida in una finestra con interfaccia grafica anziché nella console. Alcuni strumenti complessi, come i programmi di aggiornamento delle applicazioni, decomprimono i file interni prima di visualizzare la Guida. Se si utilizza il parametro errato, lo strumento potrebbe ignorare ciò che è stato digitato e avviare l'esecuzione automatica di un'attività.

Quando si immette un comando in Windows PowerShell, tutto ciò che viene digitato viene automaticamente analizzato e pre-elaborato da Windows PowerShell. Se si utilizza il parametro -? con un cmdlet di Windows PowerShell, tale parametro viene sempre interpretato come una richiesta di visualizzazione della Guida con informazioni correlate al comando stesso. Gli sviluppatori di cmdlet non devono analizzare il comando, ma solo fornire il testo della Guida.

È importante comprendere che le funzionalità della Guida di Windows PowerShell sono disponibili anche se in Windows PowerShell vengono eseguiti strumenti tradizionali della riga di comando. Windows PowerShell elabora i parametri e passa il risultato agli strumenti esterni.

Nota

Se in Windows PowerShell viene eseguita un'applicazione grafica, viene aperta la finestra di tale applicazione. L'intervento di Windows PowerShell si limita alla sola elaborazione dell'input della riga di comando o dell'output dell'applicazione restituito alla finestra della console, senza incidere sul funzionamento interno dell'applicazione stessa.

Windows PowerShell utilizza parzialmente la sintassi C#

In Windows PowerShell sono incluse funzionalità e parole chiave della sintassi molto simili a quelle utilizzate nel linguaggio di programmazione C# poiché si basa su .NET Framework. Qualora si sia interessati a C#, l'utilizzo di Windows PowerShell ne renderà più semplice l'apprendimento.

Se non si è un programmatore in C#, questa somiglianza non è importante. Se tuttavia si conosce già C#, queste analogie possono facilitare molto l'apprendimento del funzionamento di Windows PowerShell.


Apprendimento dei nomi dei comandi di Windows PowerShell

L'apprendimento dei nomi dei comandi e dei relativi parametri costituisce un significativo sforzo in termini di tempo nella maggior parte delle interfacce della riga di comando. Il problema è dovuto al fatto che esistono pochissimi modelli, per cui il solo modo per imparare è memorizzare ciascuno comando e parametro di cui si potrà avere normalmente bisogno.

Quando si utilizza un nuovo comando o parametro, non è in genere possibile servirsi delle nozioni già note, ma occorre individuare e imparare un nuovo nome. Osservando il modo in cui le interfacce, a partire da un ristretto set di strumenti, si estendono grazie ad aggiunte incrementali di funzionalità, è facile comprendere perché la struttura non è standard. In particolare, nel caso dei nomi dei comandi, ciò appare logico in quanto ogni comando è uno strumento distinto. Tuttavia esiste un modo migliore per gestire i nomi dei comandi.

Quasi tutti i comandi sono realizzati in modo che possano gestire gli elementi del sistema operativo o le applicazioni, ad esempio i servizi o i processi. I comandi hanno nomi diversi che possono o meno essere raggruppati. Nei sistemi Windows, ad esempio, è possibile utilizzare i comandi net start e net stop per avviare e arrestare un servizio. Esiste un altro strumento di controllo dei servizi più generalizzato per Windows che ha un nome del tutto diverso, ossia sc. Tale comando tuttavia non rientra nella struttura di denominazione dei comandi net per i servizi. Per la gestione dei processi in Windows sono disponibili il comando tasklist, che consente di elencare i processi, e il comando taskkill, che permette di arrestarli.

I comandi che richiedono i parametri presentano specifiche irregolari per tali parametri. Non è possibile utilizzare il comando net start per avviare un servizio in un computer remoto. Questa operazione può essere eseguita con il comando sc, ma occorre specificare il computer remoto anteponendo al nome una doppia barra rovesciata. Ad esempio, per avviare il servizio spooler in un computer remoto denominato DC01, digitare sc \\DC01 start spooler. Per elencare le attività in esecuzione su DC01, è necessario utilizzare il parametro /S (per "sistema") e fornire il nome DC01 senza barre rovesciate: tasklist /S DC01.

Sebbene esistano importanti differenze tecniche tra un servizio e un processo, entrambi sono esempi di elementi gestibili su un computer con un ciclo di vita ben definito. Un servizio o un processo può essere avviato o arrestato, oppure è possibile ottenere l'elenco di tutti i servizi o i processi attualmente in esecuzione. In altri termini, quantunque un servizio e un processo siano diversi, le azioni eseguibili su di essi sono spesso concettualmente identiche. Inoltre, anche le scelte di personalizzazione di un'azione mediante la specifica dei parametri possono essere concettualmente simili.

Windows PowerShell sfrutta queste somiglianze per ridurre il numero di nomi da conoscere per comprendere e utilizzare i cmdlet.

I cmdlet utilizzano nomi di tipo verbo-sostantivo per ridurre la quantità di comandi da memorizzare

In Windows PowerShell viene utilizzato il sistema di denominazione "verbo-sostantivo" in base al quale ogni nome di cmdlet è formato da un verbo standard seguito da un trattino e da un sostantivo specifico. I verbi utilizzati in Windows PowerShell non sempre sono analoghi ai verbi della lingua inglese, tuttavia esprimono particolari azioni in Windows PowerShell. I sostantivi sono molto simili a quelli di qualsiasi lingua: descrivono tipi specifici di oggetti importanti nell'amministrazione del sistema. Osservando alcuni esempi di verbi e sostantivi sarà facile dimostrare come questi nomi formati da due parti riducano l'impegno di apprendimento.

I sostantivi sono meno limitati ma devono sempre descrivere ciò su cui un comando agisce. In Windows PowerShell esistono comandi quali Get-Process, Stop-Process, Get-Service e Stop-Service.

Nel caso di due sostantivi e di due verbi, la coerenza non semplifica molto l'apprendimento. Se tuttavia si considera un insieme standard di 10 verbi e 10 sostantivi, è necessario imparare solo 20 parole che però possono essere utilizzate per formare 100 diversi nomi di comando.

Spesso è possibile riconoscere l'azione eseguita da un comando leggendone il nome, e in genere è evidente quale nome utilizzare per un nuovo comando. Ad esempio, il comando per l'arresto del computer potrebbe essere Stop-Computer. Il comando che elenca tutti i computer della rete potrebbe essere Get-Computer. Il comando che visualizza la data del sistema è Get-Date.

È possibile elencare tutti i comandi che includono un determinato verbo utilizzando il parametro -Verb con il comando Get-Command, che verrà illustrato in dettaglio nella sezione successiva. Ad esempio, per visualizzare tutti i cmdlet che utilizzano il verbo Get, digitare:

PS> Get-Command -Verb Get
CommandType     Name                            Definition
-----------     ----                            ----------
Cmdlet          Get-Acl                         Get-Acl [[-Path] <String[]>]...
Cmdlet          Get-Alias                       Get-Alias [[-Name] <String[]...
Cmdlet          Get-AuthenticodeSignature       Get-AuthenticodeSignature [-...
Cmdlet          Get-ChildItem                   Get-ChildItem [[-Path] <Stri...
...

Il parametro -Noun è persino più utile perché consente di visualizzare una famiglia di comandi che interessa lo stesso tipo di oggetto. Se ad esempio si desidera visualizzare i comandi disponibili per la gestione dei servizi, digitare il comando seguente:

PS> Get-Command -Noun Service
CommandType     Name                            Definition
-----------     ----                            ----------
Cmdlet          Get-Service                     Get-Service [[-Name] <String...
Cmdlet          New-Service                     New-Service [-Name] <String>...
Cmdlet          Restart-Service                 Restart-Service [-Name] <Str...
Cmdlet          Resume-Service                  Resume-Service [-Name] <Stri...
Cmdlet          Set-Service                     Set-Service [-Name] <String>...
Cmdlet          Start-Service                   Start-Service [-Name] <Strin...
Cmdlet          Stop-Service                    Stop-Service [-Name] <String...
Cmdlet          Suspend-Service                 Suspend-Service [-Name] <Str...
...

Un comando non è necessariamente un cmdlet, proprio perché ha lo schema di denominazione verbo-sostantivo. Un esempio di comando nativo di Windows PowerShell che non è un cmdlet ma ha un nome di tipo verbo-sostantivo è il comando per la cancellazione di una finestra della console: Clear-Host. Il comando Clear-Host è in realtà una funzione interna, come è possibile osservare eseguendo Get-Command su di esso:

PS> Get-Command -Name Clear-Host

CommandType     Name                            Definition
-----------     ----                            ----------
Function        Clear-Host                      $spaceType = [System.Managem...

I cmdlet utilizzano parametri standard

Come notato in precedenza, i comandi utilizzati nelle tradizionali interfacce della riga di comando di solito non presentano nomi di parametro coerenti. Talvolta i parametri non hanno affatto dei nomi. Se li hanno, sono spesso formati da un solo carattere o da parole abbreviate digitabili rapidamente ma non facilmente comprensibili per i nuovi utenti.

Diversamente dalla maggior parte delle altre interfacce tradizionali della riga di comando, in Windows PowerShell i parametri vengono elaborati direttamente, e tale accesso diretto ai parametri, insieme alle indicazioni dello sviluppatore, viene utilizzato per standardizzare i nomi dei parametri. Anche se ciò non assicura che tutti i cmdlet siano sempre conformi agli standard, tuttavia lo favorisce.

Nota

Ai nomi di parametro è sempre preposto il trattino '-' per consentire a Windows PowerShell di identificarli chiaramente come parametri. Nell'esempio Get-Command -Name Clear-Host, il nome del parametro è Name, ma viene digitato come -Name.

Di seguito vengono riportate alcune delle caratteristiche generali dei nomi di parametro standard e il relativo utilizzo.

Parametro della Guida (?)

Quando si specifica il parametro -? in un cmdlet, quest'ultimo non viene eseguito. Viene invece visualizzata la Guida relativa al cmdlet in questione.

Parametri comuni

In Windows PowerShell sono disponibili diversi parametri noti come parametri comuni. Poiché tali parametri sono controllati dal modulo di Windows PowerShell, ogni volta che vengono implementati da un cmdlet funzionano sempre allo stesso modo. I parametri comuni sono WhatIf, Confirm, Verbose, Debug, Warn, ErrorAction, ErrorVariable, OutVariable e OutBuffer.

Parametri consigliati

I cmdlet essenziali di Windows PowerShell utilizzano nomi standard per i parametri simili. Sebbene l'impiego dei nomi di parametro non sia obbligatorio, il loro utilizzo ne incoraggia la standardizzazione.

Ad esempio, è consigliabile assegnare a un parametro che fa riferimento al nome di un computer il nome ComputerName anziché Server, Host, System, Node o un'altra parola alternativa di uso comune. Tra i più importanti nomi di parametro consigliati vi sono Force, Exclude, Include, PassThru, Path e CaseSensitive.


Come ottenere informazioni riepilogative sui comandi

Il cmdlet Get-Command di Windows PowerShell consente di recuperare i nomi di tutti i comandi disponibili. Digitando Get-Command al prompt dei comandi di Windows PowerShell verrà visualizzato un output simile al seguente:

PS> Get-Command
CommandType     Name                            Definition
-----------     ----                            ----------
Cmdlet          Add-Content                     Add-Content [-Path] <String[...
Cmdlet          Add-History                     Add-History [[-InputObject] ...
Cmdlet          Add-Member                      Add-Member [-MemberType] <PS...
...

Questo output somiglia a quello della Guida di Cmd.exe: un riepilogo tabulare dei comandi interni. Nell'estratto dell'output del comando Get-Command mostrato sopra, ogni comando visualizzato è del tipo cmdlet. Un cmdlet è il tipo di comando intrinseco di Windows PowerShell che corrisponde all'incirca ai comandi dir e cd di Cmd.exe e ai comandi incorporati delle shell UNIX, ad esempio in BASH.

Nell'output del comando Get-Command tutte le definizioni terminano con i puntini di sospensione (...) per indicare l'impossibilità di visualizzare tutto il contenuto nello spazio disponibile. Quando in Windows PowerShell viene visualizzato l'output, quest'ultimo viene formattato come testo e sistemato in modo da adattare correttamente i dati alla finestra. Questo aspetto verrà trattato più avanti nella sezione dedicata ai formattatori.

Il cmdlet Get-Command ha il parametro Syntax, che consente di ottenere unicamente la sintassi di ogni cmdlet. Immettere il comando Get-Command -Syntax per visualizzare l'intero output:

PS> Get-Command -Syntax
Add-Content [-Path] <String[]> [-Value] <Object[]> [-PassThru] [-Filter <String>] [-Include <String[]>] [-Exclude <String[]>] [-Force] [Credential <PSCredential>] [-Verbose] [-Debug] [-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-OutVariable <String>] [-OutBuffer <Int32>] [-WhatIf] [-Confirm] [-Encoding <FileSystemCmdletProviderEncoding>]

Add-History [[-InputObject] <PSObject[]>] [-Passthru] [-Verbose] [-Debug] [-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-OutVariable <String>][-OutBuffer <Int32>]...

Visualizzazione dei tipi di comando disponibili

Mediante il comando Get-Command non è possibile visualizzare l'elenco di tutti comandi disponibili in Windows PowerShell. Tramite il comando Get-Command è possibile elencare solo i cmdlet presenti nella shell corrente. Molti altri tipi di comandi sono in effetti supportati in Windows PowerShell: anche gli alias, le funzioni e gli script sono comandi di Windows PowerShell, sebbene non vengano descritti in dettaglio nel Manuale dell'utente di Windows PowerShell. Anche i file esterni eseguibili o che hanno un gestore registrato per il tipo di file sono classificati come comandi.

È possibile ottenere l'elenco di tutti gli elementi richiamabili immettendo il comando seguente:

PS> Get-Command *

Poiché l'elenco contiene anche i file esterni inclusi nel percorso di ricerca, potrebbero essere visualizzati migliaia di elementi. È perciò maggiormente utile concentrarsi su un gruppo ridotto di comandi. Per individuare i comandi nativi di altri tipi, è possibile utilizzare il parametro CommandType del cmdlet Get-Command. Quantunque questi altri tipi di comandi non siano qui ancora stati presentati, è possibile visualizzarli se si conosce il nome del tipo di comando per una classe di comandi.

Nota

Sebbene non ancora trattato, l'asterisco (*) viene utilizzato come carattere jolly negli argomenti dei comandi di Windows PowerShell. L'asterisco significa che occorre individuare una corrispondenza con uno o più caratteri qualsiasi. È possibile digitare Get-Command a* per individuare tutti i comandi che iniziano con la lettera "a". Diversamente dai caratteri jolly utilizzati in Cmd.exe, i caratteri jolly in Windows PowerShell consentono di individuare corrispondenze anche con un punto.

Per visualizzare gli alias speciali di categorie di comandi (gli alias sono nomi alternativi per i nomi di comandi standard), immettere il comando seguente:

PS> Get-Command -CommandType Alias

Per visualizzare tutte le funzioni di Windows PowerShell, immettere il comando seguente:

PS> Get-Command -CommandType Function

Per visualizzare gli script esterni inclusi nel percorso di ricerca di Windows PowerShell, immettere il comando seguente:

PS> Get-Command -CommandType ExternalScript


Come ottenere informazioni dettagliate della Guida

In Windows PowerShell sono inclusi argomenti della Guida dettagliati in cui vengono illustrati i concetti e il linguaggio di Windows PowerShell. Sono inoltre disponibili argomenti della Guida per ogni cmdlet e provider, nonché per molte funzioni e script.

È possibile visualizzare questi argomenti della Guida al prompt dei comandi oppure accedere alle versioni più aggiornate nella Microsoft TechNet Library. In molti programmi che ospitano Windows PowerShell, ad esempio Windows PowerShell Integrated Scripting Environment, vengono fornite ulteriori funzionalità della Guida, ad esempio la Guida sensibile al contesto e il file della Guida compilato (con estensione chm).

Visualizzazione della Guida relativa ai cmdlet

Per visualizzare la Guida relativa ai cmdlet di Windows PowerShell, utilizzare il cmdlet Get-Help. Ad esempio, per visualizzare la Guida per il cmdlet Get-ChildItem, digitare:

get-help get-childitem

oppure

get-childitem -?

È anche possibile visualizzare la Guida sul cmdlet Get-Help. Ad esempio:

get-help get-help

Per ottenere un elenco di tutti gli argomenti della Guida relativi ai cmdlet nella sessione, digitare:

get-help -category cmdlet

Per visualizzare una pagina alla volta di ogni argomento della Guida, utilizzare la funzione help o il relativo alias man. Ad esempio, per visualizzare la Guida per il cmdlet Get-ChildItem, digitare:

man get-childitem

oppure

help get-childitem

Per visualizzare informazioni dettagliate su un cmdlet, una funzione o uno script, incluse le descrizioni dei relativi parametri ed esempi del loro utilizzo, utilizzare il parametro Detailed del cmdlet Get-Help. Ad esempio, per ottenere informazioni dettagliate sul cmdlet Get-ChildItem, digitare:

get-help get-childitem -detailed

Per visualizzare tutto il contenuto dell'argomento della Guida, utilizzare il parametro Full del cmdlet Get-Help. Ad esempio, per visualizzare tutto il contenuto dell'argomento della Guida per il cmdlet Get-ChildItem, digitare:

get-help get-childitem -full

Per ottenere informazioni della Guida dettagliate sui parametri di un cmdlet, utilizzare il parametro Parameter del cmdlet Get-Help. Ad esempio, per ottenere informazioni dettagliate su tutti i parametri del cmdlet Get-ChildItem, digitare:

get-help get-childitem -parameter *

Per visualizzare solo gli esempi presenti in un argomento della Guida, utilizzare il parametro Example di Get-Help. Ad esempio, per visualizzare solo gli esempi dell'argomento della Guida per il cmdlet Get-ChildItem, digitare:

get-help get-childitem -examples

Per informazioni sulla modalità di scrittura di argomenti della Guida relativi ai cmdlet, vedere l'argomento relativo alla modalità di scrittura della Guida del cmdlet in MSDN.

Visualizzazione della Guida concettuale

Mediante il cmdlet Get-Help vengono inoltre visualizzate informazioni sugli argomenti concettuali in Windows PowerShell, inclusi quelli relativi al linguaggio di Windows PowerShell. Gli argomenti concettuali iniziano con il prefisso "about_", ad esempio about_line_editing. Il nome dell'argomento concettuale deve essere immesso in inglese, anche nelle versioni di Windows PowerShell non in lingua inglese.

Per visualizzare l'elenco degli argomenti dedicati ai concetti, digitare:

get-help about_*

Per visualizzare un determinato argomento della Guida, digitarne il nome, ad esempio:

get-help about_command_syntax

I parametri di Get-Help, ad esempio Detailed, Parameter e Examples, non influiscono sulla visualizzazione degli argomenti della Guida concettuale.

Visualizzazione della Guida sui provider

Il cmdlet Get-Help visualizza informazioni sui provider di Windows PowerShell. Per visualizzare la Guida per un provider, digitare "Get-Help" seguito dal nome del provider. Ad esempio, per ottenere l'argomento della Guida relativo al provider Registry, digitare:

get-help registry

Per ottenere un elenco di tutti gli argomenti della Guida relativi ai provider nella sessione, digitare:

get-help -category provider

I parametri di Get-Help, ad esempio Detailed, Parameter e Examples, non influiscono sulla visualizzazione degli argomenti della Guida relativi ai provider.

Visualizzazione della Guida relativa a script e funzioni

Sono disponibili argomenti della Guida relativi a numerosi script e funzioni. Utilizzare il cmdlet Get-Help per visualizzare gli argomenti della Guida relativi a script e funzioni.

Per visualizzare la Guida relativa a una funzione, digitare "get-help" seguito dal nome della funzione. Ad esempio, per visualizzare la Guida per la funzione Disable-PSRemoting, digitare:

get-help disable-psremoting

Per visualizzare la Guida relativa a uno script, digitare il percorso completo del file di script. Se lo script si trova in un percorso elencato nella variabile di ambiente Path, è possibile omettere il percorso dal comando.

Ad esempio, se si dispone di uno script denominato "TestScript.ps1" nella directory C:\PS-Test, per visualizzare il relativo argomento della Guida, digitare:

get-help c:\ps-test\TestScript.ps1

I parametri progettati per la visualizzazione della Guida relativa ai cmdlet, ad esempio Detailed, Full, Examples e Parameter, possono anche essere utilizzati per la Guida di script e funzioni. Tuttavia, quando si visualizza la Guida per intero digitando "get-help *", la Guida relativa alle funzioni e agli script non viene visualizzata.

Per informazioni sulla modalità di scrittura degli argomenti della Guida per funzioni e script, vedere about_Functions, about_Scripts e about_Comment_Based_Help.

Visualizzazione della Guida online

Se si dispone di connessione Internet, uno dei modi migliori per visualizzare la Guida consiste nel visualizzare gli argomenti online. Poiché gli argomenti online possono essere aggiornati con facilità, è probabile che contengano le informazioni più recenti.

Per visualizzare la Guida online, provare il parametro Online del cmdlet Get-Help. Il parametro Online del cmdlet Get-Help funziona unicamente per la Guida relativa a cmdlet, funzioni e script. Non è possibile utilizzare il parametro Online con argomenti concettuali (About) o argomenti della Guida relativa ai provider. Poiché questa funzionalità è facoltativa, non funziona necessariamente per ogni argomento della Guida relativa a cmdlet, funzioni o script.

Tuttavia, tutti gli argomenti della Guida forniti con Windows PowerShell, inclusi quelli della Guida relativa ai provider e gli argomenti concettuali (About), sono disponibili online nella sezione Windows PowerShell della Microsoft TechNet Library.

Per utilizzare il parametro Online del cmdlet Get-Help, utilizzare il formato di comando seguente.

get-help <command-name> -online

Ad esempio, per visualizzare la versione online dell'argomento della Guida relativo al cmdlet Get-ChildItem, digitare.

get-help get-childitem -online

La versione online eventualmente disponibile dell'argomento della Guida verrà visualizzata nel browser predefinito.

Se per un argomento della Guida è disponibile una versione online, è possibile visualizzare l'indirizzo Internet (URL) relativo. L'indirizzo Internet viene visualizzato nella sezione Collegamenti correlati di un argomento della Guida.

Ad esempio, per visualizzare l'URL per la versione online del cmdlet Add-Computer, digitare:

get-help add-computer

Di seguito è riportata la prima riga della sezione Collegamenti correlati dell'argomento.

Online version: http://go.microsoft.com/fwlink/?LinkID=135194

Per informazioni su come fornire supporto online per gli argomenti della Guida, vedere about_Comment_Based_Help e l'articolo relativo alla modalità di scrittura della Guida relativa ai cmdlet (http://go.microsoft.com/fwlink/?LinkID=123415) in MSDN (Microsoft Developer Network) Library (le informazioni potrebbero essere in lingua inglese).

Vedere anche

  • about_Functions
  • about_Scripts
  • about_Comment_Based_Help
  • Get-Help


Utilizzo di nomi di comandi familiari

L'utilizzo degli aliasing in Windows PowerShell consente agli utenti di fare riferimento ai comandi mediante nomi alternativi. Gli alias permettono agli utenti con esperienza in altre shell di riutilizzare i nomi di comandi comuni già noti per eseguire operazioni simili in Windows PowerShell. Sebbene gli alias non vengano trattati in dettaglio, è comunque possibile utilizzarli già dall'inizio in Windows PowerShell.

Mediante gli alias il nome del comando digitato viene associato a un altro comando. Ad esempio, in Windows PowerShell è disponibile una funzione interna denominata Clear-Host che cancella il contenuto della finestra di output. Se si digita il comando cls o clear al prompt dei comandi, tale comando viene interpretato come un alias della funzione Clear-Host, che pertanto viene eseguita.

Questa funzionalità è utile per apprendere il funzionamento di Windows PowerShell. Innanzitutto, gli utenti di Cmd.exe e di UNIX conoscono un vasto repertorio di comandi che, sebbene gli equivalenti comandi di Windows PowerShell non sortiscano sempre gli stessi risultati, sono abbastanza simili nella forma da poter essere utilizzati senza dover prima memorizzare i nomi dei comandi di Windows PowerShell. In secondo luogo, la fonte maggiore di frustrazione nell'apprendimento di una nuova shell da parte di un utente che conosce già un'altra shell sono gli errori causati dall'abitudine consolidata. Se si è utilizzato per anni Cmd.exe e si ha una schermata piena di dati che si desidera cancellare, viene spontaneo digitare il comando cls e premere il tasto INVIO. Senza l'alias della funzione Clear-Host di Windows PowerShell, si otterrebbe semplicemente il messaggio di errore "'cls' is not recognized as a cmdlet, function, operable program, or script file." lasciando l'utente nella più totale incertezza su come cancellare l'output.

Di seguito viene riportato un breve elenco dei comandi di Cmd.exe e di UNIX più comuni che possono essere utilizzati in Windows PowerShell:

cat | dir | mount | rm
cd | echo | move | rmdir
chdir | erase | popd | sleep
clear | h | ps | sort
cls | history | pushd | tee
copy | kill | pwd | type
del | lp | r | write
diff | ls | ren |

Se capita di utilizzare uno di questi comandi per abitudine e si desidera conoscere il nome effettivo del comando nativo di Windows PowerShell, è possibile utilizzare il comando Get-Alias:

PS> Get-Alias cls

CommandType     Name                            Definition
-----------     ----                            ----------
Alias           cls                             Clear-Host

Per rendere gli esempi più comprensibili, nel Manuale dell'utente di Windows PowerShell non viene in genere fatto uso degli alias. Tuttavia, una conoscenza seppure minima degli alias già a questo stadio può essere utile se si utilizzano frammenti arbitrari di codice di Windows PowerShell provenienti da un'altra fonte o se si desidera definire propri alias. La parte restante di questa sezione sarà dedicata agli alias standard e a come definire propri alias.

Interpretazione degli alias standard

Diversamente dagli alias descritti sopra, che sono stati progettati per essere compatibili con le altre interfacce, gli alias incorporati in Windows PowerShell sono in genere stati ideati per essere brevi. Questi nomi più concisi possono essere digitati rapidamente ma sono impossibili da capire se non si sa a cosa facciano riferimento.

In Windows PowerShell si è cercato di raggiungere un compromesso tra la chiarezza e la brevità fornendo un insieme di alias standard basati su nomi a sintassi abbreviata per i verbi e i sostantivi più comuni. Ciò ha quindi permesso la creazione di un insieme essenziale di alias per i cmdlet più comuni che divengono comprensibili una volta noti i nomi a sintassi abbreviata. Ad esempio, negli alias standard il verbo Get è abbreviato con g, il verbo Set con s, il sostantivo Item con i, il sostantivo Location con l e il sostantivo Command con cm.

Di seguito viene riportato un breve esempio per illustrare quanto esposto sopra. L'alias standard per Get-Item nasce dalla combinazione di g per Get e di i per Item: gi. L'alias standard per Set-Item nasce dalla combinazione di s per Set e di i per Item: si. L'alias standard per Get-Location nasce dalla combinazione di g per Get e di l per Location: gl. L'alias standard per Set-Location nasce dalla combinazione di s per Set e di l per Location: sl. L'alias standard per Get-Command nasce dalla combinazione di g per Get e di cm per Command: gcm. Il cmdlet Set-Command non esiste, ma se esistesse, il relativo alias standard deriverebbe probabilmente dalla combinazione di s per Set e di cm per Command: scm. Inoltre, gli utenti esperti degli alias di Windows PowerShell che trovassero scm sarebbero in grado di capire che si riferisce a Set-Command.

Creazione di nuovi alias

È possibile creare propri alias mediante il cmdlet Set-Alias. Ad esempio, le istruzioni seguenti consentono di creare gli alias di cmdlet standard presentati in Interpretazione degli alias standard:

Set-Alias -Name gi -Value Get-Item
Set-Alias -Name si -Value Set-Item
Set-Alias -Name gl -Value Get-Location
Set-Alias -Name sl -Value Set-Location
Set-Alias -Name gcm -Value Get-Command

Internamente a Windows PowerShell vengono utilizzati comandi come questi durante l'avvio, ma tali alias non sono modificabili. Se si tenta di eseguire uno di questi comandi, viene visualizzato un errore in cui viene spiegato che l'alias non può essere modificato. Ad esempio:

PS> Set-Alias -Name gi -Value Get-Item

Set-Alias : Alias is not writeable because alias gi is read-only or constant and cannot be written to.

At line:1 char:10

+ Set-Alias <<<< -Name gi -Value Get-Item


Utilizzo dell'espansione mediante il tasto Tab

Nelle shell a riga di comando è spesso possibile completare automaticamente i nomi di file o comandi lunghi, così da velocizzare l'immissione dei comandi tramite i suggerimenti forniti. In Windows PowerShell è possibile immettere nomi di file e di cmdlet premendo il tasto Tab.

Nota

L'espansione mediante il tasto Tab è controllata dalla funzione interna TabExpansion. Poiché questa funzione può essere modificata o ignorata, vengono qui fornite informazioni sul funzionamento della configurazione predefinita di Windows PowerShell.

Per immettere automaticamente un nome di file o un percorso scegliendolo tra le opzioni disponibili, digitare parte del nome e premere il tasto Tab. Il nome verrà automaticamente espanso in base alla prima corrispondenza trovata. Premendo ripetutamente il tasto Tab è possibile scorrere tutte le opzioni disponibili.

L'espansione dei nomi dei cmdlet tramite il tasto Tab è leggermente diversa. Per utilizzare l'espansione mediante il tasto Tab per un nome di cmdlet, digitare l'intera prima parte del nome (verbo) e il trattino che segue. È possibile immettere una porzione maggiore del nome per individuare una corrispondenza parziale. Ad esempio, se si digita get-co, quindi si preme il tasto Tab, il nome viene automaticamente espanso nel cmdlet Get-Command (si noti che le lettere vengono visualizzate nella combinazione di maiuscole e minuscole del formato standard). Se si preme di nuovo il tasto Tab, il nome viene sostituito con l'unico altro nome di cmdlet corrispondente, ossia Get-Content.

L'espansione mediante il tasto Tab può essere utilizzata ripetutamente sulla stessa riga. Ad esempio, è possibile utilizzare l'espansione mediante il tasto Tab per il nome del cmdlet Get-Content immettendo:

PS> Get-Con<Tab>

Quando si preme il tasto Tab, il comando viene espanso nel modo seguente:

PS> Get-Content

Quindi è possibile specificare parzialmente il percorso del file di registro dell'installazione e utilizzare nuovamente il tasto Tab:

PS> Get-Content c:\windows\acts<Tab>

Quando si preme il tasto Tab, il comando viene espanso nel modo seguente:

PS> Get-Content C:\windows\actsetup.log
Nota

Una limitazione dell'espansione mediante il tasto Tab è rappresentata dal fatto che ogni pressione del tasto viene interpretata come un tentativo di completare una parola. Se si copiano e incollano esempi di comando nella console di Windows PowerShell, assicurarsi che tali esempi non contengano caratteri di tabulazione, altrimenti il risultato sarà imprevedibile e quasi certamente non corrisponderà a quanto desiderato.


Pipeline di oggetti

Le pipeline funzionano come una serie di segmenti connessi in sequenza. Gli elementi che si spostano lungo la pipeline passano attraverso ciascun segmento. Per creare una pipeline in Windows PowerShell, è sufficiente collegare i comandi l'uno all'altro con l'operatore "|". L'output di ciascun comando viene utilizzato come input per il comando successivo.

Le pipeline sono senza dubbio il concetto più prezioso utilizzato nelle interfacce della riga di comando. Se utilizzate correttamente, le pipeline non solo riducono lo sforzo necessario per l'immissione di comandi complessi, ma facilitano anche la visualizzazione del flusso di lavoro nei comandi. Un'utile caratteristica delle pipeline è che, dal momento che agiscono su ciascun elemento separatamente, non è necessario modificarle a seconda se nella pipeline siano presenti zero, uno o più elementi. Inoltre, ciascun comando di una pipeline (detto elemento) di solito passa il proprio output al comando successivo della pipeline, elemento dopo elemento. Ciò consente in genere di ridurre la richiesta di risorse per comandi complessi e di ottenere l'output immediatamente.

In questo capitolo verrà descritto come le pipeline di Windows PowerShell differiscono dalle pipeline delle shell più importanti e verranno poi mostrati alcuni strumenti di base che è possibile utilizzare per controllare l'output delle pipeline e per osservare il funzionamento delle pipeline.


Informazioni sulle pipeline di Windows PowerShell

Le pipeline possono essere utilizzate dovunque in Windows PowerShell. Sebbene sullo schermo venga visualizzato del testo, Windows PowerShell non trasferisce del testo da un comando all'altro, bensì degli oggetti.

La notazione utilizzata per le pipeline è simile a quella adottata in altre shell, per cui a prima vista non risulta evidente la novità introdotta da Windows PowerShell. Se ad esempio si utilizza il cmdlet Out-Host per imporre la visualizzazione pagina dopo pagina dell'output di un altro comando, tale output ha l'aspetto del normale testo visualizzato sullo schermo, suddiviso in pagine:

PS> Get-ChildItem -Path C:\WINDOWS\System32 | Out-Host -Paging

    Directory: Microsoft.Windows PowerShell.Core\FileSystem::C:\WINDOWS\system32

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2005-10-22  11:04 PM        315 $winnt$.inf
-a---        2004-08-04   8:00 AM      68608 access.cpl
-a---        2004-08-04   8:00 AM      64512 acctres.dll
-a---        2004-08-04   8:00 AM     183808 accwiz.exe
-a---        2004-08-04   8:00 AM      61952 acelpdec.ax
-a---        2004-08-04   8:00 AM     129536 acledit.dll
-a---        2004-08-04   8:00 AM     114688 aclui.dll
-a---        2004-08-04   8:00 AM     194048 activeds.dll
-a---        2004-08-04   8:00 AM     111104 activeds.tlb
-a---        2004-08-04   8:00 AM       4096 actmovie.exe
-a---        2004-08-04   8:00 AM     101888 actxprxy.dll
-a---        2003-02-21   6:50 PM     143150 admgmt.msc
-a---        2006-01-25   3:35 PM      53760 admparse.dll
<SPACE> next page; <CR> next line; Q quit
...

Il comando Out-Host -Paging è un elemento della pipeline che risulta utile ogni volta che è presente un output dettagliato che si desidera visualizzare lentamente, soprattutto se l'operazione consuma molte risorse della CPU. Poiché l'elaborazione viene trasferita al cmdlet Out-Host quando è pronta una pagina completa da visualizzare, i cmdlet precedenti nella pipeline non agiscono fino a quando non è disponibile la pagina seguente dell'output. Questo comportamento è osservabile utilizzando Gestione attività Windows per monitorare l'utilizzo della CPU e della memoria da parte di Windows PowerShell.

Eseguire il comando seguente: Get-ChildItem C:\Windows -Recurse. Confrontare l'utilizzo della CPU e della memoria con questo comando: Get-ChildItem C:\Windows -Recurse | Out-Host -Paging. Sullo schermo viene visualizzato del testo ma ciò accade perché è necessario rappresentare gli oggetti sotto forma di testo in una finestra della console. Si tratta solo di una rappresentazione di quanto in realtà sta avvenendo in Windows PowerShell. Si consideri ad esempio il cmdlet Get-Location. Se si digita Get-Location quando il percorso corrente è la radice dell'unità C, l'output visualizzato sarà il seguente:

PS> Get-Location

Path
----
C:\

Se il testo viene trasformato in una pipeline, mediante un comando come Get-Location | Out-Host, viene trasferito un insieme di caratteri da Get-Location a Out-Host nell'ordine in cui tali caratteri sono visualizzati sullo schermo. In altri termini, se si ignorano le informazioni dell'intestazione, Out-Host riceve dapprima il carattere 'C', quindi il carattere ':' e infine il carattere '\'. Il cmdlet Out-Host non può pertanto stabilire il significato da associare ai caratteri dell'output del cmdlet Get-Location.

Anziché utilizzare il testo per le comunicazioni tra i comandi di una pipeline, in Windows PowerShell vengono utilizzati gli oggetti. Dal punto di vista dell'utente, gli oggetti combinano le informazioni correlate in una forma che ne rende facile la modifica unitaria e l'estrazione di elementi specifici necessari.

Il comando Get-Location non restituisce testo che contiene il percorso corrente, bensì un pacchetto di informazioni denominato oggetto PathInfo, che contiene il percorso corrente e altre informazioni. Il cmdlet Out-Host quindi invia questo oggetto PathInfo allo schermo, lasciando decidere a Windows PowerShell quali informazioni visualizzare e come visualizzarle in base alle proprie regole di formattazione.

In effetti l'output delle informazioni di intestazione del cmdlet Get-Location viene aggiunto solo alla fine del processo, nell'ambito del processo di formattazione dei dati per la loro visualizzazione sullo schermo. Ciò che compare sullo schermo è un riepilogo delle informazioni e non una rappresentazione completa dell'oggetto dell'output.

Dato che possono esistere più informazioni nell'output di un comando di Windows PowerShell rispetto a ciò che viene visualizzato nella finestra della console, come è possibile recuperare gli elementi non visibili? Come visualizzare i dati aggiuntivi? E come fare per visualizzare i dati in un formato diverso da quello normalmente utilizzato da Windows PowerShell?

Nella parte restante di questo capitolo verrà descritto come individuare la struttura di specifici oggetti di Windows PowerShell, selezionando elementi specifici e formattandoli per una più agevole visualizzazione, nonché come inviare tali informazioni a percorsi alternativi di output, ad esempio file e stampanti.


Visualizzazione della struttura degli oggetti (Get-Member)

Poiché gli oggetti rivestono un ruolo centrale in Windows PowerShell, esistono vari comandi nativi ideati per il funzionamento con tipi di oggetto arbitrari. Quello più importante è Get-Member .

La tecnica più semplice per analizzare gli oggetti restituiti da un comando consiste nel reindirizzare l'output di tale comando al cmdlet Get-Member . Il cmdlet Get-Member visualizza il nome formale del tipo di oggetto e l'elenco completo dei relativi membri. Il numero di elementi restituiti può talvolta essere eccessivo. Ad esempio, un oggetto processo può contenere oltre 100 membri.

Per visualizzare tutti i membri di un oggetto processo e impaginare l'output così da poterlo visualizzare per intero, digitare:

PS> Get-Process | Get-Member | Out-Host -Paging

L'output di questo comando è simile al seguente:

   TypeName: System.Diagnostics.Process

Name                           MemberType     Definition
----                           ----------     ----------
Handles                        AliasProperty  Handles = Handlecount
Name                           AliasProperty  Name = ProcessName
NPM                            AliasProperty  NPM = NonpagedSystemMemorySize
PM                             AliasProperty  PM = PagedMemorySize
VM                             AliasProperty  VM = VirtualMemorySize
WS                             AliasProperty  WS = WorkingSet
add_Disposed                   Method         System.Void add_Disposed(Event...
...

È possibile rendere più snello questo lungo elenco scegliendo i soli elementi che si desidera visualizzare. Il comando Get-Member consente di visualizzare solo i membri che sono proprietà. Esistono varie forme di proprietà. Il cmdlet consente di visualizzare le proprietà di qualsiasi tipo se il parametro Get-Member MemberType viene impostato sul valore Properties. L'elenco risultante è ancora molto lungo ma leggermente più gestibile:

PS> Get-Process | Get-Member -MemberType Properties

   TypeName: System.Diagnostics.Process

Name                       MemberType     Definition
----                       ----------     ----------
Handles                    AliasProperty  Handles = Handlecount
Name                       AliasProperty  Name = ProcessName
...
ExitCode                   Property       System.Int32 ExitCode {get;}
...
Handle                     Property       System.IntPtr Handle {get;}
...
CPU                        ScriptProperty System.Object CPU {get=$this.Total...
...
Path                       ScriptProperty System.Object Path {get=$this.Main...
...
Nota

I valori consentiti per MemberType sono AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet e All.

Esistono oltre 60 proprietà per un processo. Il motivo per cui in Windows PowerShell vengono spesso visualizzate solo alcune proprietà per un oggetto noto è che verrebbe prodotta una quantità ingestibile di informazioni se fossero visualizzate tutte le proprietà.

Nota

Windows PowerShell determina il modo in cui visualizzare un tipo di oggetto avvalendosi delle informazioni memorizzate nei file XML i cui nomi terminano in .format.ps1xml. I dati di formattazione per gli oggetti processo, che sono oggetti .NET System.Diagnostics.Process, sono archiviati in PowerShellCore.format.ps1xml.

Se occorre esaminare proprietà diverse da quelle visualizzate da Windows PowerShell per impostazione predefinita, è necessario formattare personalmente i dati di output mediante i cmdlet di formattazione.


Utilizzo dei comandi di formattazione per modificare la visualizzazione dell'output

In Windows PowerShell è disponibile un insieme di cmdlet che consentono di controllare quali proprietà visualizzare per particolari oggetti. I nomi di tutti questi cmdlet iniziano con il verbo Format. Consentono di selezionare una o più proprietà da visualizzare.

I cmdlet Format sono Format-Wide, Format-List, Format-Table e Format-Custom. In questo Manuale dell'utente verranno descritti solo i cmdlet Format-Wide, Format-List e Format-Table.

Ogni cmdlet di formattazione ha proprietà predefinite che verranno utilizzate qualora non si specifichino proprietà particolari da visualizzare. Ogni cmdlet utilizza inoltre lo stesso nome di parametro, ossia Property, per specificare quali proprietà si desidera visualizzare. Poiché Format-Wide consente di visualizzare una sola proprietà, il relativo parametro Property accetta solo un valore, mentre i parametri di proprietà per Format-List e Format-Table accettano un elenco di nomi di proprietà.

Se si utilizza il comando Get-Process -Name powershell con due istanze di Windows PowerShell in esecuzione, si ottiene un output analogo al seguente:

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    995       9    30308      27996   152     2.73   2760 powershell
    331       9    23284      29084   143     1.06   3448 powershell

Nella parte restante di questa sezione verrà descritto l'utilizzo dei cmdlet Format per modificare il modo in cui l'output di questo comando viene visualizzato.

Utilizzo di Format-Wide per l'output di Single-Item

Per impostazione predefinita, tramite il cmdlet Format-Wide viene visualizzata solo la proprietà predefinita di un oggetto. Le informazioni associate a ciascun oggetto vengono visualizzate in una singola colonna:

PS> Get-Process -Name powershell | Format-Wide

powershell                              powershell

È anche possibile specificare una proprietà non predefinita:

PS> Get-Process -Name powershell | Format-Wide -Property Id

2760                                    3448

Controllo della visualizzazione di Format-Wide mediante il parametro Column

Mediante il cmdlet Format-Wide è possibile visualizzare solo una proprietà alla volta. Ciò si dimostra utile per visualizzare elenchi semplici che contengano un solo elemento per riga. Per visualizzare un elenco semplice, impostare il valore del parametro Column su 1 digitando:

Get-Command Format-Wide -Property Name -Column 1

Utilizzo di Format-List per una visualizzazione elenco

Il cmdlet Format-List consente di visualizzare un oggetto sotto forma di elenco, con ciascuna proprietà etichettata e visualizzata su una riga distinta:

PS> Get-Process -Name powershell | Format-List

Id      : 2760
Handles : 1242
CPU     : 3.03125
Name    : powershell

Id      : 3448
Handles : 328
CPU     : 1.0625
Name    : powershell

È possibile specificare tutte le proprietà che si desidera:

PS> Get-Process -Name powershell | Format-List -Property ProcessName,FileVersion
,StartTime,Id

ProcessName : powershell
FileVersion : 1.0.9567.1
StartTime   : 2006-05-24 13:42:00
Id          : 2760

ProcessName : powershell
FileVersion : 1.0.9567.1
StartTime   : 2006-05-24 13:54:28
Id          : 3448

Come ottenere informazioni dettagliate utilizzando Format-List con i caratteri jolly

Il cmdlet Format-List consente di utilizzare un carattere jolly come valore del parametro Property, così da poter visualizzare informazioni dettagliate. Spesso gli oggetti includono più informazioni del necessario, ragione per cui in Windows PowerShell per impostazione predefinita non vengono visualizzati tutti i valori delle proprietà. Per visualizzare tutte le proprietà di un oggetto, utilizzare il comando Format-List -Property * . Il comando seguente consente di generare oltre 60 righe di output per un singolo processo:

Get-Process -Name powershell | Format-List -Property *

Sebbene il comando Format-List sia utile per visualizzare i dettagli, qualora si desideri una panoramica di un output che include molti elementi, spesso si dimostra più utile una semplice visualizzazione tabulare.

Utilizzo di Format-Table per l'output tabulare

Se si utilizza il cmdlet Format-Table senza specificare nomi di proprietà per formattare l'output del comando Get-Process , si ottiene esattamente lo stesso output di quando non viene effettuata alcuna formattazione. Il motivo è che i processi vengono in genere visualizzati nel formato tabulare, come accade per la maggior parte degli oggetti di Windows PowerShell.

PS> Get-Process -Name powershell | Format-Table

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
   1488       9    31568      29460   152     3.53   2760 powershell
    332       9    23140        632   141     1.06   3448 powershell

Miglioramento dell'output di Format-Table (parametro AutoSize)

Sebbene la visualizzazione tabulare sia utile per mostrare molte informazioni confrontabili, può rivelarsi difficile interpretarle qualora la capienza della visualizzazione sia eccessivamente ridotta per i dati. Se ad esempio si cerca di visualizzare il percorso, l'ID, il nome e l'azienda produttrice di un processo, l'output viene troncato nella colonna del percorso e dell'azienda produttrice:

PS> Get-Process -Name powershell | Format-Table -Property Path,Name,Id,Company

Path                Name                                 Id Company
----                ----                                 -- -------
C:\Program Files... powershell                         2836 Microsoft Corpor...

Se si specifica il parametro AutoSize quando si esegue il comando Format-Table, la larghezza delle colonne viene calcolata in base ai dati effettivi da visualizzare. Ciò rende leggibile la colonna Path, ma la colonna dell'azienda produttrice resta troncata:

PS> Get-Process -Name powershell | Format-Table -Property Path,Name,Id,Company -
AutoSize

Path                                                    Name         Id Company
----                                                    ----         -- -------
C:\Program Files\Windows PowerShell\v1.0\powershell.exe powershell 2836 Micr...

Il cmdlet Format-Table potrebbe continuare a troncare i dati, ma solo alla fine della schermata. Alle proprietà diverse dall'ultima visualizzata viene assegnato lo spazio necessario per visualizzare correttamente l'elemento di dati più lungo. Si può osservare che, se si scambiano le posizioni di Path e Company nell'elenco dei valori per Property, il nome dell'azienda produttrice rimane visibile ma il percorso viene troncato:

PS> Get-Process -Name powershell | Format-Table -Property Company,Name,Id,Path -
AutoSize

Company               Name         Id Path
-------               ----         -- ----
Microsoft Corporation powershell 2836 C:\Program Files\Windows PowerShell\v1...

Il comando Format-Table suppone che più una proprietà è vicina all'inizio dell'elenco delle proprietà più è importante. Pertanto viene tentata la visualizzazione completa delle proprietà più vicine all'inizio. Se il comando Format-Table non riesce a visualizzare tutte le proprietà, rimuoverà alcune colonne segnalandolo con un avviso. È possibile osservare questo comportamento rendendo la proprietà Name l'ultima dell'elenco:

PS> Get-Process -Name powershell | Format-Table -Property Company,Path,Id,Name -
AutoSize

WARNING: column "Name" does not fit into the display and was removed.

Company               Path                                                    I
                                                                              d
-------               ----                                                    -
Microsoft Corporation C:\Program Files\Windows PowerShell\v1.0\powershell.exe 6

Nell'output precedente, la colonna dell'ID è troncata per poterla contenere nell'elenco, mentre le intestazioni di colonna risultano impilate. Il ridimensionamento automatico delle colonne non sempre sortisce gli effetti desiderati.

Ritorno a capo dell'output nelle colonne con il comando Format-Table (parametro Wrap)

Quando si utilizza Format-Table, è possibile imporre il ritorno a capo di dati lunghi nelle rispettive colonne di visualizzazione ricorrendo al parametro Wrap. L'utilizzo del solo parametro Wrap non assicura tuttavia il conseguimento del risultato desiderato in quanto vengono utilizzate le impostazioni predefinite qualora non venga specificato anche il parametro AutoSize:

PS> Get-Process -Name powershell | Format-Table -Wrap -Property Name,Id,Company,
Path

Name                                 Id Company             Path
----                                 -- -------             ----
powershell                         2836 Microsoft Corporati C:\Program Files\Wi
                                        on                  ndows PowerShell\v1
                                                            .0\powershell.exe

Un vantaggio dell'utilizzo del solo parametro Wrap è che l'elaborazione non viene molto rallentata. Se si utilizza il parametro AutoSize e si esegue un'elencazione ricorsiva dei file di una directory di grandi dimensioni, potrebbe essere necessario molto tempo ed essere utilizzata una grande quantità di memoria prima che i primi elementi dell'output vengano visualizzati.

Se il carico sul sistema non rappresenta una preoccupazione, l'utilizzo del parametro AutoSize insieme con il parametro Wrap risulta ottimale. Alle colonne iniziali viene sempre assegnata la larghezza necessaria per visualizzare gli elementi su una sola riga, proprio come quando si specifica AutoSize senza il parametro Wrap. La sola differenza è che nella colonna finale verrà effettuato il ritorno a capo, se necessario:

PS> Get-Process -Name powershell | Format-Table -Wrap -AutoSize -Property Name,I
d,Company,Path

Name         Id Company               Path
----         -- -------               ----
powershell 2836 Microsoft Corporation C:\Program Files\Windows PowerShell\v1.0\
                                      powershell.exe

Può accadere che alcune colonne non vengano visualizzate se si specificano prima le colonne più larghe, pertanto è preferibile specificare per primi gli elementi di dati più piccoli. Nell'esempio seguente viene specificato come primo elemento il percorso, che è molto lungo; tuttavia, nonostante l'utilizzo del ritorno a capo, si perde la colonna finale Name:

 PS> Get-Process -Name powershell | Format-Table -Wrap -AutoSize -Property Path,I
d,Company,Name

WARNING: column "Name" does not fit into the display and was removed.

Path                                                      Id Company
----                                                      -- -------
C:\Program Files\Windows PowerShell\v1.0\powershell.exe 2836 Microsoft Corporat
                                                             ion

Organizzazione dell'output della tabella (parametro GroupBy)

Un altro utile parametro per il controllo dell'output tabulare è GroupBy. Gli elenchi tabulari lunghi sono particolarmente difficili da comparare. Il parametro GroupBy consente di raggruppare l'output in base al valore di una proprietà. Ad esempio, è possibile raggruppare i processi per azienda per poterli analizzare meglio, omettendo il valore dell'azienda dall'elenco delle proprietà:

PS> Get-Process -Name powershell | Format-Table -Wrap -AutoSize -Property Name,I
d,Path -GroupBy Company

   Company: Microsoft Corporation

Name         Id Path
----         -- ----
powershell 1956 C:\Program Files\Windows PowerShell\v1.0\powershell.exe
powershell 2656 C:\Program Files\Windows PowerShell\v1.0\powershell.exe


Reindirizzamento dei dati con i cmdlet Out-*

In Windows PowerShell sono disponibili vari cmdlet che consentono di controllare direttamente l'output dei dati. Tali cmdlet condividono due importanti caratteristiche.

In primo luogo i dati vengono in genere trasformati in testo, in quanto l'output dei dati viene inviato a componenti del sistema che necessitano di input testuale. Ciò comporta la necessità di rappresentare gli oggetti come testo. Pertanto il testo viene formattato nel modo in cui è visualizzato nella finestra della console di Windows PowerShell.

In secondo luogo questi cmdlet utilizzano il verbo Out di Windows PowerShell in quanto inviano informazioni da Windows PowerShell verso un'altra destinazione. Il cmdlet Out-Host non fa eccezione: la visualizzazione della finestra dell'host non è controllata da Windows PowerShell. Ciò è importante perché, quando i dati escono da Windows PowerShell, vengono rimossi. Questo comportamento è osservabile se si cerca di creare una pipeline che impagina i dati da inviare alla finestra dell'host e poi si tenta di formattarli sotto forma di elenco, come mostrato di seguito:

PS> Get-Process | Out-Host -Paging | Format-List

Ci si aspetta che mediante questo comando le pagine delle informazioni sui processi vengano visualizzate in forma di elenco. Invece vengono visualizzate nel formato predefinito di elenco tabulare:

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    101       5     1076       3316    32     0.05   2888 alg
...
    618      18    39348      51108   143   211.20    740 explorer
    257       8     9752      16828    79     3.02   2560 explorer
...
<SPACE> next page; <CR> next line; Q quit
...

Il cmdlet Out-Host invia i dati direttamente alla console, per cui il comando Format-List non riceve mai nessun elemento da formattare.

Il modo corretto di strutturare questo comando è di collocare il cmdlet Out-Host alla fine della pipeline, come illustrato di seguito. In tal modo i dati dei processi vengono formattati sotto forma di elenco prima di essere impaginati e visualizzati.

PS> Get-Process | Format-List | Out-Host -Paging

Id      : 2888
Handles : 101
CPU     : 0.046875
Name    : alg
...

Id      : 740
Handles : 612
CPU     : 211.703125
Name    : explorer

Id      : 2560
Handles : 257
CPU     : 3.015625
Name    : explorer
...
<SPACE> next page; <CR> next line; Q quit
...

Questo vale per tutti i cmdlet Out. Di conseguenza, i cmdlet Out devono sempre trovarsi alla fine della pipeline.

Nota

Tutti i cmdlet Out trasformano l'output in testo utilizzando la formattazione valida per la finestra della console, rispettandone anche i limiti di lunghezza delle righe.

Impaginazione dell'output della console (cmdlet Out-Host)

Per impostazione predefinita, Windows PowerShell invia i dati alla finestra dell'host. Tale operazione è esattamente quella eseguita dal cmdlet Out-Host. L'utilizzo principale del cmdlet Out-Host è l'impaginazione dei dati trattata in precedenza. Ad esempio, nel comando seguente viene utilizzato il cmdlet Out-Host per impaginare l'output del cmdlet Get-Command:

PS> Get-Command | Out-Host -Paging

Per impaginare i dati è anche possibile utilizzare la funzione more. In Windows PowerShell, more è una funzione che chiama Out-Host -Paging. Nel comando seguente viene illustrato l'utilizzo della funzione more per impaginare l'output di Get-Command:

PS> Get-Command | more

Se si includono uno o più nomi di file come argomenti della funzione more, verranno letti i file specificati, e il loro contenuto verrà impaginato e inviato all'host:

PS> more c:\boot.ini
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
...

Eliminazione dell'output (Out-Null)

Il cmdlet Out-Null consente di eliminare immediatamente l'input ricevuto. Questa funzionalità è utile per eliminare dati non necessari ottenuti come conseguenza secondaria dell'esecuzione di un comando. Quando si digita il comando seguente, non si ottiene nulla:

PS> Get-Command | Out-Null

Il cmdlet Out-Null non elimina l'output costituito da errori. Se ad esempio si immette il comando seguente, viene visualizzato un messaggio che informa del mancato riconoscimento di 'Is-NotACommand' da parte di Windows PowerShell:

PS> Get-Command Is-NotACommand | Out-Null
Get-Command : 'Is-NotACommand' is not recognized as a cmdlet, function, operabl
e program, or script file.
At line:1 char:12
+ Get-Command  <<<< Is-NotACommand | Out-Null

Stampa dei dati (Out-Printer)

È possibile stampare i dati utilizzando il cmdlet Out-Printer. Il cmdlet Out-Printer utilizzerà la stampante predefinita se non si indica il nome di una stampante. È possibile utilizzare qualsiasi stampante basata su Windows specificandone il nome visualizzato. Non è necessario alcun tipo di mapping delle porte o anche di una stampante fisica. Se ad esempio sono installati gli strumenti di gestione delle immagini dei documenti di Microsoft Office, è possibile inviare i dati a un file di immagine digitando quanto segue:

PS> Get-Command Get-Command | Out-Printer -Name "Microsoft Office Document Image Writer"

Salvataggio dei dati (Out-File)

È possibile inviare l'output a un file anziché alla finestra della console utilizzando il cmdlet Out-File. Mediante la riga di comando seguente è possibile inviare l'elenco dei processi al file C:\temp\processlist.txt:

PS> Get-Process | Out-File -FilePath C:\temp\processlist.txt

Il risultato dell'utilizzo del cmdlet Out-File potrebbe differire da quello atteso qualora si sia abituati al tradizionale reindirizzamento dell'output. Per comprendere il funzionamento del cmdlet Out-File, occorre conoscere il contesto in cui opera.

Per impostazione predefinita il cmdlet Out-File crea un file Unicode, che in ultima analisi è la migliore impostazione predefinita, anche se ciò comporta che gli strumenti che si aspettano di ricevere file ASCII non funzionino correttamente con il formato di output predefinito. È possibile impostare su ASCII il formato di output predefinito utilizzando il parametro Encoding:

PS> Get-Process | Out-File -FilePath C:\temp\processlist.txt -Encoding ASCII

Out-file formatta il contenuto del file in modo che somigli all'output della console. Ciò fa sì che l'output sia troncato proprio come avviene nella maggior parte dei casi nella finestra della console. Se ad esempio si esegue il comando seguente:

PS> Get-Command | Out-File -FilePath c:\temp\output.txt

L'output sarà simile al seguente:

CommandType     Name                            Definition
-----------     ----                            ----------
Cmdlet          Add-Content                     Add-Content [-Path] <String[...
Cmdlet          Add-History                     Add-History [[-InputObject] ...
...

Per ottenere un output in cui le righe non vadano obbligatoriamente a capo per rispettare la larghezza della schermata, è possibile utilizzare il parametro Width per specificare la larghezza delle righe. Poiché Width è un parametro intero a 32 bit, il valore massimo è 2147483647. Digitare il comando seguente per impostare la larghezza delle righe sul valore massimo:

Get-Command | Out-File -FilePath c:\temp\output.txt -Width 2147483647

Il cmdlet Out-File è di grandissima utilità quando si desidera salvare l'output così come verrebbe visualizzato nella console. Per perfezionare il controllo del formato dell'output, è necessario utilizzare strumenti più avanzati, che verranno trattati nel prossimo capitolo insieme con informazioni dettagliate sulla modifica degli oggetti.


Spostamento in Windows PowerShell

Le cartelle costituiscono una caratteristica organizzativa nota dell'interfaccia di Esplora risorse, di Cmd.exe e degli strumenti UNIX, come ad esempio BASH. Dette più comunemente directory, le cartelle sono utili per organizzare file e altre directory. I sistemi operativi UNIX estendono la portata di questo concetto trattando ogni possibile elemento come un file: anche i componenti hardware e le connessioni di rete vengono infatti visualizzati come file in particolari cartelle. Questo approccio non assicura che il contenuto sia leggibile o utilizzabile da applicazioni particolari, ma fa sì che sia più facile trovare elementi specifici. Gli strumenti che enumerano file e cartelle o che eseguono ricerche in essi funzionano anche con questi dispositivi. È inoltre possibile indirizzare uno specifico elemento utilizzando il percorso del file che lo rappresenta.

Analogamente, l'infrastruttura di Windows PowerShell supporta l'esposizione sotto forma di unità di Windows PowerShell di tutto ciò in cui è possibile spostarsi, ad esempio un'unità disco standard di Microsoft Windows o un filesystem UNIX. Un'unità di Windows PowerShell non rappresenta necessariamente un'effettiva unità locale o di rete. In questo capitolo viene illustrato principalmente come spostarsi nei file system, ma i concetti esposti valgono anche per le unità di Windows PowerShell non associate ai file system.


Gestione del percorso corrente

Nello spostarsi tra le cartelle in Esplora risorse di solito si parte da una posizione specifica, ossia la cartella corrente aperta. Gli elementi della cartella corrente possono essere modificati facilmente facendovi clic. Nel caso delle interfacce della riga di comando come Cmd.exe, quando ci si trova nella stessa cartella di un determinato file, è possibile accedervi specificando il nome breve anziché l'intero percorso del file. La directory corrente è detta directory di lavoro.

In Windows PowerShell viene utilizzato il sostantivo Location per fare riferimento alla directory di lavoro ed è stata implementata una famiglia di cmdlet che consentono di esaminare e modificare il percorso in uso.

Determinazione del percorso corrente (Get-Location)

Per determinare il percorso della directory di lavoro corrente, immettere il comando Get-Location:

PS> Get-Location
Path
----
C:\Documents and Settings\PowerUser
Nota

Il cmdlet Get-Location è simile al comando pwd della shell BASH. Il cmdlet Set-Location è simile al comando cd di Cmd.exe.

Impostazione del percorso corrente (comando Set-Location)

Il comando Get-Location viene utilizzato con il comando Set-Location. Il comando Set-Location consente di specificare il percorso della directory corrente.

PS> Set-Location -Path C:\Windows

Si noterà che, dopo aver immesso il comando, non viene visualizzato alcun feedback diretto circa l'effetto del comando. La maggior parte dei comandi di Windows PowerShell che eseguono un'azione produce un output scarso o inesistente poiché l'output non sempre è utile. Per verificare se, dopo l'immissione del comando Set-Location, la modifica della directory è riuscita, includere il parametro -PassThru quando si immette il comando Set-Location:

PS> Set-Location -Path C:\Windows -PassThru
Path
----
C:\WINDOWS

Il parametro -PassThru può essere utilizzato con molti comandi Set in Windows PowerShell per restituire informazioni sul risultato nei casi in cui non esista un output predefinito.

È possibile specificare percorsi relativi alla posizione corrente nello stesso modo in cui lo si fa in quasi tutte le shell dei comandi UNIX e Windows. Nella notazione standard adottata per i percorsi relativi, un punto (.) rappresenta la cartella corrente, mentre due punti consecutivi (..) rappresentano la directory padre del percorso corrente.

Ad esempio, se si è nella cartella C:\Windows, un punto (.) rappresenta C:\Windows e due punti consecutivi (..) rappresentano C:. È possibile passare dal percorso corrente alla radice dell'unità C: digitando:

PS> Set-Location -Path .. -PassThru

Path

----

C:\

La stessa tecnica può essere applicata alle unità di Windows PowerShell non file system, ad esempio HKLM:. È possibile impostare la posizione sulla chiave HKLM\Software del Registro di sistema digitando:

 PS> Set-Location -Path HKLM:\SOFTWARE -PassThru

Path
----
HKLM:\SOFTWARE

È quindi possibile impostare il percorso della directory sulla directory padre, che è la radice dell'unità HKLM: di Windows PowerShell, utilizzando un percorso relativo:

PS> Set-Location -Path .. -PassThru

Path
----
HKLM:\

È possibile digitare Set-Location o utilizzare uno degli alias predefiniti di Windows PowerShell disponibili per Set-Location (cd, chdir, sl). Ad esempio:

cd -Path C:\Windows

chdir -Path .. -PassThru

sl -Path HKLM:\SOFTWARE -PassThru

Salvataggio e richiamo dei percorsi recenti (Push-Location e Pop-Location)

Quando si cambia la posizione, è utile tenere traccia di dove si era e poter tornare alla posizione precedente. Il cmdlet Push-Location di Windows PowerShell consente di creare una cronologia ordinata ("stack") dei percorsi di directory che sono stati utilizzati. La cronologia dei percorsi di directory può essere visualizzata utilizzando il cmdlet complementare Pop-Location.

Ad esempio, Windows PowerShell viene in genere avviato nella home directory dell'utente.

 PS> Get-Location

Path
----
C:\Documents and Settings\PowerUser
Nota

La parola stack ha un significato speciale in molte impostazioni di programmazione, incluso .NET Framework. Analogamente a una pila fisica di oggetti, l'ultimo oggetto impilato è il primo che diventa disponibile. L'aggiunta di un elemento a una pila è colloquialmente nota in inglese come "pushing", mentre la sottrazione di un elemento da una pila è colloquialmente nota in inglese come "popping".

Per aggiungere la posizione corrente allo stack e quindi rimuovere la cartella Impostazioni locali, digitare:

 PS> Push-Location -Path "Local Settings"

È quindi possibile aggiungere la posizione Impostazioni locali allo stack e spostarsi nella cartella Temp digitando:

PS> Push-Location -Path Temp

Per verificare di aver cambiato le directory, immettere il comando Get-Location:

PS> Get-Location

Path
----
C:\Documents and Settings\PowerUser\Local Settings\Temp

È quindi possibile tornare alla directory visitata più di recente immettendo il comando Pop-Location e verificare la modifica immettendo il comando Get-Location:

PS> Pop-Location
PS> Get-Location

Path
----
C:\Documents and Settings\me\Local Settings

Come per il cmdlet Set-Location, è possibile includere il parametro -PassThru quando si immette il cmdlet Pop-Location per visualizzare la directory immessa:

PS> Pop-Location -PassThru

Path
----
C:\Documents and Settings\PowerUser

Inoltre è possibile utilizzare i cmdlet Location con i percorsi di rete. Se esiste un server denominato FS01 con una condivisione denominata Public, è possibile cambiare la posizione digitando:

Set-Location \\FS01\Public

oppure

Push-Location \\FS01\Public

I comandi Push-Location e Set-Location possono essere utilizzati per cambiare il percorso impostandolo su un'unità disponibile. Se ad esempio si dispone di un'unità CD-ROM locale la cui lettera di unità è D e in cui è inserito un CD dati, è possibile cambiare il percorso impostandolo sull'unità CD-ROM con il comando Set-Location D:.

Se l'unità è vuota, verrà visualizzato il messaggio di errore seguente:

PS> Set-Location D:
Set-Location : Cannot find path 'D:\' because it does not exist.

Quando si utilizza un'interfaccia della riga di comando, non è conveniente utilizzare Esplora risorse per esaminare le unità fisiche disponibili. Inoltre, Esplora risorse non consente di visualizzare tutte le unità di Windows PowerShell. In Windows PowerShell è disponibile un set di comandi per la modifica delle unità di Windows PowerShell che verrà illustrato in seguito.


Gestione delle unità di Windows PowerShell

Un'unità di Windows PowerShell è un archivio dati a cui è possibile accedere come a un'unità di file system. I provider di Windows PowerShell creano automaticamente alcune unità, ad esempio le unità file system (inclusi C: e D:), le unità del Registro di sistema (HKCU: e HKLM:) e l'unità dei certificati (Cert:). Inoltre è possibile creare proprie unità di Windows PowerShell. Tali unità sono molto utili ma sono disponibili solo in Windows PowerShell. Non vi si può accedere utilizzando altri strumenti di Windows, ad esempio Esplora risorse o Cmd.exe.

Per i comandi che utilizzano le unità di Windows PowerShell viene utilizzato il sostantivo PSDrive. Per visualizzare l'elenco delle unità di Windows PowerShell disponibili nella sessione di Windows PowerShell, utilizzare il cmdlet Get-PSDrive.

PS> Get-PSDrive

Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
A          FileSystem    A:\
Alias      Alias
C          FileSystem    C:\                                 ...And Settings\me
cert       Certificate   \
D          FileSystem    D:\
Env        Environment
Function   Function
HKCU       Registry      HKEY_CURRENT_USER
HKLM       Registry      HKEY_LOCAL_MACHINE
Variable   Variable

Sebbene le unità visualizzate si differenzino dalle unità del sistema, l'elenco sarà simile all'output del comando Get-PSDrive mostrato sopra.

Le unità file system sono un sottoinsieme delle unità di Windows PowerShell. È possibile identificare le unità file system grazie alla voce FileSystem nella colonna Provider. Le unità file system in Windows PowerShell sono supportate dal provider FileSystem di Windows PowerShell.

Per visualizzare la sintassi del cmdlet Get-PSDrive, digitare un comando Get-Command con il parametro Syntax:

PS> Get-Command -Name Get-PSDrive -Syntax
Get-PSDrive [[-Name] <String[]>] [-Scope <String>] [-PSProvider <String[]>] [-V
erbose] [-Debug] [-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-
OutVariable <String>] [-OutBuffer <Int32>]

Il parametro PSProvider consente di visualizzare solo le unità di Windows PowerShell supportate da un determinato provider. Ad esempio, per visualizzare solo le unità di Windows PowerShell supportate dal provider FileSystem di Windows PowerShell, digitare un comando Get-PSDrive con il parametro PSProvider e il valore FileSystem:

PS> Get-PSDrive -PSProvider FileSystem

Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
A          FileSystem    A:\
C          FileSystem    C:\                           ...nd Settings\PowerUser
D          FileSystem    D:\

Per visualizzare le unità di Windows PowerShell che rappresentano gli hive del Registro di sistema, utilizzare il parametro PSProvider per visualizzare unicamente le unità di Windows PowerShell supportate dal provider Registry di Windows PowerShell:

PS> Get-PSDrive -PSProvider Registry

Name Provider Root CurrentLocation

---- -------- ---- ---------------

HKCU Registry HKEY_CURRENT_USER

HKLM Registry HKEY_LOCAL_MACHINE

Inoltre è possibile utilizzare i cmdlet Location standard con le unità di Windows PowerShell:

PS> Set-Location HKLM:\SOFTWARE

PS> Push-Location .\Microsoft

PS> Get-Location

Path

----

HKLM:\SOFTWARE\Microsoft

Aggiunta di nuove unità di Windows PowerShell (New-PSDrive)

È possibile aggiungere unità di Windows PowerShell personalizzate utilizzando il comando New-PSDrive. Per conoscere la sintassi del comando New-PSDrive, immettere il comando Get-Command con il parametro Syntax:

PS> Get-Command -Name New-PSDrive -Syntax
New-PSDrive [-Name] <String> [-PSProvider] <String> [-Root] <String> [-Descript
ion <String>] [-Scope <String>] [-Credential <PSCredential>] [-Verbose] [-Debug
] [-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-OutVariable <St
ring>] [-OutBuffer <Int32>] [-WhatIf] [-Confirm]

Per creare una nuova unità di Windows PowerShell, è necessario fornire tre parametri:

  • Il nome dell'unità (è possibile utilizzare qualsiasi nome valido in Windows PowerShell)

  • Il provider mediante il parametro PSProvider (utilizzare "FileSystem" per i percorsi di file system e "Registry" per i percorsi del Registro di sistema)

  • La radice, ossia il percorso della radice della nuova unità

Ad esempio, è possibile creare un'unità denominata "Office" mappata alla cartella contenente le applicazioni di Microsoft Office nel computer, ad esempio C:\Program Files\Microsoft Office\OFFICE11. Per creare l'unità, digitare il comando seguente:

PS> New-PSDrive -Name Office -PSProvider FileSystem -Root "C:\Program Files\Micr
osoft Office\OFFICE11"

Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
Office     FileSystem    C:\Program Files\Microsoft Offic...
Nota

In genere nei percorsi non viene fatta distinzione fra maiuscole e minuscole.

Per fare riferimento alla nuova unità di Windows PowerShell utilizzare il nome seguito dai due punti (:), come per tutte le unità di Windows PowerShell.

Un'unità di Windows PowerShell può rendere molto più facili molte attività. Ad esempio, alcune delle chiavi più importanti del Registro di sistema di Windows hanno percorsi assai lunghi, la qual cosa ne rende difficile l'accesso e la memorizzazione. Le informazioni di configurazione essenziali si trovano in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion. Per visualizzare e modificare gli elementi della chiave CurrentVersion del Registro di sistema, è possibile creare un'unità di Windows PowerShell la cui radice sia tale chiave, digitando:

PS> New-PSDrive -Name cvkey -PSProvider Registry -Root HKLM\Software\Microsoft\W

indows\CurrentVersion

Name Provider Root CurrentLocation

---- -------- ---- ---------------

cvkey Registry HKLM\Software\Microsoft\Windows\...

È quindi possibile cambiare il percorso impostandolo sull'unità cvkey: come per qualsiasi altra unità:

PS> cd cvkey:

oppure:

PS> Set-Location cvkey: -PassThru

Path

----

cvkey:\

Il cmdlet New-PsDrive aggiunge la nuova unità solo alla sessione corrente di Windows PowerShell. Se si chiude la finestra di Windows PowerShell, la nuova unità viene persa. Per salvare un'unità di Windows PowerShell, utilizzare il cmdlet Export-Console per esportare la sessione di Windows PowerShell corrente, quindi utilizzare il parametro PSConsoleFile di PowerShell.exe per importarla. In alternativa è possibile aggiungere la nuova unità al profilo di Windows PowerShell.

Eliminazione di unità di Windows PowerShell (Remove-PSDrive)

È possibile eliminare le unità da Windows PowerShell utilizzando Remove-PSDrive, un cmdlet facile da utilizzare. Per eliminare una specifica unità di Windows PowerShell, è sufficiente fornirne il nome.

Se ad esempio è stata aggiunta l'unità Office: di Windows PowerShell, come illustrato nell'argomento New-PSDrive, è possibile eliminarla digitando:

PS> Remove-PSDrive -Name Office

Per eliminare l'unità cvkey: di Windows PowerShell, anch'essa illustrata nell'argomento New-PSDrive, utilizzare il comando seguente:

PS> Remove-PSDrive -Name cvkey

È facile eliminare un'unità da Windows PowerShell, tuttavia non è possibile farlo mentre ci si trova all'interno di essa. Ad esempio:

PS> cd office:
PS Office:\> remove-psdrive -name office
Remove-PSDrive : Cannot remove drive 'Office' because it is in use.
At line:1 char:15
+ remove-psdrive  <<<< -name office

Aggiunta e rimozione delle unità dall'esterno di Windows PowerShell

Windows PowerShell rileva le unità di file system aggiunte o rimosse in Windows, incluse le unità di rete mappate, le unità USB collegate e le unità eliminate tramite il comando net use o i metodi WScript.Network, MapNetworkDrive e RemoveNetworkDrive contenuti in uno script WSH (Windows Script Host).


Utilizzo dei file, delle cartelle e delle chiavi del Registro di sistema

In Windows PowerShell viene utilizzato il sostantivo Item per fare riferimento agli elementi individuati in un'unità di Windows PowerShell. Quando si utilizza il provider FileSystem di Windows PowerShell, il termine Item può rappresentare un file, una cartella o un'unità di Windows PowerShell. L'elencazione e l'utilizzo di questi elementi sono attività di base essenziali nella maggior parte delle impostazioni amministrative, pertanto è opportuno trattarle in dettaglio.

Enumerazione di file, cartelle e chiavi del Registro di sistema (Get-ChildItem)

Poiché ottenere una raccolta di elementi da un determinato percorso è un'attività comune, il cmdlet Get-ChildItem è stato progettato specificamente per restituire tutti gli elementi inclusi in un contenitore quale una cartella.

Se si desidera visualizzare tutti i file e tutte le cartelle contenuti direttamente nella cartella C:\Windows, digitare:

PS> Get-ChildItem -Path C:\Windows
    Directory: Microsoft.Windows PowerShell.Core\FileSystem::C:\Windows
Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2006-05-16   8:10 AM          0 0.log
-a---        2005-11-29   3:16 PM         97 acc1.txt
-a---        2005-10-23  11:21 PM       3848 actsetup.log
...

L'elenco è simile a quello visualizzato quando si immette il comando dir in Cmd.exe o il comando ls in una shell dei comandi UNIX.

È possibile ottenere elenchi molto complessi utilizzando i parametri del cmdlet Get-ChildItem. Di seguito verranno considerati alcuni casi. È possibile visualizzare la sintassi del cmdlet Get-ChildItem digitando:

PS> Get-Command -Name Get-ChildItem -Syntax

Questi parametri possono essere combinati e confrontati per ottenere un output maggiormente personalizzato.

Elencazione di tutti gli elementi contenuti (parametro -Recurse)

Per visualizzare gli elementi di una cartella di Windows e quelli contenuti nelle relative sottocartelle, utilizzare il parametro Recurse di Get-ChildItem. Nell'elenco viene visualizzato tutto ciò che è incluso nella cartella di Windows e nelle relative sottocartelle. Ad esempio:

PS> Get-ChildItem -Path C:\WINDOWS -Recurse

    Directory: Microsoft.Windows PowerShell.Core\FileSystem::C:\WINDOWS
    Directory: Microsoft.Windows PowerShell.Core\FileSystem::C:\WINDOWS\AppPatch
Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2004-08-04   8:00 AM    1852416 AcGenral.dll
...

Filtraggio degli elementi per nome (parametro -Name)

Per visualizzare solo i nomi degli elementi, utilizzare il parametro Name di Get-Childitem:

PS> Get-ChildItem -Path C:\WINDOWS -Name
addins
AppPatch
assembly
...

Elencazione forzata degli elementi nascosti (parametro -Force)

Gli elementi normalmente invisibili in Esplora risorse o in Cmd.exe non vengono visualizzati nell'output di un comando Get-ChildItem. Per visualizzare gli elementi nascosti, utilizzare il parametro Force di Get-ChildItem. Ad esempio:

Get-ChildItem -Path C:\Windows -Force

Questo parametro è denominato Force perché consente di sostituire in modo forzato il normale comportamento del comando Get-ChildItem. Si tratta di un parametro ampiamente utilizzato in grado di forzare l'esecuzione di un'azione che un cmdlet normalmente non eseguirebbe, purché tale azione non comprometta la sicurezza del sistema.

Individuazione di corrispondenze dei nomi di elemento mediante i caratteri jolly

Il comando The Get-ChildItem accetta i caratteri jolly nel percorso degli elementi da elencare.

Poiché l'individuazione di corrispondenze mediante caratteri jolly è gestita dal modulo di Windows PowerShell, tutti i cmdlet che accettano i caratteri jolly utilizzano la stessa notazione e funzionano allo stesso modo. Nella notazione con caratteri jolly di Windows PowerShell è previsto quanto segue:

  • L'asterisco (*) individua la corrispondenza con zero o più ricorrenze di un carattere.

  • Il punto interrogativo (?) individua la corrispondenza esatta con un carattere.

  • La parentesi quadra aperta ([) e la parentesi quadra chiusa (]) racchiudono un insieme di caratteri di cui individuare la corrispondenza.

Di seguito vengono riportati alcuni esempi del funzionamento dei caratteri jolly.

Per trovare tutti i file della directory Windows con il suffisso .log e con esattamente cinque caratteri nel nome di base, immettere il comando seguente:

PS> Get-ChildItem -Path C:\Windows\?????.log
    Directory: Microsoft.Windows PowerShell.Core\FileSystem::C:\Windows
Mode                LastWriteTime     Length Name
----                -------------     ------ ----
...
-a---        2006-05-11   6:31 PM     204276 ocgen.log
-a---        2006-05-11   6:31 PM      22365 ocmsn.log
...
-a---        2005-11-11   4:55 AM         64 setup.log
-a---        2005-12-15   2:24 PM      17719 VxSDM.log
...

Per trovare tutti i file che iniziano con la lettera x nella directory Windows, digitare:

 Get-ChildItem -Path C:\Windows\x*

Per trovare tutti i file il cui nome inizia con x oppure z, digitare:

Get-ChildItem -Path C:\Windows\[xz]*

Esclusione di elementi (parametro -Exclude)

È possibile escludere elementi specifici utilizzando il parametro Exclude di Get-ChildItem. Tale parametro consente di eseguire un filtraggio complesso con una sola istruzione.

Si supponga ad esempio che si debba trovare la DDL del Servizio Ora di Windows nella cartella System32 e che ci si ricordi solo che il nome di questa DLL inizia con "W" e contiene il numero "32".

L'espressione w*32*.dll consente di trovare tutte le DLL che rispettano le condizioni, ma può anche restituire le DLL di Windows 95 e a 16 bit compatibili che contengono "95" o "16" nel proprio nome. È possibile omettere i file che includono tali numeri nel nome utilizzando il parametro Exclude con il modello *[9516]*:

PS> Get-ChildItem -Path C:\WINDOWS\System32\w*32*.dll -Exclude *[9516]*

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

Mode LastWriteTime Length Name

---- ------------- ------ ----

-a--- 2004-08-04 8:00 AM 174592 w32time.dll

-a--- 2004-08-04 8:00 AM 22016 w32topl.dll

-a--- 2004-08-04 8:00 AM 101888 win32spl.dll

-a--- 2004-08-04 8:00 AM 172032 wldap32.dll

-a--- 2004-08-04 8:00 AM 264192 wow32.dll

-a--- 2004-08-04 8:00 AM 82944 ws2_32.dll

-a--- 2004-08-04 8:00 AM 42496 wsnmp32.dll

-a--- 2004-08-04 8:00 AM 22528 wsock32.dll

-a--- 2004-08-04 8:00 AM 18432 wtsapi32.dll

Combinazione dei parametri di Get-ChildItem

È possibile utilizzare diversi parametri del cmdlet Get-ChildItem nello stesso comando. Prima di combinare i parametri, assicurarsi di aver compreso il funzionamento dell'individuazione di corrispondenze mediante i caratteri jolly. Ad esempio, il comando seguente non restituisce alcun risultato:

PS> Get-ChildItem -Path C:\Windows\*.dll -Recurse -Exclude [a-y]*.dll

Non viene restituito alcun risultato, sebbene nella cartella Windows vi siano due DLL che iniziano con la lettera "z".

Non viene visualizzato alcun risultato perché i caratteri jolly sono stati specificati nel percorso. Anche se il comando è ricorsivo, il cmdlet Get-ChildItem limita gli elementi solo a quelli presenti nella cartella di Windows il cui nome termina con "dll".

Per specificare una ricerca ricorsiva di file il cui nome corrisponde a un modello speciale, utilizzare il parametro -Include.

PS> Get-ChildItem -Path C:\Windows -Include *.dll -Recurse -Exclude [a-y]*.dll

    Directory: Microsoft.Windows PowerShell.Core\FileSystem::C:\Windows\System32\Setup

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2004-08-04   8:00 AM       8261 zoneoc.dll

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

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2004-08-04   8:00 AM     337920 zipfldr.dll


Modifica diretta degli elementi

Tutto ciò che si trova nelle unità di Windows PowerShell, ad esempio i file e le cartelle delle unità di file system, nonché le chiavi del Registro di sistema nelle unità del Registro di sistema di Windows PowerShell, è detto elemento. I cmdlet per l'utilizzo degli elementi contengono il sostantivo Item nel proprio nome.

L'output del comando Get-Command -Noun Item indica che sono presenti nove cmdlet di Windows PowerShell di tipo Item.

PS> Get-Command -Noun Item

CommandType     Name                            Definition
-----------     ----                            ----------
Cmdlet          Clear-Item                      Clear-Item [-Path] <String[]...
Cmdlet          Copy-Item                       Copy-Item [-Path] <String[]>...
Cmdlet          Get-Item                        Get-Item [-Path] <String[]> ...
Cmdlet          Invoke-Item                     Invoke-Item [-Path] <String[...
Cmdlet          Move-Item                       Move-Item [-Path] <String[]>...
Cmdlet          New-Item                        New-Item [-Path] <String[]> ...
Cmdlet          Remove-Item                     Remove-Item [-Path] <String[...
Cmdlet          Rename-Item                     Rename-Item [-Path] <String>...
Cmdlet          Set-Item                        Set-Item [-Path] <String[]> ...

Creazione di nuovi elementi (New-Item)

Per creare un nuovo elemento nel file system, utilizzare il cmdlet New-Item. Includere il parametro Path con il percorso dell'elemento e il parametro ItemType con il valore "file" o "directory".

Ad esempio, per creare nella directory C:\Temp una nuova directory denominata "New.Directory", digitare:

PS> New-Item -Path c:\temp\New.Directory -ItemType Directory

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

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2006-05-18  11:29 AM            New.Directory

Per creare un file, modificare in "file" il valore del parametro ItemType. Ad esempio, per creare un file denominato "file1.txt" nella directory New.Directory, digitare:

PS> New-Item -Path C:\temp\New.Directory\file1.txt -ItemType file

    Directory: Microsoft.Windows PowerShell.Core\FileSystem::C:\temp\New.Directory

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2006-05-18  11:44 AM          0 file1

È possibile utilizzare la stessa tecnica per creare una nuova chiave del Registro di sistema. In effetti è più facile creare una chiave del Registro di sistema perché il solo tipo di elemento del Registro di sistema di Windows è la chiave. Le voci del Registro di sistema sono le proprietà degli elementi. Ad esempio, per creare una chiave denominata "_Test" nella sottochiave CurrentVersion, digitare:

PS> New-Item -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\_Test

   Hive: Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Micros
oft\Windows\CurrentVersion

SKC  VC Name                           Property
---  -- ----                           --------
  0   0 _Test                          {}

Quando si digita un percorso del Registro di sistema, assicurarsi di includere i due punti (:) nei nomi delle unità di PowerShell, ossia HKLM: e HKCU:. Senza i due punti, il nome dell'unità nel percorso non viene riconosciuto.

Perché i valori del Registro di sistema non sono elementi

Quando si utilizza il cmdlet Get-ChildItem per trovare gli elementi di una chiave del Registro di sistema, non vengono mai visualizzate le voci effettive del Registro di sistema o i relativi valori.

Ad esempio, nella chiave HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run del Registro di sistema in genere sono contenute varie voci che rappresentano le applicazioni eseguite all'avvio del sistema.

Tuttavia, quando si utilizza Get-ChildItem per cercare gli elementi figlio della chiave, viene visualizzata solo la sottochiave OptionalComponents:

PS> Get-ChildItem HKLM:\Software\Microsoft\Windows\CurrentVersion\Run
   Hive: Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Micros
oft\Windows\CurrentVersion\Run
SKC  VC Name                           Property
---  -- ----                           --------
  3   0 OptionalComponents             {}

Sebbene sia conveniente considerare le voci del Registro di sistema come elementi, non è possibile specificare il percorso di una voce del Registro di sistema in modo che sia univoca. Nella notazione del percorso non viene fatta distinzione tra la sottochiave del Registro di sistema Run e la voce del Registro di sistema (Default) della sottochiave stessa. Inoltre, poiché i nomi delle voci del Registro di sistema possono contenere la barra rovesciata (\), se le voci fossero elementi non sarebbe possibile utilizzare la notazione del percorso per distinguere una voce del Registro di sistema denominata Windows\CurrentVersion\Run dalla sottochiave che si trova in tale percorso.

Ridenominazione di elementi esistenti (Rename-Item)

Per modificare il nome di un file o di una cartella, utilizzare il cmdlet Rename-Item. Con il comando seguente viene modificato il nome di file file1.txt in fileOne.txt.

PS> Rename-Item -Path C:\temp\New.Directory\file1.txt fileOne.txt

Mediante il cmdlet Rename-Item, è possibile modificare il nome di un file o di una cartella ma non spostare un elemento. Il comando seguente non sortisce alcun effetto in quanto tenta di spostare il file dalla directory New.Directory alla directory Temp.

PS> Rename-Item -Path C:\temp\New.Directory\fileOne.txt c:\temp\fileOne.txt
Rename-Item : Cannot rename because the target specified is not a path.
At line:1 char:12
+ Rename-Item  <<<< -Path C:\temp\New.Directory\fileOne c:\temp\fileOne.txt

Spostamento di elementi (Move-Item)

Per spostare un file o una cartella, utilizzare il cmdlet Move-Item.

Ad esempio, mediante il comando seguente la directory New.Directory viene spostata dalla directory C:\temp alla radice dell'unità C:. Per verificare se l'elemento è stato spostato, includere il parametro PassThru del cmdlet Move-Item. Senza Passthru, il cmdlet Move-Item non visualizza alcun risultato.

PS> Move-Item -Path C:\temp\New.Directory -Destination C:\ -PassThru

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

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2006-05-18  12:14 PM            New.Directory

Copia di elementi (Copy-Item)

Se si ha familiarità con le operazioni di copia in altre shell, il comportamento del cmdlet Copy-Item in Windows PowerShell può sembrare insolito. Quando si copia un elemento da un percorso a un altro, per impostazione predefinita il cmdlet Copy-Item non ne copia il contenuto.

Se ad esempio si copia la directory New.Directory dall'unità C: alla directory C:\temp, il comando ha esito positivo, ma i file della directory New.Directory non vengono copiati.

PS> Copy-Item -Path C:\New.Directory -Destination C:\temp

Se si visualizza il contenuto di C:\temp\New.Directory, si noterà che non contiene alcun file:

PS> Get-ChildItem -Path C:\temp\New.Directory
PS>

Perché il cmdlet Copy-Item non copia il contenuto nella nuova posizione?

Il cmdlet Copy-Item è stato progettato come strumento generico e non serve solo per la copia di file e cartelle. Inoltre, anche quando vengono copiati file e cartelle, si potrebbe desiderare di copiare solo il contenitore e non gli elementi in esso contenuti.

Per copiare tutto il contenuto di una cartella, includere nel comando il parametro Recurse del cmdlet Copy-Item. Se la directory è già stata copiata senza il relativo contenuto, aggiungere il parametro Force, che consente di sovrascrivere la cartella vuota.

PS> Copy-Item -Path C:\New.Directory -Destination C:\temp -Recurse -Force -Passthru
    Directory: Microsoft.Windows PowerShell.Core\FileSystem::C:\temp

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2006-05-18   1:53 PM            New.Directory

    Directory: Microsoft.Windows PowerShell.Core\FileSystem::C:\temp\New.Directory

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2006-05-18  11:44 AM          0 file1

Eliminazione di elementi (Remove-Item)

Per eliminare file e cartelle, utilizzare il cmdlet Remove-Item. I cmdlet di Windows PowerShell, come Remove-Item, che possono apportare modifiche irreversibili e significative, chiedono spesso conferma dell'operazione. Ad esempio, se si cerca di rimuovere la cartella New.Directory, viene chiesto di confermare il comando poiché la cartella contiene file:

PS> Remove-Item C:\New.Directory

Confirm
The item at C:\temp\New.Directory has children and the -recurse parameter was not
specified. If you continue, all children will be removed with the item. Are you
 sure you want to continue?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):

Poiché Sì è la risposta predefinita, per eliminare la cartella e i relativi file è sufficiente premere Invio. Per rimuovere la cartella senza conferma, utilizzare il parametro -Recurse.

PS> Remove-Item C:\temp\New.Directory -Recurse

Esecuzione di elementi (Invoke-Item)

Per eseguire un'azione predefinita su un file o una cartella, in Windows PowerShell viene utilizzato il cmdlet Invoke-Item. L'azione predefinita è determinata dall'applicazione che nel Registro di sistema è impostata per la sua esecuzione. Equivale a fare doppio clic sull'elemento in Esplora risorse.

Si supponga ad esempio di eseguire il comando seguente:

PS> Invoke-Item C:\WINDOWS

Viene visualizzata una finestra di Esplora risorse posizionata su C:\Windows, come se si fosse fatto doppio clic sulla cartella C:\Windows.

Se si richiama il file Boot.ini in un sistema precedente a Windows Vista:

PS> Invoke-Item C:\boot.ini

Se il file con estensione ini è associato al Blocco note, il file boot.ini viene aperto nel Blocco note.


Utilizzo di oggetti

Nelle sezioni precedenti è stato illustrato l'utilizzo degli oggetti in Windows PowerShell per trasferire dati tra cmdlet e sono state presentate alcune tecniche per visualizzare informazioni dettagliate sugli oggetti, utilizzando i cmdlet Get-Member e di tipo Format per visualizzare determinate proprietà degli oggetti.

Il punto di forza degli oggetti è dato dalla possibilità di accedere a numerosi dati complessi e dalla loro correlazione. Utilizzando alcuni semplici tecniche è possibile modificare ulteriormente gli oggetti per eseguire ulteriori operazioni. In questo capitolo verranno esaminati alcuni tipi specifici di oggetti e verrà spiegato come modificarli.


Recupero di oggetti WMI (Get-WmiObject)

Recupero di oggetti WMI (Get-WmiObject)

Strumentazione gestione Windows (WMI) è una tecnologia di base per l'amministrazione di sistemi Windows perché consente di visualizzare una vasta gamma di informazioni in modo uniforme. In considerazione delle numerose possibilità offerte da WMI, il cmdlet di Windows PowerShell per l'accesso a oggetti WMI Get-WmiObject è uno dei più utili per il lavoro. Di seguito verrà illustrato come utilizzare Get-WmiObject per accedere a oggetti WMI e come utilizzare tali oggetti per eseguire operazioni specifiche.

Visualizzazione dell'elenco delle classi WMI

Il primo problema riscontrato dalla maggior parte degli utenti di WMI è individuare le operazioni eseguibili con WMI. Le risorse gestibili vengono descritte nelle classi WMI. Sono disponibili centinaia di classi WMI, alcune delle quali includono decine di proprietà.

Con Get-WmiObject questo problema viene risolto consentendo di individuare le classi WMI. Per ottenere un elenco delle classi WMI disponibili nel computer locale, digitare:

PS> Get-WmiObject -List

__SecurityRelatedClass                  __NTLMUser9X
__PARAMETERS                            __SystemSecurity
__NotifyStatus                          __ExtendedStatus
Win32_PrivilegesStatus                  Win32_TSNetworkAdapterSettingError
Win32_TSRemoteControlSettingError       Win32_TSEnvironmentSettingError
...

È possibile recuperare le stesse informazioni da un computer remoto utilizzando il parametro ComputerName e specificando il nome o l'indirizzo IP di un computer:

PS> Get-WmiObject -List -ComputerName 192.168.1.29

__SystemClass                           __NAMESPACE
__Provider                              __Win32Provider
__ProviderRegistration                  __ObjectProviderRegistration
...

L'elenco delle classi restituito dai computer remoti può variare a seconda del sistema operativo specifico eseguito nel computer e delle estensioni WMI specifiche aggiunte dalle applicazioni installate.

Nota

Quando si utilizza Get-WmiObject per la connessione a un computer remoto, è necessario che in tale computer sia in esecuzione WMI e che, nella configurazione predefinita, l'account in uso sia incluso nel gruppo di amministratori locali del computer remoto. Non è necessario che Windows PowerShell sia installato nel sistema remoto. In tal modo è possibile amministrare sistemi operativi in cui non viene eseguito Windows PowerShell, ma in cui è disponibile WMI.

È possibile includere il parametro ComputerName anche durante la connessione al sistema locale e utilizzare come nome del computer il nome e l'indirizzo IP del computer locale (o l'indirizzo di loopback 127.0.0.1) oppure il segno '.' di WMI. Se si esegue Windows PowerShell in un computer denominato Admin01 il cui indirizzo IP è 192.168.1.90, tutti i comandi seguenti restituiranno l'elenco delle classi WMI per tale computer:

Get-WmiObject -List
Get-WmiObject -List -ComputerName .
Get-WmiObject -List -ComputerName Admin01
Get-WmiObject -List -ComputerName 192.168.1.90
Get-WmiObject -List -ComputerName 127.0.0.1
Get-WmiObject -List -ComputerName localhost

Per impostazione predefinita, per Get-WmiObject viene utilizzato lo spazio dei nomi root/cimv2. Se si desidera specificare un altro spazio dei nomi WMI, utilizzare il parametro Namespace e specificare il percorso dello spazio dei nomi corrispondente:

PS> Get-WmiObject -List -ComputerName 192.168.1.29 -Namespace root

__SystemClass                           __NAMESPACE
__Provider                              __Win32Provider
...

Visualizzazione dei dettagli delle classi WMI

Se il nome di una classe WMI è già noto, è possibile utilizzarlo per ottenere immediatamente informazioni. Ad esempio, una delle classi WMI utilizzate in genere per recuperare informazioni su un computer è Win32_OperatingSystem.

PS> Get-WmiObject -Class Win32_OperatingSystem -Namespace root/cimv2 -ComputerName .

SystemDirectory : C:\WINDOWS\system32
Organization    : Global Network Solutions
BuildNumber     : 2600
RegisteredUser  : Oliver W. Jones
SerialNumber    : 12345-678-9012345-67890
Version         : 5.1.2600

Sebbene nell'esempio vengano visualizzati tutti i parametri, è possibile esprimere il comando in modo più sintetico. Il parametro ComputerName non è necessario durante la connessione al sistema locale. In questo esempio viene visualizzato per illustrare il caso più generico e come promemoria per il parametro. Per impostazione predefinita, Namespace viene impostato su root/cimv2 e può pertanto essere omesso. La maggior parte dei cmdlet consente infine di omettere il nome di parametri comuni. Nel caso di Get-WmiObject, se non viene specificato un nome, Class verrà considerato come il primo parametro. È quindi possibile specificare l'ultimo comando digitando quanto segue:

Get-WmiObject Win32_OperatingSystem

Per la classe Win32_OperatingSystem è disponibile un numero di proprietà maggiore di quello visualizzato nell'esempio. Per visualizzarle tutte, è possibile utilizzare Get-Member. Le proprietà di una classe WMI sono automaticamente disponibili in modo analogo alle proprietà di altri oggetti:

PS> Get-WmiObject -Class Win32_OperatingSystem -Namespace root/cimv2 -ComputerName . | Get-Member -MemberType Property

   TypeName: System.Management.ManagementObject#root\cimv2\Win32_OperatingSyste
m

Name                                      MemberType Definition
----                                      ---------- ----------
__CLASS                                   Property   System.String __CLASS {...
...
BootDevice                                Property   System.String BootDevic...
BuildNumber                               Property   System.String BuildNumb...
...

Visualizzazione delle proprietà non predefinite con cmdlet di tipo Format

Se si desidera visualizzare le informazioni contenute nella classe Win32_OperatingSystem che non vengono visualizzate per impostazione predefinita, è possibile utilizzare i cmdlet Format. Ad esempio, se si desidera visualizzare i dati relativi alla memoria disponibile, digitare:

PS> Get-WmiObject -Class Win32_OperatingSystem -Namespace root/cimv2 -ComputerName . | Format-Table -Property TotalVirtualMemorySize,TotalVisibleMemorySize,FreePhysicalMemory,FreeVirtualMemory,FreeSpaceInPagingFiles

TotalVirtualMemorySize TotalVisibleMem FreePhysicalMem FreeVirtualMemo FreeSpaceInPagi
                              ory              ry         ngFiles
--------------- --------------- --------------- --------------- ---------------
        2097024          785904          305808         2056724         1558232
Nota

Con i nomi di proprietà in Format-Table è possibile utilizzare caratteri jolly, pertanto l'elemento finale della pipeline può essere ridotto a Format-Table -Property TotalV*,Free*

Per rendere i dati relativi alla memoria ancor più leggibili, è possibile formattarli come elenco digitando:

PS> Get-WmiObject -Class Win32_OperatingSystem -Namespace root/cimv2 -ComputerName . | Format-List TotalVirtualMemorySize,TotalVisibleMemorySize,FreePhysicalMemory,FreeVirtualMemory,FreeSpaceInPagingFiles

TotalVirtualMemorySize : 2097024
TotalVisibleMemorySize : 785904
FreePhysicalMemory     : 301876
FreeVirtualMemory      : 2056724
FreeSpaceInPagingFiles : 1556644


Creazione di oggetti .NET e COM (New-Object)

Con le interfacce .NET Framework e COM sono disponibili componenti software che consentono di eseguire molte attività di amministrazione del sistema. L'utilizzo di questi componenti è consentito in Windows PowerShell, ampliando pertanto il numero di attività eseguibili tramite i cmdlet. Molti dei cmdlet inclusi nella versione iniziale di Windows PowerShell non funzionano con i computer remoti. Verrà illustrato come risolvere questo problema durante la gestione dei registri eventi mediante la classe System.Diagnostics.EventLog di .NET Framework direttamente da Windows PowerShell.

Utilizzo di New-Object per l'accesso ai registri eventi

Nella libreria di classi .NET Framework è inclusa una classe denominata System.Diagnostics.EventLog che può essere utilizzata per gestire i registri eventi. È possibile creare una nuova istanza di una classe .NET Framework utilizzando il cmdlet New-Object con il parametro TypeName. Il comando seguente consente ad esempio di creare un riferimento al registro eventi:

PS> New-Object -TypeName System.Diagnostics.EventLog

  Max(K) Retain OverflowAction        Entries Name
  ------ ------ --------------        ------- ----

Sebbene tramite il comando sia stata creata un'istanza della classe EventLog, tale istanza non include dati perché non è stato specificato un registro eventi specifico. Di seguito verrà spiegato come ottenere un registro eventi effettivo.

Utilizzo di costruttori con New-Object

Per fare riferimento a un registro eventi specifico, è necessario indicare il nome del registro. New-Object dispone di un parametro ArgumentList. Gli argomenti passati come valori di questo parametro vengono utilizzati da uno speciale metodo di avvio dell'oggetto. Questo metodo è denominato costruttore perché consente di costruire l'oggetto. Ad esempio, per ottenere un riferimento al registro Application, è necessario specificare come argomento la stringa 'Application':

PS> New-Object -TypeName System.Diagnostics.EventLog -ArgumentList Application

Max(K) Retain OverflowAction        Entries Name
------ ------ --------------        ------- ----
16,384      7 OverwriteOlder          2,160 Application
Nota

Poiché la maggior parte delle classi di base di .NET Framework è inclusa nello spazio dei nomi System, in Windows PowerShell si tenterà automaticamente di trovare le classi specificate nello spazio dei nomi System se non viene trovata alcuna corrispondenza per il nome di tipo specificato. È quindi possibile specificare Diagnostics.EventLog anziché System.Diagnostics.EventLog.

Archiviazione di oggetti nelle variabili

È possibile archiviare un riferimento a un oggetto affinché sia possibile utilizzarlo nella shell corrente. Sebbene in Windows PowerShell sia possibile eseguire molte operazioni con le pipeline, evitando il ricorso alle variabili, talvolta l'archiviazione di riferimenti a oggetti semplifica notevolmente la modifica di tali oggetti.

Windows PowerShell consente di creare variabili che rappresentano essenzialmente oggetti denominati. L'output restituito da qualsiasi comando valido di Windows PowerShell può essere archiviato in una variabile. I nomi di variabile iniziano sempre con il carattere $. Se si desidera archiviare il riferimento al registro dell'applicazione in una variabile denominata $AppLog, digitare il nome della variabile seguito da un segno di uguale, quindi digitare il comando utilizzato per creare l'oggetto registro dell'applicazione:

PS> $AppLog = New-Object -TypeName System.Diagnostics.EventLog -ArgumentList Application

Se quindi si digita $AppLog, sarà possibile notare che include il registro dell'applicazione:

PS> $AppLog

  Max(K) Retain OverflowAction        Entries Name
  ------ ------ --------------        ------- ----
  16,384      7 OverwriteOlder          2,160 Application

Accesso a un registro eventi remoto con New-Object

I comandi utilizzati nella sezione precedente considerano come destinazione il computer locale. Questa operazione è supportata dal cmdlet Get-EventLog. Per accedere al registro dell'applicazione in un computer locale, è necessario specificare come argomenti sia il nome del registro che un nome di computer (oppure l'indirizzo IP).

PS> $RemoteAppLog = New-Object -TypeName System.Diagnostics.EventLog Application,192.168.1.81
PS> $RemoteAppLog

  Max(K) Retain OverflowAction        Entries Name
  ------ ------ --------------        ------- ----
     512      7 OverwriteOlder            262 Application

Una volta creato un riferimento a un registro eventi archiviato nella variabile $RemoteAppLog, a questo punto verranno esaminate le attività eseguibili su di esso.

Cancellazione di un registro eventi con i metodi degli oggetti

Agli oggetti sono spesso associati metodi che è possibile chiamare per eseguire attività. È possibile utilizzare Get-Member per visualizzare i metodi associati a un oggetto. Nel comando e nell'output selezionato riportati di seguito sono illustrati alcuni metodi della classe EventLog:

PS> $RemoteAppLog | Get-Member -MemberType Method

   TypeName: System.Diagnostics.EventLog

Name                      MemberType Definition
----                      ---------- ----------
...
Clear                     Method     System.Void Clear()
Close                     Method     System.Void Close()
...
GetType                   Method     System.Type GetType()
...
ModifyOverflowPolicy      Method     System.Void ModifyOverflowPolicy(Overfl...
RegisterDisplayName       Method     System.Void RegisterDisplayName(String ...
...
ToString                  Method     System.String ToString()
WriteEntry                Method     System.Void WriteEntry(String message),...
WriteEvent                Method     System.Void WriteEvent(EventInstance in...

Il metodo Clear() può essere utilizzato per cancellare il registro eventi. Quando si chiama un metodo, è necessario specificare le parentesi di apertura e chiusura dopo il nome del metodo, anche se per il metodo non è necessario indicare argomenti. In questo modo sarà possibile fare distinzione tra il metodo e una proprietà potenziale avente lo stesso nome. Per chiamare il metodo Clear, digitare:

PS> $RemoteAppLog.Clear()

Digitare invece quanto segue per visualizzare il registro. Si noterà che il registro eventi è stato cancellato e contiene ora 0 voci anziché 262:

PS> $RemoteAppLog

  Max(K) Retain OverflowAction        Entries Name
  ------ ------ --------------        ------- ----
     512      7 OverwriteOlder              0 Application

Creazione di oggetti COM con New-Object

New-Object consente di utilizzare i componenti COM (Component Object Model). Tali componenti possono essere costituiti dalle diverse librerie incluse in Windows Script Host (WSH) o da applicazioni ActiveX, quali Internet Explorer, installate nella maggior parte dei sistemi.

New-Object utilizza i Runtime Callable Wrapper di .NET Framework per creare oggetti COM. In questo modo, si hanno le stesse limitazioni presenti in .NET Framework quando vengono chiamati oggetti COM. Per creare un oggetto COM, è necessario specificare il parametro ComObject con il ProgID della classe COM che si desidera utilizzare. Le limitazioni previste per l'utilizzo di COM e l'individuazione dei ProgID disponibili in un sistema non rientrano tra gli argomenti trattati nella presente documentazione, tuttavia è importante sapere che in Windows PowerShell è possibile utilizzare la maggior parte degli oggetti più noti di ambienti quali WSH.

È possibile creare gli oggetti WSH specificando i ProgID WScript.Shell, WScript.Network, Scripting.Dictionary e Scripting.FileSystemObject. con i comandi seguenti:

New-Object -ComObject WScript.Shell
New-Object -ComObject WScript.Network
New-Object -ComObject Scripting.Dictionary
New-Object -ComObject Scripting.FileSystemObject

Sebbene sia possibile utilizzare altre tecniche per rendere disponibile la maggior parte delle funzionalità di tali classi in Windows PowerShell, alcune attività, tra cui la creazione di collegamenti, risulta più agevole tramite le classi WSH.

Creazione di un collegamento sul desktop con WScript.Shell

La creazione di collegamenti è una delle attività che è possibile eseguire rapidamente tramite un oggetto COM. Si supponga di voler creare sul desktop un collegamento alla home directory di Windows PowerShell. È innanzitutto necessario creare un riferimento a WScript.Shell che verrà archiviato in una variabile denominata $WshShell:

$WshShell = New-Object -ComObject WScript.Shell

Poiché Get-Member può essere utilizzato con oggetti COM, è possibile esplorare i membri dell'oggetto digitando:

PS> $WshShell | Get-Member

   TypeName: System.__ComObject#{41904400-be18-11d3-a28b-00104bd35090}

Name                     MemberType            Definition
----                     ----------            ----------
AppActivate              Method                bool AppActivate (Variant, Va...
CreateShortcut           Method                IDispatch CreateShortcut (str...
...

Get-Member dispone di un parametro InputObject facoltativo che è possibile utilizzare anziché eseguire il reindirizzamento per fornire l'input a Get-Member. L'output ottenuto sarà identico a quello riportato sopra anche se è stato utilizzato il comando Get-Member -InputObject $WshShell. Se si utilizza InputObject, il relativo argomento verrà considerato come un unico elemento. Di conseguenza, se una variabile include più oggetti, Get-Member li considererà come una matrice di oggetti. Ad esempio:

PS> $a = 1,2,"three"
PS> Get-Member -InputObject $a
TypeName: System.Object[]
Name               MemberType    Definition
----               ----------    ----------
Count              AliasProperty Count = Length
...

Il metodo WScript.Shell CreateShortcut accetta un unico argomento, ovvero il percorso del file di collegamento da creare. È possibile digitare il percorso completo del desktop, tuttavia è disponibile una tecnica più semplice. Il desktop è in genere rappresentato da una cartella denominata Desktop e inclusa nella home directory dell'utente corrente. In Windows PowerShell è disponibile una variabile $Home che include il percorso di questa cartella. È possibile utilizzare questa variabile per specificare il percorso della home directory e quindi aggiungere il nome della cartella Desktop e il nome del collegamento da creare digitando:

$lnk = $WshShell.CreateShortcut("$Home\Desktop\PSHome.lnk")

Quando si utilizza un valore simile a un nome di variabile racchiuso tra virgolette doppie, Windows PowerShell tenta di sostituirlo con un valore corrispondente. Per evitare il tentativo di sostituzione, è sufficiente utilizzare le virgolette semplici. Provare ad esempio ad eseguire i comandi seguenti:

PS> "$Home\Desktop\PSHome.lnk"
C:\Documents and Settings\aka\Desktop\PSHome.lnk
PS> '$Home\Desktop\PSHome.lnk'
$Home\Desktop\PSHome.lnk

A questo punto si dispone di una variabile denominata $lnk che include un nuovo riferimento al collegamento. Per visualizzarne i membri, è possibile reindirizzarla a Get-Member. Nell'output riportato di seguito sono indicati i membri da utilizzare per completare la creazione del collegamento:

PS> $lnk | Get-Member

TypeName: System.__ComObject#{f935dc23-1cf0-11d0-adb9-00c04fd58a0b}

Name MemberType Definition

---- ---------- ----------

...

Save Method void Save ()

...

TargetPath Property string TargetPath () {get} {set}

...

È necessario specificare il parametro TargetPath, ovvero la cartella dell'applicazione di Windows PowerShell, quindi salvare il collegamento $lnk chiamando il metodo Save. Il percorso della cartella dell'applicazione di Windows PowerShell è archiviato nella variabile $PSHome, pertanto per eseguire l'operazione è necessario digitare:

$lnk.TargetPath = $PSHome

$lnk.Save()

Utilizzo di Internet Explorer da Windows PowerShell

È possibile utilizzare COM per automatizzare molte applicazioni, inclusa la famiglia di applicazioni di Microsoft Office e Internet Explorer. Internet Explorer consente di illustrare alcune delle tecniche e dei problemi tipici associati all'utilizzo di applicazioni basate su COM.

Per creare un'istanza di Internet Explorer, è possibile specificarne il relativo ProgID, ovvero InternetExplorer.Application:

$ie = New-Object -ComObject InternetExplorer.Application

Questo comando consente di avviare Internet Explorer, ma non di renderlo visibile. Se si digita Get-Process, si nota che è in esecuzione un processo denominato iexplore che rimarrà in esecuzione anche se si esce da Windows PowerShell. Per terminare il processo iexplore, sarà necessario riavviare il computer o utilizzare un'utilità come Gestione attività.

Nota

All'avvio, gli oggetti COM che vengono avviati come processi separati, denominati in genere eseguibili ActiveX, potrebbero visualizzare o meno una finestra dell'interfaccia utente. Se consentono di creare una finestra ma non di renderla visibile, come nel caso di Internet Explorer, lo stato attivo verrà in genere spostato sul desktop di Windows e sarà necessario rendere visibile la finestra per potervi interagire.

Digitando $ie | Get-Member, è possibile visualizzare proprietà e metodi per Internet Explorer. Per visualizzare la finestra di Internet Explorer, impostare la proprietà Visible su $true digitando:

$ie.Visible = $true

Sarà quindi possibile connettersi a un indirizzo Web specifico utilizzando il metodo Navigate:

$ie.Navigate("http://www.microsoft.com/technet/scriptcenter/default.mspx")

Utilizzando altri membri del modello a oggetti di Internet Explorer, è possibile recuperare contenuto di testo della pagina Web. Il comando seguente consente di visualizzare il testo HTML presente nel corpo della pagina Web corrente:

$ie.Document.Body.InnerText

Per chiudere Internet Explorer dall'interno di PowerShell, chiamare il relativo metodo Quit():

$ie.Quit()

In tal modo si forzerà la chiusura di Internet Explorer. La variabile $ie non contiene più un riferimento valido sebbene sembri ancora essere un oggetto COM. Se si tenta di utilizzarla, verrà restituito un errore di automazione:

PS> $ie | Get-Member
Get-Member : Exception retrieving the string representation for property "Appli
cation" : "The object invoked has disconnected from its clients. (Exception fro
m HRESULT: 0x80010108 (RPC_E_DISCONNECTED))"
At line:1 char:16
+ $ie | Get-Member <<<<

È possibile rimuovere il riferimento rimanente con un comando simile a $ie = $null, oppure rimuovere completamente la variabile digitando:

Remove-Variable ie
Nota

Non è disponibile uno standard comune che consenta di stabilire se l'esecuzione degli eseguibili ActiveX debba continuare o essere interrotta quando si rimuove il riferimento a uno di essi. L'applicazione verrà chiusa a seconda delle circostanze, ad esempio se è o meno visibile, se in essa viene eseguito un documento modificato e persino se Windows PowerShell è ancora in esecuzione. Per tale motivo, è consigliabile testare il comportamento di chiusura di ogni eseguibile ActiveX che si desidera utilizzare in Windows PowerShell.

Visualizzazione di avvisi su oggetti COM con wrapper .NET Framework

In alcuni casi, è possibile che a un oggetto COM sia associato un Runtime Callable Wrapper o RCW di .NET Framework che verrà utilizzato da New-Object. Poiché il comportamento dell'RCW potrebbe differire da quello del normale oggetto COM, New-Object dispone di un parametro Strict che avvisa l'utente dell'accesso a RCW. Se si specifica il parametro Strict e si crea un oggetto COM che utilizza un RCW, verrà visualizzato un messaggio di avviso:

PS> $xl = New-Object -ComObject Excel.Application -Strict
New-Object : The object written to the pipeline is an instance of the type "Mic
rosoft.Office.Interop.Excel.ApplicationClass" from the component's primary inte
rop assembly. If this type exposes different members than the IDispatch members
, scripts written to work with this object might not work if the primary intero
p assembly is not installed.
At line:1 char:17
+ $xl = New-Object  <<<< -ComObject Excel.Application -Strict

L'oggetto verrà comunque creato ma si verrà avvisati che non si tratta di un oggetto COM standard.


Utilizzo di classi e metodi statici

Non è possibile utilizzare New-Object per creare tutte le classi .NET Framework. Ad esempio, se si tenta di creare un oggetto System.Environment o System.Math con New-Object, verranno restituiti i messaggi di errore seguenti:

PS> New-Object System.Environment
New-Object : Constructor not found. Cannot find an appropriate constructor for
type System.Environment.
At line:1 char:11
+ New-Object  <<<< System.Environment
PS> New-Object System.Math
New-Object : Constructor not found. Cannot find an appropriate constructor for
type System.Math.
At line:1 char:11
+ New-Object  <<<< System.Math

Tali errori si verificano perché non è possibile utilizzare queste classi per creare un nuovo oggetto. Tali classi sono infatti librerie di riferimento di metodi e proprietà che non prevedono la modifica dello stato. Non devono essere create ma solo utilizzate. Classi e metodi di questo tipo vengono definite classi statiche perché non vengono create, eliminate definitivamente o modificate. Per chiarire questo concetto, verranno forniti esempi in cui vengono utilizzate classi statiche.

Recupero dei dati relativi all'ambiente con System.Environment

Per poter gestire un oggetto in Windows PowerShell, il primo passaggio consiste in genere nell'utilizzare Get-Member per individuare i membri in esso contenuti. Con le classi statiche il processo è leggermente diverso perché la classe effettiva non è costituita da un oggetto.

Aggiunta di un riferimento alla classe statica System.Environment

È possibile fare riferimento a una classe statica racchiudendo il nome della classe tra parentesi quadre. È ad esempio possibile fare riferimento a System.Environment digitandone il nome tra parentesi quadre. In tal modo verranno visualizzate alcune informazioni generiche sul tipo:

PS> [System.Environment]

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     False    Environment                              System.Object
Nota

Come spiegato in precedenza, quando si utilizza New-Object in Windows PowerShell viene automaticamente aggiunto 'System.' all'inizio dei nomi di tipo. Lo stesso comportamento viene applicato quando si utilizza un nome di tipo tra parentesi quadre, pertanto sarà possibile specificare [System.Environment] come [Environment].

La classe System.Environment contiene informazioni di carattere generale sull'ambiente di lavoro del processo corrente, che corrisponde a powershell.exe quando si opera in Windows PowerShell.

Se si tenta di visualizzare i dettagli di questa classe digitando [System.Environment] | Get-Member, il tipo dell'oggetto restituito sarà System.RuntimeType e non System.Environment:

PS> [System.Environment] | Get-Member

   TypeName: System.RuntimeType

Per visualizzare i membri statici con Get-Member, specificare il parametro Static :

PS> [System.Environment] | Get-Member -Static

   TypeName: System.Environment

Name                       MemberType Definition
----                       ---------- ----------
Equals                     Method     static System.Boolean Equals(Object ob...
Exit                       Method     static System.Void Exit(Int32 exitCode)
...
CommandLine                Property   static System.String CommandLine {get;}
CurrentDirectory           Property   static System.String CurrentDirectory ...
ExitCode                   Property   static System.Int32 ExitCode {get;set;}
HasShutdownStarted         Property   static System.Boolean HasShutdownStart...
MachineName                Property   static System.String MachineName {get;}
NewLine                    Property   static System.String NewLine {get;}
OSVersion                  Property   static System.OperatingSystem OSVersio...
ProcessorCount             Property   static System.Int32 ProcessorCount {get;}
StackTrace                 Property   static System.String StackTrace {get;}
SystemDirectory            Property   static System.String SystemDirectory {...
TickCount                  Property   static System.Int32 TickCount {get;}
UserDomainName             Property   static System.String UserDomainName {g...
UserInteractive            Property   static System.Boolean UserInteractive ...
UserName                   Property   static System.String UserName {get;}
Version                    Property   static System.Version Version {get;}
WorkingSet                 Property   static System.Int64 WorkingSet {get;}
TickCount                               ExitCode

A questo punto sarà possibile selezionare le proprietà da visualizzare da System.Environment.

Visualizzazione delle proprietà statiche di System.Environment

Anche le proprietà di System.Environment sono statiche e devono essere specificate in modo diverso rispetto a quelle normali. Per indicare a Windows PowerShell che si desidera operare con una proprietà o un metodo statico viene utilizzato ::. Per visualizzare il comando utilizzato per avviare Windows PowerShell, verrà verificata la proprietà CommandLine digitando:

PS> [System.Environment]::Commandline
"C:\Program Files\Windows PowerShell\v1.0\powershell.exe"

Per verificare la versione del sistema operativo, visualizzare la proprietà OSVersion digitando:

PS> [System.Environment]::OSVersion

           Platform ServicePack         Version             VersionString
           -------- -----------         -------             -------------
            Win32NT Service Pack 2      5.1.2600.131072     Microsoft Window...

Per verificare se l'arresto del computer è stato avviato, è possibile visualizzare la proprietà HasShutdownStarted :

PS> [System.Environment]::HasShutdownStarted
False

Esecuzione di operazioni matematiche con System.Math

La classe statica System.Math è utile per eseguire alcune operazioni matematiche. I membri importanti di System.Math sono costituiti principalmente da metodi visualizzabili tramite Get-Member.

Nota

Per System.Math sono disponibili diversi metodi caratterizzati dallo stesso nome, ma distinguibili in base al tipo dei relativi parametri.

Digitare il comando seguente per visualizzare l'elenco dei metodi della classe System.Math.

PS> [System.Math] | Get-Member -Static -MemberType Methods

   TypeName: System.Math

Name            MemberType Definition
----            ---------- ----------
Abs             Method     static System.Single Abs(Single value), static Sy...
Acos            Method     static System.Double Acos(Double d)
Asin            Method     static System.Double Asin(Double d)
Atan            Method     static System.Double Atan(Double d)
Atan2           Method     static System.Double Atan2(Double y, Double x)
BigMul          Method     static System.Int64 BigMul(Int32 a, Int32 b)
Ceiling         Method     static System.Double Ceiling(Double a), static Sy...
Cos             Method     static System.Double Cos(Double d)
Cosh            Method     static System.Double Cosh(Double value)
DivRem          Method     static System.Int32 DivRem(Int32 a, Int32 b, Int3...
Equals          Method     static System.Boolean Equals(Object objA, Object ...
Exp             Method     static System.Double Exp(Double d)
Floor           Method     static System.Double Floor(Double d), static Syst...
IEEERemainder   Method     static System.Double IEEERemainder(Double x, Doub...
Log             Method     static System.Double Log(Double d), static System...
Log10           Method     static System.Double Log10(Double d)
Max             Method     static System.SByte Max(SByte val1, SByte val2), ...
Min             Method     static System.SByte Min(SByte val1, SByte val2), ...
Pow             Method     static System.Double Pow(Double x, Double y)
ReferenceEquals Method     static System.Boolean ReferenceEquals(Object objA...
Round           Method     static System.Double Round(Double a), static Syst...
Sign            Method     static System.Int32 Sign(SByte value), static Sys...
Sin             Method     static System.Double Sin(Double a)
Sinh            Method     static System.Double Sinh(Double value)
Sqrt            Method     static System.Double Sqrt(Double d)
Tan             Method     static System.Double Tan(Double a)
Tanh            Method     static System.Double Tanh(Double value)
Truncate        Method     static System.Decimal Truncate(Decimal d), static...

Verranno visualizzati diversi metodi matematici. Di seguito è riportato un elenco di comandi che illustrano il funzionamento di alcuni metodi comuni:

PS> [System.Math]::Sqrt(9)
3
PS> [System.Math]::Pow(2,3)
8
PS> [System.Math]::Floor(3.3)
3
PS> [System.Math]::Floor(-3.3)
-4
PS> [System.Math]::Ceiling(3.3)
4
PS> [System.Math]::Ceiling(-3.3)
-3
PS> [System.Math]::Max(2,7)
7
PS> [System.Math]::Min(2,7)
2
PS> [System.Math]::Truncate(9.3)
9
PS> [System.Math]::Truncate(-9.3)
-9


Rimozione di oggetti dalla pipeline (Where-Object)

In Windows PowerShell si genera e si passa attraverso la pipeline un numero di oggetti superiore a quello desiderato. È possibile utilizzare i cmdlet di tipo Format per specificare le proprietà di determinati oggetti da visualizzare. Tale soluzione non consente di risolvere il problema della rimozione di interi oggetti dalla visualizzazione. È infatti preferibile filtrare gli oggetti prima della fine di una pipeline, in modo da eseguire le azioni solo su un subset degli oggetti generati inizialmente.

Windows PowerShell include un cmdlet Where-Object che consente di testare i singoli oggetti della pipeline e di passare solo quelli che soddisfano una determinata condizione di test. Gli oggetti che non superano il test verranno rimossi dalla pipeline. La condizione di test deve essere specificata come valore del parametro Where-Object FilterScript .

Esecuzione di semplici test con Where-Object

Il valore di FilterScript è un blocco di script, ovvero uno o più comandi di Windows PowerShell racchiusi tra parentesi graffe {}, che restituisce true o false. Tali blocchi di script possono essere molto semplici, tuttavia per crearli è necessario conoscere gli operatori di confronto, un'altra funzionalità di Windows PowerShell. Un operatore di confronto consente di confrontare gli elementi riportati prima e dopo di esso. Gli operatori di confronto iniziano con un carattere '-' e sono seguiti da un nome. Operatori di confronto di base possono essere utilizzati su quasi ogni tipo di oggetto. È possibile che gli operatori di confronto più complessi siano utilizzabili solo su testo o su matrici.

Nota

Per impostazione predefinita, quando vengono utilizzati su testo, gli operatori di confronto di Windows PowerShell non fanno distinzione tra maiuscole e minuscole.

Per considerazioni correlate all'analisi, come operatori di confronto non vengono utilizzati simboli quali <,> e =. bensì lettere. Nella tabella seguente sono elencati gli operatori di confronto di base.

Operatore di confronto | Significato | Esempio (restituisce True)
-eq | È uguale a | 1 -eq 1
-ne | È diverso da | 1 -ne 2
-lt | È minore di | 1 -lt 2
-le | È minore di o uguale a | 1 -le 2
-gt | È maggiore di | 2 -gt 1
-ge | È maggiore di o uguale a | 2 -ge 1
-like | È simile a (confronto con caratteri jolly per il testo) | "file.doc" -like "f*.do?"
-notlike | Non simile a (confronto con caratteri jolly per il testo) | "file.doc" -notlike "p*.doc"
-contains | Contiene | 1,2,3 -contains 1
-notcontains | Non contiene | 1,2,3 -notcontains 4

Nei blocchi di script Where-Object la variabile speciale '$_' viene utilizzata per fare riferimento all'oggetto corrente della pipeline. Di seguito è riportato un esempio del funzionamento di Where-Object. Se si dispone di un elenco di numeri e si desidera che vengano restituiti solo quelli minori di 3, è possibile utilizzare Where-Object per filtrare i numeri digitando:

PS> 1,2,3,4 | Where-Object -FilterScript {$_ -lt 3}
1
2

Filtraggio in base alle proprietà degli oggetti

Poiché $_ fa riferimento all'oggetto corrente della pipeline, è possibile accedere alle relative proprietà per i test da eseguire.

A titolo di esempio è possibile esaminare la classe Win32_SystemDriver in WMI. Tra le centinaia di driver disponibili in un determinato sistema è possibile che si sia interessati a un set specifico, che include ad esempio quelli attualmente in esecuzione. Se si utilizza Get-Member per visualizzare i membri di Win32_SystemDriver (Get-WmiObject -Class Win32_SystemDriver | Get-Member -MemberType Property), si noterà che la proprietà pertinente è State e che il valore di tale proprietà è "Running" quando il driver è in esecuzione. È quindi possibile filtrare i driver di sistema e selezionare solo quelli in esecuzione digitando:

Get-WmiObject -Class Win32_SystemDriver | Where-Object -FilterScript {$_.State -eq "Running"}

L'elenco restituito sarà comunque particolarmente lungo. È quindi possibile che si desideri filtrarlo in modo da selezionare solo i driver impostati per l'avvio automatico tramite la verifica del valore di StartMode:

PS> Get-WmiObject -Class Win32_SystemDriver | Where-Object -FilterScript {$_.State -eq "Running"} | Where-Object -FilterScript {$_.StartMode -eq "Auto"}

DisplayName : RAS Asynchronous Media Driver
Name        : AsyncMac
State       : Running
Status      : OK
Started     : True

DisplayName : Audio Stub Driver
Name        : audstub
State       : Running
Status      : OK
Started     : True

In questo modo verranno restituite molte informazioni che non risultano più necessarie perché è noto che i driver sono in esecuzione. Infatti, le uniche informazioni necessarie in questa fase sono probabilmente il nome e il nome visualizzato. Nel comando seguente vengono incluse solo queste due proprietà, garantendo un output molto più semplice:

PS> Get-WmiObject -Class Win32_SystemDriver | Where-Object -FilterScript {$_.State -eq "Running"} | Where-Object -FilterScript {$_.StartMode -eq "Manual"} | Format-Table -Property Name,DisplayName

Name                                    DisplayName
----                                    -----------
AsyncMac                                RAS Asynchronous Media Driver
Fdc                                     Floppy Disk Controller Driver
Flpydisk                                Floppy Disk Driver
Gpc                                     Generic Packet Classifier
IpNat                                   IP Network Address Translator
mouhid                                  Mouse HID Driver
MRxDAV                                  WebDav Client Redirector
mssmbios                                Microsoft System Management BIOS Driver

Il comando precedente include due elementi Where-Object che tuttavia possono essere espressi in un unico elemento Where-Object tramite l'operatore logico -and, come nell'esempio seguente:

Get-WmiObject -Class Win32_SystemDriver | Where-Object -FilterScript { ($_.State -eq "Running") -and ($_.StartMode -eq "Manual") } | Format-Table -Property Name,DisplayName

Nella tabella seguente sono elencati gli operatori logici standard.

Operatore logico | Significato | Esempio (restituisce True)
-and | And logico. Restituisce true se il valore di entrambi gli elementi è true | (1 -eq 1) -and (2 -eq 2)
-or | Or logico. Restituisce true se il valore di uno degli elementi è true | (1 -eq 1) -or (1 -eq 2)
-not | Not logico. Inverte true e false | -not (1 -eq 2)
! | Not logico. Inverte true e false | !(1 -eq 2)


Ripetizione di un'attività per più oggetti (ForEach-Object)

Il cmdlet ForEach-Object utilizza blocchi di script e il descrittore $_ dell'oggetto pipeline corrente per consentire l'esecuzione di un comando su ogni oggetto della pipeline. Può pertanto essere utilizzato per eseguire alcune attività complesse.

Una situazione in cui può risultare utile è quella in cui i dati vengono modificati per renderli più utili. È ad esempio possibile utilizzare la classe Win32_LogicalDisk di WMI per restituire le informazioni sullo spazio disponibile per ciascun disco locale. I dati restituiti sono espressi in byte e pertanto difficili da leggere:

PS> Get-WmiObject -Class Win32_LogicalDisk

DeviceID     : C:
DriveType    : 3
ProviderName :
FreeSpace    : 50665070592
Size         : 203912880128
VolumeName   : Local Disk

È quindi possibile convertire il valore di FreeSpace in megabyte dividendo due volte ciascun valore per 1024. Dopo la prima divisione i dati saranno infatti espressi in kilobyte, mentre dopo la seconda saranno espressi in megabyte. Per eseguire questa operazione in un blocco di script ForEach-Object, digitare:

Get-WmiObject -Class Win32_LogicalDisk | ForEach-Object -Process {($_.FreeSpace)/1024.0/1024.0}
48318.01171875

Sfortunatamente, l'output restituito è costituito da dati cui non è associata nessuna etichetta. Poiché le proprietà WMI di questo tipo sono di sola lettura, non è possibile convertire direttamente il valore di FreeSpace. Se si digita:

Get-WmiObject -Class Win32_LogicalDisk | ForEach-Object -Process {$_.FreeSpace = ($_.FreeSpace)/1024.0/1024.0}

Verrà visualizzato un messaggio di errore:

"FreeSpace" is a ReadOnly property.
At line:1 char:70
+ Get-WmiObject -Class Win32_LogicalDisk | ForEach-Object -Process {$_.F <<<< r
eeSpace = ($_.FreeSpace)/1024.0/1024.0}

È possibile riorganizzare i dati utilizzando alcune tecniche avanzate, tuttavia un approccio più semplice consiste nel creare un nuovo oggetto tramite Select-Object.


Selezione di parti di oggetti (Select-Object)

È possibile utilizzare il cmdlet Select-Object per creare nuovi oggetti Windows PowerShell personalizzati contenenti proprietà selezionate dagli oggetti utilizzati per crearli. Digitare il comando seguente per creare un nuovo oggetto che include solo le proprietà Name e FreeSpace della classe Win32_LogicalDisk di WMI:

PS> Get-WmiObject -Class Win32_LogicalDisk | Select-Object -Property Name,FreeSpace

Name                                    FreeSpace
----                                    ---------
C:                                      50664845312

Dopo l'esecuzione del comando non è possibile visualizzare il tipo di dati, tuttavia se si reindirizza il risultato a Get-Member dopo Select-Object è possibile verificare che è presente un nuovo tipo di oggetto, ovvero PSCustomObject:

PS> Get-WmiObject -Class Win32_LogicalDisk | Select-Object -Property Name,FreeSpace| Get-Member

   TypeName: System.Management.Automation.PSCustomObject

Name        MemberType   Definition
----        ----------   ----------
Equals      Method       System.Boolean Equals(Object obj)
GetHashCode Method       System.Int32 GetHashCode()
GetType     Method       System.Type GetType()
ToString    Method       System.String ToString()
FreeSpace   NoteProperty  FreeSpace=...
Name        NoteProperty System.String Name=C:

Select-Object viene utilizzato per diversi scopi, ad esempio per la replica dei dati che è possibile modificare in un secondo momento. In tal senso consente di risolvere il problema riscontrato nella sezione precedente. È infatti possibile aggiornare il valore di FreeSpace negli oggetti appena creati in modo da includere nell'output l'etichetta descrittiva:

Get-WmiObject -Class Win32_LogicalDisk | Select-Object -Property Name,FreeSpace | ForEach-Object -Process {$_.FreeSpace = ($_.FreeSpace)/1024.0/1024.0; $_}
Name                                                                  FreeSpace
----                                                                  ---------
C:                                                                48317.7265625


Ordinamento di oggetti

È possibile utilizzare il cmdlet Sort-Object per organizzare i dati visualizzati e semplificarne l'analisi. Sort-Object accetta il nome di una o più proprietà in base a cui effettuare l'ordinamento e restituisce i dati ordinati in base ai valori di tali proprietà.

Si consideri il problema della visualizzazione dell'elenco delle istanze di Win32_SystemDriver. Per ordinare in base a State, quindi in base a Name, è possibile digitare:

Get-WmiObject -Class Win32_SystemDriver | Sort-Object -Property State,Name | Format-Table -Property Name,State,Started,DisplayName -AutoSize -Wrap

Sebbene l'elenco visualizzato includa molte voci, è possibile notare che le voci caratterizzate dallo stesso stato sono raggruppate:

Name           State   Started DisplayName
----           -----   ------- -----------
ACPI           Running    True Microsoft ACPI Driver
AFD            Running    True AFD
AmdK7          Running    True AMD K7 Processor Driver
AsyncMac       Running    True RAS Asynchronous Media Driver
...
Abiosdsk       Stopped   False Abiosdsk
ACPIEC         Stopped   False ACPIEC
aec            Stopped   False Microsoft Kernel Acoustic Echo Canceller
...

È inoltre possibile ordinare gli oggetti in ordine inverso specificando il parametro Descending. In tal caso l'ordinamento verrà invertito in modo che i nomi vengano visualizzati in ordine alfabetico inverso e i numeri in ordine decrescente.

PS> Get-WmiObject -Class Win32_SystemDriver | Sort-Object -Property State,Name -Descending | Format-Table -Property Name,State,Started,DisplayName -AutoSize -Wrap

Name           State   Started DisplayName
----           -----   ------- -----------
WS2IFSL        Stopped   False Windows Socket 2.0 Non-IFS Service Provider Supp
                               ort Environment
wceusbsh       Stopped   False Windows CE USB Serial Host Driver...
...
wdmaud         Running    True Microsoft WINMM WDM Audio Compatibility Driver
Wanarp         Running    True Remote Access IP ARP Driver
...


Utilizzo di variabili per l'archiviazione di oggetti

In Windows PowerShell vengono utilizzati oggetti. Windows PowerShell consente infatti di creare variabili, che rappresentano essenzialmente oggetti denominati e vengono utilizzate per mantenere l'output da utilizzare in un secondo momento. Se si è abituati a utilizzare variabili in altre shell, tenere presente che le variabili di Windows PowerShell corrispondono a oggetti e non a testo.

I nomi delle variabili sono sempre contraddistinti dal carattere iniziale $ e possono includere qualsiasi carattere alfanumerico oppure il carattere di sottolineatura.

Creazione di una variabile

È possibile creare una variabile digitando un nome di variabile valido:

PS> $loc
PS>

Questo comando non restituirà alcun risultato perché $loc non ha alcun valore. È possibile creare una variabile e assegnare ad essa un valore con un'unica operazione. In Windows PowerShell la variabile viene creata solo se non è già esistente. In caso contrario il valore specificato verrà assegnato alla variabile esistente. Per archiviare il percorso corrente nella variabile $loc, digitare:

$loc = Get-Location

Quando si digita questo comando, non viene visualizzato nessun output perché l'output viene inviato a $loc. In Windows PowerShell l'output visualizzato è un effetto collaterale del fatto che i dati non reindirizzati in altro modo vengono sempre inviati allo schermo. Se si digita $loc, verrà visualizzato il percorso corrente:

PS> $loc

Path
----
C:\temp

È possibile utilizzare Get-Member per visualizzare informazioni sul contenuto delle variabili. Se la variabile $loc viene reindirizzata a Get-Member, verrà visualizzato che si tratta di un oggetto PathInfo, come l'output restituito da Get-Location:

PS> $loc | Get-Member -MemberType Property

   TypeName: System.Management.Automation.PathInfo

Name         MemberType Definition
----         ---------- ----------
Drive        Property   System.Management.Automation.PSDriveInfo Drive {get;}
Path         Property   System.String Path {get;}
Provider     Property   System.Management.Automation.ProviderInfo Provider {...
ProviderPath Property   System.String ProviderPath {get;}

Modifica di variabili

In Windows PowerShell sono disponibili diversi comandi per la modifica delle variabili. Per visualizzare un elenco completo dei comandi in formato leggibile, digitare:

Get-Command -Noun Variable | Format-Table -Property Name,Definition -AutoSize -Wrap

Oltre alle variabili create nella sessione corrente di Windows PowerShell, esistono diverse variabili definite dal sistema. È possibile utilizzare il cmdlet Remove-Variable per cancellare tutte le variabili non controllate da Windows PowerShell. Digitare il seguente comando per cancellare tutte le variabili:

Remove-Variable -Name * -Force -ErrorAction SilentlyContinue

Verrà visualizzata la richiesta di conferma visualizzata di seguito.

Confirm
Are you sure you want to perform this action?
Performing operation "Remove Variable" on Target "Name: Error".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):A

Se successivamente si esegue il cmdlet Get-Variable, verranno visualizzate le variabili di Windows PowerShell rimanenti. Poiché è disponibile anche un'unità Windows PowerShell delle variabili, per visualizzare tutte le variabili di Windows PowerShell digitare:

Get-ChildItem variable:

Utilizzo delle variabili di Cmd.exe

Sebbene Windows PowerShell non corrisponda a Cmd.exe, viene eseguito in un ambiente della shell dei comandi e consente di utilizzare le stesse variabili disponibili in qualsiasi ambiente in Windows. Queste variabili vengono esposte tramite un'unità denominata env:. Per visualizzare queste variabili, digitare:

Get-ChildItem env:

Sebbene i cmdlet di variabili standard non siano progettati per l'utilizzo di variabili env:, è comunque possibile utilizzarli specificando il prefisso env:. Ad esempio, per visualizzare la directory radice del sistema operativo, è possibile utilizzare variabile %SystemRoot% della shell dei comandi dall'interno di Windows PowerShell digitando:

PS> $env:SystemRoot
C:\WINDOWS

È inoltre possibile creare e modificare variabili di ambiente dall'interno di Windows PowerShell. Le variabili di ambiente accessibili da Windows PowerShell sono conformi alle normali regole previste per le variabili di ambiente disponibili in altri componenti di Windows.


Utilizzo di Windows PowerShell per l'amministrazione

L'obiettivo fondamentale di Windows PowerShell è assicurare un controllo amministrativo migliore e più agevole sui sistemi, sia in modo interattivo che tramite script. In questo capitolo verranno esaminate le soluzioni a numerosi problemi specifici correlati all'amministrazione di sistemi Windows con Windows PowerShell. Sebbene nel Manuale dell'utente di Windows PowerShell non siano stati illustrati script o funzioni, è possibile utilizzare le soluzioni da script o funzioni in un secondo momento. Negli esempi riportati verranno infatti utilizzate funzioni nell'ambito delle soluzioni per la risoluzione dei problemi.

Nelle descrizioni delle soluzioni saranno incluse diverse soluzioni basate su cmdlet specifici, sul cmdlet Get-WmiObject generale e su strumenti esterni che fanno parte delle infrastrutture Windows e .NET Framework. L'utilizzo di strumenti esterni rientra nell'intento di progettazione a lungo termine di Windows PowerShell. Persino con la crescita del sistema gli utenti si troveranno continuamente a fronteggiare situazioni in cui i set di strumenti disponibili non consentono di eseguire tutte le operazioni desiderate. Anziché basarsi unicamente sulle implementazioni di cmdlet, Windows PowerShell tenta di supportare l'integrazione di soluzioni da ogni possibile scenario alternativo.


Gestione dei processi con cmdlet di tipo Process

È possibile utilizzare il cmdlet Process in Windows PowerShell per gestire processi locali e remoti.

Recupero dei processi (Get-Process)

Per ottenere i processi in esecuzione nel computer locale, eseguire Get-Process senza parametri.

È possibile ottenere determinati processi specificando i relativi nomi o ID. Il comando seguente consente di ottenere il processo Idle:

PS> Get-Process -id 0
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
      0       0        0         16     0               0 Idle

Sebbene sia normale che i cmdlet non restituiscano dati in alcune situazioni, quando si specifica un processo in base al relativo ProcessId, Get-Process genererà un errore se non vengono trovate corrispondenze poiché l'intento è in genere quello di recuperare un processo in esecuzione già noto. Se non è disponibile nessun processo con tale Id, è probabile che l'Id non sia corretto oppure che il processo di interesse sia già terminato:

PS> Get-Process -Id 99
Get-Process : No process with process ID 99 was found.
At line:1 char:12
+ Get-Process  <<<< -Id 99

È possibile utilizzare il parametro Name del cmdlet Get-Process per specificare un sottoinsieme di processi basato sui nomi. Il parametro Name può accettare più nomi in un elenco delimitato da virgole e supporta l'utilizzo di caratteri jolly, pertanto è possibile digitare modelli di nome.

Ad esempio, nel comando seguente vengono ottenuti i processi i cui nomi iniziano con "ex."

PS> Get-Process -Name ex*
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    234       7     5572      12484   134     2.98   1684 EXCEL
    555      15    34500      12384   134   105.25    728 explorer

La classe System.Diagnostics.Process di .NET rappresenta la base dei processi di Windows PowerShell, pertanto è conforme ad alcune delle convenzioni utilizzate da System.Diagnostics.Process. Una di tali convenzioni prevede che il nome del processo di un eseguibile non deve mai includere l'estensione ".exe" alla fine del nome dell'eseguibile.

Get-Process accetta anche più valori per il parametro Name.

PS> Get-Process -Name exp*,power*
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    540      15    35172      48148   141    88.44    408 explorer
    605       9    30668      29800   155     7.11   3052 powershell

È possibile utilizzare il parametro ComputerName del cmdlet Get-Process per ottenere i processi in computer remoti. Ad esempio, nel comando seguente vengono ottenuti i processi di PowerShell nel computer locale (rappresentato da "localhost") e in due computer remoti.

PS> Get-Process -Name PowerShell -ComputerName localhost, Server01, Server02
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    258       8    29772      38636   130            3700 powershell
    398      24    75988      76800   572            5816 powershell
    605       9    30668      29800   155     7.11   3052 powershell

I nomi dei computer non sono visibili in questa visualizzazione, ma vengono archiviati nella proprietà MachineName degli oggetti processo restituiti da Get-Process. Nel comando seguente viene utilizzato il cmdlet Format-Table per visualizzare l'ID processo e le proprietà ProcessName e MachineName (ComputerName) degli oggetti processo.

PS> Get-Process -Name PowerShell -ComputerName localhost, Server01, Server01 | Format-Table -Property ID, ProcessName, MachineName
  Id ProcessName MachineName
  -- ----------- -----------
3700 powershell  Server01
3052 powershell  Server02
5816 powershell  localhost

Questo comando più complesso aggiunge la proprietà MachineName alla visualizzazione standard di Get-Process. Il carattere di apice inverso (`)(ASCII 96) è il carattere di continuazione di Windows PowerShell.

get-process powershell -computername localhost, Server01, Server02 | format-table -property Handles, `
                    @{Label="NPM(K)";Expression={[int]($_.NPM/1024)}}, `
                    @{Label="PM(K)";Expression={[int]($_.PM/1024)}}, `
                    @{Label="WS(K)";Expression={[int]($_.WS/1024)}}, `
                    @{Label="VM(M)";Expression={[int]($_.VM/1MB)}}, `
                    @{Label="CPU(s)";Expression={if ($_.CPU -ne $()`
                    {$_.CPU.ToString("N")}}}, `
                    Id, ProcessName, MachineName -auto

Handles  NPM(K)  PM(K) WS(K) VM(M) CPU(s)  Id ProcessName  MachineName
-------  ------  ----- ----- ----- ------  -- -----------  -----------
    258       8  29772 38636   130         3700 powershell Server01
    398      24  75988 76800   572         5816 powershell localhost
    605       9  30668 29800   155 7.11    3052 powershell Server02

Arresto dei processi (Stop-Process)

Windows PowerShell assicura la massima flessibilità non solo per la visualizzazione dell'elenco dei processi, ma anche per l'arresto di un processo.

Il cmdlet Stop-Process accetta infatti il nome o l'ID per la specifica di un processo che si desidera arrestare. La possibilità di arrestare processi dipende dalle autorizzazioni disponibili. Alcuni processi non possono essere arrestati. Se ad esempio si tenta di arrestare il processo Idle, verrà visualizzato un errore:

PS> Stop-Process -Name Idle
Stop-Process : Process 'Idle (0)' cannot be stopped due to the following error:
 Access is denied
At line:1 char:13
+ Stop-Process  <<<< -Name Idle

È inoltre possibile utilizzare il parametro Confirm per forzare la visualizzazione del messaggio di conferma. Questo parametro è particolarmente utile se si utilizza un carattere jolly per la specifica del nome del processo perché è possibile che nella corrispondenza vengano accidentalmente inclusi alcuni processi che non si desidera arrestare:

PS> Stop-Process -Name t*,e* -Confirm
Confirm
Are you sure you want to perform this action?
Performing operation "Stop-Process" on Target "explorer (408)".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):n
Confirm
Are you sure you want to perform this action?
Performing operation "Stop-Process" on Target "taskmgr (4072)".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):n

Per la modifica dei processi complessi è possibile utilizzare alcuni cmdlet di filtraggio degli oggetti. Poiché un oggetto Process è caratterizzato da una proprietà Responding il cui valore è true quando il processo non risponde più, è possibile arrestare tutte le applicazioni che non rispondono utilizzando il seguente comando:

Get-Process | Where-Object -FilterScript {$_.Responding -eq $false} | Stop-Process

Lo stesso approccio può essere utilizzato anche in altre situazioni. Si supponga ad esempio che un'applicazione secondaria dell'area di notifica venga eseguita automaticamente quando gli utenti avviano un'altra applicazione. È possibile che tale applicazione non venga eseguita correttamente nelle sessioni Servizi terminal ma che si desideri mantenerla nelle sessioni in esecuzione nella console del computer fisico. Le sessioni connesse al desktop del computer fisico sono caratterizzate dall'ID 0, pertanto è possibile arrestare tutte le istanze del processo presenti in altre sessioni utilizzando Where-Object e il processo SessionId:

Get-Process -Name BadApp | Where-Object -FilterScript {$_.SessionId -neq 0} | Stop-Process

Il cmdlet Stop-Process non dispone di un parametro ComputerName. Di conseguenza, per eseguire un comando di arresto del processo in un computer remoto è necessario utilizzare il cmdlet Invoke-Command. Ad esempio per arrestare il processo di PowerShell sul computer remoto Server01, digitare:

Invoke-Command -ComputerName Server01 {Stop-Process Powershell}

Arresto di tutte le altre sessioni di Windows PowerShell

Talvolta può risultare utile poter arrestare tutte le sessioni di Windows PowerShell in esecuzione ad eccezione di quella corrente. Se una sessione utilizza un numero eccessivo di risorse oppure è inaccessibile, perché viene eseguita in remoto o in un'altra sessione desktop, potrebbe non essere possibile arrestarla direttamente. Se si tenta di arrestare tutte le sessioni in esecuzione, è possibile tuttavia che venga terminata la sessione corrente.

A ogni sessione di Windows PowerShell è associato un PID della variabile di ambiente che include l'ID del processo di Windows PowerShell. È possibile verificare $PID in base all'ID di ogni sessione e terminare solo le sessioni di Windows PowerShell con un ID diverso. Il seguente comando della pipeline consente di eseguire questa operazione e restituisce l'elenco delle sessioni terminate perché include il parametro PassThru:

PS> Get-Process -Name powershell | Where-Object -FilterScript {$_.Id -ne $PID} | Stop-Process -
PassThru
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    334       9    23348      29136   143     1.03    388 powershell
    304       9    23152      29040   143     1.03    632 powershell
    302       9    20916      26804   143     1.03   1116 powershell
    335       9    25656      31412   143     1.09   3452 powershell
    303       9    23156      29044   143     1.05   3608 powershell
    287       9    21044      26928   143     1.02   3672 powershell

Avvio, debug e attesa dei processi

Windows PowerShell dispone anche di cmdlet per l'avvio (o il riavvio), il debug e l'attesa per il completamento di un processo prima dell'esecuzione di un comando. Per informazioni su questi cmdlet, vedere l'argomento relativo a ciascun cmdlet nella Guida sui cmdlet.

Vedere anche

  • Get-Process
  • Stop-Process
  • Start-Process
  • Wait-Process
  • Debug-Process
  • Invoke-Command


Gestione dei servizi

Sono disponibili otto cmdlet principali di tipo Service, progettati per una vasta gamma di attività di servizio. In questo manuale verrà illustrato solo come visualizzare l'elenco dei servizi e come modificarne lo stato di esecuzione. Per visualizzare un elenco completo dei cmdlet di tipo Service, utilizzare Get-Help *-Service; per visualizzare informazioni su ciascun cmdlet di questo tipo, digitare Get-Help <nome-cmdlet>, ad esempio Get-Help New-Service.

Recupero di servizi

È possibile ottenere i servizi in un computer locale o remoto tramite il cmdlet Get-Service. Come per Get-Process, se si utilizza il comando Get-Service senza parametri vengono restituiti tutti i servizi. È possibile filtrare i servizi in base al nome e persino utilizzare un asterisco come carattere jolly:

PS> Get-Service -Name se*
Status   Name               DisplayName
------   ----               -----------
Running  seclogon           Secondary Logon
Running  SENS               System Event Notification
Stopped  ServiceLayer       ServiceLayer

Poiché il nome effettivo del servizio non è sempre ovvio, potrebbe essere necessario cercare i servizi in base al nome visualizzato. A tale scopo, è possibile utilizzare un nome specifico, i caratteri jolly o un elenco di nomi visualizzati:

PS> Get-Service -DisplayName se*
Status   Name               DisplayName
------   ----               -----------
Running  lanmanserver       Server
Running  SamSs              Security Accounts Manager
Running  seclogon           Secondary Logon
Stopped  ServiceLayer       ServiceLayer
Running  wscsvc             Security Center
PS> Get-Service -DisplayName ServiceLayer,Server
Status   Name               DisplayName
------   ----               -----------
Running  lanmanserver       Server
Stopped  ServiceLayer       ServiceLayer

È possibile utilizzare il parametro ComputerName del cmdlet Get-Service per ottenere i servizi in computer remoti. Il parametro ComputerName accetta più valori e caratteri jolly, pertanto è possibile ottenere i servizi in più computer con un singolo comando. Con il comando seguente, ad esempio, si ottengono i servizi del computer remoto Server01.

Get-Service -ComputerName Server01

Recupero di servizi richiesti e dipendenti

Il cmdlet Get-Service dispone di due parametri molto utili per l'amministrazione dei servizi. Con il parametro DependentServices vengono ottenuti i servizi che dipendono dal servizio. Con il parametro RequiredServices vengono ottenuti i servizi da cui dipende questo servizio.

Questi parametri consentono di visualizzare solo i valori delle proprietà DependentServices e ServicesDependedOn (alias=RequiredServices) dell'oggetto System.ServiceProcess.ServiceController restituito da Get-Service, ma semplificano i comandi e il recupero di queste informazioni.

Con il comando seguente vengono ottenuti i servizi richiesti dal servizio LanmanWorkstation.

PS> Get-Service -Name LanmanWorkstation -RequiredServices
Status   Name               DisplayName
------   ----               -----------
Running  MRxSmb20           SMB 2.0 MiniRedirector
Running  bowser             Bowser
Running  MRxSmb10           SMB 1.x MiniRedirector
Running  NSI                Network Store Interface Service

Con il comando seguente vengono ottenuti i servizi che richiedono il servizio LanmanWorkstation.

PS> Get-Service -Name LanmanWorkstation -DependentServices
Status   Name               DisplayName
------   ----               -----------
Running  SessionEnv         Terminal Services Configuration
Running  Netlogon           Netlogon
Stopped  Browser            Computer Browser
Running  BITS               Background Intelligent Transfer Ser...

È inoltre possibile ottenere tutti i servizi con dipendenze. Con il comando seguente si ottiene tale risultato, quindi viene utilizzato il cmdlet Format-Table per visualizzare le proprietà Status, Name, RequiredServices e DependentServices dei servizi nel computer.

Get-Service -Name * | where {$_.RequiredServices -or $_.DependentServices} | Format-Table -Property Status, Name, RequiredServices, DependentServices -auto

Arresto, avvio, sospensione e riavvio di servizi

Tutti i cmdlet di tipo Service hanno lo stesso formato generale. È possibile specificare i servizi in base al nome comune o al nome visualizzato, nonché accettare come valori elenchi e caratteri jolly. Per arrestare lo spooler di stampa, utilizzare:

Stop-Service -Name spooler

Per avviare lo spooler di stampa dopo averlo arrestato, utilizzare:

Start-Service -Name spooler

Per sospendere lo spooler di stampa, utilizzare:

Suspend-Service -Name spooler

Benché il funzionamento del cmdlet Restart-Service sia simile a quello di altri cmdlet di tipo Service, vengono illustrati alcuni esempi più complessi. Nella forma più semplice di questo cmdlet è sufficiente specificare il nome del servizio:

PS> Restart-Service -Name spooler
WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting...
WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting...
PS>

Si noti che vengono restituiti due messaggi di avviso relativi all'avvio dello spooler di stampa. Quando si esegue un'operazione di servizio che richiede tempo, Windows PowerShell informa l'utente che sta ancora tentando di eseguire l'attività.

Se si desidera riavviare più servizi, è possibile visualizzare un elenco di servizi, filtrarli, quindi eseguire il riavvio:

PS> Get-Service | Where-Object -FilterScript {$_.CanStop} | Restart-Service
WARNING: Waiting for service 'Computer Browser (Browser)' to finish stopping...
WARNING: Waiting for service 'Computer Browser (Browser)' to finish stopping...
Restart-Service : Cannot stop service 'Logical Disk Manager (dmserver)' because
 it has dependent services. It can only be stopped if the Force flag is set.
At line:1 char:57
+ Get-Service | Where-Object -FilterScript {$_.CanStop} | Restart-Service <<<<
WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting...
WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting...

I cmdlet di tipo Service non dispongono di un parametro ComputerName, ma possono essere eseguiti in un computer remoto tramite il cmdlet Invoke-Command. Con il comando seguente, ad esempio, viene riavviato il servizio Spooler nel computer remoto Server01.

Invoke-Command -ComputerName Server01 {Restart-Service Spooler}

Impostazione delle proprietà Service

Con il cmdlet Set-Service vengono modificate le proprietà di un servizio in un computer locale o remoto. Poiché lo stato del servizio è una proprietà, è possibile utilizzare questo cmdlet per avviare, arrestare e sospendere un servizio. Il cmdlet Set-Service dispone inoltre di un parametro StartupType che consente di modificare il tipo di avvio del servizio.

Per utilizzare Set-Service in Windows Vista e nelle versioni successive di Windows, aprire Windows PowerShell con l'opzione "Esegui come amministratore".

Per ulteriori informazioni, vedere Set-Service.

Vedere anche

  • Get-Service
  • Set-Service
  • Restart-Service
  • Suspend-Service


Raccolta di informazioni sui computer

Get-WmiObject è il cmdlet più importante per le attività generali di gestione del sistema. Tutte le impostazioni critiche dei sottosistemi vengono esposte tramite WMI. WMI considera inoltre i dati come oggetti inclusi in insiemi composti da uno o più elementi. Poiché Windows PowerShell può essere utilizzato anche con gli oggetti e include una pipeline che consente di considerare nello stesso modo uno o più oggetti, grazie all'accesso generico a WMI è possibile eseguire alcune attività avanzate con poche operazioni.

Negli esempi seguenti viene illustrato come raccogliere informazioni specifiche utilizzando Get-WmiObject in un computer arbitrario. Il parametro ComputerName viene specificato con il valore di punto (.), che rappresenta il computer locale. È possibile specificare un nome o un indirizzo IP associato a qualsiasi computer raggiungibile tramite WMI. Per recuperare informazioni sul computer locale, è possibile omettere il parametro -ComputerName.

Visualizzazione dell'elenco delle impostazioni dei desktop

Il comando seguente consente di raccogliere informazioni sui desktop nel computer locale.

Get-WmiObject -Class Win32_Desktop -ComputerName .

Verranno restituite informazioni su tutti i desktop, indipendentemente dal fatto che siano o meno in uso.

Nota

Le informazioni restituite da alcune classi WMI possono essere molto dettagliate e spesso includere metadati sulla classe WMI. Poiché i nomi della maggior parte di queste proprietà dei metadati iniziano con un doppio carattere di sottolineatura, è possibile filtrare le proprietà utilizzando Select-Object. Specificare solo le proprietà che iniziano con caratteri alfabetici utilizzando [a-z]* come valore di Property. Ad esempio:

Get-WmiObject -Class Win32_Desktop -ComputerName . | Select-Object -Property [a-z]*

Per filtrare i metadati, utilizzare un operatore pipeline (|) per inviare i risultati del comando Get-WmiObject a Select-Object -Property [a-z]*.

Visualizzazione delle informazioni sul BIOS

La classe Win32_BIOS di WMI restituisce informazioni complete sul BIOS del sistema del computer locale in formato compatto:

Get-WmiObject -Class Win32_BIOS -ComputerName .

Visualizzazione delle informazioni sul processore

È possibile recuperare informazioni di carattere generale sul processore utilizzando la classe Win32_Processor di WMI, benché probabilmente si desideri filtrare le informazioni:

Get-WmiObject -Class Win32_Processor -ComputerName . | Select-Object -Property [a-z]*

Per una stringa descrittiva generica della famiglia del processore, è sufficiente restituire la proprietà Win32_ComputerSystem SystemType:

PS> Get-WmiObject -Class Win32_ComputerSystem -ComputerName . | Select-Object -Property SystemType
SystemType
----------
X86-based PC

Visualizzazione del modello e del produttore del computer

Le informazioni sul modello del computer sono disponibili anche tramite Win32_ComputerSystem. Non è necessario filtrare l'output standard visualizzato per ottenere i dati relativi all'OEM:

PS> Get-WmiObject -Class Win32_ComputerSystem
Domain              : WORKGROUP
Manufacturer        : Compaq Presario 06
Model               : DA243A-ABA 6415cl NA910
Name                : MyPC
PrimaryOwnerName    : Jane Doe
TotalPhysicalMemory : 804765696

L'output di comandi simili a questo, che restituiscono informazioni direttamente da componenti hardware, è valido quanto i dati di cui si dispone. Alcune informazioni non vengono infatti configurate correttamente dai produttori di hardware e potrebbero non essere disponibili.

Visualizzazione dell'elenco degli hotfix installati

Per visualizzare l'elenco di tutti gli hotfix installati, utilizzare Win32_QuickFixEngineering:

Get-WmiObject -Class Win32_QuickFixEngineering -ComputerName .

Questa classe restituisce un elenco di hotfix simile al seguente:

Description         : Update for Windows XP (KB910437)
FixComments         : Update
HotFixID            : KB910437
Install Date        :
InstalledBy         : Administrator
InstalledOn         : 12/16/2005
Name                :
ServicePackInEffect : SP3
Status              :

Per ridurre l'output, è possibile escludere alcune proprietà. Sebbene sia possibile utilizzare il parametro Get-WmiObject Property per scegliere solo la proprietà HotFixID, verranno comunque restituite più informazioni di quelle desiderate perché per impostazione predefinita vengono visualizzati tutti i metadati:

PS> Get-WmiObject -Class Win32_QuickFixEngineering -ComputerName . -Property HotFixId
HotFixID         : KB910437
__GENUS          : 2
__CLASS          : Win32_QuickFixEngineering
__SUPERCLASS     :
__DYNASTY        :
__RELPATH        :
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :

Verranno restituiti dati aggiuntivi perché il parametro Property specificato per Get-WmiObject consente di limitare le proprietà restituite dalle istanze delle classi WMI, non gli oggetti restituiti a Windows PowerShell. Per ridurre l'output, utilizzare Select-Object:

PS> Get-WmiObject -Class Win32_QuickFixEngineering -ComputerName . -Property Hot
FixId | Select-Object -Property HotFixId
HotFixId
--------
KB910437

Visualizzazione delle informazioni relative alla versione del sistema operativo

Le proprietà della classe Win32_OperatingSystem includono informazioni sui service pack e sulla versione. È possibile selezionare esplicitamente solo queste proprietà per ottenere un riepilogo delle informazioni relative alla versione con Win32_OperatingSystem:

Get-WmiObject -Class Win32_OperatingSystem -ComputerName . | Select-Object -Property BuildNumber,BuildType,OSType,ServicePackMajorVersion,ServicePackMinorVersion

È inoltre possibile utilizzare i caratteri jolly con il parametro Select-Object Property. Poiché in questo esempio è importante utilizzare tutte le proprietà che iniziano con Build o ServicePack, è possibile abbreviare il comando nel modo seguente:

PS> Get-WmiObject -Class Win32_OperatingSystem -ComputerName . | Select-Object -Property Build*,OSType,ServicePack*

BuildNumber             : 2600
BuildType               : Uniprocessor Free
OSType                  : 18
ServicePackMajorVersion : 2
ServicePackMinorVersion : 0

Visualizzazione del proprietario e degli utenti locali

Per individuare informazioni di carattere generale relative agli utenti locali, ad esempio il numero di utenti con licenza, il numero corrente di utenti e il nome del proprietario, è possibile utilizzare alcune delle proprietà di Win32_OperatingSystem. È possibile selezionare esplicitamente le proprietà come nell'esempio seguente:

Get-WmiObject -Class Win32_OperatingSystem -ComputerName . | Select-Object -Property NumberOfLicensedUsers,NumberOfUsers,RegisteredUser

Di seguito è invece riportata una versione abbreviata del comando in cui vengono utilizzati caratteri jolly:

Get-WmiObject -Class Win32_OperatingSystem -ComputerName . | Select-Object -Property *user*

Visualizzazione delle informazioni relative allo spazio su disco disponibile

Per visualizzare le informazioni relative allo spazio su disco e allo spazio libero per le unità locali, è possibile utilizzare la classe Win32_LogicalDisk di WMI. È necessario esaminare solo le istanze in cui DriveType è uguale a 3, ovvero al valore utilizzato da WMI per i dischi rigidi fissi.

Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=3" -ComputerName .

DeviceID     : C:
DriveType    : 3
ProviderName :
FreeSpace    : 65541357568
Size         : 203912880128
VolumeName   : Local Disk

DeviceID     : Q:
DriveType    : 3
ProviderName :
FreeSpace    : 44298250240
Size         : 122934034432
VolumeName   : New Volume

PS> Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=3" -ComputerName . | Measure-Object -Property FreeSpace,Size -Sum

Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=3" -ComputerName . | Measure-Object -Property FreeSpace,Size -Sum | Select-Object -Property Property,Sum

Visualizzazione delle informazioni relative alle sessioni di accesso

Per visualizzare informazioni di carattere generale sulle sessioni di accesso associate agli utenti, è possibile utilizzare la classe Win32_LogonSession di WMI:

Get-WmiObject -Class Win32_LogonSession -ComputerName .

Visualizzazione dell'utente che ha effettuato l'accesso a un computer

Per visualizzare l'utente che ha effettuato l'accesso a un computer specifico, è possibile utilizzare Win32_ComputerSystem. Con questo comando verrà restituito solo l'utente che ha effettuato l'accesso al desktop del sistema:

Get-WmiObject -Class Win32_ComputerSystem -Property UserName -ComputerName .

Visualizzazione dell'ora locale da un computer

Per recuperare l'ora locale corrente in un computer specifico, è possibile utilizzare la classe Win32_LocalTime di WMI. Per impostazione predefinita questa classe visualizza tutti i metadati, pertanto può essere utile filtrarli mediante Select-Object:

PS> Get-WmiObject -Class Win32_LocalTime -ComputerName . | Select-Object -Property [a-z]*

Day          : 15
DayOfWeek    : 4
Hour         : 12
Milliseconds :
Minute       : 11
Month        : 6
Quarter      : 2
Second       : 52
WeekInMonth  : 3
Year         : 2006

Visualizzazione dello stato del servizio

Per visualizzare lo stato di tutti i servizi in un computer specifico, è possibile utilizzare localmente il cmdlet Get-Service come descritto in precedenza. Nel caso di sistemi remoti è invece possibile utilizzare la classe Win32_Service di WMI. Se si utilizza anche Select-Object per filtrare i risultati in base a Status, Name e DisplayName, il formato di output sarà quasi identico a quello ottenuto con Get-Service:

Get-WmiObject -Class Win32_Service -ComputerName . | Select-Object -Property Status,Name,DisplayName

Per consentire la visualizzazione completa dei nomi di servizi occasionali con nomi particolarmente lunghi, è consigliabile utilizzare Format-Table con i parametri AutoSize e Wrap per ottimizzare la larghezza della colonna e applicare ai nomi lunghi il ritorno a capo anziché troncarli:

Get-WmiObject -Class Win32_Service -ComputerName . | Format-Table -Property Status,Name,DisplayName -AutoSize -Wrap


Utilizzo delle installazioni software

Le applicazioni progettate per l'utilizzo di Windows Installer sono accessibili tramite la classe Win32_Product di WMI. Tuttavia Windows Installer non viene utilizzato in tutte le applicazioni oggi disponibili. Poiché Windows Installer include la più vasta gamma di tecniche standard per la gestione di applicazioni installabili, l'attenzione sarà concentrata principalmente su tali applicazioni. Le applicazioni basate su routine di installazione alternative non vengono in genere gestite tramite Windows Installer. Le tecniche specifiche per la gestione di tali applicazioni dipenderanno dal software del programma di installazione e delle decisioni dello sviluppatore dell'applicazione.

Nota

Le applicazioni che vengono installate copiando i relativi file nel computer non possono in genere essere gestite utilizzando le tecniche illustrate in questo manuale. È possibile gestire queste applicazioni come file e cartelle utilizzando le tecniche illustrate nella sezione "Utilizzo di file e cartelle".

Visualizzazione dell'elenco delle applicazioni basate su Windows Installer

Per elencare le applicazioni installate con Windows Installer in un sistema locale o remoto, utilizzare la semplice query WMI riportata di seguito:

PS> Get-WmiObject -Class Win32_Product -ComputerName .
IdentifyingNumber : {7131646D-CD3C-40F4-97B9-CD9E4E6262EF}
Name              : Microsoft .NET Framework 2.0
Vendor            : Microsoft Corporation
Version           : 2.0.50727
Caption           : Microsoft .NET Framework 2.0

Per visualizzare tutte le proprietà dell'oggetto Win32_Product, utilizzare il parametro Properties dei cmdlet di formattazione, come Format-List, con il valore * (tutti).

PS> Get-WmiObject -Class Win32_Product -ComputerName . | Where-Object -FilterScript {$_.Name -eq "Microsoft .NET Framework 2.0"} | Format-List -Property *
Name              : Microsoft .NET Framework 2.0
Version           : 2.0.50727
InstallState      : 5
Caption           : Microsoft .NET Framework 2.0
Description       : Microsoft .NET Framework 2.0
IdentifyingNumber : {7131646D-CD3C-40F4-97B9-CD9E4E6262EF}
InstallDate       : 20060506
InstallDate2      : 20060506000000.000000-000
InstallLocation   :
PackageCache      : C:\WINDOWS\Installer\619ab2.msi
SKUNumber         :
Vendor            : Microsoft Corporation

Oppure è possibile utilizzare il parametro Get-WmiObject Filter per selezionare solo Microsoft .NET Framework 2.0. Poiché il filtro utilizzato in questo comando è un filtro WMI, viene utilizzata la sintassi WQL (WMI Query Language) e non la sintassi di Windows PowerShell. Quindi:

Get-WmiObject -Class Win32_Product -ComputerName . -Filter "Name='Microsoft .NET Framework 2.0'"| Format-List -Property *

Si noti che nelle query WQL vengono frequentemente utilizzati caratteri, tra cui spazi o segni di uguale, che hanno uno speciale significato in Windows PowerShell. Per tale motivo è opportuno racchiudere sempre tra virgolette il valore del parametro Filter. È inoltre possibile utilizzare il carattere di escape di Windows PowerShell, ovvero un apice inverso (`), sebbene potrebbe risultare poco leggibile. Il seguente comando è equivalente al precedente e restituisce gli stessi risultati, tuttavia utilizza l'apice inverso come escape dei caratteri speciali, anziché racchiudere tra virgolette l'intera stringa di filtro.

Get-WmiObject -Class Win32_Product -ComputerName . -Filter Name`=`'Microsoft` .NET` Framework` 2.0`' | Format-List -Property *

Per elencare solo le proprietà che interessano, utilizzare il parametro Property dei cmdlet di formattazione per elencare le proprietà desiderate.

Get-WmiObject -Class Win32_Product -ComputerName . | Format-List -Property Name,InstallDate,InstallLocation,PackageCache,Vendor,Version,IdentifyingNumber
...
Name              : HighMAT Extension to Microsoft Windows XP CD Writing Wizard
InstallDate       : 20051022
InstallLocation   : C:\Program Files\HighMAT CD Writing Wizard\
PackageCache      : C:\WINDOWS\Installer\113b54.msi
Vendor            : Microsoft Corporation
Version           : 1.1.1905.1
IdentifyingNumber : {FCE65C4E-B0E8-4FBD-AD16-EDCBE6CD591F}
...

Infine, per trovare solo i nomi delle applicazioni installate, una semplice istruzione Format-Wide semplifica l'output:

Get-WmiObject -Class Win32_Product -ComputerName .  | Format-Wide -Column 1

Sebbene siano disponibili diverse tecniche per visualizzare l'elenco delle applicazioni per la cui installazione è stato utilizzato Windows Installer, non sono state considerate finora altre applicazioni. Poiché il programma di disinstallazione della maggior parte delle applicazioni standard viene registrato in Windows, è possibile gestire queste applicazioni nel computer locale individuandole nel Registro di sistema di Windows.

Visualizzazione dell'elenco di tutte le applicazioni disinstallabili

Sebbene non sia disponibile una tecnica garantita per individuare tutte le applicazioni disponibili in un sistema, è possibile individuare tutti i programmi utilizzando gli elenchi visualizzati nella finestra di dialogo Installazione applicazioni. Tramite Installazione applicazioni è possibile trovare queste applicazioni nella chiave del Registro di sistema seguente:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall.

È anche possibile esaminare la chiave per trovare le applicazioni. Per visualizzare più agevolmente la chiave Uninstall, è possibile effettuare il mapping di un'unità Windows PowerShell a un percorso del Registro di sistema:

PS>

Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
Uninstall  Registry      HKEY_LOCAL_MACHINE\SOFTWARE\Micr...
Nota

L'unità HKLM: è mappata alla radice di HKEY_LOCAL_MACHINE, pertanto è stata utilizzata tale unità nel percorso della chiave Uninstall. Anziché HKLM: sarebbe stato possibile specificare il percorso del Registro di sistema utilizzando HKLM o HKEY_LOCAL_MACHINE. Il vantaggio associato all'utilizzo di un'unità del Registro di sistema esistente è dato dalla possibilità di utilizzare la funzionalità di completamento tramite TAB per inserire i nomi delle chiavi senza doverli digitare.

A questo punto si disporrà di un'unità denominata "Uninstall" che può essere utilizzata per cercare in modo rapido e comodo le installazioni delle applicazioni. Per individuare il numero di applicazioni installate, è possibile contare il numero di chiavi del Registro di sistema presenti nell'unità Uninstall: di Windows PowerShell:

PS> (Get-ChildItem -Path Uninstall:).Count
459

È possibile eseguire ulteriori ricerche in questo elenco di applicazioni utilizzando diverse tecniche, a partire da Get-ChildItem. Per ottenere un elenco di applicazioni e salvarle nella variabile $UninstallableApplications, utilizzare il comando seguente:

$UninstallableApplications = Get-ChildItem -Path Uninstall:
Nota

Per chiarezza verrà utilizzato un nome di variabile lungo. In condizioni normali non è necessario utilizzare nomi lunghi. Sebbene sia possibile utilizzare la funzione di completamento tramite TAB per i nomi di variabili, per maggior rapidità è possibile specificare nomi composti da uno o due caratteri. Nomi descrittivi e più lunghi sono maggiormente utili quando si sviluppa codice che si intende riutilizzare.

Per visualizzare i valori delle voci del Registro di sistema nelle chiavi del Registro di sistema in Uninstall, utilizzare il metodo GetValue delle chiavi. Il valore del metodo è il nome della voce del Registro di sistema.

Ad esempio, per individuare i nomi visualizzati delle applicazioni nella chiave Uninstall, utilizzare il comando seguente:

PS> Get-ChildItem -Path Uninstall: | ForEach-Object -Process { $_.GetValue("DisplayName") }

Non viene garantito che questi valori siano univoci. Nell'esempio seguente tra i programmi installati verranno visualizzate due occorrenze di "Windows Media Encoder 9 Series":

PS> Get-ChildItem -Path Uninstall: | Where-Object -FilterScript { $_.GetValue("DisplayName") -eq "Windows Media Encoder 9 Series"}

   Hive: Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Micros
oft\Windows\CurrentVersion\Uninstall

SKC  VC Name                           Property
---  -- ----                           --------
  0   3 Windows Media Encoder 9        {DisplayName, DisplayIcon, UninstallS...
  0  24 {E38C00D0-A68B-4318-A8A6-F7... {AuthorizedCDFPrefix, Comments, Conta...

Installazione di applicazioni

È possibile utilizzare la classe Win32_Product per installare pacchetti di Windows Installer in remoto o nel computer locale. Quando si esegue un'installazione in remoto, è necessario utilizzare un percorso di rete UNC (Universal Naming Convention) per specificare il percorso del pacchetto con estensione msi poiché il sottosistema WMI non riconosce i percorsi di Windows PowerShell. Ad esempio, per installare il pacchetto NewPackage.msi presente nella condivisione di rete \\AppServ\dsp del computer remoto PC01, digitare il comando seguente al prompt di Windows PowerShell:

(Get-WMIObject -ComputerName PC01 -List | Where-Object -FilterScript {$_.Name -eq "Win32_Product"}).Install(\\AppSrv\dsp\NewPackage.msi)

Nel caso delle applicazioni che non utilizzano la tecnologia Windows Installer è possibile che siano disponibili metodologie specifiche per la distribuzione automatizzata. Per sapere se sono disponibili metodologie per la distribuzione automatizzata, consultare la documentazione dell'applicazione oppure rivolgersi al servizio di assistenza del fornitore dell'applicazione. In alcuni casi, anche se il fornitore dell'applicazione non ha progettato specificamente l'applicazione per automatizzarne l'installazione, è possibile che il produttore del software del programma di installazione metta a disposizione alcune tecniche per l'automazione.

Rimozione di applicazioni

La procedura di rimozione di un pacchetto di Windows Installer con Windows PowerShell è piuttosto simile a quella di installazione di un pacchetto. Nell'esempio seguente il pacchetto da disinstallare verrà scelto in base al nome. In alcuni casi potrebbe risultare più semplice filtrare i risultati con IdentifyingNumber:

(Get-WmiObject -Class Win32_Product -Filter "Name='ILMerge'" -ComputerName . ).Uninstall()

La rimozione di altre applicazioni non è così semplice anche quando viene eseguita nel computer locale. Per individuare le stringhe per disinstallare tali applicazioni dalla riga di comando, è possibile estrarre la proprietà UninstallString. Questa tecnica è valida per applicazioni basate su Windows Installer e per programmi meno recenti indicati nella chiave Uninstall:

Get-ChildItem -Path Uninstall: | ForEach-Object -Process { $_.GetValue("UninstallString") }

Se si desidera, è possibile filtrare l'output in base al nome visualizzato:

Get-ChildItem -Path Uninstall: | Where-Object -FilterScript { $_.GetValue("DisplayName") -like "Win*"} | ForEach-Object -Process { $_.GetValue("UninstallString") }

Non è tuttavia possibile utilizzare queste stringhe direttamente dal prompt di Windows PowerShell senza alcune modifiche.

Aggiornamento delle applicazioni basate su Windows Installer

Per aggiornare un'applicazione, è necessario conoscere il nome dell'applicazione e il percorso del pacchetto di aggiornamento dell'applicazione. Se si dispone di tali informazioni, è possibile eseguire l'aggiornamento di un'applicazione con un solo comando di Windows PowerShell:

(Get-WmiObject -Class Win32_Product -ComputerName . -Filter "Name='OldAppName'").Upgrade(\\AppSrv\dsp\OldAppUpgrade.msi)


Modifica dello stato del computer

Per reimpostare un computer in Windows PowerShell, utilizzare uno strumento da riga di comando standard o una classe WMI. Sebbene Windows PowerShell venga utilizzato solo per eseguire lo strumento, è utile apprendere come cambiare lo stato di alimentazione di un computer in Windows PowerShell per capire alcuni dettagli importanti relativi all'utilizzo di strumenti esterni in Windows PowerShell.

Blocco di un computer

L'unico modo per bloccare direttamente un computer con gli strumenti standard disponibili consiste nel chiamare la funzione LockWorkstation() in user32.dll:

rundll32.exe user32.dll,LockWorkStation

Questo comando blocca immediatamente la workstation. Viene utilizzato rundll32.exe, che esegue DLL di Windows (e ne salva le librerie per un utilizzo ripetuto) per eseguire user32.dll, una libreria delle funzioni di gestione Windows.

Se si blocca una workstation mentre è abilitata la funzionalità Cambio rapido utente, ad esempio in Windows XP, nel computer viene visualizzata la schermata di accesso utente anziché lo screen saver dell'utente corrente.

Per arrestare determinate sessioni in un server terminal, utilizzare lo strumento da riga di comando tsshutdn.exe.

Disconnessione della sessione corrente

È possibile utilizzare diverse tecniche per disconnettere una sessione nel sistema locale. Il modo più semplice consiste nell'utilizzare lo strumento da riga di comando di Desktop remoto/Servizi terminal, logoff.exe (per informazioni dettagliate, digitare logoff /? al prompt di Windows PowerShell). Per disconnettere la sessione attiva corrente, digitare logoff senza argomenti.

È inoltre possibile utilizzare lo strumento shutdown.exe con l'opzione di disconnessione:

shutdown.exe -l

È infine possibile utilizzare WMI. La classe Win32_OperatingSystem include un metodo Win32Shutdown. È sufficiente richiamare il metodo con il flag 0 per avviare la disconnessione:

(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(0)

Per ulteriori informazioni e per trovare altre funzionalità del metodo Win32Shutdown, vedere "Metodo Win32Shutdown della classe Win32_OperatingSystem" in MSDN.

Arresto o riavvio di un computer

L'arresto e il riavvio di computer sono in genere attività dello stesso tipo. Gli strumenti utilizzati per arrestare un computer consentono anche di riavviarlo e viceversa. Sono tuttavia disponibili due opzioni rapide per riavviare un computer da Windows PowerShell, ovvero utilizzare Tsshutdn.exe o Shutdown.exe con gli argomenti appropriati. È possibile ottenere informazioni dettagliate sull'utilizzo in tsshutdn.exe /? o shutdown.exe /?.

È inoltre possibile eseguire operazioni di arresto e riavvio utilizzando Win32_OperatingSystem direttamente da Windows PowerShell.

Per spegnere il computer, utilizzare il metodo Win32Shutdown con il flag 1.

(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(1)

Per riavviare il sistema operativo, utilizzare il metodo Win32Shutdown con il flag 2.

(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(2)


Utilizzo delle stampanti

È possibile utilizzare Windows PowerShell per gestire le stampanti tramite WMI e l'oggetto COM WScript.Network da WSH. Per illustrare attività specifiche, verrà utilizzata una combinazione di entrambi gli strumenti.

Visualizzazione dell'elenco delle connessioni a stampanti

Il modo più semplice per visualizzare l'elenco delle stampanti installate in un computer consiste nell'utilizzare la classe Win32_Printer di WMI:

Get-WmiObject -Class Win32_Printer -ComputerName

È inoltre possibile utilizzare l'oggetto COM WScript.Network, in genere utilizzato in script WSH:

(New-Object -ComObject WScript.Network).EnumPrinterConnections()

Poiché questo comando restituisce una raccolta di stringhe semplici che include i nomi di porte e di stampanti senza alcuna etichetta distintiva, la sua interpretazione non è semplice.

Aggiunta di una stampante di rete

Per aggiungere una nuova stampante di rete, utilizzare WScript.Network:

(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection("\\Printserver01\Xerox5")

Impostazione di una stampante predefinita

Per utilizzare WMI per l'impostazione della stampante predefinita, trovare la stampante nella raccolta Win32_Printer, quindi richiamare il metodo SetDefaultPrinter:

(Get-WmiObject -ComputerName . -Class Win32_Printer -Filter "Name='HP LaserJet 5Si'").SetDefaultPrinter()

WScript.Network è più semplice da utilizzare, poiché dispone di un metodo SetDefaultPrinter che accetta solo il nome della stampante come argomento:

(New-Object -ComObject WScript.Network).SetDefaultPrinter('HP LaserJet 5Si')

Rimozione di una connessione alla stampante

Per rimuovere una connessione alla stampante, utilizzare il metodo WScript.Network RemovePrinterConnection:

(New-Object -ComObject WScript.Network).RemovePrinterConnection("\\Printserver01\Xerox5")


Esecuzione di attività di rete

Poiché TCP/IP è il protocollo di rete più comunemente utilizzato, la maggior parte delle attività di amministrazione dei protocolli di rete a basso livello richiede l'utilizzo di TCP/IP. In questa sezione verranno utilizzati Windows PowerShell e Strumentazione gestione Windows (WMI) per eseguire queste attività.

Visualizzazione dell'elenco degli indirizzi IP di un computer

Per ottenere tutti gli indirizzi IP utilizzati nel computer locale, utilizzare il comando seguente:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName . | Format-Table -Property IPAddress

L'output di questo comando si differenzia dalla maggior parte degli elenchi di proprietà perché i valori sono racchiusi tra parentesi graffe:

IPAddress

---------

{192.168.1.80}

{192.168.148.1}

{192.168.171.1}

{0.0.0.0}

Per comprendere i motivi della visualizzazione delle parentesi graffe, utilizzare il cmdlet Get-Member per esaminare la proprietà IPAddress:

PS> Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName . | Get-Member -Name IPAddress

TypeName: System.Management.ManagementObject#root\cimv2\Win32_NetworkAdapter

Configuration

Name MemberType Definition

---- ---------- ----------

IPAddress Property System.String[] IPAddress {get;}

La proprietà IPAddress di ogni scheda di rete corrisponde in realtà a una matrice. Nella definizione le parentesi graffe indicano che IPAddress non è un valore System.String, ma una matrice di valori System.String.

Visualizzazione dei dati di configurazione IP

Per visualizzare dati di configurazione IP dettagliati per ogni scheda di rete, utilizzare il comando seguente:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName .

La visualizzazione predefinita dell'oggetto configurazione delle schede di rete include solo una parte minima delle informazioni disponibili. Per la risoluzione dei problemi e un'analisi approfondita, utilizzare Select-Object o un cmdlet di formattazione come Format-List per specificare le proprietà da visualizzare.

Se non si è interessati alle proprietà IPX o WINS, ad esempio nel caso di una moderna rete TCP/IP, è possibile utilizzare il parametro ExcludeProperty di Select-Object per nascondere le proprietà con nomi che iniziano con "WINS" o "IPX":

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName . | Select-Object -Property [a-z]* -ExcludeProperty IPX*,WINS*

Questo comando restituisce informazioni dettagliate su DHCP, DNS, routing e altre proprietà meno rilevanti per la configurazione IP.

Esecuzione del ping dei computer

È possibile effettuare un semplice ping di un computer tramite Win32_PingStatus. Con il comando seguente viene effettuato il ping, ma viene restituito un output dettagliato:

Get-WmiObject -Class Win32_PingStatus -Filter "Address='127.0.0.1'" -ComputerName .

Un formato più utile per le informazioni di riepilogo prevede la visualizzazione delle proprietà Address, ResponseTime e StatusCode, come vengono generate dal comando seguente. Il parametro Autosize di Format-Table ridimensiona le colonne delle tabelle affinché vengano visualizzate correttamente in Windows PowerShell.

PS> Get-WmiObject -Class Win32_PingStatus -Filter "Address='127.0.0.1'" -ComputerName . | Format-Table -Property Address,ResponseTime,StatusCode -Autosize

Address   ResponseTime StatusCode
-------   ------------ ----------
127.0.0.1            0          0
A status code of 0 indicates a successful ping.

È possibile utilizzare una matrice per effettuare il ping di più computer con un solo comando. Poiché è presente più di un indirizzo, utilizzare ForEach-Object per effettuare il ping di ogni indirizzo separatamente:

"127.0.0.1","localhost","research.microsoft.com" | ForEach-Object -Process {Get-WmiObject -Class Win32_PingStatus -Filter ("Address='" + $_ + "'") -ComputerName .} | Select-Object -Property Address,ResponseTime,StatusCode

È possibile utilizzare lo stesso formato di comando per effettuare il ping di tutti i computer di una subnet, ad esempio una rete privata che utilizza il numero 192.168.1.0 e una subnet mask di Classe C standard (255.255.255.0). Verranno considerati corretti solo gli indirizzi compresi tra 192.168.1.1 e 192.168.1.254. 0 viene sempre riservato per il numero di rete e 255 corrisponde a un indirizzo di broadcast della subnet.

Per rappresentare una matrice dei numeri compresi tra 1 e 254 in Windows PowerShell, utilizzare l'istruzione 1..254. . In questo modo sarà possibile effettuare un ping della subnet generando la matrice e aggiungendo i valori in un indirizzo parziale nell'istruzione ping:

1..254| ForEach-Object -Process {Get-WmiObject -Class Win32_PingStatus -Filter ("Address='192.168.1." + $_ + "'") -ComputerName .} | Select-Object -Property Address,ResponseTime,StatusCode

Questa tecnica per la generazione di un intervallo di indirizzi può essere utilizzata anche in altri contesti. È possibile generare un set completo di indirizzi nel modo seguente:

$ips = 1..254 | ForEach-Object -Process {"192.168.1." + $_}

Recupero delle proprietà della scheda di rete

Nelle sezioni precedenti di questa documentazione è stato spiegato che è possibile utilizzare Win32_NetworkAdapterConfiguration per recuperare le proprietà di configurazione generali. Sebbene non si riferiscano esattamente a TCP/IP, le informazioni sulle schede di rete, ad esempio gli indirizzi MAC e i tipi di scheda, possono essere utili per comprendere le operazioni in corso in un computer. Per ottenere un riepilogo di queste informazioni, utilizzare il comando seguente:

Get-WmiObject -Class Win32_NetworkAdapter -ComputerName .

Assegnazione del dominio DNS per una scheda di rete

Per assegnare il dominio DNS per la risoluzione dei nomi automatica, utilizzare il metodo Win32_NetworkAdapterConfiguration SetDNSDomain. Poiché il dominio DNS viene assegnato in modo indipendente per ogni configurazione di scheda di rete, è necessario utilizzare un'istruzione ForEach-Object per assegnare il dominio a ogni scheda:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=true -ComputerName . | ForEach-Object -Process { $_. SetDNSDomain("fabrikam.com") }

L'istruzione di filtro "IPEnabled=true" è necessaria perché, persino in una rete che utilizza solo TCP/IP, molte delle configurazioni delle schede di rete in un computer non corrispondono a schede TCP/IP effettive. Si tratta invece di elementi software generici che supportano RAS, PPTP, QoS e altri servizi per tutte le schede e che pertanto non dispongono di un proprio indirizzo.

È possibile filtrare il comando tramite il cmdlet Where-Object, anziché utilizzare il filtro Get-WmiObject .

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -ComputerName . | Where-Object -FilterScript {$_.IPEnabled} | ForEach-Object -Process {$_.SetDNSDomain("fabrikam.com")}

Esecuzione di attività di configurazione DHCP

La modifica dei dettagli DHCP implica l'utilizzo di un set di schede di rete, come nel caso della configurazione DNS. Tramite WMI è possibile eseguire diverse azioni distinte. Nelle sezioni seguenti verranno esaminate alcune delle più comuni.

Individuazione delle schede abilitate per DHCP

Per individuare le schede abilitate per DHCP in un computer, utilizzare il comando seguente:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled=true" -ComputerName .

Per escludere le schede con problemi di configurazione IP, è possibile recuperare solo le schede IP:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "IPEnabled=true and DHCPEnabled=true" -ComputerName .

Recupero delle proprietà di DHCP

Poiché le proprietà correlate a DHCP per una scheda iniziano in genere con "DHCP", è possibile utilizzare il parametro Property di Format-Table per visualizzare solo tali proprietà:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled=true" -ComputerName . | Format-Table -Property DHCP*

Attivazione di DHCP in singole schede

Per abilitare DHCP in tutte le schede, utilizzare il comando seguente:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=true -ComputerName . | ForEach-Object -Process {$_.EnableDHCP()}

È possibile utilizzare l'istruzione Filter "IPEnabled=true and DHCPEnabled=false" per evitare di abilitare DHCP nelle schede in cui è già abilitato, anche se la mancata esecuzione di questa operazione non causa errori.

Rilascio e rinnovo dei lease DHCP in schede specifiche

La classe Win32_NetworkAdapterConfiguration dispone dei metodi ReleaseDHCPLease e RenewDHCPLease. Le modalità di utilizzo di entrambi i metodi sono identiche. In generale, utilizzare questi metodi solo quando è necessario rilasciare o rinnovare gli indirizzi per una scheda in una subnet specifica. Per filtrare le schede in una subnet in modo semplice, è possibile scegliere solo le configurazioni di scheda in cui viene utilizzato il gateway per tale subnet. Il comando seguente consente, ad esempio, di rilasciare tutti i lease DHCP nelle schede del computer locale che ottengono lease DHCP da 192.168.1.254:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "IPEnabled=true and DHCPEnabled=true" -ComputerName . | Where-Object -FilterScript {$_.DHCPServer -contains "192.168.1.254"} | ForEach-Object -Process {$_.ReleaseDHCPLease()}

L'unica modifica necessaria per rinnovare un lease DHCP consiste nell'utilizzare il metodo RenewDHCPLease anziché il metodo ReleaseDHCPLease:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "IPEnabled=true and DHCPEnabled=true" -ComputerName . | Where-Object -FilterScript {$_.DHCPServer -contains "192.168.1.254"} | ForEach-Object -Process {$_.ReleaseDHCPLease()}
Nota

Quando questi metodi vengono utilizzati in un computer remoto, è possibile che l'accesso al sistema remoto venga perso se la connessione è stata effettuata tramite la scheda con il lease rilasciato o rinnovato.

Rilascio e rinnovo dei lease DHCP in tutte le schede

È possibile rilasciare o rinnovare gli indirizzi DHCP per tutte le schede utilizzando i metodi Win32_NetworkAdapterConfiguration, ReleaseDHCPLeaseAll e RenewDHCPLeaseAll. Il comando deve essere applicato alla classe WMI, anziché a una scheda specifica, poiché il rilascio e il rinnovo di lease a livello globale vengono eseguiti sulla classe e non su una scheda specifica.

È possibile ottenere un riferimento a una classe WMI, anziché istanze di classe, visualizzando l'elenco di tutte le classi WMI, quindi selezionando solo quella desiderata in base al nome. Ad esempio, il comando seguente restituisce la classe Win32_NetworkAdapterConfiguration:

Get-WmiObject -List | Where-Object -FilterScript {$_.Name -eq "Win32_NetworkAdapterConfiguration"}

È possibile considerare l'intero comando come classe, quindi richiamare il metodo ReleaseDHCPAdapterLease. Nel comando seguente, le parentesi che racchiudono gli elementi della pipeline Get-WmiObject e Where-Object inducono Windows PowerShell a valutarli per primi:

( Get-WmiObject -List | Where-Object -FilterScript {$_.Name -eq "Win32_NetworkAdapterConfiguration"} ).ReleaseDHCPLeaseAll()

È possibile utilizzare lo stesso formato di comando per richiamare il metodo RenewDHCPLeaseAll:

( Get-WmiObject -List | Where-Object -FilterScript {$_.Name -eq "Win32_NetworkAdapterConfiguration"} ).RenewDHCPLeaseAll()

Creazione di una condivisione di rete

Per creare una condivisione di rete, utilizzare il metodo Win32_Share Create:

(Get-WmiObject -List -ComputerName . | Where-Object -FilterScript {$_.Name -eq "Win32_Share"}).Create("C:\temp","TempShare",0,25,"test share of the temp folder")

È inoltre possibile creare la condivisione utilizzando net share in Windows PowerShell:

net share tempshare=c:\temp /users:25 /remark:"test share of the temp folder"

Rimozione di una condivisione di rete

Per rimuovere una condivisione di rete, è possibile utilizzare Win32_Share. Il processo è tuttavia leggermente diverso rispetto a quello di creazione perché è necessario recuperare la condivisione specifica da rimuovere, anziché la classe Win32_Share. L'istruzione seguente consente di eliminare la condivisione "TempShare":

 (Get-WmiObject -Class Win32_Share -ComputerName . -Filter "Name='TempShare'").Delete()

È anche possibile utilizzare Net share:

PS> net share tempshare /delete
tempshare was deleted successfully.

Connessione a un'unità di rete accessibile da Windows

Il cmdlet New-PSDrive crea un'unità di Windows PowerShell. Si tenga comunque presente che le unità create in questo modo sono disponibili unicamente in Windows PowerShell. Per creare una nuova unità di rete, è possibile utilizzare l'oggetto COM WScript.Network. Il comando seguente consente di eseguire il mapping della condivisione \\FPS01\utenti all'unità locale B:

(New-Object -ComObject WScript.Network).MapNetworkDrive("B:", "\\FPS01\users")

È anche possibile utilizzare il comando net use:

net use B: \\FPS01\users

Le unità di cui è stato eseguito il mapping a WScript.Network o net use sono immediatamente disponibili in Windows PowerShell.


Utilizzo di file e cartelle

Le operazioni di spostamento tra unità Windows PowerShell e di gestione degli elementi in esse disponibili sono analoghe a quelle di gestione di file e cartelle in unità disco fisiche di Windows. In questa sezione verrà spiegato come eseguire specifiche attività di modifica di file e cartelle.

Visualizzazione dell'elenco di tutti i file e di tutte le cartelle presenti in una cartella

Per visualizzare direttamente tutti gli elementi presenti in una cartella, è possibile utilizzare Get-ChildItem. Aggiungere il parametro facoltativo Force per visualizzare elementi nascosti o di sistema. Questo comando consente ad esempio di visualizzare il contenuto diretto dell'unità C di Windows PowerShell, che corrisponde all'unità C fisica di Windows:

Get-ChildItem -Force C:\

Il comando consente di visualizzare solo gli elementi contenuti in modo diretto, come quando si utilizza il comando DIR di Cmd.exe o ls in una shell UNIX. Per poter visualizzare gli elementi contenuti, è necessario specificare anche il parametro -Recurse. Con questo parametro il completamento dell'operazione può tuttavia richiedere un tempo prolungato. Per un elenco di tutti gli elementi presenti nell'unità C, digitare:

Get-ChildItem -Force C:\ -Recurse

È possibile utilizzare Get-ChildItem per filtrare gli elementi con i parametri Path, Filter, Include ed Exclude, ma questi sono in genere basati solo sul nome. Per eseguire operazioni di filtro complesse basate su altre proprietà degli elementi, è possibile utilizzare Where-Object.

Il comando seguente consente di trovare tutti gli eseguibili inclusi nella cartella Programmi la cui data di modifica è successiva al 1° ottobre 2005 e le cui dimensioni sono maggiori di 1 MB e minori di 10 MB:

Get-ChildItem -Path $env:ProgramFiles -Recurse -Include *.exe | Where-Object -FilterScript {($_.LastWriteTime -gt "2005-10-01") -and ($_.Length -ge 1m) -and ($_.Length -le 10m)}

Copia di file e cartelle

Per la copia viene utilizzato Copy-Item. Il comando seguente consente di eseguire il backup di C:\boot.ini in C:\boot.bak:

Copy-Item -Path c:\boot.ini -Destination c:\boot.bak

Se il file di destinazione è già esistente, il tentativo di copia non riuscirà. Per sovrascrivere una destinazione preesistente, utilizzare il parametro Force:

Copy-Item -Path c:\boot.ini -Destination c:\boot.bak -Force

Questo comando è valido anche la destinazione è di sola lettura.

Il processo di copia delle cartelle è analogo. Questo comando consente di copiare la cartella C:\temp\test1 nella nuova cartella c:\temp\DeleteMe in modo ricorsivo:

Copy-Item C:\temp\test1 -Recurse c:\temp\DeleteMe

È inoltre possibile copiare solo alcuni elementi selezionati. Il comando seguente consente di copiare tutti i file con estensione txt inclusi in tutte le directory comprese tra c:\data e c:\temp\text:

Copy-Item -Filter *.txt -Path c:\data -Recurse -Destination c:\temp\text

Per eseguire copie del file system, è comunque possibile utilizzare altri strumenti. È possibile utilizzare in Windows PowerShell gli oggetti XCOPY, ROBOCOPY e COM, ad esempio Scripting.FileSystemObject,. Ad esempio, è possibile utilizzare la classe Scripting.FileSystem COM di Windows Script Host per eseguire il backup di C:\boot.ini in C:\boot.bak:

(New-Object -ComObject Scripting.FileSystemObject).CopyFile("c:\boot.ini", "c:\boot.bak")

Creazione di file e cartelle

Il processo di creazione di nuovi elementi è identico per tutti i provider di Windows PowerShell. Se per un provider di Windows PowerShell è disponibile più di un tipo di elemento, come nel caso del provider FileSystem che fa distinzione tra directory e file, sarà necessario specificare il tipo dell'elemento.

Questo comando consente di creare una nuova cartella denominata C:\temp\New Folder:

New-Item -Path 'C:\temp\New Folder' -ItemType "directory"

Questo comando consente di creare un nuovo file vuoto denominato C:\temp\New Folder\file.txt:

New-Item -Path 'C:\temp\New Folder\file.txt' -ItemType "file"

Rimozione di tutti i file e di tutte le cartelle presenti in una cartella

È possibile rimuovere elementi contenuti utilizzando Remove-Item, ma verrà richiesto di confermare la rimozione se l'elemento contiene altri elementi. Se ad esempio si tenta di eliminare la cartella C:\temp\DeleteMe che contiene altri elementi, verrà richiesto di confermare l'eliminazione della cartella:

Remove-Item C:\temp\DeleteMe

Confirm
The item at C:\temp\DeleteMe has children and the -recurse parameter was not
specified. If you continue, all children will be removed with the item. Are you
sure you want to continue?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):

Se non si desidera visualizzare la richiesta di conferma per ogni elemento contenuto, specificare il parametro Recurse:

Remove-Item C:\temp\DeleteMe -Recurse

Mapping di una cartella locale come unità di rete accessibile da Windows

È inoltre possibile eseguire il mapping di una cartella locale utilizzando il comando subst. Con il comando seguente viene creata un'unità locale P: la cui radice si trova nella directory Programmi locale:

subst p: $env:programfiles

Come per le unità di rete, le unità mappate in Windows PowerShell tramite subst sono immediatamente visibili nella shell di Windows PowerShell.

Lettura di un file di testo in una matrice

Uno di formati di archiviazione più comuni per i dati di testo è costituito da un file contenente righe considerate come elementi di dati distinti. È possibile utilizzare il cmdlet Get-Content per leggere un intero file con un'unica operazione, come illustrato di seguito:

PS> Get-Content -Path C:\boot.ini
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional"
 /noexecute=AlwaysOff /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=" Microsoft Windows XP Professional
with Data Execution Prevention" /noexecute=optin /fastdetect

Get-Content considera già i dati letti dai file come una matrice, con un elemento per ciascuna riga del contenuto del file. Per verificare questa situazione, verificare Length del contenuto restituito:

PS> (Get-Content -Path C:\boot.ini).Length
6

Questo comando risulta maggiormente utile per ottenere elenchi di informazioni direttamente in Windows PowerShell. È ad esempio possibile archiviare un elenco di nomi di computer o indirizzi IP in un file denominato C:\temp\domainMembers.txt, contenente un solo nome per ciascuna riga del file. È possibile utilizzare Get-Content per recuperare il contenuto del file e inserirlo nella variabile $Computers:

$Computers = Get-Content -Path C:\temp\DomainMembers.txt

$Computers corrisponde a una matrice contenente un nome di computer in ogni elemento.


Utilizzo delle chiavi del Registro di sistema

In quanto elementi presenti nelle unità Windows PowerShell, le chiavi del Registro di sistema sono caratterizzate da una gestione simile a quella di file e cartelle. Una delle differenze principali è costituita dal fatto che ogni elemento in un'unità Windows PowerShell basata sul Registro di sistema è un contenitore, proprio come una cartella in un'unità del file system. Le voci del Registro di sistema e i valori ad esse associati sono tuttavia proprietà degli elementi e non elementi distinti.

Visualizzazione dell'elenco di tutte le sottochiavi di una chiave del Registro di sistema

Per visualizzare direttamente tutti gli elementi presenti in una chiave del Registro di sistema, utilizzare Get-ChildItem. Aggiungere il parametro facoltativo Force per visualizzare elementi nascosti o di sistema. Questo comando consente ad esempio di visualizzare gli elementi direttamente nell'unità di HKCU: di Windows PowerShell, che corrisponde all'hive del Registro di sistema HKEY_CURRENT_USER:

PS> Get-ChildItem -Path hkcu:\

   Hive: Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER

SKC  VC Name                           Property
---  -- ----                           --------
  2   0 AppEvents                      {}
  7  33 Console                        {ColorTable00, ColorTable01, ColorTab...
 25   1 Control Panel                  {Opened}
  0   5 Environment                    {APR_ICONV_PATH, INCLUDE, LIB, TEMP...}
  1   7 Identities                     {Last Username, Last User ...
  4   0 Keyboard Layout                {}
...

Si tratta delle chiavi di primo livello visibili in HKEY_CURRENT_USER nell'Editor del Registro di sistema (Regedit.exe).

È inoltre possibile specificare il percorso del Registro di sistema indicando il nome del provider Registry seguito da "::". Il nome completo del provider è Microsoft.PowerShell.Core\Registry, ma può essere abbreviato in Registry. Uno qualsiasi dei comandi seguenti consentiranno di visualizzare il contenuto direttamente in HKCU:

Get-ChildItem -Path Registry::HKEY_CURRENT_USER
Get-ChildItem -Path Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER
Get-ChildItem -Path Registry::HKCU
Get-ChildItem -Path Microsoft.PowerShell.Core\Registry::HKCU
Get-ChildItem HKCU:

Questi comandi consentono di visualizzare l'elenco dei soli elementi contenuti in modo diretto, come il comando DIR di Cmd.exe o ls in una shell UNIX. Per visualizzare gli elementi contenuti, è necessario specificare il parametro Recurse. Per visualizzare tutte le chiavi del Registro di sistema incluse in HKCU, utilizzare il comando seguente. L'operazione può richiedere moltissimo tempo.

Get-ChildItem -Path hkcu:\ -Recurse

Get-ChildItem consente di eseguire operazioni di filtro complesse tramite i parametri Path, Filter, Include ed Exclude, ma tali parametri si basano in genere solo sul nome. Per eseguire operazioni di filtro complesse basate su altre proprietà degli elementi, è possibile utilizzare il cmdlet Where-Object. Il comando seguente consente di trovare tutte le chiavi incluse in HKCU:\Software per le quali sono disponibili non più di una sottochiave ed esattamente quattro valori:

Get-ChildItem -Path HKCU:\Software -Recurse | Where-Object -FilterScript {($_.SubKeyCount -le 1) -and ($_.ValueCount -eq 4) }

Copia di chiavi

Per la copia viene utilizzato Copy-Item. Il comando seguente consente di copiare la chiave HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion e tutte le relative proprietà in HKCU:\, creando una nuova chiave denominata "CurrentVersion":

Copy-Item -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion' -Destination hkcu:

Se si esamina questa nuova chiave nell'editor del Registro di sistema oppure utilizzando Get-ChildItem, si noterà che nel nuovo percorso non sono presenti copie delle sottochiavi contenute. Per poter copiare tutto il contenuto di un contenitore, è necessario specificare il parametro Recurse. Per rendere ricorsivo il comando di copia precedente, utilizzare il comando seguente:

Copy-Item -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion' -Destination hkcu: -Recurse

Per eseguire copie del file system, è comunque possibile utilizzare altri strumenti già disponibili. In Windows PowerShell è possibile utilizzare qualsiasi utilità di modifica del Registro di sistema, inclusi reg.exe, regini.exe e regedit.exe, nonché oggetti COM che supportano la modifica del Registro di sistema, ad esempio WScript.Shell e la classe StdRegProv di WMI.

Creazione di chiavi

La procedura di creazione di nuove chiavi del Registro di sistema è più semplice rispetto a quella di creazione di un nuovo elemento in un file system. Poiché tutte le chiavi del Registro di sistema sono contenitori, non è necessario specificare il tipo dell'elemento, ma è sufficiente indicare un percorso esplicito, ad esempio:

New-Item -Path hkcu:\software\_DeleteMe

Per specificare una chiave, è inoltre possibile utilizzare un percorso basato su provider:

New-Item -Path Registry::HKCU\_DeleteMe

Eliminazione di chiavi

Il processo di eliminazione degli elementi è essenzialmente identico per tutti i provider. I comandi seguenti consentiranno di rimuovere elementi senza visualizzare nessun avviso:

Remove-Item -Path hkcu:\Software\_DeleteMe
Remove-Item -Path 'hkcu:\key with spaces in the name'

Rimozione di tutte le chiavi in una chiave specifica

Per rimuovere elementi contenuti, è possibile utilizzare Remove-Item, tuttavia verrà richiesto di confermare la rimozione se l'elemento contiene altri elementi. Se ad esempio si tenta di eliminare la sottochiave HKCU:\CurrentVersion creata, verrà visualizzato quanto segue:

Remove-Item -Path hkcu:\CurrentVersion

Confirm
The item at HKCU:\CurrentVersion\AdminDebug has children and the -recurse
parameter was not specified. If you continue, all children will be removed with
 the item. Are you sure you want to continue?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):

Per eliminare gli elementi contenuti senza visualizzare alcun avviso, specificare il parametro -Recurse:

Remove-Item -Path HKCU:\CurrentVersion -Recurse

Se si desidera rimuovere tutti gli elementi inclusi in HKCU:\CurrentVersion ma non tale chiave, è possibile utilizzare:

Remove-Item -Path HKCU:\CurrentVersion\* -Recurse


Utilizzo delle voci del Registro di sistema

Poiché le voci del Registro di sistema sono proprietà delle chiavi e non possono pertanto essere visualizzate direttamente, è necessario adottare un approccio leggermente diverso per poterle utilizzare.

Visualizzazione dell'elenco delle voci del Registro di sistema

Sono disponibili molti modi diversi per esaminare le voci del Registro di sistema. Quello più semplice consiste nell'ottenere i nomi delle proprietà associate a una chiave. Ad esempio, per visualizzare i nomi delle voci della chiave del Registro di sistema HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion, utilizzare Get-Item. Le chiavi del Registro di sistema includono una proprietà caratterizzata dal nome generico "Property" che corrisponde a un elenco delle voci presenti nella chiave. Il comando seguente consente di selezionare la proprietà Property e di espandere gli elementi in modo che vengano visualizzati in un elenco:

PS> Get-Item -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion | Select-Object -ExpandProperty Property
DevicePath
MediaPathUnexpanded
ProgramFilesDir
CommonFilesDir
ProductId

Per visualizzare le voci del Registro di sistema in un formato più leggibile, utilizzare Get-ItemProperty:

PS> Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion

PSPath              : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SO
                      FTWARE\Microsoft\Windows\CurrentVersion
PSParentPath        : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SO
                      FTWARE\Microsoft\Windows
PSChildName         : CurrentVersion
PSDrive             : HKLM
PSProvider          : Microsoft.PowerShell.Core\Registry
DevicePath          : C:\WINDOWS\inf
MediaPathUnexpanded : C:\WINDOWS\Media
ProgramFilesDir     : C:\Program Files
CommonFilesDir      : C:\Program Files\Common Files
ProductId           : 76487-338-1167776-22465
WallPaperDir        : C:\WINDOWS\Web\Wallpaper
MediaPath           : C:\WINDOWS\Media
ProgramFilesPath    : C:\Program Files
PF_AccessoriesName  : Accessories
(default)           :

Le proprietà della chiave correlate a Windows PowerShell sono tutte precedute dal prefisso "PS", ad esempio PSPath, PSParentPath, PSChildName e PSProvider.

È possibile utilizzare la notazione "." per fare riferimento al percorso corrente. È possibile utilizzare Set-Location per passare dapprima al contenitore del Registro di sistema CurrentVersion:

Set-Location -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion

In alternativa, è possibile utilizzare la chiave HKLM PSDrive predefinita con Set-Location:

Set-Location -Path hklm:\SOFTWARE\Microsoft\Windows\CurrentVersion

È quindi possibile utilizzare la notazione "." per il percorso corrente per visualizzare le proprietà senza specificare un percorso completo:

PS> Get-ItemProperty -Path .
...
DevicePath          : C:\WINDOWS\inf
MediaPathUnexpanded : C:\WINDOWS\Media
ProgramFilesDir     : C:\Program Files
...

Il processo di espansione del percorso è analogo a quello previsto nel file system, pertanto da questo percorso è possibile ottenere l'elenco di ItemProperty per HKLM:\SOFTWARE\Microsoft\Windows\Help utilizzando Get-ItemProperty -Path ..\Help.

Recupero di una singola voce del Registro di sistema

Se si desidera recuperare una voce specifica di una chiave del Registro di sistema, è possibile utilizzare uno dei diversi approcci possibili. In questo esempio il valore di DevicePath viene trovato in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion.

Utilizzare Get-ItemProperty con il parametro Path per specificare il nome della chiave e con il parametro Name per specificare il nome della voce DevicePath.

PS> Get-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion -Name DevicePath

PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\
               Microsoft\Windows\CurrentVersion
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\
               Microsoft\Windows
PSChildName  : CurrentVersion
PSDrive      : HKLM
PSProvider   : Microsoft.PowerShell.Core\Registry
DevicePath   : C:\WINDOWS\inf

Questo comando restituisce le proprietà standard di Windows PowerShell nonché la proprietà DevicePath.

Nota

Non è possibile utilizzare i parametri Filter, Include e Exclude di Get-ItemProperty per filtrare i risultati in base al nome della proprietà. Tali parametri fanno riferimento alle chiave del Registro di sistema, che sono percorsi degli elementi, non alle voci del Registro di sistema, che sono proprietà degli elementi.

Un altro modo consiste nell'utilizzare l'utilità della riga di comando Reg.exe. Per la Guida di Reg.exe, digitare reg.exe /? al prompt dei comandi. Per individuare la voce DevicePath, utilizzare Reg.exe come illustrato nel comando seguente:

PS> reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion /v DevicePath

! REG.EXE VERSION 3.0

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
    DevicePath  REG_EXPAND_SZ   %SystemRoot%\inf

È inoltre possibile utilizzare l'oggetto WshShell COM per individuare alcune voci del Registro di sistema, sebbene questa soluzione non sia applicabile con grandi quantità di dati binari o con nomi di voci che includono caratteri quali "\". In tal caso accodare il nome della proprietà al percorso dell'elemento con un separatore \:

PS> (New-Object -ComObject WScript.Shell).RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DevicePath")
%SystemRoot%\inf

Creazione di nuove voci del Registro di sistema

Per aggiungere una nuova voce denominata "PowerShellPath" alla chiave CurrentVersion, utilizzare New-ItemProperty con il percorso della chiave, il nome e il valore della voce. Per questo esempio verrà considerato il valore della variabile $PSHome di Windows PowerShell, in cui è archiviato il percorso della directory di installazione di Windows PowerShell.

Per aggiungere la nuova voce alla chiave, è possibile utilizzare il comando riportato di seguito che restituirà anche informazioni sulla nuova voce:

PS> New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -PropertyType String -Value $PSHome

PSPath         : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWAR
                 E\Microsoft\Windows\CurrentVersion
PSParentPath   : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWAR
                 E\Microsoft\Windows
PSChildName    : CurrentVersion
PSDrive        : HKLM
PSProvider     : Microsoft.PowerShell.Core\Registry
PowerShellPath : C:\Program Files\Windows PowerShell\v1.0

PropertyType deve corrispondere al nome di un membro dell'enumerazione Microsoft.Win32.RegistryValueKind incluso nella tabella seguente:

Valore di PropertyType | Significato
Binary | Dati binari
DWord | Numero che corrisponde a un UInt32 valido
ExpandString | Stringa che contiene variabili di ambiente espanse in modo dinamico
MultiString | Stringa multirighe
String | Qualsiasi valore di stringa
QWord | 8 byte di dati binari
Nota

È possibile aggiungere una voce del Registro di sistema per più percorsi specificando una matrice di valori per il parametro Path:

New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion, HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -PropertyType String -Value $PSHome

È inoltre possibile sovrascrivere il valore di una voce del Registro di sistema preesistente aggiungendo il parametro Force a qualsiasi comando New-ItemProperty.

Ridenominazione di voci del Registro di sistema

Per rinominare la voce PowerShellPath in "PSHome", utilizzare Rename-ItemProperty:

Rename-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -NewName PSHome

Per visualizzare il valore rinominato, aggiungere il parametro PassThru al comando.

Rename-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -NewName PSHome -passthru

Eliminazione di voci del Registro di sistema

Per eliminare le voci del Registro di sistema PSHome e PowerShellPath, utilizzare Remove-ItemProperty:

Remove-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PSHome
Remove-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath


Esecuzione di comandi remoti

È possibile eseguire comandi in uno o in centinaia di computer con un solo comando di Windows PowerShell. In Windows PowerShell la comunicazione remota è supportata tramite varie tecnologie, incluse Strumentazione gestione Windows (WMI), RPC e Gestione remota Windows (WS-Management).

Comunicazione remota senza configurazione

Molti cmdlet di Windows PowerShell dispongono di un parametro ComputerName che consente di raccogliere dati e modificare impostazioni in uno o più computer remoti. Sono basati su diverse tecnologie di comunicazione e molti possono essere utilizzati in tutti i sistemi operativi Windows supportati da Windows PowerShell senza necessità di eseguire particolari operazioni di configurazione.

Sono inclusi i cmdlet elencati di seguito:

  • Restart-Computer

  • Test-Connection

  • Clear-EventLog

  • Get-EventLog

  • Get-HotFix

  • Get-Process

  • Get-Service

  • Set-Service

  • Get-HotFix

  • Get-WmiObject

In genere, i cmdlet che supportano la comunicazione remota senza necessità di eseguire operazioni di configurazione particolari dispongono di un parametro ComputerName e non di un parametro Session. Per trovare questi cmdlet nella sessione, digitare:

get-command | where { $_.parameters.keys -contains "ComputerName" -and $_.parameters.keys -notcontains "Session"}

Comunicazione remota di Windows PowerShell

La comunicazione remota di Windows PowerShell, basata sul protocollo WS-Management, consente di eseguire qualsiasi comando di Windows PowerShell in uno o più computer remoti. Consente di stabilire connessioni permanenti, di avviare sessioni interattive 1:1 e di eseguire script in più computer.

Per utilizzare la comunicazione remota di Windows PowerShell, è necessario configurare il computer remoto per la gestione remota. Per ulteriori informazioni e per le istruzioni, vedere about_Remote_Requirements.

In seguito alla configurazione della comunicazione remota di Windows PowerShell, vengono rese disponibili molte strategie remote. Nella parte rimanente di questo documento sono elencate alcune di queste strategie. Per ulteriori informazioni, vedere about_Remote e about_Remote_FAQ.

Avviare una sessione interattiva

Per avviare una sessione interattiva con un singolo computer remoto, utilizzare il cmdlet Enter-PSSession. Ad esempio, per avviare una sessione interattiva con il computer remoto Server01, digitare:

enter-pssession Server01

Il prompt dei comandi cambia per visualizzare il nome del computer a cui si è connessi. Da questo punto in poi, qualsiasi comando digitato al prompt verrà eseguito nel computer remoto e i risultati verranno visualizzati nel computer locale.

Per terminare la sessione interattiva, digitare:

exit-pssession

Per ulteriori informazioni sui cmdlet Enter-PSSession e Exit-PSSession, vedere Enter-PSSession e Exit-PSSession.

Eseguire un comando remoto

Per eseguire qualsiasi comando in uno o più computer remoti, utilizzare il cmdlet Invoke-Command. Ad esempio, per eseguire un comando Get-UICulture nei computer remoti Server01 e Server02, digitare:

invoke-command -computername Server01, Server02 {get-UICulture}

L'output viene restituito nel computer.

LCID    Name     DisplayName               PSComputerName
----    ----     -----------               --------------
1033    en-US    English (United States)   server01.corp.fabrikam.com
1033    en-US    English (United States)   server02.corp.fabrikam.com

Per ulteriori informazioni sul cmdlet Invoke-Command, vedere Invoke-Command.

Eseguire uno script

Per eseguire uno script in uno o più computer remoti, utilizzare il parametro FilePath del cmdlet Invoke-Command. Lo script deve trovarsi nel computer locale o essere accessibile a tale computer. I risultati vengono restituiti nel computer locale.

Il comando seguente, ad esempio, consente di eseguire lo script DiskCollect.ps1 nei computer remoti Server01 e Server02:

invoke-command -computername Server01, Server02 -filepath c:\Scripts\DiskCollect.ps1

Per ulteriori informazioni sul cmdlet Invoke-Command, vedere Invoke-Command.

Stabilire una connessione permanente

Per eseguire una serie di comandi correlati per la condivisione di dati, creare una sessione nel computer remoto e utilizzare il cmdlet Invoke-Command per eseguire comandi nella sessione creata. Per creare una sessione remota, utilizzare il cmdlet New-PSSession.

Ad esempio, il comando seguente consente di creare una sessione remota nel computer Server01 e un'altra nel computer Server02. Gli oggetti sessione vengono salvati nella variabile $s.

$s = new-pssession -computername Server01, Server02

Dopo avere stabilito le sessioni, è possibile eseguire qualsiasi comando. Poiché si tratta di sessioni permanenti, è possibile raccogliere dati in un comando e utilizzarli in un comando successivo.

Ad esempio, con il comando seguente viene eseguito un comando Get-Hotfix nelle sessioni nella variabile $s e i risultati vengono salvati nella variabile $h. La variabile $h viene creata in ognuna delle sessioni in $s, ma non esiste nella sessione locale.

invoke-command -session $s {$h = get-hotfix}

È ora possibile utilizzare i dati nella variabile $h nei comandi successivi, ad esempio quello riportato di seguito. I risultati vengono visualizzati nel computer locale.

invoke-command -session $s {$h | where {$_.installedby -ne "NTAUTHORITY\SYSTEM"

Comunicazione remota avanzata

La gestione remota di Windows PowerShell ha inizio in questo ambito. Mediante i cmdlet installati con Windows PowerShell, è possibile stabilire e configurare sessioni remote da computer locali e remoti, creare sessioni personalizzate e limitate, consentire agli utenti di importare comandi da una sessione remota in esecuzione in modo implicito nella sessione remota, configurare la sicurezza di una sessione remota e molto altro.

Per semplificare le operazioni di configurazione remota, in Windows PowerShell è disponibile un provider Gestione remota Windows (WS-Management). L'unità WSMAN: creata dal provider consente di spostarsi all'interno di una gerarchia di impostazioni di configurazione nel computer locale e nei computer remoti. Per ulteriori informazioni sul provider Gestione remota Windows (WS-Management), vedere WSMan Provider e about_WS-Management_Cmdlets oppure digitare "get-help wsman" nella console di Windows PowerShell.

Per ulteriori informazioni, vedere about_Remote_FAQ, New-PSSessionConfiguration e Import-PSSession. Per informazioni sugli errori di comunicazione remota, vedere about_Remote_Troubleshooting.

Vedere anche

    New-PSSessionConfiguration
  • about_Remote
  • about_Remote_FAQ
  • about_Remote_Requirements
  • about_Remote_Troubleshooting
  • about_PSSessions
  • about_WS-Management_Cmdlets
  • Invoke-Command
  • Import-PSSession
  • New-PSSession
  • WSMan Provider


Introduzione a Windows PowerShell ISE

Per avviare Windows PowerShell ISE

  1. Effettuare una delle seguenti operazioni:

    • Fare clic sul pulsante Start, scegliere Tutti i programmi, Windows PowerShell V2, quindi fare clic su Windows PowerShell ISE.

    • Nella console di Windows PowerShell, in Cmd.exe o nella casella Esegui, digitare powershell_ise.exe.

Per visualizzare la Guida in Windows PowerShell ISE

  • Scegliere Guida di Windows PowerShell dal menu ?. In alternativa, premere F1. Nel file visualizzato vengono descritti Windows PowerShell ISE e Windows PowerShell, comprese tutte le informazioni della Guida disponibili dal cmdlet Get-Help.


Appendice 1 - Alias di compatibilità

In Windows PowerShell sono disponibili diversi alias di transizione che consentono agli utenti di UNIX e Cmd di utilizzare nomi di comando noti in Windows PowerShell. Nella tabella seguente sono elencati gli alias più comuni, unitamente al comando di Windows PowerShell corrispondente all'alias e all'eventuale alias standard di Windows PowerShell, se esistente.

Per individuare il comando di Windows PowerShell cui punta un alias dall'interno di Windows PowerShell, utilizzare il cmdlet Get-Alias. Ad esempio, digitare get-alias cls.

CommandType     Name                            Definition
-----------     ----                            ----------
Alias           cls                             Clear-Host

Comando CMD | Comando UNIX | Comando PS | Alias PS
dir | ls | Get-ChildItem | gci
cls | clear | Clear-Host (funzione) | N/D
del, erase, rmdir | rm | Remove-Item | ri
copy | cp | Copy-Item | ci
move | mv | Move-Item | mi
rename | mv | Rename-Item | rni
type | cat | Get-Content | gc
cd | cd | Set-Location | sl
md | mkdir | New-Item | ni
N/D | pushd | Push-Location | N/D
N/D | popd | Pop-Location | N/D


Appendice 2 - Creazione di un collegamento personalizzato a PowerShell

Nella procedura riportata di seguito viene illustrato come creare un collegamento a Windows PowerShell di cui sono state personalizzate diverse opzioni.

  1. Creare un collegamento che punta a Powershell.exe.

  2. Fare clic con il pulsante destro del mouse sul collegamento e scegliere Proprietà.

  3. Fare clic sulla scheda Opzioni.

  4. Nella sezione Opzioni di modifica, selezionare la casella di controllo Modifica rapida.

    Questa impostazione consente di selezionare testo nella finestra della console di Windows PowerShell trascinando il puntatore dopo aver premuto il pulsante sinistro del mouse e di copiare il testo negli Appunti premendo INVIO o facendo clic con il pulsante destro del mouse.

  5. Nella sezione Opzioni di modifica, selezionare la casella di controllo Modalità inserimento. Questa impostazione consente di fare clic con il pulsante destro del mouse nella finestra della console per incollare automaticamente testo dagli Appunti.

  6. Nella sezione Cronologia comandi, digitare o selezionare un numero compreso tra 1 e 999 nella casella Dimensioni buffer. In questo modo viene impostato il numero di comandi che verrà mantenuto nel buffer della console.

  7. Nella sezione Cronologia comandi, selezionare la casella di controllo Elimina vecchi duplicati per eliminare i comandi ripetuti dal buffer della console.

  8. Fare clic sulla scheda Layout.

  9. Nella sezione Dimensioni buffer dello schermo, digitare un numero compreso tra 1 e 9999 nella casella Altezza. L'altezza rappresenta il numero di righe di output memorizzate nel buffer. Si tratta del numero massimo di righe mantenute per la visualizzazione quando si scorre il contenuto della finestra della console. Se questo numero è minore dell'altezza indicata nella casella Dimensioni finestra, l'altezza della finestra verrà reimpostata automaticamente sullo stesso valore.

  10. Nella sezione Dimensioni finestra, digitare un numero compreso tra 1 e 9999 per la larghezza. Tale valore rappresenta il numero di caratteri visualizzati nella finestra della console. La larghezza predefinita è 80 e l'output formattato di Windows PowerShell è progettato per tale valore.

  11. Se si desidera che all'apertura la console sia posizionata in un punto specifico del desktop, nella sezione Posizione finestra deselezionare la casella di controllo Posizionamento automatico e modificare i valori nelle caselle Sinistra e In alto della sezione Posizione finestra.

  12. Fare clic su OK.


Argomenti della Guida "About" di Windows PowerShell

In questa sezione sono contenuti gli argomenti della Guida concettuali ("informazioni su") in Windows PowerShell.

Argomento | Descrizione
about_Aliases | Vengono descritti nomi alternativi per cmdlet e comandi in Windows PowerShell.
about_Arithmetic_Operators | Vengono descritti gli operatori che eseguono operazioni aritmetiche in Windows PowerShell.
about_Arrays | Vengono descritte le matrici, una struttura di dati compatta per l'archiviazione di elementi di dati.
about_Assignment_Operators | Vengono descritti gli operatori che assegnano valori alle variabili.
about_Automatic_Variables | Vengono descritte le variabili automatiche, nelle quali vengono archiviate informazioni sullo stato per Windows PowerShell.
about_Break | Viene illustrato come utilizzare l'istruzione Break, un'istruzione che chiude immediatamente le istruzioni Foreach, For, While, Do e Switch.
about_Command_Precedence | Viene illustrato il modo in cui vengono cercati i comandi in Windows PowerShell.
about_Command_Syntax | Viene illustrato il formato dei comandi in Windows PowerShell.
about_Comment_Based_Help | Viene illustrata la modalità di scrittura degli argomenti della Guida basati su commenti per funzioni e script.
about_Commonparameters | Vengono descritti i parametri che è possibile utilizzare con qualsiasi cmdlet.
about_Comparison_Operators | Vengono descritti gli operatori che confrontano i valori in Windows PowerShell.
about_Continue | Viene descritta l'istruzione Continue che consente di tornare immediatamente all'inizio del ciclo di un programma.
about_Core_Commands | Elenca i cmdlet progettati per essere utilizzati con i provider di Windows PowerShell.
about_Data_Sections | Viene descritta la sezione Data degli script, progettata per isolare i dati dal codice logico.
about_Debuggers | Viene descritto lo Script Debugger di Windows PowerShell, un set di cmdlet per il debug di script e funzioni.
about_Do | Viene descritta l'istruzione Do, che esegue un blocco di script una o più volte in base a una condizione While o Until.
about_Environment_Variables | Viene illustrato come accedere alle variabili di ambiente di Windows in Windows PowerShell.
about_Escape_Characters | Viene introdotto il carattere di escape in Windows PowerShell (`) e ne vengono illustrati gli effetti.
about_Eventlogs | Viene descritto il registro eventi di Windows PowerShell nel Visualizzatore eventi.
about_Execution_Policies | Vengono descritti i criteri di esecuzione di Windows PowerShell e le modalità di gestione relative.
about_For | Viene descritto il ciclo For in Windows PowerShell.
about_Foreach | Viene descritta l'istruzione ForEach, un'istruzione che esegue un'azione su ogni elemento di una raccolta.
about_Format.ps1xml | Vengono descritti i file Format.ps1xml in cui viene definita la visualizzazione predefinita degli oggetti nella console.
about_Functions | Viene illustrato come creare e utilizzare le funzioni in Windows PowerShell.
about_Functions_Advanced | Introduzione alle funzioni avanzate, ovvero quelle che si comportano come cmdlet.
about_Functions_Advanced_Methods | Viene illustrato come utilizzare i metodi e le proprietà disponibili ai cmdlet nelle funzioni avanzate.
about_Functions_Advanced_Parameters | Viene illustrato come dichiarare parametri per le funzioni avanzate.
about_Functions_Cmdletbindingattribute | Viene descritto l'attributo CmdletBinding che identifica una funzione che funziona come un cmdlet.
about_Hash_Tables | Viene illustrato come creare, utilizzare e ordinare le tabelle hash in Windows PowerShell.
about_History | Viene illustrato come ottenere ed eseguire comandi dalla cronologia dei comandi.
about_If | Viene descritta l'istruzione If che stabilisce le condizioni per un'azione.
about_Jobs | Vengono descritti i processi in background di Windows PowerShell.
about_Job_Details | Vengono fornite informazioni dettagliate sui processi in background.
about_Join | Viene descritto l'operatore Join che combina più stringhe in una sola.
about_Language_Keywords | Vengono descritte le parole chiave nel linguaggio di scripting di Windows PowerShell.
about_Line_Editing | Vengono descritte le funzionalità di modifica della console di Windows PowerShell.
about_Locations | Viene illustrato come utilizzare il percorso di lavoro in Windows PowerShell.
about_Logical_Operators | Vengono descritti gli operatori che connettono istruzioni in Windows PowerShell.
about_Methods | Viene illustrato come utilizzare metodi per eseguire azioni su oggetti in Windows PowerShell.
about_Modules | Viene illustrato come installare, importare e utilizzare i moduli di Windows PowerShell.
about_Objects | Viene illustrato come utilizzare oggetti in Windows PowerShell.
about_Operators | Argomento in cui viene fornita una descrizione generale degli operatori in Windows PowerShell. Sono contenuti argomenti su ogni tipo di operatore.
about_Parameters | Viene illustrato come utilizzare i parametri dei cmdlet in Windows PowerShell.
about_Parsing | Viene illustrata la modalità di analisi dei comandi di Windows PowerShell.
about_Path_Syntax | Vengono illustrati i formati dei nomi di percorso completi e relativi in Windows PowerShell.
about_Pipelines | Viene illustrato come combinare comandi in pipeline in Windows PowerShell.
about_Preference_Variables | Vengono descritte le variabili di preferenza che consentono di personalizzare Windows PowerShell.
about_Profiles | Viene illustrato come creare e utilizzare un profilo di Windows PowerShell.
about_Prompts | Viene illustrato come creare e utilizzare un profilo di Windows PowerShell.
about_Properties | Viene illustrato come utilizzare le proprietà degli oggetti in Windows PowerShell.
about_Providers | Vengono descritti i provider di Windows PowerShell e viene illustrato come utilizzare i dati che espongono.
about_PSSessions | Vengono descritte le sessioni di Windows PowerShell (PSSession) e viene illustrato come utilizzarle per eseguire comandi remoti.
about_PSSession_Details | Vengono fornite informazioni dettagliate sulle sessioni di Windows PowerShell.
about_Pssnapins | Vengono descritti gli snap-in di Windows PowerShell e viene illustrato come utilizzarli per estendere Windows PowerShell.
about_Quoting_Rules | Vengono illustrate le regole per l'utilizzo delle virgolette singole e doppie in Windows PowerShell, incluse le stringhe here.
about_Redirection | Viene illustrato come reindirizzare l'output a variabili e file di testo. Sono inclusi gli operatori di reindirizzamento.
about_Ref | Viene illustrato come creare e utilizzare un tipo variabile di riferimento.
about_Regular_Expressions | Viene illustrato come utilizzare le espressioni regolari in Windows PowerShell.
about_Remote | Viene illustrato come eseguire comandi remoti in Windows PowerShell.
about_Remote_FAQ | Domande e risposte relative all'esecuzione di comandi remoti in Windows PowerShell.
about_Remote_Jobs | Viene illustrato come eseguire processi in background in computer remoti.
about_Remote_Output | Interpretazione e formattazione dell'output dei comandi remoti.
about_Remote_Requirements | Requisiti di sistema e di configurazione per l'esecuzione di comandi remoti in Windows PowerShell.
about_Remote_Troubleshooting | Risoluzione dei problemi relativi alle operazioni remote in Windows PowerShell.
about_Requires | Viene descritta l'istruzione Requires che impedisce che uno script venga eseguito senza le versioni e gli snap-in necessari.
about_Reserved_Words | Vengono elencate le parole riservate a Windows PowerShell.
about_Return | Consente di uscire dall'ambito corrente che può essere una funzione, uno script o un blocco di script.
about_Scopes | Viene illustrato come impostare e modificare l'ambito di funzioni e variabili in Windows PowerShell.
about_Script_Blocks | Viene illustrato come utilizzare blocchi di script per combinare espressioni, istruzioni e comandi in un singolo blocco di codice.
about_Script_Internationalization | Vengono descritte le funzionalità che agevolano la visualizzazione dei messaggi utente da parte degli script nella lingua selezionata per Windows.
about_Scripts | Viene illustrato come scrivere ed eseguire script in Windows PowerShell.
about_Session_Configurations | Vengono descritte le configurazioni di sessione che stabiliscono quali utenti possono connettersi al computer in modalità remota e i comandi che possono eseguire.
about_Signing | Vengono descritti i criteri di esecuzione di Windows PowerShell, viene illustrato come gestirli e come firmare gli script affinché siano conformi ai criteri di esecuzione.
about_Special_Characters | Vengono descritti i caratteri speciali in Windows PowerShell.
about_Split | Viene descritto l'operatore Split che suddivide le stringhe in sottostringhe.
about_Switch | Viene illustrato come utilizzare un'istruzione switch per sostituire più istruzioni If.
about_Throw | Viene descritta la parola chiave Throw che genera un errore fatale.
about_Transactions | Viene illustrato come gestire le operazioni sottoposte a transazione in Windows PowerShell.
about_Trap | Viene descritta la parola chiave Trap che gestisce un errore fatale.
about_Try_Catch_Finally | Gli errori negli script vengono gestiti tramite i blocchi di script Try, Catch e Finally.
about_Types.ps1xml | Vengono descritti i file Types.ps1xml che consentono di estendere i tipi .NET di oggetti utilizzati in Windows PowerShell.
about_Type_Operators | Vengono descritti gli operatori che utilizzano i tipi .NET.
about_Variables | Argomento in cui viene fornita una descrizione generale dei tipi di variabili in Windows PowerShell.
about_While | Viene descritto il ciclo While in Windows PowerShell.
about_Wildcards | Viene illustrato come utilizzare il carattere jolly (*) in Windows PowerShell.
about_Windows_PowerShell_2.0 | Vengono descritte le funzionalità introdotte in Windows PowerShell 2.0.
about_Windows_PowerShell_ISE | Viene descritto Windows PowerShell Integrated Scripting Environment.
about_WMI_Cmdlets | Vengono fornite informazioni complementari su Strumentazione gestione Windows (WMI) e Windows PowerShell.
about_WS-Management_Cmdlets | Vengono forniti cenni preliminari su Gestione remota Windows (WS-Management) per l'utilizzo dei relativi cmdlet in Windows PowerShell.

Vedere anche

  • Argomenti della Guida relativi ai cmdlet di Windows PowerShell
  • Argomenti della Guida relativi ai provider di Windows PowerShell
  • Guida della console PowerShell.exe
  • Windows PowerShell SDK


about_Aliases

ARGOMENTO
    about_aliases

DESCRIZIONE BREVE
    Descrive come utilizzare i nomi alternativi per cmdlet e comandi
    in Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    Un alias è un nome alternativo di un cmdlet o un elemento di
    comando, ad esempio una funzione, uno script, un file o un file
    eseguibile. È possibile utilizzare l'alias anziché il nome del
    comando in qualsiasi comando di Windows PowerShell.

    Per creare un alias, utilizzare il cmdlet New-Alias. Ad esempio,
    con il comando seguente viene creato l'alias "gas" per il cmdlet
    Get-AuthenticodeSignature:

        new-alias -name gas -value Get-AuthenticodeSignature

    Dopo la creazione dell'alias per il nome del cmdlet, è possibile
    utilizzare l'alias anziché il nome del cmdlet. Ad esempio, per
    ottenere la firma Authenticode per il file SqlScript.ps1, digitare:

        get-authenticodesignature sqlscript.ps1

    Oppure:

        gas sqlscript.ps1

    Se si crea "word" come alias per Microsoft Office Word, è
    possibile digitare "word" anziché:

        "c:\programmi\microsoft office\office11\winword.exe"

ALIAS INCORPORATI
    In Windows PowerShell è incluso un set di alias incorporati, tra
    cui "cd" e "chdir" per il cmdlet Set-Location e "ls" e "dir" per
    il cmdlet Get-ChildItem.

    Per ottenere tutti gli alias presenti nel computer, inclusi quelli
    incorporati, digitare:

        get-alias

CMDLET RELATIVI AGLI ALIAS
    In Windows PowerShell sono inclusi i cmdlet seguenti, progettati per
    l'utilizzo con gli alias:

        - Get-Alias. Ottiene tutti gli alias della sessione corrente.
        - New-Alias. Crea un nuovo alias.
        - Set-Alias. Crea o modifica un alias.
        - Export-Alias. Esporta uno o più alias in un file.
        - Import-Alias. Importa un file di alias in Windows PowerShell.

    Per informazioni dettagliate sui cmdlet, digitare:

    get-help <nome-cmdlet> -detailed

    Ad esempio, digitare:

    get-help export-alias -detailed

CREAZIONE DI UN ALIAS
    Per creare un nuovo alias, utilizzare il cmdlet New-Alias. Ad
    esempio, per creare l'alias "gh" per Get-Help, digitare:

    new-alias -name gh -value get-help

    È possibile utilizzare l'alias nei comandi, in modo analogo al nome di
    cmdlet completo, e con i parametri.

    Ad esempio, per ottenere informazioni dettagliate sul cmdlet
    Get-WmiObject, digitare:

    get-help get-wmiobject -detailed

    Oppure:

    gh get-wmiobject -detailed

SALVATAGGIO DI ALIAS
    Gli alias creati vengono salvati solo nella sessione corrente. Per
    utilizzare gli alias in una sessione diversa, aggiungere l'alias al
    profilo di Windows PowerShell. In alternativa, utilizzare il cmdlet
    Export-Alias per salvare gli alias in un file.

    Per ulteriori informazioni, digitare:

        get-help about_profile

RECUPERO DI ALIAS
    Per ottenere tutti gli alias nella sessione corrente, inclusi quelli
    incorporati, quelli presenti nei propri profili di Windows PowerShell
    e quelli creati nella sessione corrente, digitare:

    get-alias

    Per ottenere alias specifici, utilizzare il parametro Name del
    cmdlet Get-Alias.
    Ad esempio, per ottenere gli alias che iniziano con "p", digitare:

    get-alias -name p*

    Per ottenere gli alias per un determinato elemento, utilizzare il
    parametro Definition.
    Ad esempio, per ottenere gli alias per il cmdlet Get-ChildItem,
    digitare:

    get-alias -definition Get-ChildItem

NOMI ALTERNATIVI PER COMANDI CON PARAMETRI
    È possibile assegnare un alias a un cmdlet, a uno script, a una
    funzione o a un file eseguibile.
    Tuttavia, non è possibile assegnare un alias a un comando e ai
    relativi parametri.
    Ad esempio, è possibile assegnare un alias al cmdlet
    Get-EventLog, ma non al comando "get-eventlog -logname system".

    È tuttavia possibile creare una funzione che include il comando.
    Per creare una funzione, digitare la parola "function" seguita da
    un nome per la funzione.
    Digitare il comando e racchiuderlo tra parentesi graffe ({}).

    Ad esempio, con il comando seguente viene creata la funzione
    syslog. Questa funzione rappresenta il comando "get-eventlog -logname
    system":

    function syslog {get-eventlog -logname system}

    È ora possibile digitare "syslog" anziché il comando. È inoltre
    possibile creare alias per la funzione syslog.

    Per ulteriori informazioni sulle funzioni, digitare:

    get-help about_functions

OGGETTI ALIAS
     In Windows PowerShell gli alias sono rappresentati da oggetti che
     costituiscono istanze della classe System.Management.Automation.AliasI
     nfo. Per ulteriori informazioni su questo tipo di oggetto, vedere
     l'argomento relativo alla classe AliasInfo in MSDN (Microsoft
     Developer Network) Library all'indirizzo
     http://go.microsoft.com/fwlink/?LinkId=143644 (le informazioni
     potrebbero essere in lingua inglese).

     Per visualizzare le proprietà e i metodi degli oggetti alias,
     ottenere gli alias. Quindi, reindirizzarli al cmdlet Get-Member.
     Ad esempio:

    get-alias | get-member

     Per visualizzare i valori delle proprietà di un determinato alias, ad
     esempio l'alias "dir", ottenere l'alias. Quindi, reindirizzarlo al cmdlet
     Format-List. Ad esempio, con il comando seguente si ottiene l'alias "dir".
     L'alias viene quindi reindirizzato al cmdlet Format-List. Il
     parametro Property di Format-List viene utilizzato con un carattere
     jolly (*) per visualizzare tutte le proprietà dell'alias "dir".
     Mediante il comando seguente vengono eseguite queste attività:

    get-alias -name dir | format-list -property *

PROVIDER ALIAS DI WINDOWS POWERSHELL
    Windows PowerShell include il provider Alias. Tale provider
    consente di visualizzare gli alias in Windows PowerShell come se si
    trovassero in un'unità del file system.

    Il provider Alias espone l'unità Alias:. Per passare all'unità Alias:,
    digitare:

    set-location alias:

    Per visualizzare il contenuto dell'unità, digitare:

    get-childitem

    Per visualizzare il contenuto dell'unità da un'altra unità di Windows
    PowerShell, specificare il nome dell'unità all'inizio del percorso.
    Includere i due punti (:). Ad esempio:

    get-childitem -path alias:

    Per ottenere informazioni su un alias specifico, digitare il nome
    dell'unità e quello dell'alias. In alternativa, digitare un
    modello di nome. Ad esempio, per ottenere tutti gli alias che
    iniziano con "p", digitare:

    get-childitem -path alias:p*

    Per ulteriori informazioni sul provider Alias di Windows PowerShell,
    digitare:

    get-help alias-psprovider

VEDERE ANCHE

    new-alias
    get-alias
    set-alias
    export-alias
    import-alias
    get-psprovider
    get-psdrive
    about_functions
    about_profiles
    about_providers


about_Arithmetic_Operators

ARGOMENTO
    about_Arithmetic_Operators

DESCRIZIONE BREVE
    Descrive gli operatori che eseguono operazioni aritmetiche in Windows
    PowerShell.

DESCRIZIONE DETTAGLIATA

    Gli operatori aritmetici calcolano valori numerici. È possibile
    utilizzare uno o più operatori aritmetici per sommare, sottrarre,
    moltiplicare e dividere valori e per calcolare il resto di
    un'operazione di divisione.

    Inoltre, anche l'operatore di addizione (+) e di moltiplicazione
    (*) operano su stringhe, matrici e tabelle hash. L'operatore di
    addizione concatena l'input. Restituisce inoltre più copie
    dell'input. È inoltre possibile combinare tipi di oggetto in
    un'istruzione aritmetica.
    Il metodo utilizzato per valutare l'istruzione viene determinato
    dal tipo di oggetto più a sinistra nell'espressione.

    In Windows PowerShell sono supportati gli operatori aritmetici
    seguenti:

    Operatore  Descrizione                             Esempio
    --------  -----------                              -------
    +         Aggiunge valori interi; concatena        6+2
              stringhe, matrici e tabelle hash.        "file" + "nome"

    -         Sottrae un valore da un altro valore.    6-2
                                                       (get-date) .date - 1

    -         Rende un numero negativo.                -6+2
                                                       -4

    *         Moltiplica valori interi; copia          6*2
              stringhe e matrici per il numero         "w" * 3
              di volte specificato.

    /         Divide due valori.                       6/2

    %         Restituisce il resto di un'operazione    7%2
              di divisione.

    PRECEDENZA TRA GLI OPERATORI
    In Windows PowerShell gli operatori aritmetici vengono eseguiti
    nell'ordine seguente:

        Parentesi ()
        - (per un numero negativo)
        *, /, %
        +, - (per la sottrazione)

    In Windows PowerShell le espressioni vengono elaborate da
    sinistra a destra in base alle regole di precedenza. Negli esempi
    seguenti viene illustrato l'effetto delle regole di precedenza:

        C:\PS> 3+6/3*4
        11

        C:\PS> 10+4/2
        12

        C:\PS> (10+4)/2
        7

        C:\PS> (3+3)/ (1+1)
        3

    L'ordine in cui vengono valutate le espressioni di Windows
    PowerShell potrebbe differire rispetto ad altri linguaggi di
    programmazione e scripting utilizzati. Nell'esempio seguente
    viene illustrata un'istruzione di assegnazione complicata.

        C:\PS> $a = 0
        C:\PS> $b = 1,2
        C:\PS> $c = -1,-2

        C:\PS> $b[$a] = $c[$a++]

        C:\PS> $b
        1
        -1

    In questo esempio, l'espressione $a++ viene valutata prima di
    $c[$a++]. La valutazione di $a++ modifica il valore di $a. La
    variabile $a in $b [$a] è uguale a 1, non a 0, pertanto
    l'istruzione assegna un valore $b[1], non $b[0].

    ADDIZIONE E MOLTIPLICAZIONE DI TIPI NON NUMERICI
    È possibile aggiungere numeri, stringhe, matrici e tabelle hash.
    È inoltre possibile moltiplicare numeri, stringhe e matrici. Non
    è tuttavia possibile moltiplicare le tabelle hash.

    Quando si aggiungono stringhe, matrici o tabelle hash, gli
    elementi vengono concatenati. Quando si concatenano raccolte, ad
    esempio matrici o tabelle hash, viene creato un nuovo oggetto che
    contiene gli oggetti di entrambe le raccolte. Se si tenta di
    concatenare tabelle hash che dispongono della stessa chiave,
    l'operazione ha esito negativo.

    Ad esempio, nei comandi seguenti vengono create due matrici, che
    vengono successivamente aggiunte:

    C:\PS> $a = 1,2,3
    C:\PS> $b = "A","B,"C"
    C:\PS> $a + $b
    1
    2
    3
    A
    B
    C

    È inoltre possibile eseguire operazioni aritmetiche su oggetti di
    tipi diversi. L'operazione eseguita da Windows PowerShell viene
    determinata dal tipo Microsoft .NET Framework dell'oggetto più a
    sinistra nell'operazione.
    Windows PowerShell tenta di convertire tutti gli oggetti
    nell'operazione nel tipo .NET Framework del primo
    oggetto. Se la conversione degli oggetti ha esito positivo, viene
    eseguita l'operazione adatta al tipo .NET Framework del primo
    oggetto. Se la conversione di uno qualsiasi degli oggetti ha
    esito negativo, l'operazione non riesce.

    Nell'esempio seguente viene illustrato l'utilizzo degli operatori
    di addizione e moltiplicazione nelle operazioni che includono
    tipi di oggetti diversi:

        C:\PS> "file" + 16
        file16

        C:\PS> $array = 1,2,3
        C:\PS> $array + 16
        1
        2
        3
        16

    C:\PS> $array + "file"
        1
        2
        3
        file

        C:\PS> "file" * 3
        filefilefile

    Poiché il metodo utilizzato per valutare le istruzioni viene
    determinato dall'oggetto più a sinistra, l'addizione e la
    moltiplicazione in Windows PowerShell non sono necessariamente
    commutative. Ad esempio, (a + b) non è sempre uguale a (b + a) e
    (a * b) non è sempre uguale a (b * a).

    Questo principio è dimostrato negli esempi seguenti:

        C:\PS> "file" + 2
        file2

        C:\PS> 2 + "file"
        Impossibile convertire il valore "file" nel tipo
        "System.Int32". Errore: "Stringa di input non in formato
        corretto."
        At line:1 char:4
        + 2 + <<<< "file"

        C:\PS> "file" * 3
        filefilefile

        C:\PS> 3 * "file"
        Impossibile convertire il valore "file" nel tipo
        "System.Int32". Errore: "Stringa di input non in formato
        corretto."
        At line:1 char:4
        + 3 * <<<< "file"

    Le tabelle hash rappresentano un caso leggermente diverso. È possibile
    aggiungere le tabelle hash. È inoltre possibile aggiungere una
    tabella hash a una matrice. Tuttavia, non è possibile aggiungere
    alcun altro tipo a una tabella hash.

    Negli esempi seguenti viene illustrato come aggiungere le tabelle
    hash le une alle altre e ad altri oggetti:

        C:\PS> $hash1 = @{a=1; b=2; c=3}
        C:\PS> $hash2 = @{c1="Server01"; c2="Server02"}
        C:\PS> $hash1 + $hash2

        Nome                           Valore
        ----                           -----
        c2                             Server02
                                       1
        b                              2
        c1                             Server01
                                       3

        C:\PS> $hash1 + 2
        È possibile aggiungere un'altra tabella hash solo a una
        tabella hash.
        At line:1 char:9
        + $hash1 + <<<< 2

        C:\PS> 2 + $hash1
        Impossibile convertire "System.Collections.Hashtable" in
        "System.Int32".
        At line:1 char:4
        + 2 + <<<< $hash1

    Negli esempi seguenti viene illustrato che è possibile aggiungere
    una tabella hash a una matrice. L'intera tabella hash viene
    aggiunta alla matrice come un oggetto singolo.

        C:\PS> $array = 1,2,3
        C:\PS> $array + $hash1
        1
        2
        3

        Nome                           Valore
        ----                           -----
        a                              1
        b                              2
        c                              3

        C:\PS> $sum = $array + $hash1
        C:\PS> $sum.count
        4

        C:\PS> $sum[3]
        Nome                           Valore
        ----                           -----
        a                              1
        b                              2
        c                              3

        PS C:\ps-test> $sum + $hash2
        1
        2
        3

        Nome                           Valore
        ----                           -----
        a                              1
        b                              2
        c                              3
        c2                             Server02

    Nell'esempio seguente viene illustrato che non è possibile
    aggiungere tabelle hash che contengono la stessa chiave:

        C:\PS> $hash1 = @{a=1; b=2; c=3}
        C:\PS> $hash2 = @{c="red"}
        C:\PS> $hash1 + $hash2
        Argomento errato per l'operatore '+': l'elemento è già stato
        aggiunto. Chiave nel dizionario: 'c'    Chiave da aggiungere: 'c'.
        At line:1 char:9
        + $hash1 + <<<< $hash2

    Sebbene gli operatori di addizione siano molto utili, utilizzare
    gli operatori di assegnazione per aggiungere elementi a tabelle
    hash e matrici. Per ulteriori informazioni, vedere about_assignmen
    t_operators. Negli esempi seguenti viene utilizzato l'operatore
    di assegnazione += per aggiungere elementi a una matrice:

        C:\PS> $array
        1
        2
        3

        C:\PS> $array + "file"
        1
        2
        3
        file

        C:\PS> $array
        1
        2
        3

        C:\PS> $array += "file"
        C:\PS> $array
        1
        2
        3
        file

        C:\PS> $hash1

        Nome                           Valore
        ----                           -----
        a                              1
        b                              2
        c                              3

        C:\PS> $hash1 += @{e = 5}
        C:\PS> $hash1

        Nome                           Valore
        ----                           -----
        a                              1
        b                              2
        e                              5
        c                              3

    Windows PowerShell seleziona automaticamente il tipo numerico
    .NET Framework che esprime meglio il risultato senza perdere
    precisione. Ad esempio:

        C:\PS> 2 + 3.1
        5.1
        C:\PS> (2). GetType().FullName
        System.Int32
        C:\PS> (2 + 3.1).GetType().FullName
        System.Double

    Se il risultato di un'operazione è troppo grande per il tipo, il
    tipo del risultato viene convertito nel tipo di dati più grande
    in grado di contenere il risultato, come nell'esempio seguente:

        C:\PS> (512MB).GetType().FullName
        System.Int32
        C:\PS> (512MB * 512MB).GetType().FullName
        System.Double

    Il tipo del risultato non corrisponderà necessariamente a uno
    degli operandi. Nell'esempio seguente non è possibile eseguire il
    cast del valore negativo a un valore intero senza segno e il
    valore intero senza segno è troppo grande perché ne venga
    eseguito il cast a Int32:

        C:\PS> ([int32]::minvalue + [uint32]::maxvalue).gettype().fullname
        System.Int64

    In questo esempio, Int64 può contenere entrambi i tipi.

    Il tipo System.Decimal è un'eccezione. Se il tipo di un operando
    è Decimal, il risultato sarà di tipo Decimal. Se il risultato è
    troppo grande per il tipo Decimal, non verrà eseguito il cast a
    Double. Verrà invece restituito un errore.

        C:\PS> [Decimal]::maxvalue
        79228162514264337593543950335
        C:\PS> [Decimal]::maxvalue + 1
        Il valore era troppo grande o troppo piccolo per un tipo Decimal.
        At line:1 char:22
        + [Decimal]::maxvalue + <<<< 1

    OPERATORI ARITMETICI E VARIABILI
    È inoltre possibile utilizzare gli operatori aritmetici con le
    variabili. Gli operatori intervengono sui valori delle variabili.
    Negli esempi seguenti viene illustrato l'utilizzo degli operatori
    aritmetici con le variabili:

        C:\PS> $intA = 6
        C:\PS> $intB = 4
        C:\PS> $intA + $intB

        10

        C:\PS> $a = "Windows "
        C:\PS> $b = "PowerShell "
        C:\PS> $c = 2
    C:\PS> $a + $b + $c

        Windows PowerShell 2

    OPERATORI ARITMETICI E COMANDI
    In genere, gli operatori aritmetici vengono utilizzati nelle
    espressioni con numeri, stringhe e matrici. Tuttavia, è possibile
    utilizzarli anche con gli oggetti restituiti dai comandi e con le
    proprietà di tali oggetti.

    Negli esempi seguenti viene illustrato come utilizzare gli
    operatori aritmetici in espressioni con comandi di Windows PowerShell:

    C:\PS> get-date
    mercoledì 02 gennaio 2008 1.28.42

    C:\PS> $day = new-timespan -day 1
    C:\PS> get-date + $day
    giovedì 03 gennaio 2008 1.34.52

    C:\PS> get-process | where {($_.ws * 2) -gt 50mb}
    Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
    -------  ------    -----      ----- -----   ------     -- -----------
       1896      39    50968      30620   264 1,572.55   1104 explorer
      12802      78   188468      81032   753 3,676.39   5676 OUTLOOK
        660       9    36168      26956   143    12.20    988 powershell
        561      14     6592      28144   110 1,010.09    496 services
       3476      80    34664      26092   234 ...45.69    876 svchost
        967      30    58804      59496   416   930.97   2508 WINWORD

ESEMPI
    Negli esempi seguenti viene illustrato come utilizzare gli
    operatori aritmetici in Windows PowerShell:

    C:\PS> 1 + 1
    2

    C:\PS> 1 - 1
    0

    C:\PS> -(6 + 3)
    -9

    C:\PS> 6 * 2
    12

    C:\PS> 7 / 2
    3.5

    C:\PS> 7 % 2
    1

    C:\PS> w * 3
    www

    C:\PS> 3 * "w"
    Impossibile convertire il valore "w" nel tipo "System.Int32". Errore:
    "Stringa di input non in formato corretto."
    At line:1 char:4
    + 3 * <<<< "w"

    PS C:\ps-test> "Windows" + " " + "PowerShell"
    Windows PowerShell

    PS C:\ps-test> $a = "Windows" + " " + "PowerShell"
    PS C:\ps-test> $a
    Windows PowerShell

    C:\PS> $a[0]
    W

    C:\PS> $a = "TestFiles.txt"
    C:\PS> $b = "C:\Logs\"
    C:\PS> $b + $a
    C:\Logs\TestFiles.txt

    C:\PS> $a = 1,2,3
    C:\PS> $a + 4
    1
    2
    3
    4

    C:\PS> $servers = @{0 = "LocalHost"; 1 = "Server01"; 2 = "Server02"}
    C:\PS> $servers + @{3 = "Server03"}
    Nome Valore
    ---- -----
    3 Server03
    2 Server02
    1 Server01
    0 LocalHost

    C:\PS> $servers
    Nome Valore
    ---- -----
    2 Server02
    1 Server01
    0 LocalHost

    C:\PS> $servers += @{3 = "Server03"} #Utilizzare l'operatore di
    assegnazione
    C:\PS> $servers
    Nome Valore
    ---- -----
    3 Server03
    2 Server02
    1 Server01
    0 LocalHost

VEDERE ANCHE
    about_arrays
    about_assignment_operators
    about_comparison_operators
    about_hash_tables
    about_operators
    about_variables
    Get-Date
    New-TimeSpan


about_Arrays

ARGOMENTO
    about_Arrays

DESCRIZIONE BREVE
    Descrive una struttura di dati compatta per l'archiviazione degli elementi di dati

DESCRIZIONE DETTAGLIATA
    Una matrice è una struttura di dati per l'archiviazione di una
    raccolta di elementi di dati dello stesso tipo. Windows
    PowerShell supporta elementi di dati quali stringa, int (valore
    intero a 32 bit), long (valore intero a 64 bit), bool (valore
    booleano), byte e altri tipi di oggetti Microsoft .NET Framework.

CREAZIONE E INIZIALIZZAZIONE DI UNA MATRICE
    Per creare e inizializzare una matrice, assegnare più valori a
    una variabile.
    I valori archiviati nella matrice sono delimitati da virgole e
    separati dal nome della variabile tramite l'operatore di
    assegnazione (=).

    Ad esempio, per creare una matrice denominata $A contenente i
    sette valori numerici (int) 22, 5, 10, 8, 12, 9 e 80, digitare:

        $A = 22,5,10,8,12,9,80

    È inoltre possibile creare e inizializzare una matrice utilizzando
    l'operatore di intervallo (..). Per creare e inizializzare, ad
    esempio, una matrice denominata "$B" contenente i valori da 5 a 8,
    digitare:

        $B = 5..8

    $B conterrà pertanto i quattro valori 5, 6, 7 e 8.

    Quando non viene specificato alcun tipo di dati, in Windows
    PowerShell ogni matrice viene creata come matrice di oggetti (tipo:
    object[]). Per determinare il tipo di dati di una matrice, utilizzare
    il metodo GetType(). Ad esempio, per determinare il tipo di dati
    della matrice $a, digitare:

        $a.gettype()

    Per creare una matrice fortemente tipizzata, ovvero una matrice
    che contenga solo valori di un tipo specifico, eseguire il cast della
    variabile come tipo di matrice, ad esempio string[], long[] o int32[].
    Per eseguire il cast di una matrice, anteporre al nome della variabile
    un tipo di matrice racchiuso tra parentesi. Ad esempio, per creare una
    matrice di valori interi a 32 bit denominata $ia contenente quattro
    valori interi (1500, 2230, 3350 e 4000), digitare:

        [int32[]]$ia = 1500,2230,3350,4000

    La matrice $ia potrà pertanto contenere solo valori integer.

    È possibile creare matrici di cui viene eseguito il cast a
    qualsiasi tipo supportato in Microsoft .NET Framework. Ad esempio, gli oggetti
    recuperati da Get-Process per rappresentare i processi sono di tipo
    System.Diagnostics.Process. Per creare una matrice fortemente tipizzata di
    oggetti processo, immettere il comando seguente:

        [Diagnostics.Process[]]$zz = Get-Process

    È possibile inserire dati in una matrice tramite l'output di un
    cmdlet, una funzione o un'istruzione. Ad esempio, con
    l'istruzione seguente viene creata una matrice contenente i
    processi che iniziano con le lettere "co" e sono in esecuzione
    nel computer corrente:

        $LocalProcesses = get-process co*

    Se l'istruzione ottiene solo un processo singolo, la variabile
    $LocalProcesses non è una matrice. Per assicurarsi che il comando crei una
    matrice, utilizzare l'operatore della sottoespressione di matrice, @, come
    illustrato nell'esempio seguente:

        $LocalProcesses = @(get-process co*)

    Anche se il comando restituisce un processo singolo, la variabile
    $LocalProcesses è una matrice. Anche se dispone di un solo membro, è
    possibile utilizzarla come qualsiasi altra matrice. Ad esempio, è
    possibile aggiungere a essa altri oggetti. Per ulteriori
    informazioni, vedere about_Operators.

  LETTURA DI UNA MATRICE
    È possibile fare riferimento a una matrice utilizzando il nome della
    relativa variabile, ad esempio $A o $a.
    In Windows PowerShell non viene fatta distinzione tra maiuscole e minuscole.

    Per visualizzare tutti gli elementi della matrice, digitarne il
    nome. Ad esempio:

    $a

    È possibile fare riferimento agli elementi di una matrice
    utilizzando un indice, iniziando dalla posizione 0. Racchiudere
    il numero di indice tra parentesi. Ad esempio, per
    visualizzare il primo elemento della matrice $a, digitare:

        $a[0]

    Per visualizzare il terzo elemento della matrice $a, digitare:

        $a[2]

    I numeri negativi consentono di iniziare il conteggio dalla fine della
    matrice. "-1", ad esempio, indica l'ultimo elemento della matrice. Per
    visualizzare gli ultimi tre elementi della matrice, digitare:

        $a[-3..-1]

    Quando si utilizza questa notazione, è tuttavia necessario fare
    attenzione.

        $a[0..-2]

    Questo comando non si riferisce a tutti gli elementi della matrice ad esclusione
    dell'ultimo,
    bensì al primo, all'ultimo e al penultimo elemento.

    È possibile utilizzare l'operatore di intervallo per visualizzare un
    sottoinsieme di tutti i valori di una matrice. Per visualizzare, ad
    esempio, gli elementi di dati nelle posizioni di indice da 1 a 3,
    digitare:

        $a[1..3]

    È possibile utilizzare l'operatore più (+) per combinare un
    intervallo con un elenco di elementi di una matrice. Ad esempio, per
    visualizzare gli elementi nelle posizioni di indice 0, 2 e dalla 4 alla 6,
    digitare:

        $a[0,2+4..6]

    Per determinare il numero di elementi presenti in una matrice,
    combinare l'intervallo con la proprietà length di una matrice. Per
    visualizzare, ad esempio, gli elementi dalla posizione di indice 2
    alla fine della matrice, digitare:

        $a[2..($a.length-1)]

    Il valore di length è impostato su -1 in quanto l'indice inizia dalla
    posizione 0. In una matrice composta da tre elementi (1,2,3),
    pertanto, l'indice del terzo elemento è 2, ovvero uno in meno
    rispetto alla lunghezza della matrice.

    Per fare riferimento agli elementi di una matrice, è anche possibile
    utilizzare costrutti di ciclo, ad esempio Foreach, For e While. Ad
    esempio, per utilizzare un ciclo Foreach per visualizzare gli
    elementi della matrice $a, digitare:

        foreach ($element in $a) {$element}

    Il ciclo Foreach scorre la matrice e restituisce ogni valore
    presente finché non viene raggiunta la fine della matrice.

    Il ciclo For è utile quando si incrementano i contatori mentre si
    esaminano gli elementi di una matrice. Ad esempio, per restituire
    un valore ogni due di una matrice utilizzando un ciclo For, digitare:

        for ($i = 0; $i -le ($a.length - 1); $i += 2) {$a[$i]}

    È possibile utilizzare un ciclo While per visualizzare gli
    elementi di una matrice fino a quando una condizione definita non
    è più vera. Ad esempio, per visualizzare gli elementi della matrice $a
    mentre l'indice della matrice è minore di 4, digitare:

        $i=0
        while($i -lt 4) {$a[$i]; $i++}

    Per informazioni sulle proprietà e i metodi di una matrice, ad
    esempio la proprietà Length e il metodo SetValue, utilizzare il
    parametro InputObject del cmdlet Get-Member. Quando si reindirizza una
    matrice a Get-Member, vengono visualizzate le informazioni sugli
    oggetti della matrice. Quando si utilizza il parametro InputObject,
    vengono visualizzate le informazioni sulla matrice.

    Per trovare le proprietà e i metodi della matrice $a, digitare:

    get-member -inputobject $a

  MODIFICA DI UNA MATRICE
    È possibile modificare gli elementi di una matrice, aggiungere un
    elemento a una matrice e combinare i valori di due matrici in una
    terza.

    Per modificare il valore di un elemento specifico di una matrice,
    specificare il nome della matrice e l'indice dell'elemento che si desidera
    modificare, quindi utilizzare l'operatore di assegnazione (=) per
    specificare un nuovo valore per l'elemento. Ad esempio, per
    modificare il valore del secondo elemento della matrice $a,
    (posizione di indice 1) impostandolo su 10, digitare:

        $a[1] = 10

    Per modificare un valore è anche possibile utilizzare il metodo
    SetValue di una matrice. Nell'esempio seguente il secondo valore
    (posizione di indice 1) della matrice $a viene impostato su 500:

        $a.SetValue(500,1)

    È possibile aggiungere un elemento a una matrice esistente utilizzando
    l'operatore +=.
    Questo operatore consente di effettuare un'aggiunta a un valore
    esistente. Quando l'operatore viene utilizzato su un elemento di
    una matrice, consente di aumentare il valore dell'elemento.
    Quando invece viene utilizzato sulla matrice stessa, consente di
    aggiungere il valore. Ad esempio, per aggiungere un elemento con
    un valore pari a 200 alla matrice $a, digitare:

        $a += 200

    Non è semplice eliminare gli elementi da una matrice, ma è
    possibile creare una nuova matrice contenente solo gli elementi
    selezionati di una matrice esistente. Ad esempio, per creare la
    matrice $t con tutti gli elementi della matrice $a, eccetto il
    valore nella posizione di indice 2, digitare:

        $t = $a[0,1 + 3..($a.length - 1)]

    Per combinare due matrici in una sola, utilizzare l'operatore più (+).
    Nell'esempio seguente vengono create due matrici, quindi tali matrici
    vengono unite e infine viene visualizzata la matrice combinata risultante.

        $x = 1,3
        $y = 5,9
        $z = $x + $y

    La matrice $z conterrà pertanto i valori 1, 3, 5 e 9.

    Per eliminare una matrice, utilizzare il cmdlet Remove-Item per
    eliminare la variabile contenente la matrice. Nel comando
    seguente viene specificato l'elemento "a" nell'unità Variable:.

        remove-item variable:a

    Per ulteriori informazioni sull'unità Variable: vedere l'argomento della Guida relativo
    al provider Variable.

VEDERE ANCHE
    about_Assignment_Operators
    about_Hash_Tables
    about_Operators
    about_For
    about_Foreach
    about_While


about_Assignment_Operators

ARGOMENTO
    about_assignment_operators

DESCRIZIONE BREVE
    Descrive come utilizzare gli operatori per assegnare valori alle
    variabili.

DESCRIZIONE DETTAGLIATA
    Gli operatori di assegnazione assegnano uno o più valori a una
    variabile. Consentono di eseguire operazioni numeriche sui valori
    prima dell'assegnazione.

    In Windows PowerShell sono supportati gli operatori di
    assegnazione seguenti.

    Operatore  Descrizione
    -------   -----------
    =         Imposta il valore di una variabile sul valore specificato.

    +=        Aumenta il valore di una variabile per il valore
              specificato o aggiunge il valore specificato a quello esistente.

    -=        Diminuisce il valore di una variabile del valore
              specificato.

    *=        Moltiplica il valore di una variabile per il valore
              specificato o aggiunge il valore specificato a quello esistente.

    /=        Divide il valore di una variabile per il valore specificato.

    %=        Divide il valore di una variabile per il valore specificato,
              quindi assegna il resto alla variabile.

    ++        Aumenta di 1 il valore di una variabile, una proprietà
              assegnabile o un elemento di matrice.

    --        Diminuisce di 1 il valore di una variabile, una proprietà
              assegnabile o un elemento di matrice.

  SINTASSI
    La sintassi degli operatori di assegnazione è la seguente:

        <espressione-assegnabile> <operatore di assegnazione> <valore>

    Le espressioni assegnabili includono variabili e proprietà. Il
    valore può essere un valore singolo, una matrice di valori o un
    comando, un'espressione o un'istruzione.

    Gli operatori di incremento e di decremento sono operatori unari.
    Ciascuno dispone di versioni con prefisso e con suffisso.

        <espressione-assegnabile><operatore>
        <operatore><espressione-assegnabile>

    L'espressione assegnabile deve essere un numero o un elemento
    convertibile in un numero.

  ASSEGNAZIONE DI VALORI
    Le variabili sono spazi di memoria denominati in cui vengono
    archiviati valori. I valori vengono archiviati nelle variabili tramite
    l'operatore di assegnazione (=).Il nuovo valore può sostituire il valore
    esistente della variabile oppure è possibile aggiungere un nuovo
    valore a quello esistente.

    L'operatore di assegnazione di base è il segno di uguale (=)
    (ASCII 61). Ad esempio, l'istruzione seguente assegna il valore
    Windows PowerShell alla variabile $MyShell:

        $MyShell = "Windows PowerShell"

    Quando si assegna un valore a una variabile in Windows PowerShell, la
    variabile viene creata se non è già esistente. Ad esempio, con la
    prima delle due istruzioni di assegnazione seguenti viene creata la
    variabile $a alla quale viene assegnato un valore di 6. Con la seconda
    istruzione di assegnazione viene assegnato un valore di 12 alla
    variabile $a. La prima istruzione crea una nuova variabile. La seconda
    ne modifica solo il valore:

        $a = 6
        $a = 12

    Le variabili in Windows PowerShell non dispongono di un tipo di dati
    specifico a meno che non se ne esegua il cast. Quando una variabile
    contiene solo un oggetto, accetta il tipo di dati di tale oggetto.
    Quando una variabile contiene una raccolta di oggetti, il tipo di
    dati della variabile è System.Object. Pertanto, è possibile assegnare
    qualsiasi tipo di oggetto alla raccolta. Nell'esempio seguente viene
    illustrato che è possibile aggiungere oggetti processo, oggetti servizio,
    stringhe e valori interi a una variabile senza generare un errore:

        $a = get-process
        $a += get-service
        $a += "stringa"
        $a += 12

    Poiché l'operatore di assegnazione (=) dispone di una precedenza
    inferiore rispetto all'operatore pipeline (|), le parentesi non sono
    necessarie per assegnare a una variabile il risultato di una pipeline dei
    comandi. Ad esempio, nel comando seguente vengono ordinati i servizi del
    computer, che vengono quindi assegnati alla variabile $a:

        $a = get-service | sort name

    È inoltre possibile assegnare a una variabile il valore creato da
    un'istruzione, come nell'esempio seguente:

        $a = if ($b -lt 0) { 0 } else { $b }

    In questo esempio viene assegnato 0 alla variabile $a se il
    valore di $b è minore di 0. Se tale valore non è minore di zero, viene
    assegnato a $a.

  OPERATORE DI ASSEGNAZIONE (=)
    L'operatore di assegnazione (=) assegna valori alle variabili. Se la
    variabile ha già un valore, l'operatore di assegnazione (=) sostituisce il
    valore senza alcun avviso.

    Nell'istruzione seguente il valore intero 6 viene assegnato alla
    variabile $a:

        $a = 6

    Per assegnare a una variabile un valore stringa, racchiuderlo tra
    virgolette nel modo seguente:

        $a = "baseball"

    Per assegnare una matrice (più valori) a una variabile, separare
    i valori con le virgole nel modo seguente:

        $a = "mela", "arancia", "limone", "uva"

    Per assegnare una tabella hash a una variabile, utilizzare la
    notazione della tabella hash standard in Windows PowerShell.
    Digitare una chiocciola (@) seguita da coppie chiave/valore
    separate da punto e virgola (;) e racchiusi tra parentesi graffe
    ({ }). Ad esempio, per assegnare una tabella hash alla variabile $a,
    digitare:

        $a = @{uno=1; due=2; tre=3}

    Per assegnare valori esadecimali a una variabile, anteporre "0x"
    al valore. In Windows PowerShell il valore esadecimale (0x10) viene
    convertito in valore decimale (in questo caso 16) e tale valore viene
    assegnato alla variabile $a. Ad esempio, per assegnare il valore
    0x10 alla variabile $a, digitare:

        $a = 0x10

    Per assegnare un valore esponenziale a una variabile, digitare il
    numero radice, la lettera "e" e un numero che rappresenta un
    multiplo di 10. Ad esempio, per assegnare il valore 3,1415
    elevato a 1.000 alla variabile $a, digitare:

        $a = 3,1415e3

    In Windows PowerShell è inoltre possibile convertire kilobyte
    (KB), megabyte (MB) e gigabyte (GB) in byte. Ad esempio, per
    assegnare un valore di 10 kilobyte alla variabile $a, digitare:

        $a = 10kb

  ASSEGNAZIONE MEDIANTE OPERATORE DI ADDIZIONE (+=).
    L'assegnazione mediante operatore di addizione (+=) aumenta il
    valore di una variabile o aggiunge il valore specificato al
    valore esistente. L'azione varia a seconda che la variabile sia
    di tipo numerico o stringa e contenga un solo valore (scalare) o
    più valori (raccolta).

    L'operatore += combina due operazioni. Innanzitutto aggiunge un
    valore, quindi lo assegna. Pertanto, le istruzioni seguenti sono
    equivalenti:

        $a += 2
        $a = ($a + 2)

    Quando la variabile contiene un solo valore numerico, l'operatore
    += aumenta il valore esistente del valore specificato a destra
     dell'operatore. Quindi, l'operatore assegna il valore risultante alla
variabile.
    Nell'esempio seguente viene illustrato come utilizzare
    l'operatore += per aumentare il valore di una variabile:

        C:\PS> $a = 4
        C:\PS> $a += 2
        C:\PS> $a
        6

    Quando il valore della variabile è una stringa, il valore a destra
    dell'operatore viene aggiunto alla stringa, nel modo seguente:

        C:\PS> $a = "Windows"
        C:\PS> $a +- " PowerShell"
        C:\PS> $a
        Windows PowerShell

    Quando il valore della variabile è una matrice, i valori a destra
    dell'operatore += vengono aggiunti alla matrice. A meno che la
    matrice non venga digitata in modo esplicito mediante cast, è possibile
    aggiungere a essa qualsiasi tipo di valore, nel modo seguente:

        C:\PS> $a = 1,2,3
        C:\PS> $a += 2
        C:\PS> $a
        1
        2
        3
        2
        C:\PS> $a += "Stringa"
        C:\PS> $a
        1
        2
        3
        2
        String

    Quando il valore di una variabile è una tabella hash, il valore a
    destra dell'operatore += viene aggiunto alla tabella hash.
    Tuttavia, poiché l'unico tipo che è possibile aggiungere a una
    tabella hash è un'altra tabella hash, ogni altra assegnazione ha esito
    negativo.

    Ad esempio, con il comando seguente viene assegnata una tabella
    hash alla variabile $a:
    Quindi, l'operatore + = viene utilizzato per aggiungere un'altra
    tabella hash alla tabella hash esistente, aggiungendo in effetti
    una nuova coppia chiave/valore alla tabella hash esistente.
    Questo comando ha esito positivo, come illustrato nell'output:

        C:\PS> $a = @{a = 1; b = 2; c = 3}
        C:\PS> $a += @{mode = "write"}
        C:\PS> $a
        Name                           Value
        ----                           -----
        a                              1
        b                              2
        mode                           write
        c                              3

    Mediante il comando seguente si tenta di aggiungere un valore
    intero (1) alla tabella hash nella variabile $a. Questo comando
    ha esito negativo:

        C:\PS> $a = @{a = 1; b = 2; c = 3}
        C:\PS> $a += 1
        È possibile aggiungere un'altra tabella hash solo a una
        tabella hash.
        At line:1 char:6
        + $a += <<<< 1

  ASSEGNAZIONE MEDIANTE OPERATORE DI SOTTRAZIONE (-=)
    L'assegnazione mediante operatore di sottrazione (-=) diminuisce
    il valore di una variabile del valore specificato a destra
    dell'operatore.
    Questo operatore non può essere utilizzato con le variabili di
    stringa, né per rimuovere un elemento da una raccolta.

    L'operatore -= combina due operazioni. Innanzitutto sottrae un valore,
    quindi assegna il valore risultante. Pertanto, le istruzioni seguenti
    sono equivalenti:

        $a -= 2
        $a = ($a - 2)

    Nell'esempio seguente viene illustrato come utilizzare
    l'operatore -= per diminuire il valore di una variabile:

        C:\PS> $a = 8
        C:\PS> $a -= 2
        C:\PS> $a
        6

    È inoltre possibile utilizzare l'operatore di assegnazione -= per
    diminuire il valore di un membro di una matrice numerica. A tale
    scopo, specificare l'indice dell'elemento della matrice che si
    desidera modificare. Nell'esempio seguente, il valore del terzo
    elemento di una matrice (elemento 2) viene diminuito di 1:

        C:\PS> $a = 1,2,3
        C:\PS> $a[2] -= 1.
        C:\PS> $a
        1
        2
        2

    Non è possibile utilizzare l'operatore -= per eliminare i valori
    di una variabile. Per eliminare tutti i valori assegnati a una
    variabile, utilizzare il cmdlet Clear-Item o Clear-Variable per
    assegnare un valore $null o "" alla variabile.

        $a = $null

    Per eliminare un determinato valore da una matrice, utilizzare la
    notazione di matrice per assegnare un valore $null a tale elemento. Ad
    esempio, mediante l'istruzione seguente viene eliminato il secondo valore
    (posizione di indice 1) da una matrice:

        C:\PS> $a = 1,2,3
        C:\PS> $a
        1
        2
        3

        C:\PS> $a[1] = $null
        C:\PS> $a
        1
        3

    Per eliminare una variabile, utilizzare il cmdlet Remove-Variable.
    Questo metodo è utile quando viene eseguito il cast esplicito della
    variabile a un determinato tipo di dati e si desidera una variabile non
    tipizzata. Nel comando seguente viene eliminata la variabile $a:

        remove-variable a

  ASSEGNAZIONE MEDIANTE OPERATORE DI MOLTIPLICAZIONE (*=) L'assegnazione
    mediante operatore di moltiplicazione (*=) moltiplica un valore numerico o
    aggiunge il numero specificato di copie del valore di stringa di una
    variabile.

    Quando una variabile contiene un solo valore numerico, tale
    valore viene moltiplicato per il valore a destra dell'operatore.
    Nell'esempio seguente viene illustrato come utilizzare l'operatore *= per
    moltiplicare il valore di una variabile:

        C:\PS> $a = 3
        C:\PS> $a *= 4
        C:\PS> $a
        12

    In questo caso, l'operatore *= combina due operazioni. Innanzitutto
    moltiplica per un valore, quindi assegna il valore risultante.
    Pertanto, le istruzioni seguenti sono equivalenti:

        $a *= 2
        $a = ($a * 2)

    Quando una variabile contiene un valore di stringa, il numero
    specificato di stringhe viene aggiunto al valore, nel modo seguente:

        C:\PS> $a = "file"
        C:\PS> $a *= 4
        C:\PS> $a
        filefilefilefile

    Per moltiplicare un elemento di una matrice, utilizzare un indice per
    identificare l'elemento che si desidera moltiplicare. Mediante il comando
    seguente, ad esempio, il primo elemento della matrice, nella
    posizione di indice 0, viene moltiplicato per 2:

        $a[0] *= 2

  ASSEGNAZIONE MEDIANTE OPERATORE DI DIVISIONE (/=).
    L'assegnazione mediante operatore di divisione (/=) divide un valore
    numerico per il valore specificato a destra dell'operatore. Non è
    possibile utilizzare questo operatore con variabili stringa.

    L'operatore /= combina due operazioni. Innanzitutto divide un
    valore, quindi assegna il valore risultante. Pertanto, le due
    istruzioni seguenti sono equivalenti:

        $a /= 2
        $a = ($a / 2)

    Ad esempio, nel comando seguente viene utilizzato l'operatore /= per
    dividere il valore di una variabile:

        C:\PS> $a = 8
        C:\PS> $a /=2
        C:\PS> $a
        4

    Per dividere un elemento di una matrice, utilizzare un indice per
    identificare l'elemento che si desidera modificare. Tramite il
    comando seguente, ad esempio, il secondo elemento della matrice,
    nella posizione di indice 1, viene diviso per 2:

        $a[1] /= 2

  ASSEGNAZIONE MEDIANTE OPERATORE MODULO (/=).
    L'assegnazione mediante operatore modulo (%=) divide il valore di una
    variabile per il valore a destra dell'operatore. Quindi, l'operatore
    %= assegna il resto alla variabile. È possibile utilizzare questo
    operatore solo quando una variabile contiene un solo valore numerico.
    Non è possibile utilizzarlo quando una variabile contiene una
    variabile di stringa o una matrice.

    L'operatore %= combina due operazioni. Innanzitutto, divide un
    valore e calcola il resto, quindi assegna il resto alla
    variabile. Pertanto, le istruzioni seguenti sono equivalenti:

        $a %= 2
        $a = ($a % 2)

    Nell'esempio seguente viene illustrato come utilizzare
    l'operatore %= per salvare il resto di un quoziente:

        C:\PS> $a = 7
        C:\PS> $a %= 4
        C:\PS> $a
        3

  OPERATORI DI INCREMENTO E DECREMENTO

    L'operatore di incremento (++) aumenta il valore di una variabile
    di 1. Quando si utilizza l'operatore di incremento in
    un'istruzione semplice, non viene restituito alcun valore.
    Per visualizzare il risultato, visualizzare il valore della
    variabile, nel modo seguente:

        C:\PS> $a = 7
        C:\PS> ++$a
        C:\PS> $a
        8

    Per forzare la restituzione di un valore, racchiudere la variabile e
    l'operatore tra parentesi, nel modo seguente:

        C:\PS> $a = 7
        C:\PS> (++$a)
        8

    È possibile posizionare l'operatore di incremento prima
    (prefisso) o dopo (suffisso) una variabile. La versione con prefisso
    dell'operatore incrementa una variabile prima che il relativo valore venga
    utilizzato nell'istruzione, nel modo seguente:

        C:\PS> $a = 7
        C:\PS> $c = ++$a
        C:\PS> $a
        8
        C:\PS> $c
        8

    La versione con suffisso dell'operatore incrementa una variabile
    dopo che il relativo valore viene utilizzato nell'istruzione.
    Nell'esempio seguente, le variabili $c e $a hanno valori diversi
    perché il valore viene assegnato a $c prima che $a venga modificato:

        C:\PS> $a = 7
        C:\PS> $c = $a++
        C:\PS> $a
        8
        C:\PS> $c
        7

    L'operatore di decremento (--) diminuisce il valore di una
    variabile di 1. Come per l'operatore di incremento, quando si utilizza
    questo operatore in un'istruzione semplice non viene restituito alcun
    valore. Utilizzare le parentesi per restituire un valore, nel modo
    seguente:

        C:\PS> $a = 7
        C:\PS> --$a
        C:\PS> $a
        6
        C:\PS> (--$a)
        5

    La versione con prefisso dell'operatore decrementa una variabile
    prima che il relativo valore venga utilizzato nell'istruzione,
    nel modo seguente:

        C:\PS> $a = 7
        C:\PS> $c = --$a
        C:\PS> $a
        6
        C:\PS> $c
        6

    La versione con suffisso dell'operatore decrementa una variabile
    dopo che il relativo valore viene utilizzato nell'istruzione.
    Nell'esempio seguente, le variabili $d e $a hanno valori diversi
    perché il valore viene assegnato a $d prima che $a venga modificato:

        C:\PS> $a = 7
        C:\PS> $d = $a--
        C:\PS> $a
        6
        C:\PS> $d
        7

  TIPI MICROSOFT .NET FRAMEWORK
    Per impostazione predefinita, quando una variabile presenta un
    solo valore, il valore assegnato alla variabile determina il tipo
    di dati della variabile stessa. Ad esempio, nel comando seguente viene
    creata una variabile con tipo Integer (System.Int32):

        $a = 6

    Per trovare il tipo .NET Framework di una variabile, utilizzare
    il metodo GetType e la proprietà FullName, nel modo seguente.
    Verificare di includere le parentesi dopo il nome del metodo
    GetType, anche se la chiamata al metodo non ha argomenti:

        C:\PS> $a = 6
        C:\PS> $a.gettype().fullname
        System.Int32

    Per creare una variabile che contiene una stringa, assegnare un
    valore di stringa alla variabile. Per indicare che il valore è
    una stringa, racchiuderlo tra virgolette nel modo seguente:

        C:\PS> $a = "6"
        C:\PS> $a.gettype().fullname
        System.String

    Se il primo valore assegnato alla variabile è una stringa, in Windows
    PowerShell tutte le operazioni vengono trattate come operazioni di
    stringa e viene eseguito il cast dei nuovi valori a stringhe. Questa
    condizione è illustrata nell'esempio seguente.

        C:\PS> $a = "file"
        C:\PS> $a += 3
        C:\PS> $a
        file3

    Se il primo valore è un valore intero, in Windows PowerShell tutte le
    operazioni vengono trattate come operazioni relative a valori interi
    e viene eseguito il cast dei nuovi valori a valori interi. Questa
    condizione è illustrata nell'esempio seguente.

        C:\PS> $a = 6
        C:\PS> $a += "3"
        C:\PS> $a
        9

    È possibile eseguire il cast di una nuova variabile scalare come
    qualsiasi tipo .NET Framework specificando il nome del tipo tra
    parentesi davanti al nome della variabile o al primo valore di
    assegnazione. Quando si esegue il cast di una variabile, è possibile
    determinare quali tipi di dati possono essere archiviati nella
    variabile. È inoltre possibile determinare il comportamento della
    variabile quando viene modificata.

    Tramite il comando seguente, ad esempio, viene eseguito il cast della
    variabile come tipo stringa:

        C:\PS> [string]$a = 27
        C:\PS> $a += 3
        C:\PS> $a
        273

    Nell'esempio seguente viene eseguito il cast del primo valore,
    anziché della variabile:

        $a = [string]27

    Quando si esegue il cast di una variabile a un tipo specifico, in
    genere si esegue il cast della variabile stessa e non del valore.
    Tuttavia, non è possibile eseguire nuovamente il cast del tipo di
    dati di una variabile esistente se non è possibile convertire
    tale valore nel nuovo tipo di dati. Per modificare il tipo di dati, è
    necessario sostituire il valore nel modo seguente:

        C:\PS> $a = "stringa"
        C:\PS> [int]$a
        Impossibile convertire il valore "stringa" nel tipo
        "System.Int32". Errore: "Stringa di input non in formato
        corretto."
        At line:1 char:8
        + [int]$a <<<<

        C:\PS> [int]$a =3

    Inoltre, anteponendo un tipo di dati a un nome di variabile, il
    tipo della variabile viene bloccato a meno che non lo si
    sostituisca in modo esplicito specificando un altro tipo di dati.
    Se si tenta di assegnare un valore non compatibile con il tipo
    esistente e non si sostituisce esplicitamente il tipo, in Windows
    PowerShell viene visualizzato un errore, come illustrato nell'esempio
    seguente.

        C:\PS> $a = 3
        C:\PS> $a = "stringa"

        C:\PS> [int]$a = 3
        C:\PS> $a = "stringa"
        Impossibile convertire il valore "stringa" nel tipo
        "System.Int32". Errore: "Stringa di input non in formato
        corretto."
        At line:1 char:3
        + $a <<<< = "stringa"

        C:\PS> [string]$a = "stringa"

    In Windows PowerShell, i tipi di dati delle variabili che
    contengono più elementi in una matrice vengono gestiti in modo
    diverso dai tipi di dati delle variabili che contengono un solo
    elemento. A meno che a una variabile di tipo matrice non venga
    assegnato un tipo di dati specifico, il tipo di dati è sempre
    System.Object []. Questo tipo di dati è specifico delle matrici.

    Talvolta, è possibile sostituire il tipo predefinito
    specificandone un altro. Ad esempio, con il comando seguente
    viene eseguito il cast della variabile come tipo matrice string[]:

        [string []] $a = "one", "two", "three"

    Le variabili di Windows PowerShell possono essere di qualsiasi tipo di
    dati .NET Framework. È inoltre possibile assegnare qualsiasi tipo di
    dati .NET Framework completo disponibile nel processo corrente. Ad
    esempio, nel comando seguente viene specificato il tipo System.DateTime:

        [system.datetime]$a = "5/31/2005"

    Alla variabile verrà assegnato un valore conforme al tipo di dati
    System.DateTime. Il valore della variabile $a sarà il seguente:

        martedì, 31 maggio 2005 12.00.00

  ASSEGNAZIONE DI PIÙ VARIABILI
    In Windows PowerShell è possibile assegnare valori a più
    variabili con un unico comando. Il primo elemento del valore di
    assegnazione viene assegnato alla prima variabile, il secondo
    alla seconda variabile, il terzo alla terza variabile e così via.
    Ad esempio, mediante il comando seguente viene assegnato il
    valore 1 alla variabile $a, il valore 2 alla variabile $b e il
    valore 3 alla variabile $c:

        C:\PS> $a, $b, $c = 1, 2, 3

    Se il valore di assegnazione contiene un numero di elementi maggiore
    rispetto al numero di variabili, tutti i valori rimanenti vengono
    assegnati all'ultima variabile. Ad esempio, il comando seguente
    contiene tre variabili e cinque valori:

        $a, $b, $c = 1, 2, 3, 4, 5

    Pertanto, in Windows PowerShell il valore 1 viene assegnato alla
    variabile $a e il valore 2 viene assegnato alla variabile $b. I
    valori 3, 4 e 5 vengono assegnati alla variabile $c. Per
    assegnare i valori della variabile $c ad altre tre variabili,
    utilizzare il formato seguente:

        $d, $e, $f = $c

    Con questo comando il valore 3 viene assegnato alla variabile $d,
    il valore 4 alla variabile $e e il valore 5 alla variabile $f.

    È inoltre possibile assegnare un singolo valore a più variabili
    concatenando le variabili. Tramite il comando seguente, ad
    esempio, viene assegnato il valore "tre" a tutte e quattro le
    variabili:

        $a = $b = $c = $d = "three"

  CMDLET CORRELATI ALLE VARIABILI
    Oltre a utilizzare un'operazione di assegnazione per impostare il
    valore di una variabile, è inoltre possibile utilizzare il cmdlet Set-
    Variable. Ad esempio, nel comando seguente viene utilizzato
    Set-Variable per assegnare una matrice costituita da 1, 2, 3 alla
    variabile $a.

        Set-Variable -name a -value 1, 2, 3

VEDERE ANCHE
    about_Arrays
    about_Hash_Tables
    about_Variables
    Clear-Variable
    Remove-Variable
    Set-Variable


about_Automatic_Variables

ARGOMENTO
    about_Automatic_Variables

DESCRIZIONE BREVE
    Descrive le variabili che archiviano informazioni sullo stato per
    Windows PowerShell.
    Queste variabili vengono create e gestite da Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    Di seguito viene presentato un elenco delle variabili automatiche
    in Windows PowerShell:

    $$
       Contiene l'ultimo token dell'ultima riga ricevuta dalla sessione.

    $?
       Contiene lo stato di esecuzione dell'ultima operazione.
    Contiene TRUE se l'ultima operazione ha avuto esito positivo e
    FALSE se ha avuto esito negativo.

    $^
       Contiene il primo token dell'ultima riga ricevuta dalla sessione.

    $_
       Contiene l'oggetto corrente nell'oggetto pipeline. È possibile
       utilizzare questa variabile nei comandi che eseguono un'azione
       su ogni oggetto o sugli oggetti selezionati in una pipeline.

    $Args
       Contiene una matrice dei parametri non dichiarati e/o dei valori di
       parametro passati a una funzione, a uno script o a un blocco di script.
       Quando si crea una funzione, è possibile dichiarare i
       parametri tramite la parola chiave param o aggiungendo un elenco di
       parametri separati da virgole tra parentesi dopo il nome della funzione.

    $ConsoleFileName
       Contiene il percorso del file della console (con estensione psc1)
       utilizzato più di recente nella sessione. Questa variabile viene
       compilata quando si avvia Windows PowerShell con il parametro
       PSConsoleFile o quando si utilizza il cmdlet Export-Console per
       esportare i nomi degli snap-in in un file della console.

       Quando si utilizza il cmdlet Export-Console senza parametri, viene
       automaticamente aggiornato il file della console utilizzato più di
       recente nella sessione. È possibile utilizzare questa variabile
       automatica per determinare il file che verrà aggiornato.

    $Error
       Contiene una matrice di oggetti errore che rappresenta gli
       errori più recenti. L'errore più recente è il primo oggetto
       errore nella matrice ($Error[0]).

    $Event
       Contiene un oggetto PSEventArgs che rappresenta l’evento che viene elaborato. Questa variabile viene        compilata solo all’interno del blocco Action di un comando di registrazione di eventi, ad esempio
       Register-ObjectEvent. Il valore di questa variabile è lo stesso oggetto restituito dal cmdlet Get-Event.        Pertanto, è possibile utilizzare le proprietà della variabile $Event, ad esempio $Event.TimeGenerated, in un        blocco di script di Action.

    $EventSubscriber
       Contiene un oggetto PSEventSubscriber che rappresenta il sottoscrittore di eventi dell’evento che        viene elaborato. Questa variabile viene compilata solo all’interno del blocco Action di un comando di               registrazione di eventi. Il valore di questa variabile è lo stesso oggetto restituito dal cmdlet
       Get-EventSubscriber.

    $ExecutionContext
       Contiene un oggetto EngineIntrinsics che rappresenta il contesto di
       esecuzione dell'host di Windows PowerShell. È possibile utilizzare questa
       variabile per trovare gli oggetti di esecuzione disponibili ai cmdlet.

    $False
       Contiene FALSE. È possibile utilizzare questa variabile per
       rappresentare FALSE in comandi e script anziché utilizzare la
       stringa "false". La stringa può essere interpretata come TRUE
       se viene convertita in una stringa non vuota o in un valore intero
       diverso da zero.

    $ForEach
       Contiene l'enumeratore di un ciclo ForEach-Object. È possibile
       utilizzare le proprietà e i metodi di enumeratori sul valore della
       variabile $ForEach. Questa variabile esiste solo mentre è in
       esecuzione il ciclo For. Viene eliminata al completamento del ciclo.

    $Home
       Contiene il percorso completo della home directory
       dell'utente. Questa variabile equivale alle variabili di ambiente
       %homedrive%%homepath%, in genere C:\Documents and Settings\<utente>.

    $Host
       Contiene un oggetto che rappresenta l'applicazione host
       corrente per Windows PowerShell. È possibile utilizzare questa
       variabile per rappresentare l'host corrente nei comandi o per
       visualizzare o modificare le proprietà dell'host, ad esempio
       $Host.version, $Host.CurrentCulture o $host.ui.rawui.
       setbackgroundcolor("Red").

    $Input
       Enumeratore che contiene l'input passato a una funzione. La
       variabile $Input rileva la distinzione tra maiuscole e
       minuscole ed è disponibile solo nelle funzioni e nei blocchi
       di script. I blocchi di script rappresentano essenzialmente
       funzioni non denominate. Nel blocco Process di una funzione,
       la variabile $Input contiene l'oggetto attualmente presente nella
       pipeline. Quando viene completato il blocco Process, il valore di
       $Input è NULL. Se la funzione non dispone di un blocco Process, il
       valore di $Input è disponibile per il blocco End e contiene tutto
       l'input della funzione.

    $LastExitCode
       Contiene il codice di uscita dell'ultimo programma basato su
       Windows che è stato eseguito.

    $Matches
       La variabile $Matches funziona con gli operatori -match e -not
       match.
       Quando si invia l'input scalare all'operatore -match o
       -notmatch e viene rilevata una corrispondenza, viene
        restituito un valore booleano e viene compilata la variabile
        automatica $Matches con una tabella hash di qualsiasi valore
        di stringa di cui era stata rilevata la corrispondenza. Per
        ulteriori informazioni sull'operatore -match, vedere
        about_comparison_operators.

    $MyInvocation
       Contiene un oggetto con informazioni sul comando corrente, ad
       esempio uno script, una funzione o un blocco di script. È possibile
       utilizzare le informazioni nell'oggetto, ad esempio il percorso e il
       nome del file dello script ($myinvocation.mycommand.path) o il nome
       di una funzione ($myinvocation.mycommand.name), per identificare il comando
       corrente. È particolarmente utile per l'individuazione del nome dello
       script in esecuzione.

    $NestedPromptLevel
       Contiene il livello del prompt corrente. Il valore 0 indica il
       livello del prompt originale. Il valore viene incrementato
       quando si immette un livello nidificato e diminuito quando viene
       terminato.

       Ad esempio, Windows PowerShell presenta un prompt dei comandi
       nidificato quando si utilizza il metodo $Host.EnterNestedPrompt
       . Windows PowerShell presenta inoltre un prompt dei comandi
       nidificato quando si raggiunge un punto di interruzione nel
       debugger di Windows PowerShell.

       Quando si immette un prompt nidificato, Windows PowerShell
       sospende il comando corrente, salva il contesto di esecuzione e
       incrementa il valore della variabile $NestedPromptLevel. Per creare
       ulteriori prompt dei comandi nidificati (fino a 128 livelli) o
       tornare al prompt dei comandi originale, completare il comando o
       digitare "exit".

       La variabile $NestedPromptLevel consente di tenere traccia del
       livello del prompt. È possibile creare un prompt dei comandi
       di Windows PowerShell alternativo che includa questo valore in
       modo che sia sempre visibile.

    $NULL
       Contiene un valore NULL o vuoto. È possibile utilizzare questa
       variabile per rappresentare NULL in comandi e script, anziché
       utilizzare la stringa "NULL". La stringa può essere
       interpretata come TRUE se viene convertita in una stringa non
       vuota o in un valore intero diverso da zero.

    $PID
       Contiene l'identificatore del processo (PID) che ospita la
       sessione di Windows PowerShell corrente.

    $Profile
       Contiene il percorso completo del profilo di Windows PowerShell per
       l'utente corrente e l'applicazione host corrente. È possibile
       utilizzare questa variabile per rappresentare il profilo nei comandi.
       Ad esempio, è possibile utilizzarla in un comando per determinare se
       è stato creato un profilo:

           test-path $profile

       In alternativa, è possibile utilizzarla in un comando per creare un
       profilo:

           new-item -type file -path $pshome -force

       È inoltre possibile utilizzarla in un comando per aprire il
       profilo in Blocco note:

           notepad $profile

    $PSBoundParameters
       Contiene un dizionario dei parametri attivi e dei relativi valori
       correnti. Questa variabile dispone di un valore solo in un ambito in
       cui vengono dichiarati i parametri, ad esempio uno script o una
       funzione. È possibile utilizzarla per visualizzare o modificare
       i valori correnti dei parametri o per passare i valori dei parametri
       a un altro script o funzione.

       Ad esempio:

         function test {
            param($a, $b)

            # Visualizzare i parametri nel formato del dizionario.
            $psboundparameters

            # Chiamare la funzione Test1 con $a e $b.
            test1 @psboundparameters
         }

    $PsCmdlet
       Contiene un oggetto che rappresenta il cmdlet o la funzione
       avanzata in esecuzione.

       È possibile utilizzare le proprietà e i metodi dell'oggetto
       nel cmdlet o nel codice della funzione per rispondere alle
       condizioni di utilizzo. Ad esempio, la proprietà ParameterSetName
       contiene il nome del set di parametri utilizzato e il metodo
       ShouldProcess aggiunge dinamicamente i parametri WhatIf e Confirm al
       cmdlet.

       Per ulteriori informazioni sulla variabile automatica
       $PSCmdlet, vedere about_Functions_Advanced.

    $PsCulture
       Contiene il nome delle impostazioni cultura attualmente in uso nel
       sistema operativo. Le impostazioni cultura determinano il formato di
       visualizzazione di elementi quali numeri, valuta e date. Si tratta
       del valore della proprietà System.Globalization.CultureInfo.CurrentCul
       ture.Name del sistema. Per ottenere l'oggetto System.Globalization.Cul
       tureInfo del sistema, utilizzare il cmdlet Get-Culture.

    $PSDebugContext
       Durante il debug, questa variabile contiene le informazioni
       relative all'ambiente di debug. In caso contrario, contiene un
       valore NULL. Di conseguenza, è possibile utilizzarla per
       indicare se il debugger dispone del controllo. Se compilata,
       contiene un oggetto PsDebugContext che dispone delle proprietà
       Breakpoints e InvocationInfo. La proprietà InvocationInfo dispone di
       diverse proprietà utili, inclusa la proprietà Location. Questa
       proprietà indica il percorso dello script sottoposto a debug.

    $PsHome
       Contiene il percorso completo della directory di installazione per
       Windows PowerShell, in genere %windir%\System32\WindowsPowerShell\v1.0. È
       possibile utilizzare questa variabile nei percorsi dei file di Windows
       PowerShell. Ad esempio, il comando seguente cerca la parola
       "variable" negli argomenti concettuali della Guida:

            select-string -pattern variable -path $pshome\*.txt

    $PSScriptRoot
       Contiene la directory da cui viene eseguito il modulo di script.
       Questa variabile consente agli script di utilizzare il percorso del
       modulo per accedere ad altre risorse.

    $PsUICulture
       Contiene il nome delle impostazioni cultura dell'interfaccia utente
       attualmente in uso nel sistema operativo. Le impostazioni cultura
       dell'interfaccia utente determinano quali stringhe di testo vengono
       utilizzate per gli elementi dell'interfaccia utente, ad esempio menu
       e messaggi. Si tratta del valore della
       proprietà System.Globalization.CultureInfo.CurrentUICulture.Nam
       e del sistema. Per ottenere l'oggetto System.Globalization.Cult
       ureInfo del sistema, utilizzare il cmdlet Get-UICulture.

    $PsVersionTable
        Contiene una tabella hash di sola lettura in cui sono
        visualizzati i dettagli sulla versione di Windows PowerShell in
        esecuzione nella sessione corrente.
        Nella tabella sono inclusi gli elementi seguenti:

        CLRVersion:            versione di Common Language Runtime (CLR)

        BuildVersion:          numero della build della versione
        corrente

            PSVersion:             numero di versione di Windows
            PowerShell

            WSManStackVersion:     numero di versione dello stack di
            WS-Management

        PSCompatibleVersions:  versioni di Windows PowerShell compatibili con
        la versione corrente

            SerializationVersion:  versione del metodo di serializzazione

            PSRemotingProtocolVersion
                                   versione del protocollo di
                                   gestione remota di Windows PowerShell

    $Pwd
       Contiene un oggetto percorso che rappresenta il percorso
       completo della directory corrente.

    $Sender
       Contiene l’oggetto generato dall'evento. Questa variabile viene compilata solo
       all’interno del blocco Action di un comando di registrazione di eventi.
       Il valore di questa variabile può essere trovato anche nella proprietà Sender dell'oggetto
       PSEventArgs (System.Management.Automation.PSEventArgs) restituito da Get-Event.

    $ShellID
       Contiene l'identificatore della shell corrente.

    $SourceArgs
       Contiene oggetti che rappresentano gli argomenti di evento dell’evento che viene elaborato.
       Questa variabile viene compilata solo all’interno del blocco Action di un comando di
       registrazione di eventi. Il valore di questa variabile può essere trovato anche nella proprietà
       SourceArgs dell'oggetto PSEventArgs (System.Management.Automation.PSEventArgs) restituito da Get-Event.

    $SourceEventArgs
       Contiene un oggetto che rappresenta il primo argomento dell’evento derivante da EventArgs
       dell’evento che viene elaborato. Questa variabile viene compilata solo all’interno del
       blocco Action di un comando di registrazione di eventi. Il valore di questa variabile può
       essere trovato anche nella proprietà SourceArgs dell'oggetto
       PSEventArgs (System.Management.Automation.PSEventArgs) restituito da Get-Event.

    $This
        In un blocco di script che definisce una proprietà script o
        un metodo script, la variabile $This fa riferimento
        all'oggetto esteso.

    $True
       Contiene TRUE. È possibile utilizzare questa variabile per
       rappresentare TRUE in comandi e script.

VEDERE ANCHE
    about_Hash_Tables
    about_Preference_Variables
    about_Variables


about_Break

ARGOMENTO
    about_Break

DESCRIZIONE BREVE
    Descrive un'istruzione che è possibile utilizzare per uscire
    immediatamente dalle istruzioni Foreach, For, While, Do o Switch.

DESCRIZIONE DETTAGLIATA
    Quando un'istruzione Break viene visualizzata in un ciclo, ad esempio
    Foreach, For, Switch o While, l'istruzione Break provoca l'uscita
    immediata di Windows PowerShell dal ciclo. In un costrutto Switch che
    non esegue il ciclo, Break provoca l'uscita immediata di Windows
    PowerShell dal blocco di codice di Switch.

    Un'istruzione Break può includere un'etichetta che consente di
    uscire dai cicli incorporati. Un'etichetta può specificare
    qualsiasi parola chiave del ciclo, ad esempio Foreach, For o
    While, in uno script. Quando si utilizza un'etichetta,
    l'istruzione Break esce dal ciclo specificato, indipendentemente
    dal ciclo in cui si trova.

    Nell'esempio seguente viene illustrato come utilizzare
    un'istruzione Break per uscire da un'istruzione For:

        for($i=1; $i -le 10; $i++)
        {
            Write-Host $i
            break
        }

    In questo esempio, l'istruzione Break causa l'uscita dal ciclo
    For quando la variabile $i è uguale a 1. Anche se l'istruzione For
    restituisce il valore True finché $i è maggiore di 10, Windows PowerShell
    raggiunge l'istruzione Break alla prima esecuzione del ciclo For.

    È più comune utilizzare l'istruzione Break in un ciclo in cui
    deve essere soddisfatta una condizione interna. Si consideri
    l'esempio di istruzione Foreach seguente:

        $i=0
        $varB = 10,20,30,40
        foreach ($val in $varB)
        {
            $i++
            if ($val -eq 30)
            {
                break
            }
        }
        Write-Host "30 è stato trovato nella posizione di matrice $i"

    In questo esempio, l'istruzione Foreach scorre la matrice $varB.
    Ogni volta che viene eseguito il blocco di codice, la variabile
    $i viene incrementata di 1. L'istruzione If restituisce False
    alle prime due esecuzioni del ciclo. Alla terza esecuzione del
    ciclo, $i è uguale a 3 e la variabile $val è uguale a 30. A
    questo punto, viene eseguita l'istruzione Break che causa
    l'uscita dal ciclo Foreach.

    L'uscita dalle altre istruzioni di ciclo avviene allo stesso modo
    in cui si esce dal ciclo Foreach. Nell'esempio seguente,
    l'istruzione Break causa l'uscita da un'istruzione While quando viene
    intercettata un'eccezione DivideByZeroException mediante l'istruzione
    Trap.

        $i = 3
        while ($true)
        {
            trap [DivideByZeroException]
            {
                Write-Host "intercettata divisione per zero"
                break
            }
            1 / $i--
        }

    Un'istruzione Break può includere un'etichetta. Se si utilizza la
    parola chiave Break con un'etichetta, Windows PowerShell esce dal
    ciclo etichettato anziché uscire dal ciclo corrente. La sintassi di
    un'etichetta è la seguente (in questo esempio viene illustrata
    un'etichetta in un ciclo While):

        :myLabel while (<condizione>) { <elenco istruzioni>}

    L'etichetta è costituita dai due punti seguiti da un nome assegnato
    dall'utente. L'etichetta deve essere il primo token in un'istruzione
    e deve essere seguita dalla parola chiave di ciclo, ad esempio While.

    In Windows PowerShell, solo le parole chiave di ciclo, ad esempio
    Foreach, For e While, possono avere un'etichetta.

    Break provoca l'uscita dell'esecuzione dal ciclo etichettato. Nei
    cicli incorporati, il risultato sarà diverso da quello ottenuto
    quando si utilizza la parola chiave Break da sola. In questo
    esempio viene presentata un'istruzione While con un'istruzione For:

        :myLabel while (<condizione 1>)
        {
            for ($item in $items)
            {
                if (<condizione 2>) { break myLabel }
                $item = $x  # Un'istruzione nel ciclo For }
        }
        $a = $c # Un'istruzione dopo il ciclo While etichettato

    Se la condizione 2 restituisce True, l'esecuzione dello script salta
    all'istruzione successiva al ciclo etichettato. Nell'esempio, l'esecuzione
    inizia nuovamente con l'istruzione "$a = $c".

    È possibile nidificare molti cicli etichettati, come illustrato
    nel seguente esempio.

        :red while (<condizione1>)
        {
            :yellow while (<condizione2>)
            {
                while (<condizione3>)
                {
                    if ($a) {break}
                    if ($b) {break red}
                    if ($c) {break yellow}
                }
                # Dopo il ciclo più interno
            }
                # Dopo il ciclo "yellow"
        }
                # Dopo il ciclo "red"

    Se la variabile $b restituisce True, l'esecuzione dello script
    riprende dopo il ciclo con etichetta "red". Se la variabile $c
    restituisce True, l'esecuzione del controllo di script riprende
    dopo il ciclo con etichetta "yellow".

    Se la variabile $a restituisce True, l'esecuzione riprende dopo
    il ciclo più interno. Non è necessaria alcuna etichetta.

    Windows PowerShell non limita la ripresa dell'esecuzione da parte
    delle etichette. L'etichetta può anche passare il controllo attraverso
    limiti di script e chiamata di funzione.

    La parola chiave Break è utilizzata per uscire dal costrutto
    Switch. Ad esempio, nell'istruzione Switch riportata di seguito
    vengono utilizzate le istruzioni Break per effettuare il testo della
    condizione più specifica:

        $var = "parola2"
        switch -regex ($var)
        {
            "parola2"
            {
                Write-Host "Esatto" $_
                break
            }

            "parola.*"
            {
                Write-Host "Corrispondenza con prefisso" $_
                break
            }

            "p.*"
            {
                Write-Host "Corrispondenza almeno con la prima
                lettera" $_ break
            }

            default
            {
                Write-Host "Nessuna corrispondenza" $_
                break
            }
        }

    In questo esempio, la variabile $var viene creata e inizializzata
    sul valore stringa "parola2". L'istruzione Switch utilizza la
    classe Regex per confrontare il valore della variabile con il termine
    "parola2". La classe Regex è una classe dell'espressione regolare
    Microsoft .NET Framework. Poiché il valore della variabile e il primo
    test nell'istruzione Switch corrispondono, viene eseguito il primo blocco
    di codice nell'istruzione Switch.

    Quando Windows PowerShell raggiunge la prima istruzione Break,
    l'istruzione Switch causa l'uscita. Se le quattro istruzioni
    Break vengono rimosse dall'esempio, vengono soddisfatte tutte e
    quattro le condizioni. In questo esempio viene utilizzata
    l'istruzione Break per visualizzare i risultati quando viene
    soddisfatta la condizione più specifica.

VEDERE ANCHE
    about_Comparison_Operators
    about_For
    about_Foreach
    about_Switch
    about_While


about_Command_Precedence

ARGOMENTO
    about_Command_Precedence

DESCRIZIONE BREVE
    Descrive la modalità in cui in Windows PowerShell viene
    determinato quale comando eseguire.

DESCRIZIONE DETTAGLIATA
    In questo argomento viene illustrata la modalità in cui in
    Windows PowerShell viene determinato quale comando eseguire, in
    particolare quando una sessione contiene più di un comando con lo
    stesso nome.
    Viene inoltre illustrato come eseguire comandi che non vengono
    eseguiti per impostazione predefinita e come evitare i conflitti
    nome-comando nella sessione.

 PRECEDENZA DEI COMANDI
    Quando una sessione include comandi con lo stesso nome, in
    Windows PowerShell vengono utilizzate le regole seguenti per
    determinare quale comando eseguire.

    Queste regole diventano molto importanti quando si aggiungono
    alla sessione comandi da moduli, snap-in e altre sessioni.

    -- Se si specifica il percorso di un comando, Windows PowerShell
       esegue il comando nella posizione specificata dal percorso.

       Ad esempio, tramite il comando seguente viene eseguito lo
       script FindDocs.ps1 incluso nella directory C:\TechDocs:

           C:\TechDocs\FindDocs.ps1

       Come funzionalità di sicurezza, Windows PowerShell non esegue
       comandi eseguibili (nativi), inclusi gli script di Windows
       PowerShell, a meno che il comando non si trovi in un percorso
       elencato nella variabile di ambiente Path ($env:path) o si
       specifichi il percorso del file di script.

       Per eseguire uno script che si trova nella directory corrente,
       specificare il percorso completo oppure digitare un punto (.)
       per rappresentarla.

       Ad esempio, per eseguire il file FindDocs.ps1 nella directory
       corrente, digitare:

           .\FindDocs.ps1

    -- Se non si specifica un percorso, in Windows PowerShell viene
       utilizzato il seguente ordine di precedenza quando vengono
       eseguiti i comandi:

            1. Alias
            2. Function
            3. Cmdlet
            4. Comandi di Windows nativi

        Pertanto, se si digita "help", Windows PowerShell cerca
        innanzitutto un alias denominato "help", quindi una funzione
        denominata "Help" e infine un cmdlet denominato "Help". Verrà
        eseguito il primo elemento "help" trovato.

        Si supponga, ad esempio, di disporre di una funzione denominata Get-Map.
        Quindi, di aggiungere o importare un cmdlet denominato Get-Map. Per impostazione predefinita, Windows PowerShell
        esegue la funzione quando si digita "Get-Map".

    --	Quando la sessione contiene elementi dello stesso tipo con lo
          stesso nome, ad esempio due cmdlet con lo stesso nome, Windows
          PowerShell esegue l'elemento aggiunto più recentemente alla
          sessione.

        Ad esempio, si supponga di disporre di un cmdlet denominato Get-Date. Quindi,
        si importa un altro cmdlet denominato Get-Date. Quando si digita
        "Get-Date", Windows PowerShell esegue il cmdlet importato più
        recentemente per impostazione predefinita.

 ELEMENTI NASCOSTI E SOSTITUITI
    Come conseguenza di queste regole, gli elementi possono essere
    sostituiti o nascosti da elementi con lo stesso nome.

        --  Gli elementi vengono "nascosti" o "ombreggiati" se è
            ancora possibile accedere all'elemento originale, ad
            esempio indicando il nome dell'elemento con il nome di un
            modulo o di uno snap-in.

            Se si importa, ad esempio, una funzione con lo stesso
            nome di un cmdlet della sessione, il cmdlet viene
            nascosto (ma non sostituito) poiché è stato importato da
            uno snap-in o un modulo.

        --  Gli elementi vengono "sostituiti" o "sovrascritti" se non
            è più possibile accedere all'elemento originale.

            Se si importa, ad esempio, una variabile con lo stesso
            nome di una variabile della sessione, la variabile
            originale viene sostituita e non è più accessibile. Non è
            possibile qualificare una variabile con il nome di un modulo.

            Inoltre, se si digita una funzione nella riga di comando
            e si importa una funzione con lo stesso nome, la funzione
            originale viene sostituita e non è più accessibile.

 ESECUZIONE DI COMANDI NASCOSTI
    È possibile eseguire determinati comandi specificando le
    proprietà degli elementi che consentono di distinguere il comando
    dagli altri comandi che potrebbero avere lo stesso nome.

    È possibile utilizzare questo metodo per eseguire qualsiasi
    comando, ma è particolarmente utile per l'esecuzione di comandi
    nascosti.

    Utilizzare questo metodo come procedura consigliata durante la
    scrittura di script da distribuire poiché non è possibile
    stimare quali comandi potrebbero essere presenti nella sessione
    in cui è in esecuzione lo script.

    NOMI QUALIFICATI
        È possibile eseguire comandi importati da uno snap-in, un
        modulo o un'altra sessione di Windows PowerShell, indicando
        il nome del comando con il nome del modulo o lo snap-in in
        cui ha avuto origine.

        È possibile qualificare i comandi, ma non le variabili o gli
        alias.

        Ad esempio, se il cmdlet Get-Date dallo snap-in
        Microsoft.PowerShell.Utility è nascosto da un alias, una
        funzione o un cmdlet con lo stesso nome, è possibile
        eseguirlo utilizzando il nome qualificato come snap-in del cmdlet:

            Microsoft.PowerShell.Utility\Get-Date

        Per eseguire un comando New-Map aggiunto dal modulo
        MapFunctions, utilizzare il nome qualificato come modulo:

            MapFunctions\New-Map

        Per trovare lo snap-in o il modulo da cui è stato importato
        un comando, utilizzare il formato di comando Get-Command seguente:

            get-command <nome-comando> | format-list -property Name,
            PSSnapin, Module

        Ad esempio, per trovare l'origine del cmdlet Get-Date, digitare:

            get-command get-date | format-list -property Name,
            PSSnapin, Module

            Name   : Get-Date
            PSSnapIn: Microsoft.PowerShell.Utility
            modulo:

    OPERATORE DI CHIAMATA
        È inoltre possibile utilizzare anche l'operatore di chiamata
        (&) per eseguire qualsiasi comando che è possibile ottenere
        tramite un comando Get-ChildItem (l'alias è "dir"), Get-Command o
        Get-Module.

        Per eseguire un comando, racchiudere il comando Get-Command tra
        parentesi e utilizzare l'operatore di chiamata (&) per
        eseguire il comando.

            &(get-command ...)

        - oppure

            &(dir ... )

        Ad esempio, se si dispone di una funzione denominata Map
        nascosta da un alias denominato Map, utilizzare il comando
        seguente per eseguire la funzione.

            &(get-command -name map -type function)

        - oppure

            &(dir function:\map)

        È inoltre possibile salvare il comando nascosto in una
        variabile per renderne più semplice l'esecuzione.

        Il comando seguente, ad esempio, salva la funzione Map nella
        variabile $myMap, quindi utilizza l'operatore di chiamata per
        l'esecuzione.

            $myMap = (get-command -name map -type function)

            &($myMap)

        Se un comando ha avuto origine in un modulo, è possibile
        utilizzare il formato seguente per l'esecuzione.

           & <PSModuleInfo-object> <comando>

        Ad esempio, per eseguire il cmdlet Add-File nel modulo
        FileCommands, utilizzare la seguente sequenza di comandi:

           $FileCommands = get-module -name FileCommands
           & $FileCommands Add-File

 ELEMENTI SOSTITUITI
    Gli elementi che non sono stati importati da un modulo o uno
    snap-in, ad esempio funzioni, variabili e alias creati nella
    sessione o aggiunti mediante un profilo, possono essere
    sostituiti da comandi con lo stesso nome. Se vengono sostituiti,
    non è possibile accedervi.

    Le variabili e gli alias vengono sempre sostituiti, anche se sono
    stati importati da un modulo o uno snap-in, perché non è
    possibile utilizzare un operatore di chiamata o un nome
    qualificato per eseguirli.

    Se si digita, ad esempio, una funzione Get-Map nella sessione e
    si importa una funzione denominata Get-Map, la funzione originale
    viene sostituita. Non è possibile recuperarla nella sessione
    corrente.

 EVITARE I CONFLITTI DI NOMI
    Il modo migliore per gestire i conflitti di nomi di comando è
    impedirli. Quando si assegna un nome ai comandi, utilizzare un
    nome molto specifico o univoco. Ad esempio, aggiungere le proprie
    iniziali o l'acronimo del nome della società ai nomi nei comandi.

    Inoltre, durante l'importazione di comandi nella sessione da un
    modulo di Windows PowerShell o da un'altra sessione, utilizzare
    il parametro Prefix del cmdlet Import-Module o Import-PSSession per
    aggiungere un prefisso ai nomi dei comandi.

    Nel comando seguente, ad esempio, viene evitato qualsiasi
    conflitto con i cmdlet Get-Date e Set-Date disponibili in Windows
    PowerShell quando si importa il modulo DateFunctions.

        import-module -name DateFunctions -prefix ZZ

    Per ulteriori informazioni, vedere
    Import-Module e Import-PSSession.

VEDERE ANCHE
    about_Path_Syntax
    about_Aliases
    about_Functions
    Alias (provider)
    Function (provider)
    Get-Command
    Import-Module
    Import-PSSession


about_Command_Syntax

ARGOMENTO
    about_Command_Syntax

DESCRIZIONE BREVE
    Descrive la notazione utilizzata per la sintassi di Windows
    PowerShell nella Guida.

DESCRIZIONE DETTAGLIATA
    Il cmdlet Get-Help visualizza l'utilizzo del parametro per un
    cmdlet. Il cmdlet Get-Help utilizza i seguenti simboli speciali:

        Le parentesi angolari (<>) indicano il testo segnaposto.
        Le parentesi quadre([]) indicano gli elementi facoltativi. Le
        parentesi graffe ({}) indicano una scelta tra valori.

    Alcuni cmdlet dispongono di più set di parametri. Set di
    parametri distinti possono condividere alcuni parametri. Il
    cmdlet Get-Help visualizza tutti i set di parametri per un cmdlet.

    È possibile trovare informazioni aggiuntive su un parametro nella
    descrizione del parametro e nella tabella degli attributi dei
    parametri. Per visualizzare le informazioni complete su un parametro,
    utilizzare i parametri Full o Parameter di Get-Help.

  Sintassi
      La Guida al cmdlet di Windows PowerShell, gli argomenti della
      Guida e altra documentazione utilizzano la notazione seguente
      per i cmdlet nelle descrizioni di sintassi.

          <nome-cmdlet> -<nome parametro obbligatorio> <valore parametro
          obbligatorio>
                       [-<nome parametro facoltativo> <valore parametro
                       facoltativo>]
                       [-<parametro opzionale>]
                       [-<nome parametro facoltativo>] <valore parametro
                       obbligatorio>

      Di seguito è riportata la sintassi del cmdlet New-Alias:

          New-Alias [-Force] [-PassThru] [-Scope <string>]
              [-Option {None | ReadOnly | Constant | Private | AllScope}]
              [-Description <stringa>] [-Name] <stringa> [-Value]
              <stringa>
              [-confirm] [-whatif] [<ParametriComuni>]

      Per migliorare la leggibilità nella sintassi vengono utilizzate
      le lettere maiuscole, ma Windows PowerShell non rileva la
      distinzione tra maiuscole e minuscole.

      I parametri vengono visualizzati in ordine. L'ordine dei parametri è
      significativo solo quando i nomi dei parametri sono facoltativi.
      Se non si specificano i nomi dei parametri durante l'utilizzo di
      un cmdlet, Windows PowerShell assegna valori ai parametri in
      base a posizione e tipo.

      I nomi dei parametri sono preceduti da un trattino (-). I parametri
      opzionali vengono visualizzati senza tipo di valore. Gli altri
      parametri vengono visualizzati con il tipo Microsoft .NET Framework
      dell'argomento necessario o con un'enumerazione di valori possibili.
      Per ulteriori informazioni sui tipi .NET Framework,
      vedere http://go.microsoft.com/fwlink/?LinkId=143682.

      Le parentesi angolari (<>) indicano il testo segnaposto. Questo
      testo può descrivere il
      tipo di un elemento (ad esempio una stringa o un oggetto
      processo). Può inoltre essere un segnaposto per uno o più
      parametri comuni.

      Le parentesi quadre([]) indicano gli elementi facoltativi. Un
      parametro può essere facoltativo oppure può essere facoltativo
      il nome di un parametro obbligatorio. I parametri opzionali
      sono sempre facoltativi.

      Le parentesi graffe ({}) racchiudono i valori di un'enumerazione.
      Nell'esempio del cmdlet New-Alias, il parametro Option può disporre
      di uno qualsiasi dei valori elencati.

  Elementi facoltativi
      Le parentesi quadre([]) racchiudono gli elementi facoltativi.
      Ad esempio, nella descrizione della sintassi del cmdlet
      New-Alias, il parametro Scope è facoltativo. Ciò viene indicato
      nella sintassi dalle parentesi quadre che racchiudono il tipo e
      il nome del parametro:

          [-Scope <string>]

      Entrambi gli esempi seguenti rappresentano utilizzi corretti
      del cmdlet New-Alias:

          New-Alias -Name utd -Value Update-TypeData New-Alias -Name
          utd -Value Update-TypeData -Scope global

      Il nome di un parametro può essere facoltativo anche se il
      valore di tale parametro è obbligatorio. Ciò viene indicato
      nella sintassi dalle parentesi quadre che racchiudono il nome del
      parametro ma non il tipo di parametro, come in questo esempio dal
      cmdlet New-Alias:

          [-Name] <stringa> [-Value] <stringa>

      Nei comandi seguenti viene utilizzato il cmdlet New-Alias.
      Questi comandi producono lo stesso risultato:

          New-Alias -Name utd -Value Update-TypeData New-Alias -Name
          utd Update-TypeData
          New-Alias utd -Value Update-TypeData
          New-Alias utd Update-TypeData

      Se il nome del parametro non è incluso nell'istruzione
      digitata, Windows PowerShell tenta di utilizzare la posizione degli
      argomenti per assegnare i valori ai parametri.

      L'esempio seguente non è completo:

          New-Alias utd

      Questo cmdlet richiede i valori per entrambi i parametri Name e
      Value.

      Negli esempi di sintassi, le parentesi quadre vengono inoltre
      utilizzate nella denominazione e nelle operazioni di casting
      sui tipi .NET Framework. In questo contesto, le parentesi quadre non
      indicano che un elemento è facoltativo.

  Argomenti di matrice
      Le parentesi quadre vengono inoltre utilizzate nelle descrizioni di
      sintassi per rappresentare una matrice. Nell'esempio seguente viene
      riportata la sintassi del cmdlet Restart-Service:

          Restart-Service [-Name] <string[]> [-Include <string[]>]
          [-Exclude <string[]>] [-Force] [-PassThru] [-Confirm] [-WhatIf]
          [<ParametriComuni>]

      Il parametro Name richiede un argomento. In particolare, è
      necessario il nome del servizio da riavviare. È possibile
      utilizzare un elenco di servizi separati da virgole, come
      nell'esempio seguente:

          Restart-Service RasAuto, RasMan, RemoteAccess

VEDERE ANCHE
    Get-Help


about_Comment_Based_Help

ARGOMENTO
    about_Comment_Based_Help

DESCRIZIONE BREVE
    Viene descritta la modalità di scrittura della Guida basata su commenti relativa a
    funzioni e script.

DESCRIZIONE DETTAGLIATA
    È possibile scrivere una Guida basata su commenti relativa a
    funzioni e script mediante parole chiave commento speciali.

    Il cmdlet Get-Help visualizza la Guida basata su commenti nello
    stesso formato nel quale visualizza la Guida del cmdlet generata
    da file XML. Gli utenti possono utilizzare tutti i parametri di
    Get-Help, ad esempio Detailed, Full, Example e Online, per
    visualizzare la Guida relativa a funzioni e script.

    È inoltre possibile scrivere file della Guida basati su XML per
    script e funzioni mediante parole chiave commento e reindirizzare
    gli utenti a un file della Guida diverso.

    In questo argomento viene illustrato come scrivere la Guida per
    funzioni e script. Per informazioni su come visualizzare la Guida
    per funzioni e script, vedere Get-Help.

 SINTASSI PER LA GUIDA BASATA SU COMMENTI
    La sintassi per la Guida basata su commenti è la seguente:
        # .< parola chiave guida>
        # <contenuto guida>

    -oppure

        <#
            .< parola chiave guida>
            < contenuto guida>
        #>

    La Guida basata su commenti viene scritta come una serie di
    commenti. È possibile digitare un simbolo di commento (#) prima
    di ogni riga di commenti oppure utilizzare i simboli "<#" e "#>"
    per creare un blocco di commento. Tutte le righe all'interno del
    blocco di commento vengono interpretate come commenti.

    Tutte le righe di un argomento della Guida basata su commenti
    devono essere contigue. Se un argomento della Guida basata su
    commenti segue un commento che non fa parte dell'argomento, deve
    essere presente almeno una riga vuota tra l'ultima riga di
    commento non appartenente alla Guida e l'inizio della Guida
    basata su commenti.

    Le parole chiave definiscono ogni sezione della Guida basata su
    commenti. Ogni parola chiave della Guida basata su commenti è
    preceduta da un punto (.). Le parole chiave possono essere
    disposte in qualsiasi ordine e i relativi nomi non fanno
    distinzione tra maiuscole e minuscole.

    La parola chiave Description, ad esempio, precede una descrizione
    di una funzione o di uno script.

        <#
        .Description
            Get-Function visualizza il nome e la sintassi di tutte le
            funzioni nella sessione.
        #>

    Il blocco di commento deve contenere almeno una parola chiave.
    Alcune delle parole chiave, ad esempio EXAMPLE, possono comparire
    molte volte nello stesso blocco di commento. Il contenuto della
    Guida per ogni parola chiave inizia dalla riga dopo la parola
    chiave e può estendersi su più righe.

 SINTASSI PER LA GUIDA BASATA SU COMMENTI NELLE FUNZIONI

    La Guida basata su commenti relativa a una funzione può essere
    visualizzata in una di tre diverse posizioni:

        -- All'inizio del corpo della funzione.

        -- Alla fine del corpo della funzione.

        -- Prima della parola chiave Function. Tra l'ultima riga
           della Guida relativa alla funzione e la parola chiave
           Function non può essere presente più di una riga vuota.

    Ad esempio:

        function MyFunction
        {
            <#
            .< parola chiave guida>
            < contenuto guida>
            #>

            <comandi funzione>
        }

    -oppure

        function MyFunction
        {
            <comandi funzione>

            <#
            .< parola chiave guida>
            < contenuto guida>
            #>
        }

    -oppure

        <#
        .< parola chiave guida>
        < contenuto guida>
        #>
        function MyFunction { }

 SINTASSI PER LA GUIDA BASATA SU COMMENTI NEGLI SCRIPT

    La Guida basata su commenti relativa a uno script può essere
    visualizzata in una delle due posizioni seguenti all'interno
    dello script.

    -- All'inizio del file di script. Nello script la Guida relativa
       allo script può essere preceduta solo da commenti e righe vuote.

    -- Se il primo elemento nel corpo dello script (dopo la Guida) è
       una dichiarazione di funzione, devono essere presenti almeno
       due righe vuote tra la fine della Guida relativa allo script e
       la dichiarazione di funzione. In caso contrario, la Guida
       verrà interpretata come Guida relativa alla funzione, non allo
       script.

    -- Alla fine del file di script.

    Ad esempio:

        <#
        .< parola chiave guida>
        < contenuto guida>
        #>

        function MyFunction { }

    -oppure-

        function MyFunction { }

        <#
        .< parola chiave guida>
        < contenuto guida>
        #>

 PAROLE CHIAVE DELLA GUIDA BASATA SU COMMENTI
    Di seguito sono elencate le parole chiave della Guida basata su
    commenti valide. Queste sono disposte nell'ordine in cui vengono visualizzate
    in un argomento della Guida, insieme alla descrizione del loro
    utilizzo previsto.
    Queste parole chiave possono essere visualizzate in qualsiasi
    ordine nella Guida basata su commenti e non fanno distinzione tra
    maiuscole e minuscole.

    .SYNOPSIS
        Breve descrizione della funzione o dello script. Questa
        parola chiave può essere utilizzata una sola volta in ogni
        argomento.

    .DESCRIPTION
        Descrizione dettagliata della funzione o dello script. Questa
        parola chiave può essere utilizzata una sola volta in ogni
        argomento.

    .PARAMETER <Nome-Parametro>
        Descrizione di un parametro. È possibile includere una parola
        chiave Parameter per ogni parametro nella sintassi della
        funzione o dello script.

        Le parole chiave Parameter possono essere visualizzate in
        qualsiasi ordine nel blocco di commento, ma la sintassi della
        funzione o dello script determina l'ordine in cui i
        parametri, e relative descrizioni, vengono visualizzati
        nell'argomento della Guida. Per modificare l'ordine,
        modificare la sintassi.

        È inoltre possibile specificare una descrizione di parametro
        posizionando un commento nella sintassi della funzione o
        dello script immediatamente prima del nome della variabile
        del parametro.
        Se si utilizza un commento di sintassi e una parola chiave
        Parameter, viene utilizzata la descrizione associata alla
        parola chiave Parameter e il commento di sintassi viene ignorato.

    .EXAMPLE
        Comando di esempio che utilizza la funzione o lo script,
        seguito facoltativamente da output di esempio e da una
        descrizione. Ripetere questa parola chiave per ogni esempio.

    .INPUTS
        Tipi Microsoft .NET Framework di oggetti che è possibile reindirizzare alla
        funzione o allo script. È inoltre possibile includere una
        descrizione degli oggetti di input.

    .OUTPUTS
        Tipo .NET Framework degli oggetti restituiti dal cmdlet. È inoltre
        possibile includere una descrizione degli oggetti restituiti.

    .NOTES
        Informazioni aggiuntive sulla funzione o sullo script.

    .LINK
        Nome di un argomento correlato. Ripetere questa parola chiave
        per ogni argomento correlato.

        Contenuto che viene visualizzato nella sezione Collegamenti
        correlati dell'argomento della Guida.

        Il contenuto della parola chiave Link può inoltre includere
        un URI (Uniform Resource Identifier) per una versione online dello stesso         argomento della Guida. La versione online viene aperta quando si utilizza il
        parametro Online di Get-Help. L'URI deve iniziare con "http" o "https".

    .COMPONENT
        Tecnologia o funzionalità utilizzata dalla funzione o dallo
        script o a cui è correlato. Contenuto che viene visualizzato
        quando il comando Get-Help include il parametro Component di
        Get-Help.

    .ROLE
        Ruolo utente per l'argomento della Guida. Contenuto che viene
        visualizzato quando il comando Get-Help include il parametro
        Role di Get-Help.

    .FUNCTIONALITY
        Utilizzo previsto della funzione. Contenuto che viene
        visualizzato quando il comando Get-Help include il parametro
        Functionality di Get-Help.

    .FORWARDHELPTARGETNAME <Command-Name>
        Reindirizza l'utente all'argomento della Guida relativo al
        comando specificato. È possibile reindirizzare gli utenti a
        qualsiasi argomento della Guida, inclusi gli argomenti
        relativi a una funzione, script, cmdlet o provider.

    .FORWARDHELPCATEGORY <Categoria>
        Specifica la categoria della Guida dell'elemento in
        ForwardHelpTargetName.
        I valori validi sono Alias, Cmdlet, HelpFile, Function,
        Provider, General, FAQ, Glossary, ScriptCommand,
        ExternalScript, Filter o All. Utilizzare questa parola chiave
        per evitare conflitti in presenza di comandi con lo stesso nome.

    .REMOTEHELPRUNSPACE <variabile-PSSession>
        Specifica una sessione che contiene l'argomento della Guida.
        Immettere una variabile che contiene PSSession. Questa parola
        chiave viene utilizzata dal cmdlet Export-PSSession per
        trovare gli argomenti della Guida relativi ai comandi esportati.

    .EXTERNALHELP <Percorso file della Guida XML>
        Specifica il percorso del file della Guida basato su XML
        relativo allo script o alla funzione.

        In Windows Vista e nelle versioni successive di Windows, se
        il percorso specificato del file XML contiene sottodirectory
        specifiche di impostazioni cultura relative all'interfaccia
        utente, le sottodirectory ricercano in modo ricorsivo un file
        XML con il nome dello script o della funzione in base agli
        standard del fallback della lingua stabiliti per Windows
        Vista, allo stesso modo in cui ricercano gli argomenti della
        Guida basata su XML.

        Per ulteriori informazioni sul formato del file della Guida basata su XML
        del cmdlet, vedere l'argomento relativo alla creazione della Guida dei cmdlet
        in MSDN (Microsoft Developer Network) Library all'indirizzo                 http://go.microsoft.com/fwlink/?LinkID=123415 (le informazioni potrebbero
        essere in lingua inglese).

 CONTENUTO GENERATO AUTOMATICAMENTE
    Il nome, la sintassi, l'elenco dei parametri, la tabella degli
    attributi dei parametri, i parametri comuni e i commenti vengono
    generati automaticamente dal cmdlet Get-Help.

        Nome:
            La sezione nome di un argomento della Guida relativo a
            una funzione deriva dal nome della funzione specificato
            nella sintassi relativa. Il nome di un argomento della
            Guida relativo a uno script deriva dal nome del file di
            script. Per modificare il nome o la relativa distinzione
            tra maiuscole e minuscole, modificare la sintassi della
            funzione o il nome del file di script.

        Sintassi:
            La sezione sintassi dell'argomento della Guida viene
            generata dalla sintassi dello script o della funzione.
            Per aggiungere dettagli alla sintassi dell'argomento
            della Guida, ad esempio il tipo .NET Framework di un parametro,
            aggiungere il dettaglio alla sintassi. Se non si
            specifica un tipo di parametro, il tipo "Object" viene
            inserito come valore predefinito.

        Elenco dei parametri:
            L'elenco dei parametri nell'argomento della Guida viene
            generato dalla sintassi della funzione o dello script e
            dalle descrizioni aggiunte mediante la parola chiave
            Parameters. I parametri della funzione sono contenuti
            nella sezione "Parametri" dell'argomento della Guida
            nello stesso ordine in cui vengono visualizzati nella
            sintassi dello script o della funzione. Anche
            l'ortografia e la distinzione tra maiuscole e minuscole
            dei nomi dei parametri derivano dalla sintassi e non
            dipendono dal nome del parametro specificato dalla parola
            chiave Parameter.

        Parametri comuni:
            I parametri comuni vengono aggiunti alla sintassi e
            all'elenco dei parametri dell'argomento della Guida,
            anche se non producono alcun effetto. Per ulteriori informazioni
            sui parametri comuni, vedere about_CommonParameters.

        Tabella degli attributi dei parametri:
            Get-Help genera la tabella degli attributi dei parametri
            che viene visualizzata quando si utilizza il parametro
            Full o Parameter di Get-Help. Il valore degli attributi
            Required, Position e Default deriva dalla sintassi
            della funzione o dello script.

        Commenti:
            La sezione commenti dell'argomento della Guida viene
            generata automaticamente dal nome dello script o della
            funzione. Non è possibile modificare il contenuto di
            questa sezione.

 ESEMPI

    Esempio 1: Guida basata su commenti relativa a una funzione

        Nella funzione di esempio seguente è inclusa una Guida basata
        su commenti:

            function Add-Extension
            {
                param ([string]$Name,[string]$Extension = "txt")
                $name = $name + "." + $extension $name

            <#
            .SYNOPSIS
            Aggiunge un'estensione di file a un nome fornito.

            .DESCRIPTION
            Aggiunge un'estensione di file a un nome fornito. Accetta
            qualsiasi stringa per il nome o l'estensione di file.

            .PARAMETER Name
            Specifica il nome del file.

            .PARAMETER Extension
            Specifica l'estensione di file. "Txt" è l'estensione predefinita.

            .INPUTS
            Nessuno. Non è possibile reindirizzare oggetti a
            Add-Extension.

            .OUTPUTS
            System.String. Add-Extension restituisce una stringa con
            il nome o l'estensione di file.

            .EXAMPLE
            C:\PS> extension -name "File"
            File.txt

            .EXAMPLE
            C:\PS> extension -name "File" -extension "doc"
            File.doc

            .EXAMPLE
            C:\PS> extension "File" "doc"
            File.doc

            .LINK
            Versione online: http://www.fabrikam.com/extension.html

            .LINK
            Set-Item
            #>
            }

        Di seguito sono illustrati i risultati:

        C:\PS> get-help add-extension -full

        NOME
            Add-Extension

        SYNOPSIS
            Aggiunge un'estensione di file a un nome fornito.

        SINTASSI
            Add-Extension [[-Name] <String>] [[-Extension] <String>]
            [<CommonParameters>]
        DESCRIZIONE
            Aggiunge un'estensione di file a un nome fornito. Accetta
            qualsiasi stringa per il nome o l'estensione di file.

        PARAMETRI
           -Name
               Specifica il nome del file.

               Required?                    false
               Position?                    0
               Valore predefinito
               Accept pipeline input?       false
               Accept wildcard characters?

           -Extension
               Specifica l'estensione. "Txt" è l'estensione predefinita.

               Required?                    false
               Position?                    1
               Valore predefinito
               Accept pipeline input?       false
               Accept wildcard characters?

            <CommonParameters>
               Questo cmdlet supporta i parametri comuni -Verbose,
               -Debug, ErrorAction, -ErrorVariable, -WarningAction,
               -WarningVariable, OutBuffer e -OutVariable. Per
               ulteriori informazioni, digitare "get-help
               about_commonparameters".

        INPUTS
            Nessuno. Non è possibile reindirizzare oggetti a
            Add-Extension.

        OUTPUTS
            System.String. Add-Extension restituisce una stringa con
            il nome o l'estensione di file.

            -------------------------- ESEMPIO 1 --------------------------
            C:\PS> extension -name "File"
            File.txt

            -------------------------- ESEMPIO 2 --------------------------
            C:\PS> extension -name "File" -extension "doc"
            File.doc

            -------------------------- ESEMPIO 3 --------------------------
            C:\PS> extension "File" "doc"
            File.doc

        COLLEGAMENTI CORRELATI
            Versione online: http://www.fabrikam.com/extension.html
            Set-Item

    Esempio 2: Descrizioni dei parametri nella sintassi della funzione

        Questo esempio corrisponde al precedente, ad eccezione del
        fatto che le descrizioni dei parametri sono inserite nella
        sintassi della funzione. Questo formato è soprattutto utile
        quando le descrizioni sono brevi.

        function Add-Extension
        {
            param
            (
                [string]
                # Specifica il nome file.
                $name,

                [string]
                # Specifica l'estensione. "Txt" è l'estensione
                predefinita.
                $extension = "txt"
            )
            $name = $name + "." + $extension
            $name

            <#
            .SYNOPSIS
            Aggiunge un'estensione di file a un nome fornito.

            .DESCRIPTION
            Aggiunge un'estensione di file a un nome fornito. Accetta
            qualsiasi stringa per il nome o l'estensione di file.

            .INPUTS
            Nessuno. Non è possibile reindirizzare oggetti a
            Add-Extension.

            .OUTPUTS
            System.String. Add-Extension restituisce una stringa con
            il nome o l'estensione di file.

            .EXAMPLE
            C:\PS> extension -name "File"
            File.txt

            .EXAMPLE
            C:\PS> extension -name "File" -extension "doc"
            File.doc

            .EXAMPLE
            C:\PS> extension "File" "doc"
            File.doc

            .LINK
            Versione online: http://www.fabrikam.com/extension.html

            .LINK
            Set-Item
            #>
        }

    Esempio 3: Guida basata su commenti relativa a uno script

        Nello script di esempio seguente è inclusa una Guida basata
        su commenti.

        Si notino le righe vuote tra il simbolo di chiusura "#>" e
        l'istruzione Param. In uno script privo di istruzione Param,
        devono essere presenti almeno due righe vuote tra il commento
        finale nell'argomento della Guida e la prima dichiarazione di
        funzione. Senza queste righe vuote, Get-Help associa
        l'argomento della Guida alla funzione, non allo script.

           <#
           .SYNOPSIS
           Esegue aggiornamenti mensili dei dati.

           .DESCRIPTION
           Lo script Update-Month.ps1 aggiorna il Registro di sistema
           con i nuovi dati generati lo scorso mese e genera un report.

           .PARAMETER InputPath
           Specifica il percorso del file di input basato su CSV.

           .PARAMETER OutputPath
           Specifica il nome e il percorso del file di output basato
           su CSV. Per impostazione predefinita, MonthlyUpdates.ps1
           genera un nome in base alla data e all'ora in cui viene
           eseguito e salva l'output nella directory locale.

           .INPUTS
           Nessuno. Non è possibile reindirizzare oggetti a
           Update-Month.ps1.

           .OUTPUTS
           Nessuno. Update-Month.ps1 non genera alcun output.

           .EXAMPLE
           C:\PS> .\Update-Month.ps1

           .EXAMPLE
           C:\PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv

           .EXAMPLE
           C:\PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv
           -outputPath C:\Reports\2009\January.csv
           #>

           param ([string]$InputPath, [string]$OutPutPath)

           function Get-Data { }
           ...

        Il comando seguente ottiene la Guida dello script. Poiché lo
        script non si trova in una directory elencata nella variabile
        di ambiente Path, nel comando Get-Help che ottiene la Guida
        dello script deve essere specificato il percorso dello script.

            PS C:\ps-test> get-help .\update-month.ps1 -full

            NOME
                C:\ps-test\Update-Month.ps1

            SYNOPSIS
                Esegue aggiornamenti mensili dei dati.

            SINTASSI
                C:\ps-test\Update-Month.ps1 [-InputPath] <String>
                [[-OutputPath] ]<String>] [<CommonParameters>]

            DESCRIZIONE
                Lo script Update-Month.ps1 aggiorna il Registro di
                sistema con i nuovi dati generati lo scorso mese e
                genera un report.

            PARAMETRI
               -InputPath
                   Specifica il percorso del file di input basato su CSV.

                   Required?                    true
                   Position?                    0
                   Valore predefinito
                   Accept pipeline input?       false
                   Accept wildcard characters?

               -OutputPath
                   Specifica il nome e il percorso del file di output
                   basato su CSV. Per impostazione predefinita,
                   MonthlyUpdates.ps1 genera un nome in base alla
                   data e all'ora in cui viene eseguito e salva
                   l'output nella directory locale.

                   Required?                    false
                   Position?                    1
                   Valore predefinito
                   Accept pipeline input?       false
                   Accept wildcard characters?
               <CommonParameters>
                   Questo cmdlet supporta i parametri comuni
                   -Verbose, -Debug, ErrorAction, -ErrorVariable,
                    -WarningAction, -WarningVariable, OutBuffer e
                     -OutVariable. Per ulteriori informazioni,
                      digitare "get-help about_commonparameters".

            INPUT
                   Nessuno. Non è possibile reindirizzare oggetti a
                   Update-Month.ps1.

            OUTPUT
                   Nessuno. Update-Month.ps1 non genera alcun output.

            -------------------------- ESEMPIO 1 --------------------------
            C:\PS> .\Update-Month.ps1

            -------------------------- ESEMPIO 2 --------------------------
            C:\PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv

            -------------------------- ESEMPIO 3 --------------------------
            C:\PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv
            -outputPath
            C:\Reports\2009\January.csv

            COLLEGAMENTI CORRELATI

    Esempio 4: Reindirizzamento a un File XML

        È possibile scrivere argomenti della Guida basati su XML
        relativi a funzioni e script. Anche se la Guida basata su
        commenti risulta essere di più facile implementazione, la
        Guida basata su XML è necessaria qualora si desideri
        esercitare un controllo più preciso sul contenuto della Guida
        o si intenda tradurre gli argomenti della Guida in più lingue.

        Nell'esempio seguente vengono illustrate le prime righe dello
        script Update-Month.ps1. Nello script viene utilizzata la
        parola chiave ExternalHelp per specificare il percorso di un
        argomento della Guida basato su XML relativo allo script.

            # .ExternalHelp C:\MyScripts\Update-Month-Help.xml

            param ([string]$InputPath, [string]$OutPutPath)

            function Get-Data { }
            ...

       Nell'esempio seguente viene illustrato l'utilizzo della parola
       chiave ExternalHelp in una funzione.

            function Add-Extension
            {
                param ([string] $name, [string]$extension = "txt")
                $name = $name + "." + $extension $name

                # .ExternalHelp C:\ps-test\Add-Extension.xml }

    Esempio 5: Reindirizzamento a un argomento della Guida diverso

        Il codice seguente è tratto dall'inizio della funzione Help
        incorporata in Windows PowerShell che consente di
        visualizzare una schermata alla volta di testo della Guida.
        Poiché l'argomento della Guida relativo al cmdlet Get-Help
        descrive la funzione Help, quest'ultima utilizza le parole chiave
        ForwardHelpTargetName e ForwardHelpCategory per reindirizzare
        l'utente all'argomento della Guida relativo al cmdlet Get-Help.

            function help
            {

            <#
            .FORWARDHELPTARGETNAME Get-Help
            .FORWARDHELPCATEGORY Cmdlet
            #>
            [CmdletBinding(DefaultParameterSetName='AllUsersView')] param(
                [Parameter(Position=0, ValueFromPipelineByPropertyName
                =$true)] [System.String]
                ${Name},
                   ...

        Il comando seguente utilizza questa funzionalità:

            C:\PS> get-help help

            NOME
                Get-Help

            SYNOPSIS
                Visualizza informazioni sui cmdlet e i concetti
                relativi a Windows PowerShell.
            ...

VEDERE ANCHE
    about_Functions
    about_Functions_Advanced_Parameters
    about_Scripts
    "Modalità di scrittura della Guida dei cmdlet" (http://go.microsoft.com/fwlink/?LinkID=123415)
    (le informazioni potrebbero essere in lingua inglese)


about_Commonparameters

ARGOMENTO
    about_CommonParameters

DESCRIZIONE BREVE
    Descrive i parametri che possono essere utilizzati con qualsiasi
    cmdlet.

DESCRIZIONE DETTAGLIATA
    I parametri comuni sono un set di parametri dei cmdlet che è possibile
    utilizzare con qualsiasi cmdlet. Vengono implementati da Windows
    PowerShell, non dallo sviluppatore di cmdlet, e sono automaticamente
    disponibili per qualsiasi cmdlet.

    È possibile utilizzare i parametri comuni con qualsiasi cmdlet, ma
    potrebbero non avere effetti su tutti i cmdlet. Se ad esempio un
    cmdlet non genera alcun output dettagliato, l'utilizzo del parametro
    comune Verbose non ha alcun effetto.

    Diversi parametri comuni eseguono l'override delle impostazioni
    predefinite del sistema o delle preferenze impostate tramite le
    variabili di preferenza di Windows PowerShell. A differenza delle
    variabili di preferenza, i parametri comuni hanno effetto solo
    sui comandi in cui vengono utilizzati.

    Oltre ai parametri comuni, molti cmdlet offrono i parametri di
    attenuazione dei rischi WhatIf e Confirm. Solitamente i cmdlet che
    comportano rischi per il sistema o per i dati dell'utente offrono questi
    parametri.

    I parametri comuni sono i seguenti:

       -Verbose
       -Debug
       -WarningAction
       -WarningVariable
       -ErrorAction
       -ErrorVariable
       -OutVariable
       -OutBuffer

    I parametri di attenuazione dei rischi sono:

       -WhatIf
       -Confirm

    Per ulteriori informazioni sulle variabili di preferenza, digitare:

       help about_preference_variables

  Descrizioni dei parametri comuni

    -Verbose[:{$true | $false}]

        Vengono visualizzate le informazioni dettagliate sull'operazione
        eseguita dal comando. Queste informazioni sono analoghe alle
        informazioni in un'analisi o in un registro delle transazioni. Questo
        parametro funziona solo quando il comando genera un messaggio
        dettagliato, ad esempio quando un comando contiene il cmdlet
        Write-Verbose.

        Il parametro Verbose esegue l'override del valore della variabile
        $VerbosePreference per il comando corrente. Poiché il valore
        predefinito della variabile $VerbosePreference è SilentlyContinue, i
        messaggi dettagliati non vengono visualizzati per impostazione
        predefinita.

        Valori validi:

            $true (-Verbose:$true) esercita lo stesso effetto di -Verbose.

            $false (-Verbose:$false) elimina la visualizzazione di
            messaggi dettagliati. Utilizzare questo parametro quando
            il valore di $VerbosePreference non è SilentlyContinue
            (impostazione predefinita).

    -Debug[:{$true | $false}]

        Vengono visualizzate informazioni a livello di programmazione
        sull'operazione eseguita dal comando. Questo parametro funziona solo
        quando il comando genera un messaggio di debug, ad esempio quando un
        comando contiene il cmdlet Write-Debug.

        Il parametro Debug esegue l'override del valore della variabile
        $DebugPreference per il comando corrente. Poiché il valore
        predefinito della variabile $DebugPreference è SilentlyContinue, i
        messaggi di debug non vengono visualizzati per impostazione predefinita.

        Valori validi:

            $true (-Debug:$true). Esercita lo stesso effetto di -Debug.

            $false (-Debug:$false). Elimina la visualizzazione di
            messaggi di debug quando il valore di $DebugPreference non è
            SilentlyContinue (impostazione predefinita).

    -WarningAction[:{SilentlyContinue | Continue | Inquire | Stop}]

        Determina la risposta del cmdlet a un avviso del comando.
        "Continue" è il valore predefinito. Questo parametro funziona solo
        quando il comando genera un messaggio di avviso, ad esempio quando un
        comando contiene il cmdlet Write-Warning.

        Il parametro WarningAction esegue l'override del valore della
        variabile $WarningPreference per il comando corrente. Poiché
        il valore predefinito della variabile $WarningPreference è
        Continue, vengono visualizzati gli avvisi e l'esecuzione
        continua a meno che non si utilizzi il parametro WarningAction.

         Valori validi:

            SilentlyContinue. Elimina il messaggio di avviso e
            l'esecuzione del comando continua.

            Continue. Visualizza il messaggio di avviso e l'esecuzione del
            comando continua. "Continue" è il valore predefinito.

            Inquire. Visualizza il messaggio di avviso e richiede
            all'utente la conferma prima di continuare l'esecuzione.
            Questo valore viene utilizzato di rado.

            Stop. Visualizza il messaggio di avviso e interrompe
            l'esecuzione del comando.

    -WarningVariable [+]<variable-name>

        Archivia gli avvisi relativi al comando nella variabile
        specificata.

        Per aggiungere gli avvisi al contenuto della variabile, anziché
        sostituire qualsiasi avviso che potrebbe essere già presente,
        digitare un segno più (+) prima del nome della variabile.

        Ad esempio, il comando seguente crea la variabile $a e
        archivia in essa gli avvisi:

            get-process -id 6 -WarningVariable a

        Con il comando seguente vengono aggiunti avvisi alla variabile $a:

            get-process -id 2 -WarningVariable +a

        Con il comando seguente viene visualizzato il contenuto di $a:

            $a

        È possibile utilizzare questo parametro per creare una
        variabile che contiene solo gli avvisi di comandi specifici.
        È possibile utilizzare una notazione di matrice, ad esempio
        $a[0] o $warning[1,2], per fare riferimento ad avvisi specifici
        archiviati nella variabile.

    -ErrorAction[:{SilentlyContinue | Continue | Inquire | Stop)]

        Determina la risposta del cmdlet a un errore non fatale del
        comando. Questo parametro funziona solo quando il comando
        genera un messaggio di debug, ad esempio quando un comando
        contiene il cmdlet Write-Error.

        Il parametro ErrorAction esegue l'override del valore della
        variabile $ErrorActionPreference per il comando corrente.
        Poiché il valore predefinito della variabile $ErrorActionPrefe
        rence è Continue, vengono visualizzati i messaggi di errore e
        l'esecuzione continua a meno che non si utilizzi il parametro
        ErrorAction.

        Il parametro ErrorAction non ha effetto sugli errori fatali,
        ad esempio dati mancanti, parametri non validi o autorizzazioni
        insufficienti, che impediscono il completamento corretto di un comando.

        Valori validi:

            SilentlyContinue. Elimina il messaggio di errore e
            l'esecuzione del comando continua.

            Continue. Visualizza il messaggio di errore e l'esecuzione del
            comando continua. "Continue" è il valore predefinito.

            Inquire. Visualizza il messaggio di errore e richiede
            all'utente la conferma prima di continuare l'esecuzione.
            Questo valore viene utilizzato di rado.

            Stop. Viene visualizzato il messaggio di errore e
            l'esecuzione del comando viene arrestata.

    -ErrorVariable [+]<nome-variabile>

        Archivia i messaggi di errore relativi al comando nella variabile
        specificata e nella variabile automatica $Error. Per ulteriori
        informazioni, digitare il comando seguente:

            get-help about_automatic_variables

        Per impostazione predefinita, i nuovi messaggi di errore
        sovrascrivono i messaggi di errore già archiviati nella
        variabile. Per aggiungere il messaggio di errore al contenuto
        della variabile, digitare un segno più (+) prima del nome della
        variabile.

        Ad esempio, il comando seguente crea la variabile $a e
        archivia in essa gli errori:

            get-process -id 6 -ErrorVariable a

        Con il comando seguente vengono aggiunti messaggi di errore alla
        variabile $a:

            get-process -id 2 -ErrorVariable +a

        Con il comando seguente viene visualizzato il contenuto di $a:

            $a

        È possibile utilizzare questo parametro per creare una
        variabile che contiene solo i messaggi di errore di comandi
        specifici. La variabile automatica $Error contiene messaggi
        di errore di tutti i comandi della sessione.
        È possibile utilizzare una notazione di matrice, ad esempio
        $a[0] o $error[1,2], per fare riferimento a errori specifici
        archiviati nelle variabili.

    -OutVariable [+]<nome-variabile>

        Archivia oggetti di output dal comando nella variabile
        specificata e vengono visualizzati sulla riga di comando.

        Per aggiungere l'output alla variabile, anziché sostituire
        l'output che potrebbe essere già presente, digitare un segno
        più (+) prima del nome della variabile.

        Ad esempio, il comando seguente crea la variabile $out e
        archivia in essa l'oggetto processo:

            get-process powershell -OutVariable out

        Con il comando seguente viene aggiunto l'oggetto processo
        alla variabile $out:

            get-process iexplore -OutVariable +out

        Nel comando seguente viene visualizzato il contenuto della
        variabile $out:

            $out

    -OutBuffer <Int32>

        Determina il numero di oggetti da accumulare in un buffer
        prima che venga inviato qualsiasi oggetto attraverso la
        pipeline. Se si omette questo parametro, gli oggetti vengono
        inviati al momento della generazione.

        Questo parametro di gestione delle risorse è progettato per
        gli utenti avanzati. Quando si utilizza questo parametro,
        Windows PowerShell non chiama il cmdlet successivo nella
        pipeline finché il numero di oggetti generati non è uguale
        a OutBuffer + 1. Successivamente, invia tutti gli oggetti
        al momento della generazione.

  Descrizioni del parametro di gestione dei rischi
    -WhatIf[:{$true | $false}]
        Visualizza un messaggio che descrive l'effetto del comando anziché
        eseguirlo.

        Il parametro WhatIf esegue l'override del valore della variabile
        $WhatIfPreference per il comando corrente. Poiché il valore
        predefinito della variabile $WhatIfPreference è 0 (disabilitata), il comportamento WhatIf non viene eseguito senza il parametro WhatIf.
        Per ulteriori informazioni, digitare il comando seguente:

            get-help about_preference_variables

        Valori validi:

            $true (-WhatIf:$true). Esercita lo stesso effetto di -
            WhatIf.
            $false (-WhatIf:$false). Elimina il comportamento
            automatico WhatIf che si verifica quando il valore della
            variabile $WhatIfPreference è 1.

        Ad esempio, il comando seguente utilizza il parametro WhatIf in un
        comando Remove-Item:

            PS> remove-item date.csv -whatif

        Anziché rimuovere l'elemento, Windows PowerShell elenca le
        operazioni che verrebbero eseguite e gli elementi su cui avrebbero
        effetto. Questo comando produce l'output seguente:

            What if: Esecuzione dell'operazione "Remove File" sulla
            destinazione "C:\ps-test\date.csv".

    -Confirm[:{$true | $false}]
        Chiede una conferma prima di eseguire il comando.

        Il parametro Confirm esegue l'override del valore della variabile
        $ConfirmPreference per il comando corrente. Il valore predefinito è
        High. Per ulteriori informazioni, digitare il comando seguente:

            get-help about_preference_variables
        Valori validi:

            $true (-WhatIf:$true). Esercita lo stesso effetto di
            -Confirm.

            $false(-Confirm:$false). Elimina la conferma automatica che si
            verifica quando il valore di $ConfirmPreference è minore o uguale al
            rischio previsto del cmdlet.

        Ad esempio, il comando seguente utilizza il parametro Confirm
        con un comando Remove-Item. Prima di rimuovere l'elemento, Windows
        PowerShell elenca le operazioni che verrebbero eseguite e gli
        elementi su cui avrebbero effetto.

            PS C:\ps-test> remove-item tmp*.txt -confirm

        Questo comando produce l'output seguente:

            Confirm
            Eseguire l'operazione?
            Esecuzione dell'operazione "Remove File" sulla
            destinazione " C:\ps-test\tmp1.txt [Y] Sì [A] Sì a tutti
            [N] No [L] No a tutti [S] Sospendi [?] Guida (il valore
            predefinito è "S"):

VEDERE ANCHE
    about_Preference_Variables
    Write-Debug
    Write-Warning
    Write-Error
    Write-Verbose


about_Comparison_Operators

ARGOMENTO
    about_Comparison_Operators

DESCRIZIONE BREVE
    Descrive gli operatori che confrontano i valori in Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    Gli operatori di confronto consentono di specificare le
    condizioni per il confronto e l'individuazione di valori che
    corrispondono a modelli specificati. Per utilizzare un operatore
    di confronto, specificare i valori da confrontare, separati
    dall'operatore.

    Per impostazione predefinita, tutti gli operatori di confronto
    non rilevano la distinzione tra maiuscole e minuscole. Per fare
    in modo che un operatore di confronto rilevi la distinzione tra
    maiuscole e minuscole, anteporre "c" al nome dell'operatore.
    Ad esempio, la versione con distinzione tra maiuscole e minuscole
    di "-eq" è "-ceq". Per rendere esplicita la mancanza di
    distinzione tra maiuscole e minuscole, anteporre "i"
    all'operatore. Ad esempio, la versione esplicitamente senza
    distinzione tra maiuscole e minuscole di "-eq" è "ieq".

    Tutti gli operatori di confronto eccetto gli operatori di
    contenimento (-contains, -notcontains) e gli operatori di tipo
    (-is, -isnot) restituiscono un valore booleano quando l'input per
    l'operatore (il valore a sinistra dell'operatore) è un valore
    singolo (valore scalare). Quando l'input è una raccolta di valori, gli
    operatori di contenimento e gli operatori di tipo restituiscono i valori
    corrispondenti. Se non sono presenti corrispondenze in una raccolta,
    questi operatori non restituiscono alcun valore. Gli operatori di
    contenimento e di tipo restituiscono sempre un valore booleano.

    In Windows PowerShell sono supportati gli operatori di confronto
    seguenti.

    -eq
      Descrizione: Uguale a. Include un valore identico.
      Esempio:

          C:\PS> "abc", "def" -eq "abc"
          abc

    -ne
      Descrizione: Diverso da. Include un valore diverso.
      Esempio:

          C:\PS> "abc", "def" -ne "abc"
          def

    -gt
      Descrizione: Maggiore di.
      Esempio:

          C:\PS> 8 -gt 6
          True

    -ge
      Descrizione: Maggiore di o uguale a.
      Esempio:

          C:\PS> 8 -ge 8
          True

    -lt
      Descrizione: Minore di.
      Esempio:

          C:\PS> 8 -lt 6
          False

    -le
      Descrizione: Minore di o uguale a.
      Esempio:

          C:\PS> 6 -le 8
          True

    -like
      Descrizione: Corrispondenza mediante il carattere jolly (*).
      Esempio:

          C:\PS> "Windows PowerShell" -like "*shell"
          True

    -notlike
      Descrizione: Nessuna corrispondenza mediante il carattere jolly (*).
      Esempio:

          C:\PS> "Windows PowerShell" -notlike "*shell"
          False

    -match
      Descrizione: Corrispondenza con una stringa mediante
                   espressioni regolari. Quando l'input è scalare, viene compilata
                   la variabile automatica $Matches.
      Esempio:

          C:\PS> "Sunday" -match "sun"
          True

          C:\PS> $matches
          Name Value
          ---- -----
          0  sun

    -notmatch
      Descrizione: Nessuna corrispondenza con una stringa. Vengono
                   utilizzate espressioni regolari.
                   Quando l'input è scalare, viene compilata la variabile
                   automatica $Matches.
      Esempio:

          C:\PS> "Sunday" -notmatch "sun"
          False

          C:\PS> $matches
          Name Value
          ---- -----
          0  sun

    -contains
      Descrizione: Operatore di contenimento. Include un valore
      identico che non fa parte di un valore. Restituisce sempre un valore
      booleano.
      Esempio:

          C:PS> "abc", "def" -contains "def"
          True

    -notcontains
      Descrizione: Operatore di contenimento. Non include un valore
      identico. Restituisce sempre un valore booleano.
      Esempio:

          C:PS> "Windows", "PowerShell" -notcontains "Shell"
          True

    -replace
      Descrizione: Operatore Replace. Modifica gli elementi
      specificati di un valore.
      Esempio:

          C:\PS> "Get-Process" -replace "Get", "Stop"
          Stop-Process

  Operatori di uguaglianza
      Gli operatori di uguaglianza (-eq, -ne) restituiscono un valore
      TRUE o le corrispondenze quando uno o più valori di input sono
      identici al modello specificato. L'intero modello deve
      corrispondere a un valore intero.

      Negli esempi seguenti viene illustrato l'effetto dell'operatore
      equal to:

          C:PS> 1,2,3 -eq 2
          2

          C:PS> "PowerShell" -eq "Shell"
          False

          C:PS> "Windows", "PowerShell" -eq "Shell"
          C:PS>

          C:\PS> "abc", "def", "123" -eq "def"
          def

  Operatori di contenimento
      Gli operatori di contenimento (-contains e -notcontains) sono
      simili agli operatori di uguaglianza. Tuttavia, tali operatori
      restituiscono sempre un valore booleano, anche quando l'input è
      una raccolta.

      Inoltre, a differenza degli operatori di uguaglianza, gli
      operatori di contenimento restituiscono un valore non appena
      viene rilevata la prima corrispondenza. Gli operatori di uguaglianza
      valutano tutto l'input, quindi restituiscono tutte le corrispondenze nella
      raccolta. Negli esempi seguenti viene illustrato l'effetto dell'operatore
      -contains:

          C:PS> 1,2,3 -contains 2
          True

          C:PS> "PowerShell" -contains "Shell"
          False

          C:PS> "Windows", "PowerShell" -contains "Shell"
          False

          C:\PS> "abc", "def", "123" -contains "def"
          True

          C:\PS> "true", "blue", "six" -contains "true"
          True

      Nell'esempio seguente viene illustrata la differenza tra gli
      operatori di contenimento e l'operatore di uguaglianza. Gli
      operatori di contenimento restituiscono il valore TRUE alla prima
      corrispondenza.

          C:\PS> 1,2,3,4,5,4,3,2,1 -eq 2
          2
          2

          C:\PS> 1,2,3,4,5,4,3,2,1 -contains 2
          True

      In una raccolta di grandi dimensioni, l'operatore -contains
      restituisce i risultati più rapidamente rispetto all'operatore di
      uguaglianza.

  Operatori di corrispondenza
      Gli operatori di corrispondenza (-match e -notmatch) trovano
      elementi che corrispondono o non corrispondono a un modello
      specificato mediante espressioni regolari.

      La sintassi è la seguente:

          <string[]> -match <espressione-regolare>
          <string[]> -notmatch <espressione-regolare>

      Negli esempi seguenti vengono illustrati alcuni utilizzi
      dell'operatore -match:

          C:\PS> "Windows", "PowerShell" -match ".shell"
          PowerShell

          C:\PS> (get-command get-member -syntax) -match "-view"
          True

          C:\PS> (get-command get-member -syntax) -notmatch "-path"
          True

          C:\PS> (get-content servers.txt) -match "^Server\d\d"
          Server01
          Server02

      Gli operatori di corrispondenza cercano solo nelle stringhe.
      Non possono effettuare ricerche in matrici di valori interi o
      in altri oggetti.

      Gli operatori -match e -notmatch compilano la variabile
      automatica $Matches quando l'input (l'argomento di sinistra)
      per l'operatore è un singolo oggetto scalare. Quando l'input è
      scalare, gli operatori -match e -notmatch restituiscono un
      valore booleano e impostano il valore della variabile
      automatica $Matches sui componenti corrispondenti dell'argomento.

      Se l'input è una raccolta, gli operatori -match e -notmatch
      restituiscono i membri corrispondenti di tale raccolta, ma non
      compilano la variabile $Matches.

      Ad esempio, nel comando seguente viene inviata una raccolta di
      stringhe all'operatore -match. L'operatore -match restituisce
      gli elementi nella raccolta corrispondente, ma non compila la
      variabile automatica $Matches.

          C:\PS> "Sunday", "Monday", "Tuesday" -match "sun"
          Sunday

          C:\PS> $matches
          C:\PS>

      Invece, nel comando seguente viene inviata una singola stringa
      all'operatore match. L'operatore -match restituisce un valore
      booleano e compila la variabile automatica $Matches.

          C:\PS> "Sunday" -match "sun"
          True

          C:\PS> $matches

          Name                           Value
          ----                           -----
          0                              Sun

      L'operatore -notmatch compila la variabile automatica $Matches
      quando l'input è scalare e il risultato è False, ovvero quando viene
      rilevata una corrispondenza.

          C:\PS> "Sunday" -notmatch "rain"
          True

          C:\PS> $matches
          C:\PS>

          C:\PS> "Sunday" -notmatch "day"
          False

          C:\PS> $matches
          C:\PS>

          Name                           Value
          ----                           -----
          0                              day

  Operatore di sostituzione
      L'operatore -replace sostituisce interamente o in parte un
      valore con il valore specificato mediante espressioni regolari.
      È possibile utilizzare l'operatore -replace per molte attività
      amministrative, ad esempio la ridenominazione di file. Nel comando
      seguente, ad esempio, vengono modificate le estensioni di tutti i
      file gif in jpg:

          Get-ChildItem | Rename-Item -NewName { $_ -replace
          '.gif$','.jpg$' }

      La sintassi dell'operatore -replace è la seguente, dove il
      segnaposto <originale> rappresenta i caratteri da sostituire e
      il segnaposto <sostitutivo> rappresenta i caratteri che li
      sostituiranno:

          <input> <operatore> <originale>, <sostitutivo>

      Per impostazione predefinita, l'operatore -replace non rileva
      la distinzione tra maiuscole e minuscole. Per fare in modo che
      la rilevi, utilizzare -creplace. Per rendere esplicita la
      mancanza di distinzione tra maiuscole e minuscole, utilizzare
      ireplace. Si considerino gli esempi seguenti:

          C:\PS> "book" -replace "B", "C"
          Cook
          C:\PS> "book" -ireplace "B", "C"
          Cook
          C:\PS> "book" -creplace "B", "C"
          book

  Operatori bit per bit
      Windows PowerShell supporta gli operatori bit per bit standard,
      inclusi gli operatori -AND bit per bit (-band) e gli operatori
      -OR bit per bit inclusivi ed esclusivi (-bor e -bxor). A
       partire da Windows PowerShell 2.0, tutti gli operatori bit per bit
       funzionano con valori interi a 64 bit.

      In Windows PowerShell sono supportati gli operatori bit per bit
      seguenti.

      Operatore  Descrizione                 Esempio
      --------   ----------------------      -------------------
      -band      AND bit per bit             C:\PS> 10 -band 3
                                             2

      -bor       OR bit per bit (inclusivo)  C:\PS> 10 -bor 3
                                             11

      -bxor      OR bit per bit (esclusivo)  C:\PS> 10 -bxor 3
                                             9

      Gli operatori bit per bit intervengono sul formato binario di
      un valore. La struttura di bit per il numero 10 è, ad esempio,
      00001010 (basata su un byte), mentre per il numero 3 è
      00000011. Se si utilizza un operatore bit per bit per
      confrontare 10 e 3, vengono confrontati i singoli bit di ogni byte.

      In un'operazione AND bit per bit, il bit risultante viene
      impostato su 1 solo quando entrambi i bit di input sono 1.

          00001010   (10)
          00000011   ( 3)
          ------------------  bAND
          00000010   ( 2)

      In un'operazione OR bit per bit (inclusiva), il bit risultante viene
      impostato su 1 quando entrambi i bit di input sono 1. Il bit
      risultante viene impostato su 0 solo quando entrambi i bit di input
      vengono impostati su 0.

          00001010   (10)
          00000011   ( 3)
          ------------------  bOR (inclusivo)
          00001011   (11)

      In un'operazione OR bit per bit (esclusiva), il bit risultante viene
      impostato su 1 solo quando un bit di input è 1.

          00001010   (10)
          00000011   ( 3)
          ------------------  bXOR (esclusivo)
          00001001   ( 9)

VEDERE ANCHE
    about_Operators
    about_Regular_Expressions
    about_Wildcards
    Compare-Object


about_Continue

ARGOMENTO
    about_Continue

DESCRIZIONE BREVE
    Descrive la modalità in cui l'istruzione Continue consente al
    flusso del programma di tornare immediatamente all'inizio del
    ciclo di un programma.

DESCRIZIONE DETTAGLIATA
    In uno script, l'istruzione Continue consente al flusso del
    programma di tornare immediatamente all'inizio del ciclo più interno
    controllato da un'istruzione For, Foreach o While.

    La parola chiave Continue supporta le etichette. Un'etichetta è
    il nome assegnato a un'istruzione in uno script. Per ulteriori
    informazioni sulle etichette, vedere about_Break.

    Nell'esempio seguente, il flusso del programma torna all'inizio
    del ciclo While se la variabile $ctr è uguale a 5. Di
    conseguenza, vengono visualizzati tutti i numeri compresi fra
    1 e 10, a esclusione del 5:

        while ($ctr -lt 10)
             {
               $ctr +=1
               if ($ctr -eq 5) {continue}
               Write-Host $ctr
             }

    Si noti che in un ciclo For l'esecuzione continua alla prima
    riga. Se gli argomenti dell'istruzione For testano un valore
    modificato dall'istruzione For, ne deriva un ciclo infinito.

VEDERE ANCHE
    about_Comparison_Operators


about_Core_Commands

ARGOMENTO
    about_Core_Commands

DESCRIZIONE BREVE
    Elenca i cmdlet progettati per l'utilizzo con i provider di Windows
    PowerShell.

DESCRIZIONE DETTAGLIATA
    Windows PowerShell include un set di cmdlet progettati
    specificatamente per la gestione degli elementi negli archivi
    dati esposti dai provider di Windows PowerShell. È possibile
    utilizzare questi cmdlet nello stesso modo per gestire tutti i
    diversi tipi di dati resi disponibili dai provider.
    Per ulteriori informazioni sui provider, digitare "get-help
    about_providers".

    Ad esempio, è possibile utilizzare il cmdlet Get-ChildItem per
    elencare i file in una directory del file system, le chiavi in
    una chiave del Registro di sistema o gli elementi esposti da un
    provider scritto o scaricato.

    Di seguito viene presentato un elenco dei cmdlet di Windows PowerShell
    progettati per l'utilizzo con i provider:

  Cmdlet ChildItem
      Get-ChildItem

  Cmdlet Content
      Add-Content
      Clear-Content
      Get-Content
      Set-Content

  Cmdlet Item
      Clear-Item
      Copy-Item
      Get-Item
      Invoke-Item
      Move-Item
      New-Item
      Remove-Item
      Rename-Item
      Set-Item

  Cmdlet ItemProperty
      Clear-ItemProperty
      Copy-ItemProperty
      Get-ItemProperty
      Move-ItemProperty
      New-ItemProperty
      Remove-ItemProperty
      Rename-ItemProperty
      Set-ItemProperty

  Cmdlet Location
      Get-Location
      Pop-Location
      Push-Location
      Set-Location

  Cmdlet Path
      Join-Path
      Convert-Path
      Split-Path
      Resolve-Path
      Test-Path

  Cmdlet PSDrive
      Get-PSDrive
      New-PSDrive
      Remove-PSDrive

  Cmdlet PSProvider
      Get-PSProvider

    Per ulteriori informazioni su un cmdlet, digitare "get-help
    <nome-cmdlet>".

VEDERE ANCHE
    about_Providers


about_Data_Sections

ARGOMENTO
    about_Data_Sections

DESCRIZIONE BREVE
    Illustra le sezioni Data in cui le stringhe di testo e altri dati
    di sola lettura vengono isolati dalla logica dello script.

DESCRIZIONE DETTAGLIATA
    Negli script progettati per Windows PowerShell possono essere
    presenti una o più sezioni Data che contengono solo dati. È possibile
    includere una o più sezioni Data in qualsiasi script, funzione o funzione
    avanzata. Il contenuto della sezione Data è limitato a un sottoinsieme
    specificato del linguaggio di script di Windows PowerShell.

    La separazione dei dati dal codice logico rende più semplice
    l'identificazione e la gestione di logica e dati. Consente di
    disporre di file di risorse di tipo stringa separati per il testo,
    ad esempio messaggi di errore e stringhe della Guida. Isola inoltre
    il codice logico che facilita i test di convalida e sicurezza.

    In Windows PowerShell, la sezione Data viene utilizzata per supportare
    l'internazionalizzazione degli script. È possibile utilizzare le
    sezioni Data per facilitare l'isolamento, l'individuazione e
    l'elaborazione di stringhe che verranno tradotte in molte lingue dell'interfaccia utente.

    La sezione Data è una funzionalità di Windows PowerShell 2.0. Gli
    script con le sezioni Data non verranno eseguiti in Windows
    PowerShell 1.0 senza revisione.

  Sintassi

    La sintassi della sezione Data è la seguente:

        DATA [-supportedCommand <nome-cmdlet>] {

            <Contenuto consentito>
        }

    La parola chiave Data è obbligatoria. Non viene applicata la
    distinzione tra maiuscole e minuscole.

    Il contenuto consentito è limitato agli elementi seguenti:

        - Tutti gli operatori di Windows PowerShell, eccetto -match
        - Le istruzioni If, Else e Elseif

    - Le variabili automatiche seguenti: $PsCulture, $PsUICulture, $True,
      $False e $Null

        - Commenti

        - Pipeline

        - Le istruzioni separate da punto e virgola (;)

        - I valori letterali, come:

            a

            1

            1,2,3

            "Windows PowerShell 2.0"

            @( "red", "green", "blue" )

            @{ a = 0x1; b = "great"; c ="script" }

            [XML] @'
             <p> Hello, World </p>
            '@

        - I cmdlet consentiti in una sezione Data. Per impostazione
          predefinita, è consentito solo il cmdlet ConvertFrom-StringData.

        - I cmdlet consentiti in una sezione Data tramite il parametro
          SupportedCommand.

    Quando si utilizza il cmdlet ConvertFrom-StringData in una
    sezione Data, è possibile racchiudere le coppie chiave/valore in
    stringhe o in stringhe here tra virgolette singole o doppie.
    Tuttavia, è necessario che le stringhe che contengono variabili e
    sottoespressioni vengano racchiuse in stringhe o stringhe here tra
    virgolette singole in modo che le variabili non vengano espanse e
    le sottoespressioni non siano eseguibili.

  SupportedCommand

      Il parametro SupportedCommand consente di indicare che un
      cmdlet o una funzione genera solo dati. È progettato per
      consentire agli utenti di includere cmdlet e funzioni in una
      sezione Data scritta o sottoposta a test.

      Il valore di SupportedCommand è un elenco di uno o più cmdlet o
      di nomi di funzione separati da virgole.

      Ad esempio, nella sezione Data seguente viene incluso un cmdlet
      scritto dall'utente, Format-XML, che formatta dati in un file XML:

      DATA -supportedCommand Format-XML
          {
             Format-XML -strings string1, string2, string3
          }

  Utilizzo di una sezione Data

      Per utilizzare il contenuto di una sezione Data, assegnarlo a una
      variabile e utilizzare la notazione della variabile per accedere al
      contenuto.

      La sezione Data seguente, ad esempio, contiene un comando
      ConvertFrom-StringData che converte la stringa here in una
      tabella hash. La tabella hash viene assegnata alla variabile
      $TextMsgs.

      La variabile $TextMsgs non fa parte della sezione Data.

          $TextMsgs = DATA {
              ConvertFrom-StringData -stringdata @'
                Text001 = Windows 7
                Text002 = Windows Server 2008 R2
         '@
          }

      Per accedere alle chiavi e ai valori nella tabella hash in
      $TextMsgs, utilizzare i comandi seguenti.

          $TextMsgs.Text001
          $TextMsgs.Text002

ESEMPI

    Stringhe di dati semplici.

        DATA {
            "Grazie per aver utilizzato lo script Windows PowerShell
            Organize.pst script". "È gratuito per la community." "Sarò felice di
            ricevere commenti e suggerimenti."
        }

    Stringhe che includono variabili consentite.

        DATA {
            if ($null) {
           "Per visualizzare la Guida relativa a questo cmdlet, digitare
           get-help new-dictionary."
            }
        }

    Stringa here racchiusa tra virgolette singole che utilizza il cmdlet
    ConvertFrom-StringData:

        DATA {
          ConvertFrom-StringData -stringdata @'
          Text001 = Windows 7
            Text002 = Windows Server 2008 R2
        '@
        }

    Stringa here racchiusa tra virgolette doppie che utilizza il cmdlet
    ConvertFrom-StringData:

        DATA {
          ConvertFrom-StringData -stringdata @"
          Msg1 = Per iniziare,
          premere un tasto qualsiasi.
            Msg2 = Per uscire, digitare "quit".
        "@
        }

    Sezione Data che include un cmdlet scritto dall'utente che genera
    dati:

    DATA -supportedCommand Format-XML {
           Format-XML -strings string1, string2, string3
        }

VEDERE ANCHE
    about_Automatic_Variables
    about_Comparison_Operators
    about_Hash_Tables
    about_If
    about_Operators
    about_Quoting_Rules
    about_Script_Internationalization
    ConvertFrom-StringData
    Import-LocalizedData


about_Debuggers

ARGOMENTO
    about_Debuggers

DESCRIZIONE BREVE
    Descrive il debugger di Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    Per debug si intende il processo attraverso il quale uno script viene
    esaminato durante la sua esecuzione allo scopo di identificare e
    correggere eventuali errori presenti nelle istruzioni. Il debugger di
    Windows PowerShell è stato progettato per consentire l'esame e
    l'identificazione degli errori e delle inefficienze eventualmente
    presenti negli script.

    Nota: il debugger di Windows PowerShell non può essere eseguito
          in modalità remota. Per eseguire il debug di uno script in un computer
          remoto, copiare lo script nel computer locale.

    È possibile utilizzare le funzionalità del debugger di Windows
    PowerShell per esaminare uno script, una funzione, un comando o
    un'espressione di Windows PowerShell durante la relativa esecuzione.
    Il debugger di Windows PowerShell include un insieme di cmdlet che
    consentono di impostare e gestire punti di interruzione e di
    visualizzare lo stack di chiamate.

    Windows PowerShell offre diversi metodi per il debug di script,
    funzioni e comandi.

    Metodo 1: il cmdlet Set-PsDebug offre funzionalità di debug di
              script di base, inclusi il debug passo passo e l'analisi.
              Per ulteriori informazioni, digitare:
              "get-help set-psdebug".

    Metodo 2: utilizzare il cmdlet Set-StrictMode per rilevare
              riferimenti a variabili non inizializzate, a riferimenti a proprietà
              inesistenti di un oggetto e a sintassi di funzioni non valida.

    Metodo 3: aggiungere istruzioni di diagnostica a uno script, ad
              esempio istruzioni per la visualizzazione del valore delle variabili,
              istruzioni per la lettura dell'input dalla riga di comando oppure
              istruzioni che segnalano l'istruzione corrente. Utilizzare i cmdlet
              che contengono il verbo Write per questa attività, ad esempio Write-Host,
              Write-Debug, Write-Warning e Write-Verbose.

    Metodo 4: utilizzare il debugger di Windows PowerShell per
              eseguire il debug di uno script. In alternativa, utilizzare il
              debugger per eseguire il debug di una funzione o di un blocco di
              script digitati al prompt dei comandi. È possibile impostare punti di
              interruzione, eseguire passo passo lo script, esaminare i valori
              delle variabili, eseguire i comandi di diagnostica e registrazione e
              visualizzare lo stack di chiamate.

  Cmdlet del debugger
      Il debugger di Windows PowerShell include l'insieme di cmdlet
      seguente:

          Set-PsBreakpoint:     imposta punti di interruzione su righe,
                                variabili e comandi.

          Get-PsBreakpoint:     ottiene punti di interruzione nella sessione
                                corrente.

          Disable-PsBreakpoint: disattiva i punti di interruzione
                                nella sessione corrente.

          Enable-PsBreakpoint:  riattiva i punti di interruzione nella
          sessione corrente.

          Remove-PsBreakpoint:  elimina i punti di interruzione dalla
          sessione corrente.

          Get-PsCallStack:      visualizza lo stack di chiamate corrente.

  Avvio e arresto del debugger
      Per avviare il debugger, impostare uno o più punti di interruzione.
      Eseguire lo script, il comando o la funzione di cui si desidera
      eseguire il debug.

      Quando si raggiunge un punto di interruzione, l'esecuzione
      viene arrestata e il controllo viene assunto dal debugger.

      Per arrestare il debugger, eseguire lo script, il comando o la
      funzione fino al relativo completamento. In alternativa,
      digitare "stop" o "t".

  Comandi del debugger
      Quando si utilizza il debugger nella console di Windows PowerShell,
      utilizzare i comandi seguenti per controllare l'esecuzione.

      Nota: per informazioni su come utilizzare il debugger in altre
          applicazioni host, vedere la documentazione dell'applicazione host.

     s, Step-into        Esegue l'istruzione successiva, quindi si arresta.

     v, Step-over        Esegue l'istruzione successiva, ma ignora
                         funzioni e chiamate. Le istruzioni ignorate
                            vengono eseguite, ma non passo passo.

     o, Step-out         Interrompe l'esecuzione della funzione
                         corrente; passa al livello successivo se
                            nidificata. Se nel corpo principale, continua
                            fino alla fine o al punto di interruzione
                            successivo. Le istruzioni ignorate vengono eseguite,
                            ma non passo passo.

     c, Continue         Continua l'esecuzione fino al completamento
                         dello script o fino al raggiungimento del punto di
                            interruzione successivo. Le istruzioni ignorate vengono
                            eseguite, ma non passo passo.

        l, List             Visualizza la parte dello script in
                            esecuzione. Per impostazione predefinita, visualizza la
                            riga corrente, le cinque righe precedenti e le 10 righe
                            successive. Per continuare a elencare lo script, premere
                            INVIO.

        l <m>, List         Visualizza 16 righe dello script a
                            partire dalla riga con il numero specificato da <m>.

        l <m> <n>, List     Visualizza <n> righe dello script, a
                            partire dalla riga con il numero specificato da <m>.

        q, Stop             Arresta l'esecuzione dello script e
                            chiude il debugger.

        k, Get-PsCallStack  Visualizza lo stack di chiamate corrente.

    <Invio>             Ripete l'ultimo comando se si trattava di
                        Step (s), Step-over (v) o List (l). In caso contrario,
                            rappresenta un'azione di invio.

    ?, h                Visualizza la Guida dei comandi del debugger.

      Per chiudere il debugger, utilizzare Stop (q).

      Con il debugger aperto, è anche possibile immettere comandi,
      visualizzare il valore delle variabili, utilizzare cmdlet ed
      eseguire script.

      Mediante questi comandi del debugger, è possibile eseguire uno
      script, arrestarsi su un punto problematico, esaminare i valori
      delle variabili e lo stato del sistema e continuare
      l'esecuzione dello script finché non viene identificato un
      problema.

  Ambiente del debugger
      Quando si raggiunge un punto di interruzione, si accede
      all'ambiente del debugger. Il prompt dei comandi cambia per
      iniziare con "[DBG]:". È possibile personalizzare il prompt.

      Inoltre, in alcune applicazioni host, ad esempio la console di
      Windows PowerShell, (ma non Windows PowerShell Integrated Scripting
      Environment [ISE]), viene aperto un prompt nidificato per il debug.
      È possibile riconoscere il prompt nidificato grazie ai caratteri
      maggiore di ripetuti (ASCII 62) che vengono visualizzati al prompt
      dei comandi.

      Di seguito viene illustrato il prompt di debug predefinito
      nella console di Windows PowerShell:

          [DBG]: PS (get-location)>>>

      È possibile trovare il livello di nidificazione mediante la
      variabile automatica $NestedPromptLevel.

      Viene inoltre definita una variabile automatica, $PSDebugContext,
      nell'ambito locale. È possibile utilizzare la presenza della variabile
      $PsDebugContext per determinare se il debugger è attualmente aperto.

      Ad esempio:

          if ($psdebugcontext) {"Debugging"} else {"Not Debugging"}

      È possibile utilizzare il valore della variabile $PSDebugContext
      nel debug.

    [DBG]: PS>>> $psdebugcontext.invocationinfo

        Name   CommandLineParameters  UnboundArguments  Location
        ----   ---------------------  ----------------  --------
        =      {}                     {}                C:\ps-test\vote.ps1 (1)

  Debug e ambito
      L'accesso al debugger non modifica l'ambito nel quale viene
      eseguito, tuttavia quando si raggiunge un punto di interruzione
      in uno script, ci si sposta nell'ambito dello script. L'ambito dello
      script è un elemento figlio dell'ambito nel quale è stato eseguito il
      debugger.

      Per trovare le variabili e gli alias definiti nell'ambito dello
      script, utilizzare il parametro Scope del cmdlet Get-Alias o
      Get-Variable.

      Ad esempio, il comando seguente ottiene le variabili
      nell'ambito locale (script):

      get-variable -scope 0

      È possibile abbreviare il comando in:

    gv -s 0

      Si tratta di un metodo utile per visualizzare unicamente le
      variabili definite nello script durante il debug.

  Esecuzione del debug alla riga di comando
      Quando si imposta un punto di interruzione variabile o un punto di
      interruzione comando, è possibile impostare il punto di interruzione
      solo in un file di script. Tuttavia, per impostazione predefinita, il
      punto di interruzione viene impostato su qualsiasi elemento venga
      eseguito nella sessione corrente.

      Ad esempio, se si imposta un punto di interruzione sulla
      variabile $name, il debugger si arresta in corrispondenza di
      qualsiasi variabile $name in qualsiasi script, comando,
      funzione, cmdlet di script o espressione eseguita finché il punto di
      interruzione non viene disabilitato o rimosso.

      In questo modo, è possibile eseguire il debug degli script in
      un contesto più realistico in cui potrebbero essere interessati da
      funzioni, variabili e da altri script nella sessione e nel profilo utente.

      Poiché i punti di interruzione riga sono specifici dei file di
      script, vengono impostati solo nei file di script.

  Esecuzione del debug di funzioni
      Quando si imposta un punto di interruzione su una funzione con
      sezioni Begin, Process e End, il debugger si arresta alla prima
      riga di ogni sezione.

      Ad esempio:

              function test-cmdlet
              {
                  begin
                  {
                      write-output "Begin"
                  }
                  process
                  {
                      write-output "Process"
                  }
                  end
                  {
                      write-output "End"
                  }
              }

          C:\PS> set-psbreakpoint -command test-cmdlet

          C:\PS> test-cmdlet

          Begin
          Entering debug mode. Use h or ? for help.

          Hit Command breakpoint on 'prompt:test-cmdlet'

          test-cmdlet

          [DBG]: C:\PS> c
          Process
          Entering debug mode. Use h or ? for help.

          Hit Command breakpoint on 'prompt:test-cmdlet'

          test-cmdlet

          [DBG]: C:\PS> c
          End
          Entering debug mode. Use h or ? for help.

          Hit Command breakpoint on 'prompt:test-cmdlet'

          test-cmdlet

          [DBG]: C:\PS>

  Esecuzione del debug di script remoti
      Non è possibile eseguire il debugger di Windows PowerShell in
      una sessione remota. Per eseguire il debug di uno script in un
      computer remoto, copiare lo script nel computer locale.

      Il comando seguente copia lo script Test.ps1 dal computer
      remoto Server01 al computer locale:

          invoke-command -computername Server01 ` {get-content c:\ps-
          test\test.ps1} | set-location c:\ps-test\test.ps1

  Esempi
      Questo script di test rileva la versione del sistema operativo e
      visualizza un messaggio appropriato. Sono inclusi una funzione, una
      chiamata di funzione e una variabile.

      Il comando seguente visualizza il contenuto del file di script
      di test:

      c:>\PS-test> get-content test.ps1

      function psversion {
             "Windows Powershell " + $psversiontable.psversion
              if ($psversiontable.psversion.major -lt 2) {
              "Upgrade to Windows PowerShell 2.0!"
              }
              else {
                  "Have you run a background job today (start-job)?"
              }
          }

      $scriptname = $MyInvocation.MyCommand.Path
      psversion
      "Done $scriptname."

      Per iniziare, impostare un punto di interruzione su un punto
      dello script di particolare interesse, ad esempio una riga, un
      comando, una variabile o una funzione.

      Creare innanzitutto un punto di interruzione riga in
      corrispondenza della prima riga dello script Test.ps1 nella
      directory corrente.

          PS C:\ps-test> set-psbreakpoint -line 1 -script test.ps1

      È possibile abbreviare il comando in:

          PS C:\ps-test> spb 1 -s test.ps1

      Il comando restituisce un oggetto punto di interruzione riga
      (System.Management.Automation.LineBreakpoint).

          Column   : 0
            Line       : 1
            Action   :
            Enabled  : True
            HitCount  : 0
            Id         : 0
            Script   : C:\ps-test\test.ps1
            ScriptName : C:\ps-test\test.ps1

      A questo punto, avviare lo script.

      PS C:\ps-test> .\test.ps1

      Quando lo script raggiunge il primo punto di interruzione, il
      messaggio relativo indica che il debugger è attivo. Descrive il
      punto di interruzione e visualizza un'anteprima della prima
      riga dello script, che consiste in una dichiarazione di funzione. Il
      prompt dei comandi cambia per indicare che il debugger ha assunto il
      controllo.

      La riga di anteprima include il nome dello script e il numero
      di riga del comando in anteprima.

          Entering debug mode. Use h or ? for help.

          Hit Line breakpoint on 'C:\ps-test\test.ps1:1'

          test.ps1:1  function psversion {
          DBG>

      Utilizzare il comando Step (s) per eseguire la prima istruzione
      nello script e per visualizzare in anteprima l'istruzione
      successiva. L'istruzione successiva utilizza la variabile automatica
      $MyInvocation per impostare il valore della variabile $ScriptName sul
      percorso e sul nome del file di script.

          DBG> s
          test.ps1:11 $scriptname = $MyInvocation.MyCommand.Path

      A questo punto, la variabile $ScriptName non è compilata, tuttavia è
      possibile verificarne il valore visualizzandolo. In questo caso, il
      valore è $null.

          DBG> $scriptname
          DBG>

      Utilizzare un altro comando Step (s) per eseguire l'istruzione
      corrente e per visualizzare in anteprima l'istruzione
      successiva nello script. L'istruzione successiva chiama la funzione
      PsVersion.

      DBG> s
      test.ps1:12 psversion

      A questo punto, la variabile $ScriptName è compilata, ma è possibile
      verificarne il valore visualizzandolo. In questo caso, il valore
      viene impostato sul percorso dello script.

          DBG> $scriptname
          C:\ps-test\test.ps1

      Utilizzare un altro comando Step per eseguire la chiamata di
      funzione. Premere INVIO oppure digitare "s" per Step.

      DBG> s
      test.ps1:2       "Windows Powershell " + $psversiontable.psversion

      Il messaggio di debug include un'anteprima dell'istruzione
      nella funzione.
      Per eseguire questa istruzione e per visualizzare in anteprima
      l'istruzione successiva nella funzione, è possibile utilizzare un
      comando Step. Tuttavia, in questo caso, utilizzare un comando
      Step-Out (o). Questo comando completa l'esecuzione della funzione
      (a meno che non venga raggiunto un punto di interruzione) e passa
      all'istruzione successiva nello script.

      DBG> o
      Windows Powershell 2.0
      Have you run a background job today (start-job)?
      test.ps1:13 "Done $scriptname"

      Poiché si è giunti all'ultima istruzione nello script, i
      comandi Step, Step-Out e Continue producono lo stesso effetto.
      In questo caso, utilizzare Step-Out (o).

      Done C:\ps-test\test.ps1
      PS C:\ps-test>

      Il comando Step-Out esegue l'ultimo comando. Il prompt dei comandi
      standard indica che il debugger è stato chiuso e che ha restituito il
      controllo al processore dei comandi.

      Eseguire nuovamente il debugger. Innanzitutto, per eliminare il
      punto di interruzione corrente, utilizzare i cmdlet
      Get-PsBreakpoint e Remove-PsBreakpoint.
      (Se si pensa di riutilizzare il punto di interruzione, utilizzare il
      cmdlet Disable-PsBreakpoint anziché Remove-PsBreakpoint.)

      PS C:\ps-test> Get-PsBreakpoint | Remove-PSBreakpoint

      È possibile abbreviare il comando in:

      PS C:\ps-test> gbp | rbp

      In alternativa, eseguire il comando scrivendo una funzione, ad
      esempio la seguente:

      function delbr { gbp | rbp }

      Creare un punto di interruzione sulla variabile $scriptname.

      PS C:\ps-test> set-psbreakpoint -variable scriptname -script test.ps1

      È possibile abbreviare il comando in:

      PS C:\ps-test> sbp -v scriptname -s test.ps1

      A questo punto, avviare lo script. Lo script raggiunge il punto di
      interruzione variabile. La modalità predefinita è Write, pertanto
      l'esecuzione viene arrestata immediatamente prima dell'istruzione che
      modifica il valore della variabile.

      PS C:\ps-test> .\test.ps1
      Hit Variable breakpoint on 'C:\ps-test\test.ps1:$scriptname'
          (Write access)

      test.ps1:11 $scriptname = $MyInvocation.mycommand.path
          DBG>

      Visualizzare il valore corrente della variabile $scriptname,
      ovvero $null.

          DBG> $scriptname
          DBG>

      Utilizzare un comando Step (s) per eseguire l'istruzione che
      compila la variabile. Visualizzare il nuovo valore della variabile
      $scriptname.

      DBG> $scriptname
      C:\ps-test\test.ps1

      Utilizzare un comando Step (s) per visualizzare in anteprima
      l'istruzione successiva nello script.

      DBG> s
      test.ps1:12 psversion

      L'istruzione successiva è una chiamata alla funzione PsVersion. Per
      ignorare la funzione ma comunque eseguirla, utilizzare un comando
      Step-Over (v). Se ci si trova già nella funzione quando si utilizza
      Step-Over, non si ottiene alcun risultato. La chiamata di funzione
      viene visualizzata, ma non eseguita.

      DBG> v
      Windows Powershell 2.0
      Have you run a background job today (start-job)?
      test.ps1:13 "Done $scriptname"

      Il comando Step-Over esegue la funzione, quindi visualizza in
      anteprima l'istruzione successiva nello script che stampa la
      riga finale.

      Utilizzare un comando Stop (t) per chiudere il debugger. Viene
      ripristinato il prompt dei comandi standard.

      C:\ps-test>

      Per eliminare i punti di interruzione, utilizzare i cmdlet Get-
      PsBreakpoint e Remove-PsBreakpoint.

      PS C:\ps-test> Get-PsBreakpoint | Remove-PSBreakpoint

      Creare un nuovo punto di interruzione comando sulla funzione
      PsVersion.

          PS C:\ps-test> Set-PsBreakpoint -command psversion -script
          test.ps1

      È possibile abbreviare questo comando come:

          PS C:\ps-test> sbp -c psversion -s test.ps1

      A questo punto, eseguire lo script.

          PS C:\ps-test> .\test.ps1
          Hit Command breakpoint on 'C:\ps-test\test.ps1:psversion'

          test.ps1:12 psversion
          DBG>

      Lo script raggiunge il punto di interruzione alla chiamata di
      funzione. A questo punto, la funzione non è ancora stata
      chiamata. In questo modo si ha l'opportunità di utilizzare il
      parametro Action di Set-PsBreakpoint per impostare condizioni per
      l'esecuzione del punto di interruzione o per svolgere attività
      preparatorie o diagnostiche, ad esempio l'avvio di un registro o la
      chiamata a uno script di diagnostica o sicurezza.

      Per impostare un'azione, utilizzare un comando Continue (c) per
      uscire dallo script e un comando Remove-PsBreakpoint per
      eliminare il punto di interruzione corrente. (Poiché i punti di
      interruzione sono in sola lettura, non è possibile aggiungere
      un'azione al punto di interruzione corrente.)

      DBG> c
      Windows PowerShell 2.0
      Have you run a background job today (start-job)?
      Done C:\ps-test\test.ps1

      PS C:\ps-test> get-psbreakpoint | remove-psbreakpoint
      PS C:\ps-test>

      Creare un nuovo punto di interruzione comando con un'azione. Il
      comando seguente imposta un punto di interruzione comando con
      un'azione che registra il valore della variabile $scriptname
      quando viene chiamata la funzione. Poiché la parola chiave
      Break non viene utilizzata nell'azione, l'esecuzione non viene
      arrestata. Il simbolo di apice inverso (`) è il carattere di
      continuazione della riga.

         PS C:\ps-test> set-psbreakpoint -command psversion -script
         test.ps1 `
         -action { add-content "The value of `$scriptname is $scriptname." `
         -path action.log}

      È inoltre possibile aggiungere azioni che impostano condizioni
      per il punto di interruzione. Nel comando seguente, il punto di
      interruzione comando viene eseguito solo se i criteri di esecuzione sono
      impostati su RemoteSigned, i criteri più restrittivi che consentono
      comunque l'esecuzione degli script. Il simbolo di apice inverso (`)
      è il carattere di continuazione.

          PS C:\ps-test> set-psbreakpoint -script test.ps1 -command psversion `

          -action { if ((get-executionpolicy) -eq "RemoteSigned") {  break }}

      La parola chiave Break nell'azione indica al debugger di
      eseguire il punto di interruzione. È inoltre possibile utilizzare la
      parola chiave Continue per indicare al debugger di procedere
      all'esecuzione senza interruzione. Poiché la parola chiave predefinita è
      Continue, è necessario specificare Break per arrestare l'esecuzione.

      A questo punto, eseguire lo script.

      PS C:\ps-test> .\test.ps1
      Hit Command breakpoint on 'C:\ps-test\test.ps1:psversion'

      test.ps1:12 psversion

      Poiché i criteri di esecuzione sono impostati su RemoteSigned,
      l'esecuzione viene arrestata alla chiamata di funzione.

      A questo punto, è necessario controllare lo stack di chiamate.
      Utilizzare il cmdlet Get-PsCallStack o il comando del debugger Get-
      PsCallStack (k). Il comando seguente ottiene lo stack di chiamate corrente.

      DBG> k
      2: prompt
      1: .\test.ps1: $args=[]
      0: prompt: $args=[]

      In questo esempio sono illustrati solo alcuni dei diversi metodi
      disponibili per l'utilizzo del debugger di Windows PowerShell.

      Per ulteriori informazioni sui cmdlet del debugger, digitare il
      comando seguente:

          help <cmdlet-name> -full

      Ad esempio, digitare:

          help set-psbreakpoint -full

VEDERE ANCHE
    Disable-PsBreakpoint
    Get-PsBreakpoint
    Remove-PsBreakpoint
    Set-PsBreakpoint
    Set-PsDebug
    Set-Strictmode
    Write-Debug
    Write-Verbose
    Enable-PsBreakpoint
    Get-PsCallStack


about_Do

ARGOMENTO
    about_Do

DESCRIZIONE BREVE
    Esegue un elenco di istruzioni una o più volte, in base a una
    condizione While o Until.

DESCRIZIONE DETTAGLIATA
    La parola chiave Do viene utilizzata con la parola chiave While o
    Until per l'esecuzione di istruzioni in un blocco di script, in
    base a una condizione. A differenza del relativo ciclo While, il
    blocco di script in un ciclo Do viene sempre eseguito almeno una
    volta.

    Un ciclo Do-While è una varietà del ciclo While. In un ciclo
    Do-While, la condizione viene valutata dopo l'esecuzione del blocco di
    script. Come in un ciclo While, il blocco di script viene ripetuto
    finché la condizione restituisce true.

    Come il ciclo Do-While, un ciclo Do-Until viene sempre eseguito
    almeno una volta prima che venga valutata la condizione.
    Tuttavia, il blocco di script viene eseguito solo mentre la
    condizione è false.

    Le parole chiave di controllo del flusso Continue e Break possono
    essere utilizzate in un ciclo Do-While o Do-Until.

  Sintassi
      Di seguito viene illustrata la sintassi dell'istruzione Do-While:

          do {<elenco istruzioni>} while (<condizione>)

      Di seguito viene illustrata la sintassi dell'istruzione Do-Until:

          do {<elenco istruzioni>} until (<condizione>)

      L'elenco di istruzioni contiene una o più istruzioni che
      vengono eseguite ogni volta che il ciclo viene immesso o ripetuto.

      La parte dell'istruzione relativa alla condizione restituisce i
      valori true o false.

  Esempio
      Nell'esempio seguente di un'istruzione Do vengono contati gli
      elementi in una matrice finché non viene raggiunto un elemento
      con il valore 0.

          C:\PS> $x = 1,2,78,0
          C:\PS> do { $count++; $a++; } while ($x[$a] -ne 0)
          C:\PS> $count
          3

      Nell'esempio seguente viene utilizzata la parola chiave Until.
      Si noti che l'operatore diverso da (-ne) viene sostituito
      dall'operatore di uguaglianza (-eq).

          C:\PS> $x = 1,2,78,0
          C:\PS> do { $count++; $a++; } until ($x[$a] -eq 0)
          C:\PS> $count
          3

      Nell'esempio seguente vengono scritti tutti i valori di una matrice,
      ignorando qualsiasi valore minore di zero.

          do
          {
              if ($x[$a] -lt 0) { continue }
              Write-Host $x[$a]
          }
          while (++$a -lt 10)

VEDERE ANCHE
    about_While
    about_Operators
    about_Assignment_Operators
    about_Comparison_Operators
    about_Break
    about_Continue


about_Environment_Variables

ARGOMENTO
    about_Environment_Variables

DESCRIZIONE BREVE
    Descrive come accedere alle variabili di ambiente di Windows in
    Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    Nelle variabili di ambiente vengono archiviate informazioni
    sull'ambiente del sistema operativo. Queste informazioni
    includono elementi come il percorso del sistema operativo, il
    numero di processori utilizzati dal sistema operativo e il
    percorso delle cartelle temporanee.

    Nelle variabili di ambiente vengono archiviati i dati utilizzati
    dal sistema operativo e da altri programmi. La variabile di
    ambiente WINDIR, ad esempio, contiene il percorso della directory
    di installazione di Windows. I programmi possono eseguire una
    query relativa al valore di questa variabile per determinare il
    percorso dei file del sistema operativo Windows.

    Windows PowerShell consente di visualizzare e modificare le
    variabili di ambiente di Windows, incluse le variabili impostate
    nel Registro di sistema e quelle impostate per una determinata
    sessione. Il provider di ambiente di Windows PowerShell
    semplifica questo processo rendendo semplice la visualizzazione e
    la modifica delle variabili di ambiente.

    A differenza di altri tipi di variabili in Windows PowerShell, le
    variabili di ambiente e i relativi valori vengono ereditati dai
    sessioni figlio, ad esempio i processi in background locali e le
    sessioni in cui vengono eseguiti i membri di modulo. Ciò rende le
    variabili di ambiente particolarmente indicate per l'archiviazione
     di valori necessari nelle sessioni padre e figlio.

  Provider di ambiente di Windows PowerShell
      Il provider di ambiente di Windows PowerShell consente di
      accedere alle variabili di ambiente di Windows in Windows
      PowerShell in un'unità di Windows PowerShell (l'unità Env:).
      Questa unità è molto simile a un'unità del file system. Per
      passare all'unità Env:, digitare:

      set-location env:

      Quindi, per visualizzare il contenuto dell'unità Env:, digitare:

      get-childitem

      È possibile visualizzare le variabili di ambiente nell'unità
      Env: da qualsiasi altra unità di Windows PowerShell ed è
      possibile passare all'unità Env: per visualizzare e modificare
      le variabili di ambiente.

  Oggetti variabile di ambiente
      In Windows PowerShell ogni variabile di ambiente è
      rappresentata da un oggetto che costituisce un'istanza della classe
      System.Collections.DictionaryEntry.

      In ciascun oggetto DictionaryEntry, il nome della variabile di
      ambiente corrisponde alla chiave di dizionario. Il valore della
      variabile corrisponde al valore di dizionario.

      Per visualizzare una variabile di ambiente in Windows
      PowerShell, ottenere un oggetto che rappresenta la variabile,
      quindi visualizzare i valori delle proprietà dell'oggetto.
      Quando si modifica una variabile di ambiente in Windows
      PowerShell, utilizzare i metodi associati all'oggetto
      DictionaryEntry.

      Per visualizzare le proprietà e i metodi dell'oggetto che
      rappresenta una variabile di ambiente in Windows PowerShell,
      utilizzare il cmdlet Get-Member.
      Per visualizzare, ad esempio, i metodi e le proprietà di tutti
      gli oggetti nell'unità Env:, digitare:

      get-item -path env:* | get-member

  Visualizzazione delle variabili di ambiente
      È possibile utilizzare i cmdlet che contengono il nome Item
      (cmdlet Item) per visualizzare e modificare i valori delle
      variabili di ambiente. Poiché le variabili di ambiente non
      contengono elementi figlio, l'output di Get-Item è lo stesso di
      quello di Get-ChildItem.

      Quando si fa riferimento a una variabile di ambiente, digitare
      il nome dell'unità Env: seguito dal nome della variabile. Per
      visualizzare, ad esempio, il valore della variabile di ambiente
      COMPUTERNAME, digitare:

      get-childitem env:computername

      Per visualizzare i valori di tutte le variabili di ambiente,
      digitare:

      get-childitem env:

      Per impostazione predefinita, in Windows PowerShell le
      variabili di ambiente vengono visualizzate nell'ordine in cui
      vengono recuperate. Per ordinare l'elenco in base al nome delle
      variabili, reindirizzare l'output di un comando Get-ChildItem
      al cmdlet Sort-Object. Da qualsiasi unità di Windows PowerShell
      digitare ad esempio:

      get-childitem env: | sort name

      È inoltre possibile passare all'unità Env: tramite il cmdlet
      Set-Location:

      set-location env:

      Quando ci si trova nell'unità Env:, è possibile omettere il
      nome di tale unità dal percorso. Per visualizzare, ad esempio,
      tutte le variabili di ambiente, digitare:

      get-childitem

      Per visualizzare il valore della variabile COMPUTERNAME
      dall'unità Env:, digitare:

      get-childitem computername

      È inoltre possibile visualizzare e modificare i valori delle
      variabili di ambiente senza utilizzare un cmdlet tramite il
      parser di espressioni di Windows PowerShell. Per visualizzare
      il valore di una variabile di ambiente, utilizzare la sintassi
      seguente:

      $env:<nome-variabile>

      Per visualizzare, ad esempio, il valore della variabile di
      ambiente WINDIR, al prompt dei comandi di Windows PowerShell
      digitare il comando seguente:

      $env:windir

      In questa sintassi il segno di dollaro ($) indica una
      variabile, mentre il nome dell'unità indica una variabile di
      ambiente.

  Modifica delle variabili di ambiente
      Per apportare una modifica permanente a una variabile di
      ambiente, utilizzare Sistema nel Pannello di controllo (la
      scheda Avanzate o l'elemento Impostazioni di sistema avanzate)
      per salvare la modifica nel Registro di sistema.

      Le modifiche apportate alle variabili di ambiente in Windows
      PowerShell hanno effetto solo nella sessione corrente. Questo
      comportamento è analogo a quello del comando Set in ambienti
      basati su Windows e a quello del comando Setenv in ambienti
      basati su UNIX.

      È necessario disporre delle autorizzazioni per la modifica dei
      valori delle variabili. Se si tenta di modificare un valore
      senza disporre di autorizzazioni sufficienti, il comando ha
      esito negativo e in Windows PowerShell viene visualizzato un errore.

      È possibile modificare i valori delle variabili senza
      utilizzare un cmdlet tramite la sintassi seguente:

          $env:<nome-variabile> = "<nuovo-valore>"

      Per aggiungere, ad esempio, ";c:\tesp" al valore della
      variabile di ambiente Path, utilizzare la sintassi seguente:

      $env:path = $env:path + ";c:\temp"

      È inoltre possibile utilizzare i cmdlet Item, ad esempio
      Set-Item, Remove-Item e Copy-Item per modificare i valori delle
      variabili di ambiente. Ad esempio, per utilizzare il cmdlet
      Set-Item per aggiungere ";c:\tesp" al valore della variabile di
      ambiente Path, utilizzare la sintassi seguente:

          set-item -path env:path -value ($env:path + ";c:\temp")

      In questo comando il valore è racchiuso tra parentesi affinché
      venga interpretato come elemento unico.

  Salvataggio delle modifiche apportate alle variabili di ambiente
      Per creare o modificare il valore di una variabile di ambiente
      in ogni sessione di Windows PowerShell, aggiungere la modifica
      al profilo di Windows PowerShell.

      Per aggiungere, ad esempio, la directory C:\Temp alla variabile
      di ambiente Path in ogni sessione di Windows PowerShell,
      aggiungere il comando seguente al profilo di Windows PowerShell.

      $env:path = $env:path + ";c:\temp"

      Per aggiungere il comando a un profilo esistente, ad esempio il
      profilo CurrentUser,AllHosts, digitare:

      add-content -path $profile.CurrentUserAllHosts -value '$env:path =
      $env:path + ";c:\temp"'

  Variabili di ambiente in cui sono archiviate le preferenze
      Le funzionalità di Windows PowerShell possono utilizzare le
      variabili di ambiente per archiviare le preferenze dell'utente.
      Queste variabili funzionano in modo analogo alle variabili di
      preferenza, ma vengono ereditate dalle sessioni figlio delle
      sessioni in cui vengono create. Per ulteriori informazioni
      sulle variabili di preferenza, vedere about_preference_variables.

      Variabili di ambiente in cui sono archiviate le preferenze
      includono:

        PSModulePath
            Archivia i percorsi delle directory dei moduli
            predefinite. Windows PowerShell cerca i moduli nelle
            directory specificate quando non si specifica il percorso
            completo di un modulo.

            Il valore predefinito di $env:PSModulePath è:

                $home\Documents\WindowsPowerShell\Modules;
                $pshome\Modules

            Windows PowerShell imposta il valore di "$pshome\Modules"
            nel Registro di sistema.
            Il valore di "$home\Documents\WindowsPowerShell\Modules"
            viene impostato ogni volta che si avvia Windows PowerShell.

            Inoltre, i programmi di installazione che installano
            moduli in altre directory, ad esempio nella directory
            Programmi, aggiungono i relativi percorsi al valore di
            PSModulePath.

            Per modificare le directory dei moduli predefinite,
            modificare il valore della variabile di ambiente PSModulePath.

            Per aggiungere, ad esempio, la directory "C:\ps-test\Modul
            es" al valore della variabile di ambiente PSModulePath,
            digitare:

                $env:PSModulePath = $env:PSModulePath +
                ";c:\ps-test\Modules"

            Il punto e virgola (;) nel comando separa il nuovo
            percorso dal percorso che lo precede nell'elenco.

            Le modifiche influiscono solo sulla sessione corrente a
            meno che non si sia aggiunto un comando che modifichi il
            valore al profilo o non si utilizzi Sistema nel Pannello
            di controllo per modificare il valore della variabile di
            ambiente PSModulePath nel Registro di sistema.

            Per ulteriori informazioni, vedere about_Modules.

VEDERE ANCHE
    Environment (provider)


about_Escape_Characters

ARGOMENTO
    about_Escape_Characters

DESCRIZIONE BREVE
    Presenta il carattere di escape in Windows PowerShell e ne
    illustra gli effetti.

DESCRIZIONE DETTAGLIATA
    I caratteri di escape vengono utilizzati per assegnare una particolare
    interpretazione ai caratteri che li seguono.

    In Windows PowerShell, il carattere di escape è l'apice inverso
    (`), noto anche come accento grave (ASCII 96). Il carattere di
    escape può essere utilizzato per indicare un valore letterale, la
    continuazione della riga e caratteri speciali.

  Indicazione di un valore letterale
      Quando un carattere di escape precede una variabile, impedisce
      che un valore sia il sostituto della variabile. Quando un
      carattere di escape precede una virgoletta doppia, Windows
      PowerShell interpreta la virgoletta doppia come un carattere,
      non come un delimitatore di stringa.

      Ad esempio:

          C:\>$a = 5
          C:\>"Il valore viene archiviato in $a".
          Il valore viene archiviato in 5.

          C:\>$a = 5
          C:\>"Il valore viene archiviato in `$a".
          Il valore viene archiviato in $a.

          C:\> "Utilizzare le virgolette (") per indicare una stringa".
          Token ')' imprevisto nell'espressione o nell'istruzione.
          At line:1 char:25
          + "Utilizzare le virgolette (") <<<< per indicare una stringa".

          C:\> "Utilizzare le virgolette (`") per indicare una stringa".
          Utilizzare le virgolette (") per indicare una stringa.

  Indicazione della continuazione della riga
      Il carattere di escape indica a Windows PowerShell che il
      comando continua sulla riga successiva.

      Ad esempio:

          C:\> get-process `
          >> powershell

       Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
          -------  ------    -----      ----- -----   ------     -- -----------
              340       8    34556      31864   149     0.98   2036 powershell

  Indicazione di caratteri speciali
      Se utilizzato tra virgolette, il carattere di escape indica un
      carattere speciale che fornisce istruzioni al parser del comando.

      I caratteri speciali seguenti sono riconosciuti da Windows
      PowerShell:

          `0  Null
          `a  Avviso
          `b  Backspace
          `f  Avanzamento carta
          `n  Nuova riga
          `r  Ritorno a capo
          `t  Tabulazione orizzontale
          `v  Tabulazione verticale

      Ad esempio:

          C:\> "12345678123456781`nCol1`tColonna2`tCol3"
          12345678123456781
          Col1  Colonna2 Col3

      Per ulteriori informazioni, digitare:

          get-help about_special_characters

VEDERE ANCHE
    about_Quoting_Rules


about_Eventlogs

ARGOMENTO
    about_EventLogs

DESCRIZIONE BREVE
    Windows PowerShell crea un registro eventi di Windows denominato
    "Windows PowerShell" per registrare gli eventi di Windows
    PowerShell. È possibile visualizzare questo registro in Visualizzatore
    eventi o tramite cmdlet che ottengono eventi, ad esempio il cmdlet
    Get-EventLog. Per impostazione predefinita, gli eventi del provider e
    del modulo di Windows PowerShell vengono registrati nel registro eventi,
    tuttavia è possibile utilizzare le variabili di preferenza del
    registro eventi per personalizzare il registro eventi. Ad esempio, è
    possibile aggiungere eventi relativi ai comandi di Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    Il registro eventi di Windows PowerShell registra i dettagli
    relativi alle operazioni di Windows PowerShell, ad esempio l'avvio e
    l'arresto del modulo del programma e dei provider di Windows PowerShell.
    È inoltre possibile registrare i dettagli relativi ai comandi di Windows
    PowerShell.

    In Windows Vista e versioni successive, il registro eventi di Windows
    PowerShell è nel gruppo Registri dei servizi e applicazione. Il
    registro di Windows PowerShell è un registro eventi classico che non
    utilizza la tecnologia Windows Eventing. Per visualizzare il registro,
    utilizzare i cmdlet progettati per i registri eventi classici, ad
    esempio Get-EventLog.

  Visualizzazione del registro eventi di Windows PowerShell

      È possibile visualizzare il registro eventi di Windows PowerShell in
      Visualizzatore eventi o tramite i cmdlet Get-EventLog e Get-WmiObject.
      Per visualizzare i contenuti del registro di Windows PowerShell, digitare:

      get-eventlog -logname "Windows PowerShell"

      Per esaminare gli eventi e le relative proprietà, utilizzare il
      cmdlet Sort-Object, il cmdlet Group-Object e quelli che
      contengono il verbo Format (cmdlet Format).

      Per visualizzare, ad esempio, gli eventi del registro
      raggruppate in base all'ID evento, digitare:

      get-eventlog "Windows PowerShell" | format-table -groupby eventid

      Oppure:

      get-eventlog "Windows PowerShell" | sort-object eventid `
      | group-object eventid

      Per visualizzare tutti i registri eventi classici, digitare:

      get-eventlog -list

      È inoltre possibile utilizzare il cmdlet Get-WmiObject per
      utilizzare le classi di Strumentazione gestione Windows (WMI)
      relative all'evento per esaminare il registro eventi.
      Ad esempio, per visualizzare tutte le proprietà del file del
      registro eventi, digitare:

      get-wmiobject win32_nteventlogfile | where `
            {$_.logfilename -eq "Windows PowerShell"} | format-list -property *

      Per trovare le classi WMI relative all'evento Win32, digitare:

    get-wmiobject -list | where {$_.name -like "win32*event*"}

      Per ulteriori informazioni, digitare "get-help get-eventlog" e
      "get-help get-wmiobject".

  Selezione di eventi per il registro eventi di Windows PowerShell

      È possibile utilizzare le variabili di preferenza del registro
      eventi per determinare gli eventi che vengono registrati nel
      registro eventi di Windows PowerShell.

      Esistono sei variabili di preferenza del registro eventi; due
      variabili per ciascuno dei tre componenti di registrazione: il
      modulo (il programma di Windows PowerShell), i provider e i
      comandi. Le variabili LifeCycleEvent registrano gli eventi di
      avvio e di arresto normali. Le variabili Health registrano gli
      eventi di errore.

      Nella tabella seguente viene fornito un elenco delle variabili di
      preferenza del registro eventi.

          Variable                     Descrizione
          --------------------------   ----------------------------------------

      $LogEngineLifeCycleEvent     Registra l'avvio e l'arresto di Windows
      PowerShell.

      $LogEngineHealthEvent        Registra gli errori del programma
      di Windows PowerShell.

      $LogProviderLifeCycleEvent   Registra l'avvio e l'arresto dei
                                   provider di Windows PowerShell.

      $LogProviderHealthEvent      Registra gli errori dei provider di Windows
                                   PowerShell.

      $LogCommandLifeCycleEvent    Registra l'avvio e il completamento dei
                                   comandi.

      $LogCommandHealthEvent       Registra gli errori dei comandi.

      (Per informazioni sui provider di Windows PowerShell,
      digitare: "get-help about_providers").

      Per impostazione predefinita, vengono abilitati solo i tipi di
      evento seguenti:

      $LogEngineLifeCycleEvent
      $LogEngineHealthEvent
      $LogProviderLifeCycleEvent
      $LogProviderHealthEvent

      Per abilitare un tipo di evento, impostare la variabile di
      preferenza per tale tipo di evento su $true. Per abilitare, ad
      esempio, eventi del ciclo di vita del comando, digitare:

      $LogCommandLifeCycleEvent

      Oppure:

      $LogCommandLifeCycleEvent = $true

      Per disabilitare un tipo di evento, impostare la variabile di
      preferenza per tale tipo di evento su $false. Per disabilitare,
      ad esempio, eventi del ciclo di vita del comando, digitare:

      $LogProviderLifeCycleEvent = $false

      Le impostazioni di variabile sono valide solo per la sessione
      di Windows PowerShell corrente. Per applicarle a tutte le
      sessioni di Windows PowerShell, aggiungerle al profilo di Windows
      PowerShell.

  Sicurezza e controllo

      Il registro eventi di Windows PowerShell viene progettato per
      indicare l'attività e fornire dettagli operativi utili alla
      risoluzione dei problemi.

      Tuttavia, come la maggior parte dei registri eventi delle
      applicazioni basate su Windows, il registro eventi di Windows
      PowerShell non è progettato per essere protetto. Non deve essere
      utilizzato per controllare la sicurezza o registrare informazioni
      riservate o di proprietà riservata.

      I registri eventi sono progettati per essere letti e compresi
      dagli utenti. Gli utenti possono leggere dal registro e
      scrivere in esso. Un utente malintenzionato potrebbe leggere un
      registro eventi in un computer locale o remoto, registrare dati
      falsi e impedire quindi la registrazione delle attività.

VEDERE ANCHE
    Get-EventLog
    Get-WmiObject
    about_Preference_Variables


about_Execution_Policies

ARGOMENTO
    about_Execution_Policies

DESCRIZIONE BREVE
    Descrive i criteri di esecuzione di Windows PowerShell e la relativa
    modalità di gestione.

DESCRIZIONE DETTAGLIATA
    I criteri di esecuzione di Windows PowerShell consentono di
    determinare le condizioni in base alle quali vengono caricati i
    file di configurazione ed eseguiti gli script in Windows PowerShell.

    È possibile impostare i criteri di esecuzione per il computer
    locale, per l'utente corrente o per una determinata sessione. È
    inoltre possibile utilizzare un'impostazione dei Criteri di gruppo per
    impostare i criteri di esecuzione di computer e utenti.

    I criteri di esecuzione per il computer locale e l'utente
    corrente vengono archiviati nel Registro di sistema. Non è necessario
    impostare i criteri di esecuzione nel profilo di Windows PowerShell.
    I criteri di esecuzione per una determinata sessione vengono
    archiviati solo nella memoria e vengono persi alla chiusura della
    sessione.

    I criteri di esecuzione non rappresentano un sistema di sicurezza
    che limita le azioni dell'utente.
    Gli utenti possono, ad esempio, aggirare facilmente un criterio
    digitando il contenuto dello script nella riga di comando quando non è
    possibile eseguire uno script. Al contrario, i criteri di esecuzione
    aiutano agli utenti a impostare le regole di base e impediscono di
    violarle in modo accidentale.

 CRITERI DI ESECUZIONE DI WINDOWS POWERSHELL
 -------------------------------------

    I criteri di esecuzione di Windows PowerShell sono i seguenti:

    "Restricted" è il criterio predefinito.

        Restricted
            - Criterio di esecuzione predefinito.

            - Consente l'esecuzione di singoli comandi, ma non di script.

            - Impedisce l'esecuzione di tutti i file di script,
              inclusi i file di formattazione e configurazione
              (ps1xml), i file script del modulo (psm1) e i profili
              di Windows PowerShell (ps1).

        AllSigned
            - Consente l'esecuzione di script.

            - Richiede che tutti gli script e i file di
              configurazione siano firmati da un autore attendibile,
              inclusi gli script creati nel computer locale.

            - Chiede conferma all'utente prima di eseguire script da
              autori non ancora classificati come attendibili o non
              attendibili.

            - Comporta il rischio di eseguire script non firmati da
              origini diverse da Internet e script firmati, ma dannosi.

        RemoteSigned
            - Consente l'esecuzione di script.

            - Non richiede la firma digitale di un autore attendibile
              sugli script e sui file di configurazione scaricati da
              Internet, inclusi quelli scaricati da programmi di posta
              elettronica e di messaggistica immediata.

            - Non richiede firme digitali su script eseguiti e scritti sul
              computer locale (non scaricati da Internet).

            - Comporta il rischio di eseguire script firmati, ma dannosi.

        Unrestricted
            - Consente l'esecuzione di script non firmati. Comporta
              il rischio di eseguire script dannosi.

            - Avvisa l'utente prima di eseguire script e file di
              configurazione scaricati da Internet.

        Bypass
            - Non viene bloccato alcun elemento e non vengono visualizzati
              avvisi o prompt.

            - Questi criteri di esecuzione sono progettati per le
              configurazioni in cui uno script di Windows PowerShell viene
              compilato in un'applicazione di dimensioni maggiori o in cui
              Windows PowerShell è la base per un programma che dispone
              di un proprio modello di sicurezza.

        Undefined
            - Nell'ambito corrente non vi sono criteri di esecuzione
              impostati.

            - Se il criterio di esecuzione in tutti gli ambiti è
              Undefined, il criterio di esecuzione effettivo è Restricted,
              ovvero il criterio di esecuzione predefinito.

    Nota: nei sistemi in cui non viene fatta distinzione tra i
          percorsi UNC (Universal Naming Convention) e i percorsi Internet,
          l'esecuzione degli script identificati da un percorso UNC potrebbe
          non essere consentita con il criterio di esecuzione RemoteSigned.

 AMBITO DEI CRITERI DI ESECUZIONE
 ----------------------
    È possibile impostare criteri di esecuzione effettivi solo in un
    determinato ambito.

    I valori validi per Scope sono Process, CurrentUser e LocalMachine.
    LocalMachine è l'impostazione predefinita durante l'impostazione dei
    criteri di esecuzione.

    I valori di Scope sono elencati nell'ordine di precedenza.

        - Process
             I criteri di esecuzione influiscono solo sulla sessione
             corrente (processo corrente di Windows PowerShell). I
             criteri di esecuzione vengono archiviati nella variabile di
             ambiente $PSExecutionPolicyPreference. Questo valore viene
             eliminato alla chiusura della sessione in cui vengono impostati i
             criteri.

        - CurrentUser
             I criteri di esecuzione influiscono solo sull'utente
             corrente. Vengono archiviati nella sottochiave del
             Registro di sistema HKEY_CURRENT_USER.

        - LocalMachine
             I criteri di esecuzione influiscono su tutti gli utenti del
             computer corrente. Vengono archiviati nella sottochiave del
             Registro di sistema HKEY_LOCAL_MACHINE.

    Il criterio che ha la precedenza è effettivo nella sessione
    corrente, anche se è stato impostato un criterio più restrittivo a un
    livello inferiore di precedenza.

    Per ulteriori informazioni, vedere Set-ExecutionPolicy.

 OTTENERE I CRITERI DI ESECUZIONE
 ------------------------------
    Per ottenere i criteri di esecuzione di Windows PowerShell che si
    trovano di fatto nella sessione corrente, utilizzare il cmdlet Get-
    ExecutionPolicy.

    Con il comando seguente viene ottenuto il criterio di esecuzione
    corrente:

    get-executionpolicy

    Per ottenere tutti i criteri di esecuzione che influiscono sulla
    sessione corrente e visualizzarli in ordine di precedenza, digitare:

        get-executionpolicy -list

    Il risultato sarà simile all'esempio di output seguente:

                  Scope    ExecutionPolicy
                  -----    ---------------
          MachinePolicy          Undefined
             UserPolicy          Undefined
                Process          Undefined
            CurrentUser       RemoteSigned
           LocalMachine          AllSigned

    In questo caso, il criterio di esecuzione effettivo è
    RemoteSigned perché il criterio di esecuzione per l'utente
    corrente ha la precedenza sui criteri di esecuzione impostati per il
    computer locale.
    Per ottenere il criterio di esecuzione impostato per un
    determinato ambito, utilizzare il parametro Scope di
    Get-ExecutionPolicy.

    Il comando seguente, ad esempio, consente di ottenere il criterio di
    esecuzione per l'ambito utente corrente.

        get-executionpolicy -scope CurrentUser

 MODIFICA DEL CRITERIO DI ESECUZIONE
 ------------------------------
    Per modificare i criteri di esecuzione di Windows PowerShell nel
    computer, utilizzare il cmdlet Set-ExecutionPolicy.

    La modifica è immediatamente valida; non è necessario riavviare
    Windows PowerShell.

    Se si impostano i criteri di esecuzione per il computer locale
    (impostazione predefinita) o l'utente corrente, la modifica viene
    salvata nel Registro di sistema e rimane valida finché non verrà
    nuovamente modificata.

    Se i criteri di esecuzione vengono impostati per il processo
    corrente, non vengono salvati nel Registro di sistema. Vengono
    mantenuti finché il processo corrente ed eventuali processi figlio non
    vengono chiusi.

    Nota: in Windows Vista e nelle versioni successive di Windows,
          per eseguire comandi che modificano i criteri di esecuzione per
          il computer locale (impostazione predefinita), avviare Windows
          PowerShell con l'opzione "Esegui come amministratore".

    Per modificare il criterio di esecuzione, digitare:

        Set-ExecutionPolicy <nome-criterio>

    Ad esempio:

        Set-ExecutionPolicy RemoteSigned

    Per impostare i criteri di esecuzione in un determinato ambito,
    digitare:

        Set-ExecutionPolicy <nome-criterio> -scope <ambito>

    Ad esempio:

        Set-ExecutionPolicy RemoteSigned -scope CurrentUser

    Un comando per la modifica dei criteri di esecuzione può avere esito
    positivo ma non modificare ancora i criteri di esecuzione effettivi.

    Ad esempio, un comando che consente di impostare i criteri di
    esecuzione per il computer locale può avere esito positivo ma i
    criteri di esecuzione per l'utente corrente possono avere la
    precedenza su di essi.

 RIMOZIONE DEL CRITERIO DI ESECUZIONE
 ----------------------------
    Per rimuovere il criterio di esecuzione per un determinato
    ambito, impostare il valore dei criteri di esecuzione su Undefined.

    Per rimuovere ad esempio i criteri di esecuzione per tutti gli
    utenti del computer locale, digitare:

        set-executionpolicy Undefined

    Oppure:

        set-executionpolicy Undefined -scope LocalMachine

    Se non viene impostato alcun criterio di esecuzione in alcun
    ambito, il criterio di esecuzione effettivo è Restricted, ovvero
    l'impostazione predefinita.

 IMPOSTARE UN CRITERIO DI ESECUZIONE IN POWERSHELL.EXE
 -----------------------------------------
    È possibile utilizzare il parametro ExecutionPolicy di
    PowerShell.exe per impostare un criterio di esecuzione per una nuova
    sessione di Windows PowerShell.
    Il criterio influisce solo sulla sessione corrente e sulle
    sessioni figlio.

    Per impostare i criteri di esecuzione per una nuova sessione, avviare
    Windows PowerShell sulla riga di comando (ad esempio Cmd.exe o Windows
    PowerShell), quindi utilizzare il parametro ExecutionPolicy di
    PowerShell.exe per impostare i criteri di esecuzione.

    Ad esempio:

    powershell.exe -executionpolicy -allsigned

    I criteri di esecuzione impostati non sono archiviati nel Registro di
    sistema.
    Vengono invece archiviati nella variabile di ambiente
    $PSExecutionPolicyPreference. La variabile viene eliminata quando si
    chiude la sessione in cui vengono impostati i criteri.

    Durante la sessione, il criterio di esecuzione impostato per la
    sessione ha la precedenza su un criterio di esecuzione impostato nel
    Registro di sistema per il computer locale o l'utente corrente.
    Tuttavia, non ha la precedenza sui criteri di esecuzione impostati
    tramite un'impostazione dei Criteri di gruppo (argomento illustrato di seguito).

 UTILIZZARE CRITERI DI GRUPPO PER GESTIRE I CRITERI DI ESECUZIONE
 -------------------------------------------
    È possibile utilizzare l'impostazione dei Criteri di gruppo relativa
    all'attivazione dell'esecuzione degli script per gestire i criteri di
    esecuzione dei computer dell'organizzazione. L'impostazione dei Criteri
    di gruppo esegue l'override dei criteri di esecuzione impostati in Windows
    PowerShell in tutti gli ambiti.

    Le impostazioni dei criteri relativi all'attivazione
    dell'esecuzione degli script sono le seguenti:

    -- Se si disattiva l'impostazione relativa all'attivazione
       dell'esecuzione degli script, gli script non vengono eseguiti. Ciò
       equivale al criterio di esecuzione "Restricted".

    -- Se si attiva l'impostazione relativa all'attivazione
       dell'esecuzione degli script, è possibile selezionare un
       criterio di esecuzione. Le impostazioni dei Criteri di gruppo sono
       equivalenti alle impostazioni dei criteri di esecuzione seguenti.

        Criteri di gruppo                Criteri di esecuzione
        ------------                     ----------------
        Consente tutti gli script.       Unrestricted

        Consente gli script locali

        e gli script firmati remoti.

        RemoteSigned Consente solo
        gli script firmati.              AllSigned

           -- Se l'impostazione relativa all'attivazione
              dell'esecuzione degli script non è configurata, non ha
              effetto. Il criterio di esecuzione impostato in Windows
              PowerShell è valido.

    Il file PowerShellExecutionPolicy.adm aggiunge il criterio relativo
    all'attivazione dell'esecuzione degli script ai nodi Configurazione
    computer e Configurazione utente nell'Editor dei criteri di gruppo
    nei percorsi seguenti.

        Per Windows XP e Windows Server 2003:
        Modelli amministrativi\Componenti di Windows\Windows PowerShell

        Per Windows Vista e versioni successive di Windows:
        Modelli amministrativi\Modelli amministrativi classici\Compone
        nti di Windows\Windows PowerShell

    I criteri impostati nel nodo Configurazione computer hanno la
    precedenza sui criteri impostati nel nodo Configurazione utente.

    Il file PowerShellExecutionPolicy.adm è disponibile nell'Area download
    Microsoft. Per ulteriori informazioni, vedere l'argomento relativo ai
    modelli amministrativi per Windows PowerShell all'indirizzo
    http://go.microsoft.com/fwlink/?LinkId=131786 (le informazioni
    potrebbero essere in lingua inglese).

 PRECEDENZA DEI CRITERI DI ESECUZIONE
 ---------------------------
    Durante la determinazione dei criteri di esecuzione effettivi per una
    sessione, Windows PowerShell valuta i criteri di esecuzione nell'ordine di
    precedenza seguente:

        - Criteri di gruppo: Configurazione computer
        - Criteri di gruppo: Configurazione utente
        - Criteri di esecuzione: Process (o PowerShell.exe ExecutionPolicy)
        - Criteri di esecuzione: CurrentUser
        - Criteri di esecuzione: LocalMachine

 GESTIONE DI SCRIPT FIRMATI E NON FIRMATI
 ----------------------------------
    Se il criterio di esecuzione di Windows PowerShell è RemoteSigned, gli
    script non firmati scaricati da Internet, inclusi quelli scaricati da
    programmi di posta elettronica e di messaggistica immediata, non
    verranno eseguiti.

    È possibile firmare lo script o scegliere di eseguire uno script
    non firmato senza modificare i criteri di esecuzione.

    Per ulteriori informazioni, vedere about_Signing.

VEDERE ANCHE
    Get-ExecutionPolicy
    Set-ExecutionPolicy
    about_Signing
    Argomento relativo ai modelli amministrativi per Windows PowerShell
    all'indirizzo http://go.microsoft.com/fwlink/?LinkId=131786
    (le informazioni potrebbero essere in lingua inglese)


about_For

ARGOMENTO
    about_For

DESCRIZIONE BREVE
    Descrive un comando del linguaggio che è possibile utilizzare per
    eseguire istruzioni in base a un test condizionale.

DESCRIZIONE DETTAGLIATA
    L'istruzione For, nota anche come ciclo For, è un costrutto del
    linguaggio che è possibile utilizzare per la creazione di un ciclo che
    esegue i comandi di un blocco di comandi per tutto il tempo in cui una
    condizione specifica restituisce il valore true.

    Un tipico utilizzo del ciclo For consiste nello scorrere una
    matrice di valori e operare su un sottoinsieme di tali valori.
    Nella maggior parte dei casi, se si desidera scorrere tutti i
    valori in una matrice, potrebbe essere preferibile utilizzare
    un'istruzione Foreach.

  Sintassi
      Di seguito viene illustrata la sintassi dell'istruzione For.

          for (<inizializzazione>; <condizione>; <ripetizione>)
          {<elenco di istruzioni>}

      Il segnaposto <inizializzazione> rappresenta uno o più comandi,
      separati da virgole, eseguiti prima dell'inizio del ciclo. La parte
      <inizializzazione> dell'istruzione viene in genere utilizzata per creare e
      inizializzare una variabile con un valore iniziale.

      Tale variabile costituirà quindi la base per la condizione da
      verificare nella parte successiva dell'istruzione For.

      Il segnaposto <condizione> rappresenta la parte dell'istruzione For
      che restituisce un valore booleano true o false. In Windows
      PowerShell la condizione viene valutata a ogni esecuzione del
      ciclo For. Se l'istruzione restituisce true, vengono eseguiti i
      comandi inclusi nel blocco di comandi, quindi l'istruzione
      viene valutata di nuovo. Se l'istruzione restituisce ancora
      true, vengono nuovamente eseguiti i comandi inclusi nell'elenco di
      istruzioni. Il ciclo viene ripetuto fino a quando la condizione non
      risulta false.

      Il segnaposto <ripetizione> rappresenta uno o più comandi,
      separati da virgole, eseguiti a ogni ripetizione del ciclo.
      In genere, questa parte viene utilizzata per modificare una
      variabile verificata nella parte <condizione> dell'istruzione.

      Il segnaposto <elenco istruzioni> rappresenta un set di uno o
      più comandi che vengono eseguiti ogni volta che il ciclo viene immesso o
      ripetuto. Il contenuto dell'elenco di istruzioni è racchiuso
      tra parentesi graffe.

  Esempi
      Un'istruzione For deve essere almeno costituita dalle parti
      <inizializzazione>, <condizione> e <ripetizione> racchiuse tra
      parentesi e da un comando tra parentesi graffe all'interno della
      parte <elenco istruzioni>.

      Nei primi esempi tra quelli seguenti il codice è stato aggiunto di
      proposito esternamente all'istruzione For. Negli esempi successivi il
      codice è integrato all'interno dell'istruzione for.

      Nell'istruzione For seguente, ad esempio, viene ripetutamente
      visualizzato il valore della variabile $i fino a quando non si
      interrompe manualmente l'esecuzione del comando premendo CTRL+C.

          $i = 1
          for (;;){Write-Host $i}

      È possibile aggiungere ulteriori comandi all'elenco di
      istruzioni affinché il valore di $i venga incrementato di 1 a ogni
      esecuzione del ciclo, come illustrato nell'esempio seguente:

          for (;;){$i++; Write-Host $i}

      Fino a quando non si interrompe l'esecuzione del comando
      premendo CTRL+C, l'istruzione visualizzerà ripetutamente il
      valore della variabile $i a ogni incremento di 1 conseguente a ogni
      esecuzione del ciclo.

      Anziché modificare il valore della variabile nella parte <elenco
      istruzioni> dell'istruzione For, è possibile utilizzare la parte
      <ripetizione> come segue.

          $i=1
          for (;;$i++){Write-Host $i}

      Questa istruzione viene eseguita in modo continuo fino a quando
      non si interrompe manualmente l'esecuzione del comando premendo
      CTRL+C.

      Impostando una condizione, tramite la parte <condizione>
      dell'istruzione For, è possibile terminare il ciclo For quando la
      condizione restituisce false. Nell'esempio seguente il ciclo For
      viene eseguito per tutto il tempo in cui il valore di $i è minore o
      uguale a 10.

          $i=1
          for(;$i -le 10;$i++){Write-Host $i}

      Anziché creare e inizializzare la variabile esternamente
      all'istruzione For, è possibile eseguire questa operazione
      all'interno del ciclo For utilizzando la parte <inizializzazione>
      dell'istruzione.

          for($i=1; $i -le 10; $i++){Write-Host $i}

      È possibile utilizzare ritorni a capo, anziché punti e virgola, per
      delimitare le parti <inizializzazione>, <condizione> e <ripetizione>
      dell'istruzione For. Nell'esempio seguente viene illustrata la sintassi
      dell'istruzione For in questo formato alternativo.

            for (<inizializzazione>
          <condizione>
          <ripetizione>){
          <elenco istruzioni>
          }

      Tale formato alternativo dell'istruzione For può essere
      utilizzato nei file script e nel prompt dei comandi di Windows
      PowerShell. È tuttavia più semplice utilizzare la sintassi
      dell'istruzione For nel formato con i punti e virgola quando si
      immettono comandi interattivi al prompt dei comandi.

      Il ciclo For è più flessibile del ciclo Foreach, in quanto
      consente di incrementare i valori in una matrice o un insieme
      tramite l'utilizzo di criteri. Nell'esempio seguente la
      variabile $i viene incrementata di 2 nella parte <ripetizione>
      dell'istruzione for.

          for ($i = 0; $i -ile 20; $i += 2) {Write-Host $i}

VEDERE ANCHE
    about_Comparison_Operators
    about_Foreach


about_Foreach

ARGOMENTO
    about_Foreach

DESCRIZIONE BREVE
    Descrive un comando del linguaggio che è possibile utilizzare per
    attraversare tutti gli elementi in una raccolta di elementi.

DESCRIZIONE DETTAGLIATA
    L'istruzione Foreach, nota anche come ciclo Foreach, è un
    costrutto del linguaggio che consente di passare attraverso una
    serie di valori in una raccolta di elementi.

    Il tipo di insieme più semplice e comune da attraversare è la matrice.
    In un ciclo Foreach, vengono in genere eseguiti uno o più comandi
    su ogni elemento di una matrice.

  Sintassi
      Di seguito viene illustrata la sintassi dell'istruzione Foreach:

          foreach ($<elemento> in $<raccolta>){<elenco istruzioni>}

  Istruzione Foreach esterna a una pipeline di comandi La parte
  dell'istruzione Foreach racchiusa tra parentesi rappresenta una
  variabile e una raccolta da scorrere. In Windows PowerShell, la
  variabile ($<elemento>) viene creata automaticamente al momento
  dell'esecuzione del ciclo Foreach. Prima di ogni iterazione del ciclo, la
  variabile viene impostata su un valore dell'insieme. Il blocco {<elenco
  istruzioni>} che segue l'istruzione Foreach contiene un set di comandi da
  eseguire su ogni elemento di una raccolta.

  Esempi
      Ad esempio, il ciclo Foreach riportato di seguito consente di
      visualizzare i valori della matrice $letterArray.

          $letterArray = "a","b","c","d"
          foreach ($letter in $letterArray)
          {
              Write-Host $letter
          }

      In questo esempio, la matrice $letterArray viene creata e
      inizializzata con i valori stringa "a", "b", "c" e "d". Alla prima
      esecuzione dell'istruzione Foreach, la variabile $letter viene
      impostata su un valore uguale al primo elemento della matrice
      $letterArray ("a"). Quindi, viene utilizzato il cmdlet Write-Host
      per visualizzare la lettera a. Al ciclo successivo, la variabile
      $letter viene impostata su "b" e così via. Dopo la visualizzazione
      della lettera d, il ciclo Foreach viene chiuso.

      Si noti che l'intera istruzione Foreach deve trovarsi su una
      singola riga per poter essere eseguita come comando al prompt
      dei comandi di Windows PowerShell. Al contrario, non è
      necessario che l'intera istruzione Foreach si trovi su una
      singola riga se il comando viene inserito in un file di script con
      estensione ps1.

      Le istruzioni Foreach possono essere utilizzate anche con i
      cmdlet che restituiscono una raccolta di elementi. Nell'esempio
      seguente l'istruzione Foreach scorre l'elenco degli elementi
      restituiti dal cmdlet Get-ChildItem.

          foreach ($file in Get-ChildItem)
          {
              Write-Host $file
          }

      L'esempio può essere perfezionato mediante un'istruzione If che
      limiti il risultato restituito. Nell'esempio seguente
      l'istruzione Foreach esegue la stessa operazione ciclica
      dell'esempio precedente, ma con l'aggiunta di un'istruzione If
      che limita il risultato ai file di dimensioni maggiori di 100
      kilobyte (KB):

          foreach ($file in Get-ChildItem)
          {
              if ($file.length -gt 100k)
              {
                  Write-Host $file
              }
          }

      Nel ciclo Foreach di questo esempio viene utilizzata una
      proprietà della variabile $file per eseguire un'operazione di
      confronto ($file.length -gt 100k). Nella variabile $file sono
      contenute tutte le proprietà dell'oggetto restituito dal cmdlet Get-
      ChildItem. È pertanto possibile ottenere più di un semplice nome file.
      Nell'esempio seguente, vengono restituite la lunghezza e l'ora dell'ultimo
      accesso nell'elenco di istruzioni:

          foreach ($file in Get-ChildItem)
          {
              if ($file.length -gt 100k)
              {
                  Write-Host $file
                  Write-Host $file.length
                  Write-Host $file.lastaccesstime
              }
          }

      In questo esempio, non ci si limita all'esecuzione di un
      singolo comando in un elenco di istruzioni.

      È inoltre possibile utilizzare una variabile esterna a un ciclo
      Foreach e incrementare la variabile all'interno del ciclo stesso.
      Nell'esempio seguente vengono contati i file di dimensioni maggiori a
100 KB:

          $i = 0
          foreach ($file in Get-ChildItem)
          {
              if ($file.length -gt 100k)
              {
                  Write-Host $file "file size:" ($file.length /
                  1024).ToString("F0") KB
                  $i = $i + 1
              }
          }

          if ($i -ne 0)
          {
              Write-Host
              Write-Host $i " file con dimensioni maggiori di 100 KB nella
          directory corrente".}
          else
          {
              Write-Host "Nessun file con dimensioni maggiori di 100
          KB nella directory corrente".
          }

      Nell'esempio precedente, la variabile $i viene impostata su 0
      all'esterno del ciclo e viene incrementata all'interno del ciclo per
      ciascun file individuato con dimensioni maggiori di 100 KB. Alla
      chiusura del ciclo, l'istruzione If valuta il valore di $i per
      visualizzare il conteggio di tutti i file con dimensioni maggiori di
      100 KB. In alternativa, viene visualizzato un messaggio che segnala
      l'impossibilità di trovare file con dimensioni maggiori di 100 KB.

      L'esempio precedente mostra anche come formattare il risultato della
      lunghezza dei file:

          ($file.length / 1024).ToString("F0")

      Il valore viene diviso per 1.024 in modo da visualizzare il
      risultato in kilobyte anziché in byte. Il valore risultante
      viene poi formattato mediante l'identificatore di formato a
      virgola fissa per rimuovere i valori decimali dal risultato.
      Con la cifra 0 l'identificatore di formato non visualizza
      alcuna cifra decimale.

  Istruzione Foreach interna a una pipeline di comandi Se Foreach è
      presente in una pipeline di comandi, Windows PowerShell utilizza
      l'alias foreach che chiama il comando ForEach-Object. Se si include
      l'alias foreach in una pipeline di comandi, non utilizzare la sintassi
      ($<elemento> in $<insieme>) come invece avviene con l'istruzione
      Foreach, in quanto tali informazioni vengono fornite dal primo
      comando della pipeline. La sintassi dell'alias foreach se utilizzato
      in una pipeline di comandi è la seguente:

          <comando> | foreach {<blocco_comandi>}

      Ad esempio, il ciclo Foreach nella pipeline di comandi seguente
      consente di visualizzare i processi il cui working set
      (utilizzo della memoria) è maggiore di 20 megabyte (MB). Windows
      PowerShell trasferisce lungo la pipeline l'output del comando Get-Process
      all'alias foreach. La variabile $_.WS, che si trova all'interno del
      blocco di comandi dell'alias foreach, contiene il valore della
      proprietà WS (working set) passato dal cmdlet Get-Process. La parte
      $_ della dichiarazione è una variabile automatica WSH mentre la parte
      WS è una proprietà. L'istruzione If utilizza un'istruzione
      condizionale per stabilire se il working set è maggiore di 20 MB
      (20.000.000 byte). In tal caso, vengono visualizzati il nome del processo
      archiviato nella variabile $_.name e le dimensioni in megabyte del
      working set. Se nessun working set è maggiore di 20 MB, non viene
      visualizzato nulla.

          Write-Host "Processi con working set maggiori di 20 MB"
          Get-Process | foreach {
              if ($_.WS -gt 20m)
              {
                  Write-Host $_.name ": "
          ($_.WS/1m).ToString("F0") MB -Separator ""
              }
          }

      L'alias foreach supporta anche i blocchi di comandi iniziale,
      intermedio e finale. I blocchi di comandi iniziale e finale vengono
      eseguiti una sola volta mentre il blocco di comandi intermedio viene
      eseguito ogni volta che il ciclo Foreach attraversa una raccolta o
      una matrice.

      La sintassi dell'alias foreach se utilizzato in una pipeline di
      comandi con blocchi di comandi iniziale, intermedio e finale è
      la seguente:

          <comando> | foreach {<blocco_comandi_iniziale>}{<blocco_comandi_
          intermedio>}{<blocco_coman di_finale>}

      Nell'esempio seguente viene illustrato l'utilizzo dei blocchi
      di comandi iniziale, intermedio e finale.

          Get-ChildItem | foreach {
          $fileCount = $directoryCount = 0}{
          if ($_.PsIsContainer) {$directoryCount++} else
          {$fileCount++}}{ "directory $directoryCount e file $fileCount"}

      Il blocco iniziale crea e inizializza due variabili su 0:

          {$fileCount = $directoryCount = 0}

      Il blocco intermedio valuta se ciascun elemento restituito da Get-
      ChildItem è una directory o un file:

          {if ($_.PsIsContainer) {$directoryCount++} else {$fileCount++}}

      Se l'elemento restituito è una directory, la variabile
      $directoryCount viene incrementata di 1. Se l'elemento non è
      una directory, la variabile $fileCount viene incrementata di 1.
      Il blocco finale viene eseguito dopo che il blocco intermedio ha
      completato l'operazione ciclica, quindi vengono restituiti i risultati
      dell'operazione:

          {"directory $directoryCount e file $fileCount"}

      L'esempio precedente può essere riscritto come segue, utilizzando la
      struttura dei blocchi di comandi iniziale, intermedio e finale nonché
      l'operatore pipeline, per individuare i file con dimensioni maggiori
      di 100 KB:

          Get-ChildItem | foreach{
              $i = 0}{
              if ($_.length -gt 100k)
              {
                  Write-Host $_.name "file size:" ($_.length /
                  1024).ToString("F0") KB
                  $i++
              }
              }{
              if ($i -ne 0)
              {
                  Write-Host
                  Write-Host "$i file con dimensioni maggiori di 100
                  KB nella directory corrente".
              }
              else
              {
              Write-Host "Nessun file con dimensioni maggiori di 100
              KB nella directory corrente".}
              }

VEDERE ANCHE
    about_Automatic_Variables
    about_If
    Foreach-Object


about_Format.ps1xml

ARGOMENTO
    about_Format.ps1xml

DESCRIZIONE BREVE
    I file Format.ps1xml in Windows PowerShell definiscono la
    visualizzazione predefinita degli oggetti nella console Windows
    PowerShell. È possibile creare file Format.ps1xml per modificare
    la visualizzazione di oggetti o definire visualizzazioni
    predefinite per i nuovi tipi di oggetti che si creano in Windows
    PowerShell.

DESCRIZIONE DETTAGLIATA
    I file Format.ps1xml in Windows PowerShell definiscono la
    visualizzazione predefinita degli oggetti in Windows PowerShell.
    È possibile creare file Format.ps1xml per modificare la
    visualizzazione di oggetti o definire visualizzazioni predefinite
    per i nuovi tipi di oggetti che si creano in Windows PowerShell.

    Quando Windows PowerShell visualizza un oggetto, utilizza i dati
    nei file di formattazione strutturati per determinare la
    visualizzazione predefinita dell'oggetto. I dati nei file di
    formattazione determinano se viene eseguito il rendering
    dell'oggetto in una tabella o in un elenco, e determina quali
    proprietà vengono visualizzate per impostazione predefinita.

    La formattazione influisce solo sulla visualizzazione. Non
    influisce su quali proprietà dell'oggetto vengono passate alla
    pipeline o su come vengono passate.

    Windows PowerShell include sette file di formattazione. Questi
    file si trovano nella directory di installazione ($pshome). Ogni
    file definisce la visualizzazione di un gruppo di oggetti
    Microsoft .NET Framework:

    Certificate.Format.ps1xml
            Oggetti nell'archivio certificati, ad esempio certificati
            X.509 e archivi certificati.

    DotNetTypes.Format.ps1xml
            Altri tipi .NET Framework, quali CultureInfo,
            FileVersionInfo e oggetti EventLogEntry.

    FileSystem.Format.ps1xml
            Oggetti del file system, ad esempio file e directory.

    Help.Format.ps1xml
            Visualizzazioni della guida, ad esempio visualizzazioni
            dettagliate e complete, parametri ed esempio.

    PowerShellCore.format.ps1xml
            Oggetti generati dai cmdlet principali di Windows
            PowerShell, quali Get-Member e Get-History.

    PowerShellTrace.format.ps1xml
            Oggetti di analisi, ad esempio quelli generati dal cmdlet
            Trace-Command.

    Registry.format.ps1xml
            Oggetti del Registro di sistema, ad esempio chiavi e voci.

    Un file di formattazione può definire quattro visualizzazioni
    diverse di ogni oggetto: tabella, elenco, estesa e complessa. Ad
    esempio, quando l'output di un comando Get-ChildItem viene
    indirizzato a un comando Format-List, Format-List utilizza la
    visualizzazione nel file FileSystem.format.ps1xml per determinare
    come visualizzare gli oggetti file e cartella come un elenco.

    Nel file Format.ps1xml, una visualizzazione viene definita da un
    set di tag XML che descrivono il nome della visualizzazione, il
    tipo di oggetto a cui può essere applicata, le intestazioni di
    colonna e le proprietà visualizzate nel corpo della
    visualizzazione. Il formato nei file Format.ps1xml è applicato
    immediatamente prima che i dati vengano presentati all'utente.

  Creazione di nuovi file Format.ps1xml

      I file .ps1xml installati con Windows PowerShell sono firmati
      digitalmente per impedirne l'alterazione poiché la
      formattazione può includere blocchi di script. Pertanto, per
      modificare il formato di visualizzazione di una visualizzazione
      dell'oggetto esistente o aggiungere visualizzazioni per i nuovi
      oggetti, creare file Format.ps1xml, quindi aggiungerli alla
      sessione di Windows PowerShell.

      Per creare un nuovo file, copiare un file Format.ps1xml
      esistente. Il nuovo file può avere qualsiasi nome ma deve avere
      estensione .ps1xml. È possibile inserire il nuovo file in
      qualsiasi directory accessibile a Windows PowerShell, ma è
      consigliabile inserirlo nella directory di installazione
      ($pshome) di Windows PowerShell o in una sottodirectory della
      directory di installazione.

      Per modificare la formattazione di una visualizzazione
      corrente, individuare la visualizzazione nel file di
      formattazione, quindi utilizzare i tag per modificare la
      visualizzazione. Per creare una visualizzazione per un nuovo
      tipo di oggetto, creare una nuova visualizzazione o utilizzare
      una visualizzazione esistente come modello. I tag vengono
      descritti nella sezione successiva di questo argomento. È
      quindi possibile eliminare tutte le altre visualizzazioni nel
      file in modo che le modifiche risultino ovvie a chiunque
      esamini il file.

      Dopo aver salvato le modifiche, utilizzare il cmdlet
      Update-FormatData per aggiungere il nuovo file alla sessione di
      Windows PowerShell. Se si desidera che la visualizzazione abbi
      la precedenza su una visualizzazione definita nei file
      predefiniti, utilizzare il parametro PrependData del cmdlet
      Update-FormatData. Update-FormatData ha effetto solo sulla
      sessione corrente. Per apportare la modifica a tutte le
      sessioni future di Windows PowerShell, aggiungere il comando
      Update-FormatData al profilo di Windows PowerShell.

  Esempio: aggiunta di dati di calendario agli oggetti cultura

      In questo esempio viene mostrato come modificare la
      formattazione degli oggetti cultura (System.Globalization.Cultur
      eInfo) generati dal cmdlet Get-Culture.
      I comandi nell'esempio aggiungono la proprietà Calendar alla
      visualizzazione della vista tabella predefinita degli oggetti
      cultura.

      Il primo passaggio è trovare il file Format.ps1xml che contiene
      la visualizzazione corrente degli oggetti cultura. Il comando
      Select-String seguente trova il file:

      select-string -path $pshome\*format.ps1xml ` pattern
      System.Globalization.CultureInfo

      Questo comando rivela che la definizione si trova nel file
      DotNetTypes.Format.ps1xml.

      Il comando successiva copia il contenuto del file in un nuovo file,
      MyDotNetTypes.Format.ps1xml.

      copy-item DotNetTypes.Format.ps1xml MyDotNetTypes.Format.ps1xml

      Quindi, apre il file MyDotNetTypes.Format.ps1xml in un editor
      XML o di testo, quale Blocco note. Trovare la sezione dell'oggetto
      System.Globalization.CultureInfo. Il codice XML seguente definisce le
      visualizzazioni dell'oggetto CultureInfo.
      L'oggetto dispone solo di una visualizzazione TableControl.

<View>
          <Name>System.Globalization.CultureInfo</Name>
          <ViewSelectedBy>
             <TypeName>Deserialized.System.Globalization.CultureInfo</TypeName>
             <TypeName>System.Globalization.CultureInfo</TypeName>
          </ViewSelectedBy>

          <TableControl>
              <TableHeaders>
                  <TableColumnHeader>
                      <Width>16</Width>
                  </TableColumnHeader>
                  <TableColumnHeader>
                      <Width>16</Width>
                  </TableColumnHeader>
                  <TableColumnHeader/>
              </TableHeaders>
              <TableRowEntries>
                  <TableRowEntry>
                      <TableColumnItems>
                          <TableColumnItem>
                              <PropertyName>LCID</PropertyName>
                          </TableColumnItem>
                          <TableColumnItem>
                              <PropertyName>Name</PropertyName>
                          </TableColumnItem>
                          <TableColumnItem>
                              <PropertyName>DisplayName</PropertyName>
                          </TableColumnItem>
                      </TableColumnItems>
                  </TableRowEntry>
               </TableRowEntries>
          </TableControl>
      </View>

      Eliminare la parte restante del file, tranne i tag di apertura
      <?XML>, <Configuration> e <ViewDefinitions> e i tag di chiusura
      <ViewDefintions> e <Configuration>. È anche necessario eliminare la
      firma digitale quando si modifica il file.

<?xml version="1.0" encoding="utf-8" ?>
      <Configuration>
          <ViewDefinitions>
              <View>
                  <Name>System.Globalization.CultureInfo</Name>
                  <ViewSelectedBy>
                      <TypeName>Deserialized.System.Globalization.CultureInfo</TypeName>
                      <TypeName>System.Globalization.CultureInfo</TypeName>
                  </ViewSelectedBy>

                  <TableControl>
                      <TableHeaders>
                          <TableColumnHeader>
                              <Width>16</Width>
                          </TableColumnHeader>
                          <TableColumnHeader>
                              <Width>16</Width>
                          </TableColumnHeader>
                          <TableColumnHeader/>
                      </TableHeaders>
                      <TableRowEntries>
                          <TableRowEntry>
                              <TableColumnItems>
                                  <TableColumnItem>
                                      <PropertyName>LCID</PropertyName>
                                  </TableColumnItem>
                                  <TableColumnItem>
                                      <PropertyName>Name</PropertyName>
                                  </TableColumnItem>
                                  <TableColumnItem>
                                      <PropertyName>DisplayName</PropertyName>
                                  </TableColumnItem>
                              </TableColumnItems>
                          </TableRowEntry>
                       </TableRowEntries>
                  </TableControl>
              </View>
          </ViewDefinitions>
      </Configuration>

      Successivamente, creare una nuova colonna per la proprietà
      Calendar aggiungendo un nuovo set di tag <TableColumnHeader>.
      Il valore della proprietà Calendar può essere
      long, in questo caso viene utilizzato un valore di 45
      caratteri, come illustrato di seguito:

                  <TableControl>
                    <TableHeaders>
                        <TableColumnHeader>
                            <Width>16</Width>
                        </TableColumnHeader>
                        <TableColumnHeader>
                            <Width>16</Width>
                        </TableColumnHeader>

                        <TableColumnHeader>
                            <Width>45</Width>
                        </TableColumnHeader>

                        <TableColumnHeader/>
                    </TableHeaders>

      A questo punto, aggiungere un nuovo elemento colonna, come segue:

                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>LCID</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>

                            <TableColumnItem>
                                <PropertyName>Calendar</PropertyName>
                            </TableColumnItem>

                            <TableColumnItem>
                                <PropertyName>DisplayName</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                 </TableRowEntries>

      Dopo aver salvato e chiuso il file, utilizzare un comando
      Update-FormatData, come il seguente, per aggiungere il nuovo
      file di formato alla sessione corrente. Il comando utilizza il
      parametro PrependData per inserire il nuovo file in un ordine
      di precedenza maggiore al file precedente. Per ulteriori
      informazioni su Update-FormatData, digitare: "get-help
      update-formatdata".

      update-formatdata -prependpath $pshome\MyDotNetTypes.format.ps1xml

      Per verificare la modifica, digitare "get-culture", quindi
      rivedere l'output che include la proprietà Calendar.

      C:\PS> get-culture

      LCID Name  Calendar                               DisplayName
      ---- ----  --------                               -----------
      1033 en-US System.Globalization.GregorianCalendar English
      (United States)

  Codice XML nei file Format.ps1xml

      La sezione ViewDefinitions di ogni file Format.ps1xml contiene
      i tag <View> che definiscono ogni visualizzazione. In genere,
      un tag <View> contiene i tag seguenti:

          <Name>
              Il tag <Name> identifica il nome della visualizzazione.

          <ViewSelectedBy>
              Il tag <ViewSelectedBy> specifica il tipo o i tipi di
              oggetto a
              cui si applica la visualizzazione.

          <GroupBy>
              Il tag <GroupBy> specifica come gli elementi della
              visualizzazione vengono
              combinati in gruppi.

          <TableControl>
          <ListControl>
          <WideControl>
          <ComplexControl>
              Questi tag contengono i tag che specificano come ogni
              elemento sarà visualizzato.

      Il tag <ViewSelectedBy> può contenere un tag <TypeName> per
      ogni tipo di oggetto a cui la visualizzazione si applica. In
      alternativa, può contenere un tag <SelectionSetName> che fa
      riferimento a un set di selezioni definito in un'altra
      posizione utilizzando un tag <SelectionSet>.

      Il tag <GroupBy> contiene un tag <PropertyName> che specifica
      la proprietà dell'oggetto in base a cui devono essere
      raggruppati gli elementi. Questo tag include inoltre un tag
      <Label> che specifica una stringa da utilizzare come etichetta
      per ogni gruppo oppure un tag <ComplexControlName> che fa
      riferimento a un controllo complesso definito in un'altra
      posizione utilizzando un tag <Control>. Il tag <Control>
      contiene un tag <Name> e un tag <ComplexControl>.

      Il tag <TableControl> contiene in genere i tag <TableHeaders> e
      <TableRowEntries> che definiscono la formattazione delle righe
      e delle intestazioni della tabella. Il tag <TableHeaders>
      contiene in genere il tag <TableColumnHeader> che contiene i
      tag <Label>, <Width> e <Alignment>. Il tag <TableRowEntries>
      contiene tag <TableRowEntry> per ogni riga della tabella. Il
      tag <TableRowEntry> contiene un tag <TableColumnItems> che
      contiene un tag <TableColumnItem> per ogni colonna della riga.
      In genere, il tag <TableColumnItem> contiene un tag
      <PropertyName> che identifica la proprietà dell'oggetto da
      visualizzare nella posizione definita oppure un tag
      <ScriptBlock> che contiene codice di script che consente di
      calcolare un risultato da visualizzare nella posizione.

      Nota: i blocchi di script possono essere utilizzati anche in
      altre posizioni in cui i risultati calcolati possono essere utili.

      Il tag <TableColumnItem> può contenere anche un tag
      <FormatString> che specifica come verranno visualizzati i
      risultati calcolati o la proprietà.

      Il tag <ListControl> in genere contiene un tag <ListEntries>.
      Il tag <ListEntries> contiene un tag <ListItems>. Il tag
      <ListItems> contiene tag <ListItem> che contengono tag
      <PropertyName>. I tag <PropertyName> specificano la proprietà
      dell'oggetto da visualizzare nella posizione specificata
      nell'elenco. Se la visualizzazione è definita mediante un set
      di selezioni, il tag <ListControl> può anche contenere un tag
      <EntrySelectedBy> che contiene uno o più tag <TypeName>. Questi
      tag <TypeName> specificano il tipo di oggetto che il tag
      <ListControl> deve visualizzare.

      Il tag <WideControl> in genere contiene un tag <WideEntries>.
      Il tag <WideEntries> contiene uno o più tag <WideEntry>. Un tag
      <WideEntry> contiene in genere un tag <PropertyName> che
      specifica la proprietà da visualizzare nella posizione della
      visualizzazione specificata. Il tag <PropertyName> può
      contenere anche un tag <FormatString> che specifica come devono
      essere visualizzati i risultati calcolati o la proprietà.

      Il tag <ComplexControl> contiene combinazioni più complesse di
      tag rispetto ad altri tipi di visualizzazioni. Un tag
      <ComplexControl> contiene in genere un tag <ComplexEntries>. Un tag
      <ComplexEntries> contiene più tag <ComplexEntry>. Un tag
      <ComplexEntry> contiene in genere un tag <ComplexItem>. Questo tag, a
      sua volta, può contenere vari tag che specificano il contenuto e la
      formattazione per la posizione della visualizzazione specificata,
      inclusi i tag <Text>, <Indentation>, <ExpressionBinding> e <NewLine>.

  Update-FormatData

      Per caricare i file Format.ps1xml in una sessione di Windows
      PowerShell, utilizzare il cmdlet Update-FormatData. Se si
      desidera che le visualizzazioni nel file abbiano la precedenza sulle
      visualizzazioni nel file Format.ps1xml predefinito, utilizzare il
      parametro PrependData di Update-FormatData. Update-FormatData ha
      effetto solo sulla sessione corrente. Per apportare la modifica a
      tutte le sessioni future di Windows PowerShell, aggiungere il comando
      Update-FormatData al profilo di Windows PowerShell.

  Visualizzazioni predefinite in Types.ps1xml

      Le visualizzazioni predefinite dei tipi di oggetti di base sono
      definite nel file Types.ps1xml nella directory $pshome. I nodi
      sono denominati PsStandardMembers e i nodi secondari utilizzano
      uno dei tag seguenti:

          <DefaultDisplayProperty>
          <DefaultDisplayPropertySet>
          <DefaultKeyPropertySet>

      Per ulteriori informazioni, digitare il comando seguente:

      get-help about_types.ps1xml

  Analisi dell'utilizzo del file Format.ps1xml

      Per rilevare errori nel caricamento o nell'applicazione dei
      file Format.ps1xml, utilizzare il cmdlet Trace-Command con
      qualsiasi dei componenti di formato seguenti come valore del
      parametro Name:

      FormatFileLoading
          UpdateFormatData
          FormatViewBinding

      Per ulteriori informazioni, digitare i comandi seguenti:

          get-help trace-command
          get-help get-tracesource

  Firma di un file Format.ps1xml

      Per proteggere gli utenti del file Format.ps1xml, è possibile
      firmare il file utilizzando una firma digitale. Per ulteriori
      informazioni, digitare:

          get-help about_signing

VEDERE ANCHE
    Update-FormatData
    Trace-Command
    Get-TraceSource


about_Functions

ARGOMENTO
    about_Functions

DESCRIZIONE BREVE
    Descrive come creare e utilizzare le funzioni in Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    Per funzione si intende un elenco di istruzioni a cui è stato
    assegnato un nome. Quando si esegue una funzione, se ne digita il
    nome. Le istruzioni incluse nell'elenco vengono eseguite come se
    fossero state digitate al prompt dei comandi.

    Analogamente ai cmdlet, le funzioni possono disporre di
    parametri. I parametri possono essere denominati, posizionali,
    opzionali o dinamici. I parametri delle funzioni possono essere
    letti dalla riga di comando o dalla pipeline.

    Le funzioni possono restituire valori che è possibile
    visualizzare, assegnare a variabili o passare ad altre funzioni o
    cmdlet.

    L'elenco di istruzioni delle funzioni può contenere tipi diversi
    di elenchi di istruzioni con le parole chiave Begin, Process ed
    End. Questi elenchi di istruzioni gestiscono l'input da pipeline
    in modo diverso.

    Un filtro è un tipo speciale di funzione che utilizza la parola
    chiave Filter.

    Le funzioni possono anche essere utilizzate come cmdlet. È
    possibile creare una funzione utilizzabile come cmdlet senza
    utilizzare la programmazione C#. Per ulteriori informazioni, vedere
    about_Functions_Advanced.

  Sintassi
      Di seguito è riportata la sintassi di una funzione:

          function [<ambito:>]<nome> [([type]$parameter1[,[type]$parameter2])]
          {
              param([type]$parameter1 [,[type]$parameter2])

              dynamicparam {<elenco istruzioni>}

              begin {<elenco istruzioni>}
              process {<elenco istruzioni>}
              end {<elenco istruzioni>}
          }

      Una funzione include gli elementi seguenti:

          - Una parola chiave Function
          - Un ambito (facoltativo)
          - Un nome selezionato dall'utente
          - Un numero qualsiasi di parametri denominati (facoltativo)
          - Uno o più comandi di Windows PowerShell racchiusi tra
            parentesi graffe ({})

      Per ulteriori informazioni sulla parola chiave Dynamicparam e
      sui parametri dinamici nelle funzioni, vedere
      about_Functions_Advanced_Parameters.

  Funzioni semplici
      L'utilità di una funzione non dipende dalla sua complessità. La
      funzione seguente ottiene le variabili di ambiente che non
      appartengono all'account System del sistema corrente:

          function other_env
          {
             get-wmiObject win32_environment |
                where {$_.username -ne "<Sistema>"}
          }

      Per eseguire la funzione, digitare "other_env".

      È possibile creare una casella degli strumenti di brevi
      funzioni utili. Aggiungere queste funzioni al proprio profilo
      di Windows PowerShell, come illustrato in about_Profiles e più
      avanti in questo argomento.

  Funzioni con parametri
      Le funzioni possono essere utilizzate con parametri, inclusi
      quelli denominati, posizionali, opzionali e dinamici. Per ulteriori
      informazioni sui parametri dinamici nelle funzioni, vedere
      about_Functions_Advanced_Parameters.

  Parametri denominati
      È possibile definire un numero qualsiasi di parametri
      denominati, nonché includere un valore predefinito per i
      parametri denominati, come illustrato più avanti in questo
      argomento.

      È possibile definire parametri all'interno di parentesi graffe
      utilizzando la parola chiave Param, come illustrato nella
      sintassi di esempio seguente:

          function <name> {
               param ([type]$parameter1[,[type]$parameter2])
               <statement list>
          }

      È inoltre possibile definire parametri all'esterno di parentesi
      graffe senza utilizzare la parola chiave Param, come illustrato
      nella sintassi di esempio seguente:

          function <nome> [([type]$parameter1[,[type]$parameter2])] {
              <elenco istruzioni>
          }

      Non esiste alcuna differenza tra questi due metodi, utilizzare
      quello preferito.

      Quando si esegue la funzione, il valore fornito per un
      parametro viene assegnato a una variabile che contiene il nome
      del parametro. Il valore di quella variabile può essere
      utilizzato nella funzione.

      Di seguito è riportato l'esempio di una funzione denominata
      Small_files. Questa funzione, che dispone di un parametro
      $size, visualizza tutti i file le cui dimensioni sono inferiori
      al valore del parametro $size ed esclude le directory:

          function small_files {
              param ($size)
              Get-ChildItem c:\ | where {
                  $_.length -lt $size -and !$_.PSIsContainer}
          }

      Nella funzione è possibile utilizzare la variabile $size,
      ovvero il nome definito per il parametro.

      Per utilizzare questa funzione, digitare il comando seguente:

          C:\PS> function small_files -size 50

      È inoltre possibile immettere un valore per un parametro
      denominato senza il nome del parametro. Ad esempio, il comando
      seguente fornisce lo stesso risultato di un comando che assegna
      un nome al parametro Size:

          C:\PS> function small_files 50

      Per definire un valore predefinito per un parametro, digitare
      un segno di uguale e il valore dopo il nome del parametro, come
      illustrato nella variazione dell'esempio Small_files riportata
      di seguito:

          function small_files ($size = 100) {
              Get-ChildItem c:\ | where {
                  $_.length -lt $size -and !$_.PSIsContainer}
          }

      Se si digita "small_files" senza un valore, la funzione assegna
      100 a $Size. Se si fornisce un valore, la funzione lo utilizza.

  Parametri posizionali
      Per parametro posizionale si intende un parametro senza un
      nome. In Windows PowerShell viene utilizzato l'ordine dei
      valori dei parametri per associare ogni valore a un parametro
      della funzione.

      Quando si utilizzano i parametri posizionali, digitare uno o
      più valori dopo il nome della funzione. I valori dei parametri
      posizionali vengono assegnati alla variabile di tipo matrice
      $arg. Il valore che segue il nome della funzione viene
      assegnato alla prima posizione nella matrice $args, $args[0].

      La funzione Extension seguente aggiunge l'estensione di file
      txt a un nome file fornito:

          function extension {
              $name = $args[0] + ".txt"
              $name
          }

          C:\PS> extension myTextFile
          myTextFile.txt

      Le funzioni possono accettare più di un parametro posizionale.
      Nell'esempio seguente vengono visualizzati i valori immessi con
      il nome della funzione.

          function repeat { foreach ($arg in $args) { "L'input è $arg" } }

          C:\PS>repeat one
          L'input è one

          C:\PS> repeat one two three
          L'input è one
          L'input è two
          L'input è three

      Questa funzione può essere utilizzata con qualsiasi numero di
      valori. La funzione assegna ogni valore a una posizione nella
      matrice $args.

  Parametri opzionali
      Un'opzione è un parametro che non richiede un valore. Pertanto,
      digitare il nome della funzione seguito dal nome del parametro
      opzionale.

      Per definire un parametro opzionale, specificare il tipo
      [opzione] prima del nome del parametro, come illustrato
      nell'esempio seguente:

          function switchExample {
              param ([switch]$on)
              if ($on) { "Switch on" }
              else { "Switch off" }
          }

      Quando si digita il parametro opzionale On dopo il nome della
      funzione, la funzione visualizza "Switch On". Senza il
      parametro opzionale, visualizza "Switch off".

          C:\PS> SwitchExample -on
          Switch on

          C:\PS> SwitchExample
          Switch off

      È inoltre possibile assegnare un valore booleano a un'opzione
      quando si esegue la funzione, come illustrato nell'esempio seguente:

          C:\PS> SwitchExample -on:$true
          Switch on

          C:\PS> SwitchExample -on:$false
          Switch off

  Reindirizzamento di oggetti alle funzioni
      Qualsiasi funzione può accettare l'input da pipeline. È
      possibile controllare il modo in cui una funzione elabora
      l'input da pipeline utilizzando le parole chiave Begin, Process
      ed End. Nella sintassi di esempio seguente vengono illustrate
      le tre parole chiave:

          function <nome> {
              begin {<elenco istruzioni>}
              process {<elenco istruzioni>}
              end {<elenco istruzioni>}
          }

      L'elenco di istruzioni Begin viene eseguito una sola volta
      all'inizio della funzione.

      L'elenco di istruzioni Process viene eseguito una volta per
      ogni oggetto nella pipeline.
      Mentre è in corso l'esecuzione del blocco Process, ogni oggetto
      della pipeline viene assegnato alla variabile automatica $_, un
      oggetto alla volta.

      Dopo che la funzione ha ricevuto tutti gli oggetti nella
      pipeline, l'elenco di istruzioni End viene eseguito una volta.
      Se non si utilizza la parola chiave Begin, Process o End, tutte
      le istruzioni vengono considerate come un elenco di istruzioni End.

      La funzione seguente utilizza la parola chiave Process. La
      funzione visualizza esempi dalla pipeline:

          function pipelineFunction
          {
              process {"Il valore è: $_"}
          }

      Per dimostrare l'utilizzo di questa funzione, immettere una
      matrice di numeri creata con virgole, come illustrato
      nell'esempio seguente:

          C:\PS> 1,2,4 | pipelineFunction
          Il valore è: 1
          Il valore è: 2
          Il valore è: 4

      Quando si utilizza una funzione in una pipeline, gli oggetti
      reindirizzati alla funzione vengono assegnati alla variabile
      automatica $input. La funzione esegue le istruzioni con la
      parola chiave Begin prima che qualsiasi oggetto venga ricevuto
      dalla pipeline. La funzione esegue le istruzioni con la parola
      chiave End dopo che tutti gli oggetti sono stati ricevuti dalla
      pipeline.

      Nell'esempio seguente viene illustrata la variabile automatica
      $input con le parole chiave Begin ed End.

          function PipelineBeginEnd
          {
              begin {"Begin: L'input è $input"}
              end {"End:  L'input è $input" }
          }

      Se questa funzione viene eseguita utilizzando la pipeline,
      ottiene i risultati seguenti:

          C:\PS> 1,2,4 | PipelineBeginEnd
          Begin: L'input è
          End:  L'input è 1 2 4

      Quando viene eseguita l'istruzione Begin, la funzione non
      ottiene l'input da pipeline. L'istruzione End viene eseguita
      dopo che la funzione ottiene dei valori.

      Se la funzione dispone di una parola chiave Process, la
      funzione legge i dati in $input. Nell'esempio seguente viene
      illustrato un elenco di istruzioni Process:

          function PipelineInput
          {
              process {"Elaborazione: $_ " }
              end {"End:  L'input è: $input" }
          }

      In questo esempio ogni oggetto reindirizzato alla funzione
      viene inviato all'elenco di istruzioni Process. Le istruzioni
      Process vengono eseguite su ogni oggetto, un oggetto alla
      volta. Quando la funzione raggiunge la parola chiave End, la
      variabile automatica $input è vuota.

          C:\PS> 1,2,4 | PipelineInput
          Elaborazione: 1
          Elaborazione: 2
          Elaborazione: 4
          End:  L'input è:

  Filtri
      Per filtro si intende un tipo di funzione che viene eseguito su
      ogni oggetto nella pipeline. Con tutte le istruzioni incluse in
      un blocco Process, un filtro è simile a una funzione.

      Di seguito è illustrata la sintassi di un filtro:

          filter [<ambito:>]<nome> {<elenco istruzioni>}

      Il filtro seguente accetta voci di registro dalla pipeline,
      quindi visualizza l'intera voce o solo la parte del messaggio
      relativa:

          filter ErrorLog ([switch]$message)
          {
              if ($message) { out-host -inputobject $_.Message }
              else { $_ }
          }

  Ambito della funzione
      Una funzione esiste nell'ambito in cui è stata creata.

      Se una funzione fa parte di uno script, è disponibile per le
      istruzioni all'interno di tale script. Per impostazione
      predefinita, una funzione inclusa in uno script non è
      disponibile al prompt dei comandi.

      È possibile specificare l'ambito di una funzione. Nell'esempio
      seguente, la funzione viene aggiunta all'ambito globale:

          function global:get-dependentsvs { get-service |
             where {$_.dependentservices} }

      Quando una funzione si trova nell'ambito globale, è possibile
      utilizzare la funzione negli script, nelle funzioni e alla riga
      di comando.

      Le funzioni creano in genere un ambito. Gli elementi creati in
      una funzione, ad esempio le variabili, esistono solo
      nell'ambito della funzione.

      Per ulteriori informazioni sull'ambito in Windows PowerShell, vedere
      about_Scope.

  Individuazione e gestione di funzioni mediante l'unità Function:
      Tutte le funzioni e i filtri di Windows PowerShell vengono
      automaticamente archiviati nell'unità Function:. Questa unità è
      esposta dal provider Function di Windows PowerShell.

      Quando si fa riferimento all'unità Function:, digitare il
      carattere due punti dopo Function, proprio come se si trattasse
      dell'unità C o D di un computer.

      Il comando seguente visualizza tutte le funzioni nella sessione
      corrente di Windows PowerShell:

          C:\PS>  dir function:

      I comandi della funzione vengono archiviati come blocco di
      script nella proprietà Definition della funzione. Ad esempio,
      per visualizzare i comandi della funzione Help fornita con
      Windows PowerShell, digitare:

          (dir function:help).definition

      Per ulteriori informazioni sull'unità Function:, vedere Function.

  Riutilizzo di funzioni in nuove sessioni
      Quando si digita una funzione al prompt dei comandi di Windows
      PowerShell, la funzione diventa parte della sessione corrente e
      rimane disponibile fino al termine della sessione.

      Per utilizzare la funzione in tutte le sessioni di Windows
      PowerShell, aggiungerla al profilo di Windows PowerShell. Per
      ulteriori informazioni sui profili, vedere about_Profiles.

      È inoltre possibile salvare la funzione in un file di script di
      Windows PowerShell. Digitare la funzione in un file di testo,
      quindi salvare il file con l'estensione ps1.

  Scrittura della Guida relativa alle funzioni
    Il cmdlet Get-Help ottiene la Guida relativa a funzioni, cmdlet,
    provider e script. Per ottenere la Guida per una funzione,
    digitare Get-Help seguito dal nome della funzione.

    Ad esempio, per ottenere la Guida relativa alla funzione MyDisks,
    digitare:

        get-help MyDisks

    È possibile scrivere la Guida per una funzione mediante uno dei
    due metodi seguenti:

    --  Guida basata su commenti relativa alle funzioni

        Creare un argomento della Guida mediante parole chiave
        speciali nei commenti. Per creare una Guida basata su
        commenti relativa a una funzione, è necessario posizionare i
        commenti all'inizio o alla fine del corpo della funzione
        oppure sulle righe che precedono la parola chiave della
        funzione. Per ulteriori informazioni sulla Guida basata su
        commenti, vedere about_Comment_Based_Help.

    --  Guida basata su XML relativa alle funzioni

        Creare un argomento della Guida basato su XML, ad esempio il
        tipo di guida che viene in genere creato per i cmdlet. Creare
        una Guida basata su XML quando si preveda di localizzarla in
        più lingue.

        Per associare la funzione all'argomento della Guida basato su XML,
        utilizzare la parola chiave di commento della Guida .ExternalHelp.
        Per ulteriori informazioni sulla parola chiave ExternalHelp, vedere
        about_Comment_Based_Help. Per ulteriori informazioni sulla Guida
        basata su XML, vedere l'argomento relativo alla scrittura della Guida
        relativa ai cmdlet in MSDN.

VEDERE ANCHE
    about_Automatic_Variables
    about_Comment_Based_Help
    about_Functions_Advanced
    about_Functions_CmdletBindingAttribute
    about_Parameters
    about_Profiles
    about_Scopes
    about_Script_Blocks
    Function (provider)


about_Functions_Advanced

ARGOMENTO
    about_Functions_Advanced

DESCRIZIONE BREVE
    Presenta le funzioni avanzate che hanno un comportamento analogo
    ai cmdlet.

DESCRIZIONE DETTAGLIATA
    Le funzioni avanzate consentono di scrivere funzioni che possono
    eseguire operazioni analoghe a quelle eseguiti con cmdlet. Le funzioni
    avanzate sono utili quando si desidera scrivere rapidamente una
    funzione senza dover scrivere un cmdlet compilato mediante un
    linguaggio .NET Framework. Queste funzioni sono utili anche quando si
    desidera limitare la funzionalità di un cmdlet compilato o quando si
    desidera scrivere una funzione analoga a un cmdlet compilato.

    Vi è una differenza tra la creazione di un cmdlet compilato e di una
    funzione avanzata. I cmdlet compilati sono classi .NET Framework che
    devono essere scritte in un linguaggio .NET Framework quale C#. Le
    funzioni avanzate, invece, sono scritte nel linguaggio script di
    Windows PowerShell nello stesso modo in cui sono scritte le altre
    funzioni o i blocchi di script.

    Le funzioni avanzate utilizzano l'attributo CmdletBinding che le
    identifica come funzioni dal comportamento analogo ai cmdlet.
    L'attributo CmdletBinding è analogo all'attributo Cmdlet
    utilizzato nelle classi dei cmdlet compilati per identificare la
    classe come un cmdlet. Per ulteriori informazioni su questo attributo,
    vedere about_Functions_CmdletBindingAttribute.

    Nell'esempio seguente viene mostrata una funzione che accetta un nome,
    quindi stampa un saluto utilizzando il nome fornito. Notare inoltre
    che questa funzione definisce un nome che include una coppia verbo
    (Send) e sostantivo (Greeting) analoga alla coppia verbo-sostantivo
    di un cmdlet compilato. Non è tuttavia necessario che le funzioni
    presentino un nome verbo-sostantivo.

        function Send-Greeting
        {
          [CmdletBinding()]
          Param(
              [Parameter(Mandatory=$true)]
              [string] $Name
          )
          Process
          {
            write-host ("Hello " + $Name + "!")
          }
        }

    I parametri della funzione vengono dichiarati tramite l'attributo
    Parameter. Questo attributo può essere utilizzato da solo o può essere
    combinato con l'attributo Alias o con diversi altri attributi di
    convalida dei parametri.
    Per ulteriori informazioni sulla dichiarazione dei parametri (inclusi
    parametri dinamici aggiunti in fase di esecuzione), vedere
    about_Functions_Advanced_Parameters.

    Il funzionamento effettivo della funzione precedente viene
    eseguito nel blocco Process che equivale al metodo ProcessingRecord
    utilizzato dai cmdlet compilati per elaborare i dati passati al
    cmdlet. Questo blocco, insieme ai blocchi Begin ed End è descritto
    nell'argomento about_Functions_Advanced_Methods.

    Le funzioni avanzate presentano le differenze seguenti rispetto
    ai cmdlet compilati:

        - L'associazione dei parametri delle funzioni avanzate non genera
          un'eccezione quando una matrice di stringhe è associata a un
          parametro booleano.

        - L'attributo ValidateSet e l'attributo ValidatePattern non
          possono passare parametri denominati.

        - Le funzioni avanzate non possono essere utilizzate nelle
          transazioni.

VEDERE ANCHE
    about_Functions_Advanced_CmdletBindingAttribute
    about_Functions_Advanced_Methods
    about_Functions_Advanced_Parameters
    Cmdlet di Windows PowerShell (http://go.microsoft.com/fwlink/?Link
    ID=135279)


about_Functions_Advanced_Methods

ARGOMENTO
    about_Functions_Advanced_Methods

DESCRIZIONE BREVE
    Descrive come le funzioni che specificano l'attributo
    CmdletBinding possono utilizzare i metodi e le proprietà
    disponibili ai cmdlet compilati.

DESCRIZIONE DETTAGLIATA
    Le funzioni che specificano l'attributo CmdletBinding possono
    accedere a vari metodi e proprietà tramite la variabile $pscmdlet. Tra
    questi metodi sono inclusi:

        - Metodi di elaborazione dell'input utilizzati per il
          funzionamento dei cmdlet.

        - Metodi ShouldProcess e ShouldContinue utilizzati per
          ottenere feedback dall'utente prima di eseguire un azione.

        - Metodo ThrowTerminatingError per la generazione di record
          di errore.

        - Vari metodi Write che restituiscono diversi tipi di output.

        - Vari metodi Write che restituiscono diversi tipi di output.

    Tutti i metodi e le proprietà della classe PSCmdlet sono
    disponibili per le funzioni avanzate. Per ulteriori informazioni
    su questi metodi e proprietà, vedere System.Management.Automation.
    PSCmdlet in MSDN Library all'indirizzo
    http://go.microsoft.com/fwlink/?LinkId=142139 (le informazioni
    potrebbero essere in lingua inglese).

  Metodi di elaborazione dell'input

      I metodi descritti in questa sezione sono definiti come metodi di
      elaborazione dell'input. Per le funzioni, questi tre metodi vengono
      rappresentati dai blocchi Begin, Process ed End della funzione. Ogni
      funzione deve includere uno o più di questi blocchi. In fase di
      esecuzione di Windows PowerShell viene utilizzato il codice incluso
      in questi blocchi per l'esecuzione di una funzione. Questi blocchi
      sono anche disponibili alle funzioni che non utilizzano l'attributo
      CmdletBinding.

    Begin
      Questo blocco è utilizzato per fornire pre-elaborazione unica
      facoltativa per la funzione. In fase di esecuzione di Windows
      PowerShell viene utilizzato il codice incluso in questo blocco
      una volta per ogni istanza della funzione nella pipeline.

    Process
      Questo blocco è utilizzato per fornire elaborazione record per
      record per la funzione. Questo blocco può essere utilizzato
      qualsiasi numero di volte o non essere utilizzato affatto, a seconda
      dell'input della funzione. Ad esempio, se la funzione è il primo
      comando nella pipeline, il blocco Process sarà utilizzato una sola
      volta. Se la funzione non è il primo comando nella pipeline, il
      blocco Process sarà utilizzato una volta per ogni input che la
      funzione riceve dalla pipeline. Se non vi è alcun input della
      pipeline, il blocco Process non sarà utilizzato.

      Questo blocco deve essere definito se un parametro della funzione
      è impostato per accettare input della pipeline. Se questo blocco non
      è definito e il parametro accetta input dalla pipeline, mancheranno
      i valori passati alla funzione tramite la pipeline.

      Inoltre, quando la funzione supporta richieste di conferma
      (quando il parametro SupportsShouldProcess dell'attributo
      Parameter è impostato su $True), la chiamata al metodo
      ShouldProcess deve essere effettuata dall'interno del blocco
      Process.

    End
      Questo blocco è utilizzato per fornire post-elaborazione unica
      facoltativa per la funzione.

      Nell'esempio seguente viene mostrata la struttura di una
      funzione che contiene un blocco Begin per la pre-elaborazione
      unica, un blocco Process per l'elaborazione di più record e un
      blocco End per post-elaborazione unica.

          Function Test-ScriptCmdlet
          {
            [CmdletBinding(SupportsShouldProcess=$True)]
            Param ($Parameter1)
            Begin{}
            Process{}
            End{}
          }

  Metodi di conferma

    ShouldProcess
      Questo metodo è chiamato per richiedere la conferma dell'utente
      prima che la funzione esegua un'azione che modificherebbe il
      sistema. La funzione può continuare in base al valore booleano
      restituito dal metodo. Questo metodo può essere chiamato solo
      dall'interno del blocco Process{} della funzione. Inoltre,
      l'attributo CmdletBinding deve dichiarare che la funzione supporta
      ShouldProcess (come mostrato nell'esempio precedente).

      Per ulteriori informazioni su questo metodo, vedere
      System.Management.Automation.Cmdlet.ShouldProcess in MSDN Library
      all'indirizzo http://go.microsoft.com/fwlink/?LinkId=142142 (le
      informazioni potrebbero essere in lingua inglese).

      Per ulteriori informazioni sulla richiesta di conferma, vedere
      l'argomento relativo in MSDN Library all'indirizzo
      http://go.microsoft.com/fwlink/?LinkID=136658 (le informazioni
      potrebbero essere in lingua inglese).

    ShouldContinue
      Questo metodo è chiamato per richiedere un secondo messaggio di
      conferma. Deve essere chiamato quando il metodo ShouldProcess
      restituisce $true. Per ulteriori informazioni su questo metodo,
      vedere.
      System.Management.Automation.Cmdlet.ShouldContinue in MSDN Library
      all'indirizzo http://go.microsoft.com/fwlink/?LinkId=142143 (le
      informazioni potrebbero essere in lingua inglese).

  Metodi di errore

    Le funzioni possono chiamare due metodi diversi quando si
    verificano errori. Quando si verifica un errore non fatale, la
    funzione deve chiamare il metodo WriteError, descritto nella
    sezione "Metodi Write". Quando si verifica un errore fatale e la
    funzione non può continuare, deve chiamare il metodo
    ThrowTerminatingError. È anche possibile utilizzare l'istruzione
    Throw per gli errori fatali e il cmdlet Write-Error per gli errori non
    fatali.

    Per ulteriori informazioni, vedere System.Management.Automation.Cm
    dlet.
    ThrowTerminatingError in MSDN Libray all'indirizzo
    http://go.microsoft.com/fwlink/?LinkId=142144 (le informazioni
    potrebbero essere in lingua inglese).

  Metodi Write

      Una funzione può chiamare i metodi seguenti per restituire tipi
      diversi di output. Notare che non tutto l'output passa al comando
      successivo nella pipeline. È anche possibile utilizzare i vari cmdlet
      Write, ad esempio Write-Error.

    WriteCommandDetail
      Per informazioni sul metodo WriteCommandDetails, vedere
      System.Management.Automation.Cmdlet.WriteCommandDetail in MSDN Library
      all'indirizzo  http://go.microsoft.com/fwlink/?LinkId=142155 (le
      informazioni potrebbero essere in lingua inglese).

    WriteDebug
      Per fornire informazioni che possono essere utilizzate per
      risolvere i problemi relativi a una funzione, impostare la
      funzione in modo che chiami il metodo WriteDebug. In questo
      modo vengono visualizzati dall'utente i messaggi di debug. Per
      ulteriori informazioni, vedere
      System.Management.Automation.Cmdlet.WriteDebug in MSDN Library
      all'indirizzo http://go.microsoft.com/fwlink/?LinkId=142156 (le
      informazioni potrebbero essere in lingua inglese).

    WriteError
      Le funzioni devono chiamare questo metodo quando si verificano
      errori non fatali e la funzione è progettata per continuare
      l'elaborazione dei record. Per ulteriori informazioni, vedere
      System.Management.Automation.Cmdlet.WriteError in MSDN Library
      all'indirizzo http://go.microsoft.com/fwlink/?LinkId=142157 (le
      informazioni potrebbero essere in lingua inglese).

      Nota: se si verifica un errore fatale, la funzione deve
            chiamare il metodo ThrowTerminatingError.

    WriteObject
      Questo metodo consente alla funzione di inviare un oggetto al
      comando successivo nella pipeline. Nella maggior parte dei
      casi, questo è il metodo da utilizzare quando la funzione
      restituisce dati. Per ulteriori informazioni, vedere
      System.Management.Automation.PSCmdlet.WriteObject in MSDN Library
      all'indirizzo http://go.microsoft.com/fwlink/?LinkId=142158 (le
      informazioni potrebbero essere in lingua inglese).

    WriteProgress
      Per le funzioni in cui il completamento delle azioni richiede
      molto tempo, questo metodo consente alla funzione di chiamare
      il metodo WriteProgress in modo da visualizzare le informazioni
      sull'avanzamento. È ad esempio possibile visualizzare la percentuale di
      completamento. Per ulteriori informazioni, vedere
      System.Management.Automation.PSCmdlet.WriteProgress in MSDN Library
      all'indirizzo http://go.microsoft.com/fwlink/?LinkId=142160 (le
      informazioni potrebbero essere in lingua inglese).

    WriteVerbose
      Per fornire informazioni dettagliate sulle operazioni
      effettuate da una funzione, impostare la funzione in modo che
      chiami il metodo WriteVerbose affinché l'utente visualizzi messaggi
      dettagliati. Per impostazione predefinita, i messaggi dettagliati non sono
      visualizzati. Per ulteriori informazioni, vedere
      System.Management.Automation.PSCmdlet.WriteVerbose in MSDN Library
      all'indirizzo http://go.microsoft.com/fwlink/?LinkId=142162 (le
      informazioni potrebbero essere in lingua inglese).

    WriteWarning
      Per fornire informazioni sulle condizioni che possono provocare
      risultati imprevisti, impostare la funzione in modo che chiami
      il metodo WriteWarning affinché l'utente visualizzi messaggi di
      avviso. Per impostazione predefinita, i messaggi di avviso sono
      visualizzati.
      Per ulteriori informazioni, vedere
      System.Management.Automation.PSCmdlet.WriteWarning in MSDN Library
      all'indirizzo http://go.microsoft.com/fwlink/?LinkId=142164 (le
      informazioni potrebbero essere in lingua inglese).

      Nota: è anche possibile visualizzare i messaggi di avviso
            configurando la variabile WarningPreference oppure utilizzando
            le opzioni di riga di comando Verbose e Debug.

  Altri metodi e proprietà

      Per informazioni sugli altri metodi e proprietà accessibili
      tramite la variabile $PSCmdlet, vedere
      System.Management.Automation.PSCmdlet in MSDN Library all'indirizzo
      http://go.microsoft.com/fwlink/?LinkId=142139 (le informazioni
      potrebbero essere in lingua inglese).

      Ad esempio, la proprietà ParameterSetName consente di
      visualizzare il set di parametri utilizzato. I set di parametri
      consentono di creare una funzione che esegue attività diverse
      in base ai parametri specificati quando viene eseguita la funzione.

VEDERE ANCHE
    about_Functions_Advanced
    about_Functions_CmdletBindingAttributes
    about_Functions_Advanced_Parameters


about_Functions_Advanced_Parameters

ARGOMENTO
    about_Functions_Advanced_Parameters

DESCRIZIONE BREVE
    Illustra come aggiungere parametri statici e dinamici alle funzioni
    che dichiarano l'attributo CmdletBinding.

DESCRIZIONE DETTAGLIATA
    È possibile dichiarare i propri parametri quando si scrivono
    funzioni ed è possibili scrivere funzioni in modo che possano
    accedere ai parametri comuni disponibili ai cmdlet compilati. Per
    ulteriori informazioni sui parametri comuni di Windows
    PowerShell, vedere about_CommonParameters.

Parametri statici

    Nell'esempio seguente viene mostrata una dichiarazione di
    parametro che definisce un parametro ComputerName. Questo
    parametro presenta le caratteristiche seguenti:

        - È obbligatorio.
        - Accetta l'input dalla pipeline.
        - Accetta una matrice di stringhe come input.

        Param
          (
            [parameter(Mandatory=$true,
            ValueFromPipeline=$true)]
            [String[]]
            $ComputerName
          )

    L'unico attributo obbligatorio che deve essere utilizzato quando
    si dichiara un parametro è l'attributo Parameter. Tuttavia, è
    possibile dichiarare anche l'attributo Alias e diversi argomenti di
    convalida. Non ci sono limiti al numero di attributi che è possibile
    aggiungere a una dichiarazione di parametro.

  Attributo Parameter

      L'attributo Parameter viene utilizzato per dichiarare un
      parametro della funzione.
      Questo attributo presenta gli argomenti denominati seguenti
      utilizzati per definire le caratteristiche del parametro, ad
      esempio se il parametro è obbligatorio o facoltativo.

    Argomento denominato Mandatory

        L'argomento Mandatory indica che il parametro è obbligatorio
        quando viene eseguita la funzione. Se non è specificato
        questo argomento, il parametro è facoltativo. Nell'esempio
        seguente viene mostrata la dichiarazione di un parametro richiesto
        quando viene eseguita la funzione.

        Param
          (
            [parameter(Mandatory=$true)]
            [String[]]
            $ComputerName
          )

    Argomento denominato Position

        L'argomento Position specifica la posizione del parametro. Se
        questo argomento non è specificato, è necessario specificare
        il nome del parametro o l'alias in modo esplicito quando si
        imposta il parametro. Inoltre, se nessuno dei parametri di
        una funzione dispone di posizioni, in fase di esecuzione di
        Windows PowerShell vengono assegnate posizioni a ogni
        parametro in base all'ordine in cui i parametri vengono ricevuti.

        Nell'esempio seguente viene mostrata la dichiarazione di un
        parametro il cui valore deve essere specificato come primo
        argomento quando viene eseguito il cmdlet. Si noti che questa
        funzione può essere eseguita con o senza la specifica del nome del
        parametro.

        Param
          (
            [parameter(Position=0)]
            [String[]]
            $ComputerName
          )

    Argomento denominato ParameterSetName

        L'argomento ParameterSetName specifica il set di parametri al
        quale un parametro appartiene. Se non è specificato alcun set di
        parametri, il parametro appartiene a tutti i set di parametri
        definiti dalla funzione. Questo comportamento implica che ogni set di
        parametri deve disporre di un parametro univoco che non sia un membro
        di alcun altro set di parametri. Nell'esempio seguente viene mostrata la
        dichiarazione di due parametri che appartengono a due set di
        parametri diversi.

        Param
          (
            [parameter(Mandatory=$true,
                      ParameterSetName="Computer")]
            [String[]]
            $ComputerName
          )

        Param
          (
            [parameter(Mandatory=$true,
                      ParameterSetName="User")]
            [String[]]
            $UserName
          )

        Per ulteriori informazioni sui set di parametri, vedere
        l'argomento relativo ai set di parametri dei cmdlet in MSDN
        Library all'indirizzo http://go.microsoft.com/fwlink/?LinkId=1
        42183 (le informazioni potrebbero essere in lingua inglese).

    Argomento denominato ValueFromPipeline

        L'argomento ValueFromPipeline specifica che il parametro
        accetta input da un oggetto pipeline. Specificare questo
        argomento se il cmdlet accede all'oggetto completo, non solo a una
        proprietà dell'oggetto. Nell'esempio seguente viene mostrata la
        dichiarazione di un parametro ComputerName obbligatorio che accetta
        l'oggetto di input passato alla funzione dalla pipeline.

        Param
          (
            [parameter(Mandatory=$true,
                      ValueFromPipeline=$true)]
            [String[]]
            $ComputerName
          )

    Argomento denominato ValueFromPipelineByPropertyName

        L'argomento valueFromPipelineByPropertyName specifica che il
        parametro accetta input da una proprietà di un oggetto pipeline.
        Specificare questo attributo se le condizioni seguenti sono vere:

            - Il parametro accede a una proprietà dell'oggetto
              reindirizzato.

            - La proprietà ha lo stesso nome o lo stesso alias del
              parametro.

        Ad esempio, se la funzione presenta un parametro ComputerName e
        l'oggetto reindirizzato presenta una proprietà ComputerName, il
        valore della proprietà ComputerName viene assegnato al parametro
        ComputerName della funzione.

        Nell'esempio seguente viene mostrata la dichiarazione di un
        parametro ComputerName che accetta input dalla proprietà
        ComputerName dell'oggetto di input passato al cmdlet.

        Param
          (
            [parameter(Mandatory=$true,
                      ValueFromPipelineByPropertyName=$true)]
            [String[]]
            $ComputerName
          )

    Argomento denominato ValueFromRemainingArguments

        L'argomento ValueFromRemainingArguments specifica che il parametro
        accetta tutti gli argomenti restanti non associati ai parametri della
        funzione. Nell'esempio seguente viene mostrata la dichiarazione di un
        parametro ComputerName che accetta tutti gli argomenti restanti
        dell'oggetto di input passato alla funzione.

        Param
          (
            [parameter(Mandatory=$true,
                      ValueFromRemainingArguments=$true)]
            [String[]]
            $ComputerName
          )

    Argomento denominato HelpMessage

        L'argomento HelpMessage specifica un messaggio che contiene
        una breve descrizione del parametro. Nell'esempio seguente viene
        mostrata una dichiarazione di parametro che fornisce una descrizione del
        parametro.

        Param
          (
            [parameter(Mandatory=$true,
                      HelpMessage="Una matrice di nomi di computer.")]
            [String[]]
            $ComputerName
          )

  Attributo Alias

      L'attributo Alias specifica un altro nome per il parametro. Non vi è
      limite al numero di alias che possono essere assegnati a un parametro.
      Nell'esempio seguente viene mostrata una dichiarazione di parametro
      obbligatoria che aggiunge l'alias "CN" al parametro ComputerName.

        Param
          (
            [parameter(Mandatory=$true)]
            [alias("CN")]
            [String[]]
            $ComputerName
          )

  Attributi di convalida dei parametri

      Questi attributi definiscono come vengono convalidati gli
      argomenti delle funzioni avanzate in fase di esecuzione di Windows
      PowerShell.

    Attributo di convalida AllowNull

        L'attributo AllowNull consente di impostare su Null
        l'argomento di un parametro obbligatorio del cmdlet. Nell'esempio
        seguente, il parametro ComputerName può contenere un valore Null
        anche se questo parametro è obbligatorio.

        Param
          (
            [parameter(Mandatory=$true)]
            [String]
            [AllowNull()]
            $ComputerName
          )

    Attributo di convalida AllowEmptyString

        L'attributo AllowEmptyString consente una stringa vuota come
        argomento di un parametro obbligatorio del cmdlet.
        Nell'esempio seguente, il parametro ComputerName può
        contenere un una stringa vuota ("") anche se questo parametro è
        obbligatorio.

        Param
          (
            [parameter(Mandatory=$true)]
            [String]
            [AllowEmptyString()]
            $ComputerName
          )

    Attributo di convalida AllowEmptyCollection

        L'attributo AllowEmptyCollection consente una raccolta vuota come
        argomento di un parametro obbligatorio del cmdlet.

        Param
          (
            [parameter(Mandatory=$true)]
            [String[]]
            [AllowEmptyCollection()]
            $ComputerName
          )

    Attributo di convalida ValidateCount

        L'attributo ValidateCount specifica il numero minimo e massimo di
        argomenti che il parametro può accettare. In fase di esecuzione di
        Windows PowerShell viene generato un errore se il numero di argomenti
        non è compreso in tale intervallo. Nell'esempio seguente, il parametro
        ComputerName può presentare da uno a cinque argomenti.

        Param
          (
            [parameter(Mandatory=$true)]
            [String[]]
            [ValidateCount(1,5)]
            $ComputerName
          )

    Attributo di convalida ValidateLength

        L'attributo ValidateLength specifica la lunghezza minima e massima
        dell'argomento del parametro. In fase di esecuzione di Windows
        PowerShell viene generato un errore se la lunghezza dell'argomento
        del parametro non è compresa in tale intervallo.
        Nell'esempio seguente, i nomi dei computer specificati devono
        contenere da uno a 10 caratteri.

        Param
          (
            [parameter(Mandatory=$true)]
            [String[]]
            [ValidateLength(1,10)]
            $ComputerName
          )

    Attributo di convalida ValidatePattern

        L'attributo ValidatePattern specifica un'espressione regolare che
        convalida il modello dell'argomento del parametro. In fase di
        esecuzione di Windows PowerShell viene generato un errore se
        l'argomento del parametro non corrisponde a questo modello.
        Nell'esempio seguente, l'argomento del parametro deve essere
        un numero di quattro cifre e ogni cifra deve essere un numero
        da 0 a 9.

        Param
          (
            [parameter(Mandatory=$true)]
            [String[]]
            [ValidatePattern("[0-9][0-9][0-9][0-9]")]
            $ComputerName
          )

    Attributo di convalida ValidateRange

        L'attributo ValidateRange specifica i valori minimo e massimo
        dell'argomento del parametro. In fase di esecuzione di Windows
        PowerShell viene generato un errore se l'argomento del parametro non
        è compreso in tale intervallo. Nell'esempio seguente, l'argomento del
        parametro non può essere minore di 0 o maggiore di 10.

        Param
          (
            [parameter(Mandatory=$true)]
            [Int[]]
            [ValidateRange(0,10)]
            $Count
          )

    Attributo di convalida ValidateScript

        L'attributo ValidateScript specifica uno script utilizzato per
        convalidare l'argomento del parametro. In fase di esecuzione di Windows
        PowerShell viene generato un errore se il risultato dello script è
        false o se lo script genera un'eccezione. Nell'esempio seguente il
        valore del parametro Count deve essere minore di 4.

        Param
          (
            [parameter()]
            [Int]
            [ValidateScript({$_ -lt 4})]
            $Count
          )

    Attributo ValidateSet

        L'attributo ValidateSet specifica un set di valori validi per
        l'argomento del parametro. In fase di esecuzione di Windows
        PowerShell viene generato un errore se l'argomento del parametro non
        corrisponde a un valore nel set.
        Nell'esempio seguente, l'argomento del parametro può
        contenere solo i nomi Steve, Mary e Carl.

        Param
          (
            [parameter(Mandatory=$true)]
            [String[]]
            [ValidateRange("Steve", "Mary", "Carl")]
            $UserName
          )

    Attributo di convalida ValidateNotNull

        L'attributo ValidateNotNull specifica che non è possibile
        impostare l'argomento del parametro su Null. In fase di
        esecuzione di Windows PowerShell viene generato un errore se
        il valore del parametro è Null.

        Param
          (
            [parameter(Mandatory=$true)]
            [String[]]
            [ValidateNotNull()]
            $UserName
          )

    Attributo di convalida ValidateNotNullOrEmpty

        L'attributo ValidateNotNullOrEmpty specifica che l'argomento del
        parametro non può essere impostato su Null né essere vuoto. In fase di
        esecuzione di Windows PowerShell viene generato un errore se il
        parametro è specificato ma il relativo valore è Null, una stringa
        vuota o una matrice vuota.

        Param
          (
            [parameter(Mandatory=$true)]
            [String[]]
            [ValidateNotNullOrEmpty()]
            $UserName
          )

 Parametri dinamici

    I parametri dinamici sono parametri di un cmdlet, una funzione o uno script
    che sono disponibili solo in determinate condizioni.

    Ad esempio, diversi cmdlets del provider hanno parametri disponibili solo
    quando si utilizza il cmdlet nel percorso del provider. Un parametro dinamico
    familiare è il parametro Encoding di un cmdlet Set-Item, che è disponibile
    solo quando il cmdlet Set-Item è utilizzato nel percorso del provider FileSystem.

    Per creare un parametro dinamico per una funzione o uno script, utilizzare la
    parola chiave Dynamicparam.

    La sintassi è la seguente.

      DynamicParam {<elenco istruzioni>}

    Nell'elenco istruzioni, utilizzare un'istruzione If per specificare le condizioni in     base alle quali il parametro è disponibile nella funzione.

    Utilizzare il cmdlet New-Object per creare un oggetto     System.Management.Automation.RuntimeDefinedParameter per rappresentare il
    parametro e specificare il nome.

    È inoltre possibile utilizzare il comando New-Object per creare un oggetto     System.Management.Automation.ParameterAttribute per rappresentare attributi del     paramentro, ad esempio Mandatory, Position o ValueFromPipeline, o il relativo set di     parametri.

    Di seguito viene riportata una funzione di esempio con parametri standard chiamati
    Name e Path, nonché un parametro dinamico opzionale denominato DP1. Il parametro DP1 è     nel set di parametri PSet1 e dispone di un tipo Int32. Il parametro DP1 è disponibile     nella funzione di esempio solo quando il valore del parametro Path contiene "HKLM:", il       quale indica che è in uso nell'unità del Registro HKEY_LOCAL_MACHINE.

    function Sample {
      Param ([String]$Name, [String]$Path)

      DynamicParam
      {
        if ($path -match "*HKLM*:")
        {
          $dynParam1 = new-object
            System.Management.Automation.RuntimeDefinedParameter("dp1",
            [Int32], $attributeCollection)

          $attributes = new-object System.Management.Automation.ParameterAttribute
          $attributes.ParameterSetName = 'pset1'
          $attributes.Mandatory = $false

          $attributeCollection = new-object
            -Type System.Collections.ObjectModel.Collection``1[System.Attribute]
          $attributeCollection.Add($attributes)

          $paramDictionary = new-object
            System.Management.Automation.RuntimeDefinedParameterDictionary
          $paramDictionary.Add("dp1", $dynParam1)

          return $paramDictionary
        } End if
      }
    }

    Per ulteriori informazioni, vedere "RuntimeDefinedParameter Class" in MSDN Library
    all'indirizzo http://go.microsoft.com/fwlink/?LinkID=145130
    (le informazioni potrebbero essere in lingua inglese).

VEDERE ANCHE
    about_Advanced Functions
    about_Functions_Advanced_Methods
    about_Functions_CmdletBindingAttribute


about_Functions_Cmdletbindingattribute

ARGOMENTO
    about_Functions_CmdletBindingAttribute

DESCRIZIONE BREVE
    Descrive un attributo che dichiara una funzione con comportamento
    analogo a un cmdlet compilato.

DESCRIZIONE DETTAGLIATA
    Quando si scrivono funzioni, è possibile aggiungere l'attributo
    CmdletBinding in modo che i parametri della funzione vengano
    associati nello stesso modo in cui vengono associati i parametri
    dei cmdlet compilati. Quando viene dichiarato questo attributo,
    viene inoltre impostata la variabile automatica $PSCmdlet.

    Quando si l'associazione cmdlet, i parametri sconosciuti e gli
    argomenti posizionali che non dispongono di parametri posizionali
    corrispondenti causano l'esito negativo dell'associazione dei
    parametri. Inoltre, una funzione o uno script con associazione
    cmdlet non utilizza la variabile $args.

    Nota: i cmdlet compilati utilizzano l'attributo Cmdlet
          obbligatorio analogo all'attributo CmdletBinding
          descritto in questo argomento.

    Nell'esempio seguente viene mostrata la struttura di una funzione che
    specifica tutti gli argomenti facoltativi dell'attributo
    CmdletBinding. Segue l'esempio una breve descrizione di ogni argomento

        {
          [CmdletBinding(SupportsShouldProcess=<Boolean>,
                     ConfirmImpact=<Stringa>,
                     DefaultParameterSetName=<Stringa>)]

          Param ($Parameter1)
          Begin{}
          Process{}
          End{}
        }

  SupportsShouldProcess

      Quando l'argomento SupportsShouldProcess viene impostato su
      true, indica che la funzione supporta chiamate al metodo
      ShouldProcess, utilizzato per richiedere all'utente feedback
      prima che la funzione apporti una modifica al sistema. Quando viene
      specificato questo argomento, i parametri Confirm e WhatIf sono
      abilitati per la funzione.

      Per ulteriori informazioni sulle richieste di conferma, vedere
      l'argomento relativo in MSDN Library all'indirizzo
      http://go.microsoft.com/fwlink/?LinkId=136658 (le informazioni
      potrebbero essere in lingua inglese).

  DefaultParameterSetName

      L'argomento DefaultParameterSetName specifica il nome del set
      di parametri che si tenterà di utilizzare quando non è possibile
      determinare quale set di parametri utilizzare. È possibile evitare questo
      problemi rendendo obbligatorio il parametro univoco di ogni set di
      parametro.

  ConfirmImpact

      L'argomento ConfirmImpact specifica quando l'azione della
      funzione deve essere confermata da una chiamata al metodo
      ShouldProcess. La chiamata al metodo ShouldProcess visualizza
      un prompt di conferma solo quando l'argomento ConfirmImpact è
      uguale o maggiore del valore della variabile di preferenza
      $ConfirmPreference (il valore predefinito dell'argomento è Medium).
      Specificare questo argomento solo quando viene specificato anche
      l'argomento SupportsShouldProcess.

VEDERE ANCHE
    about_Functions_Advanced
    about_Functions_CmdletBindingAttribute
    about_Functions_ParameterAttributes


about_Hash_Tables

ARGOMENTO
    about_Hash_Tables

DESCRIZIONE BREVE
    Descrive come creare, utilizzare e ordinare le tabelle hash in Windows
    PowerShell.

DESCRIZIONE DETTAGLIATA
    Una tabella hash, anche nota come dizionario o matrice
    associativa, è una struttura dei dati compatta in cui sono
    archiviate una o più coppie nome/valore. Una tabella hash potrebbe ad
    esempio contenere una serie di nomi e ID dipendente, nomi di computer e
    indirizzi IP oppure ID messaggio e testo di messaggi.

    Le tabelle hash vengono utilizzate con frequenza perché possono
    rivelarsi strumenti molto efficienti per la ricerca e il recupero
    di dati. È possibile utilizzare le tabelle hash per archiviare
    elenchi e creare proprietà calcolate in Windows PowerShell e in
    Windows PowerShell è disponibile il cmdlet ConvertFrom-StringData che
    converte le stringhe in tabelle hash.

  Creazione di tabelle hash
      Gli elementi di una tabella hash sono disposti in coppie
      nome/valore, ad esempio:

          Msg1="Immettere la password."
          Msg2="Il parametro path è obbligatorio."
          Msg3="L'alias di Get-Command è gcm."

      I valori vengono mappati o associati ai nomi in modo che quando
      si invia il nome, venga restituito il relativo valore.

      Di seguito viene illustrata la sintassi di una tabella hash in
      Windows PowerShell:

          @{ <nome> = <valore>; [<nome> = <valore> ] ...}

      Quando si crea una tabella hash, attenersi alle istruzioni seguenti:

          - Iniziare la tabella hash con il carattere chiocciola (@).

          - Racchiudere la tabella hash tra parentesi graffe ({}).

          - Immettere una o più coppie nome/valore per il contenuto della
            tabella hash.

          - Utilizzare un segno di uguale (=) per separare ogni nome dal
            relativo valore.

          - Utilizzare un punto e virgola (;) per separare le coppie
            nome/valore.

          - Se un nome o un valore contiene degli spazi, racchiuderlo tra
            virgolette.

      Ad esempio, una tabella hash dei messaggi utente precedenti è
      simile alla seguente:

          @{
          Msg1="Immettere la password.";
          Msg2="Il parametro path è obbligatorio.";
          Msg3="L'alias di Get-Command è gcm.";
          }

      Per utilizzare una tabella hash in script e comandi, salvarla in una
      variabile. Il valore della variabile è un oggetto tabella hash
      (System.Collections.Hashtable) e ogni nome nelle coppie nome/valore è una
      proprietà dell'oggetto tabella hash.

      I comandi seguenti salvano la tabella hash del messaggio utente
      in una variabile $a e utilizzano il metodo con punto per
      visualizzare i valori.

          C:\PS> $a = @{
          >> Msg1="Immettere la password.";
          >> Msg2="Il parametro path è obbligatorio.";
          >> Msg3="L'alias di Get-Command è gcm.";
          >> }

          C:\PS> $a
          Nome                           Valore
          ----                           -----
          Msg1                    Immettere la password.
          Msg3                    L'alias di Get-Command è gcm.
          Msg2                    Il parametro path è obbligatorio.

          C:\PS> $a.Msg1
          Immettere la password.

      Le tabelle hash non sono limitate a un tipo di dati. È
      possibile immettere qualsiasi tipo di dati in una tabella hash
      e combinare più tipi di dati in una sola tabella hash. Ad esempio,
      è possibile creare una tabella hash contenente un valore intero,
      una chiamata a un cmdlet e una stringa.

  Ordinamento di tabelle hash
      Per disporre in ordine alfabetico la tabella hash in base alle
      chiavi o ai valori, utilizzare il metodo GetEnumerator delle
      tabelle hash per ottenere le chiavi e i valori nella tabella
      hash, quindi utilizzare il cmdlet Sort-Object per ordinarle.

      Ad esempio, il comando seguente dispone la tabella hash in $a
      in ordine alfabetico in base alle chiavi.

          C:\PS> $a.getenumerator() | sort-object -property key

          Nome                           Valore
          ----                           -----
          Msg1                           Immettere la password.
          Msg2                           Il parametro path è obbligatorio.
          Msg3                           L'alias di Get-Command è gcm.

      Il comando seguente utilizza lo stesso metodo per ordinare i
      valori hash in ordine decrescente.

          C:\PS> $a.getenumerator() | sort-object -property value -descending

          Nome                           Valore
          ----                           -----
          Msg2                           Il parametro path è obbligatorio.
          Msg3                           L'alias di Get-Command è gcm.
          Msg1                           Immettere la password.

  ConvertFrom-StringData
      Il cmdlet ConvertFrom-StringData converte una stringa o una
      stringa here di coppie name/value in una tabella hash. È possibile
      utilizzare in modo sicuro il cmdlet ConvertFrom-StringData nella
      sezione Dati di uno script e con il cmdlet Import-LocalizedData per
      visualizzare i messaggi utente nelle impostazioni cultura dell'interfaccia
      utente dell'utente corrente.

      Le stringhe here sono particolarmente utili quando i valori
      nella tabella hash includono virgolette. Per ulteriori
      informazioni sulle stringhe here, vedere about_Quoting_Rules.

      Nell'esempio seguente viene illustrato come creare una stringa
      here dei messaggi utente dell'esempio precedente e come utilizzare
      ConvertFrom-StringData per convertirli da stringa a tabella hash.

      Il comando seguente crea una stringa here delle coppie
      nome/valore, quindi lo salva nella variabile $string.

          C:\PS> $string = @"
          Msg1="Immettere la password."
          Msg2="Il parametro path è obbligatorio." Msg3="L'alias di
          Get-Command è gcm." "@

    Questo comando utilizza il cmdlet ConvertFrom-StringData per
    convertire la stringa here in una tabella hash.

        C:\PS> convertfrom-stringdata $string

        Nome                           Valore
        ----                           -----
        Msg3                           "L'alias di Get-Command è gcm."
        Msg2                           "Il parametro path è obbligatorio."
        Msg1                           "Immettere la password."

VEDERE ANCHE
    about_Arrays
    about_Quoting_Rules
    about_Script_Internationalization
    ConvertFrom-StringData
    Import-LocalizedData


about_History

ARGOMENTO
    about_History

DESCRIZIONE BREVE
    Descrive come recuperare ed eseguire comandi nella cronologia dei
    comandi.

DESCRIZIONE DETTAGLIATA
    Quando si immette un comando al prompt dei comandi, in Windows
    PowerShell viene salvato nella cronologia dei comandi. È possibile
    utilizzare i comandi salvati nella cronologia come un record del
    proprio lavoro e chiamarli ed eseguirli dalla cronologia stessa.

  Cmdlet della cronologia
      In Windows PowerShell è disponibile un insieme di cmdlet
      relativi alla gestione della cronologia dei comandi.

          Cmdlet (Alias)       Descrizione
          -------------------  ------------------------------------------
          Get-History (h)      Ottiene la cronologia dei comandi.

          Invoke-History (r)   Esegue un comando nella cronologia dei comandi.

          Add-History          Aggiunge un comando alla cronologia dei comandi.

          Clear-History (clh)  Elimina i comandi dalla cronologia dei comandi.

  Tasti di scelta rapida per la gestione della cronologia
      Nella console di Windows PowerShell è possibile utilizzare i
      tasti di scelta rapida seguenti per gestire la cronologia dei
      comandi.

      Per altre applicazioni host, vedere la documentazione del prodotto.

          Utilizzare questo tasto      Per eseguire questa azione
          -------------                ------------------------
          FRECCIA SU                   Visualizzare il comando precedente.

          FRECCIA GIÙ                  Visualizzare il comando successivo.

          F7                           Visualizzare la cronologia dei comandi. Per
                                       nascondere la cronologia, premere ESC.

          F8                           Trovare un comando. Digitare uno o più
                                       caratteri, quindi premere F8.
                                       Per l'istanza successiva, premere
                                       nuovamente F8.

          F9                           Trovare un comando in base all'ID cronologia.
                                       Digitare l'ID cronologia, quindi premere F9.
                                       Per trovare l'ID, premere F7.

  MaximumHistoryCount
      La variabile di preferenza $MaximumHistoryCount determina il numero
      massimo di comandi che è possibile salvare nella cronologia dei comandi di
      Windows PowerShell.
      Il valore predefinito è 64, di conseguenza verranno salvati i
      64 comandi più recenti. Il valore della variabile può tuttavia
      essere modificato.

      Ad esempio, il comando seguente aumenta a 100 il valore di
      $MaximumHistoryCount:

          $MaximumHistoryCount = 100

      Per applicare l'impostazione, riavviare Windows PowerShell.

      Per salvare il nuovo valore della variabile per tutte le sessioni di
      Windows PowerShell, aggiungere l'istruzione di assegnazione a un
      profilo di Windows PowerShell.
      Per ulteriori informazioni, vedere about_Profiles.

  Ordine dei comandi nella cronologia
      I comandi vengono aggiunti alla cronologia al termine della loro
      esecuzione, non alla loro immissione. Se il completamento dei comandi
      richiede del tempo o vengono eseguiti in un prompt nidificato, è
      possibile che non siano ordinati nella cronologia. (I comandi
      eseguiti in un prompt nidificato vengono completati solo quando si
      esce dal livello del prompt.)

VEDERE ANCHE
    about_Line_Editing
    about_Variables
    about_Preference_Variables


about_If

ARGOMENTO
    about_If

DESCRIZIONE BREVE
    Descrive un comando del linguaggio che è possibile utilizzare per
    eseguire elenchi di istruzioni in base ai risultati di uno o più test
    condizionali.

DESCRIZIONE DETTAGLIATA
    È possibile utilizzare l'istruzione If per eseguire blocchi di
    codice se il test condizionale specificato restituisce true. È inoltre
    possibile specificare uno o più test condizionali aggiuntivi da
    eseguire se tutti i test precedenti hanno restituito false. È infine
    possibile specificare un blocco di codice aggiuntivo che viene
    eseguito se nessun altro test condizionale restituisce il valore true.

  Sintassi
    Di seguito viene illustrata la sintassi dell'istruzione If:

        if (<test1>)
            {<elenco istruzioni 1>}
        [elseif (<test2>)
            {<elenco istruzioni 2>}]
        [else
            {<elenco istruzioni 3>}]

    Quando si esegue un'istruzione If, l'espressione condizionale <test1>
    restituisce true o false. Se <test1> è true, viene eseguito <elenco
    istruzioni 1> e l'istruzione If viene chiusa.
    Se <test1> è false, viene valutata la condizione specificata
    dall'istruzione condizionale <test2>.

    Se <test2> è true, viene eseguito <elenco istruzioni 2> e
    l'istruzione If viene chiusa. Se <test1> e <test2> restituiscono
    entrambi false, viene eseguito il blocco di codice <elenco
    istruzioni 3> e
    L'istruzione IF viene chiusa.

    È possibile utilizzare più istruzioni Elseif per concatenare una
    serie di test condizionali affinché ciascun test venga eseguito
    solo se tutti i test precedenti hanno restituito false. Se è
    necessario creare un'istruzione If contenente molte istruzioni
    Elseif, si consideri l'utilizzo di un'istruzione Switch.

  Esempi
    L'istruzione If più semplice contiene un solo comando e nessuna
    istruzione Elseif o Else. Di seguito viene illustrata la forma
    più semplice di istruzione If:

        if ($a -gt 2)
        {
            Write-Host "Il valore $a è maggiore di 2."
        }

    In questo esempio, se il valore della variabile $a è maggiore di 2, la
    condizione restituisce true e l'elenco di istruzioni viene eseguito.
    Se invece il valore della variabile $a è minore o uguale a 2 oppure
    non corrisponde a una variabile esistente, non viene visualizzato nessun
    messaggio. Per visualizzare un messaggio quando il valore della
    variabile $a è minore o uguale a 2, è possibile aggiungere
    un'istruzione Else, come illustrato nell'esempio seguente:

        if ($a -gt 2)
        {
            Write-Host "Il valore $a è maggiore di 2."
        }
        else
        {
            Write-Host "Il valore $a è minore di o uguale a 2, non è stato
        creato o non è stato inizializzato."
        }

    Per migliorare ulteriormente questo esempio, è possibile utilizzare
    l'istruzione Elseif per visualizzare un messaggio quando il valore della
    variabile $a è uguale a 2, come illustrato nell'esempio seguente:

        if ($a -gt 2)
        {
            Write-Host "Il valore $a è maggiore di 2."
        }
        elseif ($a -eq 2)
        {
            Write-Host "Il valore $a è uguale a 2."
        }
        else
        {
            Write-Host "Il valore $a è minore di 2, non è stato
        creato o non è stato inizializzato."
        }

VEDERE ANCHE
    about_Comparison_Operators
    about_Switch


about_Jobs

ARGOMENTO
    about_Jobs

DESCRIZIONE BREVE
    Fornisce informazioni sul modo in cui i processi in background
    eseguono un comando o un'espressione in background senza
    interagire con la sessione corrente.

DESCRIZIONE DETTAGLIATA
    In questo argomento viene illustrato come eseguire processi in
    background in Windows PowerShell in un computer locale. Per
    informazioni sull'esecuzione di processi in background in
    computer remoti, vedere about_Remote_Jobs.

    Quando si avvia un processo in background, viene immediatamente
    visualizzato il prompt dei comandi, anche se il completamento del
    processo richiede più tempo. Durante l'esecuzione del processo, è
    possibile continuare a lavorare nella sessione senza interruzione.

    Importante: i processi in background avviati mediante il
                parametro Start-Job o AsJob di Invoke-Command sono basati
                sull'infrastruttura remota di Windows PowerShell. Per utilizzare
                queste funzionalità, è necessario configurare Windows PowerShell
                per la comunicazione remota, anche se il processo in background
                viene eseguito unicamente nel computer locale. Per ulteriori
                informazioni, vedere about_Remote_Requirements.

 MODALITÀ DI AVVIO DI UN PROCESSO NEL COMPUTER LOCALE
    Per avviare un processo in background nel computer locale,
    utilizzare il cmdlet Start-Job.

    Per scrivere un comando Start-Job, racchiudere il comando eseguito dal
    processo tra parentesi graffe ( { } ). Utilizzare il parametro
    ScriptBlock per specificare il comando.

    Il comando seguente avvia un processo in background che esegue un
    comando Get-Process nel computer locale.

        start-job -scriptblock {get-process}

    Il comando Start-Job restituisce un oggetto che rappresenta il
    processo. L'oggetto processo contiene informazioni utili sul
    processo, ma non contiene i relativi risultati.

    Salvare l'oggetto processo in una variabile, quindi utilizzarlo
    con gli altri cmdlet Job per gestire il processo in background.
    Il comando seguente avvia un oggetto processo e salva l'oggetto
    processo risultante nella variabile $job.

        $job = start-job -scriptblock {get-process}

    È inoltre possibile utilizzare il cmdlet Get-Job per ottenere
    oggetti che rappresentano i processi avviati nella sessione
    corrente. Get-Job restituisce lo stesso oggetto processo
    restituito da Start-Job.

 OTTENERE OGGETTI PROCESSO

    Per ottenere oggetti che rappresentano i processi in background
    avviati nella sessione corrente, utilizzare il cmdlet Get-Job. Senza i
    parametri, Get-Job restituisce tutti i processi avviati nella
    sessione corrente.

    Ad esempio, il comando seguente ottiene i processi nella sessione
    corrente.

    get-job

        Id  Name  State      HasMoreData  Location   Command
        --  ----  -----      -----------  --------   -------
        1   Job1  Running    True         localhost  get-process

    È inoltre possibile salvare l'oggetto processo in una variabile e
    utilizzarlo per rappresentare il processo in un comando
    successivo. Il comando seguente ottiene il processo con ID 1 e lo
    salva nella variabile $job.

       $job = get-job -id 1

    L'oggetto processo contiene lo stato del processo, che indica se
    il processo è stato completato o meno. Un processo completato
    presenta lo stato "Complete" o "Failed". È inoltre possibile che
    un processo sia bloccato o in esecuzione.

    get-job

        Id  Name  State      HasMoreData  Location   Command
        --  ----  -----      -----------  --------   -------
        1   Job1  Complete    True         localhost  get-process

 OTTENERE I RISULTATI DI UN PROCESSO

    Quando si esegue un processo in background, i risultati non vengono
    visualizzati immediatamente. Il cmdlet Start-Job restituisce invece
    un oggetto processo che rappresenta il processo, ma non contiene i
    risultati. Per ottenere i risultati di un processo in background,
    utilizzare il cmdlet Receive-Job.

    Il comando seguente utilizza il cmdlet Receive-Job per ottenere i
    risultati del processo. Utilizza un oggetto processo salvato
    nella variabile $job per identificare il processo.

    receive-job -job $job

     Il cmdlet Receive-Job restituisce i risultati del processo.

           Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)    Id ProcessName
           -------  ------    -----      ----- -----   ------    -- -----------
               103       4    11328       9692    56           1176 audiodg
               804      14    12228      14108   100   101.74  1740 CcmExec
               668       7     2672       6168   104    32.26   488 csrss
       ...

     È inoltre possibile salvare i risultati di un processo in una
     variabile. Il comando seguente salva i risultati del processo
     presenti nella variabile $job nella variabile $results.

    $results = receive-job -job $job

     È altresì possibile salvare i risultati del processo in un file
     mediante l'operatore di rendirizzamento (>) o il cmdlet
     Out-File. Il comando seguente utilizza l'operatore di
     reindirizzamento per salvare i risultati del processo presenti
     nella variabile $job nel file Results.txt.

        receive-job -job $job > results.txt

 OTTENERE E MANTENERE RISULTATI PARZIALI DI PROCESSO

    Il cmdlet Receive-Job restituisce i risultati di un processo in
    background. Se il processo è completo, Receive-Job restituisce lo
    stato Complete del processo. Se il processo è ancora in
    esecuzione, Receive-Job ottiene i risultati generati fino a
    questo momento. È possibile eseguire nuovamente i comandi
    Receive-Job per ottenere i risultati rimanenti.

    Quando Receive-Job restituisce risultati, per impostazione
    predefinita vengono eliminati i risultati dalla cache in cui sono
    archiviati i risultati del processo. Se si esegue un altro
    comando Receive-Job, si ottengono unicamente i risultati non
    ancora ricevuti.

    Mediante i comandi seguenti vengono mostrati i risultati dei
    comandi Receive-Job eseguiti prima del completamento del processo.

    C:\PS> receive-job -job $job

        Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
        -------  ------    -----      ----- -----   ------     -- -----------
            103       4    11328       9692    56            1176 audiodg
            804      14    12228      14108   100   101.74   1740 CcmExec

    C:\PS> receive-job -job $job

        Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
        -------  ------    -----      ----- -----   ------     -- -----------
             68       3     2632        664    29     0.36   1388 ccmsetup
            749      22    21468      19940   203   122.13   3644 communicator
            905       7     2980       2628    34   197.97    424 csrss
           1121      25    28408      32940   174   430.14   3048 explorer

    Per impedire che i risultati del processo restituiti vengano eliminati
    mediante Receive-Job, utilizzare il parametro Keep. Di conseguenza,
    Receive-Job restituisce tutti i risultati generati fino a questo momento.

    Mediante i comandi seguenti viene mostrato l'effetto dell'utilizzo del
    parametro Keep su un processo non ancora completato.

    C:\PS> receive-job -job $job -keep

        Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
        -------  ------    -----      ----- -----   ------     -- -----------
            103       4    11328       9692    56            1176 audiodg
            804      14    12228      14108   100   101.74   1740 CcmExec

    C:\PS> receive-job -job $job -keep

        Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
        -------  ------    -----      ----- -----   ------     -- -----------
            103       4    11328       9692    56            1176 audiodg
            804      14    12228      14108   100   101.74   1740 CcmExec
             68       3     2632        664    29     0.36   1388 ccmsetup
            749      22    21468      19940   203   122.13   3644 communicator
            905       7     2980       2628    34   197.97    424 csrss
           1121      25    28408      32940   174   430.14   3048 explorer

IN ATTESA DEI RISULTATI

    Se si esegue un comando il cui completamento richiede tempo, è
    possibile utilizzare le proprietà dell'oggetto processo per
    determinare quando il processo è completato. Il comando seguente
    utilizza l'oggetto Get-Job per ottenere tutti i processi in
    background nella sessione corrente.

    get-job

    I risultati vengono visualizzati in una tabella. Lo stato del
    processo viene visualizzato nella colonna State.

        Id  Name  State      HasMoreData  Location   Command
        --  ----  -----      -----------  --------   -------
        1   Job1  Complete    True         localhost  get-process
        2   Job2  Running     True         localhost  get-eventlog -log syst...
        3   Job3  Complete    True         localhost  dir -path c:\* -recurse

    In questo caso, la proprietà State rivela che Job 2 è ancora in
    esecuzione. Se si dovesse utilizzare il cmdlet Receive-Job per
    ottenere ora i risultati del processo, tali risultati sarebbero
    incompleti. È possibile utilizzare il cmdlet Receive-Job
    ripetutamente per ottenere tutti i risultati. Per impostazione
    predefinita, ogni volta che viene utilizzato, si ottengono
    unicamente i risultati non ancora ricevuti, anche se è possibile
    utilizzare il parametro Keep del cmdlet Receive-Job per mantenere
    i risultati, anche se sono già stati ricevuti.

    A questo punto, è possibile scrivere i risultati su un file e
    aggiungere i risultati man mano che vengono ricevuti. In
    alternativa, è possibile attendere e controllare lo stato del
    processo in un secondo momento.

    È inoltre possibile utilizzare il cmdlet Wait-Job per attendere
    altri o tutti i risultati del processo. Wait-Job consente di
    attendere un particolare processo, tutti i processi o tutti
    quelli che devono essere completati.

    Il comando seguente utilizza il cmdlet Wait-Job per attendere un
    processo con ID 10.

    wait-job -ID 10

    Di conseguenza, il prompt di Windows PowerShell viene eliminato
    finché il processo non viene completato.

    È inoltre possibile attendere un periodo di tempo prestabilito.
    Questo comando utilizza il parametro Timeout per limitare
    l'attesa a 120 secondi. Alla scadenza del tempo, il prompt dei
    comandi viene nuovamente visualizzato, ma il processo continua a
    essere eseguito in background.

    wait-job -ID 10 -timeout 120

ARRESTO DI UN PROCESSO

    Per arrestare un processo in background, utilizzare il cmdlet
    Stop-Job. Il comando seguente avvia un processo per ottenere ogni
    voce del registro eventi di sistema. L'oggetto processo viene
    salvato nella variabile $job.

    $job = start-job -scriptblock {get-eventlog -log system}

    Il comando seguente arresta il processo. Viene utilizzato un operatore
    pipeline (|) per inviare a Stop-Job il processo presente nella
    variabile $job.

    $job | stop-job

ELIMINAZIONE DI UN PROCESSO

    Per eliminare un processo in background, utilizzare il cmdlet
    Remove-Job. Il comando consente elimina il processo nella
    variabile $job.

    remove-job -job $job

ANALISI DELLE CAUSE DEL MANCATO COMPLETAMENTO DI UN PROCESSO

    Per capire perché un processo non è stato completato, utilizzare la
    sottoproprietà Reason dell'oggetto processo.

    Il comando seguente avvia un processo senza le credenziali necessarie.
    L'oggetto processo viene salvato nella variabile $job.

         $job = start-job -scriptblock {new-item -path HKLM:\Software\MyCompany}

         Id   Name  State    HasMoreData  Location   Command
         --   ----  -----    -----------  --------   -------
         1    Job1  Failed   False         localhost  new-item -path HKLM:\S...

    Il comando seguente utilizza la proprietà Reason per trovare
    l'errore che ha impedito il completamento del processo.

         $job.ChildJobs[0].JobStateInfo.Reason

    In questo caso, il processo non è stato completato perché nel
    computer remoto sono state richieste credenziali esplicite per
    l'esecuzione del comando. Il valore della proprietà Reason è:

         Connessione al server remoto non riuscita con il seguente
         messaggio di errore: Accesso negato.

CMDLET JOB

    Start-Job        Avvia un processo in background in un computer locale.

    Get-Job          Ottiene i processi in background avviati nella sessione corrente.

    Receive-Job      Ottiene i risultati dei processi in background.

    Stop-Job         Arresta un processo in background.

    Wait-Job         Elimina il prompt dei comandi finché uno o tutti i processi
                     non sono stati completati.

    Remove-Job       Elimina un processo in background.

    Invoke-Command   Il parametro AsJob esegue qualsiasi comando come
                     processo in background in un computer remoto. È inoltre possibile
                     utilizzare Invoke-Command per eseguire in modalità remota
                     qualsiasi comando di processo, incluso un comando Start-Job.

VEDERE ANCHE
   about_Remote_Jobs
   about_Job_Details
   about_Remote
   about_PSSessions
   Start-Job
   Get-Job
   Receive-Job
   Stop-Job
   Wait-Job
   Remove-Job
   Invoke-Command


about_Job_Details

ARGOMENTO
  about_Job_Details

DESCRIZIONE BREVE
  Fornisce dettagli sui processi in background in computer locali e
  remoti.

DESCRIZIONE DETTAGLIATA
   In questo argomento viene illustrato il concetto di processo in
   background e vengono fornite informazioni tecniche sul
   funzionamento di tali processi in Windows PowerShell.

   Questo argomento è un supplemento agli argomenti about_Jobs e
   about_Remote_Jobs.

   Importante: i processi in background avviati mediante il parametro
               Start-Job o AsJob di Invoke-Command sono basati sull'infrastruttura
               remota di Windows PowerShell. Per utilizzare queste funzionalità,
               è necessario configurare Windows PowerShell per la comunicazione
               remota, anche se il processo in background viene eseguito
               unicamente nel computer locale. Per ulteriori informazioni, vedere
               about_Remote_Requirements.

 INFORMAZIONI SUI PROCESSI IN BACKGROUND
    Un processo in background esegue un comando o un'espressione in
    modo asincrono. Potrebbe eseguire un cmdlet, una funzione, uno
    script o qualsiasi altra attività basata su comandi. È stato
    progettato per eseguire comandi che richiedono un periodo di
    tempo prolungato, tuttavia è possibile utilizzarlo per eseguire
    in background qualsiasi comando.

    Quando viene eseguito un comando sincrono, il prompt dei comandi
    di Windows PowerShell viene eliminato finché il comando non
    risulta completato. Il prompt di Windows PowerShell non viene
    eliminato da un processo in background. Un comando che avvia un
    processo in background restituisce un oggetto processo. Il prompt
    viene visualizzato immediatamente affinché sia possibile lavorare
    su altre attività durante l'esecuzione del processo in background.

    Tuttavia, quando si avvia un processo in background, i risultati
    non vengono restituiti immediatamente, anche se l'esecuzione del
    processo è molto rapida. L'oggetto processo restituito contiene
    informazioni utili sul processo, ma non contiene i risultati
    relativi. È necessario eseguire un comando separato per ottenere
    i risultati del processo. È inoltre possibile eseguire comandi
    per arrestare il processo, per attenderne il completamento e per
    eliminarlo.

    Per mantenere indipendente da altri comandi il calcolo del tempo
    di un processo in background, eseguire ogni processo in background nel
    proprio ambiente di Windows PowerShell ("sessione"). Può trattarsi
    di una connessione temporanea creata unicamente per eseguire il processo
    che verrà poi distrutta o di una sessione permanente (PSSession)
    utilizzabile per eseguire più comandi o processi correlati.

 UTILIZZO DEI CMDLET JOB
    Utilizzare un comando Start-Job per avviare un processo in
    background in un computer locale. Start-Job restituisce un
    oggetto processo. È inoltre possibile ottenere oggetti che
    rappresentano i processi avviati nel computer locale mediante il
    cmdlet Get-Job.

    Per ottenere i risultati del processo, utilizzare un comando
    Receive-Job. Se il processo non è completo, Receive-Job
    restituisce risultati parziali. È inoltre possibile utilizzare il
    cmdlet Wait-Job per eliminare il prompt dei comandi finché uno o
    tutti i processi avviati nella sessione non sono stati completati.

    Per arrestare un processo in background, utilizzare il cmdlet
    Stop-Job. Per eliminare un processo, utilizzare il cmdlet Remove-Job.

    Per ulteriori informazioni sul funzionamento dei cmdlet, vedere
    l'argomento della Guida per ogni cmdlet, nonché l'argomento
    about_Jobs.

 AVVIO DI PROCESSI IN BACKGROUND IN COMPUTER REMOTI
    È possibile creare e gestire processi in background in un
    computer locale o remoto. Per eseguire un processo in background in un
    computer remoto, utilizzare il parametro AsJob di un cmdlet quale
    Invoke-Command oppure utilizzare il cmdlet Invoke-Command per
    eseguire un comando Start-Job in un computer remoto. È inoltre
    possibile avviare un processo in background in una sessione interattiva.

    Per ulteriori informazioni sui processi in background remoti, vedere
    about_Remote_Jobs.

 PROCESSI FIGLIO
    Ogni processo in background comprende un processo padre e uno o
    più processi figlio. Nei processi avviati mediante Start-Job o il
    parametro AsJob di Invoke-Command, il processo padre è un
    elemento esecutivo. Non esegue comandi né restituisce risultati.
    I comandi vengono eseguiti dai processi figlio. (I processi
    avviati mediante gli altri cmdlet potrebbero avere un
    funzionamento diverso.)

    I processi figlio vengono archiviati nella proprietà ChildJobs
    dell'oggetto processo padre. La proprietà ChildJobs può contenere
    uno o più oggetti processo figlio. Gli oggetti processo figlio
    presentano un nome, un ID e un ID istanza diversi da quelli del
    processo padre. Di conseguenza, è possibile gestire i processi
    padre e figlio singolarmente o come unità.

    Per visualizzare i processi padre e figlio di un processo,
    utilizzare il cmdlet Get-Job per ottenere il processo padre, quindi
    reindirizzare il processo a un comando Format-List per visualizzare
    le proprietà Name e ChildJobs degli oggetti, come illustrato nel
    comando seguente.

        C:\PS> get-job | format-list -property Name, ChildJobs

        Name          : Job1
        ChildJobs     : {Job2}

    È inoltre possibile utilizzare un comando Get-Job sul processo
    figlio, come illustrato nel comando seguente:

        C:\PS> get-job job2

        Id    Name   State      HasMoreData   Location    Command
        --    ----   -----      -----------   --------    -------
        2     Job2   Completed  True          localhost   get-process

    La configurazione del processo figlio dipende dal comando
    utilizzato per avviare il processo.

       -- Quando si utilizza Start-Job per avviare un processo in un
          computer locale, il processo comprende un processo padre
          esecutivo e un processo figlio che esegue il comando.

       -- Quando si utilizza il parametro AsJob di Invoke-Command per
          avviare un processo in uno o più computer, il processo
          comprende un processo padre esecutivo e un processo figlio
          per ogni processo eseguito in ciascun computer.

       -- Quando si utilizza Invoke-Command per eseguire un comando
          Start-Job in uno o più computer remoti, il risultato è
          quello che si otterrebbe eseguendo un comando locale in
          ciascun computer remoto. Il comando restituisce un oggetto
          processo per ogni computer. L'oggetto processo comprende un
          processo padre esecutivo e un processo figlio che esegue il
          comando.

    Il processo padre rappresenta tutti i processi figlio. Quando si
    gestisce un processo padre, si gestiscono anche i processi figlio
    associati. Ad esempio, quando si arresta un processo padre, si
    arrestano anche tutti i processi figlio. Quando si ottengono i
    risultati di un processo padre, si ottengono anche i risultati di
    tutti i processi figlio.

    È tuttavia possibile gestire i processi figlio singolarmente. È
    consigliabile procedere in questo modo quando si desidera
    analizzare un problema relativo a un processo o ottenere i
    risultati di uno solo di una serie di processi figlio avviati
    mediante il parametro AsJob di Invoke-Command. Il simbolo di
    apice inverso [`] è il carattere di continuazione.

    Il comando seguente utilizza il parametro AsJob di Invoke-Command
    per avviare i processi in background nel computer locale e in due
    computer remoti. Il comando salva il processo nella variabile $j.

        C:\PS> $j = invoke-command -computername localhost, Server01, Server02 `
               -command {get-date} -AsJob

    Quando si visualizzano le proprietà Name e ChildJob del processo
    in $j, viene indicato che il comando ha restituito un oggetto
    processo con tre processi figlio, uno per ogni computer.

        C:\PS> $j | format-list name, childjobs

        Name      : Job3
        ChildJobs : {Job4, Job5, Job6}

    Quando si visualizza il processo padre, viene indicato che il
    processo non è riuscito.

        C:\PS> $j

        Id   Name    State   HasMoreData     Location             Command
        --   ----    -----   -----------     --------             -------
        1    Job3    Failed  True            localhost,server... get-date

    Quando si esegue un comando Get-Job in ognuno dei processi
    figlio, viene indicato che un solo processo non è riuscito.

        PS C:\ps-test> get-job job4, job5, job6

        Id   Name   State      HasMoreData     Location           Command
        --   ----   -----      -----------     --------           -------
        4    Job4   Completed  True            localhost          get-date
        5    Job5   Failed     False           Server01           get-date
        6    Job6   Completed  True            Server02           get-date

    Per ottenere i risultati di tutti i processi figlio, utilizzare
    il cmdlet Receive-Job per ottenere i risultati del processo
    padre. È inoltre possibile ottenere i risultati di un particolare
    processo figlio, come illustrato nel comando seguente.

        C:\PS> receive-job -job6 -keep | format-table ComputerName,
        DateTime -auto

        ComputerName DateTime
        ------------ --------
        Server02     giovedì 13 marzo 2008 16.16.03

    La funzionalità dei processi figlio dei processi in background di
    Windows PowerShell consentono maggiore controllo sui processi
    eseguiti.

VEDERE ANCHE
    about_Jobs
    about_Remote_Jobs
    about_Remote
    Invoke-Command
    Start-Job
    Get-Job
    Wait-Job
    Stop-Job
    Remove-Job
    New-PSSession
    Enter-PSSession
    Exit-PSSession


about_Join

ARGOMENTO
    about_join

DESCRIZIONE BREVE
    Descrive in che modo l'operatore join (-join) combina più
    stringhe in una sola.

DESCRIZIONE DETTAGLIATA
    L'operatore join concatena un set di stringhe in una sola. Le stringhe
    vengono aggiunte alla stringa risultante nell'ordine in cui vengono
    visualizzate nel comando.

  Sintassi
      Nel diagramma seguente viene illustrata la sintassi
      dell'operatore join.

    -Join <String[]>
    <String[]> -Join <Delimiter>

  Parametri
      String[]
          Specifica una o più stringhe da unire.

      Delimiter
      Specifica uno o più caratteri posizionati tra le stringhe concatenate.
          L'impostazione predefinita non prevede alcun delimitatore ("").

  Commenti
      L'operatore join unario (-join <string[]>) ha la priorità più
      elevata di una virgola. Pertanto, se si invia un elenco di stringhe separato
      da virgole all'operatore join unario, solo la prima stringa
      (prima della prima virgola) viene inviata all'operatore join.

      Per utilizzare l'operatore join unario, racchiudere le stringhe tra
      parentesi o archiviarle in una variabile, quindi inviare la variabile
      da unire.

      Ad esempio:

          -join "a", "b", "c"
          a
          b
          c

          -join ("a", "b", "c")
          abc

          $z = "a", "b", "c"
          -join $z
          abc

  Esempi
      Nell'istruzione seguente vengono unite tre stringhe:

          -join ("Windows", "PowerShell", "2.0")
          WindowsPowerShell2.0

      Nell'istruzione seguente vengono unite tre stringhe delimitate
      da uno spazio:

          "Windows", "PowerShell", "2.0" -join " "
          Windows PowerShell 2.0

      Nelle istruzioni seguenti viene utilizzato un delimitatore a
      più caratteri per unire tre stringhe:

          $a = "WIND", "SP", "ERSHELL"
          $a -join "OW"
          WINDOWSPOWERSHELL

      Con l'istruzione seguente vengono unite le righe di una stringa
      here in una sola stringa. Poiché una stringa here è una stringa, è
      necessario suddividerne le righe prima di poterle unire. È possibile
      utilizzare questo metodo per riunire le stringhe in un file XML
      salvato in una stringa here:

          $a = @'
          a
          b
          c
          '@

          (-split $a) -join " "
          a b c

VEDERE ANCHE
    about_Operators
    about_Comparison_Operators
    about_Split


about_Language_Keywords

ARGOMENTO
    about_Language_Keywords

DESCRIZIONE BREVE
    Descrive le parole chiave nel linguaggio di scripting di Windows
    PowerShell.

DESCRIZIONE DETTAGLIATA
    In Windows PowerShell sono presenti le parole chiave seguenti.
    Per ulteriori informazioni, vedere l'argomento relativo alla
    parola chiave e le informazioni riportate dopo la tabella.

        Parola chiave            Riferimento
        -------            ---------
        Begin              about_Functions, about_Functions_Advanced
        Break              about_Break, about_Trap
        Catch              about_Try_Catch_Finally
        Continue           about_Continue, about_Trap
        Data               about_Data_Sections
        Do                 about_Do, about_While
        Dynamicparam       about_Functions_Advanced_Parameters
        Else               about_If
        Elseif             about_If
        End                about_Functions, about_Functions_Advanced_Methods
        Exit               Descritto in questo argomento.
        Filter             about_Functions
        Finally            about_Try_Catch_Finally
        For                about_For
        Foreach            about_Foreach
        From               Riservato per utilizzi futuri.
        Function           about_Functions, about_Functions_Advanced
        If                 about_If
        In                 about_Foreach
        Param              about_Functions
        Process            about_Functions, about_Functions_Advanced
        Return             about_Return
        Switch             about_Switch
        Throw              about_Throw, about_Functions_Advanced_Methods
        Trap               about_Trap, about_Break, about_Try_Catch_Finally
        Try                about_Try_Catch_Finally
        Until              about_Do
        While              about_While, about_Do

  Parole chiave del linguaggio

      Begin
      -----

      Specifica una parte del corpo di una funzione, insieme alle
      parole chiave Dynamicparam, Process ed End. L'elenco di
      istruzioni Begin viene eseguito una volta prima che qualsiasi
      oggetto venga ricevuto dalla pipeline.

      Sintassi:

          function <nome> {
              dynamicparam {<elenco istruzioni>}
              begin {<elenco istruzioni>}
              process {<elenco istruzioni>}
              end {<elenco istruzioni>}
          }

      Break
      -----

      Causa l'uscita di uno script da un ciclo.

      Sintassi:

          while (<condizione>) {
              <istruzioni>
                   ...
              break
                   ...
              <istruzioni>
          }

      Catch
      -----

      Specifica un elenco di istruzioni da eseguire se si verifica un
      errore nell'elenco di istruzioni Try associato. Un tipo di
      errore richiede l'uso di parentesi. La seconda coppia di
      parentesi indica che il tipo di errore è facoltativo.

      Sintassi:

          try {<elenco istruzioni>}
          catch [[<tipo di errore>]] {<elenco istruzioni>}

      Continue
      --------

      Causa l'arresto dell'esecuzione di un ciclo da parte di uno
      script e il ritorno alla condizione. Se la condizione viene
      soddisfatta, lo script inizia nuovamente il ciclo.

      Sintassi:

          while (<condizione>) {
              <istruzioni>
                  ...
              continue
                  ...
              <istruzioni>
          }

      Data
      ----

      In uno script, definisce una sezione che isola i dati dalla
      logica dello script. Può includere anche istruzioni If e alcuni
      comandi limitati.

      Sintassi:

      data <variabile> [-supportedCommand <nome-cmdlet>] {<contenuto
      consentito>}

      Do
      --

      Utilizzata con la parola chiave While o Until come costrutto di
      ciclo. In Windows PowerShell l'elenco di istruzioni viene
      eseguito almeno una volta, a differenza di un ciclo con la
      parola chiave While.

      Sintassi:

          do {<elenco istruzioni>} while (<condizione>)

          do {<elenco istruzioni>} until (<condizione>)

      Dynamicparam
      ------------

      Specifica una parte del corpo di una funzione, insieme alle
      parole chiave Begin, Process ed End. I parametri dinamici
      vengono aggiunti in fase di esecuzione.

      Sintassi:

          function <nome> {
              dynamicparam {<elenco istruzioni>}
              begin {<elenco istruzioni>}
              process {<elenco istruzioni>}
              end {<elenco istruzioni>}
          }

      Else
      ----

      Utilizzata con la parola chiave If per specificare l'elenco di
      istruzioni predefinito.

      Sintassi:

          if (<condizione>) {<elenco istruzioni>}
          else {<elenco istruzioni>}

      Elseif
      ------

      Utilizzata con le parole chiave If ed Else parole per specificare
      istruzioni condizionali aggiuntive. La parola chiave Else è facoltativa.

      Sintassi:

          if (<condizione>) {<elenco istruzioni>}
          elseif (<condizione>) {<elenco istruzioni>}
          else {<elenco istruzioni>}

      End
      ---

      Specifica una parte del corpo di una funzione, insieme alle
      parole chiave Dynamicparam, Begin e Process. L'elenco di
      istruzioni End viene eseguito una volta dopo la ricezione di
      tutti gli oggetti dalla pipeline.

      Sintassi:

          function <nome> {
              dynamicparam {<elenco istruzioni>}
              begin {<elenco istruzioni>}
              process {<elenco istruzioni>}
              end {<elenco istruzioni>}
          }

      Exit
      ----

      Causa l'uscita di Windows PowerShell da uno script o da
      un'istanza di Windows PowerShell.

      Sintassi:

          exit

      Filter
      ------

      Specifica una funzione in cui l'elenco di istruzioni viene
      eseguito una volta per ogni oggetto di input. Ha lo stesso
      effetto di una funzione che contiene solo un blocco Process.

      Sintassi:

          filter <nome> {<elenco istruzioni>}

      Finally
      -------

      Definisce un elenco di istruzioni che viene eseguito dopo le
      istruzioni associate a Try e Catch. Un elenco di istruzioni
      Finally viene eseguito anche se si preme CTRL+C per uscire da
      uno script o se si utilizza la parola chiave Exit nello script.

      Sintassi:

          try {<elenco istruzioni>}
          catch [<tipo di errore>] {<elenco istruzioni>}
          finally {<elenco istruzioni>}

      For
      ---

      Definisce un ciclo tramite una condizione.

      Sintassi:

          for (<inizializzare>; <condizione>; <iterare>) {<elenco
          istruzioni>}

      Foreach
      -------

      Definisce un ciclo tramite ogni membro di una raccolta.

      Sintassi:

          foreach (<elemento> in <raccolta>){<elenco istruzioni>}

      From
      -----

      Riservato per utilizzi futuri.

      Function
      --------

      Crea un elenco di istruzioni denominato di codice riutilizzabile.
      È possibile assegnare un nome all'ambito al quale appartiene una funzione.
      È inoltre possibile specificare uno o più parametri denominati tramite
      la parola chiave Param. All'interno dell'elenco di istruzioni Function,
      è possibile includere gli elenchi di istruzioni Dynamicparam, Begin,
      Process ed End.

      Sintassi:

           function [<scope:>]<name> {
              param ([type]<$pname1> [, [type]<$pname2>])
              dynamicparam {<statement list>}
              begin {<statement list>}
              process {<statement list>}
              end {<statement list>}
         }

      È inoltre possibile definire uno o più parametri all'esterno
      dell'elenco di istruzioni dopo il nome della funzione.

      Sintassi:

          function [<scope:>]<name> [([type]<$pname1>, [[type]<$pname2>])] {
              dynamicparam {<statement list>}
              begin {<statement list>}
              process {<statement list>}
              end {<statement list>}
          }

      If
      --

      Definisce un'istruzione condizionale.

      Sintassi:

          if (<condizione>) {<elenco istruzioni>}

      In
      --

      Utilizzata in un'istruzione Foreach per creare un ciclo che
      utilizza ogni membro di una raccolta.

      Sintassi:

          foreach (<elemento> in <raccolta>){<elenco istruzioni>}

      Param
      -----

      Definisce i parametri in una funzione.

      Sintassi:

          function [<scope:>]<name> {
              param ([type]<$pname1>[, [[type]<$pname2>]])
              <statement list>
          }

      Process
      -------

      Specifica una parte del corpo di una funzione, insieme alle
      parole chiave Dynamicparam, Begin ed End. Quando un elenco di
      istruzioni Process riceve input dalla pipeline, l'elenco di
      istruzioni Process viene eseguito una volta per ogni elemento dalla
      pipeline. Se la pipeline non fornisce oggetti, l'elenco di istruzioni
      Process non viene eseguito. Se il comando è il primo nella pipeline,
      l'elenco di istruzioni Process viene eseguito una volta.

      Sintassi:

          function <nome> {
              dynamicparam {<elenco istruzioni>}
              begin {<elenco istruzioni>}
              process {<elenco istruzioni>}
              end {<elenco istruzioni>}
          }

      Return
      ------

      Causa l'uscita di Windows PowerShell dall'ambito corrente, ad
      esempio uno script o una funzione, e scrive l'espressione
      facoltativa nell'output.

      Sintassi:

          return [<espressione>]

      Switch
      ------

      Specifica diverse azioni da eseguire sugli elementi dalla
      pipeline o da un file. È possibile utilizzare uno dei modelli
      di sintassi seguenti.

      Sintassi 1:

          switch [-regex|-wildcard|-exact][-casesensitive] ( pipeline )
          {
              <stringa>|<numero>|<variabile>|{ <espressione> } {<elenco istruzioni>}
              <stringa>|<numero>|<variabile>|{ <espressione> } {<elenco istruzioni>}
                     ...
              default {<elenco istruzioni>}
          }

      Sintassi 2:

          switch [-regex|-wildcard|-exact][-casesensitive] -file
          nomefile {
              <stringa>|<numero>|<variabile>|{ <espressione> } {<elenco
              istruzioni>}
              <stringa>|<numero>|<variabile>|{ <espressione> } {<elenco
              istruzioni>}
              ...
              default {<elenco istruzioni>}
          }

      Throw
      -----

      Genera un oggetto come errore.

      Sintassi:

          throw [<oggetto>]

      Trap
      ----

      Definisce un elenco di istruzioni da eseguire se viene rilevato
      un errore. Un tipo di errore richiede l'uso di parentesi. La seconda
      coppia di parentesi indica che il tipo di errore è facoltativo.

      Sintassi:

          trap [[<tipo di errore>]] {<elenco istruzioni>}

      Try
      ---

      Definisce un elenco di istruzioni in cui verificare la presenza
      di errori durante l'esecuzione delle istruzioni. Se si verifica
      un errore, l'esecuzione di Windows PowerShell continua in
      un'istruzione Catch o Finally. Un tipo di errore richiede l'uso di
      parentesi. La seconda coppia di parentesi indica che il tipo di errore è
      facoltativo.

      Sintassi:

          try {<elenco istruzioni>}
          catch [[<tipo di errore>]] {<elenco istruzioni>}
          finally {<elenco istruzioni>}

      Until
      -----

      Utilizzata in un'istruzione Do come costrutto di ciclo in cui viene
      eseguito almeno una volta l'elenco di istruzioni.

      Sintassi:

          do {<elenco istruzioni>} until (<condizione>)

      While
      -----

      Utilizzata in un'istruzione Do come costrutto di ciclo in cui viene
      eseguito almeno una volta l'elenco di istruzioni.

      Sintassi:

          do {<elenco istruzioni>} while (<condizione>)

VEDERE ANCHE
         about_escape_characters
         about_special_characters
         about_wildcards


about_Line_Editing

ARGOMENTO
    about_Line_Editing

DESCRIZIONE BREVE
    Descrive come modificare i comandi al prompt dei comandi di Windows
    PowerShell.

DESCRIZIONE DETTAGLIATA
    La console di Windows PowerShell dispone di alcune funzionalità
    utili per semplificare la modifica di comandi al prompt dei comandi di
    Windows PowerShell.

    Spostamento a sinistra e a destra
        Per spostare il cursore di un carattere a sinistra, premere
        il tasto freccia SINISTRA. Per spostare il cursore di una parola
        a sinistra, premere CTRL+freccia SINISTRA. Per spostare il cursore
        di un carattere a destra, premere il tasto freccia DESTRA.
        Per spostare il cursore di una parola a destra, premere
        CTRL+freccia DESTRA.

    Inizio e fine riga
        Per passare all'inizio di una riga, premere HOME. Per passare
        alla fine di una riga, premere FINE.

    Eliminazione di caratteri
        Per eliminare il carattere che precede il cursore, premere
        BACKSPACE.
        Per eliminare il carattere che segue il cursore, premere CANC.

    Eliminazione del resto di una riga
        Per eliminare tutti i caratteri della riga successivi al cursore,
        premere CTRL+FINE.

    Modalità inserimento o sovrascrittura
        Per passare alla modalità sovrascrittura, premere INS. Per
        tornare alla modalità inserimento, premere nuovamente INS.

    Completamento tramite tasto TAB
        Per completare un comando, ad esempio il nome di un cmdlet,
        un parametro del cmdlet o un percorso, premere TAB. Se il primo
        suggerimento visualizzato non corrisponde a quello desiderato, premere
        nuovamente TAB.

VEDERE ANCHE
    about_Command_Syntax
    about_Path_Syntax


about_Locations

ARGOMENTO
    about_Locations

DESCRIZIONE BREVE
    Descrive come accedere agli elementi dal percorso di lavoro in Windows
    PowerShell.

DESCRIZIONE DETTAGLIATA
    Il percorso di lavoro corrente è il percorso predefinito a cui
    puntano i comandi. In altri termini, si tratta del percorso
    utilizzato da Windows PowerShell qualora non venga fornito il percorso
    esplicito dell'elemento o il percorso interessato dal comando. Nella
    maggior parte dei casi il percorso di lavoro corrente è un'unità a
    cui si accede tramite il provider FileSystem di Windows PowerShell e,
    in alcuni casi, una directory in tale unità. Ad esempio, è possibile
    impostare il percorso di lavoro corrente sul percorso seguente:

        C:\Programmi\Windows PowerShell

    Di conseguenza tutti i comandi vengono elaborati da questo
    percorso a meno che non venga fornito esplicitamente un altro
    percorso.

    Windows PowerShell gestisce il percorso di lavoro corrente per
    ciascuna unità anche se l'unità non è quella corrente. Ciò consente di
    accedere agli elementi dal percorso di lavoro corrente facendo riferimento
    unicamente all'unità di un altro percorso. Si supponga ad esempio che il
    percorso di lavoro corrente sia C:\Windows. Si supponga quindi di
    utilizzare il comando seguente per modificare il percorso di lavoro
    corrente impostandolo sull'unità HKLM:

        Set-Location HKLM:

    Sebbene il percorso corrente sia al momento l'unità del Registro
    di sistema, è ancora possibile accedere agli elementi della directory
    C:\Windows utilizzando l'unità C:, come illustrato nell'esempio seguente:

        Get-ChildItem C:

    Windows PowerShell ricorda che il percorso di lavoro corrente per
    tale unità è la directory di Windows, pertanto recupera gli
    elementi da tale directory.
    Con l'esecuzione del comando seguente si otterrebbero gli stessi
    risultati:

        Get-ChildItem C:\Windows

    In Windows PowerShell, è possibile utilizzare il comando
    Get-Location per determinare il percorso di lavoro corrente,
    mentre è possibile utilizzare il comando Set-Location per impostare il
    percorso di lavoro corrente. Ad esempio, il comando seguente consente
    di impostare il percorso di lavoro corrente sulla directory di Windows
    dell'unità C:.

        Set-Location c:\windows

    Dopo aver impostato il percorso di lavoro corrente, è ancora possibile
    accedere agli elementi dalle altre unità includendo nel comando il nome
    dell'unità seguito dai due punti, come illustrato nell'esempio seguente:

        Get-ChildItem HKLM :\software

    Il comando consente di recuperare un elenco degli elementi del
    contenitore Software nell'hive HKEY Local Machine del Registro di
    sistema.

    Windows PowerShell consente inoltre di utilizzare caratteri
    speciali per rappresentare il percorso di lavoro corrente e il
    relativo percorso padre. Per rappresentare il percorso di lavoro
    corrente, utilizzare un punto fermo. Per rappresentare il
    percorso padre del percorso di lavoro corrente, utilizzare due
    punti fermi. Ad esempio, con il comando seguente viene specificata la
    sottodirectory System del percorso di lavoro corrente:

        Get-ChildItem .\system

    Se il percorso di lavoro corrente è C:\Windows, questo comando
    restituisce un elenco di tutti gli elementi di C:\Windows\System. Se
    tuttavia si utilizzano due punti fermi, viene utilizzata la directory
    padre della directory di lavoro corrente, come illustrato
    nell'esempio seguente:

        Get-ChildItem ..\"programmi"

    In questo caso i due punti fermi vengono considerati come se
    rappresentassero l'unità C:, pertanto il comando recupera tutti gli
    elementi nella directory C:\Programmi.

    Un percorso che inizia con una barra identifica un percorso che
    parte dalla radice dell'unità corrente. Se ad esempio il percorso
    di lavoro corrente è C:\Programmi\Windows PowerShell, la radice
    dell'unità è C. Pertanto, il comando seguente consente di
    elencare tutti gli elementi della directory C:\Windows:

        Get-ChildItem \windows

    Se, quando si fornisce il nome di un contenitore o di un
    elemento, non si specifica un percorso che inizia con un nome di
    unità, con una barra o con un punto fermo, viene supposto che il
    contenitore o l'elemento si trovi nel percorso di lavoro
    corrente. Se ad esempio il percorso di lavoro corrente è
    C:\Windows, il comando seguente restituisce tutti gli elementi della
    directory C:\Windows\System:

        Get-ChildItem system

    Se si specifica un nome file anziché un nome di directory, Windows
    PowerShell restituisce i dettagli relativi al file, supponendo che
    tale file si trovi nel percorso di lavoro corrente.

VEDERE ANCHE
    Set-Location
    about_Providers
    about_Path_Syntax


about_Logical_Operators

ARGOMENTO
    about_Logical_Operators

DESCRIZIONE BREVE
    Descrive gli operatori che connettono istruzioni in Windows
    PowerShell.

DESCRIZIONE DETTAGLIATA
    Gli operatori logici di Windows PowerShell connettono espressioni e
    istruzioni, consentendo di utilizzare una sola espressione per
    verificare più condizioni.

    Ad esempio, nell'istruzione seguente viene utilizzato l'operatore
    and e l'operatore or per connettere tre istruzioni condizionali.
    L'istruzione è true solo quando il valore di $a è maggiore del valore
    di $b e $a o $b è minore di 20.

        ($a -gt $b) -and (($a -lt 20) -or ($b -lt 20))

    In Windows PowerShell sono supportati gli operatori logici seguenti.

        Operatore  Descrizione                      Esempio
        --------  ------------------------------   -------
        -and      And logico. TRUE solo quando     (1 -eq 1) -and (1 -eq 2)
                  entrambe le istruzioni            False
                  sono TRUE.

        -or       Or logico. TRUE quando una       (1 -eq 1) -or (1 -eq 2)
                  o entrambe le istruzioni          True
                  sono TRUE.

        -xor      Or esclusivo logico. TRUE solo   (1 -eq 1) -xor (2 -eq 2)
                  quando una delle istruzioni è     False
                  TRUE e l'altra è FALSE.

        -not      Not logico. Nega l'istruzione    -not (1 -eq 1)
                  che lo segue.                    False

        !         Not logico. Nega l'istruzione    !(1 -eq 1)
                  che lo segue (uguale a -not).    False

    Nota: negli esempi precedenti viene inoltre utilizzato l'operatore di
          confronto "uguale a" (- eq). Per ulteriori informazioni, vedere
          about_Comparison_Operators. Negli esempi vengono inoltre utilizzati
          i valori booleani di valori interi. Il valore intero 0 ha valore FALSE.
          Tutti gli altri valori interi hanno valore TRUE.

    La sintassi degli operatori logici è la seguente:

        <istruzione> {-AND | -OR | -XOR} <istruzione>
        {! | -NOT} <istruzione>

    Le istruzioni che utilizzano gli operatori logici restituiscono valori
    booleani (TRUE o FALSE).

    Gli operatori logici di Windows PowerShell valutano solo le istruzioni
    richieste per determinare il valore booleano dell'istruzione. Se
    l'operando sinistro in un'istruzione che contiene l'operatore and è FALSE,
    l'operatore destro non viene valutato. Se l'operando sinistro in
    un'istruzione che contiene l'operatore or è TRUE, l'operatore destro
    non viene valutato. Di conseguenza, è possibile utilizzare queste
    istruzioni nello stesso modo in cui si utilizza un'istruzione If.

VEDERE ANCHE
    about_Operators
    Compare-Object
    about_Comparison_operators
    about_If


about_Methods

ARGOMENTO
    about_methods

DESCRIZIONE BREVE
    Descrive come utilizzare metodi per eseguire azioni su oggetti in
    Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    In Windows PowerShell vengono utilizzate raccolte strutturate di
    informazioni, dette oggetti, per rappresentare gli elementi degli
    archivi dati o lo stato del computer. Ad esempio, quando si accede a
    un file in Windows PowerShell, non si utilizza il file effettivo. Si
    utilizza invece un oggetto FileInfo, un tipo di oggetto che ha la
    funzione di proxy del file.

    La maggior parte degli oggetti include metodi. Un metodo è un
    insieme di istruzioni che specificano una particolare azione
    eseguibile con l'oggetto in questione. Ad esempio, nell'oggetto
    FileInfo è incluso un metodo chiamato CopyTo, che consente di
    copiare il file rappresentato dall'oggetto.

    Per visualizzare un elenco di metodi e relative definizioni
    associati a un determinato oggetto, è possibile utilizzare il
    cmdlet Get-Member. Tuttavia, per utilizzare il cmdlet, l'oggetto deve
    esistere già in qualche forma: come variabile, come oggetto creato al
    momento di specificare un comando, come argomento del comando
    Get-Member o come oggetto passato attraverso una pipeline.
    Si supponga ad esempio che alla variabile $a sia stato assegnato
    un valore stringa, il che significa che la variabile è associata a
    un oggetto stringa. Per visualizzare un elenco dei metodi dell'oggetto,
    immettere il comando seguente al prompt dei comandi di Windows PowerShell:

        Get-Member -inputobject $a -membertype method

    Se si desidera visualizzare i metodi e le relative definizioni
    associati a un oggetto passato attraverso la pipeline, occorre
    utilizzare il comando Get-Member nella pipeline, come illustrato
    nell'esempio seguente:

        Get-ChildItem c:\final.txt | Get-Member -membertype method

    Il modo più comune per richiamare un metodo è di specificarne il
    nome dopo il riferimento a un oggetto, ad esempio una variabile o
    un'espressione. Occorre separare il riferimento all'oggetto dal
    metodo mediante un punto. Inoltre, è necessario utilizzare le
    parentesi immediatamente dopo il nome del metodo per racchiudere
    gli eventuali argomenti da passare al metodo.

    Se in una firma di metodo non vengono passati argomenti, è necessario
    utilizzare parentesi vuote.

    Ad esempio, nel comando seguente viene utilizzato il metodo
    GetType() per restituire il tipo di dati associato all'oggetto
    stringa $a:

        $a.GetType()

    Il metodo GetType restituisce il tipo di dati per qualsiasi
    oggetto e una variabile rappresenta sempre un oggetto. Il tipo di
    oggetto dipende dal tipo di dati archiviati nella variabile.

    Ogni azione eseguita in Windows PowerShell è associata a oggetti,
    sia che si dichiari una variabile sia che si combinino più
    comandi in una pipeline.
    Di conseguenza, è possibile utilizzare i metodi in diverse
    situazioni. Ad esempio, è possibile utilizzare un metodo per eseguire
    un'azione sul valore di una proprietà, come mostrato nel comando seguente:

        (Get-ChildItem c:\final.txt).name.ToUpper()

    In questo caso l'oggetto per il quale viene richiamato il metodo
    ToUpper è l'oggetto stringa associato alla proprietà name. Si
    noti che, affinché questo esempio possa funzionare, è necessario
    che il file Final.txt si trovi nella radice dell'unità C:. La
    proprietà del nome è in effetti una proprietà dell'oggetto FileInfo
    restituita dal comando Get-ChildItem. Ciò dimostra non solo la natura
    orientata agli oggetti di Windows PowerShell, ma anche come sia
    possibile chiamare i metodi per qualsiasi oggetto accessibile.

    Lo stesso risultato dell'ultimo esempio può essere ottenuto
    mediante una variabile che archivi l'output del comando
    Get-ChildItem, come illustrato nell'esempio seguente:

        $a = (Get-ChildItem c:\final.txt).name
        $a.ToUpper()

    Nel comando viene nuovamente utilizzato il metodo ToUpper()
    dell'oggetto stringa associato alla variabile, che contiene il
    nome file restituito dal comando Get-ChildItem.

    In alcuni casi un metodo richiede un argomento per dirigerne
    l'azione. Ad esempio, nell'oggetto FileInfo è incluso il metodo
    MoveTo, che consente di spostare un file da un percorso a un altro.
    Il metodo richiede un argomento che specifichi il percorso di
    destinazione del file. Il comando seguente illustra come includere
    tale argomento:

        (Get-ChildItem c:\final.txt).MoveTo("c:\techdocs\final.txt")

    Il comando Get-ChildItem restituisce un oggetto FileInfo per il file
    Final.txt e utilizza il metodo MoveTo di tale oggetto per iniziare
    l'azione e specificare il nuovo percorso del file.

    Per determinare gli argomenti associati a un metodo, esaminare la
    corrispondente definizione di metodo. Una definizione di metodo
    contiene una o più firme di metodo, note anche come overload in
    Microsoft .NET Framework. Una firma di metodo contiene il nome di un
    metodo e zero o più parametri che occorre fornire quando il metodo
    viene chiamato. Ogni firma di metodo è separata da quella precedente
    mediante una virgola nella visualizzazione del cmdlet Get-Member. Ad
    esempio, il metodo CopyTo della classe FileInfo contiene le due firme
    di metodo seguenti:

        1. CopyTo(String destFileName)
        2. CopyTo(String destFileName, Boolean overwrite)

    La prima firma di metodo acquisisce il nome file di destinazione,
    incluso il percorso, in cui copiare il file di origine. Nell'esempio
    seguente il primo metodo CopyTo è utilizzato per copiare Final.txt
    nella directory C:\Bin:

        (Get-ChildItem c:\final.txt).CopyTo("c:\bin\final.txt")

    Se il file è già presente nel percorso di destinazione, il metodo
    CopyTo ha esito negativo e Windows PowerShell segnala l'errore
    seguente:

        Eccezione durante la chiamata di "CopyTo" con "1"
        argomento/i: "Il file 'c:\bin\final.txt' esiste già.".

    Nella seconda firma di metodo viene passato il nome file di
    destinazione esattamente come nel primo caso, ma viene anche
    passato un valore booleano per specificare se si desidera
    sovrascrivere un file esistente con lo stesso nome nel percorso di
    destinazione, come illustrato nell'esempio seguente:

        (Get-ChildItem c:\final.txt).CopyTo("c:\bin\final.txt", $true)

    Quando si passa il valore booleano, è necessario utilizzare la
    variabile $True, che viene creata automaticamente da Windows
    PowerShell. La variabile $True contiene il valore booleano "true".
    Ovviamente, la variabile $False contiene invece il valore booleano
    "false".

VEDERE ANCHE
    about_Objects
    Get-Member


about_Modules

ARGOMENTO
    about_Modules

DESCRIZIONE BREVE
    Illustra come installare, importare e utilizzare i moduli di
    Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    Un modulo è un pacchetto che contiene comandi di Windows
    PowerShell, ad esempio cmdlet, provider, funzioni, variabili e alias.

    I moduli consentono agli utenti che scrivono comandi di
    organizzarli e condividerli con altri. Gli utenti che ricevono i
    moduli possono aggiungere i comandi dei moduli alle sessioni di
    Windows PowerShell e utilizzarli come se si trattasse di comandi
    predefiniti.

    In questo argomento viene illustrato come utilizzare i moduli di
    Windows PowerShell. Per informazioni sulla scrittura dei moduli
    di Windows PowerShell, vedere l'argomento relativo alla scrittura
    di un modulo di Windows PowerShell nella MSDN Library all'indirizzo
    http://go.microsoft.com/fwlink/?LinkId=144916.

 MODALITÀ DI UTILIZZO DI UN MODULO
    Per utilizzare un modulo, effettuare le seguenti attività:

        1. Installare il modulo. Questa operazione viene spesso
           eseguita automaticamente.
        2. Importare il modulo nella sessione di Windows PowerShell.
        3. Trovare i comandi aggiunti dal modulo.
        4. Utilizzare i comandi aggiunti dal modulo.

    In questo argomento viene illustrato come eseguire queste
    attività. Vengono inoltre fornite altre informazioni utili
    relative alla gestione dei moduli.

 MODALITÀ DI INSTALLAZIONE DI UN MODULO
    Se si riceve un modulo sotto forma di cartella contenente file, è
    necessario installarlo nel computer prima di poterlo importare in
    Windows PowerShell.

    La maggior parte dei moduli vengono installati automaticamente.
    In Windows PowerShell sono disponibili diversi moduli
    preinstallati. In Windows Server 2008 R2, tramite l'Aggiunta
    guidata funzionalità in Server Manager vengono automaticamente
    installati i moduli selezionati. Molti altri moduli vengono
    forniti in un programma di installazione che li installa nel computer.

    Per installare una cartella di modulo:

        1. Creare una directory Modules per l'utente corrente, se non
           è già esistente.

           Per creare una directory Modules, digitare:

                new-item -type directory -path
                $home\Documents\WindowsPowerShell\Modules

        2. Copiare l'intera cartella del modulo nella directory Modules.

           È possibile utilizzare qualsiasi metodo per copiare la
           cartella, inclusi Esplora risorse, Cmd.exe e Windows
           PowerShell.

           In Windows PowerShell utilizzare il cmdlet Copy-Item. Ad
           esempio, per copiare la cartella MyModule da
           C:\ps-test\MyModule nella directory Modules, digitare:

               copy-item -path c:\ps-test\MyModule -dest
               $home\Documents\WindowsPowerShell\Modules

    È possibile installare un modulo in qualsiasi percorso, ma
    l'installazione dei moduli in un percorso di modulo predefinito
    ne semplifica la gestione. Per ulteriori informazioni sui
    percorsi di modulo predefiniti, vedere la sezione "Percorsi di
    modulo e PSModulePath".

 MODALITÀ DI INDIVIDUAZIONE DEI MODULI INSTALLATI
     Quando viene installato un modulo, è possibile importarlo nella
     sessione di Windows PowerShell.

     Per individuare i moduli installati in un percorso predefinito,
     al prompt di Windows PowerShell digitare:

         get-module -listAvailable

     Per individuare i moduli che sono già stati importati nella
     sessione, digitare quanto segue al prompt di Windows PowerShell:

         get-module

     Per ulteriori informazioni sul cmdlet Get-Module, vedere Get-Module.

 MODALITÀ DI IMPORTAZIONE DI UN MODULO
    Per utilizzare i comandi in un modulo, importare il modulo in una
    sessione di Windows PowerShell.

    Per importare i moduli da un percorso di modulo predefinito nella
    sessione corrente, utilizzare il formato di comando seguente.

        import-module <nome-modulo>

    Ad esempio, con il comando seguente viene importato il modulo
    BitsTransfer nella sessione corrente.

        import-module BitsTransfer

    Per importare un modulo che non si trova in un percorso di modulo
    predefinito, utilizzare il percorso completo della cartella del
    modulo nel comando.

    Ad esempio, per aggiungere il modulo TestCmdlets che si trova
    nella directory C:\ps-test alla sessione, digitare:

        import-module c:\ps-test\TestCmdlets

    Per ulteriori informazioni sull'aggiunta di moduli alla sessione,
    vedere Import-Module.

 MODALITÀ DI IMPORTAZIONE DI TUTTI I MODULI NELLA SESSIONE DI WINDOWS
    POWERSHELL In Windows 7 e Windows Server 2008 R2, mediante
    l'attività "Importa tutti i moduli" viene aperta una sessione di
    Windows PowerShell che include tutti i moduli e gli snap-in di
    Windows PowerShell disponibili.

    Per avviare una sessione di Windows PowerShell con tutti i moduli
    e gli snap-in di Windows PowerShell disponibili, effettuare la
    procedura seguente.

    -- Fare clic con il pulsante destro del mouse sull'icona di
       Windows PowerShell nella barra delle applicazioni, quindi
       scegliere "Importa tutti i moduli".

    Nota: per impostazione predefinita, in Windows Server 2008 R2
          l'icona di Windows PowerShell è bloccata sulla barra delle
          applicazioni. È tuttavia necessario avviare Windows PowerShell
          una volta per rendere disponibile l'attività "Importa tutti i moduli".

    Nelle altre versioni di Windows, per importare tutti i moduli
    disponibili nella sessione, digitare quanto segue al prompt di
    Windows PowerShell:

        get-module -listAvailable | import-module

 MODALITÀ DI INDIVIDUAZIONE DEI COMANDI IN UN MODULO
    Dopo avere importato un modulo nella sessione di Windows
    PowerShell, è possibile utilizzare i comandi nel modulo.

    Per trovare i comandi aggiunti da un modulo, digitare quanto
    segue al prompt di Windows PowerShell:

        get-command -module <nome-modulo>

    Ad esempio, per trovare i comandi aggiunti dal modulo
    BitsTransfer, digitare:

        get-command -module BitsTransfer

    Per ulteriori informazioni sul cmdlet Get-Command, vedere Get-Command.

 MODALITÀ DI ACCESSO ALLA GUIDA PER I COMANDI IN UN MODULO
    Se il modulo contiene argomenti della Guida per i comandi che
    esporta, tali argomenti verranno visualizzati tramite il cmdlet
    Get-Help. Utilizzare lo stesso formato di comando utilizzato per
    qualsiasi argomento della Guida in Windows PowerShell.

    Per trovare l'argomento della Guida per i comandi in un modulo,
    digitare quanto segue al prompt di Windows PowerShell:

        get-help <nome-comando>

    Per informazioni più dettagliate, digitare:

        get-help <nome-comando> -detailed

    Ad esempio, per trovare informazioni dettagliate sul cmdlet
    Start-BitsTransfer, digitare:

        get-help Start-BitsTransfer -detailed

    Per ulteriori informazioni sul modulo Get-Help, vedere Get-Help.

 MODALITÀ DI RIMOZIONE DI UN MODULO
    Quando si rimuove un modulo, i comandi aggiunti dal modulo
    vengono eliminati dalla sessione.

    Per rimuovere un modulo dalla sessione, utilizzare il formato di
    comando seguente.

        remove-module <nome-modulo>

    Ad esempio, con il comando seguente viene rimosso il modulo
    BitsTransfer dalla sessione corrente.

        remove-module BitsTransfer

    La rimozione di un modulo annulla l'operazione di importazione di
    un modulo. Con la rimozione il modulo non viene disinstallato.
    Per ulteriori informazioni sul cmdlet Remove-Module, vedere
    Remove-Module.

 MODALITÀ DI IMPORTAZIONE DI UN MODULO IN OGNI SESSIONE
    Con il comando Import-Module vengono importati moduli nella
    sessione di Windows PowerShell corrente. Questo comando ha
    effetto solo sulla sessione corrente.

    Per importare un modulo in ogni sessione di Windows PowerShell
    avviata, aggiungere un comando Import-Module al profilo di
    Windows PowerShell.

    Per ulteriori informazioni sui profili, vedere about_Profiles.

 PERCORSI DI MODULO E PSMODULEPATH
    Per i moduli di Windows PowerShell sono disponibili due percorsi
    predefiniti, uno per il sistema e uno per l'utente corrente.

        Sistema:         $pshome\Modules
                            (%windir%\System32\WindowsPowerShell\v1.0\Modules)

        Utente corrente: $home\Documents\WindowsPowerShell\Modules
                            (%UserProfile%\Documents\WindowsPowerShell\Modules)

                       - oppure

                         $home\My Documents\WindowsPowerShell\Modules
                            (%UserProfile%\My Documents\WindowsPowerShell\Modules)

        Nota: in Windows Vista, Windows Server 2008 e versioni
              successive di Windows, per aggiungere o modificare file nella
              directory %Windir%\System32, avviare Windows PowerShell con
              l'opzione "Esegui come amministratore".

    È possibile modificare i percorsi di modulo predefiniti nel
    sistema modificando il valore della variabile di ambiente PSModulePath
    ($env:psmodulepath). La variabile di ambiente PSModulePath viene
    modellata sulla variabile di ambiente Path e ha lo stesso formato.

    Per visualizzare i percorsi di modulo predefiniti, digitare:

        $env:psmodulepath

    Per aggiungere un percorso di modulo predefinito, utilizzare il
    formato di comando seguente.

        $env:psmodulepath = $env:psmodulepath + ";<path>"

    Il punto e virgola (;) nel comando separa il nuovo percorso dal
    percorso che lo precede nell'elenco.

    Ad esempio, per aggiungere la directory "C:\ps-test\Modules",
    digitare:

        $env:psmodulepath + ";c:\ps-test\Modules"

    Quando si aggiunge un percorso a PSModulePath, i comandi
    Get-Module e Import-Module includono i moduli in tale percorso.

    Il valore impostato ha effetto solo sulla sessione corrente. Per
    rendere permanente la modifica, aggiungere il comando al profilo
    di Windows PowerShell o utilizzare l'elemento Sistema nel Pannello di
    controllo per modificare il valore della variabile di ambiente
    PSModulePath nel Registro di sistema.

    Per ulteriori informazioni sulla variabile PSModulePath, vedere
    about_Environment_Variables.

 MODULI E CONFLITTI DI NOMI
    I conflitti di nomi si verificano quando nella sessione sono
    presenti più comandi con lo stesso nome. L'importazione di un
    modulo provoca un conflitto di nomi quando nel modulo sono
    presenti comandi con lo stesso nome di comandi o elementi della
    sessione.

    A causa dei conflitti di nomi alcuni comandi potrebbero venire
    nascosti o sostituiti.
        -- Nascosto. Un comando è nascosto quando non è il comando
           che viene eseguito quando se ne digita il nome, ma può
           essere eseguito utilizzando un altro metodo, ad esempio
           qualificando il nome del comando con il nome del modulo o
           dello snap-in in cui ha avuto origine.

        -- Sostituito. Un comando è sostituito quando non può essere
           eseguito poiché è stato sovrascritto da un comando con lo
           stesso nome. Anche se si rimuove il modulo che ha
           provocato il conflitto, non è possibile eseguire un
           comando sostituito a meno che non si riavvii la sessione.

    Import-Module potrebbe aggiungere comandi che ne nascondono e ne
    sostituiscono altri nella sessione corrente. Inoltre, i comandi
    nella sessione possono nascondere comandi aggiunti dal modulo.

    Per evitare i conflitti di nomi, utilizzare il parametro Prefix
    di Import-Command per creare nomi univoci per i comandi importati.

    È inoltre possibile utilizzare i parametri Alias, Cmdlet,
    Function e Variable di Import-Module per selezionare solo i
    comandi che si desidera importare ed escludere quelli che
    provocano conflitti di nomi nella sessione.

    Anche se un comando è nascosto, è possibile eseguirlo
    qualificandone il nome con il nome del modulo o dello snap-in in
    cui ha avuto origine.
    Le regole di precedenza dei comandi di Windows PowerShell
    determinano quale comando viene eseguito quando la sessione
    include comandi con lo stesso nome.

    Ad esempio, quando una sessione include una funzione e un cmdlet
    con lo stesso nome, per impostazione predefinita in Windows
    PowerShell viene eseguita la funzione. Quando la sessione include
    comandi dello stesso tipo con lo stesso nome, ad esempio due
    cmdlet con lo stesso nome, per impostazione predefinita viene
    eseguito il comando aggiunto più recentemente.

    Per ulteriori informazioni, incluse una spiegazione delle regole
    di precedenza e istruzioni per l'esecuzione di comandi nascosti,
    vedere about_Command_Precedence.

 MODULI E SNAP-IN
    È possibile aggiungere comandi alla sessione da moduli e snap-in.
    I moduli possono aggiungere tutti i tipi di comandi, tra cui
    cmdlet, provider e funzioni, ed elementi, quali variabili, alias
    e unità di Windows PowerShell. Gli snap-in possono aggiungere
    solo cmdlet e provider.

    In effetti, benché sia possibile aggiungere funzioni, alias,
    variabili e unità alla sessione digitandoli o eseguendo uno
    script per aggiungerli, tutti i cmdlet e i provider nella
    sessione provengono da un modulo o da uno snap-in.

    Prima di rimuovere un modulo o uno snap-in dalla sessione,
    utilizzare i comandi seguenti per determinare quali comandi
    verranno rimossi.

    Per trovare l'origine di un cmdlet nella sessione, utilizzare il
    formato di comando seguente:

        get-command <nome-cmdlet> | format-list -property verb, noun,
        pssnapin, module

    Ad esempio, per trovare l'origine del cmdlet Get-Date, digitare:

        get-command get-date | format-list -property verb, noun,
        pssnapin, module

    Per ulteriori informazioni sugli snap-in di Windows PowerShell, vedere
    about_PSSnapins.

VEDERE ANCHE
    about_Command_Precedence
    about_PSSnapins
    Get-Command
    Get-Help
    Get-Module
    Import-Module
    Remove-Module


about_Objects

ARGOMENTO
    about_Objects

DESCRIZIONE BREVE
    Contiene informazioni essenziali sugli oggetti in Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    Ogni azione eseguita in Windows PowerShell ha luogo nel contesto
    di oggetti. Quando i dati si spostano da un comando al comando
    successivo, essi vengono spostati sotto forma di uno o più oggetti
    identificabili. Un oggetto, quindi, è un insieme di dati che
    rappresentano un elemento in uno spazio dei nomi. Un oggetto è
    costituito da tre tipi di dati: tipo, metodi e proprietà  dell'oggetto.

    I dati sul tipo di oggetto forniscono informazioni dettagliate
    circa il genere di oggetto. Ad esempio, un oggetto che
    rappresenta un file è un oggetto FileInfo.

    Il metodo di un oggetto è un'azione che è possibile eseguire
    sull'elemento che l'oggetto rappresenta. Ad esempio, in un
    oggetto FileInfo è incluso un metodo utilizzabile per fare sì che
    il file venga copiato, ossia, quando si richiama il metodo copy
    dell'oggetto, il file rappresentato dall'oggetto viene copiato.

    La proprietà di un oggetto include informazioni sullo stato
    dell'oggetto in questione. Ad esempio, un oggetto FileInfo contiene la
    proprietà length, che specifica le dimensioni del file rappresentato
    dall'oggetto.

    Quando si utilizzano gli oggetti, è possibile utilizzarne i
    metodi e le proprietà nei comandi per eseguire azioni specifiche e
    modificare i dati. Ciò risulta particolarmente utile quando si
    combinano più comandi in una singola pipeline.

    Quando i comandi vengono combinati in una pipeline, si passano
    informazioni l'un l'altro come se fossero oggetti. Quando il
    primo comando viene eseguito, uno o più oggetti vengono inviati
    lungo la pipeline al secondo comando. Il secondo comando riceve
    gli oggetti dal primo comando, li elabora e quindi passa oggetti
    nuovi o rivisti al comando successivo della pipeline. Questa procedura
    continua fino a quando tutti i comandi della pipeline non siano stati
    eseguiti.

    Nell'esempio seguente viene mostrato come gli oggetti vengono
    passati da un comando al comando successivo:

        Get-ChildItem c: | where {$_.PsIsContainer -eq $false} |
        Format-List

    Il primo comando (Get-ChildItem c:) restituisce un oggetto per ciascun
    elemento della directory radice del file system. Tali oggetti vengono
    passati attraverso la pipeline al secondo comando (where
    {$_.PsIsContainer -eq $false}). Il secondo comando utilizza la proprietà
    PsIsContainer dell'oggetto per filtrare i dati degli oggetti di input
    così che non vengano restituite directory, ossia contenitori. Il
    comando passa quindi le informazioni sotto forma di oggetti al terzo
    comando (Format-List), che visualizza sotto forma di elenco il
    contenuto di ciascun oggetto reindirizzato.

VEDERE ANCHE
    about_Methods
    about_Properties
    about_Pipelines
    Get-Member


about_Operators

ARGOMENTO
    about_Operators

DESCRIZIONE BREVE
    Descrive gli operatori supportati da Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    Un operatore è un elemento del linguaggio che è possibile
    utilizzare in un comando o in un'espressione. Windows PowerShell
    supporta diversi tipi di operatori per la modifica dei valori.

  Operatori aritmetici
      Utilizzare gli operatori aritmetici (+, -, *, /, %) per
      calcolare i valori in un comando o in un'espressione. Con
      questi operatori, è possibile aggiungere, sottrarre, moltiplicare o
      dividere valori e calcolare il resto di un'operazione di divisione.

      È inoltre possibile utilizzare gli operatori aritmetici con
      stringhe, matrici e tabelle hash. L'operatore di addizione
      consente di concatenare gli elementi. L'operatore di moltiplicazione
      restituisce il numero specificato di copie di ogni elemento.

      Per ulteriori informazioni, vedere about_Arithmetic_Operators.

  Operatori di assegnazione
      Utilizzare gli operatori di assegnazione (=, +=, -=, *=, /=, %=) per
      assegnare uno o più valori alle variabili, per modificare i valori di una
      variabile e per aggiungere valori alle variabili. È inoltre possibile
      eseguire il cast della variabile come qualsiasi tipo di dati
      Microsoft .NET Framework, ad esempio stringa o DateTime, o come
      variabile Process.

      Per ulteriori informazioni, vedere about_Assignment_Operators.

  Operatori di confronto
      Utilizzare gli operatori di confronto (-eq, -ne, -gt, -lt, -le, -ge)
      per confrontare valori ed eseguire il test delle condizioni.
      Ad esempio, è possibile confrontare due valori di stringa per
      verificare se sono uguali.

      Gli operatori di confronto includono gli operatori di
      corrispondenza (-match, -notmatch) per individuare modelli
      utilizzando espressioni regolari, l'operatore di sostituzione
      (-replace) che utilizza espressioni regolari per modificare
      valori di input e gli operatori like (-like, -notlike) che
      individuano modelli utilizzando caratteri jolly (*).

      Includono inoltre gli operatori bit per bit (-bAND, -bOR,
      -bXOR, -bNOT) che consentono di modificare gli schemi di bit
      nei valori.

    Per ulteriori informazioni, vedere about_Comparison_Operators.

  Operatori logici
      Utilizzare gli operatori logici (-and, -or, -xor, -not, !) per
      connettere più istruzioni condizionali in un'unica istruzione
      condizionale complessa. Ad esempio, è possibile utilizzare un
      operatore logico -and per creare un filtro di oggetto con due
      condizioni diverse.

      Per ulteriori informazioni, vedere about_Logical_Operators.

  Operatori di reindirizzamento
      Utilizzare gli operatori di reindirizzamento (>, >>, 2>, 2>, e
      2>&1) per inviare l'output di un comando o di un'espressione a
      un file di testo. Gli operatori di reindirizzamento hanno un
      funzionamento analogo al cmdlet Out-File (senza parametri), ma
      consentono inoltre di reindirizzare l'output degli errori a file
      specificati. È inoltre possibile utilizzare il cmdlet Tee-Object per
      reindirizzare l'output.

      Per ulteriori informazioni, vedere about_Redirection.

  Operatori split e join
      Gli operatori -split e -join dividono e combinano sottostringhe.
      L'operatore -split suddivide una stringa in sottostringhe,
      l'operatore -join concatena più stringhe in una sola.

      Per ulteriori informazioni, vedere about_Split e about_Join.

  Operatori di tipo
      Utilizzare gli operatori di tipo (-is, -isnot, -as) per trovare o
      modificare il tipo .NET Framework di un oggetto.

      Per ulteriori informazioni, vedere about_Type_Operators.

  Operatori unari
      Utilizzare gli operatori unari per incrementare o decrementare
      variabili o proprietà di oggetti e per impostare valori integer
      su numeri positivi o negativi. Ad esempio, per incrementare la
      variabile $a da 9 a 10, è possibile digitare $a++.

  Operatori speciali
      Utilizzare gli operatori speciali per eseguire attività che non
      possono essere eseguite con altri tipi di operatori. Gli operatori
      speciali consentono, ad esempio, di eseguire operazioni quali
      l'esecuzione di comandi e la modifica del tipo di dati di un valore.

      Operatore di chiamata &
        Descrizione: esegue un comando, uno script o un blocco di
        script. Poiché l'operatore di chiamata non esegue l'analisi,
        non è in grado di interpretare i parametri del comando.
        L'operatore di chiamata indica che il valore che lo precede è
        un comando. In questo modo, consente di eseguire comandi
        archiviati nelle variabili e rappresentati da stringhe. Esempi:

            & "new cmdlet"
            $c = "get-executionpolicy"
            & $c

      Operatore di risoluzione dei riferimenti delle proprietà .
        Descrizione: accede alle proprietà e ai metodi di un oggetto.
        Esempi:

            $myString.length
            $myString.substring(1,3)

      Operatore di dot source .
        Descrizione: esegue uno script in modo che gli elementi in esso
        contenuti facciano parte dell'ambito chiamante. Per ulteriori
        informazioni, vedere about_Scope. Esempio:

            . c:\scripts.sample.ps1

        Nota: il simbolo del punto (.) viene anche utilizzato come
              simbolo della directory padre, come in questo esempio:

                .\sample.ps1

              Con questo comando viene eseguito lo script sample.ps1,
              ma non come parte dell'ambito chiamante.

      Operatore di membro statico ::
        Descrizione: chiama le proprietà e i metodi statici di una
        classe .NET Framework. Per trovare le proprietà e i metodi
        statici di un oggetto, utilizzare il parametro Static del
        cmdlet Get-Member. Esempio:

            [datetime]::now

      .. Operatore di intervallo
        Descrizione: rappresenta i valori interi sequenziali in una
        matrice di valori integer, dati un limite superiore e un limite
        inferiore. Esempi:

            1..10
            10..1
            foreach ($a in 1..$max) {write-host $a}

      -Operatore di formattazione f
        Descrizione: formatta le stringhe utilizzando il metodo di
        formato degli oggetti stringa. Immettere la stringa di formato a
        sinistra dell'operatore e gli oggetti da formattare a destra
        dell'operatore.
        Esempi:

            C:\PS> "{0} {1,-10} {2:N}" -f
            C:\PS> 1,"hello",[math]::pi
            1 hello 3.14

      Operatore di sottoespressione $( )
        Descrizione: restituisce il risultato di una o più
        istruzioni. Per un solo risultato, restituisce un valore
        scalare. Per più risultati, restituisce una matrice. Esempi:

            $($x * 23)
            $(Get-WMIObject win32_Directory)

      Operatore di sottoespressione matrice @( )
        Descrizione: restituisce il risultato di una o più istruzioni come
        matrice. Se è presente un solo elemento, la matrice dispone di un
        solo membro. Esempio:

            @(Get-WMIObject win32_logicalDisk)

      Operatore ,
        Descrizione: come operatore binario, la virgola crea una
        matrice; come operatore unario, crea una matrice con un membro.
        Posizionare la virgola prima del membro. Esempi:

            $myArray = 1,2,3
            $SingleArray = ,1

VEDERE ANCHE
    about_Arithmetic_Operators
    about_Assignment_Operators
    about_Comparison_Operators
    about_Logical_Operators
    about_Type_Operators
    about_Split
    about_Join
    about_Redirection


about_Parameters

ARGOMENTO
    about_Parameters

DESCRIZIONE BREVE
    Descrive la modalità di utilizzo dei parametri dei cmdlet in Windows
    PowerShell.

DESCRIZIONE DETTAGLIATA
    La maggior parte dei cmdlet e delle funzioni di Windows
    PowerShell si basa su parametri per consentire agli utenti di
    selezionare opzioni o fornire input. I parametri seguono il nome
    del cmdlet o della funzione e in genere hanno il formato seguente:

        -<nome_parametro> <valore_parametro>

    Il nome del parametro è preceduto da un trattino (-), che segnala
    a Windows PowerShell che la parola successiva al trattino è un
    parametro e non un valore da passare al cmdlet o alla funzione.
    Non tutti i parametri richiedono un valore e non tutti i nomi di
    parametro devono essere specificati. In alcuni casi il nome del
    parametro è implicito e non è necessario includerlo nel comando.

    Il tipo e i requisiti dei parametri variano in base al cmdlet e alla
    funzione. Per informazioni sui parametri di un cmdlet, utilizzare il
    cmdlet Get-Help. Ad esempio, per informazioni sui parametri del cmdlet
    Get-ChildItem, digitare:

        get-help get-childitem

    Per informazioni sui parametri di una funzione, rivedere le
    definizioni dei parametri. I parametri sono definiti dopo il nome
    della funzione o nel corpo della stessa, mediante la parola
    chiave Param. Per ulteriori informazioni, vedere about_Functions.

    Alcune funzioni contengono inoltre la Guida basata su commenti
    relativa ai parametri. Utilizzare il cmdlet Get-Help con queste
    funzioni. Per ulteriori informazioni, vedere l'argomento della Guida
    relativo a Get-Help e about_Comment_Based_Help.

    Il cmdlet Get-Help restituisce vari dettagli sul cmdlet o la
    funzione, tra cui una descrizione, la sintassi del comando,
    informazioni sui parametri ed esempi di utilizzo del cmdlet o
    della funzione.

    È possibile utilizzare anche il parametro Parameter del cmdlet o della
    funzione Get-Help per trovare informazioni su un determinato parametro.
    In alternativa, è possibile utilizzare il carattere jolly (*) con il
    parametro Parameter per trovare informazioni su tutti i parametri del
    cmdlet o della funzione. Ad esempio, con il comando seguente è possibile
    ottenere informazioni su tutti i parametri del cmdlet o della funzione
    Get-Member:

        get-help get-member -parameter *

    In queste informazioni sono inclusi i dettagli necessari per
    l'utilizzo del parametro. Ad esempio, nell'argomento della Guida
    relativo al cmdlet Get-ChildItem sono inclusi i dettagli seguenti sul
    parametro Path:

        -path <string[]>
            Specifica un percorso di una o più posizioni. È consentito
            l'utilizzo di caratteri jolly. La posizione predefinita è la
            directory corrente (.).

        Required?                    false
        Position?                    1
        Valore predefinito           Current directory
        Accept pipeline input?       true (ByValue, ByPropertyName)
        Accept wildcard characters?  true

    Le informazioni sul parametro includono la sintassi, una
    descrizione e gli attributi del parametro.
    Nelle sezioni seguenti vengono descritti gli attributi dei parametri.

  Parameter Required?
    Questa impostazione indica se il parametro è obbligatorio, ovvero
    se tutti i comandi che utilizzano questo cmdlet devono includere il
    parametro. Se il valore è "True" e il parametro non è presente nel
    comando, viene richiesto un valore per il parametro.

  Parameter Position?
    Questa impostazione indica se è possibile fornire il valore di un
    parametro senza farlo precedere dal nome del parametro. Se
    l'impostazione è "0" o "named", il nome del parametro è
    obbligatorio. Questo tipo di parametro è noto come parametro
    denominato. Un parametro denominato può essere immesso in
    qualsiasi punto dopo il nome del cmdlet.

    Se l'impostazione "Parameter position?" è impostata su un numero
    intero diverso da 0, il nome del parametro non è obbligatorio.
    Questo tipo di parametro è noto come posizionale. Il numero indica la
    posizione in cui il parametro deve essere inserito rispetto agli
    altri parametri posizionali. Se si include il nome di un parametro
    posizionale, quest'ultimo può essere inserito in qualsiasi posizione
    dopo il nome del cmdlet.

    Ad esempio, il cmdlet Get-ChildItem dispone dei parametri Path ed
    Exclude. L'impostazione "Parameter position?" del parametro Path è 1,
    pertanto si tratta di un parametro posizionale. L'impostazione "Parameter
    position?" di Exclude è 0, pertanto si tratta di un parametro denominato.

    Pertanto, non è necessario immettere il nome del parametro Path, ma il
    valore di tale parametro deve essere il primo o l'unico valore di
    parametro non denominato nel comando. Poiché tuttavia Exclude è un
    parametro denominato, è possibile immetterlo in qualsiasi posizione
    nel comando.

    Come conseguenza delle impostazioni "Parameter position?" di
    questi due parametri, è possibile utilizzare uno qualsiasi tra i
    comandi seguenti:

        Get-ChildItem -path c:\techdocs -exclude *.ppt
        Get-ChildItem c:\techdocs -exclude *.ppt
        Get-ChildItem -exclude *.ppt -path c:\techdocs
        Get-ChildItem -exclude *.ppt c:\techdocs

    Se occorre includere un altro parametro posizionale senza
    indicarne il nome, è necessario collocarlo nell'ordine specificato
    dall'impostazione "Parameter position?".

  Parameter Type
    Con questa impostazione viene specificato il tipo Microsoft .NET
    Framework del valore del parametro. Ad esempio, se il tipo è Int32, il
    valore del parametro deve essere un valore intero. Se il tipo è string, il
    valore del parametro deve essere una stringa di caratteri. Qualora la
    stringa contenga spazi, il valore deve essere racchiuso tra
    virgolette oppure gli spazi devono essere preceduti dal carattere di
    escape (`).

  Default Value
    Con questa impostazione viene specificato il valore attribuito al
    parametro qualora non ne venga fornito un altro. Ad esempio, il valore
    predefinito del parametro Path è spesso la directory corrente. I parametri
    obbligatori non dispongono mai di un valore predefinito. Per molti
    parametri facoltativi, non è previsto alcun valore predefinito poiché
    non vi sono conseguenze se il parametro non viene utilizzato.

  Accepts Multiple Values?
    Questa impostazione indica se un parametro accetta più valori.
    Quando un parametro accetta più valori, è possibile digitare un elenco
    separato da virgole come valore del parametro nel comando oppure
    salvare un elenco separato da virgole (matrice) in una variabile,
    quindi specificare la variabile come valore del parametro.

    Ad esempio, il parametro ServiceName del cmdlet Get-Service
    accetta più valori. I comandi seguenti sono entrambi validi:

        get-service -servicename winrm, netlogon

        $s = "winrm", "netlogon"
        get-service -servicename $s

  Accepts Pipeline Input?
    Questa impostazione indica se è possibile utilizzare l'operatore
    pipeline (|) per inviare un valore al parametro.

    Valore                   Descrizione
    -----                    -----------
    False                    Indica che non è possibile reindirizzare un
                             valore al parametro.

    True (by Value)          Indica che è possibile reindirizzare
                             qualsiasi valore al parametro, purché
                             il valore disponga del tipo .NET Framework
                             specificato per il parametro o possa essere
                             convertito nel tipo .NET Framework specificato.

                             Quando un parametro è "True (by Value)",
                             in Windows PowerShell viene tentata
                             l'associazione di qualsiasi valore
                             reindirizzato con tale parametro prima
                             che vengano tentati altri metodi per
                             interpretare il comando.

    True (by Property Name)  Indica che è possibile reindirizzare un valore
                             al parametro, ma il tipo .NET Framework del
                             parametro deve includere una proprietà con lo
                             stesso nome del parametro.

                             Ad esempio, è possibile reindirizzare solo un
                             valore a un parametro Name solo quando il valore
                             dispone di una proprietà denominata "Name."

  Accepts Wildcard Characters?
    Questa impostazione indica se il valore del parametro può contenere
    caratteri jolly, così da poterlo confrontare con più elementi del
    contenitore di destinazione.

  Parametri comuni
    I parametri comuni sono parametri che è possibile utilizzare con
    qualsiasi cmdlet.
    Per ulteriori informazioni sui parametri comuni, digitare:

        help about_commonparameters

VEDERE ANCHE
    about_Command_syntax
    about_Comment_Based_Help
    about_Functions_Advanced
    about_Pipelines
    about_Wildcards


about_Parsing

ARGOMENTO
    about_parsing

DESCRIZIONE BREVE
    Descrive la modalità di analisi dei comandi in Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    Quando si immette un comando al prompt dei comandi, il testo del
    comando viene suddiviso in una serie di segmenti detti token,
    quindi viene individuata la modalità di interpretazione di
    ciascuno di essi. Ad esempio, il comando seguente viene suddiviso
    in due token, "Write-Host" e "book", e ciascun token viene
    interpretato separatamente:

        Write-Host book

    Nell'elaborazione di un comando, il parser di Windows PowerShell
    funziona in modalità espressione o argomento:

        - In modalità espressione, i valori della stringa di
          caratteri devono essere racchiusi tra virgolette. I numeri non
          racchiusi tra virgolette vengono considerati come valori numerici
          anziché come una serie di caratteri.

        - In modalità argomento, ogni valore viene considerato come
          una stringa espandibile tranne nel caso in cui inizi con uno dei
          caratteri speciali seguenti: segno di dollaro ($), chiocciola (@),
          virgoletta singola ('), virgoletta doppia (") o parentesi di apertura (().

    Se preceduto da uno di questi caratteri, il valore viene
    considerato come un'espressione di valore.

    Nella tabella seguente vengono illustrati vari esempi di comandi
    elaborati in modalità espressione e in modalità argomento, nonché i
    risultati prodotti da tali comandi.

    Esempio            Modalità         Risultato
    ------------------ ----------   ----------------
    2+2                Espressione   4 (integer)
    Write-Output 2+2   Argomento     "2+2" (stringa)
    Write-Output (2+2) Espressione   4 (integer)
    $a = 2+2           Espressione   $a = 4 (integer)
    Write-Output $a    Espressione   4 (integer)
    Write-Output $a/H  Argomento     "4/H" (string)

    Ogni token può essere interpretato come un tipo di oggetto, ad esempio
    booleano o stringa. In Windows PowerShell, il tipo di oggetto viene
    determinato dall'espressione. Il tipo di oggetto dipende dal tipo di
    parametro previsto da un comando e dalla capacità di Windows PowerShell
    di convertire l'argomento nel tipo corretto. Nella tabella seguente vengono     illustrati vari esempi dei tipi assegnati ai valori restituiti dalle
    espressioni.

    Esempio            Modalità     Risultato
    ------------------ ----------   ---------------
    Write-Output !1    argomento     "!1" (stringa)
    Write-Output (!1)  espressione   False (booleano)
    Write-Output (2)   espressione   2 (integer)

VEDERE ANCHE
    about_Command_Syntax


about_Path_Syntax

ARGOMENTO
    about_Path_Syntax

DESCRIZIONE BREVE
    Descrive i formati dei nomi di percorso completi e relativi in Windows
    PowerShell.

DESCRIZIONE DETTAGLIATA
    Tutti gli elementi di un archivio dati accessibile tramite un
    provider di Windows PowerShell possono essere identificati in
    modo univoco mediante i relativi nomi di percorso. Un nome di
    percorso è una combinazione del nome dell'elemento, del
    contenitore e dei sottocontenitori in cui si trova l'elemento e
    dell'unità di Windows PowerShell attraverso la quale si accede ai
    contenitori.

    In Windows PowerShell i nomi di percorso sono suddivisi in due tipi:
    completi e relativi. Un nome di percorso completo è costituito da
    tutti gli elementi che formano un percorso. Nella sintassi seguente
    vengono mostrati gli elementi di un nome di percorso completo:

        [<provider>::]<unità>:[\<contenitore>[\<sottocontenitore>...]]\<elemento>

    Il segnaposto <provider> fa riferimento al provider di Windows
    PowerShell tramite il quale si accede all'archivio dati. Ad esempio,
    il provider FileSystem consente di accedere ai file e alle directory
    del computer. Questo elemento della sintassi è facoltativo in quanto
    i nomi di unità sono univoci in tutti i provider.

    Il segnaposto <unità> fa riferimento all'unità di Windows PowerShell
    supportata da un determinato provider di Windows PowerShell. Nel
    caso del provider FileSystem, le unità di Windows PowerShell
    vengono mappate alle unità di Windows configurate nel sistema. Ad
    esempio, se nel sistema sono presenti le unità A: e C:, il provider
    FileSystem crea le stesse unità in Windows PowerShell.

    Dopo aver specificato l'unità, è necessario specificare gli eventuali
    contenitori e sottocontenitori in cui si trova l'elemento. Occorre
    specificare i contenitori nell'ordine gerarchico in cui esistono
    nell'archivio dati. In altri termini, è necessario iniziare con il
    contenitore padre, quindi indicare il contenitore figlio incluso nel
    contenitore padre e così via. Inoltre, ciascun contenitore deve
    essere preceduto da una barra rovesciata. Si noti che in Windows
    PowerShell è consentito l'utilizzo delle barre per motivi di
    compatibilità con altre versioni di PowerShell.

    Dopo aver specificato il contenitore e i sottocontenitori, è
    necessario indicare il nome dell'elemento, preceduto da una barra
    rovesciata. Ad esempio, il nome di percorso completo del file
    Shell.dll presente nella directory C:\Windows\System32 è il seguente:

        C:\Windows\System32\Shell.dll

    In questo caso l'unità attraverso la quale si accede ai
    contenitori è :C, il contenitore di livello superiore è Windows, il
    sottocontenitore è System32 (all'interno del contenitore Windows) e
    l'elemento è Shell.dll.

    In alcune situazioni, non è necessario specificare un nome di percorso
    completo ed è possibile utilizzare un nome di percorso relativo. Un
    nome di percorso relativo si basa sul percorso di lavoro corrente. In
    Windows PowerShell è possibile identificare un elemento in base alla
    sua posizione in relazione al percorso di lavoro corrente. I nomi di
    percorso relativi possono essere specificati mediante caratteri speciali.
    Nella tabella seguente viene descritto ciascuno di questi caratteri e
    vengono forniti esempi di nomi di percorso relativi e di nomi di percorso
    completi. Negli esempi contenuti nella tabella viene presupposto che la
    directory di lavoro corrente sia impostata su C:\Windows.

    Simbolo Descrizione                  Percorso relativo  Percorso completo
    ------  --------------------------   ----------------   --------------------
    .       Percorso di lavoro corrente  .\System           c:\Windows\System
    ..      Elemento padre del percorso  ..\Programmi       c:\Programmi
            di lavoro corrente
    \       Radice dell'unità del        \Programmi         c:\Programmi
            percorso di lavoro corrente
    [none]  Nessun carattere speciale     System            c:\Windows\System

    Quando si utilizza un nome di percorso in un comando, occorre
    immettere tale nome nello stesso modo a prescindere che si
    utilizzi un nome di percorso completo o relativo. Si supponga ad
    esempio che la directory di lavoro corrente sia C:\Windows. Con
    il seguente comando Get-ChildItem vengono recuperati tutti gli
    elementi della directory C:\Techdocs:

        Get-ChildItem \techdocs

    La barra rovesciata indica che occorre utilizzare la radice
    dell'unità del percorso di lavoro corrente. Poiché la directory
    di lavoro è C:\Windows, la radice dell'unità è l'unità C:. Poiché la
    directory techdocs è al di fuori della radice, è necessario
    specificare solo la barra rovesciata.

    Lo stesso risultato può essere ottenuto utilizzando il comando
    seguente:

        Get-ChildItem c:\techdocs

    A prescindere che si utilizzi un nome di percorso completo o
    relativo, il nome di percorso è importante non solo perché consente di
    individuare un elemento ma anche perché consente di identificarlo in modo
    univoco anche se condivide il nome con un altro elemento situato in
    un altro contenitore.

    Si supponga ad esempio di avere due file entrambi denominati
    Results.txt. Il primo file si trova nella directory
    C:\Techdocs\Jan, mentre il secondo si trova nella directory
    C:\Techdocs\Feb. Il nome di percorso del primo file
    (C:\Techdocs\Jan\Results.txt) e quello del secondo file
    (C:\Techdocs\Feb\Results.txt) consentono di distinguerli.

VEDERE ANCHE
    about_Locations


about_Pipelines

ARGOMENTO
    about_pipelines

DESCRIZIONE BREVE
    Combinazione di comandi nelle pipeline in Windows PowerShell

DESCRIZIONE DETTAGLIATA
    Con il termine pipeline si definisce una serie di comandi
    connessi da operatori pipeline (|) (ASCII 124). Ogni operatore
    pipeline invia i risultati del comando precedente al comando
    successivo.

    È possibile utilizzare le pipeline per inviare gli oggetti
    restituiti come output da un comando affinché vengano utilizzati
    come input da un altro comando. È quindi possibile inviare
    l'output di quel comando a un altro comando. Il risultato è una
    catena di comandi molto potente ("pipeline") composta da una
    successione di comandi semplici.

    Ad esempio,

    Command-1 | Command-2 | Command-3

    In questo esempio gli oggetti restituiti come output da Command-1
    vengono inviati a Command-2. Command-2 elabora gli oggetti e li
    invia a Command-3. Command-3 elabora gli oggetti e li invia alla
    pipeline. Poiché nella pipeline non sono presenti altri comandi,
    i risultati vengono visualizzati nella console.

    In una pipeline i comandi vengono elaborati da sinistra verso
    destra nell'ordine in cui vengono visualizzati. L'elaborazione
    viene gestita come una sola operazione e l'output viene
    visualizzato nel modo in cui viene generato.

    Di seguito è riportato un semplice esempio. Il comando seguente
    ottiene il processo Notepad, quindi lo arresta.

         get-process notepad | stop-process

    Il primo comando utilizza il cmdlet Get-Process per ottenere un
    oggetto che rappresenta il processo Notepad. Utilizza un
    operatore pipeline (|) per inviare l'oggetto processo al cmdlet
    Stop-Process, il quale arresta il processo Notepad. Si noti che
    il comando Stop-Process non dispone di un parametro Name o ID per
    specificare il processo perché il processo specificato viene
    inviato attraverso la pipeline.

    Di seguito è riportato un esempio pratico. Questa pipeline di
    comandi ottiene i file di testo nella directory corrente,
    seleziona solo i file la cui lunghezza supera i 10.000 byte, li
    ordina in base alla lunghezza e visualizza il nome e la lunghezza
    di ogni file in una tabella.

        Get-ChildItem -path *.txt | Where-Object {$_.length -gt 10000} |
        Sort-Object -property Length | Format-Table -property name, length

    Questa pipeline comprende quattro comandi nell'ordine
    specificato. Il comando è scritto orizzontalmente, ma nel grafico
    seguente il processo è illustrato verticalmente.

       Get-ChildItem -path *.txt

                  |
                  |  (FileInfo objects )
                  |  (  .txt         )
                  |
                  V

       Where-Object {$_.length -gt 10000}

                  |
                  |  (FileInfo objects )
                  |  (  .txt         )
                  |  ( Length > 10000 )
                  |
                  V

       Sort-Object -property Length

                  |
                  |  (FileInfo objects )
                  |  (  .txt          )
                  |  ( Length > 10000  )
                  |  ( Sorted by length )
                  |
                  V

       Format-Table -property name, length

                  |
                  |  (FileInfo objects   )
                  |  (  .txt             )
                  |  ( Length > 10000   )
                  |  ( Sorted by length  )
                  |  (Formatted in a table )
                  |
                  V
        Name                       Length
        ----                       ------
        tmp1.txt                    82920
        tmp2.txt                   114000
        tmp3.txt                   114000

UTILIZZO DELLE PIPELINE

    I cmdlet di Windows PowerShell sono progettati per essere
    utilizzati nelle pipeline. Ad esempio, è in genere possibile
    reindirizzare i risultati di un cmdlet Get a un cmdlet Action
    come Set, Start, Stop o Rename per lo stesso nome.

    È ad esempio possibile reindirizzare qualsiasi servizio dal
    cmdlet Get-Service al cmdlet Start-Service o Stop-Service
    (sebbene i servizi disabilitati non possano essere riavviati in
    questo modo).

    Questa pipeline di comandi avvia il servizio WMI nel computer:

    get-service wmi | start-service

    Anche i cmdlet che ottengono e impostano oggetti dei provider di
    Windows PowerShell, ad esempio i cmdlet Item e ItemProperty, sono
    stati progettati per essere utilizzati nelle pipeline.

    È ad esempio possibile reindirizzare i risultati di un comando
    Get-Item o Get-ChildItem nel provider del Registro di sistema di
    Windows PowerShell al cmdlet New-ItemProperty. Questo comando
    aggiunge alla chiave del Registro di sistema MyCompany una nuova
    voce, NoOfEmployees, con il valore 8124.

       get-item -path HKLM:\Software\MyCompany | new-Itemproperty
       -name NoOfEmployees -value 8124

    Molti dei cmdlet dell'utilità, ad esempio Get-Member,
    Where-Object, Sort-Object, Group-Object e Measure-Object, vengono
    utilizzati quasi esclusivamente nelle pipeline. È possibile
    reindirizzare qualsiasi oggetto a questi cmdlet.

    È ad esempio possibile reindirizzare tutti i processi nel
    computer al comando Sort-Object affinché vengano ordinati in base
    al numero di handle nel processo.

    get-process | sort-object -property handles

    È inoltre possibile reindirizzare qualsiasi oggetto ai cmdlet di
    formattazione quali Format-List e Format-Table, ai cmdlet di
    esportazione quali Export-Clixml e Export-CSV e ai cmdlet di tipo
    Out, ad esempio Out-Printer.

    È ad esempio possibile reindirizzare il processo Winlogon al
    cmdlet Format-List per visualizzare tutte le proprietà del
    processo in un elenco.

    get-process winlogon | format-list -property *

    Con un po' di pratica, gli utenti scopriranno che combinare in
    pipeline semplici comandi consente di risparmiare tempo e di
    migliorare l'efficienza dell'attività di scripting.

FUNZIONAMENTO DELLE PIPELINE

     Quando si "reindirizzano" oggetti, ovvero si inviano oggetti di
     output di un comando a un altro comando, in Windows PowerShell
     viene eseguito il tentativo di associare gli oggetti
     reindirizzati a uno dei parametri del cmdlet ricevente.

     A tale scopo, il componente per l'associazione dei parametri di
     Windows PowerShell, che associa gli oggetti di input ai
     parametri dei cmdlet, tenta di trovare un parametro che soddisfi
     i criteri seguenti:

     -- Il parametro deve accettare l'input da una pipeline (non
        tutti lo fanno)
     -- Il parametro deve accettare il tipo di oggetto inviato oppure
        un tipo in cui sia possibile convertire l'oggetto.
     -- Il parametro non deve essere già utilizzato nel comando.

     Il cmdlet Start-Service, ad esempio, dispone di molti parametri,
     ma solo due, Name e InputObject, accettano l'input da pipeline.
     Il parametro Name accetta le stringhe e il parametro InputObject
     accetta gli oggetti servizio. Di conseguenza, è possibile
     reindirizzare a Start-Service stringhe e oggetti servizio (e
     oggetti con proprietà convertibili in stringhe e in oggetti
     servizio).

     Se il componente per l'associazione dei parametri di Windows
     PowerShell non è in grado di associare gli oggetti reindirizzati
     a un parametro del cmdlet ricevente, il comando ha esito
     negativo e viene richiesto di immettere i valori mancanti del
     parametro.

     Non è possibile forzare il componente per l'associazione dei
     parametri ad associare gli oggetti reindirizzati a un
     determinato parametro. Analogamente, non è possibile suggerire
     un parametro. La logica del componente gestisce il
     reindirizzamento nel modo più efficiente possibile.

ELABORAZIONE UNO ALLA VOLTA

     Il reindirizzamento di oggetti a un comando ricorda l'utilizzo
     di un parametro del comando per inviare gli oggetti.

     Il reindirizzamento di oggetti che rappresentano i servizi nel
     computer a un comando Format-Table, ad esempio:

          get-service | format-table -property name, dependentservices

     è molto simile al salvataggio degli oggetti servizio in una
     variabile e all'utilizzo del parametro InputObject di
     Format-Table per inviare l'oggetto servizio.

          $services = get-service
                  format-table -inputobject $services -property name,
                  dependentservices

     oppure all'incorporamento del comando nel valore del parametro

                  format-table -inputobject (get-service wmi)
                  -property name, dependentservices

     Esiste tuttavia una differenza rilevante. Quando si
     reindirizzano più oggetti a un comando, in Windows PowerShell
     gli oggetti vengono inviati al comando uno alla volta. Quando si
     utilizza un parametro del comando, gli oggetti vengono inviati
     come un singolo oggetto matrice.

     Questa differenza tecnica può avere alcune interessanti, e
     talvolta utili, conseguenze.

     Ad esempio, se si reindirizzano più oggetti processo dal cmdlet
     Get-Process al cmdlet Get-Member, in Windows PowerShell ogni
     oggetto processo viene inviato uno alla volta a Get-Member.
     Get-Member visualizza la classe .NET (tipo) degli oggetti
     processo e le proprietà e i metodi relativi.
     (Get-Member elimina i duplicati, pertanto se gli oggetti sono
     tutti dello stesso tipo, visualizza un solo tipo di oggetto.)

     In questo caso, Get-Member visualizza le proprietà e i metodi di
     ogni oggetto processo, ovvero di un oggetto System.Diagnostics.Pr
     ocess.

                 get-process | get-member

                    TypeName: System.Diagnostics.Process

                 Name                           MemberType     Definition
                 ----                           ----------     ----------
                 Handles                        AliasProperty  Handles = Handlecount
                 Name                           AliasProperty  Name = ProcessName
                 NPM                            AliasProperty  NPM = NonpagedSystemMemorySize
                 ...

      Tuttavia, se si utilizza il parametro InputObject di
      Get-Member, Get-Member riceve una matrice di oggetti
      System.Diagnostics.Process come singola unità e visualizza le
      proprietà di una matrice di oggetti. (Si noti il simbolo di
      matrice ([]) dopo il nome del tipo System.Object.)

                get-member -inputobject (get-process)

                TypeName: System.Object[]

                Name               MemberType    Definition
                ----               ----------    ----------
                Count              AliasProperty Count = Length
                Address            Method        System.Object& Address(Int32 )
                Clone              Method        System.Object Clone()
                ...

     È possibile che si ottenga un risultato non previsto, ma dopo
     averlo compreso sarà comunque possibile utilizzarlo. Ad esempio,
     una matrice di oggetti processo dispone di una proprietà Count
     che è possibile utilizzare per contare il numero di processi nel
     computer.

        (get-process).count

     Questa distinzione può essere importante, ricordare pertanto che
     quando si reindirizzano oggetti a un cmdlet, essi vengono
     recapitati uno alla volta.

ACCEPTS PIPELINE INPUT

    Per poter ricevere oggetti in una pipeline, è necessario che il
    cmdlet ricevente disponga di un parametro in grado di accettare
    l'input da pipeline. È possibile utilizzare un comando Get-Help
    con il parametro Full o Parameter per determinare quali parametri
    di un cmdlet sono eventualmente in grado di accettare l'input da
    pipeline.

    Nella visualizzazione predefinita di Get-Help, l'elemento
    "Accepts pipeline input" viene visualizzato in una tabella di
    attributi di parametri. Questa tabella viene visualizzata solo
    quando si utilizza il parametro Full o Parameter del cmdlet Get-Help.

    Ad esempio per determinare quale dei parametri del cmdlet
    Start-Service accetta l'input da pipeline, digitare:

        get-help start-service -full

        get-help start-service -parameter *

    Ad esempio, nella Guida per il cmdlet Start-Service è indicato
    che i parametri Name e InputObject accettano l'input da pipeline
    ("true"). Per tutti gli altri parametri è presente il valore
    "false" nella riga "Accept pipeline input?"

        -name <string[]>
           Specifica i nomi dei servizi da avviare.
           Il nome del parametro è facoltativo. È possibile
           utilizzare "-Name" o il relativo alias, "-ServiceName",
           oppure omettere il nome del parametro.

           Required?                    true
           Position?                    1
           Valore predefinito
      --> Accept pipeline input?       true (ByValue, ByPropertyName)
           Accept wildcard characters? true

        -inputObject <ServiceController[]>
           Specifica gli oggetti ServiceController che rappresentano
           i servizi da avviare. Immettere una variabile contenente
           gli oggetti oppure digitare un comando o un'espressione
           che consente di ottenere gli oggetti.

           Required?                    false
           Position?                    named
           Valore predefinito
      --> Accept pipeline input?       true (ByValue)
           Accept wildcard characters? false

     Ciò significa che è possibile inviare oggetti (PsObjects)
     attraverso la pipeline al cmdlet Where-Object e che in Windows
     PowerShell l'oggetto verrà associato al parametro InputObject.

METODI DISPONIBILI PER ACCETTARE L'INPUT DA PIPELINE

     I parametri dei cmdlet possono accettare l'input da pipeline in
     uno di due modi diversi:

     -- ByValue: i parametri che accettano l'input "in base al
        valore" possono accettare gli oggetti reindirizzati aventi lo
        stesso tipo .NET del valore del parametro oppure gli oggetti
        convertibili in quel tipo.

        Ad esempio, il parametro Name di Start-Service accetta
        l'input da pipeline in base al valore. È in grado di
        accettare oggetti stringa oppure oggetti convertibili in stringhe.

     -- ByPropertyName: i parametri che accettano l'input "in base al
        nome della proprietà" possono accettare oggetti reindirizzati
        solo quando una proprietà dell'oggetto presenta lo stesso
        nome del parametro.

        Ad esempio, il parametro Name di Start-Service può accettare
        oggetti che dispongono di una proprietà Name.

        (Per elencare le proprietà di un oggetto, reindirizzarlo a
        Get-Member.)

     Alcuni parametri possono accettare oggetti in base al valore o
     in base al nome della proprietà. Tali parametri sono stati
     progettati per accettare l'input della pipeline con facilità.

ANALISI DEGLI ERRORI DELLA PIPELINE

     Se un comando ha esito negativo a causa di un errore della
     pipeline, è possibile analizzare l'errore e riscrivere il comando.

     Ad esempio, il comando seguente tenta di spostare una voce del
     Registro di sistema da una chiave a un'altra utilizzando il
     cmdlet Get-Item per ottenere il percorso di destinazione e
     quindi reindirizzando il percorso al cmdlet Move-ItemProperty.

     In modo specifico, il comando utilizza il cmdlet Get-Item per
     ottenere il percorso di destinazione. Viene utilizzato un
     operatore pipeline per inviare il risultato al cmdlet
     Move-ItemProperty. Il comando Move-ItemProperty specifica il
     percorso corrente e il nome della voce del Registro di sistema
     da spostare.

          get-item -path hklm:\software\mycompany\sales |
          move-itemproperty -path hklm:\software\mycompany\design
          -name product

     Il comando ha esito negativo e in Windows PowerShell viene
     visualizzato il messaggio di errore seguente:

         Move-ItemProperty: Impossibile associare l'oggetto di input
         a qualsiasi parametro del comando. Il comando non accetta
         l'input da pipeline oppure l'input e le relative proprietà
         non corrispondono ad alcun parametro che accetta l'input da
         pipeline.
         At line:1 char:23
         + $a | move-itemproperty <<<< -path hklm:\software\mycompany\
         design -name product

    Per analizzare l'errore, utilizzare il cmdlet Trace-Command per
    analizzare il componente per l'associazione dei parametri di
    Windows PowerShell. Il comando seguente analizza il componente
    per l'associazione dei parametri durante l'elaborazione. Vengono
    utilizzati il parametro -pshost per visualizzare i risultati
    nella console e il comando -filepath per inviarli al file
    debug.txt per riferimenti futuri.

         trace-command -name parameterbinding -expression {get-item -path
             hklm:\software\mycompany\sales | move-itemproperty -path
             hklm:\software\mycompany\design -name product} -pshost -filepath debug.txt

    I risultati dell'analisi sono lunghi, ma mostrano i valori
    associati al cmdlet Get-Item e i valori denominati associati al
    cmdlet Move-ItemProperty.

       ...
        BIND NAMED cmd line args [Move-ItemProperty]
        BIND arg [hklm:\software\mycompany\design] to parameter [Path]
        ...
            BIND arg [product] to parameter [Name]
        ....
        BIND POSITIONAL cmd line args [Move-ItemProperty]
        ...

    Infine, mostrano che il tentativo di associare il percorso al
    parametro Destination di Move-ItemProperty ha avuto esito negativo.
        ...
        BIND PIPELINE object to parameters: [Move-ItemProperty]
            PIPELINE object TYPE = [Microsoft.Win32.RegistryKey]
            RESTORING pipeline parameter's original values Parameter
            [Destination] PIPELINE INPUT ValueFromPipelineByPropertyName
            NO COERCION Parameter [Credential] PIPELINE INPUT
            ValueFromPipelineByPropertyName NO COERCION ...

     Per analizzare l'errore, utilizzare il cmdlet Get-Help per
     visualizzare gli attributi del parametro Destination. Mediante
     il comando seguente è possibile ottenere informazioni
     dettagliate sul parametro Destination.

    get-help move-itemproperty -parameter destination

     I risultati mostrano che il parametro Destination accetta
     l'input da pipeline solo "in base al nome della proprietà".
     Ciò significa che l'oggetto reindirizzato deve disporre di una
     proprietà denominata Destination.

        -destination <string>
            Specifica il percorso di destinazione.

            Required?                    true
            Position?                    2
            Valore predefinito
            Accept pipeline input?       true (ByPropertyName)
            Accept wildcard characters?  true

     Per visualizzare le proprietà dell'oggetto reindirizzato al
     cmdlet Move-ItemProperty, reindirizzarlo al cmdlet Get-Member.
     Il comando seguente reindirizza i risultati della prima parte
     del comando al cmdlet Get-Member.

          get-item -path hklm:\software\mycompany\sales | get-member
     L'output indica che si tratta di un elemento Microsoft.Win32.Regi
     stryKey che non dispone di una proprietà Destination. Questo
     spiega perché il comando ha avuto esito negativo.

     Per correggere il comando, è necessario specificare la
     destinazione nel cmdlet Move-ItemProperty. È possibile
     utilizzare un comando Get-ItemProperty per ottenere il percorso,
     ma il nome e la destinazione devono essere specificati nella
     parte Move-ItemProperty del comando.

         get-item -path hklm:\software\mycompany\design |
             move-itemproperty -dest hklm:\software\mycompany\design
             -name product

     Per accertare il corretto funzionamento del comando, utilizzare
     un comando Get-ItemProperty:

    get-itemproperty hklm:\software\mycompany\sales

     I risultati mostrano che la voce del Registro di sistema Product
     è stata spostata alla chiave Sales.

        PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\mycomp any\sales
        PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\mycomp any
        PSChildName  : sales
        PSDrive      : HKLM
        PSProvider   : Microsoft.PowerShell.Core\Registry
        Product      : 18

VEDERE ANCHE
        about_objects
        about_parameters
        about_command_syntax
        about_foreach


about_Preference_Variables

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          http://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:

         http://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:

           http://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


about_Profiles

ARGOMENTO
    about_Profiles

DESCRIZIONE BREVE
    Descrive come creare e utilizzare un profilo di Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    È possibile creare un profilo di Windows PowerShell per
    personalizzare l'ambiente e aggiungere elementi specifici della
    sessione a ogni sessione di Windows PowerShell che si avvia.

    Un profilo di Windows PowerShell è uno script che viene eseguito
    all'avvio di Windows PowerShell. È possibile utilizzare il
    profilo come script di accesso per personalizzare l'ambiente.
    È possibile aggiungere comandi, alias, funzioni, variabili,
    snap-in, moduli e unità di Windows PowerShell. È anche possibile
    aggiungere altri elementi specifici della sessione al profilo
    affinché siano disponibili in ogni sessione senza doverli
    importare o ricreare.

    Windows PowerShell supporta diversi profili per utenti e
    programmi host.
    Tuttavia, non consente di creare automaticamente i profili. In
    questo argomento vengono descritti i profili e viene illustrato
    come creare e gestire profili nel computer.

    Viene descritto come utilizzare il parametro NoProfile della
    console di Windows PowerShell (PowerShell.exe) per avviare
    Windows PowerShell senza profili.
    Viene, inoltre, illustrato l'effetto dei criteri di esecuzione
    di Windows PowerShell sui profili.

 FILE DI PROFILO

    Windows PowerShell supporta diversi file di profilo. Inoltre, i
    programmi host di Windows PowerShell possono supportare i propri
    profili specifici dell'host.

    Ad esempio, la console di Windows PowerShell supporta i file di
    profilo di base seguenti. I profili sono elencati nell'ordine di
    precedenza. Il primo profilo ha la precedenza massima.

        Descrizione                        Path
        -----------                        ----
        Utente corrente, host corrente     $Home\Documenti\WindowsPowerShell\Profile.ps1
        Utente corrente, tutti gli host    $Home\Documenti\Profile.ps1
        Tutti gli utenti, host corrente    $PsHome\Microsoft.PowerShell_profile.ps1
        Tutti gli utenti, tutti gli host   $PsHome\Profile.ps1

    I percorsi del profilo includono le variabili seguenti:

        - La variabile $PsHome, in cui viene archiviata la directory
          di installazione di Windows PowerShell.

        - La variabile $Home, in cui viene archiviata la home
          directory dell'utente corrente.

    Inoltre, altri programmi che ospitano Windows PowerShell possono
    supportare i propri profili. Ad esempio, Windows PowerShell
    Integrated Scripting Environment (ISE) supporta i profili
    specifici dell'host seguenti.

        Descrizione                     Path
        -----------                     -----
        Utente corrente, host corrente  $Home\Documenti\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1
        Tutti gli utenti, host corrente $PsHome\Microsoft.PowerShellISE_profile.ps1

    Nella Guida di Windows PowerShell, il profilo "Utente corrente,
    host corrente" è il profilo frequentemente indicato come "profilo
    di Windows PowerShell".

 VARIABILE $PROFILE

    Nella variabile automatica $Profile vengono archiviati i percorsi
    dei profili di Windows PowerShell disponibili nella sezione corrente.

    Per visualizzare un percorso di profilo, visualizzare il valore
    della variabile $Profile. È anche possibile utilizzare la
    variabile $Profile in un comando per rappresentare un percorso.

    Nella variabile $Profile viene archiviato il percorso del profilo
    "Utente corrente, host corrente". Gli altri profili vengono
    salvati in proprietà note della variabile $profile.

    Ad esempio, la variabile $Profile presenta i valori seguenti
    nella console di Windows PowerShell.

        Name                               Descrizione
        -----------                        -----------
        $Profile                           Utente corrente, host corrente
        $Profile.CurrentUserCurrentHost    Utente corrente, host corrente
        $Profile.CurrentUserAllHosts       Utente corrente, tutti gli host
        $Profile.AllUsersCurrentHost       Tutti gli utenti, host corrente
        $Profile.AllUsersAllHosts          Tutti gli utenti, tutti gli host

    Poiché i valori della variabile $Profile cambiano per ogni utente
    e in ogni applicazione host, assicurarsi di visualizzare i valori
    delle variabili di profilo in ogni applicazione host di Windows
    PowerShell che si utilizza.

    Per visualizzare i valori correnti della variabile $Profile, digitare:

        $profile | get-member -type noteproperty

    È possibile utilizzare la variabile $Profile in molti comandi. Ad
    esempio, mediante il comando seguente viene aperto il profilo
    "Utente corrente, host corrente" in Blocco note:

    notepad $profile

    Il comando seguente determina se viene creato un profilo "Tutti
    gli utenti, tutti gli host" nel computer locale:

    test-path $profile.AllUsersAllHosts

 MODALITÀ DI CREAZIONE DI UN PROFILO

    Per creare un profilo di Windows PowerShell, utilizzare il
    formato di comando seguente:

        if (!(test-path <nome-profilo>))
           {new-item -type file -path <nome-profilo> -force}

    Ad esempio per creare un profilo per l'utente corrente
    nell'applicazione host di Windows PowerShell corrente, utilizzare
    il comando seguente:

        if (!(test-path $profile))
           {new-item -type file -path $profile -force}

    In questo comando, l'istruzione If impedisce di sovrascrivere un
    segnaposto esistente con il percorso. Sostituire il valore del
    segnaposto <percorso-profilo> con il percorso del file di profilo
    che si desidera creare.

    Nota: per creare i profili "Tutti gli utenti" in Windows Vista e
          nelle versioni successive di Windows, avviare Windows PowerShell
          con l'opzione "Esegui come amministratore".

 MODALITÀ DI MODIFICA DI UN PROFILO

    È possibile aprire qualsiasi profilo di Windows PowerShell in un
    editor di testo, quale Blocco note.

    Per aprire il profilo dell'utente corrente nell'applicazione host
    di Windows PowerShell corrente in Blocco note, digitare:

        notepad $profile

    Per aprire gli altri profili, specificare il nome del profilo. Ad
    esempio, per aprire il profilo per tutti gli utenti di tutte le
    applicazioni host, digitare:

        notepad $profile.AllUsersAllHosts

    Per applicare le modifiche, salvare il file di profilo e
    riavviare Windows PowerShell.

 MODALITÀ DI SCELTA DI UN PROFILO

    Se si utilizzano più applicazioni host, inserire gli elementi che
    si utilizzano in tutte le applicazioni host nel profilo
    $Profile.CurrentUserAllHosts.
    Inserire gli elementi specifici di un'applicazione host, ad
    esempio un comando che imposta il colore di sfondo dell'applicazio
    ne host, in un profilo specifico di tale applicazione host.

    Se si è amministratori e si intende personalizzare Windows
    PowerShell per più utenti, attenersi alle istruzioni seguenti:

        -- Archiviare gli elementi comuni nel profilo $profile.AllUser
           sAllHosts.

        -- Archiviare gli elementi specifici di un'applicazione host
           nei profili $profile.AllUsersCurrentHost specifici di tale
           applicazione host.

        -- Archiviare gli elementi relativi ai singoli utenti nei
           profili specifici degli utenti.

    Assicurarsi di verificare nella documentazione dell'applicazione
    host la presenza di eventuali implementazioni speciali di profili
    di Windows PowerShell.

 MODALITÀ DI UTILIZZO DI UN PROFILO

    Molti degli elementi che si creano in Windows PowerShell e la
    maggior parte dei comandi che si eseguono incidono sono sulla
    sessione corrente. Quando si termina la sessione, gli elementi
    vengono eliminati.

    I comandi e gli elementi specifici della sessione includono
    variabili, variabili di preferenza, alias, funzioni, comandi
    (eccetto Set-ExecutionPolicy) e snap-in di Windows PowerShell che
    si aggiungono alla sessione.

    Per salvare questi elementi e renderli disponibili in tutte le
    sessioni future, aggiungerli a un profilo di Windows PowerShell.

    I profili vengono inoltre comunemente utilizzati per salvare le
    funzioni, gli alias e le variabili di uso frequente. Quando si
    salvano gli elementi in un profilo, è possibile utilizzarli in
    qualsiasi sessione applicabile senza ricrearli.

 MODALITÀ DI AVVIO DI UN PROFILO

    Al momento dell'apertura, il file di profilo è vuoto. Tuttavia, è
    possibile inserirvi variabili, alias e comandi di uso frequente.

    Di seguito sono riportati alcuni suggerimenti per iniziare.

    -- Aggiungere comandi che agevolano l'apertura del profilo.
       Questo è particolarmente utile se si utilizza un profilo
       diverso da "Utente corrente, host corrente". Ad esempio,
       aggiungere il comando seguente:

           function pro {notepad $profile.CurrentUserAllHosts}

    -- Aggiungere una funzione per aprire la Guida di Windows
       PowerShell in un file della guida HTML compilato (CHM).

           function Get-CHM
            {
               (invoke-item $env:windir\help\mui\0409\WindowsPowerShellHelp.chm)
            }

       Mediante questa funzione viene aperta la versione inglese del
       file CHM. È tuttavia sostituire il codice della lingua (0409)
       per aprire le altre versioni del file CHM.

    -- Aggiungere una funzione per elencare gli alias per qualsiasi
       cmdlet.

           function Get-CmdletAlias ($cmdletname)
           {
              get-alias | Where {$_.definition -like "*$cmdletname*"} | ft Definition, Name -auto
           }

    -- Aggiungere un comando Add-PsSnapin per aggiungere qualsiasi
       snap-in di Windows PowerShell in uso.

    -- Personalizzare la console.

           function Color-Console
           {
            $host.ui.rawui.backgroundcolor = "white"
                $host.ui.rawui.foregroundcolor = "black"
                $hosttime = (dir $pshome\powershell.exe) .creationtime
                $Host.UI.RawUI.WindowTitle = "Windows PowerShell $hostversion ($hosttime)"
                clear-host
           }
           Color-console

    -- Aggiungere un prompt di Windows PowerShell personalizzato che
       include il nome del computer e il percorso corrente.

           function prompt
           {
              $env:computername + "\" + (get-location) + "> "
           }

       Per ulteriori informazioni sul prompt di Windows PowerShell,
       vedere about_Prompts.

 PARAMETRO NOPROFILE

    Per avviare Windows Powershell senza profili, utilizzare il
    parametro NoProfile di PowerShell.exe, il programma di avvio di
    Windows PowerShell.

    Per iniziare, aprire un programma che consente di avviare Windows
    PowerShell, ad esempio Cmd.exe o Windows PowerShell stesso. È
    anche possibile utilizzare la finestra di dialogo Esegui di Windows.

    Digitare:

    powershell -noprofile

    Per un elenco completo dei parametri di PowerShell.exe, digitare:

    powershell -?

 PROFILI E CRITERI DI ESECUZIONE

    I criteri di esecuzione di Windows PowerShell determinano, in
    parte, se è possibile eseguire script e caricare file di
    configurazione, inclusi i profili. Per impostazione predefinita
    il criterio di esecuzione è Restricted. Questo criterio impedisce
    l'esecuzione di tutti gli script, inclusi i profili. Se si
    utilizza il criterio Restricted, il profilo non viene eseguito e
    il contenuto relativo non viene applicato.

    Il comando Set-ExecutionPolicy consente di impostare e modificare
    il criterio di esecuzione. Si tratta di uno dei pochi comandi che
    viene applicato in tutte le sezioni di Windows PowerShell poiché
    il valore viene salvato nel Registro di sistema. Non è necessario
    impostarlo all'apertura della console e non è necessario
    archiviare un comando Set-ExecutionPolicy nel profilo.

 PROFILI E SESSIONI REMOTE

    I profili di Windows PowerShell non vengono eseguiti
    automaticamente nelle sessioni remote, pertanto i comandi
    aggiunti dai profili non sono presenti nella sessione remota.
    Inoltre, la variabile automatica $profile non viene compilata
    nelle sessioni remote.

    Per eseguire un profilo in una sessione, utilizzare il cmdlet
    Invoke-Command.

    Ad esempio, mediante il comando seguente viene eseguito il profilo
    CurrentUserCurrentHost dal computer locale nella sessione in $s.

        invoke-command -session $s -filepath $profile

    Mediante il comando seguente viene eseguito il profilo
    CurrentUserCurrentHost dal computer remoto nella sessione in $s.
    Poiché la variabile $profile non è compilata, il comando utilizza
    il percorso esplicito del profilo.

        invoke-command -session $s {invoke-expression
        "$home\Documenti\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}

    Dopo l'esecuzione di questo comando, i comandi aggiunti dal
    profilo alla sessione sono disponibili in $s.

VEDERE ANCHE
    about_Automatic_Variables
    about_Functions
    about_Prompts
    about_Execution_Policies
    about_Signing
    about_Remote
    Set-ExecutionPolicy


about_Prompts

ARGOMENTO
    about_Prompts

DESCRIZIONE BREVE
    Descrive la funzione Prompt e illustra come creare una funzione
    Prompt personalizzata.

DESCRIZIONE DETTAGLIATA
    Il prompt dei comandi di Windows PowerShell indica che Windows
    PowerShell è pronto ad eseguire un comando:

    PS C:\>

    Il prompt di Windows PowerShell è determinato dalla funzione
    Prompt. È possibile personalizzare il prompt creando la propria
    funzione Prompt. Quindi, è possibile salvare la funzione nel
    profilo di Windows PowerShell.

  Funzione Prompt

      La funzione Prompt determina l'aspetto del prompt di Windows
      PowerShell. Windows PowerShell è fornito con una funzione
      Prompt incorporata ma è possibile eseguirne l'override e
      definire una propria funzione Prompt.

      La funzione Prompt ha la sintassi seguente:

      function prompt { <corpo-funzione> }

      La funzione Prompt deve restituire un oggetto, in genere una
      stringa. Si consiglia di restituire una stringa o un oggetto
      formattato come una stringa. La stringa deve essere contenuta
      in una riga di 80 caratteri.

      Ad esempio:

      PS C:\> function prompt {"Hello, World > "}
          Hello, World >

      Come tutte le funzioni, la funzione Prompt viene archiviata
      nell'unità Function:. Per visualizzare il codice nella funzione
      Prompt corrente, digitare:

      (get-item function:prompt).definition

      Questo comando utilizza il cmdlet Get-Item per visualizzare la
      voce Prompt nell'unità Function:. Quindi, utilizza la notazione
      con punto per visualizzare il valore della proprietà Definition
      della funzione Prompt.

  Prompt predefinito

      Il prompt predefinito di Windows PowerShell è il seguente:

      PS>

      Questo prompt viene visualizzato solo quando la funzione prompt
      genera un errore o quando la funzione prompt non restituisce
      una stringa o un oggetto.

          PS C:\> function prompt {$null}
          PS>

      Poiché Windows PowerShell è fornito con un prompt incorporato,
      non viene normalmente visualizzato il prompt predefinito se non
      si scrive la propria funzione prompt.

  Prompt incorporato

      Windows PowerShell include una funzione prompt incorporata che
      crea i prompt comuni. La funzione prompt incorporata è la seguente:

          function prompt
          {
              $(if (test-path variable:/PSDebugContext) { '[DBG]: ' }

              else { '' }) + 'PS ' + $(Get-Location) `

              + $(if ($nestedpromptlevel -ge 1) { '>>' }) + '> '
          }

      La funzione utilizza il cmdlet Test-Path per determinare se la
      variabile automatica $PSDebugContext è compilata. Se
      $PSDebugContext è compilata, si è in modalità di debug e viene
      aggiunto "[DBG]" al prompt, come segue:

      [DBG] PS C:\ps-test>

      Se $PSDebugContext non è compilata, la funzione aggiunge "PS"
      al prompt e utilizza il cmdlet Get-Location per ottenere il
      percorso corrente della directory di file system. Quindi,
      aggiunge una parentesi angolare destra (>).

      PS C:\ps-test>

      Se si è in un prompt nidificato, la funzione aggiunge due
      parentesi angolari (>>) al prompt (si è in un prompt nidificato
      se il valore della variabile automatica $NestedPromptLevel è
      maggiore di 1).

      Ad esempio, quando si esegue il debug in un prompt nidificato,
      il prompt è analogo al seguente:

      [DBG] PS C:\ps-test>>>

      Il cmdlet Enter-PSSession antepone il nome del computer remoto
      alla funzione Prompt corrente. Quando si utilizza il cmdlet
      Enter-PSSession per avviare una sessione con un computer
      remoto, il prompt dei comandi viene modificato per includere il
      nome del computer remoto. Ad esempio:

          PS Hello, World> Enter-PSSession Server01

          [Server01]: PS Hello, World>

      Altre applicazioni host di Windows PowerShell e altre shell
      possono presentare i loro prompt dei comandi personalizzati.

      Per ulteriori informazioni sulle variabili automatiche
      $PSDebugContext e $NestedPromptLevel, vedere about_Automatic_Var
      iables.

  Personalizzazione del prompt

      Per personalizzare il prompt, scrivere una nuova funzione
      Prompt. La funzione non è protetta, pertanto è possibile
      sovrascriverla.

      Per scrivere una funzione prompt, digitare quanto segue:

      function prompt { }

      Quindi, tra le parentesi graffe, immettere i comandi o la
      stringa che crea il prompt.

      Ad esempio, il prompt include il nome del computer:

      function prompt {"PS [$env:COMPUTERNAME]> "}

      Nel computer Server01, il prompt è analogo al seguente:

      PS [Server01] >

      La funzione prompt seguente include la data e l'ora correnti:

      function prompt {"$(get-date)> "}

      Il prompt è analogo al seguente:

      01/01/2008 17:49:47>

      È anche possibile modificare la funzione Prompt predefinita:

          function prompt
          {
              $(if (test-path variable:/PSDebugContext) { '[DBG]: ' }

              else { '' }) + "$(get-date)" `

              + $(if ($nestedpromptlevel -ge 1) { '>>' }) + '> '
          }

      Ad esempio, la funzione Prompt modificata seguente aggiunge
      "[ADMIN]:" al prompt di Windows PowerShell incorporato quando
      Windows PowerShell viene aperto tramite l'opzione "Esegui come
      amministratore":

          function prompt
          {
              $identity = [Security.Principal.WindowsIdentity]::GetCurrent()
              $principal = [Security.Principal.WindowsPrincipal] $identity

              $(if (test-path variable:/PSDebugContext) { '[DBG]: ' }

              elseif($principal.IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
                  { "[ADMIN]: " }

              else { '' }) + 'PS ' + $(Get-Location) + $(if ($nestedpromptlevel -ge 1) { '>>' }) + '> '
          }

      Quando si avvia Windows PowerShell tramite l'opzione "Esegui
      come amministratore", viene visualizzato un prompt analogo al
      seguente:

      [ADMIN]: PS C:\ps-test>

      La funzione Prompt seguente visualizza l'ID cronologia del
      comando successivo. Per visualizzare la cronologia dei comandi,
      utilizzare il cmdlet Get-History.

          function prompt
          {
             # Il segno chiocciola crea una matrice in caso sia
             presente un solo elemento di cronologia.
             $history = @(get-history)
             if($history.Count -gt 0)
             {
                $lastItem = $history[$history.Count - 1] $lastId =
                $lastItem.Id
             }

             $nextCommand = $lastId + 1
             $currentDirectory = get-location
             "PS: $nextCommand $currentDirectory >"
          }

      Il prompt seguente utilizza i cmdlet Write-Host e Get-Random
      per creare un prompt che modifica il colore in modo casuale.
      Poiché Write-Host scrive nell'applicazione host corrente ma non
      restituisce un oggetto, questa funzione include un'istruzione
      Return. Senza di essa , Windows PowerShell utilizza il prompt
      predefinito "PS>".

          function prompt
           {
              $color = get-random -min 1 -max 16
              write-host ("PS " + $(get-location) +">") -nonewline -foregroundcolor $color
              return " "
          }

  Salvataggio del prompt

      Come qualsiasi funzione, la funzione Prompt si applica solo
      alla sessione corrente. Per salvare la funzione Prompt per le
      sessioni future, aggiungerla ai profili di Windows PowerShell.
      Per ulteriori informazioni sui profili, vedere about_Profiles.

VEDERE ANCHE
    Get-Location
    Enter-PSSession
    Get-History
    Get-Random
    Write-Host
    about_Profiles
    about_Functions
    about_Scopes
    about_Debuggers
    about_Automatic_Variables


about_Properties

ARGOMENTO
    about_Properties

DESCRIZIONE BREVE
    Descrive come utilizzare le proprietà degli oggetti in Windows
    PowerShell.

DESCRIZIONE DETTAGLIATA
    In Windows PowerShell vengono utilizzati insiemi strutturati di
    informazioni, detti oggetti, per rappresentare gli elementi degli
    archivi dati o lo stato del computer.
    In genere, si utilizzano oggetti che fanno parte di Microsoft
    .NET Framework ma è anche possibile creare oggetti personalizzati
    in Windows PowerShell.

    L'associazione tra un elemento e l'oggetto è molto stretta.
    Quando si modifica un oggetto, si modifica anche l'elemento che
    rappresenta. Ad esempio, quando si ottiene un file in Windows
    PowerShell, non si ottiene il file effettivo.
    Si ottiene, viceversa, un oggetto FileInfo che rappresenta tale
    file. Quando si modifica l'oggetto FileInfo, viene modificato
    anche il file.

    La maggior parte degli oggetti dispone di proprietà. Le proprietà
    sono i dati associati a un oggetto. Questi dati descrivono
    l'oggetto. Ad esempio, un oggetto FileInfo include la proprietà
    Length, che specifica le dimensioni del file rappresentato
    dall'oggetto.

  Proprietà degli oggetti

     Per elencare le proprietà di un oggetto, utilizzare il cmdlet
     Get-Member. Ad esempio per ottenere le proprietà di un oggetto
     FileInfo, utilizzare il cmdlet Get-ChildItem per ottenere
     l'oggetto FileInfo che rappresenta un file. Quindi, utilizzare
     un operatore pipeline (|) per inviare l'oggetto FileInfo a
     Get-Member. Il comando seguente ottiene il file PowerShell.exe e
     lo invia a Get-Member. La variabile automatica $Pshome contiene
     il percorso della directory di installazione di Windows PowerShell.

         get-childitem $pshome\powershell.exe | get-member

     Nell'output del comando sono elencati i membri dell'oggetto
     FileInfo. I membri includono sia proprietà che metodi. Quando si
     utilizza Windows PowerShell, si ha accesso a tutti i membri
     degli oggetti.

     Per ottenere solo le proprietà di un oggetto e non i metodi,
     utilizzare il parametro MemberType del cmdlet Get-Member con il
     valore "property" come illustrato nell'esempio seguente.

         get-childitem $pshome\powershell.exe | get-member -membertype property

            TypeName: System.IO.FileInfo

         Name              MemberType Definition
         ----              ---------- ----------
         Attributes        Property   System.IO.FileAttributes Attributes {get;set;}
         CreationTime      Property   System.DateTime CreationTime {get;set;}
         CreationTimeUtc   Property   System.DateTime CreationTimeUtc {get;set;}
         Directory         Property   System.IO.DirectoryInfo Directory {get;}
         DirectoryName     Property   System.String DirectoryName {get;}
         Exists            Property   System.Boolean Exists {get;}
         Extension         Property   System.String Extension {get;}
         FullName          Property   System.String FullName {get;}
         IsReadOnly        Property   System.Boolean IsReadOnly {get;set;}
         LastAccessTime    Property   System.DateTime LastAccessTime {get;set;}
         LastAccessTimeUtc Property   System.DateTime LastAccessTimeUtc {get;set;}
         LastWriteTime     Property   System.DateTime LastWriteTime {get;set;}
         LastWriteTimeUtc  Property   System.DateTime LastWriteTimeUtc {get;set;}
         Length            Property   System.Int64 Length {get;}
         Name              Property   System.String Name {get;}

     Dopo avere trovato le proprietà, è possibile utilizzarle nei
     comandi di Windows PowerShell.

  Valori delle proprietà

     Anche se ogni oggetto di un tipo specifico dispone delle stesse
     proprietà, i valori di quelle proprietà descrivono il
     particolare oggetto. Ad esempio, ogni oggetto FileInfo dispone
     di una proprietà CreationTime, ma il valore di tale proprietà è
     diverso per ogni file.

     La modalità più comune per ottenere i valori delle proprietà di
     un oggetto è utilizzare il metodo con punto. Digitare un
     riferimento all'oggetto, ad esempio una variabile contenente
     l'oggetto o un comando che ottiene l'oggetto. Quindi, digitare
     un punto (.) seguito dal nome della proprietà.

     Ad esempio, il comando seguente visualizza il valore della
     proprietà CreationTime del file PowerShell.exe. Il comando
     Get-ChildItem restituisce un oggetto FileInfo che rappresenta il
     file PowerShell.exe. Il comando è racchiuso tra parentesi per
     assicurare che venga eseguito prima dell'accesso a qualsiasi
     proprietà. Il comando Get-ChildItem è seguito da un punto e dal
     nome della proprietà CreationTime, come illustrato di seguito:

         C:\PS> (Get-ChildItem $pshome\powershell.exe).creationtime
         Martedì 18 marzo 2008 12.07.52

     È possibile salvare anche un oggetto in una variabile e
     ottenerne le proprietà tramite il metodo con punto, come
     illustrato nell'esempio seguente:

         C:\PS> $a = Get-ChildItem $pshome\powershell.exe
         C:\PS> $a.CreationTime
         Martedì 18 marzo 2008 12.07.52

     È anche possibile utilizzare i cmdlet Select-Object e
     Format-List per visualizzare i valori delle proprietà di un
     oggetto. Select-Object e Format-List hanno un parametro
     Property. È possibile utilizzare il parametro Property per
     specificare una o più proprietà e il loro valore. In alternativa
     è possibile utilizzare il carattere (*) per rappresentare tutte
     le proprietà.

     Ad esempio, il comando seguente visualizza i valori di tutte le
     proprietà del file PowerShell.exe.

         C:\PS> Get-ChildItem $pshome\powershell.exe | Format-List -property *

         PSPath            : Microsoft.PowerShell.Core\FileSystem::C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
         PSParentPath      : Microsoft.PowerShell.Core\FileSystem::C:\Windows\system32\WindowsPowerShell\v1.0
         PSChildName       : powershell.exe
         PSDrive           : C
         PSProvider        : Microsoft.PowerShell.Core\FileSystem
         PSIsContainer     : False
         VersionInfo       : File:             C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
                             InternalName:     POWERSHELL
                             OriginalFilename: PowerShell.EXE.MUI
                             File Version:      6.1.6570.1 (fbl_srv_powershell(nigels).070711-0102)
                             FileDescription:  PowerShell.EXE
                             Product:          Microsoft® Windows® Operating System
                             ProductVersion:   6.1.6570.1
                             Debug:            False
                             Patched:          False
                             PreRelease:       False
                             PrivateBuild:     True
                             SpecialBuild:     False
                             Language:         English (United States)

         BaseName          : powershell
         Mode              : -a---
         Name              : powershell.exe
         Length            : 160256
         DirectoryName     : C:\Windows\system32\WindowsPowerShell\v1.0
         Directory         : C:\Windows\system32\WindowsPowerShell\v1.0
         IsReadOnly        : False
         Exists            : True
         FullName          : C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
         Extension         : .exe
         CreationTime      : 18/3/2008 12.07.52
         CreationTimeUtc   : 18/3/2008 7.07.52
         LastAccessTime    : 19/3/2008 8.13.58
         LastAccessTimeUtc : 19/3/2008 15.13.58
         LastWriteTime     : 18/3/2008 12.07.52
         LastWriteTimeUtc  : 18/3/2008 7.07.52
         Attributes        : Archive

VEDERE ANCHE
    about_Objects
    Get-Member
    Select-Object
    Format-List


about_Providers

ARGOMENTO
    about_Providers

DESCRIZIONE BREVE
    Descrive come i provider di Windows PowerShell consentono
    l'accesso a dati e componenti che altrimenti non sarebbero facilmente
    accessibili dalla riga di comando. I dati sono presentati in un
    formato coerente analogo a un'unità del file system.

DESCRIZIONE DETTAGLIATA
    I provider di Windows PowerShell sono programmi basati su
    Microsoft .NET Framework che rendono disponibili in Windows
    PowerShell i dati di archivi dati specializzati per consentirne la
    visualizzazione e la gestione.

    I dati esposti da un provider vengono visualizzati in un'unità e vi si
    accede tramite un percorso come in un'unità del disco rigido. È possibile
    utilizzare qualsiasi cmdlet predefinito supportato dal provider per
    gestire i dati dell'unità del provider. Inoltre, è possibile
    utilizzare i cmdlet personalizzati progettati specificamente per i dati.

    I provider possono inoltre aggiungere parametri dinamici ai cmdlet
    predefiniti. Si tratta di parametri disponibili solo quando si
    utilizza il cmdlet con i dati del provider.

PROVIDER PREDEFINITI
    In Windows PowerShell sono inclusi vari provider predefiniti che
    è possibile utilizzare per accedere ai diversi tipi di archivi dati.

    Provider      Drive         Archivio dati
    --------      -----         ---------------------------
    Alias         Alias:        Alias di Windows PowerShell

    Certificate   Cert:         Certificati X509 per le firme digitali

    Environment   Env:          Variabili di ambiente Windows

    FileSystem    *             Unità, directory e file del file system

    Function      Function:     Funzioni di Windows PowerShell

    Registry      HKLM:, HKCU   Registro di sistema di Windows

    Variable      Variable:     Variabili di Windows PowerShell

    WS-Management WSMan         Informazioni di configurazione di WS-Management

    * Le unità FileSystem variano in ogni sistema.

    È inoltre possibile creare provider di Windows PowerShell
    personalizzati e installare i provider sviluppati da altri. Per
    elencare i provider disponibili nella sessione, digitare:

       get-psprovider

INSTALLAZIONE E RIMOZIONE DEI PROVIDER
    I provider di Windows PowerShell sono forniti mediante gli snap-in di
    Windows PowerShell, che sono programmi basati su .NET Framework
    compilati in forma di file DLL. Gli snap-in possono includere
    provider e cmdlet.

    Prima di utilizzare le funzionalità del provider, è necessario
    installare lo snap-in e aggiungerlo alla sessione di Windows
    PowerShell. Per ulteriori informazioni, vedere about_PsSnapins.

    Non è possibile disinstallare un provider, sebbene si possa
    rimuovere dalla sessione corrente lo snap-in di Windows
    PowerShell relativo al provider in questione. In questo caso,
    verrà rimosso tutto il contenuto dello snap-in, inclusi i cmdlet.

    Per rimuovere un provider dalla sessione corrente, utilizzare il
    cmdlet Remove-PsSnapin. Questo cmdlet non scarica né disinstalla
    il provider, bensì lo rende non disponibile nella sessione.

    Inoltre è possibile utilizzare il cmdlet Remove-PsDrive per rimuovere
    qualsiasi unità dalla sessione corrente. I dati dell'unità non
    vengono intaccati, sebbene l'unità stessa non sia più disponibile
    nella sessione.

VISUALIZZAZIONE DEI PROVIDER
    Per visualizzare i provider di Windows PowerShell disponibili nel
    computer, digitare:

    get-psprovider

    Nell'output vengono elencati i provider predefiniti e quelli che
    sono stati aggiunti alla sessione.

CMDLET PROVIDER
    I cmdlet seguenti sono progettati per l'utilizzo dei dati esposti da
    qualsiasi provider. È possibile utilizzare gli stessi cmdlet nello
    stesso modo per gestire diversi tipi di dati esposti dai provider.
    Dopo avere appreso come gestire i dati di un provider, è possibile
    utilizzare le stesse procedure con i dati di qualsiasi provider.

    Ad esempio, il cmdlet New-Item crea un nuovo elemento. Nell'unità C:
    supportata dal provider FileSystem, è possibile utilizzare New-Item
    per creare un nuovo file o una nuova cartella. Nelle unità supportate
    dal provider Registry, è possibile utilizzare New-Item per creare una
    nuova chiave del Registro di sistema. Nell'unità Alias:, è possibile
    utilizzare New-Item per creare un nuovo alias.

    Per informazioni dettagliate su qualsiasi dei seguenti cmdlet, digitare:

        get-help <nome-cmdlet> -detailed

    CMDLET CHILDITEM
        Get-ChildItem

    CMDLET CONTENT
        Add-Content
        Clear-Content
        Get-Content
        Set-Content

    CMDLET ITEM
        Clear-Item
        Copy-Item
        Get-Item
        Invoke-Item
        Move-Item
        New-Item
        Remove-Item
        Rename-Item
        Set-Item

    CMDLET ITEMPROPERTY
        Clear-ItemProperty
        Copy-ItemProperty
        Get-ItemProperty
        Move-ItemProperty
        New-ItemProperty
        Remove-ItemProperty
        Rename-ItemProperty
        Set-ItemProperty

    CMDLET LOCATION
        Get-Location
        Pop-Location
        Push-Location
        Set-Location

    CMDLET PATH
        Join-Path
        Convert-Path
        Split-Path
        Resolve-Path
        Test-Path

    CMDLET PSDRIVE
        Get-PSDrive
        New-PSDrive
        Remove-PSDrive

    CMDLET PSPROVIDER
        Get-PSProvider

VISUALIZZAZIONE DEI DATI DEI PROVIDER
    Il principale vantaggio di un provider è che i dati vengono
    esposti in modo coerente e usuale. Il modello adottato per la
    presentazione dei dati è un'unità del file system.

    Per utilizzare i dati esposti dal provider, li si visualizza, li
    si scorre e li si modifica come se si trattasse dei dati in un
    disco rigido. Pertanto, l'informazione più importante su un
    provider è il nome dell'unità da esso supportata.

    L'unità è indicata nella visualizzazione predefinita del cmdlet Get-
    PsProvider, tuttavia è possibile ottenere informazioni sull'unità del
    provider utilizzando il cmdlet Get-PsDrive. Ad esempio, per ottenere
    tutte le proprietà dell'unità Function:, digitare:

    get-psdrive Function | format-list *

    È possibile visualizzare e scorrere i dati dell'unità di un
    provider allo stesso modo di quelli di un'unità del file system.

    Per visualizzare il contenuto dell'unità di un provider, utilizzare il
    cmdlet Get-Item o Get-ChildItem. Digitare il nome dell'unità seguito
    dai due punti (:). Ad esempio, per visualizzare il contenuto
    dell'unità Alias:, digitare:

        get-item alias:

    È possibile visualizzare e gestire i dati di un'unità da un'altra
    unità includendo il nome dell'unità nel percorso. Ad esempio, per
    visualizzare la chiave del Registro di sistema HKLM\Software
    nell'unità HKLM: da un'altra unità, digitare:

        get-childitem hklm:\software

    Per aprire l'unità, utilizzare il cmdlet Set-Location. Non
    omettere i due punti quando si specifica il percorso dell'unità.
    Ad esempio, per modificare il percorso impostandolo sulla
    directory radice dell'unità Cert:, digitare:

        set-location cert:

    Quindi, per visualizzare il contenuto dell'unità Cert:, digitare:

    get-childitem

SPOSTAMENTO TRA I DATI GERARCHICI
    È possibile spostarsi nell'unità di un provider come se si
    trattasse di un disco rigido. Se i dati sono ordinati in forma
    gerarchica, ossia se gli elementi sono contenuti dentro altri
    elementi, utilizzare la barra rovesciata (\) per indicare un
    elemento figlio. Utilizzare il formato seguente:

    unità:\percorso\posizione-figlio\...

    Ad esempio, per modificare il percorso impostandolo sulla chiave del
    Registro di sistema HKLM\Software, utilizzare il comando Set-Location
    nel modo seguente:

        set-location hklm:\software

    È anche possibile utilizzare i riferimenti relativi ai percorsi.
    Un punto (.) rappresenta il percorso corrente. Se ad esempio ci
    si trova nella chiave del Registro di sistema HKLM:\Software\Micro
    soft e si desidera elencare le sottochiavi del Registro di
    sistema nella chiave HKLM:\Software\Micrsoft\PowerShell, digitare
    il comando seguente:

        get-childitem .\powershell

INDIVIDUAZIONE DEI PARAMETRI DINAMICI
    I parametri dinamici sono parametri dei cmdlet aggiunti a un
    cmdlet da un provider. Questi parametri sono disponibili solo
    quando il cmdlet viene utilizzato dal provider che lo ha aggiunto.

    Ad esempio, l'unità Cert: aggiunge il parametro CodeSigningCert
    ai cmdlet Get-Item e Get-ChildItem. È possibile utilizzare questo
    parametro solo quando si utilizza Get-Item o Get-ChildItem
    nell'unità Cert:.

    Per l'elenco dei parametri dinamici supportati da un provider,
    vedere il file di informazioni relativo al provider in questione.
    Digitare:

    get-help <nome-provider>

    Ad esempio:

    get-help certificate

INFORMAZIONI SUI PROVIDER
    Sebbene tutti i dati dei provider vengano visualizzati nelle
    unità e si utilizzino gli stessi metodi per spostarsi tra di essi, le
    somiglianze si esauriscono qui. Gli archivi dati esposti da un
    provider possono variare considerevolmente, spaziando dai percorsi di
    Active Directory alle cassette postali di Microsoft Exchange Server.

    Per informazioni sui singoli provider di Windows PowerShell, digitare:

    get-help <NomeProvider>

    Ad esempio:

    get-help registry

    Per un elenco di argomenti della Guida sui provider, digitare:

    get-help * -category provider

VEDERE ANCHE
    about_Locations
    about_Path_Syntax


about_PSSessions

ARGOMENTO
    about_PSSessions

DESCRIZIONE BREVE
    Descrive le sessioni di Windows PowerShell (PSSession) e illustra come
    stabilire una connessione permanente a un computer remoto.

DESCRIZIONE DETTAGLIATA
    Per eseguire comandi di Windows PowerShell in un computer remoto, è
    possibile utilizzare il parametro ComputerName di un cmdlet oppure
    creare un sessione di Windows PowerShell (PSSession) ed eseguire
    comandi in tale sessione.

    Quando si crea una sessione PSSession, Windows PowerShell
    stabilisce una connessione permanente al computer remoto.
    Utilizzare una sessione PSSession per eseguire una serie di comandi
    correlati in un computer remoto. I comandi che vengono eseguiti nella
    stesse sessione PSSession possono condividere dati, ad esempio valori
    di variabili, alias e funzioni.

    È anche possibile creare una sessione PSSession nel computer locale ed
    eseguire comandi in tale sessione. Una sessione PSSession locale utilizza
    l'infrastruttura remota di Windows PowerShell per creare e mantenere
    la sessione PSSession.

    In questo argomento viene illustrato come creare, utilizzare,
    ottenere ed eliminare sessioni PSSession. Per informazioni avanzate,
    vedere about_PSSession_Details.

    Nota: le sessioni PSSession utilizzano l'infrastruttura remota di
          Windows PowerShell. Per utilizzare sessioni PSSession, è necessario
          configurare i computer locali e remoti per la comunicazione remota.
          Per ulteriori informazioni, vedere about_Remote_Requirements.

          In Windows Vista e nelle versioni successive di Windows,
          per creare una sessione PSSession in un computer locale, è
          necessario avviare Windows PowerShell con l'opzione "Esegui come
          amministratore".

 DEFINIZIONE DI SESSIONE
    Una sessione è un ambiente in cui viene eseguito Windows PowerShell.

    Ogni volta che si avvia Windows PowerShell, viene automaticamente
    creata una sessione in cui è possibile eseguire comandi. È anche
    possibile aggiungere elementi alla sessione, ad esempio moduli e
    snap-in, e creare elementi, ad esempio variabili, funzioni e
    alias. Questi elementi sono presenti esclusivamente nella
    sessione in uso e vengono eliminati quando la sessione termina.

    È anche possibile creare sessioni aggiuntive, note come "sessioni
    di Windows PowerShell" o "PSSession", nel computer locale o in un
    computer remoto. Analogamente alla sessione predefinita, è possibile
    eseguire comandi in una sessione PSSession, nonché aggiungere e
    creare elementi.

    Tuttavia, a differenza della sessione avviata automaticamente, è
    possibile controllare le sessioni PSSession che si creano. È possibile
    ottenere, creare, configurare e rimuoverle ed è possibile eseguire
    più comandi nello stessa sessione PSSession. La sessione PSSession
    resta aperta e disponibile finché non la si elimina dalla sessione.

    In genere, si crea una sessione PSSession per eseguire una serie
    di comandi correlati in un computer remoto. Quando si crea una
    sessione PSSession in un computer remoto, Windows PowerShell
    stabilisce una connessione permanente con il computer remoto per
    supportare tale sessione.

    Se si utilizza il parametro computerName del cmdlet
    Invoke-Command o Enter-PSSession per eseguire un comando remoto o
    avviare una sessione interattiva, in Windows PowerShell viene
    creata una sessione temporanea nel computer remoto e viene chiusa la
    sessione non appena il comando viene completato o la sessione interattiva
    termina. Non è possibile controllare queste sessioni temporanee e non è
    possibile utilizzarle per più comandi o per più sessioni interattive.

    In Windows PowerShell, per "sessione corrente" si intende la
    sessione in cui si lavora. "Sessione corrente" si può riferire a
    qualsiasi sessione, includendo una sessione temporanea o una sessione
    PSSession.

 PERCHÉ UTILIZZARE UNA SESSIONE PSSESSION?
    Utilizzare una sessione PSSession quando è necessaria una connessione
    permanente a un computer remoto. Con una sessione PSSession, è possibile
    eseguire una serie di comandi che condividono dati, ad esempio il
    valore di variabili, il contenuto di una funzione o la definizione di
    un alias.

    È possibile eseguire comandi remoti senza creare una sessione
    PSSession. Utilizzare il parametro ComputerName di cmdlet abilitati in
    modalità remota per eseguire un comando singolo o una serie di comandi non
    correlati in uno o più computer.

    Quando si utilizza il parametro ComputerName di Invoke-Expression
    o Enter-PSSession, Windows PowerShell stabilisce una connessione
    temporanea al computer remoto e chiude la connessione non appena
    il comando viene completato. Quando la connessione viene chiusa
    tutti gli elementi di dati creati vengono persi.

    Gli altri cmdlet che dispongono di un parametro ComputerName, ad
    esempio Get-Eventlog e Get-WmiObject, utilizzando tecnologie di
    comunicazione remota diverse per raccogliere dati. Nessuno crea una
    connessione permanente come una sessione PSSession.

 MODALITÀ DI CREAZIONE DI UNA SESSIONE PSSESSION
    Per creare una sessione PSSession, utilizzare il cmdlet
    New-PSSession. Per creare la sessione PSSession nel computer remoto,
    utilizzare il parametro ComputerName del cmdlet New-PSSession.

    Ad esempio, il comando seguente crea una nuova sessione PSSession nel
    computer Server01.

        new-pssession -computername Server01

    Quando si invia il comando, New-PSSession crea la sessione PSSession e
    restituisce un oggetto che rappresenta tale sessione. È possibile salvare
    l'oggetto in una variabile al momento della creazione della sessione
    PSSession o utilizzare un comando Get-PSSession per ottenere la sessione
    PSSession in un momento successivo.

    Ad esempio, il comando seguente crea una nuova sessione PSSession nel
    computer Server01 e salva l'oggetto risultante nella variabile $ps.

        $ps = new-pssession -computername Server01

 MODALITÀ DI CREAZIONE DI SESSIONI PSSESSION IN MOLTI COMPUTER
    Per creare sessioni PSSession in più computer, utilizzare il parametro
    ComputerName del cmdlet New-PSSession. Digitare i nomi dei computer
    remoti in un elenco delimitato da virgole.

    Ad esempio, per creare sessioni PSSession nei computer Server01,
    Server02 e Server03, digitare:

        new-PSSession -computername Server01, Server02, Server03

    New-PSSession crea una sessione PSSession in ognuno dei computer
    remoti.

 MODALITÀ DI OTTENIMENTO DI SESSIONI PSSESSION
    Per ottenere le sessioni PSSession create nella sessione corrente,
    utilizzare il cmdlet Get-PSSession. Get-PSSession restituisce lo
    stesso tipo di oggetto restituito da New-PSSession.

    Il comando seguente ottiene tutte le sessioni PSSession create nella
    sessione corrente.

        get-PSSession

    Nella visualizzazione predefinita delle sessioni PSSession è
    riportato il loro ID e un nome visualizzato predefinito. È possibile
    assegnare un nome visualizzato alternativo al momento della creazione della
    sessione.

        Id   Name       ComputerName    State    ConfigurationName
        ---  ----       ------------    -----    ---------------------
        1    Session1   Server01        Opened   Microsoft.PowerShell
        2    Session2   Server02        Opened   Microsoft.PowerShell
        3    Session3   Server03        Opened   Microsoft.PowerShell

    È anche possibile salvare le sessioni PSSession in una variabile.
    Il comando seguente ottiene sessioni PSSession e le salva nella
    variabile $ps123.

        $ps123 = get-PSSession

    Quando si utilizzano i cmdlet PSSession, è possibile fare
    riferimento a una sessione PSSession tramite l'ID, il nome o ID
    istanza (GUID) relativo. Il comando seguente ottiene una sessione
    PSSession tramite l'ID relativo e la salva nella variabile $ps01.

        $ps01 = get-PSSession -id 1

    Get-PSSession ottiene solo le sessioni PSSession create nella sessione
    corrente. Non ottiene le sessioni PSSession create in altre sessioni
    o in altri computer, anche se le sessioni sono connesse ed eseguono
    comandi nel computer locale.

 MODALITÀ DI ESECUZIONE DI COMANDI IN UNA SESSIONE PSSESSION
    Per eseguire un comando in una o più sessioni PSSession, utilizzare il
    cmdlet Invoke-Command. Utilizzare il parametro Session per specificare le
    sessioni PSSession e il parametro ScriptBlock per specificare il comando.

    Ad esempio, per eseguire un comando Get-ChildItem ("dir") in
    ognuna delle tre sessioni PSSession salvate nella variabile
    $ps123, digitare:

        invoke-command -session $ps123 -scriptblock {get-childitem}

 MODALITÀ DI ELIMINAZIONE DI SESSIONI PSSESSION
    Al termine delle operazioni nella sessione PSSession, utilizzare
    il cmdlet Remove-PSSession per eliminare la sessione e rilasciare
    le risorse da essa utilizzate.

        remove-PSSession -session $ps

        - oppure

        remove-PSSession -id 1

    Se non si elimina la sessione PSSession, la sessione PSSession resterà
    aperta e disponibile per l'uso finché non si chiude la sessione o
    finché non si esce da Windows PowerShell.

    È anche possibile utilizzare il parametro TimeOut di New-PSSession per
    impostare un tempo di scadenza per una sessione PSSession. Per ulteriori
    informazioni, vedere new-PSSession.

 CMDLET PSSESSION

    Cmdlet                Descrizione
    -----------------     -----------------------------------------------------------------
    New-PSSession         Crea una nuova sessione PSSession in un computer locale o remoto.

    Get-PSSession         Ottiene le sessioni PSSession della sessione corrente.

    Remove-PSSession      Elimina le sessioni PSSession della sessione corrente.

    Enter-PSSession       Avvia una sessione interattiva.

    Exit-PSSession        Termina una sessione interattiva.

    Per un elenco dei cmdlet PSSession, digitare:

    get-help *-PSSession

 PER ULTERIORI INFORMAZIONI
    Per ulteriori informazioni sulle sessioni PSSession, vedere
    about_PSSession_Details.

VEDERE ANCHE
    about_Remote
    about_Remote_Requirements
    New-PSSession
    Get-PSSession
    Remove-PSSession
    Enter-PSSession
    Exit-PSSession
    Invoke-Command


about_PSSession_Details

ARGOMENTO
    about_PSSession_Details

DESCRIZIONE BREVE
    Fornisce informazioni dettagliate sulle sessioni di Windows
    PowerShell e sul ruolo che interpretano nei comandi remoti.

DESCRIZIONE DETTAGLIATA
    Una sessione è un ambiente in cui viene eseguito Windows
    PowerShell. Viene automaticamente creata una sessione ogni volta
    che si avvia Windows PowerShell. È inoltre possibile creare sessioni
    aggiuntive, denominate "sessioni di Windows PowerShell" o "PSSession"
    nel computer in uso o in un altro computer.

    A differenza delle sessioni create automaticamente in Windows
    PowerShell, le sessioni PSSession che si creano possono essere
    controllate e gestite.

    Le sessioni PSSession svolgono un ruolo importante nell'elaborazio
    ne remota. Quando si crea una sessione PSSession connessa a un
    computer remoto, Windows PowerShell stabilisce una connessione
    permanente con il computer remoto per supportare tale sessione. È
    possibile utilizzare la sessione PSSession per eseguire una serie
    di comandi, funzioni e script che condividono i dati.

    In questo argomento vengono fornite informazioni dettagliate su
    sessioni e PSSession in Windows PowerShell. Per informazioni di
    base sulle attività che è possibile eseguire con le sessioni, vedere
    about_PSSessions.

 INFORMAZIONI SULLE SESSIONI
    Tecnicamente, una sessione è un ambiente di esecuzione in cui
    viene eseguito Windows PowerShell. Ogni sessione include
    un'istanza del motore System.Management.Automation e un programma
    host in cui viene eseguito Windows PowerShell. L'host può essere
    la console di Windows PowerShell abituale o un altro programma
    che esegue comandi, ad esempio Cmd.exe o un programma compilato
    per ospitare Windows PowerShell, ad esempio Windows PowerShell
    Integrated Scripting Environment (ISE). Per quanto riguarda Windows, una sessione è un processo di
    Windows sul computer di destinazione.

    Ogni sessione è configurata indipendentemente. Include proprietà,
    criteri di esecuzione e profili propri. L'ambiente presente al
    momento della creazione della sessione viene mantenuto per tutta
    la sua durata, anche se si modifica l'ambiente nel computer. Tutte le
    sessioni vengono create in un ambito globale, anche le sessioni che
    si creano in uno script.

    In una sessione è possibile eseguire un solo comando (o pipeline
    di comandi) alla volta. Un secondo comando eseguito in modo
    sincrono (uno alla volta) attende fino a quattro minuti il
    completamento del primo comando. Un secondo comando eseguito in modo
    asincrono (contemporaneamente) non riesce.

 INFORMAZIONI SULLE SESSIONI PSSESSION
    Ogni volta che si avvia Windows PowerShell viene creata una
    sessione. Inoltre, in Windows PowerShell vengono create
    automaticamente sessioni temporanee per l'esecuzione di comandi
    singoli. Tuttavia, è anche possibile creare sessioni (denominate
    "sessioni di Windows PowerShell" o "PSSession") che è possibile
    controllare e gestire.

    Le sessioni PSSession sono essenziali per i comandi remoti. Se si
    utilizza il parametro ComputerName dei cmdlet Invoke-Command o
    Enter-PSSession, in Windows PowerShell viene stabilita una sessione
    temporanea per eseguire il comando, quindi viene chiusa la sessione
    al completamento del comando o della sessione interattiva.

    Tuttavia, se si utilizza il cmdlet New-PSSession per creare una
    sessione PSSession, in Windows PowerShell viene stabilita una sessione
    permanente nel computer remoto in cui è possibile eseguire più comandi
    o sessioni interattive. Le sessioni PSSession create restano aperte e
    disponibili per l'uso finché non vengono eliminate o finché non si
    chiude la sessione in cui sono state create.

    Quando si crea una sessione PSSession in un computer remoto,
    viene creato un processo di PowerShell nel computer remoto e
    viene stabilita una connessione dal computer locale al processo
    sul computer remoto. Quando si crea una sessione PSSession nel
    computer locale, sia il nuovo processo che le connessioni vengono
    create nel computer locale.

 QUANDO È NECESSARIA UNA SESSIONE PSSESSION?
    I cmdlet Invoke-Command e Enter-PSSession presentano entrambi i parametri
    ComputerName e Session. È possibile utilizzarli alternativamente per
    eseguire un comando remoto.

    Utilizzare il parametro ComputerName per eseguire un comando
    singolo o una serie di comandi non correlati su uno o più computer.

    Per eseguire comandi che condividono dati, è necessaria una
    connessione permanente al computer remoto. In questo caso, creare una
    sessione PSSession, quindi utilizzare il parametro Session per
    eseguire comandi nella sessione PSSession.

    Molti altri cmdlet che ottengono dati dai computer remoti, quali
    Get-Process, Get-Service, Get-EventLog e Get-WmiObject dispongono
    di solo un parametro ComputerName. Utilizzano tecnologie diverse dalla
    comunicazione remota di Windows PowerShell per raccogliere dati in
    modalità remota. Questi cmdlet non dispongono di un parametro Session
    ma è possibile utilizzare il cmdlet Invoke-Command per eseguire questi
    comandi in una sessione PSSession.

 COME SI CREA UNA SESSIONE PSSESSION?
    Per creare una sessione PSSession, utilizzare il cmdlet
    New-PSSession. È possibile utilizzare New-PSSession per creare
    una sessione PSSession in un computer locale o remoto.

 POSSO CREARE UNA SESSIONE PSSESSION IN QUALSIASI COMPUTER?
    Per creare una sessione PSSession connessa a un computer remoto,
    il computer deve essere configurato per la comunicazione remota
    in Windows PowerShell. L'utente corrente deve essere membro del gruppo
    Administrators nel computer remoto o deve essere in grado di fornire le
    credenziali di un membro del gruppo Administrators. Per ulteriori
    informazioni, vedere about_Remote_Requirements.

 È POSSIBILE VISUALIZZARE SESSIONI PSSESSION CREATE DA ALTRI UTENTI
 SUL COMPUTER LOCALE?
    No. È possibile ottenere e gestire solo le sessioni PSSession che
    si creano nella sessione corrente. Non è possibile visualizzare
    sessioni PSSession create da altri utenti, anche se hanno
    eseguito comandi sul computer locale.

 È POSSIBILE ESEGUIRE UN PROCESSO IN BACKGROUND IN UNA SESSIONE PSSESSION?
    Sì. Un processo in background è un comando che viene eseguito in modo
    asincrono in background e non interagisce con la sessione corrente.
    Quando si invia un comando per avviare un processo, viene restituito
    un oggetto processo ma il processo continua a essere in esecuzione in
    background finché non viene completato.

    Per avviare un processo in background in un computer locale,
    utilizzare il comando Start-Job. È possibile eseguire il processo in
    background in una connessione temporanea (tramite il parametro
    ComputerName) o in una sessione PSSession (tramite il parametro Session).

    Per avviare un processo in background in un computer remoto,
    utilizzare il cmdlet Invoke-Command con il parametro AsJob oppure
    utilizzare il cmdlet Invoke-Command per eseguire un comando
    Start-Job in un computer remoto. Quando si utilizza il parametro
    AsJob, è possibile utilizzare i parametri ComputerName o Session.

    Quando si utilizza Invoke-Command per eseguire un comando Start-Job, è
    possibile eseguire il comando in una sessione PSSession. Se si utilizza il
    parametro ComputerName, in Windows PowerShell viene terminata la
    connessione quando viene restituito l'oggetto processo e il processo viene
    interrotto.

    Per ulteriori informazioni, vedere about_Jobs.

 È POSSIBILE ESEGUIRE UNA SESSIONE INTERATTIVA?
    Sì. Per avviare una sessione interattiva con un computer remoto,
    utilizzare il cmdlet Enter-PSSession. In una sessione
    interattiva, i comandi digitati vengono eseguiti nel computer
    remoto, come se venissero digitati direttamente nel computer remoto.

    È possibile eseguire una sessione interattiva in una sessione
    temporanea (tramite il parametro ComputerName) o in una sessione
    PSSession (tramite il parametro Session). Se si utilizza una sessione
    PSSession, nella sessione PSSession vengono mantenuti i dati dei comandi
    precedenti ed eventuali dati generati durante la sessione interattiva per
    l'utilizzo nei comandi successivi.

    Quando si termina la sessione interattiva, la sessione PSSession
    rimane aperta e disponibile per l'uso.

    Per ulteriori informazioni, vedere Enter-PSSession e
    Exit-PSSession.

 È NECESSARIO ELIMINARE LE SESSIONI PSSESSION?
    Sì. Una sessione PSSession è un processo ovvero un ambiente
    autosufficiente che utilizza memoria e altre risorse anche
    quando non lo si utilizza. Al termine dell'utilizzo di una sessione
    PSSession, eliminarla. Se si creano più sessioni PSSession, chiudere
    quelle inutilizzate e mantenere solo quelle attualmente in uso.

    Per eliminare sessioni PSSession, utilizzare il cmdlet
    Remove-PSSession. Elimina le sessioni PSSession e rilascia tutte
    le risorse da esse utilizzate.

    È anche possibile utilizzare il parametro TimeOut di New-PSSession per
    chiudere una sessione PSSession inattiva dopo un intervallo
    specificato. Per ulteriori informazioni, vedere
    New-PSSession.

    Se non si elimina la sessione PSSession o non imposta un timeout, la
    sessione PSSession resterà aperta e disponibile per l'uso finché non la si
    chiude, finché non si chiude la sessione in cui è stata creata o
    finché non si esce da Windows PowerShell. Tuttavia, una sessione
    PSSession in un computer remoto verrà disconnessa se il computer
    remoto non risponde per quattro minuti (il computer remoto è
    configurato per inviare un impulso heartbeat ogni tre minuti).

    Se si salva uno oggetto PSSession in una variabile e quindi si
    elimina la sessione PSSession o si consente che il timeout scada, la
    variabile continua a contenere l'oggetto PSSession ma la sessione
    PSSession non è più attiva e non può essere utilizzata o ripristinata.

 SESSIONI E SESSIONI PSSESSION SONO UGUALI?
    No. Gli sviluppatori possono creare sessioni personalizzate che
    includono solo provider e cmdlet selezionati. Se un comando
    funziona in una sessione, ma non in un'altra, potrebbe essere
    dovuto al fatto che la sessione è limitata.

VEDERE ANCHE
    about_Jobs
    about_PSSessions
    about_Remote
    about_Remote_Requirements
    Invoke-Command
    New-PSSession
    Get-PSSession
    Remove-PSSession
    Enter-PSSession
    Exit-PSSession


about_Pssnapins

ARGOMENTO
    about_PSSnapins

DESCRIZIONE BREVE
    Vengono descritti gli snap-in di Windows PowerShell e viene
    illustrato come utilizzarli e gestirli.

DESCRIZIONE DETTAGLIATA
    Uno snap-in di Windows PowerShell è un assembly di Microsoft .NET
    Framework contenente provider e/o cmdlet di Windows PowerShell.
    Windows PowerShell include un insieme di snap-in di base, ma è
    possibile estendere le funzionalità e l'efficacia di Windows
    PowerShell aggiungendo snap-in contenenti provider e cmdlet creati o
    ottenuti da altre fonti.

    Quando si aggiunge uno snap-in, i cmdlet e i provider che
    contiene sono immediatamente disponibili per l'uso nella sessione
    corrente ma la modifica incide solo sulla sessione corrente.

    Per aggiungere lo snap-in a tutte le sessioni future, salvarlo
    nel profilo di Windows PowerShell. È anche possibile utilizzare
    il cmdlet Export-Console per salvare i nomi degli snap-in in un
    file della console e quindi utilizzarlo nelle sessioni future.
    È inoltre possibile salvare più file della console, ognuno con un
    insieme diverso di provider e snap-in.

 SNAP-IN INCORPORATI
    Windows PowerShell include un insieme di snap-in predefiniti
    contenenti i provider e i cmdlet incorporati.

    Microsoft.PowerShell.Core
        Contiene i provider e i cmdlet utilizzati per gestire le
        funzionalità di base di Windows PowerShell. Include i provider
        FileSystem, Registry, Alias, Environment, Function e Variable e
        cmdlet di base quali Get-Help, Get-Command e Get-History.

    Microsoft.PowerShell.Host
       Contiene i cmdlet utilizzati dall'host Windows PowerShell,
       quale Start-Transcript e Stop-Transcript.

    Microsoft.PowerShell.Management
        Contiene cmdlet quali Get-Service e Get-ChildItem utilizzati
        per gestire funzionalità basate su Windows.

    Microsoft.PowerShell.Security
        Contiene i cmdlet utilizzati per gestire la protezione di Windows
        PowerShell security, quali Get-Acl, Get-AuthenticodeSignature e
        ConvertTo-SecureString.

    Microsoft.PowerShell.Utility
        Contiene i cmdlet utilizzati per gestire oggetti e dati, quali Get-
        Member, Write-Host e Format-List.

 REPERIMENTO DEGLI SNAP-IN
    Per visualizzare un elenco degli snap-in di Windows PowerShell
    nel computer, digitare:

    get-pssnapin

    Per ottenere lo snap-in per ciascun provider di Windows
    PowerShell, digitare:

        get-psprovider | format-list name, pssnapin

    Per ottenere un elenco dei cmdlet contenuti in uno snap-in di Windows
    PowerShell, digitare:

        get-command -module <nome_snap-in>

 INSTALLAZIONE DI UNO SNAP-IN
    Gli snap-in incorporati vengono registrati nel sistema e aggiunti alla
    sessione predefinita all'avvio di Windows PowerShell. Viceversa, è
    necessario registrare gli snap-in che si creano o ottengono da altri
    e quindi aggiungerli alla sessione.

 REGISTRAZIONE DI UNO SNAP-IN
    Uno snap-in di Windows PowerShell è un programma scritto in
    linguaggio .NET Framework e compilato in un file DLL. Per utilizzare i
    provider e i cmdlet contenuti in uno snap-in, è innanzitutto necessario
    registrare lo snap-in, ossia aggiungerlo al Registro di sistema.

    La maggior parte degli snap-in include un programma di
    installazione (un file EXE o MSI) che consente la registrazione
    automatica del file DLL. Se, invece, si ottiene uno snap-in sotto
    forma di file DLL, è possibile registrarlo nel sistema. Per ulteriori
    informazioni, vedere l'argomento relativo alla registrazione di
    cmdlet, provider e applicazioni host nella in MSDN Library all'indirizzo
    http://go.microsoft.com/fwlink/?LinkID=143619 (le informazioni
    potrebbero essere in lingua inglese).

    Per ottenere tutti gli snap-in registrati nel sistema o per
    verificare se uno snap-in è registrato, digitare:

    get-pssnapin -registered

 AGGIUNTA DELLO SNAP-IN ALLA SESSIONE CORRENTE
    Per aggiungere uno snap-in registrato alla sessione corrente,
    utilizzare il cmdlet Add-PsSnapin. Ad esempio, per aggiungere lo
    snap-in Microsoft SQL Server snap-in alla sessione, digitare:

    add-pssnapin sql

    Una volta completato il comando, provider e cmdlet dello snap-in sono
    disponibili nella sessione. Sono tuttavia disponibili solo nella sessione
    corrente a meno che vengano salvati.

 SALVATAGGIO DEGLI SNAP-IN
    Per utilizzare uno snap-in nelle sessioni future di Windows
    PowerShell, aggiungere il comando Add-PsSnapin al profilo di Windows
    PowerShell. In alternativa, esportare i nomi degli snap-in in un file
    della console.

    Se si aggiunge il comando Add-PSSnapin al profilo, sarà
    disponibile in tutte le sessioni future di Windows PowerShell. Se si
    esportano i nomi degli snap-in nella sessione, è possibile utilizzare
    il file di esportazione solo quando gli snap-in sono necessari.

    Per aggiungere il comando Add-PsSnapin al profilo di Windows
    PowerShell, aprire il profilo, incollare o digitare il comando e
    salvare il profilo.
    Per ulteriori informazioni, vedere about_Profiles.

    Per salvare gli snap-in da una sessione nel file della console
    file (.psc1), utilizzare il cmdlet Export-Console. Ad esempio,
    per salvare gli snap-in della configurazione della sessione
    corrente al file NewConsole.psc1 della directory corrente, digitare:

    export-console NewConsole

    Per ulteriori informazioni, vedere Export-Console.

 APERTURA DI WINDOWS POWERSHELL CON UN FILE DELLA CONSOLE Per
    utilizzare un file della console che include lo snap-in, avviare Windows
    PowerShell (Powershell.exe) dal prompt dei comandi in Cmd.exe o in
    un'altra sessione di Windows PowerShell. Utilizzare il parametro
    PsConsoleFile per specificare il file della console che include lo
    snap-in. Ad esempio, il comando seguente avvia Windows PowerShell con
    il file della console NewConsole.psc1:

    powershell.exe -psconsolefile NewConsole.psc1

    A questo punto, i provider e i cmdlet inclusi nello snap-in saranno
    disponibili nella sessione.

 RIMOZIONE DI UNO SNAP-IN
    Per rimuovere uno snap-in di Windows PowerShell dalla sessione
    corrente, utilizzare il cmdlet Remove-PsSnapin. Ad esempio, per
    rimuovere lo snap-in SQL Server dalla sessione corrente, digitare:

    remove-pssnapin sql

    Questo cmdlet rimuove lo snap-in dalla sessione. Lo snap-in verrà
    caricato comunque, ma i provider e i cmdlet supportati non saranno più
    disponibili.

VEDERE ANCHE
    Add-PsSnapin
    Get-PsSnapin
    Remove-PsSnapin
    Export-Console
    Get-Command
    about_Profiles


about_Quoting_Rules

ARGOMENTO
    about_Quoting_Rules

DESCRIZIONE BREVE
    Descrive le regole per l'utilizzo delle virgolette singole e
    doppie in Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    Le virgolette sono utilizzate per specificare una stringa
    letterale. Una stringa può essere racchiusa tra virgolette
    singole (') o doppie (").

    Le virgolette sono utilizzate anche per creare una stringa here.
    Una stringa here è una stringa racchiuse tra virgolette singole o
    doppie in cui le virgolette sono interpretate letteralmente. Una
    stringa here si può estendere su più righe. Tutte le righe di una
    stringa here vengono interpretate come stringhe, anche se non
    sono racchiuse tra virgolette.

    Nei comandi ai computer remoti, le virgolette definiscono le
    parti del comando che vengono eseguite nel computer remoto. In
    una sessione remota, le virgolette determinano anche se le
    variabili in un comando sono interpretate prima nel computer
    locale o nel computer remoto.

 Stringhe racchiuse tra virgolette semplici e doppie

      Se si racchiude una stringa tra virgolette doppie, i nomi di
      variabile preceduti dal simbolo del dollaro ($) vengono
      sostituiti con il valore della variabile prima che la stringa
      venga passata al comando per essere elaborata.

      Ad esempio:

          $i = 5
          "Il valore di $i è $i."

      L'output di questo comando è il seguente:

          Il valore di 5 è 5

      Inoltre, in una stringa racchiusa tra virgolette doppie,
      vengono valutate le espressioni e il risultato viene inserito
      nella stringa. Ad esempio:

      "Il valore di $(2+3) è 5."

      L'output di questo comando è il seguente:

      Il valore di 5 è 5

      Se si racchiude una stringa tra virgolette semplici, la stringa
      viene passata al comando esattamente come la si digita. Non
      viene eseguita alcuna sostituzione. Ad esempio:

          $i = 5
          'Il valore di $i è $i.'

      L'output di questo comando è il seguente:

          Il valore di $i è $i.

      Analogamente, le espressioni in stringhe racchiuse tra
      virgolette singole non sono valutate. Vengono interpretati come
      valori letterali. Ad esempio:

      'Il valore di $(2+3) è 5.'

      L'output di questo comando è il seguente:

      Il valore di $(2+3) è 5.

      Per impedire la sostituzione di un valore di variabile in una
      stringa racchiusa tra virgolette doppie, utilizzare il
      carattere di apice inverso (`)(ASCII 96) che rappresenta il
      carattere di escape di Windows PowerShell.

      Nell'esempio seguente, il carattere di apice inverso che
      precede la prima variabile $i impedisce che il nome della
      variabile venga sostituito con il suo valore in Windows
      PowerShell. Ad esempio:

          $i = 5
          "Il valore di `$i è $i."

      L'output di questo comando è il seguente:

          Il valore di $i è 5.

      Per fare sì che le virgolette doppie vengano visualizzate in
      una stringa, racchiudere l'intera stringa tra virgolette
      semplici. Ad esempio:

          'Dice il detto: "Vivi e lascia vivere".'

      L'output di questo comando è il seguente:

          Dice il detto: "Vivi e lascia vivere".

      È anche possibile includere una stringa racchiusa tra
      virgolette singole in una stringa racchiusa tra virgolette
      doppie. Ad esempio:

          "Dice il detto: 'Vivi e lascia vivere'."

      L'output di questo comando è il seguente:

          Dice il detto: 'Vivi e lascia vivere'.

      In alternativa, raddoppiare le virgolette attorno a una frase
      racchiusa tra virgolette doppie. Ad esempio:

          "Dice il detto: ""Vivi e lascia vivere""."

      L'output di questo comando è il seguente:

          Dice il detto: "Vivi e lascia vivere".

      Per includere una virgoletta singola in una stringa racchiusa
      tra virgolette singole, utilizzare una seconda virgoletta
      singola consecutiva. Ad esempio:

          'l''esempio'

      L'output di questo comando è il seguente:

          l'esempio

      Per forzare Windows PowerShell a interpretare letteralmente una
      virgoletta doppia, utilizzare un carattere di apice inverso. In
      questo modo si impedisce a Windows PowerShell di interpretare
      le virgolette come un delimitatore di stringa. Ad esempio:

          "Utilizzare le virgolette (`") per iniziare una stringa."

      Poiché il contenuto delle stringhe racchiuse tra virgolette
      singole è interpretato letteralmente, non è possibile
      utilizzare il carattere di apice inverso per forzare
      l'interpretazione di un carattere letterale in una stringa
      racchiusa tra virgolette singole.

      Ad esempio, il comando seguente genera un errore poiché Windows
      PowerShell non riconosce il carattere di escape. La seconda
      virgoletta viene, viceversa, interpretata come la fine della
      stringa.

      PS C:\> 'Utilizzare una virgoletta (`') per iniziare una stringa.'
          Token ')' imprevisto nell'espressione o nell'istruzione.
          At line:1 char:27
          + 'Utilizzare una virgoletta (`') <<<< per iniziare una
          stringa.'

 Stringhe here racchiuse tra virgolette semplici e doppie

      Le regole di uso delle virgolette per le stringe here sono
      leggermente diverse.

      Una stringa here è una stringa racchiuse tra virgolette singole
      o doppie in cui le virgolette sono interpretate letteralmente.
      Una stringa here si può estendere su più righe. Tutte le righe
      di una stringa here vengono interpretate come stringhe, anche
      se non sono racchiuse tra virgolette.

      Come nelle stringhe normali, le variabili sono sostituite dal
      loro valore nelle stringhe here racchiuse tra virgolette
      doppie. Nelle stringhe here racchiuse tra virgolette singole,
      le variabili non sono sostituite dal loro valore.

      È possibile utilizzare stringhe here per qualsiasi testo, ma sono
      particolarmente utili per i tipi di testo seguenti:

          - testo che contiene virgolette letterali;
          - più righe di testo, ad esempio il testo in un documento HTML o XML;
          - il testo della Guida per uno script o funzione.

      Una stringa here può presentare qualsiasi dei formati seguenti,
      dove <Invio> rappresenta il carattere nascosto di avanzamento
      di riga o di nuova riga che viene aggiunto quando si preme il
      tasto INVIO.

      Formato 1:

      @"<Invio>
          <string> [string] ...<Invio>
          "@

      Formato 2:

      @'<Invio>
          <string> [string] ...<Invio>
          '@

      In entrambi i formati, la virgoletta di chiusura deve essere il
      primo carattere nella riga.

      Una stringa here contiene tutto il testo tra i due caratteri
      nascosti.
      Nella stringa here, tutte le virgolette sono interpretate
      letteralmente.
      Ad esempio:

      @"
      Per accedere alla Guida, digitare "get-help"
      "@

      L'output di questo comando è il seguente:

      Per accedere alla Guida, digitare "get-help"

      L'utilizzo di una stringa here può semplificare l'utilizzo di
      una stringa in un comando. Ad esempio:

      @"
          Utilizzare una virgoletta (') per iniziare una stringa.
          "@

      L'output di questo comando è il seguente:

          Utilizzare una virgoletta (') per iniziare una stringa.

      Nelle stringhe here racchiuse tra virgolette singole, le
      variabili sono interpretate letteralmente e vengono riprodotte
      esattamente. Ad esempio:

          @'
      La variabile $profile contiene il percorso
          del profilo di Windows PowerShell.
          '@

      L'output di questo comando è il seguente:

      La variabile $profile contiene il percorso
          del profilo di Windows PowerShell.

      Nelle stringhe here racchiuse tra virgolette doppie, le
      variabili sono sostituite dai loro valori. Ad esempio:

      @"
          Anche se non è stato creato un profilo, il percorso del
          file di profilo è:
          $profile.
          "@

      L'output di questo comando è il seguente:

      Anche se non è stato creato un profilo
      il percorso del file di profilo è:
      C:\Users\User01\Documenti\WindowsPowerShell\Microsoft.PowerShell_profile.ps1.

      Le stringhe here sono utilizzate in genere per assegnare più
      righe a una variabile. Ad esempio, la stringa here seguente
      assegna una pagina di XML alla variabile $page.

        $page = [XML] @"
        <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10"
        xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10"
        xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
         <command:details>
                <command:name>
                       Format-Table
            </command:name>
            <maml:description>
            <maml:para>Formats the output as a table.</maml:para>
            </maml:description>
            <command:verb>format</command:verb>
            <command:noun>table</command:noun>
            <dev:version></dev:version>
         </command:details>
        ...
        </command:command>
        "@

      Le stringhe here rappresentano inoltre un formato pratico per
      l'input nel cmdlet ConvertFrom-StringData che converte le
      stringhe here in tabelle hash. Per ulteriori informazioni,
      vedere ConvertFrom-StringData.

VEDERE ANCHE
    about_Escape_Characters
    ConvertFrom-StringData


about_Redirection

ARGOMENTO
    about_Redirection

DESCRIZIONE BREVE
    Descrive come reindirizzare l'output da Windows PowerShell a file
    di testo.

DESCRIZIONE DETTAGLIATA
    In Windows PowerShell l'output dei comandi viene inviato per
    impostazione predefinita alla console di Windows PowerShell.
    Tuttavia, è possibile indirizzare l'output a un file di testo e
    reindirizzare l'output degli errori ai flussi di output normali.

    Per reindirizzare l'output sono disponibili i metodi seguenti:

        - Utilizzare il cmdlet Out-File che invia l'output dei
          comandi a un file di testo. In genere, si utilizza il
          cmdlet Out-File quando è necessario utilizzarne i
          parametri, quali Encoding, Force, Width o NoClobber.

        - Utilizzare il cmdlet Tee-Object che invia l'output dei
          comandi a un file di testo e quindi lo invia alla pipeline.

        - Utilizzare gli operatori di reindirizzamento di Windows
          PowerShell.

      Gli operatori di reindirizzamento di Windows PowerShell sono i
      seguenti.

      Operatore  Descrizione                Esempio
      --------   ----------------------     ------------------------------
      >          Invia l'output al file     get-process > process.txt
                 specificato.

      >>         Aggiunge l'output al       dir *.ps1 >>  scripts.txt
                 contenuto del file
                 specificato.

      2>        Invia gli errori al file    get-process none 2> errors.txt
                specificato.

      2>>       Aggiunge gli errori al      get-process none 2>> save-errors.txt
                contenuto del file
                specificato.

      2>&1      Invia gli errori al         get-process none, powershell 2>&1
                flusso di output delle
                operazioni eseguite.

    La sintassi degli operatori di reindirizzamento è la seguente:

       <input> <operatore> [<percorso>\]<file>

    Se il file specificato è già esistente, gli operatori di
    reindirizzamento che non aggiungono dati (> e 2>) sovrascrivono
    il contenuto corrente del file senza avviso. Tuttavia, se il file
    è di sola lettura, nascosto o di sistema, il reindirizzamento ha esito
    negativo. Gli operatori di reindirizzamento che aggiungono dati (>> e
    2>>) non scrivono in un file di sola lettura, ma aggiungono contenuto
    a un file di sistema o nascosto.

    Per forzare il reindirizzamento del contenuto a un di file sola
    lettura, nascosto o di sistema, utilizzare il cmdlet Out-File con il
    parametro Force. Quando si scrive nei file, gli operatori di
    reindirizzamento utilizzano la codifica Unicode. Se il file presenta
    una codifica diversa, l'output potrebbe non venire formattato
    correttamente. Per reindirizzare il contenuto a file non Unicode,
    utilizzare il cmdlet Out-File con il parametro Encoding.

VEDERE ANCHE
    Out-File
    Tee-Object
    about_Operators
    about_Command_Syntax
    about_Path_Syntax


about_Ref

ARGOMENTO
    about_Ref

DESCRIZIONE BREVE
    Descrive come creare e utilizzare un tipo variabile di riferimento.

DESCRIZIONE DETTAGLIATA
    È possibile utilizzare il tipo variabile di riferimento per
    consentire a un metodo la modifica del valore di una variabile
    che gli è stata passata.

    Quando il tipo [ref] viene associato a un oggetto, restituisce un
    riferimento a tale oggetto. Se il riferimento viene utilizzato con un
    metodo, questo può fare riferimento a un oggetto che gli è stato
    passato. Se l'oggetto viene modificato all'interno del metodo,
    la modifica appare come una modifica del valore della variabile
    quando il controllo viene restituito al metodo chiamante.

    Per utilizzare il riferimento, è necessario che il parametro sia una
    variabile di riferimento. In caso contrario, verrà generata un'eccezione
    InvalidArgument.

    I parametri utilizzati nelle chiamate di metodi devono
    corrispondere al tipo richiesto dai metodi.

    Esempi:

        PS> function swap([ref]$a,[ref]$b)
        >> {
        >>   $a.value,$b.value = $b.value,$a.value
        >> }

        PS> $a = 1
        PS> $b = 10
        PS> $a,$b
        1
        10
        PS> swap ([ref]$a) ([ref]$b)
        PS> $a,$b
        10
        1

        PS C:\ps-test> function double
        >> {
        >>   param ([ref]$x) $x.value = $x.value * 2
        >> }

        PS C:> $number = 8
        PS C:> $number
        8
        PS C> double ([ref]$number)
        PS C> $number
        16

        The variable must be a reference variable.

        PS C:\ps-test> double $number
        double : Reference type is expected in argument.
        At line:1 char:7
        + double <<<< $number

VEDERE ANCHE
    about_Variables
    about_Environment_Variables
    about_Functions
    about_Script_Blocks


about_Regular_Expressions

ARGOMENTO
    about_Regular_Expressions

DESCRIZIONE BREVE
    Descrive le espressioni regolari in Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    Windows PowerShell supporta i caratteri per espressioni regolari
    seguenti.

        Formato       Logica                            Esempio
        --------      -------------------------------   -----------------------
        valore        Individua i caratteri esatti      "zoo" -match "oo"
                      in qualsiasi punto del valore
                      originale.

        .             Individua qualsiasi singolo       "copia" -match  "c...a"
                      carattere,

        [valore]      Individua almeno uno dei          "biga" -match "b[iou]ga"
                      caratteri fra parentesi.

        [intervallo]  Individua almeno uno dei          "banda" -match "b[a-e]nda"
                      caratteri inclusi nell'intervallo.
                      L'utilizzo del trattino (-)
                      consente di specificare caratteri
                      adiacenti.

        [^]           Individua qualsiasi carattere     "banda" -match "b[^ert]nda"
                      tranne quelli tra parentesi.

        ^             Individua i caratteri iniziali.   "zoo" -match "^zo"

        $             Individua i caratteri finali.     "zoo" -match "oo$"

        *             Individua qualsiasi istanza del   "viaggio" -match "g*"
                      carattere che precede.

        ?             Individua un'istanza del          "viaggio" -match "g?"
                      carattere che precede.

        \             Individua il carattere che segue  "Prova$" -match "Prova\$"
                      un carattere di escape.

    Windows PowerShell supporta le classi di caratteri disponibili nelle
    espressioni regolari Microsoft .NET Framework.

        Formato  Logica                           Esempio
        -------- -------------------------------  -----------------------
        \p{nome} Individua qualsiasi carattere    "abcd defg" -match "\p{Ll}+"
                 nella classe di caratteri
                 specificata da {nome}. I nomi
                 supportati sono gruppi Unicode
                 e intervalli di blocchi quali
                 Ll, Nd, Z, IsGreek e
                 IsBoxDrawing.

        \P{nome} Individua il testo non incluso   1234 -match "\P{Ll}+"
                 nei gruppi e negli intervalli di
                 blocchi specificati in {nome}.

        \w       Individua qualsiasi carattere    "abcd defg" -match "\w+"
                 che sia una lettera Equivale     (individua abcd)
                 alle categorie di caratteri
                 Unicode [\p{Ll}\p{Lu}\p{Lt}
                 \p{Lo}\p{Nd}\p{Pc}]. Se con
                 l'opzione ECMAScript è
                 specificato il comportamento
                 ECMAScript-compliant, \w
                 equivale a [a-zA-Z_0-9].

        \W       Individua qualsiasi carattere    "abcd defg" -match "\W+"
                 che non sia una lettera          (individua lo spazio)
                 Equivale alle categorie di
                 caratteri Unicode [^\p{Ll}
                 \p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}].

        \s       Individua qualsiasi carattere    "abcd defg" -match "\s+"
                 di spazio.  Equivale alle
                 categorie di caratteri Unicode
                 [\f\n\r\t\v\x85\p{Z}].

        \S       Individua qualsiasi carattere
                 non di spazio. Equivale alle
                 categorie di caratteri
                 Unicode [^\f\n\r\t\v\x85\p{Z}].  "abcd defg" -match "\S+"

        \d       Individua qualsiasi cifra        12345 -match "\d+"
                 decimale. Equivale a \p{Nd} per
                 Unicode e a [0-9] per il
                 funzionamento non Unicode.

        \D       Individua qualsiasi carattere    "abcd" -match "\D+"
                 che non sia una cifra. Equivale
                 a \p{Nd} per Unicode e a [^0-9]
                 per il funzionamento non Unicode.

    Windows PowerShell supporta i quantificatori disponibili nelle
    espressioni regolari .NET Framework. Gli elementi seguenti sono alcuni
    esempi di quantificatori.

        Formato   Logica                          Esempio
        -------- -------------------------------  -----------------------
        *        Specifica zero o più             "abc" -match "\w*"
                 corrispondenze, ad
                 esempio \w* o (abc)*.
                 Equivale a {0,}.

        +        Individua istanze ripetute       "xyxyxy" -match "xy+"
                 dei caratteri che precedono.

        ?        Specifica zero o una             "abc" -match "\w?"
                 corrispondenza, ad esempio
                 \w? o (abc)?. Equivale a {0,1}.

        {n}      Specifica esattamente n          "abc" -match "\w{2}"
                 corrispondenze, ad esempio
                 (pizza){2}.

        {n,}     Specifica almeno n               "abc" -match "\w{2,}"
                 corrispondenze, ad esempio
                 (abc){2,}.

        {n,m}    Specifica almeno n e non         "abc" -match "\w{2,3}"
                 meno di n corrispondenze.

    Tutti i confronti mostrati nella tabella precedente restituiscono
    il valore true.

    Si noti che il carattere di escape per le espressioni regolari,
    ossia la barra rovesciata (\), è diverso da quello utilizzato in
    Windows PowerShell. Il carattere di escape di Windows PowerShell
    è l'apice inverso (`) (ASCII 96).

    Per ulteriori informazioni, vedere l'argomento relativo agli
    elementi del linguaggio delle espressioni regolari in MSDN Library
    all'indirizzo http://go.microsoft.com/fwlink/?LinkId=133231 (le
    informazioni potrebbero essere in lingua inglese).

VEDERE ANCHE
    about_Comparison_Operators
    about_Operators


about_Remote

ARGOMENTO
    about_Remote

DESCRIZIONE BREVE
    Descrive come eseguire comandi remoti in Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    È possibile eseguire comandi remoti su un solo computer o su più
    computer tramite una connessione temporanea o permanente. È
    possibile avviare una sessione interattiva con un unico computer
    remoto.

    In questo argomento vengono forniti una serie di esempi che
    illustrano come eseguire diversi tipi di comando remoto. Dopo
    avere provato questi comandi di base, leggere gli argomenti della
    Guida che descrivono ogni cmdlet utilizzato in questi comandi. In tali
    argomenti vengono forniti dettagli e viene illustrato come è
    possibile modificare i comandi per soddisfare le necessità.

    Nota: per utilizzare Windows PowerShell in modalità remota, è
          necessario configurare i computer locale e remoto per la
          comunicazione remota. Per ulteriori informazioni, vedere
          about_Remote_Requirements.

 MODALITÀ DI AVVIO DI UNA SESSIONE INTERATTIVA (ENTER-PSSESSION)

     Il modo più semplice per eseguire comandi remoti consiste
     nell'avviare una sessione interattiva con un computer remoto.

     Quando la sessione viene avviata, i comandi che si digitano
     vengono eseguiti sul computer remoto, come se fossero stati digitati
     direttamente sul computer remoto. È possibile connettersi a un solo
     computer in ogni sessione interattiva.

     Per avviare a una sessione interattiva, utilizzare il cmdlet
     Enter-PSSession. Il comando seguente avvia una sessione
     interattiva con il computer Server01:

    enter-pssession server01

     Il prompt dei comandi viene modificato per indicare la connessione al
     computer Server01.

    Server01\PS>

     A questo punto è possibile digitare i comandi sul computer Server01.

     Per terminare la sessione interattiva, digitare:

    exit-pssession

     Per ulteriori informazioni, vedere Enter-PSSession.

 MODALITÀ DI UTILIZZO DI CMDLET CHE DISPONGONO DI UN PARAMETRO
 COMPUTERNAME PER OTTENERE I DATI REMOTI

    Diversi cmdlet dispongono di un parametro ComputerName che consente di
    ottenere oggetti dai computer remoti.

    Poiché questi cmdlet non utilizzano la comunicazione remota di Windows
    PowerShell da comunicare, è possibile utilizzare il parametro
    ComputerName di questi cmdlet in qualsiasi computer che esegue
    Windows PowerShell. Non è necessario che i computer siano configurati
    per la comunicazione remota di Windows PowerShell né che soddisfino i
    requisiti di sistema per la comunicazione remota.

    I cmdlet seguenti dispongono di un parametro ComputerName:

        Clear-EventLog  Limit-EventLog
        Get-Counter       New-EventLog
        Get-EventLog   Remove-EventLog
        Get-HotFix        Restart-Computer
        Get-Process       Show-EventLog
        Get-Service       Show-Service
        Get-WinEvent   Stop-Computer
        Get-WmiObject   Write-EventLog

    Il comando seguente, ad esempio, ottiene i servizi del computer remoto
    Server01:

    get-service -computername server01

    In genere, i cmdlet che supportano la comunicazione remota senza
    necessità di eseguire operazioni di configurazione particolari dispongono
    di un parametro ComputerName e non di un parametro Session.
    Per trovare questi cmdlet nella sessione, digitare:

    get-command | where { $_.parameters.keys -contains "ComputerName" -and $_.parameters.keys -notcontains "Session"}

 MODALITÀ DI ESECUZIONE DI UN COMANDO REMOTO

    Per eseguire altri comandi in computer remoti, utilizzare il
    cmdlet Invoke-Command.

    Per eseguire un solo comando o pochi comandi non correlati,
    utilizzare il parametro ComputerName di Invoke-Command per
    specificare i computer remoti. Utilizzare il parametro ScriptBlock per
    specificare il comando.

    Il comando seguente, ad esempio, esegue un comando Get-Culture
    nel computer Server01.

    invoke-command -computername Server01 -scriptblock {get-culture}

    Il parametro ComputerName è progettato per situazioni in cui si
    esegue un solo comando o molti comandi non correlati in uno o in molti
    computer. Per stabilire una connessione permanete a un computer remoto,
    utilizzare il parametro Session.

 MODALITÀ DI CREAZIONE DI UNA CONNESSIONE PERMANENTE (PSSESSION)

    Quando si utilizza il parametro ComputerName del cmdlet
    Invoke-Command, Windows PowerShell stabilisce una connessione
    solo per il comando. Quindi, chiude la connessione quando il comando è
    completo. Qualsiasi variabile o funzione definita nel comando viene persa.

    Per creare una connessione permanente a un computer remoto,
    utilizzare il cmdlet New-PSSession. Il comando seguente, ad
    esempio, crea sessioni PSSession nei computer Server01 e
    Server02, quindi salva le sessioni PSSession nella variabile $s.

    $s = new-pssession -computername Server01, Server02

 MODALITÀ DI ESECUZIONE DI COMANDI IN UNA SESSIONE PSSESSION

    Con una sessione PSSession, è possibile eseguire una serie di
    comandi remoti che condividono dati, funzioni, alias e valori
    delle variabili. Per eseguire comandi in una sessione PSSession,
    utilizzare il parametro Session del cmdlet Invoke-Command.

    Il comando seguente, ad esempio, utilizza il cmdlet Invoke-Command per
    eseguire un comando Get-Process nelle sessioni PSSession nei computer
    Server01 e Server02. Il comando salva i processi in una variabile $p
    in ogni sessione PSSession.

        invoke-command -session $s -scriptblock {$p = get-process}

    Poiché la sessione PSSession utilizza una connessione permanente,
    è possibile eseguire un altro comando nella stessa sessione
    PSSession che utilizza la variabile $p.
    Il comando seguente conteggia il numero di processi salvati in $p.

        invoke-command -session $s -scriptblock {$p.count}

 MODALITÀ DI ESECUZIONE DI UN COMANDO REMOTO IN PIÙ COMPUTER

    Per eseguire un comando remoto in più computer, digitare tutti i
    nomi dei computer nel valore del parametro ComputerName di
    Invoke-Command. Separare i nomi con virgole.

    Il comando seguente, ad esempio, esegue un comando Get-Culture in
    tre computer:

    invoke-command -computername S1, S2, S3 -scriptblock {get-culture}

    È anche possibile eseguire un comando in più sessioni PSSession.
    I comandi seguenti creano sessioni PSSession nei computer
    Server01, Server02 e Server03 e il comando Get-Culture in ognuna delle
    sessioni PSSession.

        $s = new-pssession -computername S1, S2, S3 invoke-command
        -session $s -scriptblock {get-culture}

    Per includere l'elenco di computer del computer locale, digitare
    il nome del computer locale, digitare un punto (.) o digitare
    "localhost".

    invoke-command -computername S1, S2, S3, localhost -scriptblock
    {get-culture}

 MODALITÀ DI ESECUZIONE DI UNO SCRIPT NEI COMPUTER REMOTI

    Per eseguire uno script locale nei computer remoti, utilizzare il
    parametro FilePath di Invoke-Command.

    Il comando seguente, ad esempio, eseguire lo script Sample.ps1
    nei computer S1 ed S2:

        invoke-command -computername S1, S2 -filepath C:\Test\Sample.ps1

    I risultati dello script vengono restituiti al computer locale. Non è
    necessario copiare alcun file.

 MODALITÀ DI ARRESTO DI UN COMANDO REMOTO

   Per interrompere un comando, premere CTRL+C. La richiesta di
   interruzione viene passata al computer remoto, dove viene
   terminato il comando remoto.

PER ULTERIORI INFORMAZIONI

    -- Per informazioni sui requisiti di sistema per la comunicazione
       remota, vedere about_Remote_Requirements.

    -- Per informazioni sulla formattazione dell'output remoto, vedere
       about_Remote_Output.

    -- Per informazioni sul funzionamento della comunicazione remota,
       su come gestire i dati remoti, su configurazioni speciali, su
       problemi di protezione e su altre domande frequenti, vedere
       about_Remote_FAQ.

    -- Per informazioni sulla risoluzione dei problemi di
       comunicazione remota, vedere about_Remote_Troubleshooting.

    -- Per informazioni su sessioni PSSession e connessioni
       permanenti, vedere about_PSSessions.

    -- Per informazioni sui processi in background di Windows
       PowerShell, vedere about_Jobs.

PAROLE CHIAVE
    about_Remoting

VEDERE ANCHE
    about_PSSessions
    about_Remote_Requirements
    about_Remote_FAQ
    about_Remote_TroubleShooting
    Enter-PSSession
    Invoke-Command
    New-PSSession


about_Remote_FAQ

ARGOMENTO
    about_Remote_FAQ

DESCRIZIONE BREVE
    Contiene domande e risposte relative all'esecuzione di comandi
    remoti in Windows PowerShell.

DESCRIZIONE DETTAGLIATA
   Quando si opera in modalità remota, i comandi vengono digitati in
   Windows PowerShell in un computer (noto come computer locale), ma
   vengono eseguiti in un altro computer (noto come computer remoto).
   L'utilizzo della modalità remota deve avvicinarsi il più possibile
   all'utilizzo diretto del computer remoto.

    Nota: per utilizzare Windows PowerShell in modalità remota, è
          necessario configurare il computer remoto per la comunicazione
          remota. Per ulteriori informazioni, vedere about_Remote_Requirements.

 È NECESSARIO CHE IN ENTRAMBI I COMPUTER SIA INSTALLATO WINDOWS
 POWERSHELL?

   Sì. Per utilizzare la modalità remota, è necessario che il
   computer locale e quello remoto dispongano di Windows PowerShell,
   Microsoft .NET Framework 2.0 e il protocollo WS-Management. I file
   e le altre risorse necessarie per eseguire un determinato comando
   devono trovarsi nel computer remoto.

   È necessario disporre di autorizzazioni per connettersi al
   computer remoto, per eseguire Windows PowerShell e per accedere
   agli archivi dati (ad esempio file e cartelle) e al Registro di
   sistema nel computer remoto.

   Per ulteriori informazioni, vedere about_Remote_Requirements.

 COME FUNZIONA LA COMUNICAZIONE REMOTA?

   Quando si invia un comando remoto, il comando viene trasmesso
   attraverso la rete al motore di Windows PowerShell nel computer
   remoto ed eseguito nel client di Windows PowerShell nel computer
   remoto. I risultati del comando vengono restituiti al computer
   locale e visualizzati nella sessione di Windows PowerShell nel
   computer locale.

   Per trasmettere i comandi e ricevere l'output, in Windows
   PowerShell viene utilizzato il protocollo WS-Management. Per
   informazioni su tale protocollo, vedere la sezione relativa al
   protocollo WS-Management in MSDN Library (Microsoft Developer
   Network) all'indirizzo http://go.microsoft.com/fwlink/?LinkId=14463
   4 (le informazioni potrebbero essere in lingua inglese).

 LA COMUNICAZIONE REMOTA IN WINDOWS POWERSHELL È SICURA?

    Quando si effettua la connessione a un computer remoto, vengono
    utilizzate le credenziali di nome utente e password del computer
    locale o quelle fornite nel comando per l'accesso al computer
    remoto. Le credenziali e il resto della trasmissione sono
    crittografati.

    Per una maggiore protezione, è possibile configurare il computer
    remoto per l'utilizzo di Secure Sockets Layer (SSL) anziché HTTP
    per l'ascolto delle richieste di Gestione remota Windows (WinRM).
    Gli utenti possono quindi utilizzare i parametri UseSSL dei
    cmdlet Invoke-Command, New-PSSession ed Enter-PSSession per
    stabilire una connessione. Con questa opzione viene utilizzato il
    canale HTTPS, più sicuro di HTTP.

 TUTTI I COMANDI REMOTI RICHIEDONO LA COMUNICAZIONE REMOTA DI WINDOWS
 POWERSHELL?

   No. Diversi cmdlet dispongono di un parametro ComputerName che
   consente di ottenere oggetti dal computer remoto.

   Con questi cmdlet non viene utilizzata la comunicazione remota di
   Windows PowerShell. È pertanto possibile utilizzare questi cmdlet
   in qualsiasi computer in cui viene eseguito Windows PowerShell,
   anche se il computer non è configurato per la comunicazione remota
   di Windows PowerShell o non soddisfa i requisiti per tale funzionalità.

   Tra questi cmdlet sono inclusi:

       Get-Process
       Get-Service
       Get-WinEvent
       Get-EventLog
       Get-WmiObject
       Test-Connection

   Per trovare tutti i cmdlet con un parametro ComputerName, digitare:

        get-help * -parameter ComputerName

   Per determinare se il parametro ComputerName di un determinato
   cmdlet richiede la comunicazione remota di Windows PowerShell,
   vedere la descrizione del parametro. Per visualizzare la
   descrizione del parametro, digitare:

    get-help <nome-cmdlet> -parameter ComputerName

   Ad esempio:

        get-help get-process -parameter ComputerName

   Per tutti gli altri comandi, utilizzare il cmdlet Invoke-Command.

 COME SI ESEGUE UN COMANDO IN UN COMPUTER REMOTO?

   Per eseguire un comando in un computer remoto, utilizzare il
   cmdlet Invoke-Command.

   Racchiudere il comando tra parentesi graffe ( {} ) per renderlo un
   blocco di script. Utilizzare il parametro ScriptBlock di
   Invoke-Command per specificare il comando.

   È possibile utilizzare il parametro ComputerName di Invoke-Command
   per specificare un computer remoto. In alternativa, è possibile
   creare una connessione permanente a un computer remoto (sessione)
   e utilizzare quindi il parametro Session di Invoke-Command per
   eseguire il comando nella sessione.

   Ad esempio, con i comandi seguenti viene eseguito un comando
   Get-Process in modalità remota.

      invoke-command -computername Server01, Server02 -scriptblock
      {get-process}

        - OPPURE

      invoke-command -session $s -scriptblock {get-process}

   Per interrompere un comando remoto, digitare CTRL+C. La richiesta
   di interruzione viene passata al computer remoto, dove viene
   terminato il comando remoto.

   Per ulteriori informazioni sui comandi remoti, vedere about_Remote
   e gli argomenti della Guida per i cmdlet che supportano la
   comunicazione remota.

 È POSSIBILE AVVIARE SOLO UNA SESSIONE TELNET IN UN COMPUTER REMOTO?

    È possibile utilizzare il cmdlet Enter-PSSession per avviare una
    sessione interattiva con un computer remoto.

    Al prompt di Windows PowerShell, digitare:

    Enter-PSSession <ComputerName>

    Il prompt dei comandi viene modificato per indicare la
    connessione al computer remoto.

        <ComputerName>\C:>

    A questo punto i comandi digitati vengono eseguiti nel computer
    remoto, come se venissero digitati direttamente nel computer remoto.

    Per terminare la sessione interattiva, digitare:

        Exit-PSSession

    Una sessione interattiva è una sessione permanente che utilizza
    il protocollo WS-Management. Non equivale all'utilizzo di Telnet,
    benché offra un'esperienza analoga.

    Per ulteriori informazioni, vedere Enter-PSSession.

 È POSSIBILE CREARE UNA CONNESSIONE PERMANENTE?

    Sì. È possibile eseguire comandi remoti specificando il nome, il
    nome NetBIOS o l'indirizzo IP del computer remoto. In
    alternativa, è possibile eseguire comandi remoti specificando una
    sessione di Windows PowerShell (PSSession) connessa al computer
    remoto.

    Quando si utilizza il parametro ComputerName di Invoke-Command o
    Enter-PSSession, in Windows PowerShell viene stabilita una
    connessione temporanea. Tale connessione viene utilizzata in
    Windows PowerShell solo per eseguire il comando corrente, quindi
    viene chiusa. Si tratta di un metodo molto efficiente per
    l'esecuzione di un solo comando o di molti comandi non correlati,
    anche su diversi computer remoti.

    Quando si utilizza il cmdlet New-PSSession per creare una
    sessione PSSession, in Windows PowerShell viene stabilita una
    connessione permanente per tale sessione PSSession. È quindi
    possibile eseguire più comandi nella sessione PSSession, inclusi
    comandi che condividono dati.

    In genere, una sessione PSSession viene creata per eseguire una
    serie di comandi correlati che condividono dati. In caso
    contrario, la connessione temporanea creata mediante il parametro
    ComputerName è sufficiente per la maggior parte dei comandi.

    Per ulteriori informazioni sulle sessioni, vedere about_PSSessions.

 È POSSIBILE ESEGUIRE COMANDI IN PIÙ COMPUTER CONTEMPORANEAMENTE?

   Sì. Il parametro ComputerName del cmdlet Invoke-Command accetta
   più nomi di computer e il parametro Session accetta più sessioni
   PSSession.

   Quando si esegue un comando Invoke-Command, in Windows PowerShell
   i comandi vengono eseguiti in tutti i computer specificati o in
   tutte le sessioni PSSession specificate.

   Windows PowerShell è in grado di gestire centinaia di connessioni
   remote simultanee. Tuttavia, il numero di comandi remoti che è
   possibile inviare potrebbe essere limitato dalle risorse del
   computer e dalla relativa capacità di stabilire e gestire più
   connessioni di rete.

   Per ulteriori informazioni, vedere l'esempio nell'argomento della
   Guida relativo a Invoke-Command.

 DOVE SONO I PROFILI?

    I profili di Windows PowerShell non vengono eseguiti
    automaticamente nelle sessioni remote, pertanto i comandi
    aggiunti dal profilo non sono presenti nella sessione. Inoltre,
    la variabile automatica $profile non viene compilata nelle
    sessioni remote.

    Per eseguire un profilo in una sessione, utilizzare il cmdlet
    Invoke-Command.

    Ad esempio, mediante il comando seguente viene eseguito il profilo
    CurrentUserCurrentHost dal computer locale nella sessione in $s.

        invoke-command -session $s -filepath $profile

    Mediante il comando seguente viene eseguito il profilo
    CurrentUserCurrentHost dal computer remoto nella sessione in $s.
    Poiché la variabile $profile non è compilata, il comando utilizza
    il percorso esplicito del profilo.

        invoke-command -session $s {.
        "$home\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}

    Dopo l'esecuzione di questo comando, i comandi aggiunti dal
    profilo alla sessione sono disponibili in $s.

    È inoltre possibile utilizzare uno script di avvio in una
    configurazione di sessione per eseguire un profilo in ogni
    sessione remota che utilizza la configurazione di sessione.

    Per ulteriori informazioni sui profili di Windows PowerShell,
    vedere about_Profiles. Per ulteriori informazioni sulle
    configurazioni di sessione, vedere Register-PSSessionConfiguration.

 COME FUNZIONA LA LIMITAZIONE NEI COMANDI REMOTI?

   Per agevolare la gestione delle risorse nel computer locale,
   Windows PowerShell include una funzionalità di limitazione per
   comando che consente di limitare il numero di connessioni remote
   simultanee stabilite per ogni comando.

   L'impostazione predefinita è di 32 connessioni simultanee, ma è
   possibile utilizzare i parametri ThrottleLimit dei cmdlet per
   impostare un limite personalizzato per determinati comandi.

   Nell'utilizzare la funzionalità di limitazione, è importante
   ricordare che si applica a ciascun comando, non all'intera
   sessione o al computer. Se si eseguono contemporaneamente comandi
   in diverse sessioni o PSSession, il numero di connessioni
   simultanee è la somma delle connessioni simultanee in tutte le
   sessioni.

   Per trovare i cmdlet con un parametro ThrottleLimit, digitare:

    get-help * -parameter ThrottleLimit

 SONO PRESENTI DIFFERENZE SPECIFICHE DEL SISTEMA NELLA COMUNICAZIONE
 REMOTA?

   Quando si eseguono comandi in più computer, considerare le
   differenze tra i computer remoti, ad esempio le differenze
   relative ai sistemi operativi, alla struttura del file system e al
   Registro di sistema.

   Quando si stabilisce la connessione a un computer remoto in cui
   viene eseguito Windows Vista o Windows Server 2003, il percorso di
   avvio predefinito è la home directory dell'utente corrente,
   archiviata nella variabile di ambiente %homepath% ($env:homepath)
   e nella variabile $home di Windows PowerShell. In Windows Vista,
   la home directory è in genere C:\Users\<NomeUtente>. In Windows
   Server 2003, la home directory è in genere C:\Documents and
   Settings\<NomeUtente>.

   Quando si stabilisce la connessione a un computer remoto in cui
   viene eseguito Windows XP, il percorso di avvio predefinito è la
   home directory dell'utente predefinito, archiviata nella variabile
   di ambiente %homepath% ($env:homepath) per l'utente predefinito.
   La home directory è in genere C:\Documents and Settings\Default User.

 L'OUTPUT DEI COMANDI REMOTI È DIVERSO DALL'OUTPUT LOCALE?

   Quando si utilizza Windows PowerShell in locale, vengono inviati e
   ricevuti oggetti .NET Framework "attivi", ovvero oggetti associati
   a programmi o componenti di sistema effettivi. Quando si
   richiamano metodi o si modificano proprietà di oggetti attivi, le
   modifiche influiscono sul programma o sul componente effettivo.
   Inoltre quando le proprietà di un programma o di un componente
   cambiano, vengono modificate anche le proprietà dell'oggetto che
   le rappresenta.

   Tuttavia, poiché non è possibile trasmettere in rete la maggior
   parte degli oggetti attivi, in Windows PowerShell la maggior parte
   degli oggetti inviati nei comandi remoti viene serializzata,
   ovvero ogni oggetto viene convertito in una serie di elementi dati
   XML (Constraint Language in XML [CLiXML]) per la trasmissione.

   Quando in Windows PowerShell viene ricevuto un oggetto
   serializzato, il linguaggio XML viene convertito in un tipo di
   oggetto deserializzato. L'oggetto deserializzato è un record
   accurato delle proprietà del programma o del componente in un
   determinato momento precedente, ma non è più "attivo", ovvero non
   è più associato direttamente al componente. Inoltre i metodi
   vengono rimossi perché non sono più validi.

   In genere, è possibile utilizzare gli oggetti deserializzati
   analogamente agli oggetti attivi, ma è necessario considerarne le
   limitazioni. Inoltre, gli oggetti restituiti dal cmdlet
   Invoke-Command hanno proprietà aggiuntive che consentono di
   determinare l'origine del comando.

   Alcuni tipi di oggetto, ad esempio gli oggetti DirectoryInfo e i
   GUID, vengono convertiti nuovamente in oggetti attivi quando
   vengono ricevuti. Per tali oggetti non è necessaria alcuna
   operazione speciale di gestione o formattazione.

   Per informazioni sull'interpretazione e sula formattazione
   dell'output remoto, vedere about_Remote_Output.

 È POSSIBILE ESEGUIRE PROCESSI IN BACKGROUND IN MODALITÀ REMOTA?

   Sì. Un processo in background di Windows PowerShell è un comando
   di Windows PowerShell eseguito in modo asincrono senza interazioni
   con la sessione. Quando si avvia un processo in background, il
   prompt dei comandi viene immediatamente restituito ed è possibile
   continuare a lavorare nella sessione mentre il processo è in
   esecuzione anche se questa operazione richiede un periodo di tempo
   prolungato.

   È possibile avviare un processo in background anche mentre sono in
   esecuzione altri comandi poiché i processi in background sono
   sempre eseguiti in modo asincrono in una sessione temporanea.

   È possibile eseguire processi in background in un computer locale
   o remoto. Per impostazione predefinita, un processo in background
   viene eseguito nel computer locale. Tuttavia, è possibile
   utilizzare il parametro AsJob del cmdlet Invoke-Command per
   eseguire qualsiasi comando remoto come processo in background.
   È inoltre possibile utilizzare Invoke-Command per eseguire un
   comando Start-Job in modalità remota.

   Per ulteriori informazioni sui processi in background di Windows
   PowerShell,

 È POSSIBILE ESEGUIRE APPLICAZIONI WINDOWS IN UN COMPUTER REMOTO?

    È possibile utilizzare comandi remoti di Windows PowerShell per
    eseguire applicazioni basate su Windows nei computer remoti. Ad
    esempio, è possibile eseguire Shutdown.exe o Ipconfig in un
    computer remoto.

    Tuttavia, non è possibile utilizzare comandi di Windows
    PowerShell per aprire l'interfaccia utente di qualsiasi programma
    in un computer remoto.

    Quando si avvia un'applicazione Windows in un computer remoto, il
    comando non viene completato e il prompt dei comandi di Windows
    PowerShell non viene restituito finché il programma non viene
    terminato o non si preme CTRL+C per interrompere il comando. Ad
    esempio, se si esegue il programma IpConfig in un computer
    remoto, il prompt dei comandi non viene restituito finché
    IpConfig non viene completato.

    Se si utilizzano comandi remoti per avviare un programma con
    interfaccia utente, il processo viene avviato, ma l'interfaccia
    utente non viene visualizzata. Il comando di Windows PowerShell
    non viene completato e il prompt dei comandi non viene restituito
    finché il processo del programma non viene arrestato o non si
    preme CTRL+C per interrompere il comando e arrestare il processo.

    Ad esempio, se si utilizza un comando di Windows PowerShell per
    eseguire Blocco note in un computer remoto, il processo Notepad
    (Blocco note) viene avviato nel computer remoto, ma l'interfaccia
    utente del programma non viene visualizzata. Per interrompere il
    comando e ripristinare il prompt dei comandi, premere CTRL+C.

 È POSSIBILE LIMITARE I COMANDI CHE GLI UTENTI POSSONO ESEGUIRE IN
 MODALITÀ REMOTA IN UN COMPUTER?

    Sì. Per ogni sessione remota è necessario utilizzare una delle
    configurazioni di sessione nel computer remoto. È possibile
    gestire le configurazioni di sessione nel computer e le relative
    autorizzazioni per stabilire quali utenti possono eseguire
    comandi in modalità remota nel computer e quali comandi possono
    essere eseguiti.

    Una configurazione di sessione configura l'ambiente per la sessione.
    È possibile definire la configurazione tramite un assembly che
    implementa una nuova classe di configurazione o tramite uno
    script in esecuzione nella sessione.
    Mediante la configurazione è possibile determinare i comandi
    disponibili nella sessione. La configurazione può inoltre
    includere impostazioni per la protezione del computer, ad esempio
    impostazioni che limitano la quantità di dati che la sessione può
    ricevere in modalità remota in un solo oggetto o comando.
    È inoltre possibile specificare un descrittore di sicurezza che
    determina le autorizzazioni richieste per utilizzare la
    configurazione.

    Il cmdlet Enable-PSRemoting crea una configurazione di sessione
    predefinita nel computer, ovvero Microsoft.PowerShell
    (Microsoft.PowerShell32 in sistemi operativi a 64 bit).
    Enable-PSRemoting imposta il descrittore di sicurezza per la
    configurazione affinché solo ai membri del gruppo Administrators
    del computer sia consentito utilizzarli.

    È possibile utilizzare i cmdlet della configurazione di sessione
    per modificare le configurazioni di sessione predefinite, creare
    nuove configurazioni di sessione e modificare i descrittori di
    sicurezza di tutte le configurazioni di sessione.

    Quando gli utenti utilizzano i cmdlet Invoke-Command,
    New-PSSession o Enter-PSSession, possono utilizzare il parametro
    ConfigurationName per indicare la configurazione di sessione
    utilizzata per la sessione. Possono inoltre modificare la
    configurazione predefinita utilizzata dalle sessioni modificando
    il valore della variabile di preferenza $PSSessionConfigurationNam
    e nella sessione.

    Per ulteriori informazioni sulle configurazioni di sessione,
    vedere le sezioni relative ai cmdlet della configurazione di
    sessione nella Guida. Per trovare i cmdlet della configurazione
    di sessione, digitare:

    get-command *pssessionconfiguration

 CHE COSA SI INTENDE PER CONFIGURAZIONI FAN-IN E FAN-OUT?

   Lo scenario di comunicazione remota tra più computer più comune di
   Windows PowerShell è la configurazione uno-a-molti, in cui da un
   computer locale (computer dell'amministratore) vengono eseguiti
   comandi di Windows PowerShell in più computer remoti. Si tratta
   dello scenario "fan-out".

   Tuttavia, in alcune organizzazioni viene utilizzata la
   configurazione molti-a-uno, in cui molti computer client si
   connettono a un solo computer remoto che esegue Windows
   PowerShell, ad esempio un file server o un chiosco.
   Si tratta della configurazione "fan-in".

   La comunicazione remota di Windows PowerShell supporta le
   configurazioni fan-out e fan-in.

   Per la configurazione fan-out, in Windows PowerShell vengono
   utilizzati il protocollo WS-Management e il servizio Gestione
   remota Windows che supporta l'implementazione Microsoft di
   WS-Management. Quando un computer locale si connette a un computer
   remoto, tramite WS-Management viene stabilita una connessione e
   viene utilizzato un plug-in affinché il processo host
   (Wsmprovhost.exe) di Windows PowerShell venga avviato nel computer
   remoto. L'utente può specificare una porta alternativa, una
   configurazione di sessione alternativa e altre funzionalità per
   personalizzare la connessione remota.

   Per supportare la configurazione fan-in, in Windows PowerShell
   viene utilizzato Internet Information Services (IIS) per ospitare
   WS-Management, per caricare il plug-in di Windows PowerShell e
   avviare Windows PowerShell. Questo scenario non prevede l'avvio di
   ogni sessione di Windows PowerShell in un processo separato, ma
   l'esecuzione di tutte le sessioni di Windows PowerShell nello
   stesso processo host.

   L'hosting IIS e la gestione remota fan-in non sono supportati in
   Windows XP o in Windows Server 2003.

   In una configurazione fan-in, l'utente può specificare un URI di
   connessione e un endpoint HTTP, inclusi trasporto, nome del
   computer, porta e nome dell'applicazione. IIS inoltra tutte le
   richieste con un nome di applicazione specificato alla relativa
   applicazione. L'impostazione predefinita è WS-Management, che può
   ospitare Windows PowerShell.

   È inoltre possibile specificare un meccanismo di autenticazione e
   proibire o consentire il reindirizzamento da endpoint HTTP e HTTPS.

 È POSSIBILE ESEGUIRE UN TEST DELLA COMUNICAZIONE REMOTA IN UN SOLO
 COMPUTER, NON IN UN DOMINIO?

    Sì. La comunicazione remota di Windows PowerShell è disponibile
    anche quando il computer locale non appartiene a un dominio.
    È possibile utilizzare le funzionalità di comunicazione remota per
    connettersi alle sessioni e creare sessioni nello stesso
    computer. Le funzionalità hanno lo stesso comportamento di quando
    si stabilisce la connessione a un computer remoto.

    Per eseguire comandi remoti in un computer in un gruppo di
    lavoro, modificare le seguenti impostazioni di Windows nel computer.

    Attenzione: queste impostazioni vengono applicate a tutti gli
                utenti del sistema e possono rendere il sistema più
                vulnerabile ad attacchi di utenti malintenzionati.
                Prestare attenzione nell'apportare queste modifiche.

    --  Windows XP con SP2:

        Utilizzare Impostazioni protezione locale (Secpol.msc) per
        modificare l'impostazione del criterio "Accesso di rete:
        modello di condivisione e protezione per gli account locali"
        in Impostazioni protezione\Criteri locali\Opzioni di
        protezione su "Classico".

    --  Windows Vista:

        Creare la voce del Registro di sistema seguente, quindi
        impostarne il valore su 1:
        LocalAccountTokenFilterPolicy in
        HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

        È possibile utilizzare il comando di Windows PowerShell
        seguente per aggiungere questa voce:

        new-itemproperty `
        -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System `
        -name LocalAccountTokenFilterPolicy -propertyType DWord -value 1

    --  Windows 2003:

        Non è necessario apportare alcuna modifica perché
        l'impostazione predefinita del criterio "Accesso alla rete:
        modello di condivisione e protezione per gli account locali"
        è "Classico". Verificare l'impostazione nel caso sia stata
        modificata.

 È POSSIBILE ESEGUIRE COMANDI REMOTI IN UN COMPUTER IN UN ALTRO DOMINIO?

    Sì. In genere, i comandi vengono eseguiti senza errori, benché
    possa essere necessario utilizzare il parametro Credential dei
    cmdlet Invoke-Command, New-PSSession o Enter-PSSession per
    fornire le credenziali di un membro del gruppo Administrators nel
    computer remoto. Questa operazione è talvolta necessaria anche
    quando l'utente corrente è membro del gruppo Administrators nel
    computer locale e in quello remoto.

    Se tuttavia il computer remoto non fa parte di un dominio
    considerato attendibile dal computer locale, il computer remoto
    potrebbe non essere in grado di autenticare le credenziali
    dell'utente.

    Per abilitare l'autenticazione, utilizzare il comando seguente
    per aggiungere il computer remoto all'elenco di host attendibili
    per il computer locale in Gestione remota Windows.
    Al prompt di Windows PowerShell digitare il comando.

        set-item WSMan:\localhost\Client\TrustedHosts -value <nome-computer-remoto>

    Ad esempio, per aggiungere il computer Server01 all'elenco di
    host attendibili nel computer locale, digitare il comando
    seguente al prompt di Windows PowerShell:

        set-item WSMan:\localhost\Client\TrustedHosts -value Server01

VEDERE ANCHE
    about_Remote
    about_Profiles
    about_PSSessions
    about_Remote_Jobs
    Invoke-Command
    New-PSSession


about_Remote_Jobs

ARGOMENTO
    about_Remote_Jobs

DESCRIZIONE BREVE
    Descrive come eseguire processi in background nei computer remoti.

DESCRIZIONE DETTAGLIATA
    Un processo in background è un comando che viene eseguito in modo
    asincrono e non interagisce con la sessione corrente. Il prompt
    dei comandi viene visualizzato immediatamente ed è possibile
    continuare a utilizzare la sessione mentre il processo è in
    esecuzione.

    Per impostazione predefinita, i processi in background vengono
    eseguiti nel computer locale. Tuttavia, è possibile utilizzare
    diverse procedure per eseguire processi in background nei
    computer remoti.

    In questo argomento viene illustrato come eseguire un processo in
    background in un computer remoto. Per informazioni sull'esecuzione
    di processi in background in un computer locale, vedere
    about_Jobs. Per ulteriori informazioni sui processi in
    background, vedere about_Job_Details.

 PROCESSI IN BACKGROUND REMOTI

    È possibile eseguire processi in background nei computer remoti
    tramite tre metodi diversi.

    -- Avviare una sessione interattiva con un computer remoto e
       avviare un processo nella sessione interattiva. Le procedure
       sono analoghe all'esecuzione di un processo locale, sebbene
       tutte le azioni vengano eseguite nel computer remoto.

    -- Eseguire un processo in background in un computer remoto che
       restituisce i propri risultati al computer locale. Utilizzare
       questo metodo quando si desidera raccogliere i risultati dei
       processi in background e gestirli in una posizione centrale
       nel computer locale.

    -- Eseguire un processo in background in un computer remoto che
       mantiene i propri risultati nel computer remoto. Utilizzare
       questo metodo quando i dati del processo sono gestiti in modo
       più sicuro nel computer da cui provengono.

 AVVIARE UN PROCESSO IN BACKGROUND IN UNA SESSIONE INTERATTIVA

    È possibile avviare una sessione interattiva con un computer
    remoto e quindi avviare un processo in background durante la
    sessione interattiva. Per ulteriori informazioni sulle sessioni
    interattive, vedere about_Remote e Enter-PSSession.

    La procedura di avvio di un processo in background in una
    sessione interattiva è pressoché identica alla procedura di avvio
    di un processo in background nel computer locale. Tuttavia, tutte
    le operazioni vengono eseguite nel computer remoto, anziché nel
    computer locale.

    PASSAGGIO 1: ENTER-PSSESSION

    Utilizzare il cmdlet Enter-PSSession per avviare una sessione
    interattiva con un computer remoto. È possibile utilizzare il
    parametro ComputerName di Enter-PSSession per stabilire una
    connessione temporanea per la sessione interattiva. In
    alternativa, è possibile utilizzare il parametro Session per
    eseguire la sessione interattiva nella sessione Windows
    PowerShell (PSSession).

    Il comando seguente avvia una sessione interattiva nel computer
    Server01.

        C:\PS> Enter-PSSession -computername Server01

    Il prompt dei comandi viene modificato per indicare la
    connessione al computer Server01.

        Server01\C:>

    PASSAGGIO 2: START-JOB

    Per avviare un processo in background nella sessione, utilizzare
    il cmdlet Start-Job.

    Il comando seguente esegue un processo in background che ottiene
    gli eventi del registro eventi di Windows PowerShell del computer
    Server01. Il cmdlet Start-Job restituisce un oggetto che
    rappresenta il processo.

    Questo comando salva l'oggetto processo nella variabile $job.

        Server01\C:> $job = start-job -scriptblock {get-eventlog "Windows PowerShell"}

    Mentre il processo è in esecuzione, è possibile utilizzare la
    sessione interattiva per eseguire gli altri comandi, includendo
    gli altri processi in background. Tuttavia, è necessario tenere
    la sessione interattiva aperta finché non viene completato il
    processo. Se si termina la sessione, il processo viene interrotto
    e i risultati vengono persi.

    PASSAGGIO 3: GET-JOB

    Per sapere se il processo è completo, visualizzare il valore
    della variabile job o utilizzare il cmdlet Get-Job per ottenere
    il processo. Il comando seguente utilizza il cmdlet Get-Job per
    visualizzare il processore.

        Server01\C:> get-job $job

        SessionId  Name  State      HasMoreData  Location   Command
        ---------  ----  -----      -----------  --------   -------
        1          Job1  Complete   True         localhost  get-eventlog "Windows PowerShell"

    L'output di Get-Job mostra che il processo è in esecuzione nel
    computer "localhost" poiché è stato avviato ed è in esecuzione
    nello stesso computer (in questo caso, Server01).

    PASSAGGIO 4: RECEIVE-JOB

    Per ottenere i risultati del processo, utilizzare il cmdlet
    Receive-Job. È possibile visualizzare i risultati nella sessione
    interattiva oppure salvarli in un file nel computer remoto. Il
    comando seguente ottiene i risultati del processo nella variabile
    $job. Il comando utilizza l'operatore di reindirizzamento (>) per
    salvare i risultati del processo nel file PsLog.txt file nel
    computer Server01.

        Server01\C:> receive-job $job > c:\logs\PsLog.txt

    PASSAGGIO 5: EXIT-PSSESSION

    Per terminare la sessione interattiva, utilizzare il cmdlet
    Exit-PSSession. Il prompt dei comandi viene modificato per
    mostrare che si è tornati alla sessione originale nel computer locale.

        Server01\C:> Exit-PSSession
        C:\PS>

    PASSAGGIO 6: INVOKE-COMMAND: GET CONTENT

    Per visualizzare in qualsiasi momento il contenuto del file
    PsLog.txt nel computer Server01, avviare un'altra sessione
    interattiva o eseguire un comando remoto. Questo tipo di comando
    viene eseguito in modo migliore in una sessione PSSession
    (connessione permanente) in caso si desideri utilizzare più
    comandi per analizzare e gestire i dati del file PsLog.txt. Per
    ulteriori informazioni sulle sessioni PSSession, vedere
    about_PSSessions.

    I comandi seguenti utilizzando il cmdlet New-PSSession per creare
    una sessione PSSession connessa al computer Server01 e utilizzano
    il cmdlet Invoke-Command per eseguire un comando Get-Content
    nella sessione PSSession per visualizzare il contenuto del file.

        C:\PS> $s = new-pssession -computername Server01
        C:\PS> invoke-command -session $s -scriptblock {get-content c:\logs\pslog.txt}

 AVVIARE UN PROCESSO REMOTO CHE RESTITUISCE I RISULTATI AL COMPUTER
 LOCALE (ASJOB)

    Per avviare un processo in background in un computer remoto che
    restituisce i risultati del comando al computer locale,
    utilizzare il parametro AsJob di un cmdlet quale il cmdlet
    Invoke-Command.

    Quando si utilizza il parametro AsJob, l'oggetto processo viene
    in realtà creato nel computer locale, anche se il processo viene
    eseguito nel computer remoto. Al completamento del processo, i
    risultati vengono restituiti al computer locale.

    È possibile utilizzare i cmdlet che contengono il nome Job
    (cmdlet Job) per gestire qualsiasi processo creato da qualsiasi
    cmdlet. Molti dei cmdlet che dispongono di parametri AsJob non
    utilizzano la comunicazione remota di Windows PowerShell ed è
    pertanto possibile utilizzarli anche in computer non configurati
    per la comunicazione remota e che non soddisfano i requisiti per
    la comunicazione remota.

    PASSAGGIO 1: INVOKE-COMMAND -ASJOB

    Il comando seguente utilizza il parametro AsJob di Invoke-Command
    per avviare un processo in background nel computer Server01. Il
    processo esegue un comando Get-Eventlog che consente di ottenere
    gli eventi presenti nel registro eventi di sistema. È possibile
    utilizzare il parametro JobName per assegnare un nome
    visualizzato al processo.

       invoke-command -computername Server01 -scriptblock {get-eventlog system} -asjob

    I risultati del comando sono analoghi all'output di esempio seguente.

       SessionId   Name    State      HasMoreData     Location   Command
       ---------   ----    -----      -----------     --------   -------
       1           Job1    Running    True            Server01   get-eventlog system

    Quando viene utilizzato il parametro AsJob, Invoke-Command
    restituisce lo stesso tipo di oggetto processo restituito da
    Start-Job. È possibile salvare l'oggetto processo in una
    variabile oppure utilizzare un comando Get-Job per ottenere il
    processo.

    Notare che il valore della proprietà Location mostra che il
    processo viene eseguito nel computer Server01.

    PASSAGGIO 2: GET-JOB

    Per gestire un processo avviato mediante il parametro AsJob del
    cmdlet Invoke-Command, utilizzare i cmdlet Job. Poiché l'oggetto
    processo che rappresenta il processo remoto si trova nel computer
    locale, non è necessario eseguire comandi remoti per gestire il
    processo.

    Per determinare se il processo è completo, utilizzare un comando
    Get-Job. Il comando seguente ottiene tutti processi avviati nella
    sessione corrente.

        get-job

    Poiché il processo remoto è stato avviato nella sessione
    corrente, lo si ottiene con un comando Get-Job locale. La
    proprietà State dell'oggetto processo mostra che il comando è
    stato completato correttamente.

       SessionId   Name   State      HasMoreData     Location   Command
       ---------   ----   -----      -----------     --------   -------
       1           Job1   Completed  True            Server01   get-eventlog system

    PASSAGGIO 3: RECEIVE-JOB

    Per ottenere i risultati del processo, utilizzare il cmdlet
    Receive-Job. Poiché i risultati del processo sono restituiti
    automaticamente al computer in cui l'oggetto processo risiede, è
    possibile ottenere i risultati con un comando Receive-Job locale.

    Il comando seguente utilizza il cmdlet Receive-Job per ottenere i
    risultati del processo. Utilizza l'ID sessione per identificare
    il processo. Questo comando salva i risultati del processo nella
    variabile $results. È anche possibile reindirizza i risultati in
    un file.

       $results = receive-job -id 1

 AVVIARE UN PROCESSO REMOTO CHE MANTIENE I RISULTATI NEL COMPUTER REMOTO

    Per avviare un processo in background in un computer remoto che
    mantiene i risultati del comando nel computer remoto, utilizzare
    il cmdlet Invoke-Command per eseguire un comando Start-Job in un
    computer remoto. È possibile utilizzare questo metodo per
    eseguire processi in background in più computer.

    Quando si esegue un comando Start-Job in modalità remota,
    l'oggetto processo viene creato nel computer remoto e i risultati
    del processo vengono mantenuti nel computer remoto.
    Dalla prospettiva del processo, tutte le operazioni sono locali.
    Si eseguono comandi in modalità remota esclusivamente per gestire
    un processo locale nel computer remoto.

    PASSAGGIO 1: INVOKE-COMMAND START-JOB

    Utilizzare il cmdlet Invoke-Command per eseguire un comando
    Start-Job in un computer remoto.

    Questo comando richiede una sessione PSSession (connessione
    permanente). Se si utilizza il parametro ComputerName di
    Invoke-Command per stabilire una connessione temporanea, il
    comando Invoke-Command è considerato completo quando viene
    restituito l'oggetto processo. Di conseguenza, la connessione
    temporanea viene chiusa e il processo viene annullato.

    Il comando seguente utilizza il cmdlet New-PSSession per creare
    una sessione PSSession connessa al computer Server01. Il comando
    salva la sessione PSSession nella variabile $s.

        $s = new-pssession -computername Server01

    Il comando successivo utilizza il cmdlet Invoke-Command per
    eseguire un comando Start-Job nella sessione PSSession. Il
    comando Start-Job e il comando Get-Eventlog sono racchiusi tra
    parentesi graffe.

       invoke-command -session $s -scriptblock {start-job -scriptblock {get-eventlog system}}

    I risultati sono analoghi all'output di esempio seguente.

       Id       Name    State      HasMoreData     Location   Command
       --       ----    -----      -----------     --------   -------
       2        Job2    Running    True            Localhost  get-eventlog system

    Quando si esegue un comando Start-Job in modalità remota,
    Invoke-Command restituisce lo stesso tipo di oggetto processo
    restituito da Start-Job. È possibile salvare l'oggetto processo
    in una variabile oppure utilizzare un comando Get-Job per
    ottenere il processo.

    Notare che il valore della proprietà Location mostra che il
    processo è in esecuzione nel computer locale, denominato
    "LocalHost" anche se il processo è in esecuzione sul computer
    Server01. Poiché l'oggetto processo viene creato nel computer
    Server01 e il processo viene eseguito nello stesso computer,
    viene considerato un processo in background locale.

    PASSAGGIO 2: INVOKE-COMMAND GET-JOB

    Per gestire un processo in background remoto, utilizzare i cmdlet
    Job. Poiché l'oggetto processo si trova nel computer remoto, è
    necessario eseguire comandi remoti per ottenere, arrestare,
    attendere o recuperare i risultati del processo.

    Per verificare se il processo è completo, utilizzare un comando
    Invoke-Command per eseguire un comando Get-Job nella sessione
    PSSession connessa al computer Server01.

        invoke-command -session $s -scriptblock {get-job}

    Il comando restituisce un oggetto processo. La proprietà State
    dell'oggetto processo mostra che il comando è stato completato
    correttamente.

       SessionId       Name    State      HasMoreData     Location     Command
       ---------       ----    -----      -----------     --------     -------
       2               Job2    Completed  True            LocalHost    get-eventlog system

    PASSAGGIO 3: INVOKE-COMMAND RECEIVE-JOB

    Per ottenere i risultati del processo, utilizzare il cmdlet
    Invoke-Command per eseguire un comando Receive-Job nella sessione
    PSSession connessa al computer Server01.

    Il comando seguente utilizza il cmdlet Receive-Job per ottenere i
    risultati del processo. Utilizza l'ID sessione per identificare
    il processo. Questo comando salva i risultati del processo nella
    variabile $results. Utilizza il parametro Keep di Receive-Job per
    mantenere nel computer remoto il risultato nella cache del processo.

        $results = invoke-command -session $s -scriptblock {receive-job -sessionid 2 -keep}

    È anche possibile reindirizzare i risultati a un file nel
    computer locale o remoto. Il comando seguente utilizza un operatore di
    reindirizzamento per salvare i risultati in un file nel computer Server01.

        invoke-command -session $s -command {receive-job -sessionid 2 > c:\logs\pslog.txt}

VEDERE ANCHE
    about_Jobs
    about_Job_Details
    about_Remote
    Invoke-Command
    Start-Job
    Get-Job
    Wait-Job
    Stop-Job
    Remove-Job
    New-PSSession
    Enter-PSSession
    Exit-PSSession


about_Remote_Output

ARGOMENTO
    about_Remote_Output

DESCRIZIONE BREVE
    Descrive come interpretare e formattare l'output dei comandi remoti.

DESCRIZIONE DETTAGLIATA
    L'output di un comando eseguito in un computer remoto è simile
    all'output dello stesso comando eseguito in un computer locale,
    ma vi sono alcune differenze significative.

    In questo argomento viene illustrato come interpretare,
    formattare e visualizzare l'output di comandi che eseguiti in
    computer remoti.

 VISUALIZZAZIONE DEL NOME DEL COMPUTER

    Quando si utilizza il cmdlet Invoke-Command per eseguire un
    comando in un computer remoto, il comando restituisce un oggetto
    che include il nome del computer che ha generato i dati. Il nome
    del computer remoto viene archiviato nella proprietà PSComputerName.

    Per molti comandi, viene visualizzato PSComputerName per
    impostazione predefinita. Il comando seguente, ad esempio, esegue
    un comando Get-Culture su due computer remoti, Server01 e
    Server02. L'output riportato di seguito include i nomi dei
    computer remoti in cui il comando è stato eseguito.

        C:\PS> invoke-command -script {get-culture} -comp Server01, Server02

        LCID  Name    DisplayName                PSComputerName
        ----  ----    -----------                --------------
        1033  en-US   English (United States)    Server01
        1033  es-AR   Spanish (Argentina)        Server02

    È possibile utilizzare il parametro HideComputerName di
    Invoke-Command per nascondere la proprietà PSComputerName. Questo
    parametro è progettato per i comandi che raccolgono dati da un
    solo computer remoto.

    Il comando seguente esegue un comando Get-Culture nel computer
    remoto Server01. Utilizza il parametro HideComputerName per
    nascondere la proprietà PSComputerName e le proprietà correlate.

        C:\PS> invoke-command -scr {get-culture} -comp Server01 -HideComputerName

        LCID             Name             DisplayName
        ----             ----             -----------
        1033             en-US            English (United States)

     È anche possibile visualizzare la proprietà PSComputerName, se
     non visualizzata per impostazione predefinita.

     I comandi seguenti, ad esempio, utilizzano il cmdlet
     Format-Table per aggiungere la proprietà PSComputerName
     all'output di un comando Get-Date remoto.

        C:\PS> $dates = invoke-command -script {get-date} -computername Server01, Server02
        C:\PS> $dates | format-table DateTime, PSComputerName -auto

        DateTime                            PSComputerName
        --------                            --------------
        Monday, July 21, 2008 7:16:58 PM    Server01
        Monday, July 21, 2008 7:16:58 PM    Server02

 VISUALIZZAZIONE DELLA PROPRIETÀ MACHINENAME

    Diversi cmdlet, tra cui Get-Process, Get-Service e Get-EventLog,
    dispongono di un parametro ComputerName che ottiene gli oggetti
    in un computer remoto.
    Questi cmdlet non utilizzano la comunicazione remota di Windows
    PowerShell,  ed è pertanto possibile utilizzarli anche in
    computer non configurati per la comunicazione remota in Windows
    PowerShell.

    Gli oggetti restituiti da questi cmdlet archiviano il nome del
    computer remoto nella proprietà MachineName (questi oggetti non
    dispongono di una proprietà PSComputerName).

    Questo comando, ad esempio, ottiene il processo di PowerShell nei
    computer remoti Server01 e Server02. La visualizzazione
    predefinita non include la proprietà MachineName.

        C:\PS> get-process powershell -computername server01, server02

        Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
        -------  ------    -----      ----- -----   ------     -- -----------
            920      38    97524     114504   575     9.66   2648 powershell
            194       6    24256      32384   142            3020 powershell
            352      27    63472      63520   577     3.84   4796 powershell

    È possibile utilizzare il cmdlet Format-Table per visualizzare la
    proprietà MachineName degli oggetti processo.

    Il comando seguente, ad esempio, salva i processi nella variabile
    $p e quindi utilizza un operatore pipeline (|) per inviare i
    processi in $p al comando Format-Table. Il comando utilizza il
    parametro Property di Format-Table per includere la proprietà
    MachineName nella visualizzazione.

        C:\PS> $p = get-process powershell -comp Server01, Server02
        C:\PS> $P | format-table -property ID, ProcessName, MachineName -auto

        Id ProcessName MachineName
        -- ----------- -----------
        2648 powershell Server02
        3020 powershell Server01
        4796 powershell Server02

    Il comando più complesso seguente aggiunge la proprietà
    MachineName alla visualizzazione del processo predefinita.
    Utilizza tabelle hash per specificare le proprietà calcolate.
    Fortunatamente, non è necessario comprenderlo per utilizzarlo.
    Notare che il carattere apice inverso [`] è il carattere di
    continuazione.

        C:\PS> $p = get-process powershell -comp Server01, Server02

        C:\PS> $p | format-table -property Handles, `
                    @{Label="NPM(K)";Expression={[int]($_.NPM/1024)}}, `
                    @{Label="PM(K)";Expression={[int]($_.PM/1024)}}, `
                    @{Label="WS(K)";Expression={[int]($_.WS/1024)}}, `
                    @{Label="VM(M)";Expression={[int]($_.VM/1MB)}}, `
                    @{Label="CPU(s)";Expression={if ($_.CPU -ne $()){ $_.CPU.ToString("N")}}}, `
                    Id, ProcessName, MachineName -auto

        Handles NPM(K) PM(K)  WS(K) VM(M) CPU(s)   Id ProcessName MachineName
        ------- ------ -----  ----- ----- ------   -- ----------- -----------
            920     38 97560 114532   576        2648 powershell  Server02
            192      6 24132  32028   140        3020 powershell  Server01
            438     26 48436  59132   565        4796 powershell  Server02

 OGGETTI DESERIALIZZATI
    Quando si eseguono comandi remoti che generano output, l'output
    del comando viene ritrasmesso attraverso la rete al computer locale.

    Poiché la maggior parte degli oggetti live Microsoft .NET
    Framework attivi (ad esempio gli oggetti restituiti dai cmdlet di
    Windows PowerShell) non possono essere trasmessi tramite la rete,
    gli oggetti attivi sono "serializzati". In altre parole, gli
    oggetti attivi sono convertiti in rappresentazioni XML
    dell'oggetto e delle relative proprietà. Quindi, l'oggetto
    serializzato basato su XML viene trasmesso tramite la rete.

    Nel computer locale, Windows PowerShell riceve l'oggetto
    serializzato basato su XML e lo "deserializza" convertendo
    l'oggetto basato su XML in un oggetto .NET Framework standard.

    Tuttavia, l'oggetto deserializzato non è un oggetto attivo. È uno
    snapshot dell'oggetto al momento in cui viene serializzato e
    include proprietà ma non metodi. È possibile utilizzare e gestire
    questi oggetti in Windows PowerShell, passarli nelle pipeline,
    visualizzare le proprietà selezionate e formattandoli.

    La maggior parte gli oggetti deserializzati sono automaticamente
    formattati per la visualizzazione per voci nei file Types.ps1xml
    o Format.ps1xml. Tuttavia, il computer locale potrebbe non
    disporre di file di formattazione per tutti gli oggetti
    deserializzati generati in un computer remoto. Quando gli oggetti
    non sono formattati, tutte le proprietà di ogni oggetto vengono
    visualizzate nella console in un elenco di flusso.

    Quando gli oggetti non sono formattati automaticamente, è
    possibile utilizzare i cmdlet di formattazione, ad esempio
    Format-Table o Format-List, per formattare e visualizzare le
    proprietà selezionate. In alternativa è possibile utilizzare il
    cmdlet Out-GridView per visualizzare gli oggetti in una tabella.

    Inoltre, se si esegue un comando in un computer remoto che
    utilizza cmdlet non presenti nel computer locale, gli oggetti
    restituiti dal comando potrebbero non essere formattati
    correttamente poiché non si dispone dei file di formattazione per
    tali oggetti nel computer. Per ottenere i dati di formattazione
    da un altro computer, utilizzare i cmdlet Get-FormatData e
    Export-FormatData.

    Alcuni tipi di oggetto, ad esempio gli oggetti DirectoryInfo e i
    GUID, vengono convertiti nuovamente in oggetti attivi quando
    vengono ricevuti. Per tali oggetti non è necessaria alcuna
    operazione speciale di gestione o formattazione.

 ORDINAMENTO DEI RISULTATI
    L'ordine dei nomi dei computer nel parametro ComputerName dei
    cmdlet determina l'ordine nel quale Windows PowerShell si
    connette ai computer remoti. Tuttavia, i risultati vengono
    visualizzati nell'ordine in cui il computer locale li riceve che
    potrebbe essere un ordine diverso.

    Per modificare l'ordine dei risultati, utilizza il cmdlet
    Sort-Object. È possibile effettuare l'ordinamento in base alla
    proprietà PSComputerName o MachineName. È anche possibile
    effettuare l'ordinamento in base a un'altra proprietà
    dell'oggetto, in modo che i risultati dei computer diversi siano
    mischiati.

VEDERE ANCHE
    about_Remote
    Format-Table
    Get-EventLog
    Get-Process
    Get-Service
    Get-WmiObject
    Invoke-Command
    Out-GridView
    Select-Object


about_Remote_Requirements

ARGOMENTO
    about_Remote_Requirements

DESCRIZIONE BREVE
    Descrive i requisiti di sistema e i requisiti di configurazione per
    l'esecuzione di comandi remoti in Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    In questo argomento vengono descritti i requisiti di sistema, i
    requisiti dell'utente e requisiti delle risorse necessari per
    stabilire connessioni remote e per eseguire comandi remoti in Windows
    PowerShell. Vengono inoltre fornite istruzioni per la configurazione di
    operazioni remote.

    Nota: molti cmdlet (tra cui Get-Service, Get-Process,
          Get-WMIObject, Get-EventLog e Get-WinEvent) ottengono oggetti dai
          computer remoti mediante metodi Microsoft .NET Framework di
          recupero degli oggetti. Non utilizzano l'infrastruttura remota di
          Windows PowerShell. I requisiti illustrati in questo documento non si
          applicano a questi cmdlet.

          Per trovare sui cmdlet che dispongono di un parametro
          ComputerName ma non utilizzano la comunicazione remota di
          Windows PowerShell, leggere la descrizione del parametro
          ComputerName dei cmdlet.

 REQUISITI DI SISTEMA

    I computer locali e remoti devono disporre di:

        --  Windows PowerShell 2.0 o versione successiva

        --  Microsoft .NET Framework 2.0 o versione successiva

        --  Gestione remota Windows 2.0

    Per trovare il numero di versione di una versione installata di
    Windows PowerShell, utilizzare la variabile automatica
    $PSVersionTable. Il valore della proprietà $PSVersionTable.Version
    .Major deve essere 2 o maggiore.

    Gestione remota Windows 2.0 è incluso in Windows 7 e in Windows
    Server 2008 R2. È anche incluso nel pacchetto di installazione
    integrato per versioni precedenti di Windows che include Windows
    PowerShell.

    Windows PowerShell Integrated Scripting Environment (ISE) e il
    cmdlet Out-Gridview richiedono .NET Framework 3.5 Service Pack 1.
    Il cmdlet Get-WinEvent richiede Microsoft .NET Framework 3.5 o
    versione successiva. Questi aggiornamenti non sono richiesti per la
    comunicazione remota.

 AUTORIZZAZIONI DELL'UTENTE

    Per stabilire una connessione remota ed eseguire comandi remoti,
    l'utente corrente deve essere membro del gruppo Administrators
    nel computer remoto. In alternativa, l'utente corrente deve
    essere in grado di fornire le credenziali di un amministratore.

 ESEGUI COME AMMINISTRATORE

    In Windows Vista, Windows Server 2008 e nelle versioni successive
    di Windows, per le operazioni remote seguenti sono richiesti
    privilegi di amministratore :

        -- Esecuzione di una connessione remota al computer locale. Questa
           operazione è comunemente denominata scenario "loopback".

        -- Gestione delle configurazioni delle sessioni nel computer
           locale.

        -- Visualizzazione e modifica delle impostazioni di
           WS-Management nel computer locale.
           Queste sono le impostazioni del nodo LocalHost dell'unità
           WSMAN:.

    Per eseguire queste attività, è necessario avviare Windows
    PowerShell con l'opzione "Esegui come amministratore" anche se si
    è membri del gruppo Administrators nel computer locale.

    In Windows 7 e in Windows Server 2008 R2, per avviare Windows
    PowerShell con l'opzione "Esegui come amministratore":

        1. Fare clic sul pulsante Start, scegliere Tutti i programmi,
           Accessori, quindi fare clic sulla cartella Windows PowerShell.

        2. Fare clic con il pulsante destro del mouse su Windows
           PowerShell, quindi scegliere "Esegui come amministratore".

    In Windows Vista e Windows Server 2008, per avviare Windows
    PowerShell con l'opzione "Esegui come amministratore":

        1. Fare clic sul pulsante Start, scegliere Tutti i programmi,
           quindi fare clic sulla cartella Windows PowerShell.

        2. Fare clic con il pulsante destro del mouse su Windows
           PowerShell, quindi scegliere "Esegui come amministratore".

    L'opzione "Esegui come amministratore" è anche disponibile in
    altre voci di Esplora risorse per Windows PowerShell, inclusi
    collegamenti. È sufficiente fare clic con il pulsante destro del mouse
    sull'elemento e scegliere "Esegui come amministratore".

    Quando si avvia Windows PowerShell da un altro programma quale
    Cmd.exe, utilizzare l'opzione "Esegui come amministratore" per
    avviare il programma.

 MODALITÀ DI CONFIGURAZIONE DEL COMPUTER PER LA COMUNICAZIONE REMOTA

    Le funzionalità di comunicazione remota di Windows PowerShell sono
    supportate dal servizio WinRM che è l'implementazione Microsoft del
    protocollo WS-Management. Per utilizzare le funzionalità di
    comunicazione remota, è necessario modificare la configurazione
    predefinita di WS-Management nel sistema.

    Per configurare Windows PowerShell per la ricezione di comandi
    remoti:

        1. Avviare Windows PowerShell. In Windows Vista e nelle versioni
           successive di Windows, avviare Windows PowerShell con l'opzione
           "Esegui come amministratore".

    2. Al prompt dei comandi, digitare:

       enable-psremoting

    Questa procedura consente agli utenti di altri computer di stabilire
    connessioni remote e di eseguire comandi remoti nel computer locale.
    Consente inoltre di creare una connessione "loopback" nel computer locale.

    Per verificare che la comunicazione remota sia configurata
    correttamente, eseguire un comando di prova come il seguente, che
    crea una sessione remota nel computer locale.

          new-pssession

    Se la comunicazione remota viene configurata correttamente, il comando
    creerà una sessione nel computer locale e restituirà un oggetto che
    rappresenta la sessione. L'output è analogo all'output di esempio
    seguente:

          C:\PS> new-pssession

          Id Name        ComputerName    State    ConfigurationName
          -- ----        ------------    -----    -----
          1  Session1    localhost       Opened   Microsoft.PowerShell

    Se il comando ha esito negativo, vedere about_Remote_Troubleshooti
    ng per assistenza.

 INFORMAZIONI SUI CRITERI

    Quando si opera in modalità remota, si utilizzano due istanze di
    Windows PowerShell, una nel computer locale e una nel computer
    remoto. Di conseguenza, l'utilizzo è influenzato dai criteri di
    Windows e dai criteri di Windows PowerShell presenti nei computer
    locale e remoto.

    In genere, i criteri nel computer locale hanno effetto prima di
    stabilire la connessione e mentre la si stabilisce. Quando si
    utilizza la connessione, hanno effetto i criteri del computer remoto.

VEDERE ANCHE
    about_Remote
    about_PSSessions
    Invoke-Command
    Enter-PSSession
    New-PSSession


about_Remote_Troubleshooting

ARGOMENTO
    about_Remote_Troubleshooting

DESCRIZIONE BREVE
    Descrive come risolvere i problemi relativi alle operazioni remote
    in Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    In questa sezione vengono descritti alcuni dei problemi che è
    possibile incontrare quando si utilizzano le funzionalità di
    comunicazione remota di Windows PowerShell basate sulla tecnologia
    WS-Management e vengono suggerite soluzioni per tali problemi.

    Prima di utilizzare le funzionalità di comunicazione remota di
    Windows PowerShell, vedere about_Remote e about_Remote_Requirements
    per istruzioni sulla configurazione e l'utilizzo di base. Consultare
    inoltre gli argomenti della Guida per ognuno dei cmdlet di comunicazione remota,
    in particolare le descrizioni dei parametri, in cui sono riportate informazioni
    specifiche per evitare che si verifichino problemi.

    Le versioni aggiornate di questo argomento e di altri argomenti
    della Guida di Windows PowerShell, sono disponibili online nella
    Microsoft Technet Library. Per visualizzare  la versione online di questo
    argomento della Guida, incollare l'URL seguente nel browser Internet:

    http://go.microsoft.com/fwlink/?LinkID=135188

    NOTA: in Windows Vista, Windows Server 2008 e nelle versioni
    successive di Windows, per visualizzare o modificare le
    impostazioni per il computer locale nell'unità WSMan, comprese
    le modifiche alle configurazioni di sessione, agli host
    attendibili, alle porte o ai listener, avviare Windows
    PowerShell con l'opzione "Esegui come amministratore".

 RISOLUZIONE DEI PROBLEMI RELATIVI AD AUTORIZZAZIONI E AUTENTICAZIONE

    In questa sezione vengono illustrati problemi di comunicazione
    remota correlati alle autorizzazioni per utenti e computer e ai
    requisiti di comunicazione remota.

    MODALITÀ DI ESECUZIONE COME AMMINISTRATORE
    ---------------------------
        ERRORE: Accesso negato. È necessario eseguire il cmdlet da un
        processo con privilegi elevati.

    Per avviare una sessione remota nel computer locale o per
    visualizzare o modificare le impostazioni per il computer locale
    nell'unità WSMan, comprese le modifiche alle configurazioni di
    sessione, agli host attendibili, alle porte o ai listener,
    avviare Windows PowerShell con l'opzione "Esegui come amministratore".

    Per avviare Windows PowerShell con l'opzione "Esegui come amministratore":

    -- Fare clic con il pulsante destro del mouse sull'icona di
       Windows PowerShell (o Windows PowerShell ISE), quindi scegliere
       "Esegui come amministratore".

    Per avviare Windows PowerShell con l'opzione "Esegui come
    amministratore" in Windows 7 e Windows Server 2008 R2:

    -- Nella barra delle applicazioni di Windows fare clic con il
       pulsante destro del mouse sull'icona di Windows PowerShell,
       quindi scegliere "Esegui Windows PowerShell come amministratore".

    Nota: per impostazione predefinita, in Windows Server 2008 R2
    l'icona di Windows PowerShell è bloccata sulla barra delle applicazioni.

    MODALITÀ DI ABILITAZIONE DELLA COMUNICAZIONE REMOTA
    ----------------------
        ERRORE: ACCESSO NEGATO
        oppure
        ERRORE: La connessione all'host remoto è stata rifiutata.
        Verificare che il servizio WS-Management sia in esecuzione
        nell'host remoto e configurato per l'ascolto delle richieste
        sulla porta e sull'URL HTTP corretti.

    Per abilitare un computer per l'invio di comandi remoti, non è
    necessaria alcuna configurazione, mentre è necessario
    configurare il computer remoto per la ricezione di comandi
    remoti. La configurazione include l'avvio del servizio Gestione
    remota Windows, l'impostazione del tipo di avvio per il servizio
    Gestione remota Windows su Automatico, la creazione di listener
    per connessioni HTTP e HTTPS e la creazione di configurazioni
    di sessione predefinite.

    Per configurare un computer per la ricezione di comandi remoti,
    utilizzare il cmdlet Enable-PSRemoting. Nel comando seguente
    vengono abilitate tutte le impostazioni remote necessarie e le
    configurazioni di sessione e viene riavviato il servizio
    Gestione remota Windows per rendere effettive le modifiche.

        enable-psremoting

    Per eliminare tutti i prompt dell'utente, digitare:

        enable-psremoting -force

    Per ulteriori informazioni, vedere Enable-PSRemoting.

    MODALITÀ DI ABILITAZIONE DELLA COMUNICAZIONE REMOTA IN UN'ORGANIZZAZIONE
    ---------------------------------------
        ERRORE: ACCESSO NEGATO
        oppure
        ERRORE: La connessione all'host remoto è stata rifiutata.
        Verificare che il servizio WS-Management sia in esecuzione
        nell'host remoto e configurato per l'ascolto delle richieste
        sulla porta e sull'URL HTTP corretti.

    Per abilitare un singolo computer affinché riceva comandi di Windows PowerShell
    remoti e accetti le connessioni, utilizzare i cmdlet Enable-PSRemoting.

    Per abilitare la comunicazione remota per più computer in un'organizzazione, è
    possibile utilizzare le opzioni semplificate seguenti.

    -- Per configurare listener per la comunicazione remota, abilitare
       il Criterio di gruppo "Consenti configurazione automatica dei
       listener". Per istruzioni, vedere "Modalità di abilitazione dei
       listener tramite Criteri di gruppo" (di seguito).

    -- Per impostare il tipo di avvio di Gestione remota Windows su
       Automatico in più computer, utilizzare il cmdlet Set-Service.
       Per le istruzioni, vedere "Modalità di impostazione del tipo di
       avvio del servizio Gestione remota Windows" (di seguito).

    -- Per abilitare un'eccezione del firewall, utilizzare il Criterio
       di gruppo "Windows Firewall: consenti eccezioni porte locali".
       Per istruzioni, vedere "Modalità di creazione di un'eccezione
       del firewall tramite Criteri di gruppo" (di seguito).

    MODALITÀ DI ABILITAZIONE DEI LISTENER TRAMITE CRITERI DI GRUPPO
    ------------------------------------------------
        ERRORE: ACCESSO NEGATO
        oppure
        ERRORE: La connessione all'host remoto è stata rifiutata.
        Verificare che il servizio WS-Management sia in esecuzione
        nell'host remoto e configurato per l'ascolto delle richieste
        sulla porta e sull'URL HTTP corretti.

    Per configurare i listener per tutti i computer in un dominio,
    abilitare il criterio "Consenti configurazione automatica dei
    listener" nel percorso di Criterio di gruppo seguente:

        Configurazione computer\Modelli amministrativi\Componenti di Windows
          \Gestione remota Windows\Servizio WinRM

    Abilitare il criterio e specificare i filtri IPv4 e IPv6. È consentito
    l'utilizzo di caratteri jolly (*).

    MODALITÀ DI ABILITAZIONE DI UN'ECCEZIONE DEL FIREWALL TRAMITE CRITERI DI GRUPPO
    -------------------------------------------------------------------------------
        ERRORE: ACCESSO NEGATO
        oppure
        ERRORE: La connessione all'host remoto è stata rifiutata.
        Verificare che il servizio WS-Management sia in esecuzione
        nell'host remoto e configurato per l'ascolto delle richieste
        sulla porta e sull'URL HTTP corretti.

    Per abilitare un'eccezione del firewall in tutti i computer di un
    dominio, abilitare il criterio "Windows Firewall: consenti eccezioni porte locali"
    nel percorso di Criteri di gruppo seguente:

        Configurazione computer\Modelli amministrativi\Rete
          \Connessioni di rete\Windows Firewall\Profilo di dominio

    Questo criterio consente ai membri del gruppo Administrators del computer di
    utilizzare Windows Firewall nel Pannello di controllo per creare un'eccezione
    del firewall per il servizio Gestione remota Windows.

    MODALITÀ DI IMPOSTAZIONE DEL TIPO DI AVVIO DEL SERVIZIO GESTIONE REMOTA WINDOWS
    -------------------------------------------------------------------------------
        ERRORE: ACCESSO NEGATO

    La funzionalità di comunicazione remota di Windows PowerShell
    dipende dal servizio Gestione remota Windows. Per supportare i
    comandi remoti, il servizio deve essere in esecuzione.

    In Windows Server 2003, Windows Server 2008 e Windows Server 2008 R2,
    il tipo di avvio del servizio Gestione remota Windows è Automatico.

    Tuttavia, in Windows XP, Windows Vista e Windows 7, il servizio
    Gestione remota Windows è disabilitato per impostazione predefinita.

    Per impostare il tipo di avvio di un servizio in un computer
    remoto, utilizzare il cmdlet Set-Service.

    Per eseguire il comando in più computer, è possibile creare un
    file di testo o un file CSV con i nomi dei computer.

    Ad esempio, nei comandi seguenti viene ottenuto un elenco di nomi
    dei computer dal file Servers.txt, quindi viene impostato il tipo di
    avvio del servizio Gestione remota Windows su Automatico in tutti i computer.

        C:\PS> $servers = get-content servers.txt

        C:\PS> set-service WinRM -computername $servers -startuptype Automatic

    Per visualizzare i risultati, utilizzare il cmdlet Get-WMIObject con l'oggetto
    Win32_Service. Per ulteriori informazioni, vedere Set-Service.

    MODALITÀ DI RICREAZIONE DELLE CONFIGURAZIONI DI SESSIONE PREDEFINITE
    --------------------------------------------------------------------
        ERRORE: ACCESSO NEGATO

    Per connettersi al computer locale ed eseguire i comandi in modalità remota,
    nel computer devono essere incluse configurazioni di sessione per comandi remoti.

    Quando si utilizza Enable-PSRemoting, vengono create configurazioni di sessione
    predefinite nel computer locale. Gli utenti remoti utilizzano queste configurazioni
    di sessione ogni volta che un comando remoto non include il parametro ConfigurationName.

    Se viene annullata la registrazione delle configurazioni
    predefinite in un computer o se queste vengono eliminate,
    utilizzare il cmdlet Enable-PSRemoting per ricrearle. È
    possibile utilizzare ripetutamente questo cmdlet. Se una
    funzionalità è già configurata, non vengono generati errori.

    Se si modificano le configurazioni di sessione predefinite e si
    desidera ripristinare quelle originali, utilizzare il
    cmdlet Unregister-PSSessionConfiguration per eliminare le
    configurazioni di sessione modificate e successivamente il
    cmdlet Enable-PSRemoting per ripristinarle. Enable-PSRemoting
    non modifica le configurazioni di sessione esistenti.

    Nota: quando Enable-PSRemoting ripristina la configurazione di
    sessione predefinita, non crea descrittori di sicurezza
    espliciti per le configurazioni. Al contrario, le configurazioni
    ereditano il descrittore di sicurezza di RootSDDL, protetto per
    impostazione predefinita.

    Per visualizzare il descrittore di sicurezza RootSDDL, digitare:

        get-item wsman:\localhost\Service\RootSDDL

    Per modificare RootSDDL, utilizzare il cmdlet Set-Item nell'unità WSMan.
    Per modificare il descrittore di sicurezza di una configurazione di sessione,
    utilizzare il cmdlet Set-PSSessionConfiguration con i parametri
    SecurityDescriptorSDDL o ShowSecurityDescriptorUI.

    Per ulteriori informazioni sull'unità WSMan, vedere l'argomento
    della Guida relativo al provider di WS-Management ("get-help wsman").

    MODALITÀ DI SPECIFICA DELLE CREDENZIALI DELL'AMMINISTRATORE
    -----------------------------------------------------------
        ERRORE: ACCESSO NEGATO

    Per impostazione predefinita, per creare una sessione PSSession o
    eseguire comandi in un computer remoto, l'utente corrente deve
    essere membro del gruppo Administrators nel computer remoto. Le
    credenziali sono talvolta necessarie anche quando l'utente corrente
    ha effettuato l'accesso a un account membro del gruppo Administrators.

    Se l'utente corrente è membro del gruppo Administrators nel
    computer remoto o è in grado di specificare le credenziali di
    un membro di tale gruppo, utilizzare il parametro Credential del
    cmdlet New-PSSession, Enter-PSSession o Invoke-Command per
    connettersi in modalità remota.

    Ad esempio, nel comando seguente vengono specificate le
    credenziali di un amministratore.

        Invoke-Command -ComputerName Server01 -Credential Domain01\Admin01

    Per ulteriori informazioni sul parametro Credential, vedere
    New-PSSession, Enter-PSSession o Invoke-Command.

    MODALITÀ DI ABILITAZIONE DELLA FUNZIONALITÀ DI COMUNICAZIONE
    REMOTA PER UTENTI SENZA PRIVILEGI DI AMMINISTRATORE
    ------------------------------------------------------------
        ERRORE: ACCESSO NEGATO

    Per stabilire una sessione PSSession o eseguire un comando in un
    computer remoto, l'utente deve disporre dell'autorizzazione per
    l'utilizzo delle configurazioni di sessione nel computer remoto.

    Per impostazione predefinita, solo i membri del gruppo
    Administrators di un computer dispongono dell'autorizzazione per
    l'utilizzo delle configurazioni di sessione predefinite. Di
    conseguenza, solo i membri del gruppo Administrators possono
    connettersi al computer in modalità remota.

    Per consentire agli altri utenti di connettersi al computer
    locale, fornire loro le autorizzazioni Execute per le
    configurazioni di sessione predefinite nel computer locale.

    Il comando seguente consente di aprire una finestra delle
    proprietà in cui è possibile modificare il descrittore di
    sicurezza della configurazione di sessione predefinita Microsoft.PowerShell
    nel computer locale.

        Set-PSSessionConfiguration Microsoft.Powershell -ShowSecurityDescriptorUI

    Per ulteriori informazioni, vedere about_Session_Configurations.

    MODALITÀ DI ABILITAZIONE DELLA FUNZIONALITÀ DI COMUNICAZIONE
    REMOTA PER GLI AMMINISTRATORI DI ALTRI DOMINI
    ------------------------------------------------------------
        ERRORE: ACCESSO NEGATO

    Quando un utente in un altro dominio è membro del gruppo Administrators nel
    computer locale, l'utente non può connettersi al computer locale in modalità
    remota con privilegi di amministratore. Per impostazione predefinita, le
    connessioni remote da altri domini vengono eseguite solo con token di
    privilegi di utente standard.

    Tuttavia, è possibile utilizzare la voce del Registro di sistema
    LocalAccountTokenFilterPolicy per modificare il comportamento predefinito
    e consentire l'esecuzione con privilegi di amministratore da parte di utenti
    remoti membri del gruppo Administrators.

    Attenzione: la voce LocalAccountTokenFilterPolicy disabilita le
    limitazioni remote relative al controllo dell'account utente per
    tutti gli utenti di tutti i computer interessati. Considerare
    attentamente le implicazioni di questa impostazione prima di
    modificare il criterio.

    Per modificare il criterio, utilizzare il comando seguente per
    impostare il valore della voce del Registro di sistema
    LocalAccountTokenFilterPolicy su 1.

        C:\PS> new-itemproperty -name LocalAccountTokenFilterPolicy -path `
            HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
            -propertyType `DWord -value 1

    MODALITÀ DI UTILIZZO DI UN INDIRIZZO IP IN UN COMANDO REMOTO
    -----------------------------------------------------
        ERRORE: Client Gestione remota Windows: impossibile elaborare
        la richiesta. Se lo schema di autenticazione è diverso
        da Kerberos o se il computer client non è associato a
        un dominio, è necessario utilizzare il trasporto HTTPS
        oppure aggiungere il computer di destinazione all'impostazione di
        configurazione TrustedHosts.

    I parametri ComputerName dei cmdlet New-PSSession, Enter-PSSession
    e Invoke-Command accettano un indirizzo IP come valore valido.
    Tuttavia, poiché l'autenticazione Kerberos non supporta gli indirizzi IP,
    per impostazione predefinita, viene utilizzata l'autenticazione NTLM
    quando si specifica un indirizzo IP.

    In caso di utilizzo dell'autenticazione NTLM, per la funzionalità
    di comunicazione remota è richiesta la procedura riportata di seguito.

    1. Configurare il computer per il trasporto HTTPS o aggiungere gli
       indirizzi IP dei computer remoti all'elenco TrustedHosts
       nel computer locale.

       Per istruzioni, vedere "Modalità di aggiunta di un computer
       all'elenco TrustedHosts" (di seguito).

    2. Utilizzare il parametro Credential in tutti i comandi remoti.

       Questo parametro è richiesto anche quando si inviano le
       credenziali dell'utente corrente.

    MODALITÀ DI CONNESSIONE IN MODALITÀ REMOTA DA UN COMPUTER  BASATO
    SU UN GRUPPO DI LAVORO
    -------------------------------------------------------
        ERRORE: Client Gestione remota Windows: impossibile elaborare
        la richiesta. Se lo schema di autenticazione è diverso
        da Kerberos o se il computer client non è associato a
        un dominio, è necessario utilizzare il trasporto HTTPS
        oppure aggiungere il computer di destinazione all'impostazione di
        configurazione TrustedHosts.

    Quando il computer locale non si trova in un dominio, per la
    funzionalità di comunicazione remota è richiesta la procedura
    riportata di seguito.

    1. Configurare il computer per il trasporto HTTPS o aggiungere i
       nomi dei computer remoti all'elenco TrustedHosts nel computer locale.

       Per istruzioni, vedere "Modalità di aggiunta di un computer
       all'elenco TrustedHosts" (di seguito).

    2. Verificare che nel computer basato su un gruppo di lavoro sia
       impostata una password. Se non è impostata una password o se il valore
       della password è vuoto, non è possibile eseguire comandi remoti.

       Per impostare una password per l'account utente, utilizzare
       Account utente nel Pannello di controllo.

    3. Utilizzare il parametro Credential in tutti i comandi remoti.

       Questo parametro è richiesto anche quando si inviano le
       credenziali dell'utente corrente.

    MODALITÀ DI AGGIUNTA DI UN COMPUTER ALL'ELENCO DI HOST ATTENDIBILI
    ------------------------------------------------------------------

    L'elemento TrustedHosts può contenere un elenco di nomi di
    computer, indirizzi IP e nomi di dominio completi delimitato da
    virgole. È consentito l'utilizzo di caratteri jolly.

    Per visualizzare o modificare l'elenco degli host attendibili,
    utilizzare l'unità WSMan. L'elemento TrustedHost si trova nel
    nodo WSMan:\localhost\Client.

    Solo i membri del gruppo Administrators del computer dispongono dell'autorizzazione
    per la modifica dell'elenco di host attendibili nel computer.

    Attenzione: il valore che si imposta per l'elemento TrustedHosts
                influisce su tutti gli utenti del computer.

    Per visualizzare l'elenco di host attendibili, utilizzare il comando seguente:

        get-item wsman:\localhost\Client\TrustedHosts

    È possibile utilizzare anche il cmdlet Set-Location (alias = cd) per spostarsi
    nell'unità WSMan fino al percorso. Ad esempio: "cd WSMan:\localhost\Client; dir".

    Per aggiungere tutti i computer all'elenco di host attendibili,
    utilizzare il comando seguente, che inserisce un valore * (tutto) in ComputerName

        set-item wsman:localhost\client\trustedhosts -value *

    Per aggiungere tutti i computer di un determinato dominio
    all'elenco di host attendibili, è possibile utilizzare anche un
    carattere jolly (*). Ad esempio, con il comando seguente tutti
    i computer del dominio Fabrikam vengono aggiunti all'elenco di
    host attendibili.

        set-item wsman:localhost\client\trustedhosts *.fabrikam.com

    Per aggiungere i nomi di determinati computer all'elenco di host
    attendibili, utilizzare il formato di comando seguente:

        set-item wsman:\localhost\Client\TrustedHosts -value <NomeComputer>[,<NomeComputer>]

    dove ogni valore <NomeComputer> deve presentare il formato seguente:

        <Computer>.<Dominio>.<Società>.<dominio-primo-livello>

    Ad esempio:

        set-item wsman:\localhost\Client\TrustedHosts -value Server01.Domain01.Fabrikam.com

    Per aggiungere un nome computer a un elenco esistente di host
    attendibili, salvare innanzitutto il valore corrente in una
    variabile, quindi impostare il valore su un elenco delimitato
    da virgole che include i valori correnti e quelli nuovi.

    Ad esempio, per aggiungere il computer Server01 a un elenco
    esistente di host attendibili, utilizzare il comando seguente.

        $curValue = (get-item wsman:\localhost\Client\TrustedHosts).value

        set-item wsman:\localhost\Client\TrustedHosts -value "$curValue, Server01.Domain01.Fabrikam.com"

    Per aggiungere gli indirizzi IP di determinati computer all'elenco
    di host attendibili, utilizzare il formato di comando seguente:

        set-item wsman:\localhost\Client\TrustedHosts -value <Indirizzo IP>

    Ad esempio:

        set-item wsman:\localhost\Client\TrustedHosts -value 172.16.0.0

    Per aggiungere un computer all'elenco TrustedHosts di un computer
    remoto, utilizzare il cmdlet Connect-WSMan per aggiungere un
    nodo per il computer remoto all'unità WSMan nel computer locale.
    Successivamente utilizzare un comando Set-Item per aggiungere il computer.

    Per ulteriori informazioni sul cmdlet Connect-WSMan, vedere Connect-WSMan.

 RISOLUZIONE DEI PROBLEMI DI CONFIGURAZIONE DEI COMPUTER
    In questa sezione vengono illustrati problemi di comunicazione
    remota correlati a determinate configurazioni di un computer,
    un dominio o un'organizzazione.

    MODALITÀ DI CONFIGURAZIONE DELLA FUNZIONALITÀ DI COMUNICAZIONE
    REMOTA SU PORTE ALTERNATIVE
    --------------------------------------------------------------
        ERRORE: La connessione all'host remoto specificato è stata
        rifiutata. Verificare che il servizio WS-Management sia
        in esecuzione nell'host remoto e configurato per l'ascolto
        delle richieste sulla porta e sull'URL HTTP corretti.

    Per impostazione predefinita, la funzionalità di comunicazione
    remota di Windows PowerShell utilizza la porta 80 per il
    trasporto HTTP. La porta predefinita viene utilizzata ogni volta
    che l'utente non specifica i parametri ConnectionURI o Port in
    un comando remoto.

    Per modificare la porta predefinita impostata in Windows
    PowerShell, utilizzare il cmdlet Set-Item nell'unità WSMan per
    modificare il valore Port nel nodo foglia del listener.

    Ad esempio, il comando seguente consente di impostare la porta
    predefinita su 8080.

        set-item wsman:\localhost\listener\listener*\port -value 8080

    MODALITÀ DI CONFIGURAZIONE DELLA FUNZIONALITÀ DI COMUNICAZIONE
    REMOTA CON UN SERVER PROXY
    --------------------------------------------------------------
        ERRORE: Il client non è in grado di connettersi alla
        destinazione specificata nella richiesta. Verificare che
        il servizio sulla destinazione sia in esecuzione e accetti
        le richieste.

    Poiché la funzionalità di comunicazione remota di Windows
    PowerShell utilizza il protocollo HTTP, è influenzata dalle
    impostazioni proxy HTTP. In organizzazioni che dispongono di
    server proxy, gli utenti non possono accedere direttamente a un
    computer remoto di Windows PowerShell.

    Per risolvere questo problema, utilizzare opzioni delle
    impostazioni proxy nel comando remoto. Sono disponibili le
    seguenti impostazioni:

        --  ProxyAccessType
        --  ProxyAuthentication
        --  ProxyCredential

    Per impostare queste opzioni per un determinato comando,
    utilizzare la procedura riportata di seguito:

        1. Utilizzare i parametri ProxyAccessType, ProxyAuthentication
           e ProxyCredential del cmdlet New-PSSessionOption
           per creare un oggetto opzione di sessione con le
           impostazioni proxy per l'organizzazione. Salvare
           l'oggetto opzione in una variabile.

        2. Utilizzare la variabile che contiene l'oggetto opzione come
           valore del parametro SessionOption di un comando
           New-PSSession, Enter-PSSession o Invoke-Command.

    Ad esempio, nel comando seguente viene creato un oggetto opzione
    di sessione con opzioni di sessione proxy, quindi l'oggetto
    viene utilizzato per creare una sessione remota.

        C:\PS> $SessionOption = New-PSSessionOption -ProxyAccessType IEConfig
                -ProxyAuthentication Negotiate -ProxyCredential Domain01\User01

        C:\PS> New-PSSession -ConnectionURI https://www.fabrikam.com

    Per ulteriori informazioni sul cmdlet New-PSSessionOption, vedere
    New-PSSessionOption.

    Per impostare queste opzioni per tutti i comandi remoti della
    sessione corrente, utilizzare l'oggetto opzione creato da New-PSSessionOption
    nel valore della variabile di preferenza $PSSessionOption. Per ulteriori
    informazioni sulla variabile di preferenza $PSSessionOption, vedere
    about_Preference_Variables.

    Per impostare queste opzioni per tutti i comandi remoti di tutte
    le sessioni di Windows PowerShell nel computer locale,
    aggiungere la variabile di preferenza $PSSessionOption al
    profilo di Windows PowerShell. Per ulteriori informazioni sui
    profili di Windows PowerShell, vedere about_Profiles.

    MODALITÀ DI RILEVAMENTO DI UNA SESSIONE A 32 BIT IN UN COMPUTER A 64 BIT
    ------------------------------------------------------------------------
        ERRORE: Termine "<nome-strumento>" non riconosciuto come nome
        di cmdlet, funzione, programma eseguibile o file script.
        Controllare l'ortografia del nome o verificare che il
        percorso sia incluso e corretto, quindi riprovare.

    Se nel computer remoto è in esecuzione una versione di Windows a
    64 bit e il comando remoto utilizza una configurazione di
    sessione a 32 bit, ad esempio Microsoft.PowerShell32, in
    Gestione remota Windows viene caricato un processo WOW64 e
    Windows reindirizza automaticamente tutti i riferimenti della
    directory %Windir%\System32 alla directory %windir%\SysWOW64.

    Di conseguenza, se nella directory System32 si tenta di utilizzare
    strumenti che non hanno corrispondenti nella directory SysWow64, ad esempio
    Defrag.exe, non sarà possibile trovare tali strumenti nella directory.

    Per trovare l'architettura del processore in uso nella sessione,
    utilizzare il valore della variabile di ambiente PROCESSOR_ARCHITECTURE.
    Nel comando seguente viene rilevata l'architettura del processore
    della sessione nella variabile $s.

        C:\PS> $s = new-pssession -computername Server01 -configurationName CustomShell

        C:\PS> invoke-command -session $s {$env:PROCESSOR_ARCHITECTURE} x86

    Per ulteriori informazioni sulle configurazioni di sessione,
    vedere about_session_configurations.

 RISOLUZIONE DEI PROBLEMI RELATIVI A CRITERI E PREFERENZE
    In questa sezione vengono illustrati problemi di comunicazione remota correlati
    a criteri e preferenze impostati nei computer locali e remoti.

    MODALITÀ DI MODIFICA DEI CRITERI DI ESECUZIONE PER IMPORT
    -PSSESSION E IMPORT-MODULE
    ---------------------------------------------------------
        ERRORE: Import-Module: Impossibile caricare il file <nomefile>.
        L'esecuzione di script è disattivata nel sistema corrente.

    I cmdlet Import-PSSession ed Export-PSSession creano moduli che
    contengono file di script e file di formattazione non firmati.

    Per importare i moduli creati da questi cmdlet, tramite Import-PSSession
    o Import-Module, i criteri di esecuzione nella sessione corrente non
    possono essere Restricted o AllSigned. Per ulteriori informazioni sui criteri
    di esecuzione di Windows PowerShell, vedere about_Execution_Policies.

    Per importare i moduli senza modificare i criteri di esecuzione
    per il computer locale impostati nel Registro di sistema,
    utilizzare il parametro Scope di Set-ExecutionPolicy per impostare
    criteri di esecuzione meno restrittivi per un singolo processo.

    Ad esempio, nel comando seguente viene avviato un processo con
    criteri di esecuzione RemoteSigned. La modifica dei criteri di
    esecuzione influisce solo sul processo corrente e non modifica
    l'impostazione del Registro di sistema ExecutionPolicy di Windows PowerShell.

        set-executionpolicy -scope process -executionpolicy RemoteSigned

    È inoltre possibile utilizzare il parametro ExecutionPolicy
    di PowerShell.exe per avviare una sessione unica con criteri di
    esecuzione meno restrittivi.

        powershell.exe -executionpolicy RemoteSigned

    Per ulteriori informazioni sui cmdlet, vedere Import-PSSession, Export-PSSession
    e Import-Module. Per ulteriori informazioni sui criteri di esecuzione,
    vedere about_Execution_Policies. Per ulteriori informazioni sulle opzioni relative
    alla Guida della console PowerShell.exe, digitare "powershell.exe -?".

    MODALITÀ DI IMPOSTAZIONE E MODIFICA DELLE QUOTE
    -----------------------------------------------
        ERRORE: La quantità totale di dati ricevuti dal client remoto
        supera il valore massimo consentito.

    È possibile utilizzare quote per proteggere il computer locale e il computer
    remoto da un utilizzo eccessivo delle risorse, sia fortuito che dannoso.

    Le quote seguenti sono disponibili nella configurazione di base.

    -- Il provider di WS-Management (WSMan:) fornisce diverse
       impostazioni delle quote, ad esempio le impostazioni MaxEnvelopeSizeKB
       e MaxProviderRequests nel nodo WSMan:\<NomeComputer> e le
       impostazioni MaxConcurrentOperations, MaxConcurrentOperationsPerUser
       e MaxConnections nel nodo WSMan:\<NomeComputer>\Service.

    -- È possibile proteggere il computer locale tramite i
       parametri MaximumReceivedDataSizePerCommandMB e
       MaximumReceivedObjectSizeMB del cmdlet New-PSSessionOption e la
       variabile di preferenza $PSSessionOption.

    -- È possibile proteggere il computer remoto aggiungendo
       restrizioni alle configurazioni di sessione, ad esempio tramite
       i parametri MaximumReceivedDataSizePerCommandMB e
       MaximumReceivedObjectSizeMB del cmdlet Register-PSSessionConfiguration.

    Quando le quote creano conflitti con un comando, Windows PowerShell genera un errore.

    Per risolvere l'errore, modificare il comando remoto affinché sia
    conforme alla quota oppure determinare l'origine della quota e
    aumentare quest'ultima per consentire il completamento del comando.

    Ad esempio, nel comando seguente la quota delle dimensione degli
    oggetti nella configurazione di sessione Microsoft.PowerShell
    nel computer remoto viene aumentata da 10 MB (valore predefinito) a 11 Mb.

        Set-PSSessionConfiguration -name microsoft.powershell `
            -MaximumReceivedObjectSizeMB 11 -Force

    Per ulteriori informazioni sul cmdlet New-PSSsessionOption, vedere
    New-PSSessionOption.

    Per ulteriori informazioni sulle quote di WS-Management, vedere
    l'argomento della Guida relativo al provider di WS-Management
    (digitare "get-help WSMan").

    MODALITÀ DI RISOLUZIONE DEGLI ERRORI DI TIMEOUT
    -----------------------------------------------
        ERRORE: Servizio WS-Management: impossibile completare
        l'operazione entro il tempo specificato in OperationTimeout.

    È possibile utilizzare timeout per proteggere il computer locale e
    il computer remoto da un utilizzo eccessivo delle risorse, sia
    fortuito che dannoso. Quando i timeout sono impostati nel
    computer locale e in quello remoto, Windows PowerShell utilizza
    le impostazioni di timeout più brevi.

    I timeout seguenti sono disponibili nella configurazione di base.

    -- Il provider di WS-Management (WSMan:) fornisce diverse
       impostazioni di timeout lato client e lato servizio, ad esempio
       l'impostazione MaxTimeoutms nel nodo WSMan:\<NomeComputer> e le
       impostazioni EnumerationTimeoutms e MaxPacketRetrievalTimeSeconds nel nodo
       WSMan:\<NomeComputer>\Service.

    -- È possibile proteggere il computer locale tramite i parametri
       CancelTimeout, IdleTimeout, OpenTimeout e OperationTimeout del
       cmdlet New-PSSessionOption e la variabile di preferenza $PSSessionOption.

    -- È possibile proteggere anche il computer remoto impostando
       valori di timeout a livello di codice nella configurazione di
       sessione.

    Quando un valore di timeout non consente il completamento di un'operazione,
    Windows PowerShell termina l'operazione e genera un errore.

    Per risolvere l'errore, modificare il comando affinché venga
    completato nell'intervallo di timeout o determinare l'origine
    del limite di timeout e aumentare l'intervallo per consentire
    il completamento del comando.

    Ad esempio, nei seguenti comandi viene utilizzato il cmdlet
    New-PSSessionOption per creare un oggetto opzione di sessione con
    un valore OperationTimeout pari a 4 minuti (in ms) e successivamente
    tale oggetto viene utilizzato per creare una sessione remota.

        C:\PS> $pso = new-pssessionoption -operationtimeout 240000

        C:\PS> new-pssession -computername Server01 -sessionOption $pso

    Per ulteriori informazioni sui timeout di WS-Management, vedere
    l'argomento della Guida relativo al provider di WS-Management
    (digitare "get-help WSMan").

    Per ulteriori informazioni sul cmdlet New-PSSsessionOption, vedere
    New-PSSessionOption.

 RISOLUZIONE DEI PROBLEMI IN CASO DI MANCATA RISPOSTA

 In questa sezione vengono illustrati problemi di comunicazione remota
 che impediscono il completamento di un comando e impediscono o
 ritardano la visualizzazione del prompt di Windows PowerShell.

    MODALITÀ DI INTERRUZIONE DI UN COMANDO
    --------------------------
    Alcuni programmi nativi di Windows, ad esempio i programmi con
    un'interfaccia utente, le applicazioni console che richiedono
    input e le applicazioni console che utilizzano l'API della
    console Win32, non funzionano correttamente nell'host remoto di
    Windows PowerShell.

    Quando si utilizzano questi programmi, è possibile rilevare un
    comportamento imprevisto, come assenza di output, output
    parziale o il mancato completamento di un comando remoto.

    Per terminare un programma che non risponde, digitare CTRL + C.
    Per visualizzare gli eventuali errori segnalati, digitare
    "$error" nell'host locale e nella sessione remota.

VEDERE ANCHE
    Versione online: http://go.microsoft.com/fwlink/?LinkID=135188
    about_remote
    about_remote_requirements


about_Requires

ARGOMENTO
    about_Requires

DESCRIZIONE BREVE
    Impedisce l'esecuzione di uno script richiedendo gli snap-in e la
    versione specificati.

DESCRIZIONE DETTAGLIATA
    L'istruzione #Requires impedisce l'esecuzione di uno script se
    non sono soddisfatti i prerequisiti di versione di Windows
    PowerShell , snap-in e versione snap-in. Se i prerequisiti non sono
    soddisfatti, lo script non viene eseguito.

    È possibile utilizzare le istruzioni #Requires in qualsiasi
    script. Non è possibile utilizzare in funzioni, cmdlet o snap-in.

  Sintassi

      Utilizzare la sintassi seguente per specificare lo snap-in e la
      versione dello snap-in che si desidera richiedere:

          #requires -PsSnapIn <PsSnapIn> [-Version <N>[.<n>]]

      Utilizzare la sintassi seguente per specificare la versione
      minima di Windows PowerShell che si desidera richiedere:

          #requires -Version <N>[.<n>]

      Utilizzare la sintassi seguente per specificare la shell che si
      desidera richiedere:

          #requires -ShellId <ShellId>

  Regole per l'utilizzo

      - L'istruzione #Requires deve essere il primo elemento di una
        riga di uno script.

      - Uno script può includere più istruzioni Requires.

      - Le istruzioni #Requires possono essere riportate in qualsiasi
        riga di uno script.

  Esempi

      L'istruzione seguente richiede lo snap-in Microsoft.PowerShell.S
      ecurity:

          #requires -PsSnapIn Microsoft.PowerShell.Security

      Se lo snap-in Microsoft.PowerShell.Security non è caricato, lo
      script non viene eseguito e in Windows PowerShell viene
      visualizzato il seguente messaggio di errore:

          "Impossibile eseguire lo script '<nome-script>' perché i
          seguenti snap-in specificati dalle istruzioni
          "#requires" dello script risultano mancanti:
          Microsoft.PowerShell.Security."

      L'istruzione seguente richiede la versione di Windows
      PowerShell 2.0 o qualsiasi versione successiva dello snap-in
      Microsoft.PowerShell.Security:

          #requires -PsSnapIn Microsoft.PowerShell.Security -Version 2

      L'istruzione seguente richiede Windows PowerShell 2.0 o una versione
      successiva:

          #requires -Version 2.0

      Il seguente script presenta due istruzioni #Requires. È
      necessario che siano soddisfatti i requisiti specificati in
      entrambe le istruzioni. In caso contrario, lo script non verrà
      eseguito. Ogni istruzione #Requires deve essere il primo
      elemento in una riga:

          #requires -PsSnapIn Microsoft.PowerShell.Security -Version 2 Get-
          WMIObject WIN32_LogicalDisk | out-file K:\status\DiskStatus.txt
          #requires -Version 2

      L'istruzione #Requires seguente impedisce l'esecuzione di uno
      script se l'ID shell specificato non corrisponde all'ID shell
      corrente. L'ID shell corrente è archiviato nella variabile $ShellId:

          #requires -ShellId MyLocalShell

VEDERE ANCHE
    about_Automatic_Variables
    about_Language_Keywords
    about_PSSnapins
    get-PSSnapin


about_Reserved_Words

ARGOMENTO
    about_Reserved_Words

DESCRIZIONE BREVE
    Elenca le parole riservate che non possono essere utilizzate come
    identificatori poiché hanno un significato speciale in Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    Alcune parole hanno un significato speciale in Windows
    PowerShell. Se tali parole non sono riportate tra virgolette, Windows
    PowerShell tenta di utilizzare il loro significato speciale anziché
    trattarle come stringhe di caratteri. Per utilizzare queste parole come
    argomenti di parametri in un comando o in uno script senza richiamarne
    il significato speciale, occorre racchiuderle tra virgolette.

    Le parole seguenti sono parole riservate in Windows PowerShell:

        Break
        Continue
        Do
        Else
        Elseif
        Filter
        For
        Foreach
        Function
        If
        In
        Local
        Private
        Return
        Switch
        Until
        Where
        While

    Per informazioni sulle istruzioni del linguaggio, quali Foreach,
    If, For e While, digitare "get-help", digitare il prefisso
    "about_" e quindi digitare il nome dell'istruzione. Ad esempio,
    per ottenere informazioni sull'istruzione Foreach, digitare:

    get-help about_foreach

    Per informazioni sulla sintassi dell'istruzione Filter o
    dell'istruzione Return, digitare:

        get-help about_functions

VEDERE ANCHE
    about_Command_Syntax
    about_Escape_Characters
    about_Language_Keywords
    about_Parsing
    about_Quoting_Rules
    about_Script_Blocks
    about_Special_Characters


about_Return

ARGOMENTO
    about_Return

DESCRIZIONE BREVE
    Consente di uscire dall'ambito corrente che può essere una
    funzione, uno script o un blocco di script.

DESCRIZIONE DETTAGLIATA
    La parola chiave Return consente di uscire da una funzione, da
    uno script o da un blocco di script. Può essere utilizzata per
    uscire da un ambito in un punto specifico, per restituire un
    valore o per indicare che è stata raggiunta la fine di un ambito.

    Gli utenti che hanno familiarità con linguaggi come C o C# possono
    utilizzare la parola chiave Return per rendere esplicita la logica di
    uscita da un ambito.

    In Windows PowerShell, i risultati di ogni istruzione vengono
    restituiti come output, anche senza un'istruzione che contiene la
    parola chiave Return. In linguaggi come C o C# vengono restituiti
    solo il valore o i valori specificati dalla parola chiave Return.

  Sintassi

      La sintassi della parola chiave Return è la seguente:

          return [<espressione>]

      La parola chiave Return può essere riportata da sola oppure
      seguita da un valore o espressione, come illustrato di seguito:

          return
          return $a
          return (2 + $a)

  Esempi

      Nell'esempio seguente viene utilizzata la parola chiave Return
      per uscire da una funzione a un punto specifico se viene
      soddisfatto un requisito condizionale:

          function ScreenPassword($instance)
          {
              if (!($instance.screensaversecure)) {return $instance.name}
              <istruzioni aggiuntive>
          }

          foreach ($a in @(get-wmiobject win32_desktop)) {
          ScreenPassword($a) }

      Questo script controlla ogni account utente. La funzione
      ScreenPassword restituisce il nome di qualsiasi account utente
      che non dispone di uno screen saver protetto da password. Se lo
      screen saver è protetto da password, la funzione completa
      qualsiasi altra istruzione da eseguire e Windows PowerShell non
      restituisce alcun valore.

      In Windows PowerShell, è possibile restituire valori anche se non è
      utilizzata la parola chiave Return. Vengono restituiti i risultati di ogni
      istruzione. Ad esempio, le istruzioni seguenti restituiscono il
      valore della variabile $a:

          $a
          return

      L'istruzione seguente restituisce inoltre il valore di $a:

          return $a

      L'esempio seguente include un'istruzione che ha lo scopo di
      informare l'utente che la funzione sta eseguendo un calcolo:

          function calculation {
              param ($value)

              "Attendere. Calcolo in corso..." $value += 73
              return $value
              }

      L'esecuzione di questa funzione e l'assegnazione del risultato a una
      variabile hanno l'effetto seguente:

          C:\PS> $a = calculation 14
          C:\PS>

      La stringa "Attendere. Calcolo in corso..." non viene
      visualizzata. Viene, viceversa, assegnata alla variabile $a, come
      nell'esempio seguente:

          C:\PS> $a
          Attendere. Calcolo in corso...
          87

      Sia la stringa informativa che il risultato del calcolo vengono
      restituiti dalla funzione e assegnati alla variabile $a.

VEDERE ANCHE
    about_Functions
    about_Scopes
    about_Script_Blocks


about_Scopes

ARGOMENTO
    about_Scopes

DESCRIZIONE BREVE
    Illustra il concetto di ambito in Windows PowerShell e come
    impostare e modificare l'ambito di elementi.

DESCRIZIONE DETTAGLIATA
    In Windows PowerShell viene protetto l'accesso a variabili,
    alias, funzioni e unità di Windows PowerShell (PSDrives) limitando le
    posizioni da cui è possibile leggere e modificare tali elementi. Mediante
    l'applicazione di alcune regole semplici per l'ambito, Windows PowerShell
    consente di assicurarsi che non venga modificato inavvertitamente un
    elemento da non modificare.

    Le regole di base dell'ambito sono le seguenti:

        - Un elemento incluso in un ambito è visibile nell'ambito nel
          quale è stato creato e negli eventuali ambiti figlio, a
          meno che non lo si renda privato in modo esplicito. È possibile
          collocare variabili, alias, funzioni o unità di Windows PowerShell in
          uno o più ambiti.

        - Un elemento creato in un ambito può essere modificato solo
          in tale ambito, a meno che non lo si renda privato in modo
          esplicito.

    Se si crea un elemento in un ambito e tale elemento condivide il
    nome con un elemento in un altro ambito, l'elemento originale potrebbe
    venire nascosto nel nuovo elemento. L'elemento tuttavia non viene
    sostituito né modificato.

  Ambiti di Windows PowerShell

    Gli ambiti in Windows PowerShell hanno sia nomi che numeri.
    Gli ambiti denominati specificano un ambito assoluto. I numeri sono
    relativi e riflettono la relazione tra gli ambiti.

    Globale:
        È l'ambito attivo all'avvio di Windows PowerShell. Le
        variabili e le funzioni presenti all'avvio di Windows
        PowerShell sono state create nell'ambito globale. Include
        variabili automatiche e variabili di preferenza. Include
        inoltre le variabili, gli alias e le funzioni presenti nei
        profili di Windows PowerShell.

    Locale:
        È l'ambito corrente. L'ambito locale può essere l'ambito globale o
        qualsiasi altro ambito.

    Script:
        È l'ambito creato durante l'esecuzione di un file di script.
        Solo i comandi nello script vengono eseguiti nell'ambito di
        script. Per i comandi di uno script, l'ambito di script è l'ambito
        locale.

    Privato:
        Gli elementi nell'ambito privato non possono essere visualizzati
        all'esterno dell'ambito corrente. È possibile utilizzare l'ambito
        privato per creare una versione privata di un elemento con lo stesso
        nome in un altro ambito.

    Ambiti numerati:
        È possibile fare riferimento agli ambiti in base al nome o a
        un numero che ne descrive la posizione relativa rispetto a un
        altro ambito.
        L'ambito 0 rappresenta l'ambito corrente o locale. L'ambito 1
        indica l'ambito padre immediato. L'ambito 2 indica l'ambito padre
        dell'ambito padre e così via. Gli ambiti numerati sono utili se sono
        stati creati molti ambiti ricorsivi.

 Ambiti padre e figlio

    È possibile creare un nuovo ambito eseguendo uno script o una
    funzione, creando una sessione o avviando una nuova istanza di Windows
    PowerShell. Quando si crea un nuovo ambito, il risultato è un ambito padre
    (ambito originale) e un ambito figlio (ambito creato).

    In Windows PowerShell tutti gli ambiti sono ambiti figlio dell'ambito
    globale, ma è possibile creare molti ambiti e ambiti ricorsivi.

    A meno che non vengano resi privati in modo esplicito, gli elementi
    nell'ambito padre sono disponibili all'ambito figlio. Tuttavia, gli
    elementi creati e modificati nell'ambito figlio non hanno effetto
    sull'ambito padre, a meno che l'ambito non venga specificato in modo
    esplicito quando si creano gli elementi.

 Ereditarietà

    Un ambito figlio non eredita variabili, alias e funzioni
    dall'ambito padre. A meno che un elemento non sia privato, dall'ambito
    figlio è possibile visualizzare gli elementi nell'ambito padre. È inoltre
    possibile modificare gli elementi specificando in modo esplicito
    l'ambito padre, ma gli elementi non fanno parte dell'ambito figlio.

    Tuttavia, un ambito figlio viene creato con un set di elementi.
    In genere, include tutti gli alias che dispongono dell'opzione
    AllScope, che viene presentata più avanti in questo argomento.
    Include tutte le variabili che dispongono dell'opzione AllScope,
    oltre ad alcune variabili che è possibile utilizzare per
    personalizzare l'ambito, ad esempio MaximumFunctionCount.

    Per trovare gli elementi in un determinato ambito, utilizzare il
    parametro Scope di Get-Variable o Get-Alias.

    Ad esempio per ottenere tutte le variabili nell'ambito locale,
    digitare:

    get-variable -scope local

    Per ottenere tutte le variabili nell'ambito globale, digitare:

    get-variable -scope global

 Modificatori di ambito

    Per specificare l'ambito di una nuova variabile, un nuovo alias o
    una nuova funzione, utilizzare un modificatore di ambito. I
    valori validi di un modificatore sono Global e Script.

    La sintassi per un modificatore di ambito in una variabile è la
    seguente:

        $[<modificatore-ambito>]:<nome> = <valore>

    La sintassi per un modificatore di ambito in una funzione è la
    seguente:

        function [<modificatore-ambito>]:<nome> {<corpo-funzione>}

    L'ambito predefinito per gli script è l'ambito di script. L'ambito
    predefinito per funzioni e alias è l'ambito locale, anche se sono
    definiti in uno script.

    Con il comando seguente, in cui non viene utilizzato un
    modificatore di ambito, viene creata una variabile nell'ambito
    corrente o locale:

       $a = "one"

    Per creare la stessa variabile nell'ambito globale, utilizzare il
    modificatore di ambito Global:

       $global:a = "one"

    Per creare la stessa variabile nell'ambito di script, utilizzare il
    modificatore di ambito Script:

       $script:a = "one"

    È inoltre possibile utilizzare un modificatore di ambito nelle
    funzioni. Nella definizione di funzione seguente viene creata una
    funzione nell'ambito globale:

       function global:Hello
       {
        write-host "Hello, World"
       }

    È inoltre possibile utilizzare modificatori di ambito per fare
    riferimento a una variabile in un ambito diverso. Il comando
    seguente fa riferimento alla variabile $test, prima nell'ambito
    locale, quindi nell'ambito globale:

      $test

      $global:test

 Opzione AllScope

    Variabili e alias dispongono di una proprietà Option che può
    accettare un valore AllScope. Gli elementi che dispongono della
    proprietà AllScope diventano parte di qualsiasi ambito figlio
    creato, anche se non vengono ereditati retroattivamente da ambiti
    padre.

    Un elemento che dispone della proprietà AllScope è visibile
    nell'ambito figlio e fa parte di tale ambito. Le modifiche apportate
    all'elemento in qualsiasi ambito hanno effetto su tutti gli ambiti in
    cui viene definita la variabile.

 Gestione dell'ambito

    Diversi cmdlet dispongono di un parametro Scope che consente di
    ottenere o impostare (creare e modificare) elementi in un
    determinato ambito. Utilizzare il comando seguente per trovare tutti i
    cmdlet nella sessione che dispongono di un parametro Scope:

         get-help * -parameter scope

    Per trovare le variabili visibili in un determinato ambito,
    utilizzare il parametro Scope di Get-Variable. I parametri visibili
    includono parametri globali, nell'ambito padre e nell'ambito corrente.

    Ad esempio, con il comando seguente si ottengono le variabili visibili
    nell'ambito locale:

        get-variable -scope local

    Per creare una variabile in un determinato ambito, utilizzare un
    modificatore di ambito o il parametro Scope di Set-Variable. Con il
    comando seguente viene creata una variabile nell'ambito globale:

    new-variable -scope global -name a -value "One"

    È inoltre possibile utilizzare il parametro Scope del cmdlet
    New-Alias, Set-Alias o Get-Alias per specificare l'ambito. Con il
    comando seguente viene creato un alias nell'ambito globale:

    new-alias -scope global -name np -value Notepad.exe

    Per ottenere le funzioni in un determinato ambito, utilizzare il
    cmdlet Get-Item dall'interno dell'ambito. Il cmdlet Get-Item non
    dispone di un parametro Scope.

 Utilizzo della notazione dot source con l'ambito

    Script e funzioni si attengono a tutte le regole dell'ambito. Questi
    elementi vengono creati in un determinato ambito e hanno effetto solo
    su tale ambito a meno che non si utilizzi un parametro di cmdlet o un
    modificatore di ambito per modificare l'ambito.

    È tuttavia possibile aggiungere uno script o una funzione all'ambito
    corrente tramite la notazione dot source. In questo modo, quando si
    esegue uno script nell'ambito corrente, qualsiasi funzione, alias o
    variabile creata dallo script è disponibile nell'ambito corrente.

    Per aggiungere una funzione all'ambito corrente, digitare un
    punto (.) e uno spazio prima del percorso e del nome della
    funzione nella chiamata di funzione.

    Ad esempio per eseguire lo script Sample.ps1 dalla directory
    C:\Scripts nell'ambito di script (impostazione predefinita per
    gli script), utilizzare il comando seguente:

        c:\scripts\sample.ps1

    Per eseguire lo script Sample.ps1 nell'ambito locale, utilizzare
    il comando seguente:

        . c:\scripts.sample.ps1

    Quando si utilizza l'operatore di chiamata (&) per eseguire una
    funzione o uno script, esso non viene aggiunto all'ambito corrente.
    Nell'esempio seguente viene utilizzato l'operatore di chiamata:

        & c:\scripts.sample.ps1

    Qualsiasi alias, funzione o variabile creata dallo script
    Sample.ps1 non è disponibile nell'ambito corrente.

 Limitazione senza ambito

    Alcuni concetti di Windows PowerShell sono simili all'ambito o
    interagiscono con esso. È possibile che tali concetti vengano
    confusi con l'ambito o con il suo comportamento.

    Sessioni, moduli e prompt nidificati sono ambienti autosufficienti,
    ma non sono ambiti figlio dell'ambito globale della sessione.

    Sessioni:
        Una sessione è un ambiente in cui viene eseguito Windows
        PowerShell.
        Quando si crea una sessione in un computer remoto, Windows
        PowerShell stabilisce una connessione permanente al computer
        remoto. La connessione permanente consente di utilizzare la
        sessione per più comandi correlati.

        Poiché una sessione è un ambiente autosufficiente, dispone
        del proprio ambito. Una sessione non è tuttavia un ambito
        figlio della sessione in cui è stata creata. La sessione si
        avvia con il proprio ambito globale. Questo ambito è indipendente
        dall'ambito globale della sessione.
        È possibile creare ambiti figlio nella sessione. Ad esempio è
        possibile eseguire uno script per creare un ambito figlio in una
        sessione.

    Moduli:
        È possibile utilizzare un modulo di Windows PowerShell per
        condividere e recapitare strumenti di Windows PowerShell. Un
        modulo è un'unità che può contenere cmdlet, script, funzioni,
        variabili, alias e altri elementi utili. A meno che non siano
        definiti in modo esplicito, gli elementi in un modulo non sono
        accessibili all'esterno del modulo. Pertanto, è possibile aggiungere
        il modulo alla sessione e utilizzare gli elementi pubblici senza
        preoccuparsi che gli altri elementi possano sostituire cmdlet,
        script, funzioni e altri elementi nella sessione.

        La privacy di un modulo ha un comportamento analogo all'ambito, ma
        l'aggiunta di un modulo a una sessione non modifica l'ambito. Il
        modulo inoltre non dispone di un proprio ambito, anche se gli script
        nel modulo, come tutti gli script di Windows PowerShell, hanno un
        proprio ambito.

    Prompt nidificati:
        Analogamente, i prompt nidificati non dispongono di un
        proprio ambito. Con l'accesso a un prompt nidificato si
        accede a un sottoinsieme dell'ambiente, ma si rimane all'interno
        dell'ambito locale.

        Gli script dispongono di un proprio ambito. Se si esegue il
        debug di uno script e si raggiunge un punto di interruzione
        nello script, si entra nell'ambito di script.

    Opzione Private:
        Alias e variabili dispongono di una proprietà Option che può
        accettare un valore Private. Gli elementi che dispongono
        dell'opzione Private possono essere visualizzati e modificati
        nell'ambito in cui vengono creati, ma non all'esterno di tale ambito.

        Ad esempio, se si crea una variabile che dispone di
        un'opzione Private nell'ambito globale, quindi si esegue uno
        script, con i comandi Get-Variable dello script non viene
        visualizzata la variabile privata. Questa situazione si
        verifica anche se si utilizza il modificatore di ambito globale.

        È possibile utilizzare il parametro Option dei cmdlet
        New-Variable, Set-Variable, New-Alias e Set-Alias per impostare il
        valore della proprietà Option su Private.

    Visibility:
        La proprietà Visibility di una variabile o un alias determina se è
        possibile vedere l'elemento al di fuori del contenitore, ad esempio
        un modulo, nel quale è stato creato. La proprietà Visibility è
        progettata per i contenitori, così come il valore Private della
        proprietà Option è progettato per gli ambiti.

        La proprietà Visibility accetta i valori Public e Private.
        Gli elementi che dispongono di visibilità privata possono essere
        visualizzati e modificati solo nel contenitore in cui sono stati
        creati. Se il contenitore viene aggiunto o importato, gli elementi
        che dispongono di visibilità privata non possono essere visualizzati
        né modificati.

        Poiché la proprietà Visibility è progettata per i
        contenitori, funziona in modo diverso in un ambito. Se si crea un
        elemento che dispone di visibilità privata nell'ambito globale, non è
        possibile visualizzare né modificare l'elemento in qualsiasi ambito.
        Se si tenta di visualizzare o modificare il valore di una variabile
        che dispone di visibilità privata, in Windows PowerShell viene
        restituito un messaggio di errore.

        È possibile utilizzare i cmdlet New-Variable e Set-Variable
        per creare una variabile con visibilità privata.

ESEMPI

  Esempio 1: modificare un valore di variabile solo in uno script

      Con il comando seguente il valore della variabile
      $ConfirmPreference viene modificato in uno script. La modifica
      non ha effetto sull'ambito globale.

      Innanzitutto, per visualizzare il valore della variabile
      $ConfirmPreference nell'ambito locale, utilizzare il comando seguente:

          C:\PS> $ConfirmPreference
          High

      Creare uno script Scope.ps1 che contiene i comandi seguenti:

          $ConfirmPreference = "Low"
          "Il valore di `$ConfirmPreference è $ConfirmPreference."

      Eseguire lo script. Con lo script viene modificato il valore della
      variabile $ConfirmPreference, quindi tale valore viene riportato
      nell'ambito di script. L'output deve essere simile al seguente:

          Il valore di $ConfirmPreference è Low.

      Successivamente, verificare il valore corrente della variabile
      $ConfirmPreference nell'ambito corrente.

          C:\PS> $ConfirmPreference
          High

      In questo esempio viene illustrato che le modifiche apportate
      al valore di una variabile nell'ambito dello script non hanno
      effetto sul valore di tale variabile nell'ambito padre.

  Esempio 2: visualizzare un valore di variabile in ambiti diversi
      È possibile utilizzare i modificatori di ambito per
      visualizzare il valore di una variabile nell'ambito locale e in
      un ambito padre.

      Innanzitutto, definire una variabile $test nell'ambito globale.

      $test = "Global"

      Successivamente, creare uno script Sample.ps1 che definisce la
      variabile $test. Nello script utilizzare un modificatore di
      ambito per fare riferimento alla versione globale o locale
      della variabile $test.

          # In Sample.ps1

          $test = "Local"
          "Il valore locale di `$test è $test. "Il valore globale di
          `$test è $global:test."

      Quando si esegue Sample.ps1, l'output deve essere simile al
      seguente:

          Il valore locale di $test è Local.
          Il valore globale di $test è Global.

      Al termine dello script, solo il valore globale di $test viene
      definito nella sessione.

          C:\PS> $test
          Global

  Esempio 3: modificare il valore di una variabile in un ambito padre

      A meno che non si protegga un elemento tramite l'opzione
      Private o un altro metodo, è possibile visualizzare e
      modificare il valore di una variabile in un ambito padre.

      Innanzitutto, definire una variabile $test nell'ambito globale.

      $test = "Global"

      Successivamente, creare uno script Sample.ps1 che definisce la
      variabile $test. Nello script utilizzare un modificatore di
      ambito per fare riferimento alla versione globale o locale
      della variabile $test.

          # In Sample.ps1

          $global:test = "Local"
          "Il valore globale di `$test è $global:test."

      Al termine dello script, il valore globale di $test è cambiato.

          C:\PS> $test
          Local

  Esempio 4: creare una variabile privata

      Una variabile privata è una variabile che dispone di una
      proprietà Option con valore Private. Le variabili private vengono
      ereditate dall'ambito figlio, ma possono essere visualizzate o
      modificate solo nell'ambito in cui sono state create.

      Con il comando seguente viene creata una variabile privata
      denominata $ptest nell'ambito locale.

      new-variable -name ptest -value 1 -option private

      È possibile visualizzare e modificare il valore di $ptest
      nell'ambito locale.

      C:\PS> $ptest
          1
          C:\PS> $ptest = 2
          C:\PS> $ptest
      2

      Successivamente, creare uno script Sample.ps1 che contiene i comandi
      seguenti.
      Il comando tenta di visualizzare e modificare il valore di $ptest.

          # In Sample.ps1

          "Il valore di `$Ptest è $Ptest."
            "Il valore di `$Ptest è $global:Ptest."

      Poiché la variabile $ptest non è visibile nell'ambito di
      script, l'output è vuoto.

          "Il valore di $Ptest è ."
            "Il valore di $Ptest è ."

VEDERE ANCHE
    about_Variables
    about_Environment_Variables
    about_Functions
    about_Script_Blocks


about_Script_Blocks

ARGOMENTO
    about_Script_Blocks

DESCRIZIONE BREVE
    Definisce un blocco di script e illustra come utilizzare i
    blocchi di script nel linguaggio di programmazione di Windows
    PowerShell.

DESCRIZIONE DETTAGLIATA
    Nel linguaggio di programmazione di Windows PowerShell, un blocco
    di script è un insieme di istruzioni o espressioni che possono essere
    utilizzate come singola unità. Un blocco di script può accettare
    argomenti e valori restituiti.

    Sintatticamente, un blocco di script è un elenco di istruzioni
    racchiuse tra parentesi graffe, come mostrato nella sintassi seguente:

        {<elenco istruzioni>}

    Un blocco di script restituisce l'output di tutti i comandi nel
    blocco di script, come un solo oggetto o come una matrice.

    Come le funzioni, un blocco di script può includere parametri.
    Utilizzare la parola chiave Param per assegnare parametri
    denominati, come mostrato nella sintassi seguente:

        {
            param ([type]$parameter1 [,[type]$parameter2])
            <elenco istruzioni>
        }

    A differenza di una funzione, in un blocco di script non è possibile
    specificare parametri fuori dalle parentesi graffe.

    Come le funzioni, i blocchi di script possono includere le parole
    chiave DynamicParam, Begin, Process ed End. Per ulteriori
    informazioni, vedere about_Functions e about_Functions_Advanced.

  Utilizzo dei blocchi di script

      Un blocco di script è un'istanza di un tipo Microsoft .NET Framework
      (System.Management.Automation.ScriptBlock). I comandi possono avere
      valori di parametri dei blocchi di script. Ad esempio, il cmdlet
      Invoke-Command dispone di un parametro ScriptBlock che accetta un
      valore del blocco di script, come mostrato in questo esempio:

          C:\PS> invoke-command -scriptblock { get-process }
          Handles  NPM(K)    PM(K)     WS(K) VM(M)   CPU(s)     Id  ProcessName
          -------  ------    -----     ----- -----   ------     --  -----------
              999      28    39100     45020   262    15.88   1844  communicator

              721      28    32696     36536   222    20.84   4028  explorer

          . . .

      Il blocco di script utilizzato come valore può essere più
      complesso, come mostrato nell'esempio seguente:

          C:\PS> invoke-command -scriptblock { param ($uu = "Parametro");
              "$uu assegnato." }
          Parametro assegnato.

      Il blocco di script block nell'esempio precedente utilizza la parola
      chiave Param per creare un parametro con un valore predefinito.
      Nell'esempio seguente viene utilizzato il parametro Args del cmdlet
      Invoke-Command per assegnare un valore diverso al parametro:

          C:\PS> invoke-command -scriptblock {param ($uu = "Parametro");
              "$uu assegnato."} -args "Altro valore" Altro valore
              assegnato.

      È possibile assegnare un blocco di script a una variabile, come
      mostrato nell'esempio seguente:

          C:\PS> $a = {param ($uu = "Parametro"); "$uu assegnato."}

      È possibile utilizzare la variabile con un cmdlet quale
      Invoke-Command, come mostrato nell'esempio seguente:

          C:\PS> invoke-command -scriptblock $a -args "Altro valore"
          Altro valore assegnato.

      È possibile eseguire un blocco di script assegnato a una
      variabile tramite l'operatore di chiamata (&), come mostrato
      nell'esempio seguente:

          C:\PS> &$a
          Parametro assegnato.

      È anche possibile fornire un parametro al blocco di script,
      come mostrato nell'esempio seguente:

          C:\PS> &$a "Altro valore"
          Altro valore assegnato.

      Se si desidera assegnare il valore creato da un blocco di
      script a una variabile, utilizzare l'operatore di chiamata per
      eseguire direttamente il blocco di script, come mostrato
      nell'esempio seguente:

          C:\PS> $a = &{param ($uu = "Parametro"); "$uu assegnato."}
          C:\PS> $a
          Parametro assegnato.

      Per ulteriori informazioni sull'operatore di chiamata, vedere
      about_Operators.

VEDERE ANCHE
    about_Functions
    about_Functions_Advanced
    about_Operators


about_Script_Internationalization

ARGOMENTO
    about_Script_Internationalization

DESCRIZIONE BREVE
    Descrive le funzionalità di internazionalizzazione degli script
    di Windows PowerShell 2.0 che consentono agevolmente agli script
    di visualizzare messaggi per gli utenti nella lingua
    dell'interfaccia utente.

DESCRIZIONE DETTAGLIATA
    Le funzionalità di internazionalizzazione degli script di Windows
    PowerShell consentono di offrire un servizio migliore agli utenti
    di tutto il mondo mediante la visualizzazione della Guida e dei
    messaggi utente per script e funzioni nella lingua dell'interfacci
    a utente.

    Le funzionalità di internazionalizzazione eseguono una query
    sulla cultura dell'interfaccia utente del sistema operativo
    durante l'esecuzione, importano le stringhe di testo tradotte
    appropriate e le mostrano all'utente. Nella sezione Data è
    possibile archiviare stringhe di testo separate dal codice per
    poterle identificare ed estrarre con facilità. Un nuovo cmdlet,
    ConvertFrom-StringData, converte le stringhe di testo in tabelle
    hash di tipo dizionario per facilitare la traduzione.

    Le funzionalità di Windows PowerShell 2.0 utilizzate
    nell'internazionalizzazione degli script non sono supportate da
    Windows PowerShell 1.0. Gli script che includono queste
    funzionalità non verranno eseguiti in Windows PowerShell 1.0
    senza modifiche.

    Per supportare il testo della Guida internazionale, Windows
    PowerShell 2.0 include le funzionalità seguenti:

       -- Una sezione Data che separa le stringhe di testo dalle
          istruzioni di codice. Per ulteriori informazioni sulla
          sezione Data, vedere about_Data_Sections.

       -- Nuove variabili automatiche, $PSCulture e $PSUICulture.
          $PSCulture archivia il nome della lingua dell'interfaccia
          utente nel sistema per elementi quali data, ora e valuta.
          La variabile $PSUICulture archivia il nome della lingua
          dell'interfaccia utente nel sistema per elementi
          dell'interfaccia utente quali menu e stringhe di testo.

       -- Un cmdlet, ConvertFrom-StringData, converte le stringhe di
          testo in tabelle hash di tipo dizionario per facilitare la
          traduzione. Per ulteriori informazioni, vedere
          ConvertFrom-StringData.

       -- Un nuovo tipo di file, .psd1, archivia le stringhe di testo
          tradotte. I file .psd1 vengono archiviati in sottodirectory
          specifiche della lingua della directory di script.

       -- Un cmdlet, Import-LocalizedData, importa le stringhe di
          testo tradotte per una lingua specifica in uno script in
          fase di esecuzione. Questo cmdlet riconosce e importa le
          stringhe in qualsiasi lingua supportata da Windows. Per
          ulteriori informazioni, vedere Import-LocalizedData.

 SEZIONE DATA: archiviazione delle stringhe predefinite

     Utilizzare una sezione Data nello script per archiviare le
     stringhe di testo nella lingua predefinita.
     Disporre le stringhe nelle coppie chiave/valore in una stringa
     here. Ogni coppia chiave/valore deve essere su una riga
     separata. Se si includono commenti, i commenti devono essere su
     righe separate.

     Il cmdlet ConvertFrom-StringData converte le coppie
     chiave/valore della stringa here in una tabella hash di tipo
     dizionario archiviata nel valore della variabile della sezione Data.

     Nell'esempio seguente, la sezione Data dello script World.ps1
     include l'insieme di messaggi prompt English-United States
     (en-US) per uno script. Il cmdlet ConvertFrom-StringData
     converte le stringhe in una tabella hash e le archivia nella
     variabile $msgtable.

    $msgTable = Data {
        # culture="en-US"
        ConvertFrom-StringData @'
        helloWorld = Hello, World.
            errorMsg1 = You cannot leave the user name field blank.
             promptMsg = Please enter your user name.
    '@
    }

     Per ulteriori informazioni sulle stringhe here, vedere about_Quoting_Rules.

 FILE PSD1: archiviazione delle stringhe tradotte

    Salvare i messaggi dello script per ogni lingua dell'interfaccia
    utente nei file di testo separati con lo stesso nome dello script e
    l'estensione .psd1. Archiviare i file in sottodirectory della
    directory di script con nomi di impostazioni cultura nel formato seguente:

    <lingua>-<paese>

    Esempi: de-DE, ar-SA e zh-Hans

    Ad esempio, se lo script World.ps1 viene archiviato nella
    directory C:\Scripts, si viene creata una struttura di directory
    analoga alla seguente:

    C:\Scripts
    C:\Scripts\World.ps1
        C:\Scripts\de-DE\World.psd1
            C:\Scripts\ar-SA\World.psd1
            C:\Scripts\zh-CN\World.psd1
        ...

    Il file World.psd1 nella sottodirectory de-DE della directory di
    script potrebbe includere l'istruzione seguente:

        ConvertFrom-StringData @'
        helloWorld = Hello, World (in tedesco).
        errorMsg1 = You cannot leave the user name field blank (in tedesco).
            promptMsg = Please enter your user name (in tedesco).
    '@

    Analogamente, il file World.psd1 nella sottodirectory ar-SA della
    directory di script potrebbe includere l'istruzione seguente:

        ConvertFrom-StringData @'
        helloWorld = Hello, World (in arabo).
        errorMsg1 = You cannot leave the user name field blank (in arabo).
            promptMsg = Please enter your user name (in arabo).
    '@

 IMPORT-LOCALIZEDDATA: Recupero dinamico delle stringhe tradotte

    Per recuperare le stringhe nella lingua dell'interfaccia utente
    dell'utente corrente, utilizzare il cmdlet Import-LocalizedData.

    Import-LocalizedData trova il valore della variabile automatica
    $PSUICulture e importa il contenuto dei file <nome-script>.psd1 della
    sottodirectory che corrisponde al valore $PSUICulture. Quindi, salva
    il contenuto importato nella variabile specificata dal valore del
    parametro BindingVariable.

    import-localizeddata -bindingVariable msgTable

    Ad esempio, se il comando Import-LocalizedData è presente nello script
    C:\Scripts\World.ps1 e il valore di $PSUICulture è "ar-SA",
    Import-LocalizedData trova il file seguente:

         C:\Scripts\ar-SA\World.psd1

    Quindi, importa le stringhe di testo arabe dal file alla
    variabile $msgTable, sostituendo qualsiasi stringa predefinita
    eventualmente definita nella sezione Data dello script World.ps1.

    Di conseguenza, quando lo script utilizza la variabile di
    $msgTable per visualizzare i messaggi utente, i messaggi vengono
    visualizzati in arabo.

    Lo script seguente, ad esempio, mostra il messaggio "Please enter
    your user name" in arabo:

    if (!($username)) { $msgTable.promptMsg }

    Se Import-LocalizedData non trova un file .psd1 corrispondente al
    valore di $PSUIculture, il valore di $msgTable non viene
    sostituito e la chiamata a $msgTable.promptMsg visualizza le
    stringhe en-US di fallback.

 ESEMPIO

    In questo esempio viene illustrato come vengono utilizzate le
    funzionalità di internazionalizzazione in uno script per
    visualizzare un giorno della settimana nella lingua impostata nel
    computer.

    Di seguito è riportato un elenco completo del file di script
    Sample1.ps1.

    Lo script inizia con una sezione Data denominata Day ($Day) che
    contiene un comando ConvertFrom-StringData. L'espressione inviata
    a ConvertFrom-StringData è una stringa here che contiene i giorni
    dei nomi nella cultura dell'interfaccia utente predefinita,
    en-US, in coppie chiave/valore. Il cmdlet ConvertFrom-StringData
    converte le coppie chiave/valore della stringa here in una
    tabella hash e la salva nel valore della variabile $Day.

    Il comando Import-LocalizedData importa il contenuto del file
    .psd1 della directory che corrisponde al valore della variabile
    automatica $PSUICulture, quindi lo salva nella variabile $Day,
    sostituendo i valori di $Day definiti nella sezione Data.

    I comandi restanti caricano le stringhe in una matrice e li
    visualizzano.

         $Day = DATA {
         # culture="en-US"
         ConvertFrom-StringData @'
            messageDate = Today is
            d1 = Monday
            d2 = Tuesday
            d3 = Wednesday
            d4 = Thursday
            d5 = Friday
            d6 = Saturday
            d7 = Sunday
         '@
         }

    Import-LocalizedData -BindingVariable Day

    # Compila una matrice di giorni della settimana.
    $a = $Day.d1, $Day.d2, $Day.d3, $Day.d4, $Day.d5, $Day.d6, $Day.d7

        # Ottenere il giorno della settimana come numero (lunedì = 1).
        # Indicizzare in $a per ottenere il nome del giorno.
        # Utilizzare la formattazione stringa per compilare una frase.

        "{0} {1}" -f $Day.messageDate, $a[(get-date -uformat %u)] |
        Out-Host

    I file .psd1 che supportano lo script vengono salvati in
    sottodirectory della directory di script con nomi che
    corrispondono ai valori di $PSUICulture.

    Di seguito è riportato un elenco completo di .\de-DE\sample1.psd1:

            # culture="en-US"
        ConvertFrom-StringData @'
        messageDate = Today is
        d1 = Monday (in tedesco)
        d2 = Tuesday (in tedesco)
        d3 = Wednesday (in tedesco)
        d4 = Thursday (in tedesco)
        d5 = Friday (in tedesco)
        d6 = Saturday (in tedesco)
        d7 = Sunday (in tedesco)
        '@

    Come risultato, quando si esegue Sample.ps1 in un sistema il cui
    il valore di $PSUICulture è de-DE, l'output dello script sarà:

    Today is Friday (in tedesco)

VEDERE ANCHE
    about_Data_Sections
    about_Automatic_Variables
    about_Hash_Tables
    about_Quoting_Rules
    ConvertFrom-StringData
    Import-LocalizedData


about_Scripts

ARGOMENTO
    about_Scripts

DESCRIZIONE BREVE
    Viene illustrato come scrivere ed eseguire script in Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    Uno script è un file di testo che contiene uno o più comandi di
    Windows PowerShell. Gli script di Windows PowerShell hanno
    l'estensione .ps1.

    La scrittura di uno script consente di salvare un comando per
    l'uso successivo e di agevolarne la condivisione con altri. Fatto
    più importante, consente di eseguire i comandi semplicemente
    digitando il percorso dello script e il nome file. Gli script
    possono essere semplici come un solo comando in un file o estesi
    come un programma complesso.

    Gli script dispongono di funzionalità aggiuntive, ad esempio il
    commento speciale #Requires, l'utilizzo di parametri, il supporto
    per le sezioni di dati e la firma digitale per la protezione. È
    anche possibile scrivere argomenti della Guida per gli script e
    per qualsiasi funzione nello script.

 MODALITÀ DI SCRITTURA DI UNO SCRIPT

    Uno script può contenere qualsiasi comando di Windows PowerShell
    valido, inclusi comandi singoli, comandi che utilizzano la
    pipeline, funzioni e strutture di controllo quali istruzioni IF
    e cicli For.

    Per scrivere uno script, avviare un editor di testo, ad esempio
    Blocco note o un editor di script, quale Windows PowerShell
    Integrated Scripting Environment (ISE). Digitare i comandi e
    salvarli in un file con un nome file valido e l'estensione .ps1.

    L'esempio seguente è uno script semplice che ottiene i servizi in
    esecuzione nel sistema corrente e li salva in un file di
    registro. Il nome del file di registro viene creato dalla data
    corrente.

        $date = (get-date).dayofyear
        get-service | out-file "$date.log"

    Per creare questo script, aprire un editor di testo o un editor
    di script, digitare i comandi, quindi salvarli in un file denominato
    ServiceLog.ps1.

 MODALITÀ DI ESECUZIONE DI UNO SCRIPT

    Per poter eseguire uno script, è necessario modificare il
    criterio di esecuzione predefinito di Windows PowerShell. Il
    criterio di esecuzione predefinito "Restricted" impedisce
    l'esecuzione di tutti gli script, inclusi gli script che si
    scrivono nel computer locale. Per ulteriori informazioni, vedere
    about_Execution_Policies.

    Per eseguire uno script, digitare il nome e il percorso completi
    del file di script.

    Ad esempio, per eseguire lo script ServicesLog nella directory C:\Scripts, digitare:

        c:\scripts\ServicesLog.ps1

    Per eseguire uno script nella directory corrente, digitare il
    percorso della directory corrente oppure usare un punto per
    rappresentare la directory corrente, seguito da una barra
    rovesciata di percorso (.\).

    Ad esempio, per eseguire lo script ServicesLog.ps1 nella
    directory locale, digitare:

        .\ServicesLog.ps1

    Come una funzionalità di protezione, Windows PowerShell non
    esegue script quando si fa doppio clic sulla loro icona in
    Esplora risorse o quando si digita il loro nome senza un percorso
    completo, anche quando lo script è nella directory corrente. Per
    ulteriori informazioni sull'esecuzione di comandi e script in
    Windows PowerShell, vedere about_Command_Precedence.

 ESECUZIONE DI SCRIPT IN MODALITÀ REMOTA

    Per eseguire uno script in un computer remoto, utilizzare il
    parametro FilePath del cmdlet Invoke-Command.

    Immettere il percorso e il nome dello script come valore del parametro FilePath.
    Lo script deve trovarsi nel computer locale o in una directory
    accessibile dal computer locale.

    Il comando seguente esegue lo script ServicesLog.ps1 nel computer
    remoto Server01.

        invoke-command -computername Server01 -filepath C:\scripts\servicesLog.ps1

 PARAMETRI NEGLI SCRIPT

    Per definire i parametri in uno script, utilizzare un'istruzione
    Param. L'istruzione Param deve essere la prima istruzione in uno
    script, ad eccezione di commenti e di eventuali istruzioni #Requires.

    I parametri degli script funzionano in modo analogo ai parametri
    delle funzioni. I valori dei parametri sono disponibili a tutti i
    comandi nello script. Tutte le funzionalità dei parametri di
    funzione, incluso l'attributo Parameter e i relativi argomenti
    denominati sono validi anche negli script.

    Quando eseguono lo script, gli utenti digitano i parametri dopo
    il nome dello script.

    Nell'esempio seguente viene mostrato uno script Test-Remote.ps1
    che dispone di un parametro ComputerName. Entrambe le funzioni di
    script possono accedere al valore del parametro ComputerName.

        param ($ComputerName = $(throw "Il parametro ComputerName è
        obbligatorio."))

        function CanPing {
           $error.clear()
           $tmp = test-connection $computername -erroraction
           SilentlyContinue

           if (!$?)
               {write-host "Ping non riuscito: $ComputerName.";
               return $false} else
               {write-host "Ping riuscito: $ComputerName"; return $true} }

        function CanRemote {
            $s = new-pssession $computername -erroraction SilentlyContinue

            if ($s -is [System.Management.Automation.Runspaces.PSSession])
                {write-host "Test remoto riuscito: $ComputerName."}
            else
                {write-host "Test remoto non riuscito: $ComputerName."}
        }

        if (CanPing $computername) {CanRemote $computername}

    Per eseguire questo script, digitare il nome del parametro dopo
    il nome dello script.  Ad esempio:

    C:\PS> .\test-remote.ps1 -computername Server01

    Ping riuscito: Server01
    Test remoto non riuscito: Server01

    Per ulteriori informazioni sull'istruzione Param e sui parametri delle funzioni, vedere
    about_Functions e about_Functions_Advanced_Parameters.

 GUIDA RELATIVA AGLI SCRIPT

    Il cmdlet Get-Help ottiene la Guida relativa a script, nonché a
    cmdlet, provider e funzioni. Per ottenere la Guida per uno
    script, digitare Get-Help e percorso e nome file dello script. Se
    il percorso dello script è contenuto nella variabile di ambiente
    Path, è possibile omettere il percorso.

    Ad esempio, per ottenere la Guida per lo script ServicesLog.ps1,
    digitare:

        get-help C:\admin\scripts\ServicesLog.ps1

    È possibile scrivere la Guida per uno script mediante uno dei due
    metodi seguenti:

    --  Guida basata su commenti relativa agli script

        Creare un argomento della Guida mediante parole chiave
        speciali nei commenti. Per creare una Guida basata su commenti
        per uno script, è necessario posizionare i commenti
        all'inizio o alla fine del file di script. Per ulteriori
        informazioni sulla Guida basata su commenti, vedere
        about_Comment_Based_Help.

    --  Guida basata su XML relativa agli script

        Creare un argomento della Guida basato su XML, ad esempio il
        tipo di guida che viene in genere creato per i cmdlet. Creare
        una Guida basata su XML quando si prevede di tradurla in
        più lingue.

        Per associare lo script all'argomento della Guida basato su
        XML, utilizzare la parola chiave di commento della Guida
        .ExternalHelp. Per ulteriori informazioni sulla parola chiave
        ExternalHelp, vedere about_Comment_Based_Help. Per ulteriori
        informazioni sulla Guida basata su XML, vedere l'argomento
        relativo alla scrittura della Guida relativa ai cmdlet in MSDN Library all'indirizzo         http://go.microsoft.com/fwlink/?LinkID=123415..

 AMBITO DELLO SCRIPT E DOT SOURCING

    Ogni script viene eseguito nel proprio ambito. Funzioni,
    variabili, alias e unità create nello script sono presenti solo
    nell'ambito dello script. Non è possibile accedere a questi
    elementi o ai loro valori, nell'ambito nel quale viene eseguito
    lo script.

    Per eseguire uno script in un ambito diverso, è possibile
    specificare un ambito, ad esempio globale o locale, oppure è possibile
    eseguire il dot sourcing dello script.

    La funzionalità di dot sourcing consente di eseguire uno script
    nell'ambito corrente anziché nell'ambito dello script. Quando si
    esegue uno script sottoposto a dot sourcing, i comandi nello
    script vengono eseguiti come se fossero stati digitati nel prompt
    dei comandi. Funzioni, variabili, alias e unità vengono create
    dallo script nell'ambito in cui si lavora. Una volta eseguito lo
    script, è possibile utilizzare gli elementi creati e accedere ai
    loro valori nella sessione corrente.

    Per sottoporre a dot sourcing uno script, digitare un punto (.) e
    uno spazio prima del percorso dello script.

    Ad esempio:

        . C:\scripts\UtilityFunctions.ps1

    -oppure-

        . .\UtilityFunctions.ps1

    Dopo l'esecuzione dello script UtilityFunctions, vengono aggiunte
    all'ambito corrente le funzioni e variabili create dallo script.
    Ad esempio, lo script UtilityFunctions.ps1 crea la funzione
    New-Profile e la variabile $ProfileName.

        #In UtilityFunctions.ps1

        function New-Profile
        {
            Write-Host "Esecuzione funzione New-Profile" $profileName
            = split-path $profile -leaf

            if (test-path $profile)
               {write-error "È già presente un profilo $profileName
               in questo computer."} else
           {new-item -type file -path $profile -force } }

    Se si esegue lo script UtilityFunctions.ps1 nell'ambito relativo,
    la funzione New-Profile e la variabile $ProfileName sono presenti
    solo durante l'esecuzione dello script. Al termine dello script,
    tali funzione e variabile vengono rimosse, come mostrato
    nell'esempio seguente.

        C:\PS> .\UtilityFunctions.ps1

        C:\PS> New-Profile
        Termine 'new-profile' non riconosciuto come nome di cmdlet,
        funzione, programma eseguibile o file script. Verificare il
        termine e riprovare
        At line:1 char:12
        + new-profile <<<<
           + CategoryInfo          : ObjectNotFound: (new-profile:String) [],
           + FullyQualifiedErrorId : CommandNotFoundException

        C:\PS> $profileName
        C:\PS>

    Quando si sottopone a dot sourcing uno script e lo si esegue, lo
    script crea la funzione New-Profile e la variabile $ProfileName
    nella sessione dell'ambito corrente. Dopo che lo script viene
    eseguito, è possibile utilizzare la funzione New-Profile nella
    sessione, come mostrato nell'esempio seguente.

        C:\PS> . .\UtilityFunctions.ps1

        C:\PS> New-Profile

            Directory: C:\Users\juneb\Documents\WindowsPowerShell

            Mode    LastWriteTime     Length Name
            ----    -------------     ------ ----
            -a---   1/14/2009 3:08 PM      0 Microsoft.PowerShellISE_profile.ps1

        C:\PS> $profileName
        Microsoft.PowerShellISE_profile.ps1

    Per ulteriori informazioni sull'ambito, vedere about_Scopes.

 SCRIPT NEI MODULI

    Un modulo è un insieme di risorse di Windows PowerShell correlate
    che possono essere distribuite come un'unità. È possibile
    utilizzare i moduli per organizzare script, funzioni e altre
    risorse. È anche possibile utilizzare moduli per distribuire il
    codice ad altri e ottenere codice da fonti attendibili.

    È possibile includere script nei moduli o creare un modulo di
    script, ossia un modulo costituito completamente o principalmente
    da uno script e risorse di supporto. Un modulo di script è
    semplicemente uno script con estensione .psm1.

    Per ulteriori informazioni sui moduli, vedere about_Modules.

 ALTRE FUNZIONALITÀ DEGLI SCRIPT

    Windows PowerShell offre molte funzionalità utili che è possibile
    utilizzare negli script.

    #Requires
        È possibile utilizzare un'istruzione #Requires per impedire
        l'esecuzione di uno script senza i moduli o gli snap-in
        specificati e una versione specificata di Windows PowerShell.
        Per ulteriori informazioni, vedere about_Requires.

    $MyInvocation
        La variabile automatica $MyInvocation contiene informazioni
        sul comando corrente, incluso lo script corrente. È possibile
        utilizzare questa variabile e le proprietà relativa per
        ottenere informazioni sullo script mentre è in esecuzione. Ad
        esempio, la variabile $MyInvocation.MyCommand.Path contiene
        il percorso e il nome file dello script.

    Sezioni Data
        È possibile utilizzare la parola chiave Data per separare i
        dati dalla logica negli script.
        Le sezioni Data possono inoltre agevolare la localizzazione.
        Per ulteriori informazioni, vedere about_Data_Sections e
        about_Script_Localization.

    Firma degli script
        È possibile aggiungere una firma digitale a uno script. A
        seconda dei criteri di esecuzione, è possibile utilizzare
        firme digitali per limitare l'esecuzione di script che
        potrebbero includere comandi non sicuri. Per ulteriori
        informazioni, vedere about_Execution_Policies e about_Signing.

VEDERE ANCHE
    about_Command_Precedence
    about_Comment_Based_Help
    about_Execution_Policies
    about_Functions
    about_Modules
    about_Profiles
    about_Requires
    about_Scopes
    about_Script_Blocks
    about_Signing
    Invoke-Command


about_Session_Configurations

ARGOMENTO
    about_Session_Configurations

DESCRIZIONE BREVE
    Descrive le configurazioni di sessione che determinano gli utenti
    che possono connettersi al computer in modalità remota e i comandi che
    possono eseguire.

DESCRIZIONE DETTAGLIATA
    Una configurazione di sessione è un gruppo di impostazioni del
    computer locale che definiscono l'ambiente per le sessioni di
    Windows PowerShell create quando utenti remoti si connettono al
    computer locale.

    Gli amministratori del computer possono utilizzare le
    configurazioni di sessione per proteggere il computer e definire
    ambienti personalizzati per gli utenti che si connettono al computer.

    Gli amministratori possono anche utilizzare le configurazioni di
    sessione per determinare le autorizzazioni richieste per
    connettersi al computer in modalità remota. Per impostazione
    predefinita, solo i membri del gruppo Administrators sono
    autorizzati a utilizzare la configurazione di sessione per la
    connessione remota. Tuttavia è possibile modificare le
    impostazioni predefinite per consentire a tutti gli utenti, o a
    utenti selezionati, di connettersi al computer in modalità remota.

    Le configurazioni di sessione sono una funzionalità di
    comunicazione remota di Windows PowerShell basata su
    Gestione remota Windows (WS-Management). Vengono utilizzate solo quando si utilizzano i
    cmdlet New-PSSession, Invoke-Command o Enter-PSSession per
    connettersi a un computer remoto.

    Nota: per gestire le configurazioni di sessione in un computer
          che esegue Windows Vista, Windows Server 2008 o una versione
          successiva di Windows, avviare Windows PowerShell con l'opzione
          "Esegui come amministratore".

  Informazioni sulle configurazioni di sessione

    Ogni sessione di Windows PowerShell utilizza una configurazione
    di sessione. Questa configurazione include le sessioni permanenti
    che si creano mediante i cmdlet New-PSSession o Enter-PSSession e
    le sessioni temporanee create da Windows PowerShell quando si
    utilizza il parametro ComputerName di un cmdlet che utilizza la
    tecnologia di comunicazione remota basata su WS-Management, ad esempio
    Invoke-Command.

    Gli amministratori possono utilizzare le configurazioni di
    sessione per proteggere le risorse del computer e creare ambienti
    personalizzati per gli utenti che si connettono al computer. Ad
    esempio, è possibile utilizzare una configurazione di sessione
    per limitare le dimensioni degli oggetti che il computer riceve
    nella sessione, per definire la modalità linguaggio della
    sessione e specificare cmdlet, provider e funzioni disponibili
    nella sessione.

    Configurando il descrittore di protezione di una sessione di
    configurazione, si termina chi può utilizzare la configurazione
    di sessione per connettersi al computer. Gli utenti devono disporre
    dell'autorizzazione Execute per una sessione di configurazione per
    utilizzarla in una sessione.

    Se un utente non dispone delle autorizzazioni necessarie per
    utilizzare una qualsiasi delle configurazioni di sessione in un
    computer, non può connettersi in modalità remota al computer.
    Per impostazione predefinita, solo gli amministratori di un
    gruppo sono autorizzati a utilizzare le configurazioni di
    sessione predefinite, ma è possibile modificare i descrittori di
    sicurezza per consentire a chiunque, a nessuno o solo agli utenti
    selezionati di utilizzare le configurazioni di sessione nel computer.

 Configurazioni di sessione predefinite.

    Windows PowerShell include una configurazione di sessione
    predefinita denominata Microsoft.PowerShell. Nei computer che
    eseguono versioni a 64 bit di Windows, Windows PowerShell
    fornisce anche Microsoft.PowerShell32, una configurazione di
    sessione a 32 bit.

    Queste configurazioni di sessione vengono utilizzate per le
    sessioni predefinite, ossia quando un comando di creazione di una
    sessione non include il parametro ConfigurationName dei cmdlet
    New-PSSession, Enter-PSSession o Invoke-Command.

    I descrittori di sicurezza per le configurazioni di sessione
    predefinite consentono solo ai membri del gruppo Administrators
    dei computer locale di utilizzarle. Pertanto, solo i membri del
    gruppo Administrators possono connettersi al computer in modalità
    remota a meno che non si modifichino le impostazioni predefinite.

    È possibile modificare le configurazioni di sessione predefinite
    utilizzando la variabile di preferenza $PSSessionConfigurationName.
    Per ulteriori informazioni, vedere about_Preference_Variables.

 Visualizzazione delle configurazioni di sessione nel computer locale

    Per ottenere le configurazioni di sessione nel computer locale,
    utilizzare il cmdlet Get-PSSessionConfiguration.

    Ad esempio, digitare:

        C:\PS> get-pssessionconfiguration | format-list -property
        name, permission

        Name       : microsoft.powershell
        Permission : BUILTIN\Administrators AccessAllowed

        Name       : microsoft.powershell32
        Permission : BUILTIN\Administrators AccessAllowed

    È anche possibile utilizzare il provider di Gestione remota
    Windows (WS-Management) in Windows PowerShell per visualizzare le
    configurazioni di sessione. Il provider di Gestione remota
    Windows (WS-Management) crea un'unità WSMAN: nella sessione.

    Nell'unità WSMAN:, le configurazioni di sessione si trovano nel
    nodo Plugin (tutte le configurazioni di sessione si trovano nel
    nodo Plugin ma sono presenti elementi nel nodo Plugin che non
    sono configurazioni di sessione).

    Ad esempio, per visualizzare le configurazioni di sessione nel
    computer locale, digitare:

         C:\PS> dir wsman:\localhost\plugin\microsoft*

                    WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin

         Name                      Type                 Keys
         ----                      ----                 ----
         microsoft.powershell      Container            {Name=microsoft.powershell}
         microsoft.powershell32    Container            {Name=microsoft.powershell}

 Visualizzazione delle configurazioni di sessione in un computer

    remoto Per visualizzare le configurazioni di sessione in un computer
    remoto, utilizzare il cmdlet Connect-WSMan per aggiungere una nota
    per il computer remoto all'unità WSMAN: nel computer locale, quindi
    utilizzare l'unità WSMAN: per visualizzare le configurazioni di sessione.

    Ad esempio, il comando seguente aggiunge un nodo per il computer
    remoto Server01 all'unità WSMAN: nel computer locale.

        C:\PS> connect-wsman server01.corp.fabrikam.com

    Al completamento del comando, è possibile spostarsi sul nodo del
    computer Server01 per visualizzare le configurazioni di sessione.

    Ad esempio:

        C:\PS> cd wsman:

        PS WSMan:\> dir

        ComputerName                                  Type
        ------------                                  ----
        localhost                                     Container
        server01.corp.fabrikam.com                    Container

        PS WSMan:\> dir server01*\plugin\*

               WSManConfig: Microsoft.WSMan.Management\WSMan::server01.corp.fabrikam.com\Plugin

        Name                      Type                 Keys
        ----                      ----                 ----
        microsoft.powershell      Container            {Name=microsoft.powershell}
        microsoft.powershell32    Container            {Name=microsoft.powershell32}

 Modifica del descrittore di sicurezza di una configurazione di
    sessione

    Per impostazione predefinita, i membri del gruppo
    Administrators nel computer dispongono dell'autorizzazione Execute
    sulle configurazioni di sessione predefinite ma è possibile
    modificare i descrittori di sicurezza nelle configurazioni di
    sessione predefinite e in qualsiasi configurazione di sessione che
    si crea.

    Per fornire agli altri utenti l'autorizzazione a connettersi al
    computer in modalità remota, utilizzare il cmdlet Set-PSSessionCon
    figuration per aggiungere autorizzazioni "Execute" per tali
    utenti ai descrittori di sicurezza delle configurazioni di sessione
    Microsoft.PowerShell e Microsoft.PowerShell32.

    Il comando seguente, ad esempio, apre una pagina delle proprietà
    e consente di modificare il descrittore di sicurezza per la
    configurazione di sessione predefinita Microsoft.PowerShell.

        C:\PS> set-pssessionConfiguration -name Microsoft.PowerShell -
        showSecurityDescriptorUI

    Per negare a tutti l'autorizzazione su tutte le configurazioni di
    sessione nel computer, utilizzare la funzione Disable-PSRemoting
    o il cmdlet Disable-PSSessionConfiguration. Il comando seguente,
    ad esempio, aggiunge una voce "Deny All" a tutte le
    configurazioni di sessione nel computer.

        C:\PS> disable-psremoting

    Per aggiungere una voce "Deny All" a una particolare
    configurazione di sessione, utilizzare il cmdlet Disable-PSSession
    Configuration. Il comando seguente, ad esempio, aggiungono una
    voce "Deny All" alla configurazione di sessione Microsoft.PowerShell.

        C:\PS> disable-pssessionConfiguration -name Microsoft.PowerShell

    Per rimuovere la voce "Deny All" da tutte le configurazioni di
    sessione, utilizzare il cmdlet Enable-PSRemoting o
    Enable-PSSessionConfiguration. Il comando seguente, ad esempio,
    rimuove la voce "Deny All" dalle configurazioni di sessione predefinite.

        C:\PS> enable-pssessionConfiguration -name Microsoft.Power*

    Per apportare altre modifiche al descrittore di sicurezza di una
    configurazioni di sessione, utilizzare il cmdlet
    Set-PSSessionConfiguration. Utilizzare il parametro SecurityDescriptorSDDL
    per inviare un valore di stringa SDDL. Utilizzare il parametro
    ShowSecurityDescriptorUI per visualizzare una finestra delle proprietà
    dell'interfaccia utente che consente di creare un nuovo SDDL.

    Ad esempio:

        C:\PS> set-pssessionConfiguration -name Microsoft.PowerShell -
        showSecurityDescriptorUI

 Creazione di una nuova configurazione di sessione

    Per creare una nuova configurazione di sessione nel computer
    locale, utilizzare il cmdlet Register-PSSessionConfiguration. Per
    definire la nuova configurazione di sessione, è possibile
    utilizzare un assembly C#, uno script Window PowerShell e i
    parametri del cmdlet Register-PSSessionConfiguration.

    Ad esempio, il comando seguente crea una configurazione di
    sessione identica alla configurazione di sessione
    Microsoft.PowerShell, tranne per il fatto che limita i dati
    ricevuti da un comando remoto a 20 megabyte (MB). (L'impostazione predefinita è 50 MB).

        c:\PS> register-psSessionConfiguration -name NewConfig --
        MaximumReceivedDataSizePerCommandMB 20

    Quando si crea una configurazione di sessione, è possibile
    gestirla tramite i cmdlet di un'altra sessione di configurazione
    e visualizzarla nell'unità WSMAN:.

    Per ulteriori informazioni, vedere Register-PSSessionConfiguration.

 Rimozione di una configurazione di sessione

    Per rimuovere una configurazione di sessione dal computer locale,
    utilizzare il cmdlet Unregister-PSSessionConfiguration. Il
    comando seguente, ad esempio, rimuove la configurazione di
    sessione NewConfig dal computer.

        c:\PS> unregister-psSessionConfiguration -name NewConfig

    Per ulteriori informazioni, vedere Unregister-PSSessionConfiguration.

 Selezione di una configurazione di sessione

    Per selezionare una configurazione di sessione particolare per
    una sessione, utilizzare il parametro ConfigurationName di
    New-PSSession, Enter-PSSession o Invoke-Command.

    Questo comando, ad esempio, utilizza il cmdlet New-PSSession per
    avviare una sessione PSSession nel computer Server01. Il comando
    utilizza il parametro ConfigurationName per selezionare la
    configurazione WithProfile nel computer Server01.

        C:\PS> new-pssession -computername Server01 -configurationName
         WithProfile

    Questo comando ha esito positivo solo se l'utente corrente è
    autorizzato a utilizzare la configurazione di sessione
    WithProfile oppure può fornire le credenziali di un utente che
    dispone delle autorizzazioni richieste.

    È anche possibile utilizzare la variabile di preferenza
    $PSSessionConfigurationName per modificare la configurazioni di
    sessione predefinita nel computer. Per ulteriori informazioni
    sulla variabile di preferenza $PSSessionConfigurationName, vedere
    about_Preference_Variables.

VEDERE ANCHE
    about_Preference_Variables
    about_PSSession
    about_Remote
    New-PSSession
    Disable-PSSessionConfiguration
    Enable-PSSessionConfiguration
    Get-PSSessionConfiguration
    Register-PSSessionConfiguration
    Set-PSSessionConfiguration
    Unregister-PSSessionConfiguration


about_Signing

ARGOMENTO
    about_signing

DESCRIZIONE BREVE
    Illustra come firmare gli script in modo che soddisfino i criteri di
    esecuzione di Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    Il criterio di esecuzione Restricted non consente l'esecuzione di
    script.
    I criteri di esecuzione AllSigned e RemoteSigned impediscono a Windows
    PowerShell di eseguire gli script che non presentano una firma digitale.

    In questo argomento viene illustrato come eseguire script
    selezionati non sono firmati, anche se il criterio di esecuzione è
    RemoteSigned, e come firmare gli script per l'utilizzo.

    Per ulteriori informazioni sui criteri di esecuzione di Windows
    PowerShell, vedere about_Execution_Policy.

 PER CONSENTIRE L'ESECUZIONE DI SCRIPT FIRMATI
 -------------------------------
    La prima volta che si avvia Windows PowerShell in un computer, è
    probabilmente in uso il criterio di esecuzione Restricted (predefinito).

    Il criterio di esecuzione Restricted non consente l'esecuzione di
    alcuno script.

    Per trovare il criterio di esecuzione in uso nel computer, digitare:

        get-executionpolicy

    Per eseguire gli script non firmati che si scrivono nel computer
    locale e gli script firmati da altri utenti, utilizzare il
    comando seguente per impostare il criterio di esecuzione nel
    computer su RemoteSigned:

    set-executionpolicy remotesigned

    Per ulteriori informazioni, vedere Set-ExecutionPolicy.

 ESECUZIONE DI SCRIPT NON FORMATI (CRITERIO DI ESECUZIONE REMOTESIGNED)
 -------------------------------------------------------------
 Se il criterio di esecuzione di Windows PowerShell è
 RemoteSigned, in Windows PowerShell non verranno eseguiti gli script
 non firmati scaricati da Internet, inclusi gli script non firmati
 ricevuti tramite i programmi di posta elettronica e di messaggistica
 immediata.

    Se si tenta di eseguire uno script scaricato, viene visualizzato
    il seguente messaggio di errore:

        Impossibile caricare il file <nome-file>. Il file
        <nome-file> non è firmato digitalmente. Lo script
        non verrà eseguito nel sistema. Per ulteriori informazioni,
        vedere "Get-Help about_signing".

    Prima di eseguire lo script, rivedere il codice per assicurarsi
    che sia attendibile.
    Gli script hanno lo stesso effetto di qualsiasi programma eseguibile.

    Per eseguire uno script non firmato:

        1. Salvare il file script nel computer.
        2. Fare clic sul pulsante Start, scegliere Risorse del computer e individuare
           il file script salvato.
        3. Fare clic con il pulsante destro del mouse sul file script e scegliere Proprietà.
        4. Fare clic su Sblocca.

    Se uno script scaricato da Internet è firmato digitalmente, ma
    non si è ancora scelto di considerarne attendibile l'autore, viene
    visualizzato il seguente messaggio:

        Eseguire software di questo autore non attendibile? Il file
        <nome-file> è pubblicato da CN=<nome-autore>. e non è considerato
        attendibile nel sistema in uso. Eseguire solo script creati da autori
        attendibili.

        [V] Non eseguire mai [D] Non eseguire [R] Esegui una volta
        [A] Esegui sempre [?] Guida (l'opzione predefinita è "D"):

        Se si considera attendibile l'autore, selezionare "Esegui una
        volta" o "Esegui sempre". Se non si considera attendibile
        l'autore, selezionare "Non eseguire mai" o "Non eseguire". Se si
        seleziona "Non eseguire mai" o "Non eseguire, non verranno più
        visualizzati prompt per questo autore.

 METODI DI FIRMA DEGLI SCRIPT
 --------------------------
    È possibile firmare gli script creati e ottenuti da altre fonti.
    Prima di firmare uno script, esaminare ogni comando e verificare
    che possa essere eseguito senza alcun rischio.

    Per informazioni sulle procedure consigliate per la firma del
    codice, vedere l-articolo relativo all'indirizzo
    http://go.microsoft.com/fwlink/?LinkId=119096 (le informazioni
    potrebbero essere in lingua inglese).

    Per ulteriori informazioni su come firmare un file script, vedere Set-
    AuthenticodeSignature.

    Per aggiungere una firma digitale a uno script, è necessario
    firmarlo con un certificato per la firma del codice. Esistono due
    tipi di certificati utilizzabili per la firma di un file script:

        -- Certificati creati da un'autorità di certificazione:

           Dietro pagamento di una commissione, un'autorità di
           certificazione pubblica verifica l'identità dell'utente e
           gli assegna un certificato per la firma del codice.
           Acquistando un certificato da un'autorità di
           certificazione affidabile, si sarà in grado di condividere
           lo script con utenti di altri computer Windows, dal momento che
           l'autorità di certificazione verrà considerata disponibile negli
           elenchi locali di tali computer.

        -- Certificati creati dall'utente:

           È possibile creare un certificato autofirmato, per il quale il
           computer dell'utente è l'autorità che crea il certificato.
           Questo certificato è gratuito e consente di scrivere,
           firmare ed eseguire script nel computer. Tuttavia, uno
           script firmato da un certificato autofirmato non verrà
           eseguito in altri computer.

    In genere, si utilizza un certificato autofirmato solo per
    firmare script che si scrivono per il proprio utilizzo e script che si
    ottengono dalle altre origini di cui è stata verificata
    l'attendibilità. Non è adatto per script che devono essere condivisi,
    neanche all'interno di un'azienda.

    Se si crea un certificato autofirmato, assicurarsi di abilitare
    la protezione avanzata chiave privata nel certificato. In questo
    modo si impedirà che gli script vengano firmati per conto dell'utente
    mediante programmi dannosi. Le istruzioni per abilitare la protezione
    avanzata chiave privata sono fornite al termine di questo argomento.

 CREAZIONE DI UN CERTIFICATO AUTOFIRMATO
 --------------------------------
    Per creare un certificato autofirmato, utilizzare lo strumento di
    creazione certificati (MakeCert.exe). Questo strumento è incluso in
    Microsoft .NET Framework SDK (versioni 1.1 e successive) e in
    Microsoft Windows SDK.

    Per ulteriori informazioni sulla sintassi e le descrizioni dei
    parametri dello strumento MakeCert.exe, vedere "Strumento di creazione
    certificati (MakeCert.exe)" in MSDN Library all'indirizzo
    http://go.microsoft.com/fwlink/?LinkId=119097.

    Per utilizzare lo strumento MakeCert.exe per creare un
    certificato, eseguire i comandi seguenti in una finestra del
    prompt dei comandi SDK.

    Nota: il primo comando crea un'autorità di certificazione locale
    per il computer. Il secondo comando genera un certificato personale
    dall'autorità di certificazione.

    Nota: è possibile copiare o digitare esattamente i comandi come
    vengono visualizzati.
          Non è necessaria alcuna sostituzione, anche se è possibile
          modificare il nome del certificato.

            makecert -n "CN=PowerShell Local Certificate Root" -a sha1 `
                -eku 1.3.6.1.5.5.7.3.3 -r -sv root.pvk root.cer `
                -ss Root -sr localMachine

            makecert -pe -n "CN=PowerShell User" -ss MY -a sha1 `
                -eku 1.3.6.1.5.5.7.3.3 -iv root.pvk -ic root.cer

    Verrà richiesta una password per la chiave privata. La password
    garantisce che nessuno possa utilizzare o accedere al certificato
    senza il consenso dell'autore. Creare e immettere una password
    che si possa ricordare. Questa password verrà utilizzata
    successivamente per recuperare il certificato.

    Per verificare che il certificato sia stato generato correttamente,
    utilizzare il comando seguente per ottenere il certificato nell'archivio
    certificati del computer (il file del certificato non si troverà
    nella directory del file system).

    Al prompt di Windows PowerShell, digitare:

            get-childitem cert:\CurrentUser\my -codesigning

    Mediante questo comando viene utilizzato il provider di certificati di
    Windows PowerShell per visualizzare informazioni sul certificato.

    Se il certificato è stato creato, l'output mostra l'identificazion
    e digitale che identifica il certificato in una visualizzazione
    analoga alla seguente:

        Directory: Microsoft.PowerShell.Security\Certificate::CurrentUser\My

        Thumbprint                                Subject
        ----------                                ---------
        4D4917CB140714BA5B81B96E0B18AAF2C4564FDF CN=PowerShell User ]

 FIRMA DI UNO SCRIPT
 -------------

    Se si crea un certificato autofirmato, è possibile firmare gli
    script. Se si utilizza il criterio di esecuzione AllSigned, la
    firma di uno script ne consente l'esecuzione sul computer
    dell'utente.

    Lo script di esempio seguente, Add-Signature.ps1, firma uno script. Se
    tuttavia si sta utilizzando il criterio di esecuzione AllSigned, è
    necessario firmare lo script Add-Signature.ps1 prima di eseguirlo.

    Per utilizzare questo script, copiare il testo seguente in un
    file di testo e assegnarvi il nome Add-Signature.ps1.

    Nota: assicurarsi che il file script non abbia estensione txt. Se
    nell'editor di testo il file viene salvato con estensione ".txt",
    racchiudere il nome file tra virgolette: "add-signature.ps1".

            ## add-signature.ps1
            ## Firma un file
            param([string] $file=$(throw "Specificare un nome
            file.")) $cert = @(Get-ChildItem cert:\CurrentUser\My
            -codesigning)[0] Set-AuthenticodeSignature $file $cert

    Per firmare il file script Add-Signature.ps1, digitare i comandi
    seguenti al prompt dei comandi di Windows PowerShell:

        $cert = @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0]
        Set-AuthenticodeSignature add-signature.ps1 $cert

    Dopo che lo script è stato firmato, è possibile eseguirlo sul
    computer locale.
    Tuttavia, non verrà eseguito nei computer in cui il criterio di
    esecuzione di Windows PowerShell richiede una firma digitale di
    un'autorità certificata. Se si tenta, il comando ha esito
    negativo e viene visualizzato il messaggio di errore seguente:

        Impossibile caricare il file C:\remote_file.ps1. Impossibile
        verificare la firma del certificato.
        At line:1 char:15
        + .\ remote_file.ps1 <<<<

    Se viene visualizzato questo messaggio quando si esegue uno script
    proveniente da un altro autore, considerare il file come un qualsiasi
    script non firmato. Rivedere il codice per determinare se lo script è
    attendibile.

 ABILITAZIONE DELLA PROTEZIONE AVANZATA CHIAVE PRIVATA PER IL CERTIFICATO

    Se nel computer è installato un certificato privato, esiste il
    rischio che programmi dannosi consentano la firma di script per conto
    dell'utente e, conseguentemente, l'esecuzione d tali script in
    Windows PowerShell.

    Per impedire la firma automatica di script per conto dell'utente,
    utilizzare lo strumento di gestione certificati (Certmgr.exe) per
    esportare il certificato per la firma in un file pfx. Lo strumento di
    gestione certificati è incluso in Microsoft .NET Framework SDK,
    Microsoft Windows SDK e Internet Explorer 5.0 e versioni successive.

    Per esportare il certificato:

        1. Avviare lo strumento di gestione certificati.

        2. Selezionare il certificato emesso da PowerShell Local
           Certificate Root.

        3. Scegliere Esporta per avviare l'Esportazione guidata
           certificati.

        4. Scegliere "Esporta la chiave privata", quindi scegliere Avanti.

        5. Selezionare "Abilita protezione avanzata".

        6. Digitare una password, quindi digitarla nuovamente per
           confermare.

        7. Digitare un nome file con estensione pfx.

        8. Fare clic su Fine.

    Per reimportare il certificato:

        1. Avviare lo strumento di gestione certificati.

        2. Scegliere Importa per avviare l'Importazione guidata
           certificati.

        3. Aprire il percorso del file pfx creato durante il processo di
           esportazione.

        4. Nella pagina "Password" selezionare "Abilita protezione
           avanzata chiave privata", quindi immettere la password
           assegnata durante il processo di esportazione.

        5. Selezionare l'archivio certificati Personale.

        6. Fare clic su Fine.

 IMPEDIRE LA SCADENZA DELLA FIRMA
 -----------------------------------
     La firma digitale in uno script è valida fino alla scadenza del
     certificato di firma o finché un server di timestamp può
     verificare che lo script è stato firmato mentre il certificato
     di firma era valido.

     Poiché la maggior parte dei certificati di firma sono validi
     solo per un anno, l'utilizzo di un server di timestamp assicura
     che gli utenti possano utilizzare lo script per molti anni.

VEDERE ANCHE
    about_Execution_Policies
    about_Profiles
    Get-ExecutionPolicy
    Set-ExecutionPolicy
    Set-AuthenticodeSignature
    "Introduction to Code Signing" (http://go.microsoft.com/fwlink/?Li
    nkId=106296)


about_Special_Characters

ARGOMENTO
    about_Special_Characters

DESCRIZIONE BREVE
    Descrive i caratteri speciali che si possono utilizzare per
    controllare come viene interpretato in Windows PowerShell il carattere
    successivo di un comando o parametro.

DESCRIZIONE DETTAGLIATA
    Windows PowerShell supporta un set di sequenze di caratteri speciali
    utilizzati per rappresentare i caratteri che non fanno parte del set di
    caratteri standard.

    I caratteri speciali in Windows PowerShell iniziano con un
    carattere di apice inverso, anche denominato accento grave (ASCII 96).

    I caratteri speciali seguenti sono riconosciuti da Windows PowerShell:

        `0  Null
        `a  Avviso
        `b  Backspace
        `f  Avanzamento carta
        `n  Nuova riga
        `r  Ritorno a capo
        `t  Tabulazione orizzontale
        `v  Tabulazione verticale

    Questi caratteri fanno distinzione tra maiuscole e minuscole.

NULL (`0)
    Windows PowerShell riconosce un carattere speciale null (`0) e lo
    rappresenta con un codice carattere 0. Viene visualizzato come uno
    spazio vuoto nell'output di Windows PowerShell. In questo modo è
    possibile utilizzare Windows PowerShell per leggere ed elaborare
    file di testo che utilizzano caratteri null, quali indicatori di
    terminazione stringa o di terminazione record. Il carattere speciale
    null non equivale alla variabile $null che archivia un valore NULL.

AVVISO (`a)
    Il carattere di avviso (`a) consente l'invio di un segnale acustico
    all'altoparlante del computer.
    È possibile utilizzarlo per avvertire l'utente di un'azione
    imminente. Il comando seguente invia due segnali acustici
    all'altoparlante del computer locale:

        for ($i = 0; $i -le 1; $i++){"`a"}

BACKSPACE (`b)
    Il carattere di backspace (`b) sposta il cursore indietro di un
    carattere ma non elimina alcun carattere. Il comando seguente
    scrive la parola "backup", sposta due volte il cursore indietro,
    quindi scrive la parola "out" (preceduta da uno spazio e iniziata
    nella nuova posizione)":

        "backup`b`b out"

    L'output di questo comando è il seguente:

        back out

AVANZAMENTO CARTA (`f)
   Il carattere di avanzamento carta (`f) è un'istruzione di stampa
   che espelle la pagina corrente e continua a stampare nella pagina
   successiva. Questo carattere riguarda solo i documenti stampati, non
   influisce sull'output dello schermo.

NUOVA RIGA (`n)
    Il carattere di nuova riga (`n) inserisce un'interruzione di riga
    immediatamente dopo il carattere.

    Nell'esempio seguente viene mostrato come utilizzare il carattere
    di nuova riga in un comando Write-Host:

        "There are two line breaks`n`nhere."

    L'output di questo comando è il seguente:

        There are two line breaks

        here.

RITORNO A CAPO (`r)
    Il carattere del ritorno a capo (`r) elimina la riga intera
    antecedente al carattere `r, come se il testo precedente fosse su
    una riga diversa.

    Ad esempio:

        Write-Host "Let's not move`rDelete everything before this point."

    L'output di questo comando è il seguente:

        Delete everything before this point.

TABULAZIONE ORIZZONTALE (`t)
    Il carattere di tabulazione orizzontale (`t) fa avanzare il
    cursore al punto di tabulazione successivo e continua a scrivere
    in tale punto. Per impostazione predefinita, la console di Windows
    PowerShell presenta un punto di tabulazione a ogni otto spazi.
    Ad esempio, il comando seguente inserisce due schede tra ogni
    colonna.

        "Column1`t`tColumn2`t`tColumn3"

    L'output di questo comando è il seguente:

        Column1         Column2         Column3

TABULAZIONE VERTICALE (`v)
    Il carattere di tabulazione orizzontale ('t) anticipa alla tabulazione
    verticale prossima e scrive ogni inizio di output successivo a quel punto.
    Questo carattere riguarda solo i documenti stampati, non influisce
    sull'output dello schermo.

VEDERE ANCHE
    about_Quoting_Rules
    about_Escape_Characters


about_Split

ARGOMENTO
    about_Split

DESCRIZIONE BREVE
    Illustra come utilizzare l'operatore split per suddividere una o
    più stringhe in sottostringhe.

DESCRIZIONE DETTAGLIATA
    L'operatore split suddivide una o più stringhe in sottostringhe.
    È possibile modificare gli elementi seguenti dell'operazione di
    suddivisione:

    -- Delimitatore. L'impostazione predefinita è uno spazio vuoto, ma è
       possibile specificare caratteri, stringhe, modelli o blocchi di
       script che specificano il delimitatore.

    -- Numero massimo di sottostringhe. Per impostazione predefinita
       vengono restituite tutte le sottostringhe. Se si specifica un
       numero minore del numero di sottostringhe, le sottostringhe
       rimanenti vengono concatenate nell'ultima sottostringa.

    -- Opzioni che specificano le condizioni alle quali viene identificato il
       delimitatore, ad esempio SimpleMatch e Multiline.

  SINTASSI

   Nel diagramma seguente viene riportata la sintassi dell'operatore
   -split:

   I nomi dei parametri non appaiono nel comando. Sono inclusi solo i
   valori dei parametri. I valori devono essere riportati nell'ordine
   specificato nel diagramma di sintassi.

    -Split <String>

    <String> -Split <Delimiter>[,<Max-substrings>[,"<Options>"]]

    <String> -Split {<ScriptBlock>} [,<Max-substrings>]

   In qualsiasi istruzione split, è possibile sostituire -split con
   -iSplit o -cSplit .
   Gli operatori -iSplit e -split non fanno distinzione tra maiuscole
   e minuscole. L'operatore -cSplit fa distinzione tra maiuscole e
   minuscole, viene pertanto rilevata la differenza tra maiuscole e
   minuscole quando sono applicate le regole del delimitatore.

  PARAMETRI

   <String>
        Specifica una o più stringhe da suddividere. Se si inviano
        più stringhe, tutte le stringhe sono suddivise utilizzando le
        stesse regole del delimitatore.
        Esempio:

        -split "red yellow blue green"
        red
            yellow
        blue
        green

   <Delimiter>
        Caratteri che identificano la fine di una sottostringa. Il
        delimitatore predefinito è uno spazio vuoto, inclusi spazi e
        caratteri non stampabili quali caratteri di avanzamento riga
        (`n) e tabulazione (`t). Quando le stringhe vengono
        suddivise, il delimitatore è omesso da tutte le
        sottostringhe. Esempio:

        "Lastname:FirstName:Address" -split ":"
        Lastname
        FirstName
        Address

    <Max-substrings>
        Specifica il numero massimo di sottostringhe restituite . Per
        impostazione predefinita, tutte le sottostringhe vengono
        suddivise dal delimitatore. Se vi sono più sottostringhe,
        vengono concatenate nella sottostringa finale. Se ci sono
        meno sottostringhe, vengono restituite tutte le
        sottostringhe. Un valore di 0 e valori negativi restituisce
        tutte le sottostringhe.

        Se si inviano più stringhe (una matrice di stringhe)
        all'operatore split, il limite Max-substrings viene applicato
        separatamente a ogni stringa. Esempio:

        $c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" $c
        -split ",", 5
        Mercury
        Venus
        Earth
        Mars
        Jupiter,Saturn,Uranus,Neptune

    <ScriptBlock>
        Espressione che specifica regole per l'applicazione del
        delimitatore. L'espressione deve essere valutata come $true o
        $false. Racchiudere il blocco di script block tra parentesi
        graffe. Esempio:

            $c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptu
            ne" $c -split {$_ -eq "e" -or $_ -eq "p"}
        M
        rcury,V
        nus,Earth,Mars,Ju
        it
        r,Saturn,Uranus,N

        tun

    <Options>
        Racchiudere tra virgolette il nome dell'opzione. Le opzioni
        sono valide solo quando nell'istruzione è utilizzato il
        parametro <Max-substrings>.

        La sintassi per il parametro Options è la seguente:

        "SimpleMatch [,IgnoreCase]"

            "[RegexMatch] [,IgnoreCase] [,CultureInvariant]
            [,IgnorePatternWhitespace] [,ExplicitCapture]
            [,Singleline | ,Multiline]"

        Le opzioni per SimpleMatch sono le seguenti:

          -- SimpleMatch: utilizzare il confronto tra stringhe
             semplice quando si valuta il delimitatore. Non può
             essere utilizzato con RegexMatch.

          -- IgnoreCase: forza la corrispondenza senza distinzione
             tra maiuscole e minuscole, anche se è specificato
             l'operatore -cSplit.

        Le opzioni di RegexMatch sono le seguenti:

          -- RegexMatch: utilizzare la corrispondenza di espressioni
             regolari quando si valuta il delimitatore. Si tratta del
             comportamento predefinito. Non può essere utilizzato con
             SimpleMatch.

          -- IgnoreCase: forza la corrispondenza senza distinzione
             tra maiuscole e minuscole, anche se è specificato
             l'operatore -cSplit.

          -- CultureInvariant: ignora le differenze di cultura nel
             linguaggio quando valuta il delimitatore. Valido solo
             con RegexMatch.

          -- IgnorePatternWhitespace: ignora gli spazi vuoti senza
             carattere di escape e i commenti contrassegnati con il
             simbolo cancelletto (#). Valido solo con RegexMatch.

          -- Multiline: la modalità Multiline riconosce l'inizio e la
             fine di righe e stringhe. Valido solo con RegexMatch. La
             modalità predefinita è Singleline.

          -- Singleline: la modalità Singleline riconosce solo
             l'inizio e la fine delle stringhe. Valido solo con
             RegexMatch. La modalità predefinita è Singleline.

          -- ExplicitCapture: ignora i gruppi di corrispondenza non
             denominati in modo che vengano restituiti nell'elenco
             dei risultati solo i gruppi di acquisizione espliciti.
             Valido solo con RegexMatch.

  OPERATORI SPLIT UNARI E BINARI

    L'operatore split unario (-split <string>) ha la priorità più
    elevata di una
    virgola. Pertanto, se si invia un elenco di stringhe separato da
    virgole all'operatore split unario, viene suddivisa solo la prima
    stringa (prima della prima virgola).

    Per suddividere più stringhe, utilizzare l'operatore split
    binario (<string> -split <delimiter>). Racchiudere tutte le
    stringhe tra parentesi
    oppure archiviare le stringhe in una variabile e inviare la
    variabile all'operatore split.

    Si consideri l'esempio seguente:

    -split "1 2", "a b"
    1
    2
     a b

    "1 2", "a b" -split " "
    1
    2
     a
    b

    -split ("1 2", "a b")
    1
    2
     a
    b

    $a = "1 2", "a b"
    -split $a
    1
    2
     a
    b

  ESEMPI

    L'istruzione seguente suddivide la stringa in corrispondenza
    dello spazio vuoto.

    C:\PS> -split "Windows PowerShell 2.0`nWindows PowerShell with remoting"

    Windows
    PowerShell
    2.0
    Windows
    PowerShell
    with
    remoting

    L'istruzione seguente suddivide la stringa in corrispondenza di
    ogni virgola.

    C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split ','

        Mercury
        Venus
        Earth
        Mars
        Jupiter
        Saturn
        Uranus
        Neptune

    L'istruzione seguente suddivide la stringa in corrispondenza del modello "er".

    C:\PS>"Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune"
    -split 'er'

    M
    cury,Venus,Earth,Mars,Jupit
    ,Saturn,Uranus,Neptune

    L'istruzione seguente esegue una suddivisione con distinzione tra
    maiuscole e minuscole in corrispondenza della lettera "N".

    C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -cSplit 'N'

    Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus, eptune

    L'istruzione seguente suddivide la stringa in corrispondenza di
    "e" e "t".

        C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune
        " -split '[et]'

        M
        rcury,V
        nus,
        ar
        h,Mars,Jupi

        r,Sa
        urn,Uranus,N
        p
        un

    L'istruzione seguente suddivide la stringa in corrispondenza di
    "e" ed "r" ma limita il risultato a sei sottostringhe.

        C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune
        " -split '[er]', 6

    M

    cu
    y,V
    nus,
    arth,Mars,Jupiter,Saturn,Uranus,Neptune

    L'istruzione seguente suddivide una stringa in tre sottostringhe.
        C:\PS> "a,b,c,d,e,f,g,h" -split ",", 3

    a
    b
    c,d,e,f,g,h

    L'istruzione seguente suddivide due stringhe in tre sottostringhe
    (il limite è applicato a ogni stringa in modo indipendente).
        C:\PS> "a,b,c,d", "e,f,g,h" -split ",", 3

    a
    b
    c,d
    e
    f
    g,h

    L'istruzione seguente suddivide ogni riga nella stringa here in
    corrispondenza della prima cifra. Utilizza l'opzione Multiline
    per riconoscere l'inizio di ogni riga e stringa.

    0 rappresenta il valore "return all" del parametro Max-substrings.
     È possibile utilizzare opzioni, quali Multiline, solo quando è
     specificato il valore Max-substrings.

        C:\PS> $a = @'
    1The first line.
    2The second line.
    3The third of three lines.
    '@

        C:\PS> $a -split "^\d", 0, "multiline"

    The first line.

    The second line.

    The third of three lines.

    L'istruzione seguente utilizza l'opzione SimpleMatch per indicare
    all'operatore -split di interpretare letteralmente il
    delimitatore punto (.).

    Con l'impostazione predefinita, RegexMatch, il punto racchiuso
    tra virgolette (".") viene interpretato in modo da individuare
    qualsiasi carattere ad eccezione di un carattere di avanzamento
    riga. Pertanto, l'istruzione split restituisce una riga vuota per
    ogni carattere ad eccezione del carattere di avanzamento riga.

    0 rappresenta il valore "return all" del parametro Max-substrings.
     È possibile utilizzare opzioni, quali SimpleMatch, solo quando è
     specificato il valore Max-substrings.

        C:\PS> "This.is.a.test" -split ".", 0, "simplematch"

    This
        is
        a
    test

    L'istruzione seguente suddivide la stringa in corrispondenza di
    uno dei due delimitatori, in base al valore di una variabile.

        C:\PS> 	$i = 1
        C:\PS> 	$c = "LastName, FirstName; Address, City, State, Zip"
        C:\PS> 	$c -split {if ($i -lt 1) {$_ -eq ","} else {$_ -eq ";"}}

    LastName, FirstName
     Address, City, State, Zip

    Le istruzioni split seguenti suddividono un file XML prima in
    corrispondenza della parentesi angolare e quindi in
    corrispondenza del punto e virgola. Il risultato è una versione
    leggibile del file XML.

        C:\PS> 	get-process powershell | export-clixml ps.xml
        C:\PS> 	$x = import-clixml ps.xml
        C:\PS> 	$x = $x -split "<"
        C:\PS> 	$x = $x -split ";"

    Per visualizzare il risultato, digitare "$x".

    C:\PS> $x

        @{__NounName=Process
    Name=powershell
    Handles=428
    VM=150081536
    WS=34840576
    PM=36253696
    ...

VEDERE ANCHE
    Split-Path
    about_Operators
    about_Comparison_Operators
    about_Join


about_Switch

ARGOMENTO
    about_Switch

DESCRIZIONE BREVE
    Illustra come utilizzare un'istruzione Switch per gestire più
    istruzioni If.

DESCRIZIONE DETTAGLIATA
    Un'istruzione If consente di decidere se eseguire determinate
    azioni in uno script o in un programma. In sostanza, equivale a
    imporre al codice un'alternativa: se una data condizione esiste,
    deve essere eseguita tale azione; se non esiste, deve essere
    eseguita un'altra azione. È possibile eseguire l'operazione il
    numero di volte desiderato, ma se l'elenco di condizioni è molto lungo
    l'istruzione If diventa poco pratica. È possibile combinare un lungo
    elenco di condizioni in un'istruzione switch. Come in tutte le
    istruzioni di diramazione, i blocchi di script devono essere racchiusi tra parentesi graffe ({}).

    Un'istruzione Switch è, in effetti, una serie di istruzioni If. Quando
    eseguita, confronta l'espressione con ciascuna delle condizioni caso
    per caso. Se viene trovata una corrispondenza, viene eseguita
    l'azione associata alla specifica condizione. Un'istruzione switch di
    base ha il seguente formato:

        PS> $a = 3
        PS> switch ($a) {
            1 {"It is one."}
            2 {"It is two."}
            3 {"It is three."}
            4 {"It is four."}
            }

        It is three.

    In questo semplice esempio, un valore viene confrontato con ciascuna
    condizione in elenco. L'azione consiste nella restituzione di una
    stringa dalla corrispondenza. Se, però, vengono confrontate tutte le
    condizioni, si può verificare un problema. Ad esempio:

        PS> $day = "day5"
        PS> switch ($day){
            day1 {"Monday"; break}
            day2 {"Tuesday"; break}
            day3 {"Wednesday"; break}
            day4 {"Thursday"; break}
            day5 {"Friday"; break}
            day6 {"Saturday"; break}
            day7 {"Sunday"; break}
            day5 {"Too many days"; break}
            }

        Friday

    Nell'elenco compaiono due condizioni day5. Tuttavia, tramite
    l'istruzione break alla fine di ciascuna condizione si impone
    all'istruzione switch di non proseguire oltre nella ricerca di
    corrispondenze e di eseguire l'azione rilevata. Se non fosse
    stata specificata alcuna istruzione break, verrebbero eseguite
    entrambe le azioni specificate nelle condizioni day5.

    Se il valore in base al quale eseguire l'istruzione switch è una
    matrice, verrà valutato nell'ordine ciascun elemento della
    matrice a partire dall'elemento 0 (zero). Se nemmeno un elemento
    soddisfa almeno una condizione, viene restituito un errore. Se
    esistono più clausole default, viene restituito un errore.

    La sintassi completa dell'istruzione switch è la seguente:

        switch [-regex|-wildcard|-exact][-casesensitive] ( pipeline )
    oppure

        switch [-regex|-wildcard|-exact][-casesensitive] -file nomefile

    seguita da

        {
            "string"|number|variable|{ expression } { statementlist }
            default { statementlist }
        }

    Per impostazione predefinita, se non viene utilizzato alcun parametro,
    l'istruzione Switch funziona come in presenza di una corrispondenza
    esatta senza rilevanza della distinzione tra maiuscole e minuscole.
    Se "pipeline" restituisce una matrice, ciascun elemento della matrice
    verrà valutato in ordine di offset ascendente (a partire da 0 [zero]).

    Nel blocco di codice Switch deve essere presente almeno un elemento
    condizionale e una sola clausola default. Se esistono più clausole
    default, viene restituita un'eccezione ParseException.

    L'istruzione switch accetta le seguenti opzioni:

        Regex	        Indica che la clausola di
                        corrispondenza, se è una stringa, viene considerata come una
                        stringa regex. Se si utilizza questo parametro, vengono
                        disabilitati i parametri Wildcard ed Exact. Se la clausola di
                        corrispondenza non è una stringa, viene ignorato questo parametro.

        Wildcard	Indica che la clausola di corrispondenza, se è una
                        stringa, viene considerata come una stringa con carattere
                        jolly. Se si utilizza questo parametro, vengono disabilitati
                        i parametri Regex ed Exact. Se la clausola di corrispondenza
                        non è una stringa, viene ignorato questo parametro.

        Exact	        Indica che la clausola di
                        corrispondenza, se è una stringa, deve corrispondere con
                        esattezza. Se si utilizza questo parametro, vengono disabilitati i
                        parametri Wildcard e Regex. Se la clausola di corrispondenza non è
                        una stringa, viene ignorato questo parametro.

        CaseSensitive	Modifica la clausola di corrispondenza, se è
                        una stringa, in modo che rilevi la distinzione tra maiuscole
                        e minuscole. Se la clausola di corrispondenza non è una
                        stringa, viene ignorato questo parametro.

        File	        Ottiene l'input da un file (o da un elemento
                        rappresentativo) anziché da un'istruzione. Se sono presenti più
                        parametri -file, viene utilizzato solo l'ultimo. Ogni riga del file
                        viene letta e passata al blocco di istruzioni switch.

    Sono consentiti utilizzi multipli di Regex, Wildcard o Exact,
    tuttavia, solo l'ultimo parametro utilizzato regola il comportamento.

    La parola chiave Break indica che l'elaborazione non proseguirà e che
    l'istruzione Switch verrà terminata.

    La parola chiave Continue indica che l'elaborazione del token
    corrente verrà terminata e che verrà valutato il token successivo
    dell'elemento condizionale. Se non sono disponibili token,
    l'istruzione Switch verrà terminata.

    Il blocco "{ expression }" può essere un blocco di codice che
    verrà valutato al momento del confronto. L'oggetto corrente è
    associato alla variabile automatica $_ ed è disponibile durante
    la valutazione dell'espressione. Un confronto viene considerato una
    corrispondenza se l'espressione restituisce "True". Questa
    espressione viene valutata in un nuovo ambito.

    La parola chiave "Default" nell'istruzione switch indica che, se
    non viene trovata alcun corrispondenza, verrà valutato il blocco
    di codice che segue la parola chiave. Non verrà consentito il
    flusso di programma da blocco a blocco poiché la parentesi graffa
    di chiusura ( } ) nell'elenco composito è una parola chiave break
    esplicita.

    Se vengono trovate più corrispondenze, ognuna restituirà l'espressione
    eseguita. Per impedire che ciò avvenga, è possibile utilizzare la
    parola chiave Break o Continue per interrompere ulteriori confronti.

VEDERE ANCHE
    about_Break
    about_Continue
    about_If
    about_Script_Blocks


about_Throw

ARGOMENTO
    about_Throw

DESCRIZIONE BREVE
    Descrive la parola chiave Throw che genera un errore fatale.

DESCRIZIONE DETTAGLIATA
    La parola chiave Throw provoca un errore fatale. È possibile
    utilizzare la parola chiave Throw per arrestare l'elaborazione di
    un comando, di una funzione o di uno script.

    Ad esempio, è possibile utilizzare la parola chiave Throw nel
    blocco di script di un'istruzione If per rispondere a una
    condizione o nel blocco Catch di un'istruzione Try-Catch-Finally.
    È anche possibile utilizzare la parola chiave Throw in una
    dichiarazione di parametro per rendere obbligatorio un parametro
    di funzione.

    La parola chiave Throw può generare qualsiasi oggetto, quale una
    stringa di messaggio utente o l'oggetto che ha provocato l'errore.

  SINTASSI
    La sintassi della parola chiave Throw è la seguente:

        throw [<espressione>]

    L'espressione nella sintassi Throw è opzionale. Quando
    l'istruzione Throw non è visualizzata in un blocco Catch,
    e non include un'espressione, genera un errore ScriptHalted.

        C:\PS> throw

        ScriptHalted
        At line:1 char:6
        + throw <<<<
            + CategoryInfo          : OperationStopped: (:) [],
                                      RuntimeException
            + FullyQualifiedErrorId : ScriptHalted

    Se la parola chiave Throw viene utilizzata in un blocco Catch
    senza un'espressione, genera nuovamente l'oggetto RuntimeException
    corrente. Per ulteriori informazioni, vedere about_Try_Catch_Finally.

 GENERAZIONE DI UNA STRINGA
    L'espressione facoltativa in un'istruzione Throw può essere una
    stringa, come mostrato nell'esempio seguente:

        C:\PS> throw "È un errore."

        È un errore.
        At line:1 char:6
        + throw <<<< "È un errore."
            + CategoryInfo          : OperationStopped: (È un errore.
                                      :String) [], RuntimeException
            + FullyQualifiedErrorId : È un errore.

 GENERAZIONE DI ALTRI OGGETTI
    L'espressione può essere anche un oggetto che genera l'oggetto che rappresenta il     processo di PowerShell, come mostrato nell'esempio seguente:

        C:\PS> throw (get-process powershell)

        System.Diagnostics.Process (powershell) At line:1 char:6
        + throw <<<< (get-process powershell)
            + CategoryInfo          : OperationStopped: (System.Diagnostics.
                                      Process (powershell):Process) [],
                                      RuntimeException
            + FullyQualifiedErrorId : System.Diagnostics.Process (powershell)

    È possibile utilizzare la proprietà TargetObject dell'oggetto
    ErrorRecord nella variabile automatica $error per esaminare l'errore.

        C:\PS> $error[0].targetobject

        Handles  NPM(K)    PM(K)    WS(K)   VM(M)   CPU(s)    Id ProcessName

        -------  ------    -----    -----   -----   ------    -- ----------

            319      26    61016    70864     568     3.28  5548 powershell

    È anche possibile generare un oggetto ErrorRecord o un'eccezione
    di Microsoft .NET Framework. Nell'esempio seguente viene utilizzata la
    parola chiave Throw per generare un oggetto System.FormatException.

        C:\PS> $formatError = new-object system.formatexception

        C:\PS> throw $formatError

        One of the identified items was in an invalid format.
        At line:1 char:6
        + throw <<<< $formatError
            + CategoryInfo          : OperationStopped: (:)
                                      [], FormatException
            + FullyQualifiedErrorId : One of the identified items
                                      was in an invalid format.

 ERRORE RISULTANTE
    La parola chiave Throw può generare un oggetto ErrorRecord. La
    proprietà Exception dell'oggetto ErrorRecord contiene un oggetto
    RuntimeException. La parte restante dell'oggetto ErrorRecord e
    dell'oggetto RuntimeException varia con l'oggetto generato dalla
    parola chiave Throw.

    L'oggetto RunTimeException è racchiuso in un oggetto ErrorRecord
    e l'oggetto ErrorRecord viene automaticamente salvato nella
    variabile $Error.

 UTILIZZO DI THROW PER CREARE PARAMETRI OBBLIGATORI
    È anche possibile utilizzare la parola chiave Throw per rendere
    obbligatorio un parametro di funzione.

    Si tratta di un'alternativa all'utilizzo del parametro Mandatory
    della parola chiave Parameter. Quando si utilizza il parametro
    Mandatory, il sistema richiede all'utente il valore del parametro
    richiesto. Quando si utilizza la parola chiave Throw, il comando
    si arresta e visualizza il record dell'errore.

    Ad esempio, la parola chiave Throw nella sottoespressione del
    parametro rende obbligatorio il parametro Path nella funzione.

    In questo caso, la parola chiave Throw genera una stringa di
    messaggio ma è la presenza della parola chiave Throw a generare
    l'errore fatale se non è specificato il parametro Path.
    L'espressione che segue Throw è opzionale.

        function Get-XMLFiles
        {
            param ($path = $(throw "Il parametro Path è
            obbligatorio.")) dir -path $path\* -include *.xml
            -recurse | sort lastwritetime | ft lastwritetime,
             attributes, name -auto
        }

VEDERE ANCHE
    about_Break
    about_Continue
    about_Scope
    about_Trap
    about_Try_Catch_Finally


about_Transactions

ARGOMENTO
    about_Transactions

DESCRIZIONE BREVE
    Descrive come gestire le operazioni in transazione in Windows
    PowerShell.

DESCRIZIONE DETTAGLIATA
    Le transazioni sono supportate in Windows PowerShell a partire da
    Windows PowerShell 2.0. Questa funzionalità consente di avviare una
    transazione, indicare quali comandi fanno parte della transazione ed
    eseguire il commit o il rollback di una transazione.

  INFORMAZIONI SULLE TRANSAZIONI

      In Windows PowerShell una transazione è un set di uno o più
      comandi gestiti come un'unità logica. È possibile completare
      una transazione (eseguirne il commit), modificando in tal modo
      i dati interessati dalla transazione. In alternativa, è
      possibile annullare una transazione (eseguirne il rollback) in
      modo da non modificare i dati interessati.

      Poiché i comandi in una transazione vengono gestiti come
      un'unità, viene eseguito il commit o il rollback di tutti i
      comandi.

      Le transazioni sono ampiamente utilizzate nell'elaborazione dei
      dati, in particolare nelle operazioni di database e nelle
      transazioni finanziarie. Le transazioni vengono utilizzate più
      spesso quando lo scenario peggiore per un set di comandi non è
      l'esito negativo di tutti i comandi, ma piuttosto l'esito
      positivo di alcuni comandi e l'errore di altri, situazione che
      provoca uno stato del sistema danneggiato, falso o non
      interpretabile, difficile da ripristinare.

  CMDLET DI TRANSAZIONE

      In Windows PowerShell sono inclusi diversi cmdlet progettati
      per la gestione delle transazioni.

      Cmdlet                 Descrizione
      --------------         ---------------------------------
      Start-Transaction      Avvia una nuova transazione.

      Use-Transaction        Aggiunge un comando o un'espressione
                             alla transazione. Nel comando è
                             necessario utilizzare oggetti abilitati
                             per la transazione.

      Undo-Transaction       Esegue il rollback della transazione
                             in modo che nessun dato venga modificato
                             dalla transazione.

      Complete-Transaction   Esegue il commit della transazione.
                             I dati interessati dalla transazione
                             vengono modificati.

      Get-Transaction        Ottiene informazioni sulla transazione
                             attiva.

      Per un elenco di cmdlet di transazione, digitare:

          get-command *transaction

      Per informazioni dettagliate sui cmdlet, digitare:

      get-help <nome-cmdlet> -detailed

      Ad esempio:

      get-help use-transaction -detailed

  ELEMENTI ABILITATI PER LE TRANSAZIONI

      Per partecipare a una transazione, sia il cmdlet sia il
      provider devono supportare le transazioni. Questa funzionalità
      è incorporata negli oggetti interessati dalla transazione.

      Il provider Registry di Windows PowerShell supporta le
      transazioni in Windows Vista. L'oggetto TransactedString
      (Microsoft.PowerShell.Commands.Management.TransactedString)
      funziona con qualsiasi sistema operativo che esegue Windows
      PowerShell.

      Altri provider di Windows PowerShell supportano le transazioni.
      Per trovare i provider di Windows PowerShell della sessione che
      supportano le transazioni, utilizzare il comando seguente per
      trovare il valore "Transactions" nella proprietà Capabilities
      dei provider:

      get-psprovider | where {$_.Capabilities -like "*transactions*"}

      Per ulteriori informazioni su un provider, vedere il relativo
      argomento della Guida.
      Per accedere agli argomenti della Guida relativi ai provider,
      digitare:

      get-help <nome-provider>

      Ad esempio, per ottenere l'argomento della Guida relativo al
      provider Registry, digitare:

      get-help registry

  PARAMETRO USETRANSACTION

      I cmdlet che possono supportare le transazioni dispongono di un
      parametro UseTransaction. Questo parametro include il comando nella
      transazione attiva. È possibile utilizzare il nome completo del
      parametro o il relativo alias, "usetx".

      Il parametro può essere utilizzato solo quando la sessione
      contiene una transazione attiva. Se si immette un comando con
      il parametro UseTransaction quando non è presente alcuna
      transazione attiva, il comando ha esito negativo.

      Per trovare i cmdlet con il parametro UseTransaction, digitare:

      get-help * -parameter UseTransaction

      In Windows PowerShell, tutti i cmdlet di sistema progettati per
      utilizzare i provider di Windows PowerShell supportano le
      transazioni. Di conseguenza, è possibile utilizzare i cmdlet
      del provider per gestire le transazioni.

      Per ulteriori informazioni sui provider di Windows PowerShell,
      vedere about_Providers.

  OGGETTO TRANSAZIONE

      Le transazioni sono rappresentate in Windows PowerShell da un
      oggetto transazione, System.Management.Automation.Transaction.

      L'oggetto ha le seguenti proprietà:

      RollbackPreference:
          Contiene il set della preferenza di rollback per la
          transazione corrente. È possibile impostare la preferenza
          di rollback quando si utilizza Start-Transaction per avviare
          la transazione.

          La preferenza di rollback determina le condizioni in base
          alle quali viene eseguito automaticamente il rollback della
          transazione. I valori validi sono Error, TerminatingError e
          Never. Il valore predefinito è Error.

      Status:
         Contiene lo stato corrente della transazione. I valori
         validi sono Active, Committed e RolledBack.

      SubscriberCount:
         Contiene il numero di sottoscrittori della transazione. Un
         sottoscrittore viene aggiunto a una transazione quando si
         avvia una transazione mentre ne è in corso un'altra. Il
         conteggio dei sottoscrittori viene diminuito quando un
         sottoscrittore esegue il commit della transazione.

  TRANSAZIONI ATTIVE

      In Windows PowerShell vi è una sola transazione attiva alla
      volta ed è possibile gestire solo la transazione attiva. Più
      transazioni possono essere in corso contemporaneamente nella
      stessa sessione, ma solo la transazione avviata più
      recentemente è attiva.

      Di conseguenza, non è possibile specificare una determinata
      transazione quando si utilizzano i cmdlet di transazione.
      I comandi si applicano sempre alla transazione attiva.

      Questa condizione è particolarmente evidente nel comportamento
      del cmdlet Get-Transaction. Quando si immette un comando
      Get-Transaction, Get-Transaction ottiene sempre un solo oggetto
      transazione. Questo oggetto rappresenta la transazione attiva.

      Per gestire un'altra transazione, è necessario innanzitutto
      finire la transazione attiva, eseguendone il commit o il
      rollback. Quando si esegue questa operazione, la transazione
      precedente diventa automaticamente attiva. Le transazioni
      diventano attive nell'ordine inverso rispetto a quello di
      avvio, in modo che la transazione avviata più recentemente
      sia sempre attiva.

  SOTTOSCRITTORI E TRANSAZIONI INDIPENDENTI

      Se si avvia una transazione mentre ne è in corso un'altra,
      per impostazione predefinita in Windows PowerShell non viene
      avviata una nuova transazione. Viene invece aggiunto un
      sottoscrittore alla transazione corrente.

      Quando una transazione ha più sottoscrittori, un singolo
      comando Undo-Transaction in qualsiasi momento esegue il
      rollback dell'intera transazione per tutti i sottoscrittori.
      Per eseguire il commit della transazione, tuttavia, è
      necessario immettere un comando Complete-Transaction per ogni
      sottoscrittore.

      Per trovare il numero di sottoscrittori di una transazione,
      verificare la proprietà SubscriberCount dell'oggetto
      transazione. Ad esempio, nel comando seguente viene utilizzato
      il cmdlet Get-Transaction per ottenere il valore della proprietà
      SubscriberCount della transazione attiva:

          (Get-Transaction).SubscriberCount

      L'aggiunta di un sottoscrittore è il comportamento predefinito
      perché la maggior parte delle transazioni avviate mentre ne è
      in corso un'altra è correlata alla transazione originale. Nel
      modello tipico, uno script che contiene una transazione chiama
      uno script di supporto che contiene la propria transazione.
      Poiché le transazioni sono correlate, è necessario eseguirne il
      rollback o il commit come unità.

      Tuttavia, è possibile avviare una transazione indipendente
      dalla transazione corrente tramite il parametro Independent del
      cmdlet Start-Transaction.

      Quando si avvia una transazione indipendente, Start-Transaction
      crea un nuovo oggetto transazione e la nuova transazione
      diventa attiva. Il commit o il rollback della transazione
      indipendente può essere eseguito senza effetti sulla
      transazione originale.

      Al termine della transazione indipendente (commit o rollback),
      la transazione originale diventa nuovamente attiva.

  MODIFICA DI DATI

      Quando si utilizzano le transazioni per modificare i dati, i dati
      interessati dalla transazione non vengono modificati finché non viene
      eseguito il commit della transazione.
      Tuttavia, gli stessi dati possono essere modificati da comandi
      che non fanno parte della transazione.

      Tenere presente questo punto quando si utilizzano le
      transazioni per gestire dati condivisi. In genere, nei database sono
      presenti meccanismi che bloccano i dati durante l'utilizzo, allo scopo
      di impedirne la modifica da parte di altri utenti e di altri comandi,
      script e funzioni.

      Tuttavia, il blocco è una funzionalità del database. Non è
      correlato alle transazioni. Se si utilizza un file system o un altro
      archivio dati abilitato per le transazioni, è possibile modificare i
      dati mentre la transazione è in corso.

ESEMPI
    Negli esempi di questa sezione viene utilizzato il provider
    Registry di Windows PowerShell con cui si presuppone che l'utente
    abbia familiarità. Per informazioni sul provider Registry,
    digitare "get-help registry".

  ESEMPIO 1: ESECUZIONE DEL COMMIT DI UNA TRANSAZIONE

    Per creare una transazione, utilizzare il cmdlet Start-Transaction.
    Con il comando seguente viene avviata una transazione con le
    impostazioni predefinite.

     start-transaction

    Per includere comandi nella transazione, utilizzare il parametro
    UseTransaction del cmdlet. Per impostazione predefinita, i comandi
    non sono inclusi.

    Ad esempio, il comando seguente, mediante cui viene impostato il
    percorso corrente nella chiave Software dell'unità HKCU:, non è
    incluso nella transazione.

        cd hkcu:\Software

    Nel comando seguente, mediante cui viene creata la chiave
    MyCompany, viene utilizzato il parametro UseTransaction del
    cmdlet New-Item per includere il comando nella transazione attiva.

        new-item MyCompany -UseTransaction

    Il comando restituisce un oggetto che rappresenta la nuova
    chiave, ma il Registro di sistema non viene ancora modificato
    poiché il comando fa parte della transazione.

        Hive: HKEY_CURRENT_USER\Software

        SKC  VC  Name                           Property
        ---  --  ----                           --------
         0   0   MyCompany                      {}

    Per eseguire il commit della transazione, utilizzare il cmdlet
    Complete-Transaction.
    Poiché influisce sempre sulla transazione attiva, non è possibile
    specificare la transazione.

    complete-transaction

    Di conseguenza, la chiave MyCompany viene aggiunta al Registro di
    sistema.

    dir m*

        Hive: HKEY_CURRENT_USER\software

        SKC  VC Name                           Property
        ---  -- ----                           --------
         83   1 Microsoft                      {(default)}
          0   0 MyCompany                      {}

  ESEMPIO 2: ROLLBACK DI UNA TRANSAZIONE

    Per creare una transazione, utilizzare il cmdlet Start-Transaction
    . Con il comando seguente viene avviata una transazione con le
    impostazioni predefinite.

     start-transaction

    Nel comando seguente, mediante cui viene creata la chiave
    MyOtherCompany, viene utilizzato il parametro UseTransaction del
    cmdlet New-Item per includere il comando nella transazione attiva.

        new-item MyOtherCompany -UseTransaction

    Il comando restituisce un oggetto che rappresenta la nuova
    chiave, ma il Registro di sistema non viene ancora modificato
    poiché il comando fa parte della transazione.

        Hive: HKEY_CURRENT_USER\Software

        SKC  VC Name                           Property
        ---  -- ----                           --------
          0   0 MyOtherCompany                 {}

    Per eseguire il rollback della transazione, utilizzare il cmdlet Undo-
    Transaction.
    Poiché influisce sempre sulla transazione attiva, non viene
    specificata la transazione.

    Undo-transaction

    Di conseguenza, la chiave MyOtherCompany non viene aggiunta al
    Registro di sistema.

    dir m*

        Hive: HKEY_CURRENT_USER\software

        SKC  VC Name                           Property
        ---  -- ----                           --------
         83   1 Microsoft                      {(default)}
          0   0 MyCompany                      {}

  ESEMPIO 3: ANTEPRIMA DI UNA TRANSAZIONE

    In genere, i comandi utilizzati in una transazione modificano i
    dati. Tuttavia, anche i comandi che ottengono dati sono utili in una
    transazione perché ottengono dati all'interno della transazione.
    Viene in tal modo fornita un'anteprima delle modifiche che verrebbero
    causate dal commit della transazione.

    Nell'esempio seguente viene illustrato come utilizzare il comando Get-
    ChildItem (l'alias è "dir") per visualizzare in anteprima le
    modifiche in una transazione.

    Con il comando seguente viene avviata una transazione.

    start-transaction

    Nel comando seguente viene utilizzato il cmdlet New-ItemProperty
    per aggiungere la voce del Registro di sistema MyKey alla chiave
    MyCompany. Viene utilizzato il parametro UseTransaction per
    includere il comando nella transazione.

        new-itemproperty -path MyCompany -Name MyKey -value 123
        -UseTransaction

    Il comando restituisce un oggetto che rappresenta la nuova voce
    del Registro di sistema, ma la voce del Registro di sistema non è
    stata modificata.

        MyKey
        -----
        123

    Per ottenere gli elementi attualmente presenti nel Registro di
    sistema, utilizzare un comando Get-ChildItem ("dir") senza il
    parametro UseTransaction. Con il comando seguente si ottengono
    gli elementi che iniziano con "M".

    dir m*

    Il risultato evidenzia che non è stata ancora aggiunta alcuna
    voce alla chiave MyCompany.

        Hive: HKEY_CURRENT_USER\Software

        SKC  VC Name                           Property
        ---  -- ----                           --------
        83   1 Microsoft                      {(default)}
         0   0 MyCompany                      {}

    Per visualizzare in anteprima l'effetto del commit della transazione,
    immettere un comando Get-ChildItem ("dir") con il parametro
    dati dall'interno UseTransaction. Con questo comando si ottiene una  dei     visualizzazionedella transazione.

    dir m* -useTransaction

    Il risultato evidenza che, se viene eseguito il commit della
    transazione, la voce MyKey viene aggiunta alla chiave MyCompany.

        Hive: HKEY_CURRENT_USER\Software

        SKC  VC Name                           Property
        ---  -- ----                           --------
        83   1 Microsoft                      {(default)}
         0   0 MyCompany                      {MyKey}

  ESEMPIO 4: COMBINAZIONE DI COMANDI IN TRANSAZIONE E NON

    È possibile immettere comandi non in transazione durante una
    transazione. Tali comandi hanno un effetto immediato sui dati, ma
    non sulla transazione.

    Con il comando seguente viene avviata una transazione nella chiave del
    Registro di sistema HKCU:\Software.

    start-transaction

    Nei tre comandi successivi viene utilizzato il cmdlet New-Item
    per aggiungere chiavi al Registro di sistema. Nel primo e nel
    terzo comando viene utilizzato il parametro UseTransaction per
    includere i comandi nella transazione. Nel secondo comando viene
    omesso il parametro. Poiché il secondo comando non è incluso
    nella transazione, risulta immediatamente valido.

        new-item MyCompany1 -UseTransaction

        new-item MyCompany2

        new-item MyCompany3 -UseTransaction

    Per visualizzare lo stato corrente del Registro di sistema,
    utilizzare un comando Get-ChildItem ("dir") senza il parametro
    UseTransaction. Con questo comando si ottengono gli elementi che
    iniziano con "M".

    dir m*

    Il risultato evidenzia che la chiave MyCompany2 viene aggiunta al
    Registro di sistema, mentre le chiavi MyCompany1 e MyCompany3 che
    fanno parte della transazione non vengono aggiunte.

        Hive: HKEY_CURRENT_USER\Software

        SKC  VC Name                           Property
        ---  -- ----                           --------
        83   1 Microsoft                      {(default)}
         0   0 MyCompany2                      {}

    Con il comando seguente viene eseguito il commit della transazione.

        complete-transaction

    A questo punto le chiavi aggiunte come parte della transazione vengono
    visualizzate nel Registro di sistema.

    dir m*

        Hive: HKEY_CURRENT_USER\Software

        SKC  VC Name                           Property
        ---  -- ----                           --------
        83   1 Microsoft                      {(default)}
        0    0 MyCompany1                     {}
        0    0 MyCompany2                     {}
        0    0 MyCompany3                     {}

  ESEMPIO 5: UTILIZZO DEL ROLLBACK AUTOMATICO

    Quando un comando in una transazione genera un errore di
    qualsiasi tipo, viene automaticamente eseguito il rollback della
    transazione.

    Questo comportamento predefinito è progettato per gli script che
    eseguono transazioni. Gli script vengono in genere sottoposti a
    test accurati e includono la logica di gestione degli errori,
    pertanto gli errori non sono previsti e devono terminare la
    transazione.

    Con il primo comando viene avviata una transazione nella chiave
    del Registro di sistema HKCU:\Software.

    start-transaction

    Nel comando seguente viene utilizzato il cmdlet New-Item per
    aggiungere la chiave MyCompany al Registro di sistema. Viene
    utilizzato il parametro UseTransaction (l'alias è "usetx") per
    includere il comando nella transazione.

    New-Item MyCompany -UseTX

    Poiché la chiave MyCompany esiste già nel Registro di sistema,

        New-Item: Chiave del percorso già esistente Riga:1 Carattere:9
        + new-item <<<< MyCompany -usetx

    Con un comando Get-Transaction viene confermato che il rollback della
    transazione è stato eseguito e che SubscriberCount è 0.

        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                0                 RolledBack

  ESEMPIO 6: MODIFICA DELLA PREFERENZA DI ROLLBACK

    Se si desidera una maggiore tolleranza di errore nella transazione,
    è possibile utilizzare il parametro RollbackPreference di
    Start-Transaction per modificare la preferenza.

    Con il comando seguente viene avviata una transazione con
    preferenza di rollback "Never".

         start-transaction -rollbackpreference Never

    In questo caso, quando il comando ha esito negativo, il rollback della
    transazione non viene eseguito automaticamente.

    New-Item MyCompany -UseTX

        New-Item: Chiave del percorso già esistente Riga:1 Carattere:9
        + new-item <<<< MyCompany -usetx

    Poiché la transazione è ancora attiva, è possibile inviare
    nuovamente il comando come parte della transazione.

    New-Item MyOtherCompany -UseTX

  ESEMPIO 7: UTILIZZO DEL CMDLET USE-TRANSACTION

    Il cmdlet Use-Transaction consente di eseguire script diretti su
    oggetti Microsoft .NET Framework abilitati per le transazioni.
    Use-Transaction accetta un blocco di script che può contenere
    solo comandi ed espressioni che utilizzano oggetti .NET Framework
    abilitati per le transazioni, ad esempio istanze della classe
    Microsoft.PowerShell.Commands.Management.TransactedString.

    Con il comando seguente viene avviata una transazione.

         start-transaction

    Con il comando New-Object seguente viene creata un'istanza della
    classe TransactedString che viene quindi salvata nella variabile $t.

         $t = New-Object Microsoft.PowerShell.Commands.Management.Tran
         sactedString

    Nel comando seguente viene utilizzato il metodo Append dell'oggetto
    TransactedString per aggiungere testo alla stringa. Poiché il comando
    non fa parte della transazione, la modifica diventa immediatamente
    effettiva.

     $t.append("Windows")

    Nel comando seguente viene utilizzato lo stesso metodo Append per
    aggiungere testo, ma il testo viene aggiunto come parte della
    transazione. Il comando è racchiuso tra parentesi graffe e viene
    impostato come valore del parametro ScriptBlock di Use-Transaction.
    Il parametro UseTransaction (UseTx) è obbligatorio.

     use-transaction {$t.append(" PowerShell")} -usetx

    Per vedere il contenuto corrente della stringa sottoposta a
    transazione in $t, utilizzare il metodo ToString dell'oggetto
    TransactedString.

     $t.tostring()

    L'output evidenzia che solo le modifiche non in transazione sono
    effettive.

     Windows

    Per vedere il contenuto corrente della stringa sottoposta a
    transazione in $t dall'interno della transazione, incorporare
    l'espressione in un comando Use-Transaction.

     use-transaction {$s.tostring()} -usetx

    L'output mostra la visualizzazione della transazione.

     Windows PowerShell

    Con il comando seguente viene eseguito il commit della transazione.

     complete-transaction

    Per vedere la stringa finale:

     $t.tostring()

     Windows PowerShell

  ESEMPIO 7: GESTIONE DELLE TRANSAZIONI CON PIÙ SOTTOSCRITTORI

    Quando si avvia una transazione mentre ne è in corso un'altra, per
    impostazione predefinita in Windows PowerShell non viene creata una
    seconda transazione. Viene invece aggiunto un sottoscrittore alla
    transazione corrente.

    In questo esempio viene illustrato come visualizzare e gestire
    una transazione con più sottoscrittori.

    Innanzitutto, avviare una transazione nella chiave HKCU:\Software.

        start-transaction

    Nel comando seguente viene utilizzato il comando Get-Transaction
    per ottenere la transazione attiva.

    get-transaction

    Il risultato mostra l'oggetto che rappresenta la transazione attiva.

        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                1                 Active

    Con il comando seguente viene aggiunta la chiave MyCompany al
    Registro di sistema.
    Viene utilizzato il parametro UseTransaction per includere il
    comando nella transazione.

        new-item MyCompany -UseTransaction

    Nel comando seguente viene utilizzato il comando Start-Transaction
     per avviare una transazione. Benché questo comando venga
     digitato al prompt dei comandi, è più probabile che questo
     scenario si verifichi quando si esegue uno script che contiene una
     transazione.

        start-transaction

    Con un comando Get-Transaction viene mostrato che il conteggio dei
    sottoscrittori nell'oggetto transazione viene incrementato. Il valore
    è ora 2.

        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                2                 Active

    Nel comando seguente viene utilizzato il cmdlet New-ItemProperty per
    aggiungere la voce del Registro di sistema MyKey alla chiave
    MyCompany. Viene utilizzato il parametro UseTransaction per includere
    il comando nella transazione.

        new-itemproperty -path MyCompany -name MyKey -UseTransaction

    La chiave MyCompany non esiste nel Registro di sistema, ma questo
    comando ha esito positivo perché i due comandi fanno parte della
    stessa transazione.

    Con il comando seguente viene eseguito il commit della
    transazione. Se venisse eseguito il rollback della transazione, tale
    operazione verrebbe eseguita per tutti i sottoscrittori.

    complete-transaction

    Con un comando Get-Transaction viene mostrato che il conteggio dei
    è sottoscrittori sull'oggetto transazione è 1, ma il valore di Status
    ancora Active (non Committed).

        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                1                 Active

    Per completare il commit della transazione, immettere un secondo
    comando Complete-Transaction. Per eseguire il commit di una
    transazione con più sottoscrittori, è necessario immettere un comando
    Complete-Transaction per ogni comando Start-Transaction.

         complete-transaction

    Con un altro comando Get-Transaction viene mostrato che il commit
    della transazione è stato eseguito.

        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                0                 Committed

  ESEMPIO 8: GESTIONE DI TRANSAZIONI INDIPENDENTI

    Quando si avvia una transazione mentre un'altra transazione è in
    corso, è possibile utilizzare il parametro Independent di
    Start-Transaction per rendere la nuova transazione indipendente
    da quella originale.

    In tal caso, con Start-Transaction viene creato un nuovo oggetto
    transazione e la nuova transazione diventa attiva.

    Innanzitutto, avviare una transazione nella chiave HKCU:\Software.

        start-transaction

    Nel comando seguente viene utilizzato il comando Get-Transaction
    per ottenere la transazione attiva.

    get-transaction

    Il risultato mostra l'oggetto che rappresenta la transazione attiva.

        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                1                 Active

    Con il comando seguente viene aggiunta la chiave del Registro di
    sistema MyCompany come parte della transazione. Il parametro
    UseTransaction (UseTx) viene utilizzato per includere il comando nella
    transazione attiva.

    new-item MyCompany -use

    Con il comando seguente viene avviata una nuova transazione.
    Viene utilizzato il parametro Independent per indicare che questa
    transazione non è un sottoscrittore della transazione attiva.

         start-transaction -independent

    Quando si crea una transazione indipendente, la nuova transazione
    (creata più recentemente) diventa attiva. È possibile utilizzare
    un comando Get-Transaction per ottenere la transazione attiva.

    get-transaction

    Si noti che il valore di SubscriberCount della transazione è 1,
    per indicare che non sono presenti altri sottoscrittori e che la
    transazione è nuova.

        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                1                 Active
    Prima di poter gestire la transazione originale, è necessario
    completare la nuova transazione, ovvero eseguirne il commit o il
    rollback.

    Con il comando seguente viene aggiunta la chiave MyOtherCompany
    al Registro di sistema.
    Il parametro UseTransaction (UseTx) viene utilizzato per
    includere il comando nella transazione attiva.

        new-item MyOtherCompany -usetx

    A questo punto, eseguire il rollback della transazione. Se fosse
    presente una sola transazione con due sottoscrittori, il rollback
    della transazione verrebbe eseguito sull'intera transazione per
    tutti i sottoscrittori.

    Tuttavia, poiché queste transazioni sono indipendenti, il
    rollback della transazione più recente annulla le modifiche del
    Registro di sistema e rende attiva la transazione originale.

        undo-transaction

    Con un comando Get-Transaction viene confermato che la
    transazione originale è ancora attiva nella sessione.

    get-transaction

        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                1                 Active

    Con il comando seguente viene eseguito il commit della transazione.

        complete-transaction

    Con un comando Get-ChildItem viene mostrato che il Registro di
    sistema è stato modificato.

    dir m*

        Hive: HKEY_CURRENT_USER\Software

        SKC  VC Name                           Property
        ---  -- ----                           --------
        83   1 Microsoft                      {(default)}
         0   0 MyCompany                      {}

VEDERE ANCHE
    Start-Transaction
    Get-Transaction
    Complete-Transaction
    Undo-Transaction
    Use-Transaction
    Registry (provider)
    about_Providers
    Get-PSProvider
    Get-ChildItem


about_Trap

ARGOMENTO
    about_Trap

DESCRIZIONE BREVE
    Descrive una parola chiave che gestisce un errore fatale.

DESCRIZIONE DETTAGLIATA
    Un errore fatale arresta l'esecuzione di un'istruzione. In
    Windows PowerShell, se un errore fatale non viene gestito in
    qualche modo, la funzione o lo script vengono anche arrestati
    nella pipeline corrente. Negli altri linguaggi, ad esempio C#,
    gli errori fatali vengono definiti eccezioni.

    La parola chiave Trap specifica un elenco di istruzioni da
    eseguire quando si verifica un errore fatale. Le istruzioni Trap
    gestiscono gli errori fatali e consentono di proseguire anziché
    arrestare l'esecuzione dello script o della funzione.

  Sintassi

      L'istruzione Trap ha la sintassi seguente:

          trap [[<tipo di errore>]] {<elenco istruzioni>}

      La l'istruzione Trap specifica un elenco di istruzioni da
      eseguire quando si verifica un errore fatale. La parola chiave
      Trap può specificare facoltativamente un tipo di errore. Un
      tipo di errore richiede l'uso di parentesi.

      Uno script o un comando può disporre di più istruzioni Trap. Le
      istruzioni Trap possono essere incluse in qualsiasi punto dello
      script o del comando.

  Intercettazione di tutti gli errori fatali

      Quando si verifica un errore fatale non gestito in un altro
      modo in uno script o comando, viene cercata un'istruzione Trap
      che gestisce l'errore. Se è presente un'istruzione Trap, viene
      proseguita l'esecuzione dello script o del comando
      nell'istruzione Trap.

      L'esempio seguente è un'istruzione Trap molto semplice:

          trap {"Rilevato errore."}

      Questa istruzione Trap intercetta qualsiasi errore fatale.
      L'esempio seguente è una funzione che contiene questa
      istruzione Trap:

          function TrapTest {
              trap {"Rilevato errore."}
              nonsenseString
              }

      Questa funzione include una stringa priva di significato che
      provoca un errore. L'esecuzione di questa funzione restituisce
      quanto segue:

          C:\PS> TrapTest
          Rilevato errore.

      L'esempio seguente include un'istruzione Trap che visualizza
      l'errore tramite la variabile automatica $_:

          function TrapTest {
              trap {"Rilevato errore: $_"}
              nonsenseString
              }

      L'esecuzione di questa versione della funzione restituisce
      quanto segue:

          C:\PS> TrapTest
          Rilevato errore: Termine 'nonsenseString' non riconosciuto
          come nome di cmdlet, funzione, programma eseguibile o file
          script. Controllare l'ortografia del nome o verificare che
          il percorso sia incluso e corretto, quindi riprovare.

      Le istruzioni Trap possono essere anche più complesse.
      Un'istruzione Trap può includere più condizioni o chiamate di
      funzione. Può registrare, verificare o anche eseguire un altro
      programma.

   Intercettazione degli errori fatali specificati

      L'esempio seguente è un'istruzione Trap che intercetta il tipo
      di errore CommandNotFoundException:

          trap [System.Management.Automation.CommandNotFoundException]
               {"Trap errore comando"}

      Quando una funzione o un script incontra una stringa che non
      corrisponde a un comando noto, questa istruzione Trap
      visualizza l'errore "Trap errore comando". Dopo l'esecuzione di
      qualsiasi istruzione nell'elenco dell'istruzione Trap,
      l'oggetto errore viene scritto nel flusso di errore, quindi
      viene proseguito lo script.

      In Windows PowerShell vengono utilizzati i tipi di eccezione di
      Microsoft .NET Framework. Nell'esempio seguente viene
      specificato il tipo di errore di System.Exception:

          trap [System.Exception] {"An error trapped"}

      Il tipo di errore CommandNotFoundException eredita dal tipo
      System.Exception. Questa istruzione intercetta un errore creato
      da un comando sconosciuto. Intercetta anche gli altri tipi di
      errore.

      In uno script possono essere presenti più istruzioni Trap. Ogni
      errore può essere intercettato da una sola istruzione Trap. Se
      si verifica un errore e sono disponibili più istruzioni Trap,
      viene utilizzata l'istruzione Trap con il tipo di errore più
      specifico che corrisponde all'errore.

      L'esempio di script seguente contiene un errore. Lo script
      include un'istruzione Trap generale che intercetta qualsiasi
      errore fatale e un'istruzione Trap specifica che specifica il tipo
      CommandNotFoundException.

          trap {"Trap altro errore fatale" }
          trap [System.Management.Automation.CommandNotFoundException]
               {"Trap errore comando"} nonsenseString

      L'esecuzione di questo script produce il risultato seguente:

          Trap errore comando
          Termine 'nonsenseString' non riconosciuto come nome di
          cmdlet, funzione, programma eseguibile o file script.
          Controllare l'ortografia del nome o verificare che il
          percorso sia incluso e corretto, quindi riprovare.
          At C:\PS>testScript1.ps1:3 char:19
          +   nonsenseString <<<<

      Poiché Windows PowerShell non riconosce "nonsenseString" come
      un cmdlet o altro elemento, restituisce un errore
      CommandNotFoundException. Questo errore fatale viene
      intercettato dall'istruzione Trap specifica.

      L'esempio dello script seguente contiene le stesse istruzioni
      Trap con un errore diverso:

          trap {"Trap altro errore fatale" }
          trap [System.Management.Automation.CommandNotFoundException]
               {"Trap errore comando"}
          1/$null

      L'esecuzione di questo script produce il risultato seguente:

          Trap altro errore fatale
          Attempted to divide by zero.
          At C:PS> errorX.ps1:3 char:7
          +   1/ <<<< $null

      Il tentativo di dividere per zero non crea un errore
      CommandNotFoundException. Al contrario, tale errore viene
      intercettato dall'altra istruzione Trap che intercetta
      qualsiasi errore fatale.

  Intercettazione di errori e ambito

      Se si verifica un errore fatale nello stesso ambito
      dell'istruzione Trap, dopo avere eseguito le istruzioni Trap,
      l'esecuzione continua dall'istruzione dopo l'errore. Se
      l'istruzione Trap è in un ambito diverso dall'errore,
      l'esecuzione continua dall'istruzione successiva nello stesso
      ambito dell'istruzione Trap.

      Ad esempio, se si verifica un errore in una funzione e
      l'istruzione Trap è nella funzione, lo script continua
      dall'istruzione successiva. Lo script seguente, ad esempio,
      contiene un errore e un'istruzione Trap:

          function function1 {
              trap { "Errore: " }
              NonsenseString
              "function1 completata"
              }

      Successivamente nello script, l'esecuzione di Function1 produce
      il risultato seguente:

          function1
          Errore:
          Termine 'NonsenseString' non riconosciuto come nome di
          cmdlet, funzione, programma eseguibile o file script.
          Controllare l'ortografia del nome o verificare che il
          percorso sia incluso e corretto, quindi riprovare.
          At C:\PS>TestScript1.ps1:3 char:19
          +   NonsenseString <<<<

          function1 completata

      L'istruzione Trap nella funzione intercetta l'errore. Dopo
      avere visualizzato il messaggio, viene ripresa l'esecuzione
      della funzione. Notare che Function1 non viene completata.

      Confrontare questo con l'esempio seguente che presenta lo
      stesso errore e l'istruzione Trap. In questo esempio,
      l'istruzione Trap viene eseguita fuori della funzione:

          function function2 {
              NonsenseString
              "function2 completata"
              }

          trap { "Errore: " }
              . . .
          function2

      Successivamente nello script, l'esecuzione di Function2 produce
      il risultato seguente:

          Errore:
          Termine 'NonsenseString' non riconosciuto come nome di
          cmdlet, funzione, programma eseguibile o file script.
          Controllare l'ortografia del nome o verificare che il
          percorso sia incluso e corretto, quindi riprovare.
          At C:\PS>TestScript2.ps1:4 char:19
          +   NonsenseString <<<<

      In questo esempio, il comando "function2 completata" non è
      stato eseguito. Anche se entrambi gli errori fatali si
      verificano in una funzione, se l'istruzione Trap è esterna alla
      funzione, Windows PowerShell non torna nelle funzione dopo
      l'esecuzione dell'istruzione Trap.

  Utilizzo delle parole chiave Break e Continue

      È possibile utilizzare le parole chiave Break e Continue in
      un'istruzione Trap per determinare se l'esecuzione di uno
      script o un comando prosegue dopo un errore fatale.

      Se si include un'istruzione Break nell'elenco di istruzioni
      Trap, viene interrotta la funzione o lo script. La funzione di
      esempio seguente utilizza la parola chiave Break in
      un'istruzione Trap:

          C:\PS> function break_example {
              trap {"Trap errore"; break;}
              1/$null
              "Funzione completata."
              }

          C:\PS> break_example
          Trap errore
          Attempted to divide by zero.
          At line:4 char:7

      Poiché l'istruzione Trap include la parola chiave Break,
      l'esecuzione della funzione non prosegue e la riga "Funzione
      completata" non viene eseguita.

      Se si include un'istruzione Continue in un'istruzione Trap,
      l'esecuzione viene ripresa dopo l'istruzione che ha provocato
      l'errore, come in assenza della parola chiave Break o Continue.
      Con la parola chiave Continue, tuttavia, non viene scrive un
      errore nel flusso di errore.

      La funzione di esempio seguente utilizza la parola chiave
      Continue in un'istruzione Trap:

          C:\PS> function continue_example {
              trap {"Trap errore"; continue;}
              1/$null
              "Funzione completata."}

          C:\PS> continue_example
          Trap errore
          Funzione completata.

      La funzione riprende dopo che viene intercettato l'errore e
      l'istruzione "Funzione completata" viene eseguita. Non viene
      scritto alcun errore nel flusso di errore.

VEDERE ANCHE
    about_Break
    about_Continue
    about_Throw
    about_Try_Catch_Finally
    about_Scopes


about_Try_Catch_Finally

ARGOMENTO
    about_Try_Catch_Finally

DESCRIZIONE BREVE
    Descrive come utilizzare i blocchi Try, Catch e Finally per
    gestire gli errori fatali.

DESCRIZIONE DETTAGLIATA
    Utilizzare i blocchi Try, Catch e Finally per rispondere o gestire
    gli errori fatali negli script. Anche l'istruzione Trap può essere
    utilizzata per gestire gli errori fatali negli script. Per ulteriori
    informazioni, vedere about_Trap.

    Un errore fatale arresta l'esecuzione di un'istruzione. In Windows
    PowerShell, se un errore fatale non viene gestito in qualche modo,
    la funzione o lo script vengono anche arrestati mediante la pipeline
    corrente. Negli altri linguaggi, ad esempio C#, gli errori fatali
    vengono definiti eccezioni. Per ulteriori informazioni sugli errori,
    vedere about_Errors.

    Utilizzare il blocco Try per definire una sezione di uno script
    nella quale si desidera che vengano monitorati gli errori. Quando
    si verifica un errore nel blocco Try, l'errore viene innanzitutto
    salvato nella variabile automatica $Error. Viene quindi cercato un
    blocco Catch per gestire l'errore. Se l'istruzione Try non dispone di
    un blocco Catch corrispondente, si continua a cercare un blocco Catch
    adatto o un'istruzione Trap negli ambiti padre. Una volta completato
    un blocco Catch oppure se non viene trovato un blocco Catch o
    un'istruzione Trap appropriata, viene eseguito il blocco Finally. Se
    l'errore non può essere gestito, viene scritto nel flusso di errore.

    Un blocco Catch può includere comandi per la registrazione
    dell'errore o per il recupero del flusso previsto dello script.
    Un blocco Catch può specificare quali tipi di errori intercetta.
    Un'istruzione Try può includere più blocchi Catch per tipi diversi di
    errori.

    Un blocco Finally può essere utilizzato per liberare risorse non più
    necessarie allo script.

    Try, Catch e Finally sono analoghi alle parole chiave Try, Catch
    e Finally utilizzate nel linguaggio di programmazione C#.

  Sintassi
      Un'istruzione Try contiene un blocco Try, zero o più blocchi
      Catch e zero o un blocco Finally. Un'istruzione Try deve
      disporre almeno di un blocco Catch o e di un blocco Finally.

      Di seguito viene illustrata la sintassi del blocco Try:

          try {<elenco istruzioni>}

      La parola chiave Try viene seguita da un elenco di istruzioni tra
      parentesi graffe. Se si verifica un errore fatale mentre le istruzioni
      nell'elenco di istruzioni sono in esecuzione, lo script passa
      l'oggetto errore dal blocco Try a un blocco Catch appropriato.

      Di seguito viene illustrata la sintassi del blocco Catch:

          catch [[<tipo di errore>][',' <error type>]*] {<elenco istruzioni>}

      I tipi di errore vengono riportati tra parentesi quadre. Le
      parentesi quadre più esterne indicano che l'elemento è facoltativo.

      La parola chiave Catch viene seguita da un elenco facoltativo di
      specifiche del errore tipo e da un elenco di istruzioni. Se si verifica
      un errore fatale nel blocco Try, viene cercato un blocco Catch
      appropriato. Se viene trovato, vengono eseguite le istruzioni nel
      blocco Catch.

      Il blocco Catch può specificare uno o più tipi di errore. Un tipo di
      errore è un'eccezione Microsoft .NET Framework o un'eccezione derivata
      da un'eccezione .NET Framework. Un blocco Catch gestisce gli errori
      della classe di eccezioni .NET Framework o di qualsiasi classe
      derivata dalla classe specificata.

      Se un blocco Catch specifica un tipo di errore, tale blocco
      Catch gestisce tale tipo di errore. Se un blocco Catch non
      specifica un tipo di errore, tale blocco Catch gestisce
      qualsiasi errore rilevato nel blocco Try. Un'istruzione Try può
      includere più blocchi Catch per i tipi diversi di errori
      specificati.

      Di seguito viene illustrata la sintassi del blocco Finally:

          finally {<elenco istruzioni>}

      La parola chiave Finally è seguita da un elenco di istruzioni
      eseguito ogni volta che viene eseguito lo script, anche se
      l'istruzione Try viene eseguita senza errori o se un errore viene
      intercettato in un'istruzione Catch.

      Notare che premendo CTRL+C si arresta la pipeline. Gli oggetti
      inviati alla pipeline non saranno visualizzati come output.
      Pertanto, se si include un'istruzione da visualizzare, ad
      esempio "Blocco Finally eseguito", non sarà visualizzata dopo avere
      premuto CTRL+C, anche se il Finally è stato eseguito.

  Intercettamento di errori
      Nello script di esempio seguente è riportato un blocco Try con
      un blocco Catch:

          try { NonsenseString }
          catch { "Si è verificato un errore." }

      La parola chiave Catch deve seguire immediatamente il blocco
      Try o un altro blocco Catch.

      Windows PowerShell non riconosce "NonsenseString" come un
      cmdlet o altro elemento. L'esecuzione di questo script
      restituisce il risultato seguente:

          Si è verificato un errore.

      Quando lo script rileva "NonsenseString", causa un errore fatale. Il
      blocco Catch gestisce l'errore eseguendo l'elenco di istruzioni nel
      blocco.

  Utilizzo di più istruzioni Catch
      Un'istruzione Try può disporre di qualsiasi numero di blocchi
      Catch. Ad esempio, lo script seguente contiene un blocco Try
      che scarica il file MyFile.doc e contiene due blocchi Catch:

          try
          {
             $wc = new-object System.Net.WebClient
             $wc.DownloadFile("http://www.contoso.com/MyDoc.doc")
          }
          catch [System.Net.WebException],[System.IO.IOException]
          {
              "Impossibile scaricare MyDoc.doc da http://www.contoso.c
              om."
          }
          catch
          {
              "Si è verificato un errore che non è stato possibile
              risolvere."
          }

      Il primo blocco Catch gestisce gli errori dei tipi
      System.Net.WebException e System.IO.IOException. Il secondo
      blocco Catch non specifica un tipo di errore. Il secondo blocco
      Catch gestisce gli altri errori fatali che si verificano.

      Vengono rilevati i tipi di errori per ereditarietà. Un blocco Catch
      gestisce gli errori della classe di eccezioni .NET Framework o di
      qualsiasi classe derivata dalla classe specificata. L'esempio
      seguente contiene un blocco Catch che intercetta un errore "Command
      Not Found":

          catch [System.Management.Automation.CommandNotFoundException]
          {"Eccezione ereditata" }

      Il tipo di errore specificato, CommandNotFoundException,
      eredita dal tipo System.SystemException. Anche l'esempio seguente
      intercetta un errore Command Not Found:

          catch [System.SystemException] {"Eccezione di base" }

      Questo blocco Catch gestisce l'errore "Command Not Found" e
      altri errori che ereditano dal tipo SystemException.

      Se si specifica una classe di errore e una delle classi
      derivate, inserire il blocco Catch per le classi derivate prima
      del blocco Catch per la classe generale.

  Liberare risorse mediante il blocco Finally
      Per liberare le risorse utilizzate da uno script, aggiungere un
      blocco Finally dopo i blocchi Try e Catch. Le istruzioni del blocco
      Finally vengono eseguite indipendentemente dal fatto che il blocco
      Try rilevi un errore fatale. Il blocco Finally viene eseguito prima
      che lo script venga terminato o prima che il blocco corrente esca
      dall'ambito.

      Il blocco Finally viene eseguito anche se si utilizza CTRL+C
      per arrestare lo script. Un blocco Finally anche se una parola
      chiave Exit arresta lo script all'interno di un blocco Catch.

VEDERE ANCHE
    about_Errors
    about_Trap


about_Type_Operators

ARGOMENTO
    about_Type_Operators

DESCRIZIONE BREVE
    Descrive gli operatori che utilizzano i tipi Microsoft .NET Framework.

DESCRIZIONE DETTAGLIATA
    Gli operatori di tipo booleani (-is e -isnot) indicano se un
    oggetto è un'istanza di un tipo .NET Framework specificato.
    L'operatore -is restituisce un valore TRUE se il tipo corrisponde
    e un valore FALSE in caso contrario. L'operatore -isnot
    restituisce un valore FALSE se il tipo corrisponde e un valore
    TRUE in caso contrario.

    L'operatore -as tenta di convertire l'oggetto di input nel tipo
    .NET Framework specificato. In caso di esito positivo,
    restituisce l'oggetto convertito. In caso di esito negativo,
    restituisce nothing. Non restituisce alcun errore.

    Nella tabella seguente vengono elencati gli operatori di tipo in
    Windows PowerShell.

    Operatore  Descrizione                Esempio
    --------  ------------------------    --------------
    -is       Restituisce TRUE quando
              l'input è un'istanza del        C:\PS> (get-date) -is
              tipo .NET Framework             [datetime] True
              specificato.

    -isnot    Restituisce TRUE quando
              l'input non è un'istanza        C:\PS> (get-date) -isnot
              del tipo .NET Framework         [datetime] False
              specificato.

    -as       Converte l'input nel tipo
              .NET Framework specificato.     C:\PS> 31/12/07 -as
                                              [datetime] Lunedì 31
                                              dicembre 2007 12.00.00

    La sintassi degli operatori di tipo è la seguente:

        <input> <operatore> [tipo .NET]

    È anche possibile utilizzare la sintassi seguente:

        <input> <operatore> "tipo .NET"

    Per specificare il tipo .NET Framework, racchiudere il nome del
    tipo tra parentesi quadre ([ ]) o immettere il tipo come stringa,
    ad esempio [DateTime] o "datetime" per System.DateTime. Se il
    tipo non è nella radice dello spazio dei nomi System, specificare
    il nome completo del tipo di oggetto. È possibile omettere
    "System.". Ad esempio per specificare System.Diagnostics.Process,
    immettere [System.Diagnostics.Process], [Diagnostics.Process] o
    "diagnostics.process."

    Gli operatori di tipo restituiscono sempre un valore booleano,
    anche quando l'input è una raccolta di oggetti. Tuttavia, quando
    l'input è una raccolta, gli operatori di tipo intercettano il
    tipo .NET Framework della raccolta. Non corrispondono al tipo di
    ogni oggetto, anche quando tutti gli oggetti sono dello stesso tipo.

    Per trovare il tipo .NET Framework di un oggetto, utilizzare il
    cmdlet Get-Member. In alternativa, utilizzare il metodo GetType
    di tutti gli oggetti insieme con la proprietà FullName di questo
    metodo. Ad esempio, nell'istruzione seguente viene ottenuto il
    tipo del valore restituito di un comando Get-Culture:

        C:\PS> (get-culture).gettype().fullname
        System.Globalization.CultureInfo

ESEMPI
    Negli esempi seguenti vengono illustrati alcuni utilizzi degli
    operatori di tipo:

        C:\PS> 32 -is [Float]
        False

        C:\PS> 32 -is "int"
        True

        C:\PS> (get-date) -is [DateTime]
        True

        C:\PS> "31/12/2007" -is [DateTime]
        False

        C:\PS> "31/12/2007" -is [String]
        True

        C:\PS> (get-process powershell)[0] -is [System.Diagnostics.
        Process]
        True

        C:\PS> (get-command get-member) -is [System.Management.
        Automation.CmdletInfo]
        True

    Nell'esempio seguente viene illustrato che, quando l'input è una
    raccolta di oggetti, il tipo intercettato è il tipo .NET
    Framework della raccolta, non il tipo dei singoli oggetti nella
    raccolta.

    In questo esempio, anche se i cmdlet Get-Culture e Get-UICulture
    restituiscono gli oggetti System.Globalization.CultureInfo, una
    raccolta di questi oggetti è una matrice System.Object.

        C:\PS> (get-culture) -is [System.Globalization.CultureInfo]
        True

        C:\PS> (get-uiculture) -is [System.Globalization.CultureInfo]
        True

        C:\PS> (get-culture), (get-uiculture) -is [System.Globalization.
        CultureInfo]
        False

        C:\PS> (get-culture), (get-uiculture) -is [Array]
        True

        C:\PS> (get-culture), (get-uiculture) | foreach {$_ -is
        [System.Globalization.CultureInfo])
        True
        True

        C:\PS> (get-culture), (get-uiculture) -is [Object]
        True

    Negli esempi seguenti viene illustrato come utilizzare
    l'operatore -as.

        C:\PS> "31/12/07" -is [datetime]
        False

        C:\PS> "31/12/07" -as [datetime]
        Lunedì 31 dicembre 2007 12.00.00

        C:\PS> $date = "31/12/07" -as [datetime]

        C:\PS>$a -is [datetime]
        True

        C:\PS> 1031 -as [System.Globalization.CultureInfo]

        LCID             Name             DisplayName
        ----             ----             -----------
        1031             de-DE            German (Germany)

    Nell'esempio seguente viene illustrato che, quando l'operatore
    -as non può convertire l'oggetto di input nel tipo .NET
     Framework, restituisce nothing.

        C:\PS> 1031 -as [System.Diagnostic.Process]
        C:\PS>

VEDERE ANCHE
    about_Operators


about_Types.ps1xml

ARGOMENTO
    about_Types.ps1xml

DESCRIZIONE BREVE
    Illustra la modalità in cui i file Types.ps1xml consentono di
    estendere i tipi Microsoft .NET Framework degli oggetti
    utilizzati in Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    Il file Types.ps1xml della directory di installazione ($pshome)
    di Windows PowerShell è un file di testo basato su XML che
    consente di aggiungere proprietà e metodi agli oggetti utilizzati
    in Windows PowerShell. Windows PowerShell dispone di un file
    Types.ps1xml predefinito che aggiunge diversi elementi ai tipi
    .NET Framework. È tuttavia possibile creare file Types.ps1xml
    aggiuntivi per estendere ulteriormente i tipi.

    Ad esempio, per impostazione predefinita, gli oggetti matrice
    (System.Array) dispongono di una proprietà Length che elenca il
    numero di oggetti nella matrice. Tuttavia, poiché il nome
    "length" non descrive chiaramente la proprietà, viene aggiunta
    una proprietà alias denominata "Count" che visualizza lo stesso
    valore. Il codice XML seguente aggiunte la proprietà Count al
    tipo System.Array.

        <Type>
            <Name>System.Array</Name>
            <Members>
                <AliasProperty>
                    <Name>Count</Name>
                    <ReferencedMemberName>
                        Length
                    </ReferencedMemberName>
                </AliasProperty>
            </Members>
        </Type>

    Per ottenere il nuovo oggetto AliasProperty, utilizzare un
    comando Get-Member su qualsiasi matrice, come mostrato
    nell'esempio seguente.

        Get-Member -inputobject (1,2,3,4)

    Il comando restituisce i risultati seguenti.

    Name           MemberType    Definition
    ----           ----------    ----------
    Count          AliasProperty Count = Length
    Address        Method        System.Object& Address(Int32 )
    Clone          Method        System.Object Clone()
    CopyTo         Method        System.Void CopyTo(Array array, Int32
                                 index):
    Equals         Method        System.Boolean Equals(Object obj)
    Get            Method        System.Object Get(Int32 )
    ...

    Di conseguenza, è possibile utilizzare la proprietà Count o la
    proprietà Length delle matrici in Windows PowerShell. Ad esempio:

    C:\PS> (1, 2, 3, 4).count
    4

    C:\PS> (1, 2, 3, 4).length
    4

  Creazione di nuovi file Types.ps1xml

      I file .ps1xml installati con Windows PowerShell sono firmati
      digitalmente per impedirne l'alterazione poiché la
      formattazione può includere blocchi di script. Pertanto, per
      aggiungere una proprietà o un metodo a un tipo .NET Framework,
      creare file Types.ps1xml, quindi aggiungerli alla console di
      Windows PowerShell.

      Per creare un nuovo file, iniziare copiando un file
      Types.ps1xml esistente. Il nuovo file può avere qualsiasi nome
      ma deve avere estensione .ps1xml. È possibile inserire il nuovo
      file in qualsiasi directory accessibile a Windows PowerShell,
      ma è consigliabile inserirlo nella directory di installazione
      ($pshome) di Windows PowerShell o in una sottodirectory della
      directory di installazione.

      Dopo aver salvato il nuovo file, utilizzare il cmdlet
      Update-TypeData per aggiungerlo alla console di Windows
      PowerShell. Se si desidera che i tipi abbiano la precedenza sui
      tipi definiti nel file predefinito, utilizzare il parametro
      PrependData del cmdlet Update-TypeData. Update-TypeData ha
      effetto solo sulla console corrente. Per apportare la modifica
      a tutte le console future, esportare la console o aggiungere il
      comando Update-TypeData al profilo di Windows PowerShell.

  Types.ps1xml e Add-Member

      I file Types.ps1xml aggiungono proprietà e metodi a tutte le
      istanze degli oggetti del tipo .NET Framework specificato nella
      console di Windows PowerShell interessata. Tuttavia, se è
      necessario aggiungere proprietà o metodi solo a un'istanza di
      un oggetto, utilizzare il cmdlet Add-Member.

      Per ulteriori informazioni, vedere Add-Member.

  Esempio: aggiunta di un membro Age agli oggetti FileInfo

      In questo esempio viene illustrato come aggiungere una
      proprietà Age agli oggetti file (System.IO.FileInfo). L'età di
      un file è la differenza in giorni tra la data di creazione e la
      data corrente.

      È più semplice utilizzare il file Types.ps1xml originale come
      modello per il nuovo file. Il comando seguente copia il file
      originale in un file denominato MyTypes.ps1xml della directory
      $pshome.

          copy-item Types.ps1xml MyTypes.ps1xml

      Quindi, apre il file Types.ps1xml in un editor XML o di testo,
      quale Blocco note. Poiché la proprietà Age è calcolata
      utilizzando un blocco di script, trovare un tag <ScriptProperty>
       da utilizzare come modello per la proprietà Age.

      Copiare il codice XML compreso tra i tag <Type> e </Type> per
      creare la proprietà script. Quindi, eliminare la parte restante
      del file, tranne i tag di apertura <?xml> e <Types> e il tag di
      chiusura </Types>. È necessario eliminare anche la firma
      digitale per evitare errori.

      Iniziare con la proprietà script modello, ad esempio la
      proprietà script seguente, copiata dal file Types.ps1xml originale.

          <?xml version="1.0" encoding="utf-8" ?>
          <Types>
              <Type>
                 <Name>System.Guid</Name>
                    <Members>
                        <ScriptProperty>
                            <Name>Guid</Name>
                            <GetScriptBlock>$this.ToString()</GetScrip
                            tBlock>
                        </ScriptProperty>
                    </Members>
              </Type>
          </Types>

      Quindi, modificare il nome del tipo .NET Framework, il nome
      della proprietà e il valore del blocco di script per creare una
      proprietà Age per gli oggetti file.

          <?xml version="1.0" encoding="utf-8" ?>
          <Types>
              <Type>
                 <Name>System.IO.FileInfo</Name>
                    <Members>
                        <ScriptProperty>
                            <Name>Age</Name>
                            <GetScriptBlock>
                               ((get-date) - ($this.creationtime)).days
                            </GetScriptBlock>
                        </ScriptProperty>
                    </Members>
              </Type>
          </Types>

      Dopo aver salvato e chiuso il file, utilizzare un comando
      Update-TypeData, come il seguente, per aggiungere il nuovo file
      Types.ps1xml alla console corrente. Il comando utilizza il
      parametro PrependData per inserire il nuovo file in un ordine
      di precedenza maggiore al file precedente. Per ulteriori
      informazioni su Update-TypeData, vedere Update-TypeData.

          update-typedata -prependpath $pshome\MyTypes.ps1xml

      Per eseguire il test della modifica, utilizzare un comando
      Get-ChildItem per ottenere il file PowerShell.exe della
      directory $pshome, quindi reindirizzare il file al cmdlet
      Format-List per elencare tutte le proprietà del file. Come
      risultato della modifica, la proprietà Age viene visualizzata
      nell'elenco.

        get-childitem $pshome\powershell.exe | format-list -property *

        PSPath            : Microsoft.PowerShell.Core\FileSystem::C:\WINDOWS...
        PSParentPath      : Microsoft.PowerShell.Core\FileSystem::C:\WINDOWS...
        PSChildName       : powershell.exe
        PSDrive           : C
        PSProvider        : Microsoft.PowerShell.Core\FileSystem
        PSIsContainer     : False
        Age               : 16
        VersionInfo       : File:             C:\WINDOWS\system32\WindowsPow...
                    InternalName:     POWERSHELL
                    OriginalFilename: PowerShell.EXE
        ...

      È anche possibile visualizzare la proprietà Age del file
      tramite il comando seguente.

      (get-childitem $pshome\powershell.exe).age
          16

  Codice XML nei file Types.ps1xml

      Il tag <Types> racchiude tutti i tipi definiti nel file.
      Deve essere presente una sola coppia di tag <Types>.

      Ogni tipo .NET Framework indicato nel file deve essere
      rappresentato da una coppia di tag <Type>.

      I tag tipo devono contenere i tag seguenti:

          <Name>: una coppia di tag <Name> che racchiudono il nome del tipo
                  .NET Framework interessato.

          <Members>: una coppia di tag <Members> che racchiudono i
                     tag per le nuove proprietà e i metodi definiti
                     per il tipo .NET Framework.

      All'interno dei tag <Members> può essere presente qualsiasi
      dei seguenti tag membro.

      <AliasProperty>: definisce un nuovo nome per una proprietà
                       esistente.

         Il tag <AliasProperty> deve includere una coppia di tag
         <Name> che specifica il nome della nuova proprietà e una
         coppia di tag <ReferencedMemberName> che specifica la
         proprietà esistente.
         Ad esempio, la proprietà alias Count è un alias per la
         proprietà Length degli oggetti matrice.

             <Type>
                 <Name>System.Array</Name>
                 <Members>
                     <AliasProperty>
                         <Name>Count</Name>
                         <ReferencedMemberName>Length</ReferencedMembe
                         rName>
                     </AliasProperty>
                 </Members>
             </Type>

      <CodeMethod>: fa riferimento a un metodo statico di una classe
      .NET Framework.

         Il tag <CodeMethod> deve presentare una coppia di tag <Name>
         che specificano il nome del nuovo metodo e una coppia di tag
         <GetCodeReference> che specificano il codice in cui il
         metodo è definito.
         Ad esempio, la proprietà Mode delle directory (oggetti
         System.IO.DirectoryInfo) è una proprietà di codice definita
         nel provider FileSystem di Windows PowerShell.

             <Type>
                 <Name>System.IO.DirectoryInfo</Name>
                 <Members>
                     <CodeProperty>
                        <Name>Mode</Name>
                        <GetCodeReference>
                           <TypeName>Microsoft.PowerShell.Commands.
                            FileSystemProvider</TypeName>
                           <MethodName>Mode</MethodName>
                        </GetCodeReference>
                     </CodeProperty>
                 </Members>
             </Type>

      <CodeProperty>: fa riferimento a un metodo statico di una
      classe .NET Framework.

         Il tag <CodeProperty> deve presentare una coppia di tag
         <Name> che specificano il nome della nuova proprietà e una
         coppia di tag <GetCodeReference> che specificano il codice
         in cui la proprietà è definita.
         Ad esempio, la proprietà Mode delle directory (oggetti
         System.IO.DirectoryInfo) è una proprietà di codice definita
         nel provider FileSystem di Windows PowerShell.
             <Type>
                 <Name>System.IO.DirectoryInfo</Name>
                 <Members>
                     <CodeProperty>
                        <Name>Mode</Name>
                        <GetCodeReference>
                           <TypeName>Microsoft.PowerShell.Commands.
                            FileSystemProvider</TypeName>
                           <MethodName>Mode</MethodName>
                        </GetCodeReference>
                     </CodeProperty>
                 </Members>
             </Type>

      <MemberSet>: definisce una raccolta di membri (proprietà e metodi).

         I tag <MemberSet> vengono riportati all'interno dei tag
         <Members> primari. Devono includere una coppia di tag <Name>
         che racchiudano il nome del set di membri e una coppi di tag
         <Members> secondari che racchiudano i membri (proprietà e
         metodi) nel set. Qualsiasi dei tag che creano una proprietà
         (ad esempio <NoteProperty> o <ScriptProperty>) o un metodo
         (ad esempio <Method> o <ScriptMethod>) possono essere membri
         del set.

         Nei file Types.ps1xml, il tag <MemberSet> è utilizzato per
         definire le visualizzazioni predefinite degli oggetti .NET
         Framework in Windows PowerShell. In questo caso, il nome
         del set di membri (il valore racchiuso tra i tag <Name>)
         è sempre "PsStandardMembers" e il nomi del tag proprietà
         (il valore di <Name>) sono uno dei seguenti:

        - DefaultDisplayProperty: una singola proprietà di un oggetto.

            - DefaultDisplayPropertySet: una o più proprietà di un
              oggetto.

            - DefaultKeyPropertySet: una o più proprietà chiave di un
              oggetto. Una proprietà chiave identifica le istanze di
              valori chiave, ad esempio il numero ID degli elementi
              in una cronologia della sessione.

         Ad esempio, il codice XML seguente definisce la
         visualizzazione predefinita dei servizi (oggetti
         System.ServiceProcess.ServiceController) restituiti
         dal cmdlet Get-Service. Definisce un set di membri
         denominato "PsStandardMembers" costituito da un set
         di proprietà predefinito con le proprietà Status,
         Name e DisplayName.

             <Type>
                <Name>System.ServiceProcess.ServiceController</Name>
                <Members>
                   <MemberSet>
                       <Name>PSStandardMembers</Name>
                       <Members>
                           <PropertySet>
                             <Name>DefaultDisplayPropertySet</Name>
                             <ReferencedProperties>
                                <Name>Status</Name>
                                <Name>Name</Name>
                                <Name>DisplayName</Name>
                             </ReferencedProperties>
                           </PropertySet>
                       </Members>
                   </MemberSet>
                </Members>
             </Type>

      <Method>: fa riferimento a un metodo nativo dell'oggetto
                sottostante.

      <Methods>: raccolta dei metodi dell'oggetto.

      <NoteProperty>: definisce una proprietà con un valore statico.

         Il tag <NoteProperty> deve presentare una coppia di tag
         <Name> che specificano il nome della nuova proprietà e una
         coppia di tag <Value> che specificano il valore della proprietà.
         Ad esempio, il codice XML seguente crea una proprietà Status
         per le directory (oggetti System.IO.DirectoryInfo). Il
         valore della proprietà Status è sempre "Success".

             <Type>
                 <Name>System.IO.DirectoryInfo</Name>
                 <Members>
                     <NoteProperty>
                        <Name>Status</Name>
                    <Value>Success</Value>
                     </NoteProperty>
                 </Members>
             </Type>

      <ParameterizedProperty>: proprietà che accettano argomenti e
                               restituiscono un valore.

      <Properties>: raccolta delle proprietà dell'oggetto.

      <Property>: proprietà dell'oggetto di base.

      <PropertySet>: definisce una raccolta delle proprietà dell'oggetto.

         Il tag <PropertySet> deve includere una coppia di tag <Name>
         che specificano il nome del set di proprietà e una coppia di
         <ReferencedProperty> che specificano le proprietà. I nomi delle
         proprietà sono racchiusi nelle coppie di tag <Name>.
         In Types.ps1xml, i tag <PropertySet> sono utilizzati per
         definire set di proprietà per la visualizzazione predefinita
         di un oggetto. È possibile identificare le visualizzazioni
         predefinite mediante il valore "PsStandardMembers" nel tag
         <Name> di un tag <MemberSet>.
         Ad esempio, il codice XML seguente crea una proprietà Status
         per le directory (oggetti System.IO.DirectoryInfo). Il
         valore della proprietà Status è sempre "Success".

             <Type>
                 <Name>System.ServiceProcess.ServiceController</Name>
                 <Members>
                     <MemberSet>
                         <Name>PSStandardMembers</Name>
                         <Members>
                             <PropertySet>
                                 <Name>DefaultDisplayPropertySet</Name>
                                 <ReferencedProperties>
                                     <Name>Status</Name
                                     <Name>Name</Name>
                                     <Name>DisplayName</Name>
                                 </ReferencedProperties>
                             </PropertySet>
                         <Members>
                     <MemberSet>
                 <Members>
             <Type>

     <ScriptMethod>: definisce un metodo il cui valore è l'output di
                     uno script.

         Il tag <ScriptMethod> deve includere una coppia di tag
         <Name> che specificano il nome del nuovo metodo e una coppia
         di tag <Script> che racchiudono il blocco di script che
         restituisce il risultato del metodo.
         Ad esempio, i metodi ConvertToDateTime e ConvertFromDateTime
         degli oggetti di gestione (System.System.Management.Managemen
         tObject) sono metodi di script che utilizzano i metodi
         statici ToDateTime e ToDmtfDateTime della classe
         System.Management.ManagementDateTimeConverter.

             <Type>
                 <Name>System.Management.ManagementObject</Name>
                 <Members>
                     <ScriptMethod>
                         <Name>ConvertToDateTime</Name>
                         <Script>
                             [System.Management.ManagementDateTimeConverter]
                             ::ToDateTime($args[0])
                         </Script>
                     </ScriptMethod>
                     <ScriptMethod>
                         <Name>ConvertFromDateTime</Name>
                         <Script>
                             [System.Management.
                        ManagementDateTimeConverter]
                         ::ToDmtfDateTime($args[0])
                         </Script>
                     </ScriptMethod>
                 </Members>
             </Type>

      <ScriptProperty>: definisce una proprietà il cui valore è
                        l'output di uno script.

         Il tag <ScriptProperty> deve includere una coppia di tag
         <Name> che specificano il nome della nuova proprietà e una
         coppia di tag <Script> che racchiudono il blocco di script
         che restituisce il valore della proprietà.
         Ad esempio, la proprietà VersionInfo dei file (oggetti
         System.IO.FileInfo) è una proprietà script risultante
         dall'utilizzo della proprietà FullName del metodo statico
         GetVersionInfo degli oggetti System.Diagnostics.FileVersionInfo.

             <Type>
                <Name>System.IO.FileInfo</Name>
                <Members>
                    <ScriptProperty>
                       <Name>VersionInfo</Name>
                       <GetScriptBlock>
                           [System.Diagnostics.FileVersionInfo]::GetVersionInfo                           ($this.FullName)
                       </GetScriptBlock>
                    </ScriptProperty>
                </Members>
             </Type>

      Per ulteriori informazioni, vedere Windows PowerShell Software
      Development Kit (SDK) in MSDN Library all'indirizzo
      http://go.microsoft.com/fwlink/?LinkId=144538 (le informazioni
      potrebbero essere in lingua inglese).

  Update-TypeData

      Per caricare i file Types.ps1xml in una console di Windows
      PowerShell, utilizzare il cmdlet Update-TypeData. Se si
      desidera che i tipi nel file abbiano la precedenza sui tipi nel
      file Types.ps1xml predefinito, utilizzare il parametro
      PrependData di Update-TypeData. Update-TypeData ha effetto solo
      sulla console corrente. Per apportare la modifica a tutte le
      console future, esportare la console o aggiungere il comando
      Update-TypeData al profilo di Windows PowerShell.

  Firma di un file Types.ps1xml

      Per proteggere gli utenti del file Types.ps1xml, è possibile
      firmare il file utilizzando una firma digitale. Per ulteriori
      informazioni, vedere about_Signing.

VEDERE ANCHE
    about_Signing
    Copy-Item
    Get-Member
    Update-TypeData


about_Variables

ARGOMENTO
    about_Variables

DESCRIZIONE BREVE
    Descrive in che modo le variabili archiviano valori che possono
    essere utilizzati in Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    Una variabile è un'unità di memoria in cui vengono archiviati
    valori. In Windows PowerShell, le variabili vengono rappresentate
    da stringhe di testo di una sola parola che iniziano con il
    simbolo di dollaro ($), ad esempio $a, $process o $my_var

    In Windows PowerShell sono presenti diversi tipi di variabili.

    -- Variabili create dall'utente: le variabili create dall'utente
       sono variabili create e gestite dall'utente. Per impostazione
       predefinita, le variabili che si creano dalla riga di comando
       di Windows PowerShell sono presenti solo mentre è aperta la
       finestra di Windows PowerShell e vanno perse quando si chiude
       tale finestra.
       Per salvare una variabile, aggiungerla al profilo di Windows
       PowerShell. È anche possibile creare variabili negli script
       con ambito globale, di script o locale.

    -- Variabili automatiche: le variabili automatiche archiviano lo
       stato di Windows PowerShell. Queste variabili vengono create
       da Windows PowerShell e i loro valori vengono modificati
       automaticamente secondo quanto richiesto per mantenerne
       l'accuratezza. Gli utenti non possono modificare il valore di
       queste variabili.
       Ad esempio, la variabile $PSHome archivia il percorso della
       directory di installazione di Windows PowerShell. Per
       ulteriori informazioni, un elenco e una descrizione delle
       variabili automatiche, vedere about_Automatic_Variables.

    -- Variabili di preferenza: le variabili di preferenza archiviano
       le preferenze dell'utente per Windows PowerShell. Queste
       variabili vengono create da Windows PowerShell e compilate con
       valori predefiniti. Gli utenti possono modificare i valori di
       queste variabili. Ad esempio, MaximumHistoryCount determina il
       numero massimo di voci nella cronologia della sessione. Per
       ulteriori informazioni, un elenco e una descrizione delle
       variabili di preferenza, vedere about_Preference_Variables.

 UTILIZZO DELLE VARIABILI

    Per elencare tutte le variabili della sessione di Windows
    PowerShell, digitare:

       get-variable

    Per visualizzare il valore di qualsiasi variabile, digitare il
    nome della variabile, preceduto da un simbolo del dollaro ($).
    Viene visualizzato il valore della variabile.

       $<nome-variabile>

    Ad esempio:

        PS> $pshome
        C:\Windows\System32\WindowsPowerShell\v1.0

    Per creare una nuova variabile o modificare il valore di una
    variabile, utilizzare un'istruzione di assegnazione nel formato
    seguente:

        $<variabile> = <valore>

    Ad esempio:

        PS> $my-variable = 1, 2, 3

        oppure

        PS> $VerbosePreference = "Continue"

    Per ottenere un oggetto che rappresenta la variabile, utilizzare
    un comando Get-Variable, quale:

        PS> get-variable pid

    Per utilizzare una variabile, digitare il nome della variabile,
    includendo il simbolo del dollaro ($), in un comando o
    espressione. Se il comando o l'espressione non è racchiuso tra
    virgolette o se è racchiuso tra virgolette doppie, il valore
    della variabile viene utilizzato nel comando o nell'espressione.
    Se il comando è racchiuso tra virgolette singole ('), il nome
    della variabile viene utilizzato nell'espressione.

    Ad esempio, il primo comando trova il valore della variabile
    $profile che è il percorso del file di profilo utente di Windows
    PowerShell. Il secondo comando apre il file in Blocco note.

        PS> $profile
        C:\Documents and Settings\User01\Documenti\WindowsPowerShell\
        Microsoft.PowerShell_profile.ps1

        PS> Notepad $profile

    È possibile archiviare qualsiasi tipo di oggetto in una
    variabile, includendo valori interi, stringhe, matrici e tabelle
    hash, oggetti che rappresentano processi, servizi, registri
    eventi e computer.

  SALVATAGGIO DELLE VARIABILI
      Le variabili che si creano sono disponibili solo nella sessione
      in cui si creano. Vanno perse quando si chiude la sessione.

      Per salvare una variabile, aggiungerla al profilo di Windows
      PowerShell.
      Le variabili in un profilo vengono aggiunte a ogni sessione di
      Windows PowerShell che si apre.

      Ad esempio, per modificare il valore della variabile
      $VerbosePreference in ogni sessione di Windows PowerShell,
      aggiungere il comando seguente al profilo di Windows PowerShell.

      $VerbosePreference = "Continue"

      È possibile aggiungere questo comando al profilo aprendo il
      file di profilo in un editor di testo, ad esempio Blocco note
      oppure è possibile utilizzare un comando Add-Content, come il
      seguente.

      Il comando seguente aggiunge il nuovo valore per la variabile
      $VerbosePreference al profilo CurrentUser,AllHosts.

      add-content -path $profile.CurrentUserAllHosts -value
      '$VerbosePreference = "Continue"'

      Per ulteriori informazioni sui profili di Windows PowerShell,
      vedere about_profiles.

 NOMI DELLE VARIABILI CON CARATTERI SPECIALI

    È possibile utilizzare parentesi graffe per forzare
    l'interpretazione letterale di un nome di variabile in Windows
    PowerShell. Questo è particolarmente utile in quando si crea o fa
    riferimento a un nome di variabile che include caratteri
    speciali, ad esempio trattini, punti, due punti e parentesi.

    Per creare un nome di variabile che include un trattino,
    racchiudere il nome della variabile tra parentesi graffe. Il
    comando seguente crea una variabile denominata "save-items".

        C:\PS> ${save-items} = "a", "b", "c"
        C:\PS>${save-items}
        a
        b
        c

    Per fare riferimento a un nome di variabile che include
    parentesi, racchiudere il nome della variabile tra parentesi graffe.

    Ad esempio, il comando seguente ottiene gli elementi figlio negli
    archivi di directory nella variabile di ambiente "ProgramFiles(x86)".

        C:\PS> Get-childitem ${env:ProgramFiles(x86)}

    Per fare riferimento a un nome di variabile che include parentesi
    graffe, racchiudere il nome della variabile tra parentesi graffe
    e utilizzare il carattere di apice inverso come carattere di
    escape per le parentesi graffe. Ad esempio, per creare una
    variabile denominata "this{value}is" con un valore di 1, digitare:

        C:\PS> ${this`{value`}is} = 1
        C:\PS> ${this`{value`}is}
        1

 UNITÀ VARIABLE:

     Windows PowerShell include un'unità Variable: dall'aspetto e
     funzionamento analogo a un'unità del file system, ma che
     contiene le variabili della sessione.

     Per passare all'unità Variable:, digitare:

        set-location variable:

         (o "cd variable:")

     Quando ci si trova nell'unità Variable:, utilizzare il cmdlet
     Get-ChildItem per elencare gli elementi (variabili) presenti
     nell'unità. Ad esempio:

         get-childitem

         (o "dir" o "ls")

     Per ulteriori informazioni sull'unità Variable: e sul provider
     Variable di Windows PowerShell, digitare:

         get-help variable

VEDERE ANCHE
    about_Automatic_Variables
    about_Environment_Variables
    about_Preference_Variables
    about_Scopes


about_While

ARGOMENTO
    about_While

DESCRIZIONE BREVE
    Descrive un'istruzione del linguaggio che è possibile utilizzare per
    eseguire un blocco di comandi basato sui risultati di un test
    condizionale.

DESCRIZIONE DETTAGLIATA
    L'istruzione While, nota anche come ciclo While, è un costrutto del
    linguaggio per la creazione di un ciclo che esegue i comandi di un
    blocco di comandi purché un test condizionale restituisca il valore
    true. L'istruzione While è più facile da costruire rispetto all'istruzione
    For in quanto la sua sintassi è meno complicata.
    Inoltre, è più flessibile dell'istruzione Foreach poiché
    nell'istruzione While viene specificato un test condizionale per
    controllare il numero di esecuzioni del ciclo.

    Di seguito viene illustrata la sintassi dell'istruzione While:

        while (<condizione>){<elenco di istruzioni>}

    Quando si esegue un'istruzione While, in Windows PowerShell viene
    valutata la sezione <condizione> dell'istruzione prima di passare alla
    sezione <elenco istruzioni>. La parte dell'istruzione relativa alla
    condizione restituisce
    i valori true o false. Fino a quando la condizione rimane true,
    Windows PowerShell esegue di nuovo la sezione <elenco istruzioni>.

    La sezione <elenco istruzioni> dell'istruzione contiene uno o più
    comandi
    che vengono eseguiti ogni volta che il ciclo viene immesso o ripetuto.

    Ad esempio, l'istruzione While seguente visualizza i numeri da 1
    a 3 se la variabile $val non è stata creata o è stata creata e
    inizializzata con 0.

        while($val -ne 3)
        {
            $val++
            Write-Host $val
        }

    In questo esempio, la condizione ($val non è uguale a 3) è true
    quando $val = 0, 1, 2. Ad ogni passaggio nel ciclo, $val viene
    incrementata di 1 utilizzando l'operatore di incremento unario ++
    ($val++). All'ultimo ingresso nel ciclo, $val = 3. Quando $val è
    uguale a 3, l'istruzione condizionale restituisce il valore false
    e il ciclo termina.

    Per scrivere agevolmente questo comando al prompt dei comandi di
    Windows PowerShell, è possibile immetterlo nel modo seguente:

        while($val -ne 3){$val++; Write-Host $val}

    Si noti che il punto e virgola separa il primo comando, che
    aggiunge 1 a $val, dal secondo comando, che scrive il valore di
    $val nella console.

VEDERE ANCHE
    about_Comparison_Operators
    about_Foreach
    about_For


about_Wildcards

ARGOMENTO
    about_Wildcards

DESCRIZIONE BREVE
    Descrive come utilizzare caratteri jolly in Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    In molti casi è consigliabile eseguire un cmdlet su un gruppo di
    elementi anziché su un singolo elemento. È, ad esempio, possibile
    individuare tutti i file della cartella C:\Techdocs con estensione ppt.
    Eseguendo il comando seguente, vengono restituiti tutti gli elementi della
    directory:

        Get-ChildItem c:\techdocs

    Il problema posto da questo comando è che occorre osservare tutti i
    documenti elencati nella directory per stabilire quali file utilizzano
    l'estensione ppt. Tuttavia, è possibile limitare gli elementi restituiti
    utilizzando i caratteri jolly nei parametri del cmdlet. Un carattere
    jolly è un tipo di segnaposto che consente di cercare valori ignoti per
    restituire un risultato specifico. Alla procedura di utilizzo dei
    caratteri jolly viene talvolta fatto riferimento con il termine
    "globbing". Ad esempio, è possibile riformulare l'esempio precedente
    in modo che vengano restituiti solo i file con estensione ppt:

        Get-ChildItem c:\techdocs\*.ppt

    In questo caso, viene utilizzato l'asterisco (*) come carattere
    jolly per specificare che prima dell'estensione ppt può essere
    inserito qualsiasi carattere. Poiché è inclusa l'estensione di
    file, tutti i file restituiti dal comando devono avere tale
    estensione ma possono avere qualsiasi nome. Di conseguenza, vengono
    restituiti solo i file desiderati.

    In Windows PowerShell, oltre al carattere jolly asterisco, sono
    supportati diversi altri caratteri jolly.

        Carattere jolly Descrizione  Esempio  Intercetta    Non intercetta
        -------- ------------------ -------- ------------  ------------
        *        Intercetta zero     a*       A, ag, Apple  banana
                 o più caratteri

        ?        Intercetta          ?n       an, in, on    ran
                 esattamente un
                 carattere nella
                 posizione
                 specificata

        [ ]      Intercetta un       [a-l]ook  book, cook,  took
                 intervallo di                 look
                 caratteri

        [ ]      Intercetta i        [bc]ook   book, cook   hook
                 caratteri
                 specificati

    La maggior parte dei cmdlet accetta i caratteri jolly in alcuni
    dei propri parametri. Nell'argomento della Guida dedicato a
    ciascun cmdlet vengono descritti gli eventuali parametri che
    consentono l'utilizzo dei caratteri jolly. Nel caso in cui i
    caratteri jolly siano consentiti nei parametri, il loro utilizzo
    prescinde dalla distinzione fra maiuscole e minuscole. Ad esempio,
    ?n restituisce An, an, In, in, On e on.

    Inoltre è possibile mescolare i caratteri jolly in un singolo
    parametro. Si supponga ad esempio di voler visualizzare tutti i
    file con estensione txt della directory C:\Techdocs che iniziano
    con le lettere comprese tra la a e la l. È possibile utilizzare
    il comando seguente:

        Get-ChildItem c:\techdocs\[a-l]*.txt

    Il comando utilizza un carattere jolly di intervallo ([a-l]) per
    specificare che il nome file deve iniziare con una lettera
    compresa fra la a e la l. Nel comando viene quindi utilizzato il
    carattere jolly asterisco come segnaposto per qualsiasi carattere
    compreso fra la prima lettera e l'estensione di file.

VEDERE ANCHE
    about_Language_Keywords


about_Windows_PowerShell_2.0

ARGOMENTO
    about_Windows_PowerShell_2.0

DESCRIZIONE BREVE
    Descrive le nuove funzionalità incluse in Windows PowerShell 2.0.

DESCRIZIONE DETTAGLIATA
    In Windows PowerShell 2.0 sono incluse diverse importanti
    funzionalità che ne estendono l'utilizzo, ne migliorano l'usabilità e
    consentono di controllare e gestire in modo più facile e completo gli
    ambienti basati su Windows.

    Windows PowerShell 2.0 garantisce la compatibilità con le
    versioni precedenti. Cmdlet, provider, snap-in, script, funzioni
    e profili progettati per Windows PowerShell 1.0 funzionano in Windows
    PowerShell 2.0 senza alcuna modifica.

NUOVE FUNZIONALITÀ
    Windows PowerShell 2.0 include le nuove funzionalità seguenti.

  Comunicazione remota

      Windows PowerShell 2.0 consente di eseguire comandi in uno o
      più computer remoti con un solo comando di Windows PowerShell.
      È possibile eseguire comandi singoli o creare una connessione
      permanente (sessione) per eseguire una serie di comandi
      correlati. È inoltre possibile avviare una sessione con un
      computer remoto in modo che i comandi digitati vengano eseguiti
      direttamente nel computer remoto.

      Le funzionalità di comunicazione remota di Windows PowerShell
      sono compilate in Gestione remota Windows, l'implementazione
      Microsoft del protocollo WS-Management, un protocollo standard
      per le comunicazioni basato su SOAP e compatibile con i firewall.

      Nei computer remoti devono essere installati Windows PowerShell 2.0,
      Microsoft .NET Framework 2.0 e il servizio Gestione remota Windows.
      I comandi remoti sono supportati in tutti i sistemi operativi che
      supportano Windows PowerShell. L'utente corrente deve disporre delle
      autorizzazioni per eseguire comandi nei computer remoti. Per ulteriori
      informazioni, vedere about_Remote_Requirements.

      Per supportare la comunicazione remota, sono stati aggiunti i
      cmdlet Invoke-Command, Enter-PSSession ed Exit-PSSession, con
      altri cmdlet che contengono il sostantivo PSSession. Questi cmdlet
      consentono di creare e gestire connessioni permanenti.

      È inoltre stato aggiunto il parametro ComputerName a diversi
      cmdlet, tra cui Get-Process, Get-Service e Get-Eventlog. Questo
      parametro consente di ottenere informazioni sui computer remoti.
      Questi cmdlet utilizzano i metodi .NET Framework per ottenere i
      dati, pertanto non si basano sulla comunicazione remota di Windows
      PowerShell. Non richiedono alcun nuovo programma, né operazioni di
      configurazione. Per ulteriori informazioni, vedere l'argomento della
      Guida relativo a ciascun cmdlet.

      Per ulteriori informazioni sui comandi remoti, vedere about_Remote e
      about_Remote_FAQ. Per ulteriori informazioni sulle sessioni, vedere
      about_PSSessions.

  Windows PowerShell ISE

      Windows PowerShell 2.0 include Windows PowerShell Integrated
      Scripting Environment (ISE), un'applicazione host che consente
      di eseguire comandi e progettare, scrivere script, nonché
      eseguirne il test e il debug in un ambiente grafico,
      contraddistinto dal colore e basato su Unicode.

      Windows PowerShell ISE richiede Microsoft .NET Framework 3.0 o
      versioni successive.

      Windows PowerShell ISE include:

      -  Un riquadro Comando che consente di eseguire comandi
         interattivi come se si utilizzasse la console di Windows
         PowerShell. È sufficiente digitare un comando, quindi
         premere INVIO. L'output viene visualizzato nel riquadro Output.

      -  Un riquadro Script che consente di comporre, modificare ed
         eseguire funzioni e script, nonché eseguirne il debug.

      -  Più schede, ciascuna con un riquadro Comando e un riquadro
         Script, che consentono di eseguire una o più attività in modo
         indipendente.

      Windows PowerShell ISE è destinato a utenti principianti ed
      esperti.

  Processi in background

      I processi in background sono comandi eseguiti in modo
      asincrono. Quando si esegue un processo in background, il
      prompt dei comandi viene immediatamente restituito, anche se il
      comando è ancora in esecuzione. È possibile utilizzare la
      funzionalità di processo in background per eseguire in
      background un comando complesso in modo da utilizzare la
      sessione per altre attività durante l'esecuzione del comando.

      È possibile eseguire un processo in background in un computer
      locale o remoto, quindi salvare i risultati nel computer locale
      o remoto. Per eseguire un processo in modalità remota,
      utilizzare il cmdlet Invoke-Command.

      Windows PowerShell include un set di cmdlet che contengono il
      sostantivo Job (cmdlet di processo). Utilizzare questi cmdlet per
      la creazione, l'avvio, la gestione e l'eliminazione di processi
      in background e per l'acquisizione dei risultati di un processo
      in background. Per ottenere un elenco dei cmdlet di processo (job),
      digitare il comando seguente:

          get-command *-job

      Per ulteriori informazioni sui processi in background, vedere
      about_Jobs.

  Script Debugger

      Windows PowerShell 2.0 include un debugger basato su cmdlet per
      script e funzioni. Il debugger è supportato da un'API pubblica
      completamente documentata che è possibile utilizzare per
      compilare un debugger personalizzato o per personalizzare o
      estendere il debugger.

      I cmdlet del debugger consentono di impostare punti di
      interruzione su righe, colonne, variabili e comandi. Questi
      cmdlet consentono di gestire i punti di interruzione
      e visualizzare lo stack di chiamate. È possibile creare
      punti di interruzione condizionali e specificare azioni
      personalizzate in corrispondenza di un punto di interruzione,
      ad esempio l'esecuzione di diagnostica e la registrazione
      di script.

      Quando si raggiunge un punto di interruzione, Windows
      PowerShell sospende l'esecuzione e avvia il debugger.
      Il debugger include un set di comandi personalizzati che
      consentono di eseguire il codice un'istruzione alla volta.
      È inoltre possibile eseguire comandi standard di Windows
      PowerShell per visualizzare i valori delle variabili e
      utilizzare i cmdlet per verificare i risultati.

      Per ulteriori informazioni sul debug, vedere about_Debuggers.

  Sezione Data

      Negli script progettati per Windows PowerShell 2.0 possono
      essere presenti una o più sezioni DATA che isolano i dati dalla
      logica dello script. I dati nella nuova sezione DATA sono
      limitati a un sottoinsieme specificato del linguaggio di
      scripting di Windows PowerShell.

      In Windows PowerShell 2.0 la sezione DATA viene utilizzata per
      supportare l'internazionalizzazione degli script. È possibile
      utilizzare la sezione DATA per isolare e identificare le
      stringhe dei messaggi utente che verranno tradotte in più lingue
      dell'interfaccia utente.

      Per ulteriori informazioni, vedere about_Data_Sections.

  Internazionalizzazione degli script

      Le funzionalità di internazionalizzazione degli script di
      Windows PowerShell 2.0 consentono di offrire una migliore
      esperienza agli utenti in tutto il mondo. Con l'internazionalizz
      azione degli script è possibile utilizzare script e funzioni per
      visualizzare messaggi e testo della Guida agli utenti in più lingue.

      Le funzionalità di internazionalizzazione degli script eseguono
      una query sulle impostazioni cultura ($PsUICulture)
      dell'interfaccia utente del sistema operativo durante
      l'esecuzione, quindi importano le stringhe di testo appropriate
      tradotte per consentirne la visualizzazione da parte dell'utente.
      Nella sezione Data è possibile archiviare stringhe di testo
      separate dal codice per poterle identificare con facilità. Un
      nuovo cmdlet, ConvertFrom-StringData, converte le stringhe di
      testo in tabelle hash di tipo dizionario per facilitare la
      traduzione.

      Per ulteriori informazioni, vedere about_Script_Internationaliza
      tion.

  Cmdlet WMI

      La funzionalità Strumentazione gestione Windows (WMI) di
      Windows PowerShell 2.0 è stata migliorata con l'aggiunta dei
      cmdlet seguenti:

          - Remove-WmiObject
          - Set-WmiInstance
          - Invoke-WmiMethod

      Sono stati aggiunti nuovi parametri al cmdlet Get-WmiObject.
      Tutti i cmdlet WMI supportano ora i seguenti parametri:

          - EnableAllPrivileges
          - Impersonation
          - Authentication
          - Authority

      Questi nuovi parametri offrono un controllo più preciso sulla
      configurazione di sicurezza delle operazioni WMI senza
      richiedere l'utilizzo diretto dei tipi della libreria di classi .NET
      Framework.

      Per un elenco dei cmdlet WMI, digitare il comando seguente:

          get-help *wmi*

      Per ottenere la Guida per ogni cmdlet, digitare get-help
      seguito dal nome del cmdlet.

  Cmdlet Get-WinEvent

      Il cmdlet Get-WinEvent ottiene eventi dai registri del
      Visualizzatore eventi e dai file del registro eventi di Traccia
      eventi per Windows nei computer locali e remoti. Consente di
      ottenere eventi dai registri eventi classici e dai registri
      eventi di Windows introdotti in Windows Vista.

      È possibile utilizzare Get-WinEvent per ottenere gli oggetti che
      rappresentano registri eventi, provider del registro eventi ed
      eventi nei registri. Get-WinEvent consente di combinare eventi
      di origini diverse in un solo comando. Supporta query avanzate
      in formato XPath (XML Path Language), XML e tabella hash.

      Get-WinEvent richiede Windows Vista o Windows Server 2008 e
      Microsoft .NET Framework 3.5.

  Cmdlet Out-Gridview

      Il cmdlet Out-GridView visualizza i risultati di altri comandi
      in una tabella interattiva nella quale è possibile cercare,
      ordinare, raggruppare e filtrare i risultati. Ad esempio, è
      possibile inviare a Out-GridView i risultati di un comando
      Get-Process, Get-WmiObject, Get-WinEvent o Get-Eventlog, quindi
      utilizzare le funzionalità di tabella per esaminare i dati.

        help out-gridview -full

  Cmdlet Add-Type

      Il cmdlet Add-Type consente di aggiungere tipi .NET Framework a
      Windows PowerShell dal codice sorgente di un altro linguaggio
      .NET Framework.

      Con Add-Type viene compilato il codice sorgente che crea
      i tipi e genera gli assembly che contengono i nuovi tipi .NET
      Framework. È quindi possibile utilizzare i tipi .NET Framework
      nei comandi di Windows PowerShell insieme ai tipi di oggetti
      standard forniti da .NET Framework.

      È inoltre possibile utilizzare Add-Type per caricare assembly
      nella sessione in modo da poter utilizzare i tipi negli
      assembly in Windows PowerShell.

      Add-Type consente di sviluppare nuovi tipi .NET Framework, di
      utilizzare tipi .NET Framework nelle librerie C# e di accedere
      alle API Win32.

      Per ulteriori informazioni, vedere Add-Type.

  Notifica degli eventi

      Windows PowerShell 2.0 include la nuova funzionalità di
      notifica degli eventi. Gli utenti possono registrare e
      sottoscrivere eventi, ad esempio eventi di Windows PowerShell,
      WMI o .NET Framework. Possono inoltre ascoltare, inoltrare ed
      eseguire operazioni sugli eventi di gestione e di sistema sia
      in modo sincrono sia in modo asincrono.

      Gli sviluppatori possono scrivere applicazioni che utilizzano
      l'architettura degli eventi per ricevere notifiche sulle
      modifiche dello stato. Gli utenti possono scrivere script che
      sottoscrivono vari eventi e interagiscono in base al contenuto.

      In Windows PowerShell sono disponibili cmdlet per creare nuovi
      eventi, ottenere eventi e sottoscrizioni di eventi, registrare
      e annullare la registrazione di eventi, attendere ed eliminare
      eventi. Per ulteriori informazioni su questi cmdlet, digitare
      il comando seguente:

          get-command *-event

  Moduli

      I moduli di Windows PowerShell consentono di dividere e
      organizzare gli script di Windows PowerShell in unità indipendenti,
      autosufficienti e riutilizzabili. Il codice di un modulo viene
      eseguito nel proprio contesto, pertanto non aggiunge, non crea
      conflitti, né sovrascrive variabili, funzioni, alias e altre
      risorse della sessione.

      È possibile scrivere, distribuire, combinare, condividere e
      riutilizzare moduli per compilare script semplici e
      applicazioni complesse.

      Windows PowerShell 2.0 include cmdlet che consentono di
      aggiungere, ottenere e rimuovere moduli ed esportare membri di
      modulo. Per ulteriori informazioni sui cmdlet correlati ai
      moduli, digitare il comando seguente:

          get-command *-module*

  Transazioni

      In Windows PowerShell 2.0 è previsto il supporto per le
      transazioni. Le transazioni consentono di annullare un'intera
      serie di operazioni. Sono disponibili solo per operazioni che
      supportano le transazioni e sono progettate per applicazioni
      che richiedono atomicità, coerenza, isolamento e recuperabilità,
       ad esempio database e accodamento di messaggi.

      I cmdlet e i provider che supportano le transazioni dispongono
      di un nuovo parametro UseTransaction. Per avviare un'operazione
      all'interno di una transazione, utilizzare il cmdlet
      Start-Transaction. Quando si utilizzano i cmdlet che eseguono
      l'operazione, utilizzare il parametro UseTransaction di ogni
      cmdlet se si desidera che il comando faccia parte di una
      transazione.

      Se un comando della transazione ha esito negativo in un punto
      qualsiasi, utilizzare il cmdlet Rollback-Transaction per
      annullare tutti i comandi nella transazione.
      Se tutti i comandi hanno esito positivo, utilizzare il cmdlet
      Commit-Transaction per rendere permanenti le azioni dei comandi.

      Windows PowerShell 2.0 include cmdlet che consentono di avviare
      e utilizzare le transazioni ed eseguirne il commit e il
      rollback. Per informazioni su questi cmdlet, digitare il
      comando seguente:

          get-command *transaction*

 Modifiche importanti rispetto a Windows PowerShell 1.0

     -- Il valore della voce del Registro di sistema PowerShellVersion in
        HKLM\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine è stato
        modificato nella versione 2.0.

     -- Sono stati aggiunti nuovi cmdlet e nuove variabili. Queste
        aggiunte potrebbero essere in conflitto con variabili e
        funzioni nei profili e negli script.

     -- L'operatore -IEQ esegue un confronto sui caratteri senza
        distinzione tra maiuscole e minuscole.

     -- Il cmdlet Get-Command ottiene funzioni per impostazione
        predefinita, oltre ai cmdlet.

     -- Non è possibile reindirizzare al cmdlet Out-Host i comandi
        nativi che generano un'interfaccia utente.

     -- Le nuove parole chiave del linguaggio Begin, Process, End e
        Dynamic Param potrebbero essere in conflitto con parole
        simili utilizzate in script e funzioni. L'interpretazione di
        queste parole come parole chiave del linguaggio potrebbe
        generare errori di analisi.

     -- La risoluzione dei nomi dei cmdlet è stata modificata. In Windows
        PowerShell 1.0 viene generato un errore di runtime quando due
        snap-in di Windows PowerShell esportano cmdlet con lo stesso
        nome. In Windows PowerShell 2.0 l'ultimo cmdlet aggiunto alla
        sessione viene eseguito quando si digita il nome del comando.
        Per eseguire un comando che non viene eseguito per impostazione
        predefinita, qualificare il nome del cmdlet con il nome dello
        snap-in o del modulo nel quale è stato originato.

     -- Un nome di funzione seguito da "-?" consente di ottenere
        l'argomento della Guida per la funzione, se disponibile.

    --  La risoluzione dei parametri per i metodi di Microsoft .NET
        Framework è stata modificata.
        Se in Windows PowerShell 1.0 viene chiamato un metodo .NET
        di overload con più di una sintassi ottimale, non viene
        segnalato alcun errore. In Windows PowerShell 2.0 viene
        segnalato un'errore di ambiguità.

        Inoltre, in Windows PowerShell 2.0 l'algoritmo per la scelta
        del metodo ottimale è stato notevolmente modificato per
        ridurre il numero di ambiguità.

     -- Se si enumera una raccolta nella pipeline e si tenta di
        modificare la raccolta nella pipeline, in Windows PowerShell viene
        generata un'eccezione.

        Ad esempio, i comandi seguenti funzionerebbero in Windows
        PowerShell 1.0 ma avrebbero esito negativo dopo la prima
        iterazione della pipeline in Windows PowerShell 2.0.

            $h = @{Name="Hello"; Value="Test"}
            $h.keys | foreach-object {$h.remove($_)}

        Per evitare questo errore, creare una sottoespressione per
        l'enumeratore utilizzando i caratteri $(). Ad esempio:

        $($h.keys) | foreach-object {$h.remove($_)}

      Per ulteriori informazioni su Windows PowerShell 2.0, visitare
      i siti Web seguenti:

      -- Sito Web di Windows PowerShell
         http://go.microsoft.com/fwlink/?LinkID=106031

      -- Blog del team di Windows PowerShell:
         http://go.microsoft.com/fwlink/?LinkId=143696

VEDERE ANCHE
    about_Data_Sections
    about_Debuggers
    about_Functions_Advanced
    about_Jobs
    about_Join
    about_PSSessions
    about_Remote
    about_Script_Internationalization
    about_Split


about_Windows_PowerShell_ISE

ARGOMENTO
    about_PowerShell_ISE

DESCRIZIONE BREVE
    Descrive le funzionalità e i requisiti di sistema di Windows
    PowerShell Integrated Scripting Environment (ISE).

DESCRIZIONE DETTAGLIATA
    Windows PowerShell ISE è un'applicazione host per Windows PowerShell.
    In Windows PowerShell ISE, è possibile eseguire comandi e scrivere,
    verificare ed eseguire il debug di script in una sola interfaccia
    utente grafica basata su Windows. Le funzionalità includono la
    modifica a più righe, il completamento tramite tasto TAB, la sintassi
    contraddistinta dal colore, l'esecuzione selettiva, la Guida sensibile
    al contesto e il supporto per le lingue con scrittura da destra a sinistra.

    Nota: poiché questa funzionalità richiede un'interfaccia utente, non
          funziona nelle installazioni Server Core di Windows Server.

          Windows PowerShell ISE è compilato su Windows Presentation
          Foundation (WPF). Se il rendering degli elementi grafici di
          Windows PowerShell ISE non viene eseguito correttamente nel
          sistema in uso, è possibile risolvere il problema regolando le
          impostazioni di rendering della grafica del sistema.
          Per ulteriori informazioni, vedere "Impostazioni del Registro di
          sistema per il rendering della grafica" in MSDN all'indirizzo
          http://go.microsoft.com/fwlink/?LinkId=144711.

 Esecuzione di comandi interattivi

    È possibile eseguire qualsiasi espressione o comando di Windows
    PowerShell in Windows PowerShell ISE. È possibile utilizzare cmdlet,
    provider, snap-in e moduli in modo analogo a quanto avviene dalla
    console di Windows PowerShell.

    È possibile digitare o incollare comandi interattivi nel riquadro
    Comando. Per eseguire i comandi, è possibile utilizzare pulsanti,
    voci di menu e tasti di scelta rapida.

    È possibile utilizzare la funzionalità di modifica a più righe
    per digitare o incollare diverse righe di codice per volta nel
    riquadro Comando. Quando si preme il tasto FRECCIA SU per
    richiamare il comando precedente, vengono richiamate tutte le
    righe del comando. Quando si digitano comandi, premere
    MAIUSC+INVIO per visualizzare una nuova riga vuota sotto la riga
    corrente.

 Visualizzazione dell'output

    I risultati di comandi e script vengono visualizzati nel riquadro
    Output. È possibile spostare o copiare i risultati dal riquadro Output
    tramite tasti di scelta rapida o la barra degli strumenti Output e
    incollarli in altri programmi. È inoltre possibile cancellare il
    contenuto del riquadro Output facendo clic sul pulsante Cancella
    riquadro di output o digitando uno dei comandi seguenti:

        clear-host

        cls

 Scrittura di script e funzioni

    Nel riquadro Script, è possibile aprire, creare, modificare ed
    eseguire script. Il riquadro Script consente di modificare gli script
    tramite pulsanti e tasti di scelta rapida.
    È inoltre possibile copiare, tagliare e incollare il testo tra il
    riquadro Script e il riquadro Comando.

    È possibile utilizzare la funzionalità di esecuzione selettiva
    per eseguire uno script in parte o per intero. Per eseguire parte
    di uno script, selezionare il testo che si desidera eseguire,
    quindi fare clic sul pulsante Esegui script. In alternativa,
    premere F5.

 Debug di script

    È possibile utilizzare il debugger di Windows PowerShell ISE per
    eseguire il debug di uno script o di una funzione di Windows
    PowerShell. Quando si esegue il debug di uno script, è possibile
    utilizzare voci di menu e tasti di scelta rapida per eseguire
    molte delle attività che è possibile eseguire dalla console di Windows
    PowerShell. Ad esempio, per impostare un punto di interruzione riga
    in uno script, fare clic con il pulsante destro del mouse sulla riga
    di codice, quindi fare clic su Imposta/Rimuovi punto di interruzione.

    È inoltre possibile utilizzare i cmdlet del debugger di Windows
    PowerShell nel riquadro Comando in modo analogo a quanto avviene dalla
    console.

 Completamento tramite tasto TAB

    In Windows PowerShell ISE è disponibile la funzionalità di
    completamento tramite tasto TAB per nomi di cmdlet, nomi di
    parametro e tipi statici di Microsoft .NET Framework. Per
    utilizzare questa funzionalità, digitare l'inizio del nome,
    quindi premere il tasto TAB.

 per ottenere informazioni

    In Windows PowerShell ISE è disponibile un file della Guida compilato
    relativo a Windows PowerShell ISE e Windows PowerShell in cui è possibile
    effettuare ricerche. Questo file contiene tutta la Guida accessibile
    dal cmdlet Get-Help. Per visualizzare il file della Guida in Windows
    PowerShell ISE, utilizzare il menu ? oppure premere F1.

    La Guida è sensibile al contesto. Ad esempio, se si digita
    Invoke-Item e si preme F1, viene visualizzato l'argomento della Guida
    relativo al cmdlet Invoke-Item.

    È inoltre possibile utilizzare il cmdlet Get-Help in Windows
    PowerShell in modo analogo a quanto avviene dalla console di Windows
    PowerShell.

 Personalizzazione della visualizzazione

    È possibile utilizzare le funzionalità di Windows PowerShell ISE per
    spostarsi e ridimensionare i riquadri Comando, Output e Script. È
    possibile visualizzare e nascondere il riquadro Script, nonché
    modificare le dimensioni del testo in tutti i riquadri.

    È inoltre possibile utilizzare la variabile $Host per modificare
    alcuni aspetti di Windows PowerShell ISE, tra cui il titolo della
    finestra e i colori di primo piano e di sfondo nel riquadro
    Output. Inoltre, in Windows PowerShell ISE è disponibile la
    variabile host personalizzata $psgHost, che può essere utilizzata per
    personalizzare Windows PowerShell ISE, ad esempio aggiungendo menu e
    voci di menu.

 Profilo di Windows PowerShell ISE

    Windows PowerShell ISE dispone di un proprio profilo di Windows
    PowerShell, Microsoft.PowerShellISE_profile.ps1, in cui è possibile
    archiviare funzioni, alias, variabili e comandi che vengono utilizzati in
    Windows PowerShell ISE.

    In Windows PowerShell ISE, inoltre, sono disponibili gli elementi dei
    profili AllHosts di Windows PowerShell (CurrentUser\AllHosts e
    AllUsers\AllHosts), così come per qualsiasi programma host per Windows
    PowerShell. Tuttavia, gli elementi nei profili della console di Windows
    PowerShell non sono disponibili in Windows PowerShell ISE.

    Per istruzioni relative allo spostamento e alla riconfigurazione
    dei profili, vedere la Guida di Windows PowerShell ISE e
    about_Profiles.

 Requisiti di sistema

    -Sistemi operativi:
         - Windows 7
         - Windows Server 2008
         - Windows Server 2003 con Service Pack 2
         - Windows Vista con Service Pack 1
         - Windows XP con Service Pack 2

    - Microsoft .NET Framework 3.0

    - Per la comunicazione remota di Windows PowerShell è necessario
      disporre di Gestione remota Windows 2.0.

 Note

    - Il cmdlet Get-WinEvent richiede Windows Vista o versioni
      successive di Windows e Microsoft .NET Framework 3.5.

    - Il cmdlet Export-Counter può essere eseguito solo in Windows 7.

 Avvio di Windows PowerShell ISE

    - Per avviare Windows PowerShell ISE, fare clic sul pulsante Start,
      scegliere Tutti i programmi, Windows PowerShell, quindi fare clic su
      Windows PowerShell ISE.

    - Nella console di Windows PowerShell, Cmd.exe o nella casella Esegui,
      digitare "powershell_ise.exe".

VEDERE ANCHE
    about_Profiles
    Get-Help


about_WMI_Cmdlets

ARGOMENTO
    about_WMI_cmdlets

DESCRIZIONE BREVE
    Fornisce informazioni complementari su Strumentazione gestione
    Windows (WMI) e Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    In questo argomento vengono fornite informazioni sulla tecnologia
    WMI, sui cmdlet WMI per Windows PowerShell, sulla comunicazione
    remota basata su WMI, sugli acceleratori WMI e sulla risoluzione
    dei problemi relativi a WMI. Vengono inoltre forniti
    collegamenti a ulteriori informazioni su WMI.

  Informazioni su WMI

      Strumentazione gestione Windows (WMI) è l'implementazione di
      Microsoft di Web-Based Enterprise Management (WBEM),
      un'iniziativa di settore per lo sviluppo di una tecnologia
      standard per l'accesso alle informazioni di gestione in un
      ambiente aziendale. WMI utilizza lo standard di settore Common
      Information Model (CIM) per rappresentare sistemi,
      applicazioni, reti, dispositivi e altri componenti gestiti.
      CIM è sviluppato e gestito da Distributed Management Task
      Force (DMTF). È possibile utilizzare WMI per gestire computer
      locali e remoti. Ad esempio, è possibile utilizzare WMI per:

          -- Avviare un processo in un computer remoto.

          -- Riavviare un computer in modalità remota.

          -- Ottenere un elenco delle applicazioni installate in un
             computer locale o remoto.

          -- Eseguire query sui registri eventi di Windows in un
             computer locale o remoto.

  Cmdlet WMI per Windows PowerShell

      Windows PowerShell implementa la funzionalità WMI tramite un set
      di cmdlet disponibili in Windows PowerShell per impostazione
      predefinita. È possibile utilizzare questi cmdlet per
      completare le attività end-to-end necessarie per la gestione
      dei computer locali e remoti.

      Sono inclusi i seguenti cmdlet WMI.

      Cmdlet                 Descrizione
      ------------------     ----------------------------------------------

      Get-WmiObject          Ottiene le istanze delle classi WMI o
                             informazioni relative alle classi disponibili.

      Invoke-WmiMethod       Chiama metodi WMI.

      Register-WmiEvent      Sottoscrive un evento WMI.

      Remove-WmiObject       Elimina classi e istanze WMI.

      Set-WmiInstance        Crea o modifica le istanze di classi WMI.

  Comandi di esempio

      Con il comando seguente vengono visualizzate informazioni BIOS
      per il computer locale.

          C:\PS> get-wmiobject win32_bios | format-list *

      Con il comando seguente vengono visualizzate informazioni
      relative al servizio Gestione remota Windows per tre computer remoti.

          C:\PS> get-wmiobject -query "select * from win32_service
             where name='WinRM'" -computername server01, server01, server03

      Con il comando seguente più complesso vengono terminate tutte le
      istanze di un programma.

          C:\PS> notepad.exe
          C:\PS> $np = get-wmiobject -query "select * from win32_process
             where name='notepad.exe'"
          C:\PS> $np | remove-wmiobject

  Comunicazione remota basata su WMI

      Sebbene sia utile poter gestire un sistema locale tramite WMI,
      sono le funzionalità di comunicazione remota che rendono WMI
      un potente strumento di amministrazione. WMI utilizza il
      Distributed Component Object Model (DCOM) di Microsoft per
      connettersi ai sistemi e gestirli. Potrebbe essere necessario
      configurare alcuni sistemi per consentire le connessioni DCOM.
      Le impostazioni del firewall e le autorizzazioni DCOM bloccate
      possono ostacolare la gestione remota dei sistemi tramite WMI.

  Acceleratori di tipo WMI

      Windows PowerShell include acceleratori di tipo WMI
      (collegamenti) che consentono un accesso più diretto agli
      oggetti WMI rispetto a un approccio con acceleratore non di tipo.

      In WMI, sono supportati i seguenti acceleratori di tipo:

          [WMISEARCHER] - Collegamento per la ricerca di oggetti WMI.

          [WMICLASS] - Collegamento per l'accesso alle proprietà e ai
                       metodi statici di una classe.

          [WMI] - Collegamento per l'acquisizione di una sola istanza
                  di una classe.

      [WMISEARCHER] è un acceleratore di tipo per ManagementObjectSearcher.

      Può accettare un costruttore di stringhe per creare una funzione
      di ricerca su cui è possibile eseguire un comando GET().

      Ad esempio:

      PS> $s = [WmiSearcher]'Select * from Win32_Process where Handlecount > 1000'
      PS> $s.Get() |sort handlecount |ft handlecount,__path,name -auto

      handlecount  __PATH                                              name
      -----------  ------                                              ----
      1105         \\SERVER01\root\cimv2:Win32_Process.Handle="3724"   powershell...
      1132         \\SERVER01\root\cimv2:Win32_Process.Handle="1388"   winlogon.exe
      1495         \\SERVER01\root\cimv2:Win32_Process.Handle="2852"   iexplore.exe
      1699         \\SERVER01\root\cimv2:Win32_Process.Handle="1204"   OUTLOOK.EXE
      1719         \\SERVER01\root\cimv2:Win32_Process.Handle="1912"   iexplore.exe
      2579         \\SERVER01\root\cimv2:Win32_Process.Handle="1768"   svchost.exe

      [WMICLASS] è un acceleratore di tipo per ManagementClass.
      Dispone di un costruttore di stringhe che accetta un percorso WMI locale o
      assoluto di una classe WMI e restituisce un oggetto associato a tale classe.

      Ad esempio:

      PS> $c = [WMICLASS]"root\cimv2:WIn32_Process"
      PS> $c |fl *
      Name             : Win32_Process
      __GENUS          : 1
      __CLASS          : Win32_Process
      __SUPERCLASS     : CIM_Process
      __DYNASTY        : CIM_ManagedSystemElement
      __RELPATH        : Win32_Process
      __PROPERTY_COUNT : 45
      __DERIVATION     : {CIM_Process, CIM_LogicalElement, CIM_ManagedSystemElement}
      __SERVER         : SERVER01
      __NAMESPACE      : ROOT\cimv2
      __PATH           : \\SERVER01\ROOT\cimv2:Win32_Process

      [WMI] è un acceleratore di tipo per ManagementObject. Dispone di
      un costruttore di stringhe che accetta un percorso WMI locale
      o assoluto di un'istanza WMI e restituisce un oggetto
      associato a tale istanza.

      Ad esempio:

      PS> $p = [WMI]'\\SERVER01\root\cimv2:Win32_Process.Handle="1204"'
      PS> $p.Name
      OUTLOOK.EXE

  Risoluzione dei problemi relativi a WMI

      Di seguito vengono riportati i problemi più comuni che si
      possono verificare quando si tenta la connessione a un computer remoto.

    Problema 1: il computer remoto non è online.

      Se un computer è offline, non sarà possibile stabilire una connessione
      tramite WMI. È possibile che venga visualizzato il messaggio di errore seguente:

          "Il computer server remoto non esiste o non è disponible"

      Se viene visualizzato questo messaggio di errore, verificare che
      il computer sia online. Tentare di effettuare il ping del computer remoto.

    Problema 2: non si dispone dei diritti di amministratore locale
                per il computer remoto.

      Per utilizzare WMI in modalità remota, è necessario disporre dei
      diritti di amministratore locale per il computer remoto. In
      caso contrario, l'accesso al computer sarà negato.

      Per verificare la sicurezza dello spazio dei nomi:

          a. Fare clic sul pulsante Start, fare clic con il pulsante
             destro del mouse su Risorse del computer e scegliere Gestione.

          b. In Gestione computer, espandere Servizi e applicazioni,
             fare clic con il pulsante destro del mouse su Controllo WMI,
             quindi scegliere Proprietà.

          c. Nella finestra di dialogo Proprietà - Controllo WMI, fare
             clic sulla scheda Sicurezza.

    Problema 3: un firewall blocca l'accesso al computer remoto.

      WMI utilizza i protocolli DCOM (Distributed COM) e RPC (Remote
      Procedure Call) per attraversare la rete. Per impostazione
      predefinita, molti firewall bloccano il traffico DCOM e RPC.
      Se il firewall in uso blocca questi protocolli, la connessione avrà
      esito negativo. Ad esempio, Windows Firewall in
      Microsoft Windows XP Service Pack 2 è configurato per bloccare
      automaticamente tutto il traffico di rete non richiesto, compreso
      il traffico DCOM e WMI. Nella configurazione predefinita,
      Windows Firewall rifiuta una richiesta WMI in ingresso e viene visualizzato
      il messaggio di errore seguente:

          "Il computer server remoto non esiste o non è disponible"

  Ulteriori informazioni su WMI

      Per ulteriori informazioni su WMI, vedere gli argomenti seguenti
      in MSDN (Microsoft Developer Network) Library.

          "Informazioni su WMI"
          http://go.microsoft.com/fwlink/?LinkId=142212

          "Risoluzione dei problemi relativi a WMI"
          http://go.microsoft.com/fwlink/?LinkId=142213

      Vedere inoltre l'argomento relativo ai segreti di Strumentazione
      gestione Windows, con informazioni sulla risoluzione dei
      problemi e suggerimenti, disponibile in Microsoft TechNet Script Center:

          http://go.microsoft.com/fwlink/?LinkId=142214

VEDERE ANCHE
    Versione online: http://go.microsoft.com/fwlink/?LinkId=142219
    Get-WmiObject
    Invoke-WmiMethod
    Register-WmiEvent
    Remove-WmiObject
    Set-WmiInstance


about_WS-Management_Cmdlets

ARGOMENTO
    about_WS-Management_Cmdlets

DESCRIZIONE BREVE
    Fornisce cenni preliminari su WS-Management per l'utilizzo dei
    relativi cmdlet in Windows PowerShell.

DESCRIZIONE DETTAGLIATA
    In questo argomento vengono forniti cenni preliminari su WS-Management
    per l'utilizzo dei relativi cmdlet in Windows PowerShell. Vengono inoltre
    forniti collegamenti a ulteriori informazioni su WS-Management.
    L'implementazione Microsoft di WS-Management è anche nota come Gestione
    remota Windows (WinRM).

  Informazioni su WS-Management

      Gestione remota Windows è l'implementazione Microsoft del
      protocollo WS-Management, un protocollo standard basato su
      SOAP e compatibile con i firewall che consente l'interazione
      tra hardware e sistemi operativi di fornitori diversi. La
      specifica del protocollo WS-Management fornisce una modalità
      comune affinché i sistemi accedano e scambino informazioni
      di gestione attraverso un'infrastruttura IT. WS-Management
      e l'Interfaccia IPMI (Intelligent Platform Management
      Interface), insieme a Raccolta eventi, sono componenti delle
      funzionalità di Gestione hardware di Windows.

      Il protocollo WS-Management è basato sulle seguenti specifiche
      standard del servizio Web: HTTPS, SOAP su HTTP (profilo WS-I),
      SOAP 1.2, WS-Addressing, WS-Transfer, WS-Enumeration e WS-Eventing.

  WS-Management e WMI

      WS-Management può essere utilizzato per recuperare dati esposti
      da Strumentazione gestione Windows (WMI). È possibile ottenere
      dati WMI con script o applicazioni che utilizzano l'API di
      scripting WS-Management o tramite lo strumento della riga
      di comando di Gestione remota Windows. WS-Management supporta
      la maggior parte delle operazioni e delle classi WMI comuni,
      inclusi gli oggetti incorporati. WS-Management può sfruttare
      WMI per raccogliere dati sulle risorse o gestire risorse in
      computer basati su Windows. È pertanto possibile ottenere
      dati su oggetti quali dischi, schede di rete, servizi o
      processi dell'organizzazione tramite il set esistente di
      classi WMI. È inoltre possibile accedere ai dati hardware
      disponibili dal provider IPMI WMI standard.

  Provider di WS-Management Windows PowerShell

      Il provider WS-Management fornisce una visualizzazione
      gerarchica nelle impostazioni di configurazione di WS-Management
      disponibili. Il provider consente di esplorare e impostare varie
      opzioni di configurazione di WS-Management.

  Configurazione di WS-Management

      Se WS-Management non è installato e configurato, la
      comunicazione remota di Windows PowerShell non è disponibile,
      i cmdlet e gli script di WS-Management non vengono eseguiti
      e il provider di WS-Management non può eseguire operazioni
      sui dati. Lo strumento della riga di comando di WS-Management,
      Gestione remota Windows e l'inoltro eventi dipendono inoltre
      dalla configurazione di WS-Management.

  Cmdlet di WS-Management

      La funzionalità di WS-Management viene implementata in Windows PowerShell
      tramite un modulo che contiene un set di cmdlet e il provider di WS-Management.
      È possibile utilizzare questi cmdlet per completare le attività end-to-end
      necessarie alla gestione delle impostazioni di WS-Management in computer
      locali e remoti.

      Sono disponibili i cmdlet di WS-Management seguenti.

     Cmdlet di connessione

     --Connect-WSMan: connette il computer locale al servizio WS-Management
       (Gestione remota Windows) in un computer remoto.

     --Disconnect-WSMan: disconnette il computer locale dal servizio
       WS-Management (Gestione remota Windows) in un computer remoto.

     Cmdlet di gestione dati

     -- Get-WSManInstance: visualizza informazioni di gestione per
        un'istanza di risorsa specificata da un URI di risorsa.

     -- Invoke-WSManAction: richiama un'azione sull'oggetto di
        destinazione specificato dall'URI di risorsa e dai selettori.

     -- New-WSManInstance: crea una nuova istanza di risorsa di gestione.

     -- Remove-WSManInstance: elimina un'istanza di risorsa di gestione.

     -- Set-WSManInstance: modifica le informazioni di gestione
        relative a una risorsa.

     Cmdlet di configurazione e installazione

     -- Set-WSManQuickConfig: configura il computer locale per la gestione remota.
        È possibile utilizzare il cmdlet Set-WSManQuickConfig per configurare
        WS-Management affinché consenta le connessioni remote al servizio
        WS-Management (Gestione remota Windows). Il cmdlet
        Set-WSManQuickConfig consente di eseguire le operazioni seguenti:

    - Determina se il servizio WS-Management (Gestione remota Windows)
          è in esecuzione. Se il servizio Gestione remota Windows non è in
          esecuzione, viene avviato dal cmdlet Set-WSManQuickConfig.

    - Imposta su automatico il tipo di avvio del servizio WS-Management
          (Gestione remota Windows).

    - Crea un listener che accetta le richieste da qualsiasi indirizzo IP.
          Il protocollo di trasporto predefinito è HTTP.

    - Abilita un'eccezione del firewall per il traffico di WS-Management.

    Nota: per eseguire questo cmdlet in Windows Vista, Windows Server 2008 e
              nelle versioni successive di Windows, è necessario avviare Windows
              PowerShell con l'opzione "Esegui come amministratore".

     --Test-WSMan: verifica che WS-Management sia installato e configurato.
       Il cmdlet Test-WSMan verifica se il servizio WS-Management
       (Gestione remota Windows) sia configurato e in esecuzione in un computer
       locale o remoto.

     -- Disable-WSManCredSSP: disabilita l'autenticazione CredSSP in
        un computer client.

     -- Enable-WSManCredSSP: abilita l'autenticazione CredSSP in un
        computer client.

     -- Get-WSManCredSSP: ottiene la configurazione relativa a CredSSP
        per un computer client.

     Cmdlet specifici di WS-Management

     --New-WSManSessionOption: crea un oggetto WSManSessionOption da utilizzare
       come input per uno o più parametri di un cmdlet di WS-Management.

  Informazioni aggiuntive su WS-Management

    Per ulteriori informazioni su WS-Management, vedere gli argomenti
    seguenti in MSDN Library.

      "Gestione remota Windows"
      http://go.microsoft.com/fwlink/?LinkId=142321

      "Sulla Gestione remota Windows"
      http://go.microsoft.com/fwlink/?LinkId=142322

      "Installazione e configurazione per Gestione remota Windows"
      http://go.microsoft.com/fwlink/?LinkId=142323

      "Architettura di Gestione remota Windows"
      http://go.microsoft.com/fwlink/?LinkId=142324

      "Protocollo WS-Management"
      http://go.microsoft.com/fwlink/?LinkId=142325

      "Gestione remota Windows e WMI"
      http://go.microsoft.com/fwlink/?LinkId=142326

      "URI di risorsa"
      http://go.microsoft.com/fwlink/?LinkId=142327

      "Gestione remota dell'hardware"
      http://go.microsoft.com/fwlink/?LinkId=142328

      "Eventi"
      http://go.microsoft.com/fwlink/?LinkId=142329

VEDERE ANCHE
    Versione online: http://go.microsoft.com/fwlink/?LinkId=142331
    Connect-WSMan
    Disable-WSManCredSSP
    Disconnect-WSMan
    Enable-WSManCredSSP
    Get-WSManCredSSP
    Get-WSManInstance
    Invoke-WSManAction
    New-WSManInstance
    Remove-WSManInstance
    Set-WSManInstance
    Set-WSManQuickConfig
    Set-WSManSessionOption
    Test-WSMan

PAROLE CHIAVE
    about_WSMAN about_WinRM


Argomenti della Guida relativi ai cmdlet di Windows PowerShell

In questa sezione sono contenuti gli argomenti della Guida relativi ai cmdlet installati con Windows PowerShell.

Display in verb order

Display in noun order

Cmdlet (ordinati in base al verbo)

Nome | Descrizione
Add-Computer | Aggiunge computer a un dominio o un gruppo di lavoro.
Add-Content | Aggiunge contenuto agli elementi specificati, ad esempio aggiunge parole a un file.
Add-History | Aggiunge voci alla cronologia della sessione.
Add-Member | Aggiunge un membro personalizzato definito dall'utente a un'istanza di un oggetto di Windows PowerShell.
Add-PSSnapin | Aggiunge uno o più snap-in di Windows PowerShell alla sessione corrente.
Add-Type | Aggiunge un tipo .NET (una classe) a una sessione di Windows PowerShell.
Checkpoint-Computer | Crea un punto di ripristino del sistema nel computer locale.
Clear-Content | Elimina il contenuto di un elemento, ad esempio eliminando il testo da un file, ma non elimina l'elemento stesso.
Clear-EventLog | Elimina tutte le voci dai registri eventi specificati nei computer locali o remoti.
Clear-History | Elimina le voci dalla cronologia dei comandi.
Clear-Item | Elimina il valore di un elemento, senza eliminare l'elemento stesso.
Clear-ItemProperty | Elimina il valore di una proprietà, senza eliminare la proprietà stessa.
Clear-Variable | Elimina il valore di una variabile.
Compare-Object | Confronta due set di oggetti.
Complete-Transaction | Esegue il commit della transazione attiva.
Connect-WSMan | Stabilisce la connessione al servizio WinRM in un computer remoto.
ConvertFrom-CSV | Converte le proprietà degli oggetti in formato CSV nelle versioni CSV degli oggetti originali.
ConvertFrom-SecureString | Converte una stringa protetta in una stringa standard crittografata.
ConvertFrom-StringData | Converte una stringa contenente una o più coppie "name=value" a una tabella hash.
Convert-Path | Converte un percorso di Windows PowerShell in un percorso di provider di Windows PowerShell.
ConvertTo-CSV | Converte gli oggetti .NET in una serie di stringhe di lunghezza variabile separate da virgole (CSV).
ConvertTo-Html | Converte gli oggetti .NET in HTML che possono essere visualizzati in un browser.
ConvertTo-SecureString | Converte stringhe standard crittografate in stringhe protette. Consente inoltre di convertire testo normale in stringhe protette. Viene utilizzato con ConvertFrom-SecureString e Read-Host.
ConvertTo-XML | Crea una rappresentazione di un oggetto basata su XML.
Copy-Item | Copia un elemento da un percorso a un altro all'interno di uno spazio dei nomi.
Copy-ItemProperty | Copia una proprietà e un valore da un percorso specificato in un altro percorso.
Debug-Process | Esegue il debug di uno o più processi in esecuzione nel computer locale.
Disable-ComputerRestore | Disabilita la funzionalità di ripristino di sistema nell'unità del file system specificata.
Disable-PSBreakpoint | Disabilita i punti di interruzione nella console corrente.
Disable-PSRemoting | Impedisce al computer di ricevere comandi remoti di Windows PowerShell.
Disable-PSSessionConfiguration | Nega l'accesso alle configurazioni di sessione nel computer locale.
Disable-WSManCredSSP | Disabilita l'autenticazione CredSSP (Credential Security Service Provider) in un computer client.
Disconnect-WSMan | Interrompe la connessione del client al servizio Gestione remota Windows in un computer remoto.
Enable-ComputerRestore | Abilita la funzionalità di ripristino di sistema nell'unità del file system specificata.
Enable-PSBreakpoint | Abilita i punti di interruzione nella console corrente.
Enable-PSRemoting | Configura il computer per la ricezione di comandi remoti.
Enable-PSSessionConfiguration | Configura il computer per la ricezione di comandi remoti.
Enable-WSManCredSSP | Abilita l'autenticazione CredSSP (Credential Security Service Provider) in un computer client.
Enter-PSSession | Avvia una sessione interattiva con un computer remoto.
Exit-PSSession | Termina una sessione interattiva con un computer remoto.
Export-Alias | Esporta in un file informazioni sugli alias attualmente definiti.
Export-Clixml | Crea una rappresentazione basata su XML di uno o più oggetti e la archivia in un file.
Export-Console | Esporta i nomi degli snap-in della sessione corrente in un file della console.
Export-Counter | Il cmdlet Export-Counter esporta in file di registro i dati del contatore delle prestazioni.
Export-CSV | Converte gli oggetti .NET in una serie di stringhe di lunghezza variabile separate da virgole (CSV) e salva le stringhe in un file CSV.
Export-FormatData | Salva i dati di formattazione della sessione corrente in un file di formattazione.
Export-ModuleMember | Specifica i membri del modulo esportati.
Export-PSSession | Salva i comandi da un'altra sessione in un file di modulo.
ForEach-Object | Esegue un'operazione su ogni set di oggetti di input.
Format-Custom | Utilizza una visualizzazione personalizzata per formattare l'output.
Format-List | Formatta l'output come un elenco di proprietà in cui ogni proprietà è visualizzata su una nuova riga.
Format-Table | Formatta l'output come tabella.
Format-Wide | Formatta gli oggetti come tabella ampia in cui è visualizzata una sola proprietà di ciascun oggetto.
Get-Acl | Ottiene il descrittore di sicurezza per una risorsa, ad esempio un file o una chiave del Registro di sistema.
Get-Alias | Ottiene gli alias della sessione corrente.
Get-AuthenticodeSignature | Ottiene informazioni sulla firma Authenticode in un file.
Get-ChildItem | Ottiene gli elementi e gli elementi figlio in uno o più percorsi specificati. (Esempio: "dir".)
Get-Command | Ottiene informazioni di base sui cmdlet e altri elementi dei comandi di Windows PowerShell.
Get-ComputerRestorePoint | Ottiene i punti di ripristino nel computer locale.
Get-Content | Ottiene il contenuto dell'elemento nella posizione specificata.
Get-Counter | Ottiene dati del contatore delle prestazioni da computer locali e remoti.
Get-Credential | Ottiene un oggetto credenziale basato su un nome utente e una password.
Get-Culture | Ottiene le impostazioni cultura attualmente impostate nel sistema operativo.
Get-Date | Ottiene la data e l'ora correnti.
Get-Event | Ottiene gli eventi nella coda eventi.
Get-EventLog | Ottiene gli eventi in un registro eventi specificato o in un elenco dei registri eventi di un computer.
Get-EventSubscriber | Ottiene i sottoscrittori di eventi nella sessione corrente.
Get-ExecutionPolicy | Ottiene i criteri di esecuzione nella sessione corrente.
Get-FormatData | Ottiene i dati di formattazione della sessione corrente.
Get-Help | Visualizza informazioni sui cmdlet e i concetti relativi a Windows PowerShell.
Get-History | Ottiene un elenco dei comandi immessi durante la sessione corrente.
Get-Host | Ottiene un riferimento all'oggetto host della console corrente. Visualizza la versione di Windows Powershell e le informazioni sulle impostazioni internazionali per impostazione predefinita.
Get-HotFix | Ottiene gli aggiornamenti rapidi applicati al computer locale e ai computer remoti.
Get-Item | Ottiene l'elemento nella posizione specificata.
Get-ItemProperty | Ottiene le proprietà di un elemento specificato.
Get-Location | Ottiene informazioni sulla posizione di lavoro corrente.
Get-Member | Ottiene le proprietà e i metodi degli oggetti.
Get-Module | Ottiene i moduli importati o che possono essere importati nella sessione corrente.
Get-PfxCertificate | Ottiene informazioni sui file di certificato, con estensione pfx, presenti nel computer.
Get-Process | Ottiene i processi in esecuzione nel computer locale o in un computer remoto.
Get-PSBreakpoint | Ottiene i punti di interruzione impostati nella console corrente.
Get-PSCallStack | Visualizza lo stack di chiamate corrente.
Get-PSDrive | Ottiene le unità di Windows PowerShell disponibili nella console corrente.
Get-Job | Ottiene i processi in background di Windows PowerShell (PsJob) in esecuzione nella console corrente.
Get-PSProvider | Ottiene informazioni sul provider di Windows PowerShell specificato.
Get-PSSession | Ottiene le sessioni di Windows PowerShell (PSSession) nella sessione corrente.
Get-PSSessionConfiguration | Ottiene le configurazioni di sessione registrate nel computer.
Get-PSSnapin | Ottiene gli snap-in di Windows PowerShell nel computer.
Get-Transaction | Ottiene la transazione corrente (attiva).
Get-Random | Ottiene un numero casuale o seleziona gli oggetti da una raccolta in modo casuale.
Get-Service | Ottiene i servizi in un computer locale o remoto.
Get-TraceSource | Ottiene i componenti di Windows PowerShell instrumentati per l'analisi.
Get-UICulture | Ottiene le impostazioni cultura dell'interfaccia utente correnti impostate nel sistema operativo.
Get-Unique | Restituisce le voci univoche di un elenco ordinato.
Get-Variable | Ottiene le variabili disponibili nella console corrente.
Get-WinEvent | Ottiene eventi dai registri eventi e dai file di registro di traccia eventi nei computer locali e remoti.
Get-WmiObject | Ottiene le istanze delle classi WMI o informazioni relative alle classi disponibili.
Get-WSManCredSSP | Ottiene la configurazione correlata a CredSPP (Credential Security Service Provider) per il client.
Get-WSManInstance | Visualizza informazioni di gestione per un'istanza di risorsa specificata da un URI risorsa.
Group-Object | Raggruppa oggetti che contengono lo stesso valore per le proprietà specificate.
Import-Alias | Importa un elenco di alias da un file.
Import-Clixml | Importa un file CLIXML e crea gli oggetti corrispondenti all'interno di Windows PowerShell.
Import-Counter | Importa file di registro dei contatori delle prestazioni (con estensioni blg, csv e tsv) e crea gli oggetti che rappresentano ciascun esempio di contatore nel registro.
Import-CSV | Converte le proprietà degli oggetti in un file CSV nelle versioni CSV degli oggetti originali.
Import-LocalizedData | Importa dati specifici della lingua in script e funzioni in base alle impostazioni cultura correnti del sistema operativo.
Import-Module | Aggiunge moduli alla sessione corrente.
Import-PSSession | Importa cmdlet, alias, funzioni e altri tipi di comando da un'altra sessione in un computer locale o remoto nella sessione corrente.
Invoke-Command | Esegue i comandi nei computer locali e remoti.
Invoke-Expression | Esegue comandi o espressioni nel computer locale.
Invoke-History | Esegue i comandi dalla cronologia della sessione.
Invoke-Item | Esegue l'azione predefinita sull'elemento specificato.
Invoke-WmiMethod | Chiama metodi WMI.
Invoke-WSManAction | Richiama un'azione sull'oggetto specificato dall'URI di risorsa e dai selettori.
Join-Path | Combina un percorso e un percorso figlio in un unico percorso.
Limit-EventLog | Imposta le proprietà del registro eventi che limitano le dimensioni del registro stesso e l'età delle voci che contiene.
Measure-Command | Misura il tempo necessario per eseguire blocchi di script e cmdlet.
Measure-Object | Calcola le proprietà numeriche degli oggetti e i caratteri, le parole e le righe degli oggetti stringa, ad esempio il testo nei file.
Move-Item | Sposta un elemento da una posizione a un'altra.
Move-ItemProperty | Sposta una proprietà da una posizione a un'altra.
New-Alias | Crea un nuovo alias.
New-Event | Crea un nuovo evento.
New-EventLog | Crea un nuovo registro eventi e una nuova origine evento in un computer locale o remoto.
New-Item | Crea un nuovo elemento.
New-ItemProperty | Crea una nuova proprietà per un elemento e ne imposta il valore. Ad esempio, è possibile utilizzare New-ItemProperty per creare e modificare valori e dati del Registro di sistema che sono proprietà di una chiave del Registro di sistema.
New-Module | Crea un nuovo modulo dinamico presente solo in memoria.
New-ModuleManifest | Crea un nuovo manifesto del modulo.
New-Object | Crea un'istanza di un oggetto .Net o COM.
New-PSDrive | Crea un'unità di Windows PowerShell nella console corrente.
New-PSSession | Crea una connessione permanente a un computer locale o remoto.
New-PSSessionOption | Crea un oggetto che contiene opzioni avanzate per una sessione.
New-Service | Crea un nuovo servizio Windows.
New-TimeSpan | Crea un oggetto che rappresenta un intervallo di tempo.
New-Variable | Crea una nuova variabile.
New-WebServiceProxy | Crea un oggetto proxy del servizio Web che consente di utilizzare e gestire il servizio Web in Windows PowerShell.
New-WSManInstance | Crea una nuova istanza di una risorsa di gestione.
New-WSManSessionOption | Crea una tabella hash dell'opzione WSMan Session da utilizzare come parametri di input per i cmdlet WSMan seguenti: Connect-WSMan, Get-WSManInstance, Invoke-WSManAction, Set-WSManInstance.
Out-Default | Invia l'output al formattatore e al cmdlet di output predefiniti. Si tratta di un segnaposto che consente di scrivere un cmdlet o una funzione Out-Default personalizzata.
Out-File | Invia l'output a un file.
Out-GridView | Invia l'output a una tabella interattiva in una finestra separata.
Out-Host | Invia l'output alla console.
Out-Null | Elimina l'output anziché inviarlo alla console.
Out-Printer | Invia l'output a una stampante.
Out-String | Invia gli oggetti all'host come serie di stringhe.
Pop-Location | Modifica il percorso corrente nel percorso aggiunto più di recente allo stack tramite Push-Location.
Push-Location | Aggiunge il percorso corrente all'inizio di un elenco di percorsi (stack).
Read-Host | Legge una riga di input dalla console.
Receive-Job | Ottiene l'output e gli errori dei processi in background (PsJob) eseguiti nella console corrente.
Register-EngineEvent | Sottoscrive eventi generati dal modulo di Windows PowerShell e dal cmdlet New-Event.
Register-ObjectEvent | Sottoscrive gli eventi generati da un oggetto .NET.
Register-PSSessionConfiguration | Crea e registra una nuova configurazione di sessione.
Register-WmiEvent | Sottoscrive un evento generato da un oggetto WMI.
Remove-Computer | Rimuove computer da gruppi di lavoro o domini.
Remove-Event | Elimina eventi dalla coda degli eventi.
Remove-EventLog | Elimina un registro eventi o annulla la registrazione di un'origine evento.
Remove-Item | Elimina gli elementi specificati.
Remove-ItemProperty | Elimina la proprietà e il relativo valore da un elemento.
Remove-Job | Elimina un processo in background di Windows PowerShell.
Remove-Module | Rimuove i moduli dalla sessione corrente.
Remove-PSBreakpoint | Elimina i punti di interruzione dalla console corrente.
Remove-PSDrive | Rimuove un'unità di Windows PowerShell dal relativo percorso.
Remove-PSSession | Chiude una o più sessioni di Windows PowerShell (PSSession).
Remove-PSSnapin | Rimuove gli snap-in di Windows PowerShell dalla sessione corrente.
Remove-Variable | Elimina una variabile e il relativo valore.
Remove-WmiObject | Elimina classi e istanze WMI.
Remove-WSManInstance | Elimina un'istanza di risorsa di gestione.
Rename-Item | Rinomina un elemento in uno spazio dei nomi di provider di Windows PowerShell.
Rename-ItemProperty | Rinomina una proprietà di un elemento.
Reset-ComputerMachinePassword | Reimposta la password dell'account del computer.
Resolve-Path | Risolve i caratteri jolly (*) in un percorso e ne visualizza il contenuto.
Restart-Computer | Riavvia il sistema operativo nei computer locali e remoti.
Restart-Service | Arresta e avvia uno o più servizi.
Restore-Computer | Avvia un ripristino di sistema nel computer locale.
Resume-Service | Riprende uno o più servizi sospesi.
Select-Object | Seleziona le proprietà specificate di un oggetto o di un set di oggetti. Può inoltre essere utilizzato per selezionare oggetti univoci da una matrice di oggetti o un numero specificato di oggetti dall'inizio o dalla fine di una matrice di oggetti.
Select-String | Trova il testo in stringhe e file.
Select-XML | Trova il testo in un documento XML.
Send-MailMessage | Invia un messaggio di posta elettronica.
Set-Acl | Modifica il descrittore di sicurezza di una risorsa specificata, ad esempio un file o una chiave del Registro di sistema.
Set-Alias | Crea o modifica un alias (nome alternativo) di un cmdlet o un elemento di comando.
Set-AuthenticodeSignature | Aggiunge una firma Authenticode a uno script o un altro file di Windows PowerShell.
Set-Content | Scrive o sostituisce il contenuto di un elemento con nuovo contenuto.
Set-Date | Cambia l'ora del sistema del computer in un'ora specificata dall'utente.
Set-ExecutionPolicy | Modifica le preferenze utente per quanto riguarda il criterio di esecuzione della shell.
Set-Item | Modifica il valore di un elemento nel valore specificato nel comando.
Set-ItemProperty | Crea o modifica il valore di una proprietà di un elemento.
Set-Location | Imposta il percorso di lavoro corrente su un percorso specificato.
Set-PSBreakpoint | Imposta un punto di interruzione su una riga, un comando o una variabile.
Set-PSDebug | Attiva e disattiva le funzionalità di debug degli script, imposta il livello di traccia e attiva e disattiva la modalità ridotta.
Set-PSSessionConfiguration | Modifica le proprietà di una configurazione di sessione registrata.
Set-Service | Avvia, arresta e sospende un servizio e ne modifica le proprietà.
Set-StrictMode | Stabilisce e applica regole di codifica in espressioni, script e blocchi di script.
Set-TraceSource | Configura, avvia e arresta un'analisi dei componenti di Windows PowerShell.
Set-Variable | Imposta il valore di una variabile. Crea la variabile se non ne esiste una con il nome richiesto.
Set-WmiInstance | Crea o modifica le istanze di classi WMI.
Set-WSManInstance | Modifica le informazioni di gestione relative a una risorsa.
Set-WSManQuickConfig | Configura il computer locale per la gestione remota.
Show-EventLog | Visualizza i registri eventi del computer locale o di un computer remoto in Visualizzatore eventi.
Sort-Object | Ordina gli oggetti in base ai valori delle proprietà.
Split-Path | Restituisce la parte specificata di un percorso.
Start-Process | Avvia uno o più processi nel computer locale.
Start-Job | Avvia un processo in background di Windows PowerShell (PsJob).
Start-Transaction | Avvia una transazione.
Start-Service | Avvia uno o più servizi arrestati.
Start-Sleep | Sospende le attività relative alla shell, agli script o allo spazio di esecuzione per il periodo di tempo specificato.
Start-Transcript | Crea un record di una sessione completa di Windows PowerShell, o di parte di essa, in un file di testo.
Stop-Computer | Arresta i computer locali e remoti.
Stop-Process | Arresta uno o più processi in esecuzione.
Stop-Job | Arresta un processo in background di Windows PowerShell (PsJob).
Stop-Service | Arresta uno o più servizi in esecuzione.
Stop-Transcript | Interrompe una trascrizione.
Suspend-Service | Sospende uno o più servizi in esecuzione.
Tee-Object | Salva l'output dei comandi in un file o in una variabile e lo visualizza nella console.
Test-ComputerSecureChannel | Verifica e ripristina il canale sicuro tra il computer locale e il relativo dominio.
Test-Connection | Invia pacchetti di richieste echo ICMP ("ping") a uno o più computer.
Test-ModuleManifest | Verifica che un manifesto del modulo descriva in maniera accurata il contenuto di un modulo.
Test-Path | Determina se esistono o meno tutti gli elementi di un percorso.
Test-WSMan | Verifica se il servizio WinRM è in esecuzione in un computer locale o remoto.
Trace-Command | Configura e avvia un'analisi dell'espressione o del comando specificato.
Undo-Transaction | Esegue il rollback della transazione attiva.
Unregister-Event | Annulla la sottoscrizione di un evento.
Unregister-PSSessionConfiguration | Elimina le configurazioni di sessione registrate dal computer.
Update-FormatData | Aggiorna e accoda file di dati dei formati.
Update-List | Aggiunge e rimuove elementi dal valore di una proprietà che contiene una raccolta di oggetti.
Update-TypeData | Aggiorna la configurazione dei tipi estesi corrente ricaricando i file *.types.ps1xml.
Use-Transaction | Aggiunge il blocco di script alla transazione attiva.
Wait-Event | Attende finché non viene generato un determinato evento prima di continuare l'esecuzione.
Wait-Process | Attende l'arresto dei processi prima di accettare altro input.
Wait-Job | Elimina il prompt dei comandi fino al completamento di uno o tutti i processi in background di Windows PowerShell (PsJob).
Where-Object | Crea un filtro che determina gli oggetti che verranno passati attraverso una pipeline di comandi.
Write-Debug | Scrive un messaggio di debug nella console.
Write-Error | Scrive un oggetto nella pipeline degli errori.
Write-EventLog | Scrive un evento in un registro eventi.
Write-Host | Scrive l'output personalizzato in un host.
Write-Output | Invia gli oggetti al comando successivo nella pipeline. Se è l'ultimo comando nella pipeline, gli oggetti vengono visualizzati nella console.
Write-Progress | Visualizza un indicatore di stato in una finestra dei comandi di Windows PowerShell.
Write-Verbose | Scrive il testo nel flusso di messaggi dettagliati in Windows PowerShell.
Write-Warning | Scrive un messaggio di avviso.

Cmdlet (ordinati in base al nome)

Display in verb order

Nome | Descrizione
Get-Acl | Ottiene il descrittore di sicurezza per una risorsa, ad esempio un file o una chiave del Registro di sistema.
Set-Acl | Modifica il descrittore di sicurezza di una risorsa specificata, ad esempio un file o una chiave del Registro di sistema.
Export-Alias | Esporta in un file informazioni sugli alias attualmente definiti.
Get-Alias | Ottiene gli alias della sessione corrente.
Import-Alias | Importa un elenco di alias da un file.
New-Alias | Crea un nuovo alias.
Set-Alias | Crea o modifica un alias (nome alternativo) di un cmdlet o un elemento di comando.
Get-AuthenticodeSignature | Ottiene informazioni sulla firma Authenticode in un file.
Set-AuthenticodeSignature | Aggiunge una firma Authenticode a uno script o un altro file di Windows PowerShell.
Get-ChildItem | Ottiene gli elementi e gli elementi figlio in uno o più percorsi specificati. (Esempio: "dir".)
Export-Clixml | Crea una rappresentazione basata su XML di uno o più oggetti e la archivia in un file.
Import-Clixml | Importa un file CLIXML e crea gli oggetti corrispondenti all'interno di Windows PowerShell.
Get-Command | Ottiene informazioni di base sui cmdlet e altri elementi dei comandi di Windows PowerShell.
Invoke-Command | Esegue i comandi nei computer locali e remoti.
Measure-Command | Misura il tempo necessario per eseguire blocchi di script e cmdlet.
Trace-Command | Configura e avvia un'analisi dell'espressione o del comando specificato.
Add-Computer | Aggiunge computer a un dominio o un gruppo di lavoro.
Checkpoint-Computer | Crea un punto di ripristino del sistema nel computer locale.
Remove-Computer | Rimuove computer da gruppi di lavoro o domini.
Restart-Computer | Riavvia il sistema operativo nei computer locali e remoti.
Restore-Computer | Avvia un ripristino di sistema nel computer locale.
Stop-Computer | Arresta i computer locali e remoti.
Reset-ComputerMachinePassword | Reimposta la password dell'account del computer.
Disable-ComputerRestore | Disabilita la funzionalità di ripristino di sistema nell'unità del file system specificata.
Enable-ComputerRestore | Abilita la funzionalità di ripristino di sistema nell'unità del file system specificata.
Get-ComputerRestorePoint | Ottiene i punti di ripristino nel computer locale.
Test-ComputerSecureChannel | Verifica e ripristina il canale sicuro tra il computer locale e il relativo dominio.
Test-Connection | Invia pacchetti di richieste echo ICMP ("ping") a uno o più computer.
Export-Console | Esporta la configurazione della console corrente in un file per consentirne il riutilizzo o la condivisione.
Add-Content | Aggiunge contenuto agli elementi specificati, ad esempio aggiunge parole a un file.
Clear-Content | Elimina il contenuto di un elemento, ad esempio eliminando il testo da un file, ma non elimina l'elemento stesso.
Get-Content | Ottiene il contenuto dell'elemento nella posizione specificata.
Set-Content | Scrive o sostituisce il contenuto di un elemento con nuovo contenuto.
Export-Counter | Il cmdlet Export-Counter esporta in file di registro i dati del contatore delle prestazioni.
Get-Counter | Ottiene dati del contatore delle prestazioni da computer locali e remoti.
Import-Counter | Importa file di registro dei contatori delle prestazioni (con estensioni blg, csv e tsv) e crea gli oggetti che rappresentano ciascun esempio di contatore nel registro.
Get-Credential | Ottiene un oggetto credenziale basato su un nome utente e una password.
ConvertFrom-CSV | Converte le proprietà degli oggetti in formato CSV nelle versioni CSV degli oggetti originali.
ConvertTo-CSV | Converte gli oggetti .NET in una serie di stringhe di lunghezza variabile separate da virgole (CSV).
Export-CSV | Converte gli oggetti .NET in una serie di stringhe di lunghezza variabile separate da virgole (CSV) e salva le stringhe in un file CSV.
Import-CSV | Converte le proprietà degli oggetti in un file CSV nelle versioni CSV degli oggetti originali.
Get-Culture | Ottiene le impostazioni cultura attualmente impostate nel sistema operativo.
Format-Custom | Utilizza una visualizzazione personalizzata per formattare l'output.
Get-Date | Ottiene la data e l'ora correnti.
Set-Date | Cambia l'ora del sistema del computer in un'ora specificata dall'utente.
Write-Debug | Scrive un messaggio di debug nella console.
Out-Default | Invia l'output al formattatore e al cmdlet di output predefiniti. Si tratta di un segnaposto che consente di scrivere un cmdlet o una funzione Out-Default personalizzata.
Register-EngineEvent | Sottoscrive eventi generati dal modulo di Windows PowerShell e dal cmdlet New-Event.
Write-Error | Scrive un oggetto nella pipeline degli errori.
Get-Event | Ottiene gli eventi nella coda eventi.
New-Event | Crea un nuovo evento.
Remove-Event | Elimina eventi dalla coda degli eventi.
Unregister-Event | Annulla la sottoscrizione di un evento.
Wait-Event | Attende finché non viene generato un determinato evento prima di continuare l'esecuzione.
Clear-EventLog | Elimina tutte le voci dai registri eventi specificati nei computer locali o remoti.
Get-EventLog | Ottiene gli eventi in un registro eventi specificato o in un elenco dei registri eventi di un computer.
Limit-EventLog | Imposta le proprietà del registro eventi che limitano le dimensioni del registro stesso e l'età delle voci che contiene.
New-EventLog | Crea un nuovo registro eventi e una nuova origine evento in un computer locale o remoto.
Remove-EventLog | Elimina un registro eventi o annulla la registrazione di un'origine evento.
Show-EventLog | Visualizza i registri eventi del computer locale o di un computer remoto in Visualizzatore eventi.
Write-EventLog | Scrive un evento in un registro eventi.
Get-EventSubscriber | Ottiene i sottoscrittori di eventi nella sessione corrente.
Get-ExecutionPolicy | Ottiene i criteri di esecuzione correnti nella sessione corrente.
Set-ExecutionPolicy | Modifica le preferenze utente per quanto riguarda il criterio di esecuzione della shell.
Invoke-Expression | Esegue i comandi in un computer locale o remoto.
Out-File | Invia l'output a un file.
Export-FormatData | Salva i dati di formattazione della sessione corrente in un file di formattazione.
Get-FormatData | Ottiene i dati di formattazione della sessione corrente.
Update-FormatData | Aggiorna e accoda file di dati dei formati.
Out-GridView | Invia l'output a una tabella interattiva in una finestra separata.
Get-Help | Visualizza informazioni sui cmdlet e i concetti relativi a Windows PowerShell.
Add-History | Aggiunge voci alla cronologia della sessione.
Clear-History | Elimina le voci dalla cronologia dei comandi.
Get-History | Ottiene un elenco dei comandi immessi durante la sessione corrente.
Invoke-History | Esegue i comandi dalla cronologia della sessione.
Get-Host | Ottiene un riferimento all'oggetto host della console corrente. Visualizza la versione di Windows Powershell e le informazioni sulle impostazioni internazionali per impostazione predefinita.
Out-Host | Invia l'output alla console.
Read-Host | Legge una riga di input dalla console.
Write-Host | Scrive l'output personalizzato in un host.
Get-HotFix | Ottiene gli aggiornamenti rapidi applicati al computer locale e ai computer remoti.
ConvertTo-Html | Converte gli oggetti .NET in HTML che possono essere visualizzati in un browser.
Clear-Item | Elimina il valore di un elemento, senza eliminare l'elemento stesso.
Copy-Item | Copia un elemento da un percorso a un altro all'interno di uno spazio dei nomi.
Get-Item | Ottiene l'elemento nella posizione specificata.
Invoke-Item | Esegue l'azione predefinita sull'elemento specificato.
Move-Item | Sposta un elemento da una posizione a un'altra.
New-Item | Crea un nuovo elemento.
Remove-Item | Elimina gli elementi specificati.
Rename-Item | Rinomina un elemento in uno spazio dei nomi di provider di Windows PowerShell.
Set-Item | Modifica il valore di un elemento nel valore specificato nel comando.
Clear-ItemProperty | Crea o modifica il valore di una proprietà di un elemento.
Copy-ItemProperty | Copia una proprietà e un valore da un percorso specificato in un altro percorso.
Get-ItemProperty | Ottiene le proprietà di un elemento specificato.
Move-ItemProperty | Sposta una proprietà da una posizione a un'altra.
New-ItemProperty | Crea una nuova proprietà per un elemento e ne imposta il valore. Ad esempio, è possibile utilizzare New-ItemProperty per creare e modificare valori e dati del Registro di sistema che sono proprietà di una chiave del Registro di sistema.
Remove-ItemProperty | Elimina la proprietà e il relativo valore da un elemento.
Rename-ItemProperty | Rinomina una proprietà di un elemento.
Set-ItemProperty | Crea o modifica il valore di una proprietà di un elemento.
Format-List | Formatta l'output come un elenco di proprietà in cui ogni proprietà è visualizzata su una nuova riga.
Update-List | Aggiunge e rimuove elementi dal valore di una proprietà che contiene una raccolta di oggetti.
Import-LocalizedData | Importa dati specifici della lingua in script e funzioni in base alle impostazioni cultura correnti del sistema operativo.
Get-Location | Ottiene informazioni sulla posizione di lavoro corrente.
Pop-Location | Modifica il percorso corrente nel percorso aggiunto più di recente allo stack tramite Push-Location.
Push-Location | Aggiunge il percorso corrente all'inizio di un elenco di percorsi (stack).
Set-Location | Imposta il percorso di lavoro corrente su un percorso specificato.
Send-MailMessage | Invia un messaggio di posta elettronica.
Add-Member | Aggiunge un membro personalizzato definito dall'utente a un'istanza di un oggetto di Windows PowerShell.
Get-Member | Ottiene le proprietà e i metodi degli oggetti.
Export-ModuleMember | Specifica i membri del modulo esportati.
Get-Module | Ottiene i moduli importati o che possono essere importati nella sessione corrente.
Import-Module | Crea un nuovo modulo dinamico presente solo in memoria.
New-Module | Crea un nuovo modulo dinamico presente solo in memoria.
New-ModuleManifest | Crea un nuovo manifesto del modulo.
Remove-Module | Rimuove i moduli dalla sessione corrente.
Test-ModuleManifest | Verifica che un manifesto del modulo descriva in maniera accurata il contenuto di un modulo.
Out-Null | Elimina l'output anziché inviarlo alla console.
Compare-Object | Confronta due set di oggetti.
ForEach-Object | Esegue un'operazione su ogni set di oggetti di input.
Group-Object | Raggruppa oggetti che contengono lo stesso valore per le proprietà specificate.
Measure-Object | Calcola le proprietà numeriche degli oggetti e i caratteri, le parole e le righe degli oggetti stringa, ad esempio il testo nei file.
New-Object | Crea un'istanza di un oggetto .Net o COM.
Select-Object | Seleziona le proprietà specificate di un oggetto o di un set di oggetti. Può inoltre essere utilizzato per selezionare oggetti univoci da una matrice di oggetti o un numero specificato di oggetti dall'inizio o dalla fine di una matrice di oggetti.
Sort-Object | Ordina gli oggetti in base ai valori delle proprietà.
Tee-Object | Salva l'output dei comandi in un file o in una variabile e lo visualizza nella console.
Where-Object | Crea un filtro che determina gli oggetti che verranno passati attraverso una pipeline di comandi.
Register-ObjectEvent | Sottoscrive gli eventi generati da un oggetto .NET.
Write-Output | Invia gli oggetti al comando successivo nella pipeline. Se è l'ultimo comando nella pipeline, gli oggetti vengono visualizzati nella console.
Convert-Path | Converte un percorso di Windows PowerShell in un percorso di provider di Windows PowerShell.
Join-Path | Combina un percorso e un percorso figlio in un unico percorso.
Resolve-Path | Risolve i caratteri jolly (*) in un percorso e ne visualizza il contenuto.
Split-Path | Restituisce la parte specificata di un percorso.
Test-Path | Determina se esistono o meno tutti gli elementi di un percorso.
Get-PfxCertificate | Ottiene informazioni sui file di certificato, con estensione pfx, presenti nel computer.
Out-Printer | Invia l'output a una stampante.
Debug-Process | Esegue il debug di uno o più processi in esecuzione nel computer locale.
Get-Process | Ottiene i processi in esecuzione nel computer locale o in un computer remoto.
Start-Process | Avvia uno o più processi nel computer locale.
Stop-Process | Arresta uno o più processi in esecuzione.
Wait-Process | Attende l'arresto dei processi prima di accettare altro input.
Write-Progress | Visualizza un indicatore di stato in una finestra dei comandi di Windows PowerShell.
Disable-PSBreakpoint | Disabilita i punti di interruzione nella console corrente.
Enable-PSBreakpoint | Abilita i punti di interruzione nella console corrente.
Get-PSBreakpoint | Ottiene i punti di interruzione impostati nella console corrente.
Remove-PSBreakpoint | Elimina i punti di interruzione dalla console corrente.
Set-PSBreakpoint | Imposta un punto di interruzione su una riga, un comando o una variabile.
Get-PSCallStack | Visualizza lo stack di chiamate corrente.
Set-PSDebug | Attiva e disattiva le funzionalità di debug degli script, imposta il livello di traccia e attiva e disattiva la modalità ridotta.
Get-PSDrive | Ottiene le unità di Windows PowerShell disponibili nella console corrente.
New-PSDrive | Crea un'unità di Windows PowerShell nella console corrente.
Remove-PSDrive | Rimuove un'unità di Windows PowerShell dal relativo percorso.
Get-Job | Ottiene i processi in background di Windows PowerShell (PsJob) in esecuzione nella console corrente.
Receive-Job | Ottiene l'output e gli errori dei processi in background (PsJob) eseguiti nella console corrente.
Remove-Job | Elimina un processo in background di Windows PowerShell (PsJob).
Start-Job | Avvia un processo in background di Windows PowerShell (PsJob).
Stop-Job | Arresta un processo in background di Windows PowerShell (PsJob).
Wait-Job | Elimina il prompt dei comandi fino al completamento di uno o tutti i processi in background di Windows PowerShell (PsJob).
Get-PSProvider | Ottiene informazioni sul provider di Windows PowerShell specificato.
Disable-PSRemoting | Impedisce al computer di ricevere comandi remoti di Windows PowerShell.
Enable-PSRemoting | Configura il computer per la ricezione di comandi remoti.
Enter-PSSession | Avvia una sessione interattiva con un computer remoto.
Exit-PSSession | Termina una sessione interattiva con un computer remoto.
Export-PSSession | Salva i comandi da un'altra sessione in un file di modulo.
Get-PSSession | Ottiene le sessioni di Windows PowerShell (PSSession) nella sessione corrente.
Import-PSSession | Importa cmdlet, alias, funzioni e altri tipi di comando da un'altra sessione in un computer locale o remoto nella sessione corrente.
New-PSSession | Crea una connessione permanente a un computer locale o remoto.
Remove-PSSession | Chiude una o più sessioni di Windows PowerShell (PSSession).
Disable-PSSessionConfiguration | Nega l'accesso alle configurazioni di sessione nel computer locale.
Enable-PSSessionConfiguration | Configura il computer per la ricezione di comandi remoti.
Get-PSSessionConfiguration | Ottiene le configurazioni di sessione registrate nel computer.
Register-PSSessionConfiguration | Crea e registra una nuova configurazione di sessione.
Set-PSSessionConfiguration | Modifica le proprietà di una configurazione di sessione registrata.
Unregister-PSSessionConfiguration | Elimina le configurazioni di sessione registrate dal computer.
New-PSSessionOption | Crea un oggetto che contiene opzioni avanzate per una sessione.
Add-PSSnapin | Aggiunge uno o più snap-in di Windows PowerShell alla sessione corrente.
Get-PSSnapin | Ottiene gli snap-in di Windows PowerShell nel computer.
Remove-PSSnapin | Rimuove gli snap-in di Windows PowerShell dalla sessione corrente.
Complete-Transaction | Esegue il commit della transazione attiva.
Get-Transaction | Ottiene la transazione corrente (attiva).
Start-Transaction | Avvia una transazione.
Undo-Transaction | Esegue il rollback della transazione attiva.
Use-Transaction | Aggiunge il blocco di script alla transazione attiva.
Get-Random | Ottiene un numero casuale o seleziona gli oggetti da una raccolta in modo casuale.
ConvertFrom-SecureString | Converte una stringa protetta in una stringa standard crittografata.
ConvertTo-SecureString | Converte stringhe standard crittografate in stringhe protette. Consente inoltre di convertire testo normale in stringhe protette. Viene utilizzato con ConvertFrom-SecureString e Read-Host.
Get-Service | Ottiene i servizi in un computer locale o remoto.
New-Service | Crea una nuova voce per un servizio di Windows nel Registro di sistema e nel database del servizio.
Restart-Service | Arresta e avvia uno o più servizi.
Resume-Service | Riprende uno o più servizi sospesi.
Set-Service | Avvia, arresta e sospende un servizio e ne modifica le proprietà.
Start-Service | Avvia uno o più servizi arrestati.
Stop-Service | Arresta uno o più servizi in esecuzione.
Suspend-Service | Sospende uno o più servizi in esecuzione.
Start-Sleep | Sospende le attività relative alla shell, agli script o allo spazio di esecuzione per il periodo di tempo specificato.
Set-StrictMode | Stabilisce e applica regole di codifica in espressioni, script e blocchi di script.
Out-String | Invia gli oggetti all'host come serie di stringhe.
Select-String | Trova il testo in stringhe e file.
ConvertFrom-StringData | Converte una stringa contenente una o più coppie "name=value" a una tabella hash.
Format-Table | Formatta l'output come tabella.
New-TimeSpan | Crea un oggetto che rappresenta un intervallo di tempo.
Get-TraceSource | Ottiene i componenti di Windows PowerShell instrumentati per l'analisi.
Set-TraceSource | Configura, avvia e arresta un'analisi dei componenti di Windows PowerShell.
Start-Transcript | Crea un record di una sessione completa di Windows PowerShell, o di parte di essa, in un file di testo.
Stop-Transcript | Interrompe una trascrizione.
Add-Type | Aggiunge un tipo .NET (una classe) a una sessione di Windows PowerShell.
Update-TypeData | Aggiorna la configurazione dei tipi estesi corrente ricaricando i file *.types.ps1xml.
Get-UICulture | Ottiene le impostazioni cultura dell'interfaccia utente correnti impostate nel sistema operativo.
Get-Unique | Restituisce le voci univoche di un elenco ordinato.
Clear-Variable | Elimina il valore di una variabile.
Get-Variable | Ottiene le variabili disponibili nella console corrente.
New-Variable | Crea una nuova variabile.
Remove-Variable | Elimina una variabile e il relativo valore.
Set-Variable | Imposta il valore di una variabile. Crea la variabile se non ne esiste una con il nome richiesto.
Write-Verbose | Scrive il testo nel flusso di messaggi dettagliati in Windows PowerShell.
Write-Warning | Scrive un messaggio di avviso.
New-WebServiceProxy | Crea un oggetto proxy del servizio Web che consente di utilizzare e gestire il servizio Web in Windows PowerShell.
Format-Wide | Formatta gli oggetti come tabella ampia in cui è visualizzata una sola proprietà di ciascun oggetto.
Get-WinEvent | Ottiene eventi dai registri eventi e dai file di registro di traccia eventi nei computer locali e remoti.
Register-WmiEvent | Sottoscrive un evento generato da un oggetto WMI.
Set-WmiInstance | Crea o modifica le istanze di classi WMI.
Invoke-WmiMethod | Chiama metodi WMI.
Get-WmiObject | Ottiene le istanze delle classi WMI o informazioni relative alle classi disponibili.
Remove-WmiObject | Elimina classi e istanze WMI.
Connect-WSMan | Stabilisce la connessione al servizio WinRM in un computer remoto.
Disable-WSManCredSSP | Disabilita l'autenticazione CredSSP (Credential Security Service Provider) in un computer client.
Disconnect-WSMan | Interrompe la connessione del client al servizio Gestione remota Windows in un computer remoto.
Enable-WSManCredSSP | Abilita l'autenticazione CredSSP (Credential Security Service Provider) in un computer client.
Get-WSManCredSSP | Ottiene la configurazione correlata a CredSPP (Credential Security Service Provider) per il client.
Get-WSManInstance | Visualizza informazioni di gestione per un'istanza di risorsa specificata da un URI risorsa.
Invoke-WSManAction | Richiama un'azione sull'oggetto specificato dall'URI di risorsa e dai selettori.
New-WSManInstance | Crea una nuova istanza di una risorsa di gestione.
New-WSManSessionOption | Crea una tabella hash dell'opzione WSMan Session da utilizzare come parametri di input per i cmdlet WSMan seguenti: Connect-WSMan, Get-WSManInstance, Invoke-WSManAction, Set-WSManInstance.
Remove-WSManInstance | Elimina un'istanza di risorsa di gestione.
Set-WSManInstance | Modifica le informazioni di gestione relative a una risorsa.
Set-WSManQuickConfig | Configura il computer locale per la gestione remota.
Test-WSMan | Verifica se il servizio WinRM è in esecuzione in un computer locale o remoto.
ConvertTo-XML | Crea una rappresentazione di un oggetto basata su XML.
Select-XML | Trova il testo in un documento XML.

Vedere anche

  • Argomenti della Guida "About" di Windows PowerShell
  • Argomenti della Guida relativi ai provider di Windows PowerShell
  • Guida della console PowerShell.exe
  • Windows PowerShell SDK


Add-Computer

Aggiunge il computer locale a un dominio o a un gruppo di lavoro.

Sintassi

Add-Computer [-DomainName] <string> [-Credential <PSCredential>] [-OUPath <string>] [-Server <string>] [-Unsecure] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Add-Computer [-WorkGroupName] <string> [-Credential <PSCredential>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Add-Computer aggiunge il computer locale a un dominio o a un gruppo di lavoro o lo sposta da un dominio a un altro. Se il computer viene aggiunto al dominio senza un account, crea inoltre un account di dominio.

È possibile utilizzare i parametri di questo cmdlet per specificare un'unità organizzativa e un controller di dominio oppure per eseguire un'aggiunta non sicura.

Per ottenere i risultati del comando, utilizzare i parametri Verbose e PassThru.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Current User Account Credentials
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-DomainName <string>

Specifica un dominio per l'account del computer. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-OUPath <string>

Specifica l'unità organizzativa per l'account di dominio. Immettere il nome completo dell'unità organizzativa. Il valore predefinito è l'unità organizzativa predefinita per gli oggetti computer nel dominio.

Obbligatorio? | false
Posizione? | named
Valore predefinito | The default OU for machine objects for in the domain
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PassThru

Restituisce i risultati del comando. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Server <string>

Specifica il nome di un controller di dominio che aggiunge il computer al dominio. Immettere il nome nel formato DomainName\ComputerName. Il valore predefinito è il computer locale.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Unsecure

Esegue un'aggiunta non protetta.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WorkGroupName <string>

Specifica il nome del gruppo di lavoro per il computer. Se si omette questo parametro, il computer viene aggiunto a un dominio.

Obbligatorio? | true
Posizione? | 3
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a Add-Computer.
Output | Microsoft.PowerShell.Commands.ComputerChangeInfo Quando si utilizza il parametro PassThru, Add-Computer restituisce un oggetto ComputerChangeInfo. Negli altri casi, il cmdlet non genera alcun output.

Esempio 1

C:\PS>add-computer -domainname Domain01; restart-computer

Descrizione
-----------
Con questi comandi il computer locale viene aggiunto al dominio Domain01 utilizzando le credenziali dell'utente corrente.

Con il primo comando il computer viene aggiunto al dominio. Nel secondo comando viene utilizzato il cmdlet Restart-Computer per riavviare il computer, completando così l'operazione di aggiunta. Il punto e virgola (;) separa i due comandi.

Esempio 2

C:\PS>add-computer -workgroupname WORKGROUP-A

Descrizione
-----------
Con questo comando il computer locale viene aggiunto al gruppo di lavoro Workgroup-A.

Esempio 3

C:\PS>add-computer -DomainName Domain01 -Server Domain01\DC01 -passthru -verbose

Descrizione
-----------
Con questo comando il computer locale viene aggiunto al dominio Domain01 utilizzando il controller di dominio Domain01\DC01.

Nel comando vengono utilizzati i parametri PassThru e Verbose per ottenere informazioni dettagliate sui risultati del comando.

Esempio 4

C:\PS>Add-Computer -domainname Domain02 -OUPath OU=testOU,DC=domain,DC=Domain,DC=com

Descrizione
-----------
Con questo comando vengono aggiunti i computer Server01 e Server02 al domino Domain02. Viene utilizzato il comando OUPath per specificare l'unità organizzativa per i nuovi account.

Esempio 5

C:\PS>Add-Computer -domainname Domain02 -cred Domain02\Admin02 -passthru

Descrizione
-----------
Con questo comando il computer locale viene aggiunto al dominio Domain02 tramite le credenziali di un amministratore di dominio. Nel comando viene utilizzato il parametro PassThru per generare un breve report dei risultati del comando.

Vedere anche

  • Checkpoint-Computer
  • Remove-Computer
  • Restart-Computer
  • Restore-Computer
  • Stop-Computer
  • Test-Connection


Add-Content

Aggiunge contenuto agli elementi specificati, ad esempio aggiunge parole a un file.

Sintassi

Add-Content [-LiteralPath] <string[]> [-Value] <Object[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Add-Content [-Path] <string[]> [-Value] <Object[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Add-Content aggiunge contenuto a un elemento o a un file specificato. È possibile specificare il contenuto digitandolo nel comando o specificando un oggetto che lo contiene.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Esegue l'override dell'attributo di sola lettura, consentendo di aggiungere contenuto a un file di sola lettura.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Aggiunge unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica il percorso degli elementi che ricevono il contenuto aggiuntivo. A differenza di Path, il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta il contenuto aggiunto. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso degli elementi che ricevono il contenuto aggiuntivo. È consentito l'utilizzo di caratteri jolly. Se vengono specificati più percorsi, separarli tramite virgole.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Value <Object[]>

Specifica il contenuto da aggiungere. Digitare una stringa racchiusa tra virgolette, ad esempio "Dati riservati esclusivamente all'utilizzo interno", oppure specificare un oggetto con contenuto, ad esempio l'oggetto DateTime generato da Get-Date.

Non è possibile specificare il contenuto di un file digitandone il percorso, perché il percorso è costituito da una stringa. È tuttavia possibile utilizzare un comando Get-Content per ottenere il contenuto e passarlo al parametro Value.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Object È possibile reindirizzare gli oggetti da aggiungere (Value) ad Add-Content.
Output | Nessuno o System.String Quando si utilizza il parametro Passthru, con Add-Content viene generato un oggetto System.String che rappresenta il contenuto. Negli altri casi, il cmdlet non genera alcun output.

Note

Quando si reindirizza un oggetto a Add-Content, l'oggetto viene convertito in una stringa prima di essere aggiunto all'elemento. Il tipo di oggetto determina il formato della stringa, ma il formato potrebbe essere diverso dalla visualizzazione predefinita dell'oggetto. Per controllare il formato della stringa, utilizzare i parametri di formattazione del cmdlet di invio.

È inoltre possibile fare riferimento ad Add-Content tramite il relativo alias predefinito "ac". Per ulteriori informazioni, vedere about_Aliases.

Il cmdlet Add-Content è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PsProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>add-content -path *.txt -exclude help* -value "END"

Descrizione
-----------
Con questo comando viene aggiunta la parola "END" a tutti i file di testo nella directory corrente, a eccezione dei file il cui nome inizia con "help".

Esempio 2

C:\PS>add-content -Path file1.log, file2.log -Value (get-date) -passthru

Descrizione
-----------
Con questo comando la data viene aggiunta alla fine dei file File1.log e File2.log e quindi viene visualizzata nella riga di comando. Viene utilizzato il cmdlet Get-Date per ottenere la data e il parametro Value per passarla ad Add-Content. Il parametro PassThru passa un oggetto che rappresenta il contenuto aggiunto attraverso la pipeline. L'oggetto passato viene visualizzato nella riga di comando non essendo presenti altri cmdlet a riceverlo.

Esempio 3

C:\PS>add-content -path monthly.txt -value (get-content c:\rec1\weekly.txt)

Descrizione
-----------
Con questo comando il contenuto del file Weekly.txt viene aggiunto alla fine del file Monthly.txt. Viene utilizzato il cmdlet Get-Content per ottenere il contenuto del file Weekly.txt e il parametro Value per passare tale contenuto ad Add-Content. Le parentesi assicurano che il comando Get-Content venga completato prima dell'inizio del comando Add-Content.

È inoltre possibile copiare il contenuto del file Weekly.txt in una variabile, ad esempio $w, quindi utilizzare il parametro Value per passare la variabile ad Add-Content. In tal caso, la sintassi del comando sarebbe "add-content -path monthly.txt -value $w".

Esempio 4

C:\PS>add-content -value (get-content test.log) -path C:\tests\test134\logs\test134.log

Descrizione
-----------
Con questo comando viene creata una nuova directory e un file e viene copiato il contenuto di un file esistente nel file appena creato.

In questo comando viene utilizzato il cmdlet Add-Content per aggiungere il contenuto. Il valore del parametro Value è un comando Get-Content che ottiene contenuto da un file esistente, Test.log.

Il valore del parametro Path è un percorso che non esiste quando il comando è in esecuzione. In questo esempio, solo le directory C:\Tests esistono. Con il comando vengono create le directory restanti e il file Test134.log.

Il parametro Force non è richiesto per questo comando. Con Add-Content vengono create le directory per completare un percorso anche senza il parametro Force.

Vedere anche

  • about_Providers
  • Get-Content
  • Set-Content
  • Clear-Content
  • Get-Item


Add-History

Aggiunge voci alla cronologia della sessione.

Sintassi

Add-History [[-InputObject] <PSObject[]>] [-PassThru] [<CommonParameters>]

Descrizione

Il cmdlet Add-History aggiunge voci alla fine della cronologia della sessione, ovvero l'elenco dei comandi immessi durante la sessione corrente.

È possibile utilizzare il cmdlet Get-History per ottenere i comandi e passarli a Add-History oppure esportare i comandi in un file CSV o XML, importarli, quindi passare il file importato a Add-History. È possibile utilizzare questo cmdlet per aggiungere comandi specifici alla cronologia oppure per creare un singolo file di cronologia contenente i comandi per più sessioni.

Parametri

-InputObject <PSObject[]>

Aggiunge l'oggetto HistoryInfo specificato alla cronologia della sessione. È possibile utilizzare questo parametro per inviare un oggetto HistoryInfo da Get-History, Import-Clixml o Import-CSV a Add-History.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto della cronologia per ogni voce della cronologia. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Microsoft.PowerShell.Commands.HistoryInfo È possibile reindirizzare un oggetto HistoryInfo a Add-History.
Output | Nessuno o Microsoft.PowerShell.Commands.HistoryInfo Quando si utilizza il parametro PassThru, Add-History genera un oggetto HistoryInfo. Negli altri casi, il cmdlet non genera alcun output.

Note

La cronologia della sessione è un elenco dei comandi immessi durante la sessione insieme all'ID. La cronologia della sessione rappresenta l'ordine di esecuzione, lo stato e le ore di inizio e di fine del comando. I comandi immessi vengono aggiunti da Windows PowerShell alla cronologia per consentirne il riutilizzo. Per ulteriori informazioni sulla cronologia della sessione, vedere about_History.

Per specificare i comandi da aggiungere alla cronologia, utilizzare il parametro InputObject. Il comando Add-History accetta solo oggetti HistoryInfo, ad esempio quelli generati per ogni comando tramite Get-History. Non è possibile passare un percorso e un nome file o un elenco di comandi a questo comando.

È possibile utilizzare il parametro -InputObject per passare un file di oggetti HistoryInfo ad Add-History. A tale scopo, esportare i risultati di un comando Get-History in un file utilizzando Export-CSV o Export-Clixml, quindi importare il file tramite Import-CSV o Import-Clixml. È quindi possibile passare il file degli oggetti HistoryInfo importati ad Add-History attraverso la pipeline o in una variabile. Per ulteriori informazioni, vedere gli esempi.

Il file degli oggetti HistoryInfo passato ad Add-History deve includere le informazioni sul tipo, le intestazioni di colonna e tutte le proprietà degli oggetti HistoryInfo. Se si desidera passare gli oggetti nuovamente ad Add-History, non utilizzare il parametro NoTypeInformation o Export-CSV e non eliminare le informazioni sul tipo, le intestazioni di colonna o qualsiasi campo nel file.

Per modificare la cronologia della sessione, esportare la sessione in un file CSV o XML, modificare il file, importarlo, quindi utilizzare Add-History per aggiungerlo alla cronologia della sessione corrente.

Esempio 1

C:\PS>get-history | export-csv c:\testing\history.csv

C:\PS>import-csv history.csv | add-history

Descrizione
-----------
Tramite questi comandi vengono aggiunti i comandi digitati in una sessione di Windows alla cronologia di una sessione di Windows PowerShell diversa. Con il primo comando vengono ottenuti gli oggetti che rappresentano i comandi inclusi nella cronologia. Gli oggetti vengono quindi esportati nel file History.csv. Il secondo comando viene digitato nella riga di comando di una sessione diversa. Viene utilizzato il cmdlet Import-Csv per importare gli oggetti nel file History.csv. L'operatore pipeline passa gli oggetti al cmdlet Add-History che consente di aggiungere alla cronologia della sessione corrente gli oggetti che rappresentano i comandi nel file History.csv.

Esempio 2

C:\PS>import-clixml c:\temp\history.xml | add-history -passthru | foreach-object {invoke-history}

Descrizione
-----------
Con questo comando i comandi vengono importati dal file History.xml, vengono aggiunti alla cronologia della sessione corrente, quindi vengono eseguiti nella cronologia combinata.

Con il primo comando viene utilizzato il comando Import-Clixml per importare una cronologia di comandi esportata nel file History.xml. L'operatore pipeline (|) passa i comandi al parametro Add-History che li aggiunge alla cronologia della sessione corrente. Il parametro PassThru passa gli oggetti che rappresentano i comandi aggiunti attraverso la pipeline.

Viene quindi utilizzato il cmdlet ForEach-Object per applicare il comando Invoke-History a ognuno dei comandi nella cronologia combinata. Il comando Invoke-History viene formattato come un blocco di script racchiuso tra parentesi graffe ({}) poiché ForEach-Object richiede un blocco di script anche quando è presente un solo comando da applicare.

Esempio 3

C:\PS>get-history -id 5 -count 5 | add-history

Descrizione
-----------
Tramite questo comando vengono aggiunti i primi cinque comandi della cronologia alla fine dell'elenco della cronologia. Viene utilizzato il cmdlet Get-History per ottenere i primi cinque comandi, fino al comando 5. L'operatore pipeline (|) passa tali comandi al cmdlet Add-History che li aggiunge alla cronologia corrente. Nel comando Add-History non è incluso alcun parametro, ma tramite Windows PowerShell gli oggetti passati attraverso la pipeline vengono associati al parametro InputObject.

Esempio 4

C:\PS>$a = import-csv c:\testing\history.csv

C:\PS>add-history -inputobject $a -passthru

Descrizione
-----------
Tramite questi comandi vengono aggiunti alla cronologia della sessione corrente i comandi inclusi nel file History.csv. Nel primo comando viene utilizzato il cmdlet Import-Csv per importare i comandi nel file History.csv e archiviarne il contenuto nella variabile $a. Nel secondo comando viene utilizzato il cmdlet Add-History per aggiungere i comandi dal file History.csv alla cronologia della sessione corrente. Vengono utilizzati il parametro InputObject per specificare la variabile $a e il parametro PassThru per generare un oggetto da visualizzare nella riga di comando. Se il parametro PassThru non viene specificato, Add-History non genera alcun output da visualizzare.

Esempio 5

C:\PS>add-history -inputobject (import-clixml c:\temp\history01.xml)

Descrizione
-----------
Tramite questo comando vengono aggiunti i comandi inclusi nel file History01.xml alla cronologia della sessione corrente. Viene utilizzato il parametro InputObject per passare i risultati del comando racchiuso tra parentesi ad Add-History. Con il comando tra parentesi, eseguito per primo, viene importato il file History01.xml in Windows PowerShell. Con Add-History i comandi inclusi nel file vengono aggiunti alla cronologia della sessione.

Vedere anche

  • about_History
  • Get-History
  • Invoke-History
  • Clear-History


Add-Member

Aggiunge un membro personalizzato definito dall'utente a un'istanza di un oggetto di Windows PowerShell.

Sintassi

Add-Member [-MemberType] {<AliasProperty> | <CodeProperty> | <Property> | <NoteProperty> | <ScriptProperty> | <Properties> | <PropertySet> | <Method> | <CodeMethod> | <ScriptMethod> | <Methods> | <ParameterizedProperty> | <MemberSet> | <Event> | <All>} [-Name] <string> -InputObject <psobject> [[-Value] <Object>] [[-SecondValue] <Object>] [-Force] [-PassThru] [<CommonParameters>]

Descrizione

Il cmdlet Add-Member aggiunge un membro personalizzato definito dall'utente a un'istanza di un oggetto di Windows PowerShell. Consente di aggiungere i seguenti tipi di membri: AliasProperty, CodeProperty, NoteProperty, ScriptProperty, PropertySet, CodeMethod, MemberSet e ScriptMethod. Per impostare il valore iniziale del membro, viene utilizzato il parametro Value. Nel caso di AliasProperty, ScriptProperty, CodeProperty e CodeMethod, è possibile specificare ulteriori informazioni utilizzando il parametro SecondValue.

I membri vengono aggiunti all'istanza specifica dell'oggetto reindirizzato a Add-Member o specificato tramite il parametro InputObject. Il membro aggiuntivo è disponibile solo finché l'istanza è disponibile. È possibile utilizzare il cmdlet Export-Clixml per salvare in un file l'istanza e i membri aggiuntivi. Le informazioni archiviate in tale file possono essere utilizzate dal cmdlet Import-Clixml per creare nuovamente l'istanza dell'oggetto.

Parametri

-Force

Aggiunge un nuovo membro anche se ne esiste già uno con lo stesso nome. Non funziona con i membri principali di un tipo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica l'oggetto a cui verrà aggiunto il nuovo membro. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-MemberType <PSMemberTypes>

Specifica il tipo del membro da aggiungere. Questo parametro è obbligatorio.

I valori validi per questo parametro sono:

-- AliasProperty: proprietà che definisce un nuovo nome per una proprietà esistente.

-- CodeMethod: metodo che fa riferimento a un metodo statico di una classe Microsoft .NET Framework.

-- CodeProperty: proprietà che fa riferimento a una proprietà statica di una classe .NET Framework.

-- MemberSet: raccolta predefinita di proprietà e metodi, quali PSBase, PSObject e PSTypeNames.

-- Method: metodo dell'oggetto .NET Framework sottostante.

-- NoteProperty: proprietà con un valore statico.

-- ParameterizedProperty: proprietà che accetta parametri e valori di parametro.

-- Property: proprietà dell'oggetto .NET Framework sottostante.

-- PropertySet: raccolta predefinita di proprietà dell'oggetto.

-- ScriptMethod: metodo il cui valore è l'output di uno script.

-- ScriptProperty: proprietà il cui valore è l'output di uno script.

-- All: ottiene tutti i tipi di membro.

-- Methods: ottiene tutti i tipi di metodo dell'oggetto (ad esempio method, codemethod, scriptmethod)

-- Properties: ottiene tutti i tipi di proprietà dell'oggetto (ad esempio property, codeproperty, aliasproperty, scriptproperty).

Non tutti gli oggetti dispongono di ogni tipo di membro. Se si specifica un tipo di membro di cui l'oggetto non dispone, Windows PowerShell restituisce un errore.

Il tipo di membro Event non è valido per Add-Member.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-Name <string>

Specifica il nome del membro da aggiungere.

Se si omette il nome del parametro "Name", il valore del parametro -Name deve essere il secondo valore di parametro senza nome nel comando. Se si include il nome del parametro, i parametri possono essere riportati in qualsiasi ordine.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PassThru

Passa l'oggetto appena esteso alla pipeline. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SecondValue <Object>

Specifica ulteriori informazioni facoltative sui membri AliasProperty, ScriptProperty, CodeProperty o CodeMethod. Se viene utilizzato quando si aggiunge un membro AliasProperty, questo parametro deve essere un tipo di dati. Al valore di AliasProperty verrà aggiunta una conversione (cast) nel tipo di dati specificato. Se ad esempio si aggiunge un membro AliasProperty che fornisce un nome alternativo per una proprietà di stringa, è inoltre possibile specificare un parametro SecondValue di System.Int32 per indicare che il valore di tale proprietà di stringa deve essere convertito in un valore integer quando per l'accesso viene utilizzato il membro AliasProperty corrispondente.

È possibile utilizzare il parametro SecondValue per specificare un membro ScriptBlock aggiuntivo quando si aggiunge un membro ScriptProperty. In tal caso, il primo membro ScriptBlock, specificato nel parametro Value, viene utilizzato per ottenere il valore di una variabile. Il secondo membro ScriptBlock, specificato nel parametro SecondValue, viene utilizzato per impostare il valore di una variabile.

Obbligatorio? | false
Posizione? | 4
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Value <Object>

Specifica il valore iniziale del membro aggiunto. Se si aggiunge un membro AliasProperty, CodeProperty o CodeMethod, è possibile specificare ulteriori informazioni facoltative utilizzando il parametro SecondValue.

Obbligatorio? | false
Posizione? | 3
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare qualsiasi tipo di oggetto a Add-Member.
Output | Nessuno o System.Object Quando si utilizza il parametro PassThru, Add-Member restituisce l'oggetto appena esteso. Negli altri casi, il cmdlet non genera alcun output.

Note

È possibile aggiungere membri solo a oggetti PSObject. Per determinare se un oggetto è un oggetto PSObject, utilizzare l'operatore "is". Per testare ad esempio un oggetto archiviato nella variabile $obj, digitare "$obj -is [PSObject]".

I nomi dei parametri MemberType, Name, Value e SecondValue sono facoltativi. Se si omettono i nomi dei parametri, i valori dei parametri senza nome devono essere riportati nell'ordine seguente: MemberType, Name, Value, SecondValue. Se si includono i nomi dei parametri, i parametri possono essere riportati in qualsiasi ordine.

Esempio 1

C:\PS>$a = (get-childitem)[0]

C:\PS> $a | add-member -membertype noteproperty -name Status -value done

C:\PS> $a | get-member -type noteproperty

   TypeName: System.IO.DirectoryInfo

Name          MemberType   Definition
----          ----------   ----------
PSChildName   NoteProperty System.String PSChildName=Co
PSDrive       NoteProperty System.Management.Automation
PSIsContainer NoteProperty System.Boolean PSIsContainer
PSParentPath  NoteProperty System.String PSParentPath=M
PSPath        NoteProperty System.String PSPath=Microso
PSProvider    NoteProperty System.Management.Automation
Status        NoteProperty System.String Status=done

Descrizione
-----------
Questi comandi aggiungono la proprietà di nota Status a un oggetto DirectoryInfo restituito da Get-ChildItem e assegnano a essa un valore "done".

Il primo comando ottiene il primo oggetto restituito da Get-Childitem (indice 0).

Il secondo comando aggiunge la proprietà di nota.

Il terzo comando utilizza un operatore pipeline (|) per inviare l'oggetto aggiornato al cmdlet Get-Member. L'output mostra che la proprietà è stata aggiunta.

Esempio 2

C:\PS>$a = (get-childitem)[0]

C:\PS> $a | add-member -membertype aliasproperty -name FileLength -value Length

C:\PS> $a.filelength

Descrizione
-----------
Con questi comandi viene aggiunta la proprietà alias FileLength a un oggetto DirectoryInfo restituito da Get-ChildItem. La nuova proprietà è un alias della proprietà Length.

Il primo comando ottiene il primo oggetto restituito da Get-Childitem (indice 0).

Il secondo comando aggiunge la proprietà alias.

Il terzo comando restituisce il valore della nuova proprietà FileLength.

Esempio 3

C:\PS>$a = "a string"

C:\PS> $a = $a | add-member -membertype noteproperty -name StringUse -value Display -passthru

C:\PS> $a.StringUse

Descrizione
-----------
Questi comandi aggiungono la proprietà StringUse a una stringa. Poiché la stringa non è un oggetto PSObject, è necessario includere il parametro PassThru nel comando per salvare la stringa estesa nella variabile. Con l'ultimo comando nell'esempio viene visualizzata la nuova proprietà.

Esempio 4

C:\PS>$a = "this is a string"

C:\PS> $a = add-member -inputobject $a -membertype scriptmethod -name words `
-value {$this.split()} -passthru

C:\PS> $a.words()

Descrizione
-----------
Con questi comandi viene aggiunto un metodo script a un oggetto stringa. Il metodo script esporrà il metodo Split() della classe System.String della libreria di classi .NET Framework per agevolare la restituzione delle singole parole in una stringa mediante la chiamata a un metodo denominato "Words" nell'oggetto stringa. Si noti che per forzare Add-Member a restituire l'oggetto stringa esteso come output da archiviare nella variabile $a, viene utilizzato il parametro PassThru.

Esempio 5

C:\PS>$event = get-eventlog -logname system -newest 1

C:\PS> $event.TimeWritten | get-member

C:\PS> add-member -inputobject $event -membertype aliasproperty -name When `
-value TimeWritten -secondvalue System.String

C:\PS> $event.When | get-member

Descrizione
-----------
Tramite questi comandi una proprietà AliasProperty viene aggiunta a un oggetto EventLogEntry restituito dai cmdlet Get-EventLog. Il nome della proprietà AliasProperty è "When" e rappresenta un alias della proprietà TimeWritten dell'oggetto. Verrà quindi utilizzato il parametro SecondValue per specificare che il valore della proprietà deve essere convertito nel tipo System.String quando l'accesso viene effettuato tramite AliasProperty. La proprietà TimeWritten è un oggetto DateTime.

Nel primo comando viene utilizzato il cmdlet Get-EventLog per recuperare dal registro eventi di sistema l'evento più recente che viene quindi archiviato nella variabile $event.

Il secondo comando accede alla proprietà TimeWritten di tale evento e la reindirizza al cmdlet Get-Member per dimostrare che la proprietà è un tipo DateTime. Add-Member viene quindi utilizzato per aggiungere un membro AliasProperty all'istanza dell'oggetto EventLogEntry archiviato nella variabile $event. Vengono quindi utilizzati il parametro Name per impostare il nome del nuovo membro su "When" e il parametro Value per specificare che si tratta di un alias della proprietà 'TimeWritten'. Viene infine utilizzato il parametro SecondValue per indicare che, quando verrà utilizzato il nuovo membro, sarà necessario eseguire il cast del valore restituito dal relativo tipo System.DateTime originale in un tipo System.String.

Nel terzo del comando viene effettuato l'accesso al nuovo membro che viene reindirizzato al cmdlet Get-Member per confermare che il tipo del membro è System.String.

Esempio 6

C:\PS>function Copy-Property ($From, $To)

{
  foreach ($p in Get-Member -InputObject $From -MemberType Property)
  {
     Add-Member -InputObject $To -MemberType NoteProperty -Name $p.Name
     -Value $From.$($p.Name) -Force

     $To.$($p.Name) = $From.$($p.Name)
   }
}

Descrizione
-----------
Questa funzione copia tutte le proprietà di un oggetto in un altro oggetto.

Nel primo comando della funzione viene dichiarato il nome della funzione e ne vengono elencati i parametri.

Nel ciclo Foreach viene utilizzato il cmdlet Get-Member per ottenere ogni proprietà dell'oggetto From. I comandi nel ciclo Foreach vengono eseguiti in serie per ogni proprietà.

Con il comando Add-Member la proprietà dell'oggetto From viene aggiunta all'oggetto To come NoteProperty. Viene utilizzato il parametro Force per consentire al comando di aggiungere membri con lo stesso nome di membro.

L'ultimo comando della funzione fornisce alla nuova proprietà lo stesso nome della proprietà originale.

Vedere anche

  • Get-Member
  • Export-Clixml
  • Import-Clixml


Add-PSSnapin

Aggiunge uno o più snap-in di Windows PowerShell alla sessione corrente.

Sintassi

Add-PSSnapin [-Name] <string[]> [-PassThru] [<CommonParameters>]

Descrizione

Il cmdlet Add-PSSnapin consente di aggiungere snap-in registrati di Windows PowerShell alla sessione corrente. Dopo avere aggiunto gli snap-in, è possibile utilizzare i cmdlet e i provider supportati dagli snap-in nella sessione corrente.

Per aggiungere lo snap-in a tutte le sessioni future di Windows PowerShell, aggiungere il comando Add-PSSnapin al profilo di Windows PowerShell. Per ulteriori informazioni, vedere about_Profiles.

Parametri

-Name <string[]>

Specifica il nome dello snap-in. (si tratta del parametro Name, non AssemblyName o ModuleName).

Per trovare i nomi degli snap-in registrati nel sistema, digitare: "Get-PSSnapin -registered".

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta ogni snap-in aggiunto. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a Add-PSSnapin.
Output | Nessuno o System.Management.Automation.PSSnapInInfo Quando si utilizza il parametro PassThru, Add-PSSnapin restituisce un oggetto PSSnapInfo che rappresenta lo snap-in. Negli altri casi, il cmdlet non genera alcun output.

Note

Per informazioni dettagliate sugli snap-in di Windows PowerShell, vedere about_Pssnapins. Per informazioni sulla creazione di uno snap-in di Windows PowerShell, vedere l'argomento relativo alla creazione di uno snap-in di Windows PowerShell in MSDN library all'indirizzo http://go.microsoft.com/fwlink/? LinkId=144762 (le informazioni potrebbero essere in lingua inglese).

Add-PSSnapin consente di aggiungere lo snap-in solo alla sessione corrente. Per aggiungere lo snap-in a tutte le sessioni di Windows PowerShell, aggiungerlo al profilo di Windows PowerShell. Per ulteriori informazioni, vedere about_Profiles.

È possibile aggiungere qualsiasi snap-in di Windows PowerShell registrato tramite l'utilità di installazione di Microsoft .NET Framework. Per ulteriori informazioni, vedere l'argomento relativo alla registrazione di cmdlet, provider e applicazioni host in MSDN Library all'indirizzo http://go.microsoft.com/fwlink/?LinkID=143619 (le informazioni potrebbero essere in lingua inglese).

Per ottenere un elenco degli snap-in registrati nel computer, digitare "Get-PSSnapin -registered".

Prima di aggiungere uno snap-in, tramite Add-PSSnapin viene verificata la versione dello snap-in per garantire che sia compatibile con la versione corrente di Windows PowerShell. Se la verifica della versione dello snap-in ha esito negativo, in Windows PowerShell viene segnalato un errore.

Esempio 1

C:\PS>add-PSSnapIn Microsoft.Exchange, Microsoft.Windows.AD

Descrizione
-----------
Tramite questo comando vengono aggiunti alla sessione corrente gli snap-in di Microsoft Exchange e di Active Directory.

Esempio 2

C:\PS>get-pssnapin -registered | add-pssnapin -passthru

Descrizione
-----------
Tramite questo comando vengono aggiunti alla sessione tutti gli snap-in di Windows PowerShell registrati. Viene utilizzato il cmdlet Get-PSSnapin insieme al parametro Registered per ottenere gli oggetti che rappresentano tutti gli snap-in registrati. L'operatore pipeline (|) passa il risultato ad Add-PSSnapin, tramite cui gli snap-in vengono aggiunti alla sessione. Il parametro PassThru restituisce oggetti che rappresentano ogni snap-in aggiunto.

Esempio 3

C:\PS>get-pssnapin

Descrizione
-----------
In questo esempio viene illustrato il processo di registrazione di uno snap-in nel sistema e la sua successiva aggiunta alla sessione. Viene utilizzato ManagementFeatures, uno snap-in fittizio implementato in un file denominato ManagementCmdlets.dll.

Con il primo comando vengono ottenuti gli snap-in aggiunti alla sessione corrente, compresi gli snap-in installati con Windows PowerShell. In questo esempio, non viene restituito ManagementFeatures. Ciò indica che non è stato aggiunto alla sessione.

    get-pssnapin

Con il secondo comando vengono ottenuti gli snap-in registrati nel sistema (inclusi quelli già aggiunti alla sessione). Non sono inclusi gli snap-in installati con Windows PowerShell.

    get-pssnapin -registered

In questo caso, il comando non restituisce alcuno snap-in. Indica che lo snap-in ManagementFeatures non è stato registrato nel sistema.

Con il terzo comando viene creato un alias, "installutil", per il percorso dello strumento InstallUtil in .NET Framework.

    set-alias installutil $env:windir\Microsoft.NET\Framework\v2.0.50727\installutil.exe

Nel quarto comando viene utilizzato lo strumento InstallUtil per registrare lo snap-in. Viene specificato il percorso a ManagementCmdlets.dll, il nome file o il "nome modulo" dello snap-in.

    installutil C:\Dev\Management\ManagementCmdlets.dll

Il quinto comando corrisponde al secondo. In questo caso viene utilizzato per verificare che lo snap-in ManagementCmdlets sia registrato.

    get-pssnapin -registered

Nel sesto comando viene utilizzato il cmdlet Add-PSSnapin per aggiungere lo snap-in ManagementFeatures alla sessione. Viene specificato il nome dello snap-in, ManagementFeatures, e non il nome file.

    add-pssnapin ManagementFeatures

Per verificare che lo snap-in venga aggiunto alla sessione, nel settimo comando viene utilizzato il parametro Module del cmdlet Get-Command. Vengono visualizzati gli elementi aggiunti alla sessione da uno snap-in o un modulo.

    get-command -module ManagementFeatures

È inoltre possibile utilizzare la proprietà PSSnapin dell'oggetto restituito da Get-Command per trovare lo snap-in o il modulo nel quale è stato creato un cmdlet. Tramite l'ottavo comando viene utilizzata la notazione con punto per trovare il valore della proprietà PSSnapin del comando Set-Alias.

    (get-command set-alias).pssnapin

Vedere anche

  • Get-PSSnapin
  • Remove-PSSnapin
  • about_Profiles


Add-Type

Aggiunge un tipo Microsoft .NET Framework (una classe) a una sessione di Windows PowerShell.

Sintassi

Add-Type -AssemblyName <string[]> [-IgnoreWarnings] [-PassThru] [<CommonParameters>]

Add-Type [-Name] <string> [-MemberDefinition] <string[]> [-CodeDomProvider <CodeDomProvider>] [-CompilerParameters <CompilerParameters>] [-Linguaggio {<CSharp> | <CSharpVersion3> | <VisualBasic> | <JScript>}] [-Spazio dei nomi <string>] [-OutputAssembly <string>] [-OutputType <OutputAssemblyType>] [-ReferencedAssemblies <string[]>] [-UsingNamespace <string[]>] [-IgnoreWarnings] [-PassThru] [<CommonParameters>]

Add-Type [-Path] <string[]> [-CompilerParameters <CompilerParameters>] [-OutputAssembly <string>] [-OutputType <OutputAssemblyType>] [-ReferencedAssemblies <string[]>] [-IgnoreWarnings] [-PassThru] [<CommonParameters>]

Add-Type [-TypeDefinition] <string> [-CodeDomProvider <CodeDomProvider>] [-CompilerParameters <CompilerParameters>] [-Linguaggio {<CSharp> | <CSharpVersion3> | <VisualBasic> | <JScript>}] [-OutputAssembly <string>] [-OutputType <OutputAssemblyType>] [-ReferencedAssemblies <string[]>] [-IgnoreWarnings] [-PassThru] [<CommonParameters>]

Descrizione

Il cmdlet Add-Type consente di definire una classe .NET Framework nella sessione di Windows PowerShell. Sarà quindi possibile creare un'istanza di oggetti (tramite il cmdlet New-Object) e utilizzare gli oggetti analogamente a qualsiasi oggetto .NET Framework. Se si aggiunge un comando Add-Type al profilo di Windows PowerShell, la classe sarà disponibile in tutte le sessioni di Windows PowerShell.

È possibile specificare il tipo definendo un assembly esistente o file di codice sorgente oppure specificare il codice sorgente inline o salvato in una variabile. È anche possibile specificare un solo metodo lasciando che la classe venga definita e generata tramite Add-Type. È possibile utilizzare questa funzionalità per effettuare chiamate P/Invoke (Platform Invoke) alle funzioni non gestite in Windows PowerShell. Se si specifica il codice sorgente, tramite Add-Type il codice sorgente specificato viene compilato e viene generato un assembly in memoria che contiene i nuovi tipi .NET Framework.

È possibile utilizzare i parametri di Add-Type per specificare un linguaggio e un compilatore alternativi (il valore predefinito è CSharp), opzioni del compilatore, dipendenze dell'assembly, lo spazio dei nomi della classe, i nomi del tipo e l'assembly risultante.

Parametri

-AssemblyName <string[]>

Specifica il nome di un assembly che include i tipi. Add-Type accetta i tipi dall'assembly specificato. Questo parametro è obbligatorio quando si creano tipi basati sul nome di un assembly.

Immettere il nome completo o semplice (anche noto come nome parziale) di un assembly. Nel nome dell'assembly sono consentiti i caratteri jolly. Se si immette un nome semplice o parziale, Add-Type restituisce il nome completo, quindi lo utilizza per caricare l'assembly.

Questo parametro non accetta un percorso o un nome file. Per immettere il percorso del file DLL dell'assembly, utilizzare il parametro Path.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-CodeDomProvider <CodeDomProvider>

Specifica un compilatore o generatore di codice. In Add-Type il compilatore specificato viene utilizzato per compilare il codice sorgente. Il valore predefinito è il compilatore CSharp. Utilizzare questo parametro se si utilizza un linguaggio che non può essere specificato tramite il parametro Language. La classe CodeDomProvider specificata deve essere in grado di generare assembly dal codice sorgente.

Obbligatorio? | false
Posizione? | named
Valore predefinito | CSharp compiler
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-CompilerParameters <CompilerParameters>

Specifica le opzioni per il compilatore del codice sorgente. Queste opzioni vengono inviate al compilatore senza revisione.

Questo parametro consente di configurare il compilatore per la generazione di un file eseguibile, l'incorporamento di risorse o l'impostazione di opzioni della riga di comando, ad esempio l'opzione "/unsafe". Questo parametro implementa la classe CompilerParameters (System.CodeDom.Compiler.CompilerParameters).

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-IgnoreWarnings

Ignora gli avvisi del compilatore. Utilizzare questo parametro per impedire a Add-Type di gestire come errori gli avvisi del compilatore.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Linguaggio <Language>

Specifica il linguaggio utilizzato nel codice sorgente. In Add-Type il linguaggio viene utilizzato per selezionare il compilatore di codice corretto.

I valori validi sono CSharp, CSharpVersion3, VisualBasic e JScript. Il valore predefinito è CSharp.

Obbligatorio? | false
Posizione? | named
Valore predefinito | CSharp
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-MemberDefinition <string[]>

Specifica nuove proprietà o metodi per la classe. Tramite Add-Type viene generato il codice del modello richiesto per il supporto delle proprietà o dei metodi.

È possibile utilizzare questa funzionalità per effettuare chiamate P/Invoke (Platform Invoke) alle funzioni non gestite in Windows PowerShell. Per ulteriori informazioni, vedere gli esempi.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string>

Specifica il nome della classe da creare. Questo parametro è obbligatorio quando si genera un tipo da una definizione di membro.

Il nome del tipo e lo spazio dei nomi devono essere univoci all'interno di una sessione. Non è possibile scaricare o modificare un tipo. Se è necessario modificare il codice per un tipo, modificare il nome o avviare una nuova sessione di Windows PowerShell. In caso contrario il comando ha esito negativo.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Spazio dei nomi <string>

Specifica uno spazio dei nomi per il tipo.

Se questo parametro non è incluso nel comando, il tipo viene creato nello spazio dei nomi Microsoft.PowerShell.Commands.AddType.AutoGeneratedTypes. Se il parametro è incluso nel comando con un valore di stringa vuoto o un valore $null, il tipo viene generato nello spazio dei nomi globale.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Microsoft.PowerShell.Commands.AddType.AutoGeneratedTypes
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-OutputAssembly <string>

Genera un file DLL per l'assembly con il nome specificato nel percorso. Immettere un percorso (facoltativo) e un nome file. È consentito l'utilizzo di caratteri jolly. Per impostazione predefinita, Add-Type genera l'assembly solo in memoria.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-OutputType <OutputAssemblyType>

Specifica il tipo di output dell'assembly di output. I valori validi sono Library, ConsoleApplication e WindowsApplication.

Per impostazione predefinita, non viene specificato alcun tipo di output.

Questo parametro è valido solo quando nel comando viene specificato un assembly di output.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto System.Runtime che rappresenta i tipi aggiunti. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso dei file del codice sorgente o dei file DLL dell'assembly che contengono i tipi.

Se si inviano file del codice sorgente, tramite Add-Type viene compilato il codice nei file e viene creato un assembly in memoria dei tipi. L'estensione di file specificata nel valore di Path determina il compilatore utilizzato da Add-Type.

Se si invia un file di assembly, Add-Type accetta i tipi dell'assembly. Per specificare un assembly in memoria o la Global Assembly Cache, utilizzare il parametro AssemblyName.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ReferencedAssemblies <string[]>

Specifica gli assembly da cui dipende il tipo. Per impostazione predefinita, Add-Type fa riferimento a System.dll e System.Management.Automation.dll. Oltre agli assembly predefiniti, viene fatto riferimento agli assembly specificati mediante questo parametro.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-TypeDefinition <string>

Specifica il codice sorgente che contiene le definizioni del tipo. Immettere il codice sorgente in una stringa o in una stringa here oppure immettere una variabile che contenga il codice sorgente. Per ulteriori informazioni sulle stringhe here, vedere about_Quoting_Rules.

Includere una dichiarazione dello spazio dei nomi nella definizione del tipo. Se si omette la dichiarazione dello spazio dei nomi, il tipo potrebbe avere lo stesso nome di un altro tipo o del collegamento a un altro tipo, con una conseguente sovrascrittura non prevista. Ad esempio, se si definisce un tipo denominato "Exception", gli script che utilizzano "Exception" come collegamento per System.Exception avranno esito negativo.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UsingNamespace <string[]>

Specifica altri spazi dei nomi richiesti per la classe. È simile alla parola chiave Using in C#.

Per impostazione predefinita, Add-Type fa riferimento allo spazio dei nomi System. Quando viene utilizzato il parametro MemberDefinition, per impostazione predefinita Add-Type fa inoltre riferimento allo spazio dei nomi System.Runtime.InteropServices. Oltre agli spazi dei nomi predefiniti, viene fatto riferimento agli spazi dei nomi aggiunti mediante il parametro UsingNamespace.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a Add-Type.
Output | Nessuno o System.RuntimeType Quando si utilizza il parametro PassThru, Add-Type restituisce un oggetto SystemRuntimeType che rappresenta il nuovo tipo. Negli altri casi, il cmdlet non genera alcun output.

Note

I tipi aggiunti esistono solo nella sessione corrente. Per utilizzare i tipi in tutte le sessioni, aggiungerli al profilo di Windows PowerShell. Per ulteriori informazioni sul profilo, vedere about_Profiles.

I nomi dei tipi e gli spazi dei nomi devono essere univoci all'interno di una sessione. Non è possibile scaricare o modificare un tipo. Se è necessario modificare il codice per un tipo, modificare il nome o avviare una nuova sessione di Windows PowerShell. In caso contrario il comando ha esito negativo.

La classe CodeDomProvider per alcuni linguaggi, quali IronPython e JSharp, non genera output. Di conseguenza, non è possibile utilizzare con Add-Type i tipi scritti in questi linguaggi.

Questo cmdlet si basa sulla classe CodeDomProvider. Per ulteriori informazioni su questa classe, vedere Microsoft .NET Framework SDK.

Esempio 1

C:\PS>$source = @"
public class BasicTest
{
    public static int Add(int a, int b)
    {
        return (a + b);
    }

    public int Multiply(int a, int b)
    {
        return (a * b);
    }
}
"@

C:\PS> Add-Type -TypeDefinition $source

C:\PS> [BasicTest]::Add(4, 3)

C:\PS> $basicTestObject = New-Object BasicTest
C:\PS> $basicTestObject.Multiply(5, 2)

Descrizione
-----------
Con questi comandi la classe BasicTest viene aggiunta alla sessione specificando il codice sorgente archiviato in una variabile. Il tipo dispone di un metodo statico denominato Add e di un metodo non statico denominato Multiply.

Con il primo comando viene archiviato il codice sorgente per la classe nella variabile $source.

Nel secondo comando viene utilizzato il cmdlet Add-Type per aggiungere la classe alla sessione. Poiché viene utilizzato il codice sorgente inline, nel comando viene utilizzato il parametro TypeDefinition per specificare il codice nella variabile $source.

Nei comandi restanti viene utilizzata la nuova classe.

Con il terzo comando viene chiamato il metodo statico Add della classe BasicTest. Vengono utilizzati i caratteri dei doppi due punti (::) per specificare un membro statico della classe.

Il quarto comando utilizza il cmdlet New-Object per creare un'istanza della classe BasicTest. Il nuovo oggetto viene salvato nella variabile $basicTestObject.

Nel quinto comando viene utilizzato il metodo Multiply di $basicTestObject.

Esempio 2

C:\PS>[BasicTest] | get-member

C:\PS> [BasicTest] | get-member -static

C:\PS> $basicTestObject | get-member

C:\PS> [BasicTest] | get-member

   TypeName: System.RuntimeType

Name                           MemberType Definition
----                           ---------- ----------
Clone                          Method     System.Object Clone()
Equals                         Method     System.Boolean Equals
FindInterfaces                 Method     System.Type[] FindInt
...

C:\PS> [BasicTest] | get-member -static

   TypeName: BasicTest

Name            MemberType Definition
----            ---------- ----------
Add             Method     static System.Int32 Add(Int32 a, Int32 b)
Equals          Method     static System.Boolean Equals(Object objA,
ReferenceEquals Method     static System.Boolean ReferenceEquals(Obj

C:\PS> $basicTestObject | get-member

   TypeName: BasicTest

Name        MemberType Definition
----        ---------- ----------
Equals      Method     System.Boolean Equals(Object obj)
GetHashCode Method     System.Int32 GetHashCode()
GetType     Method     System.Type GetType()
Multiply    Method     System.Int32 Multiply(Int32 a, Int32 b)
ToString    Method     System.String ToString()

Descrizione
-----------
In questi comandi viene utilizzato il cmdlet Get-Member per esaminare gli oggetti creati mediante i cmdlet Add-Type e New-Object nell'esempio precedente.

Il primo comando utilizza il cmdlet Get-Member per ottenere il tipo e i membri della classe BasicTest aggiunta alla sessione mediante Add-Type. Il comando Get-Member consente di sapere che si tratta di un oggetto System.RuntimeType, derivato dalla classe System.Object.

Nel secondo comando viene utilizzato il parametro Static di Get-Member per ottenere i metodi e le proprietà statiche della classe BasicTest. L'output indica che il metodo Add è incluso.

Nel terzo comando viene utilizzato Get-Member per ottenere i membri dell'oggetto archiviato nella variabile $BasicTestObject. Si tratta dell'istanza dell'oggetto creata mediante il cmdlet New-Object con la classe $BasicType.

L'output indica che il valore della variabile $basicTestObject è un'istanza della classe BasicTest e che include un membro denominato Multiply.

Esempio 3

C:\PS>$accType = add-type -assemblyname accessib* -passthru

Descrizione
-----------
Con questo comando le classi dell'assembly Accessibility vengono aggiunte alla sessione corrente. Viene utilizzato il parametro AssemblyName per specificare il nome dell'assembly. Il carattere jolly consente di ottenere l'assembly corretto, anche quando non si è sicuri del nome o dell'ortografia.

Nel comando viene utilizzato il parametro PassThru per generare oggetti che rappresentano le classi aggiunte alla sessione e gli oggetti vengono salvati nella variabile $accType.

Esempio 4

C:\PS>add-type -path c:\ps-test\Hello.vb

[VBFromFile]::SayHello(", World")

# From Hello.vb
Public Class VBFromFile

Public Shared Function SayHello(sourceName As String) As String
Dim myValue As String = "Hello"

return myValue + sourceName
End Function
End Class

C:\PS> [VBFromFile]::SayHello(", World")
Hello, World

Descrizione
-----------
In questo esempio viene utilizzato il cmdlet Add-Type per aggiungere alla sessione corrente la classe VBFromFile definita nel file Hello.vb. Il testo del file Hello.vb viene visualizzato nell'output dei comandi.

Il primo comando utilizza il cmdlet Add-Type per aggiungere alla sessione corrente il tipo definito nel file Hello.vb. Viene utilizzato il parametro path per specificare il file di origine.

Nel secondo comando viene chiamata la funzione SayHello come metodo statico della classe VBFromFile.

Esempio 5

C:\PS>$signature = @"
[DllImport("user32.dll")]
public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
"@

$showWindowAsync = Add-Type -memberDefinition $signature -name "Win32ShowWindowAsync" -namespace Win32Functions -passThru

# Minimize the Windows PowerShell console
$showWindowAsync::ShowWindowAsync((Get-Process -id $pid).MainWindowHandle, 2)

# Restore it
$showWindowAsync::ShowWindowAsync((Get-Process -id $pid).MainWindowHandle, 4)

Descrizione
-----------
Con i comandi di questo esempio viene illustrato come chiamare le API Windows native in Windows PowerShell. In Add-Type viene utilizzato il meccanismo P/Invoke (Platform Invoke) per chiamare una funzione in User32.dll da Windows PowerShell.

Il primo comando archivia la firma C# della funzione ShowWindowAsync nella variabile $signature. Per ulteriori informazioni, vedere l'articolo relativo alla funzione ShowWindowAsync in MSDN Library all'indirizzo  (le informazioni potrebbero essere in lingua inglese). Per assicurarsi che il metodo risultante sia visibile in una sessione di Windows PowerShell, la parola chiave "public" è stata aggiunta alla firma standard.

Nel secondo comando viene utilizzato il cmdlet Add-Type per aggiungere la funzione ShowWindowAsync alla sessione di Windows PowerShell come metodo statico di una classe creata da Add-Type. Viene utilizzato il parametro MemberDefinition per specificare la definizione del metodo salvata nella variabile $signature.

Nel comando vengono utilizzati i parametri Name e Namespace per specificare un nome e uno spazio dei nomi per la classe e il parametro PassThru per generare un oggetto che rappresenta i tipi e l'oggetto viene salvato nella variabile $showWindowAsync.

Nel terzo e nel quarto comando viene utilizzato il nuovo metodo statico ShowWindowAsync. Il metodo accetta due parametri, l'handle della finestra e un numero intero che specifica come visualizzare la finestra.

Il terzo comando chiama ShowWindowAsync. Utilizza il cmdlet Get-Process con la variabile automatica $pid per ottenere il processo che ospita la sessione corrente di Windows PowerShell. Utilizza quindi la proprietà MainWindowHandle del processo corrente e il valore 2 che rappresenta il valore SW_MINIMIZE.

Per ripristinare la finestra, nel quarto comando viene utilizzato il valore 4 per la posizione della finestra che rappresenta il valore SW_RESTORE. (SW_MAXIMIZE è 3).

Esempio 6

C:\PS>Add-Type -MemberDefinition $jsMethod -Name "PrintInfo" -Language JScript

Descrizione
-----------
In questo comando viene utilizzato il cmdlet Add-Type per aggiungere un metodo dal codice JScript inline alla sessione di Windows PowerShell. Viene utilizzato il parametro MemberDefinition per inviare il codice sorgente archiviato nella variabile $jsMethod. Viene utilizzata la variabile Name per specificare un nome per la classe creata da Add-Type per il metodo e il parametro Language per specificare il linguaggio JScript.

Esempio 7

C:\PS>Add-Type -Path FSharp.Compiler.CodeDom.dll

C:\PS> Add-Type -Path FSharp.Compiler.CodeDom.dll
C:\PS> $provider = New-Object Microsoft.FSharp.Compiler.CodeDom.FSharpCodeProvider

C:\PS> $fSharpCode = @"
let rec loop n =
if n <= 0 then () else begin
print_endline (string_of_int n);
loop (n-1)
end
"@

C:\PS> $fsharpType = Add-Type -TypeDefinition $fSharpCode -CodeDomProvider $provider -PassThru | where { $_.IsPublic }
C:\PS> $fsharpType::loop(4)
4
3
2
1

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il cmdlet Add-Type per aggiungere un compilatore di codice FSharp alla sessione di Windows PowerShell. Per eseguire questo esempio in Windows PowerShell, è necessario disporre di FSharp.Compiler.CodeDom.dll, che viene installato con il linguaggio FSharp.

Nel primo comando dell'esempio viene utilizzato il cmdlet Add-Type con il parametro Path per specificare un assembly. Add-Type ottiene i tipi nell'assembly.

Nel secondo comando viene utilizzato il cmdlet New-Object per creare un'istanza del provider del codice FSharp e il risultato viene salvato nella variabile $provider.

Nel terzo comando viene salvato il codice FSharp che definisce il metodo Loop nella variabile $FSharpCode.

Nel quarto comando viene utilizzato il cmdlet Add-Type per salvare i tipi pubblici definiti in $fSharpCode nella variabile $fSharpType. Il parametro TypeDefinition specifica il codice sorgente che definisce i tipi. Il parametro CodeDomProvider specifica il compilatore del codice sorgente.

Con il parametro PassThru viene indicato a Add-Type di restituire un oggetto Runtime che rappresenta i tipi e un operatore pipeline (|) invia l'oggetto Runtime al cmdlet Where-Object che restituisce solo i tipi pubblici. Viene utilizzato il filtro Where-Object perché il provider FSharp genera tipi non pubblici per supportare il tipo pubblico risultante.

Il quinto comando chiama il metodo Loop come metodo statico del tipo archiviato nella variabile $fSharpType.

Vedere anche

  • Add-Member
  • New-Object


Checkpoint-Computer

Crea un punto di ripristino del sistema nel computer locale.

Sintassi

Checkpoint-Computer [-Description] <string> [[-RestorePointType] <string>] [<CommonParameters>]

Descrizione

Con il cmdlet Checkpoint-Computer viene creato un punto di ripristino del sistema nel computer locale. Questo cmdlet viene eseguito solo in Windows Vista e Windows XP.

Parametri

-Description <string>

Specifica un nome descrittivo per il punto di ripristino. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-RestorePointType <string>

Specifica il tipo di punto di ripristino. Il valore predefinito è APPLICATION_INSTALL.

I valori validi sono APPLICATION_INSTALL, APPLICATION_UNINSTALL, DEVICE_DRIVER_INSTALL, MODIFY_SETTINGS e CANCELLED_OPERATION.

Obbligatorio? | false
Posizione? | 2
Valore predefinito | APPLICATION_INSTALL
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a Checkpoint-Computer.
Output | Nessuno Questo cmdlet non genera alcun output.

Note

In questo cmdlet viene utilizzato il metodo CreateRestorePoint della classe SystemRestore con un evento BEGIN_SYSTEM_CHANGE.

Esempio 1

C:\PS>checkpoint-computer -description "Install MyApp"

Descrizione
-----------
Con questo comando viene creato un punto di ripristino denominato "Install MyApp". Viene utilizzato il tipo di punto di ripristino predefinito APPLICATION_INSTALL.

Esempio 2

C:\PS>checkpoint-computer -description "ChangeNetSettings" -RestorePointType MODIFY_SETTINGS

Descrizione
-----------
Con questo comando viene creato un punto di ripristino di sistema MODIFY_SETTINGS denominato "ChangeNetSettings".

Vedere anche

  • Add-Computer
  • Remove-Computer
  • Restart-Computer
  • Restore-Computer
  • Stop-Computer
  • Test-Connection


Clear-Content

Elimina il contenuto di un elemento, ad esempio eliminando il testo da un file, ma non elimina l'elemento stesso.

Sintassi

Clear-Content [-LiteralPath] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Clear-Content [-Path] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Clear-Content elimina il contenuto di un elemento, ad esempio eliminando il testo da un file, ma non elimina l'elemento stesso. Di conseguenza l'elemento esiste, ma è vuoto. Clear-Content è simile a Clear-Item, ma funziona sui file anziché su alias e variabili.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di cancellare il contenuto del file anche se il file è di sola lettura. L'implementazione varia a seconda del provider. Per ulteriori informazioni, vedere about_Providers. Quando si utilizza il parametro Force, il cmdlet non può ignorare le limitazioni di sicurezza.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Cancella unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica i percorsi degli elementi il cui contenuto viene eliminato. A differenza di Path, il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Path <string[]>

Specifica i percorsi degli elementi il cui contenuto viene eliminato. È consentito l'utilizzo di caratteri jolly. È necessario utilizzare percorsi di elementi, non di contenitori. È necessario, ad esempio, specificare un percorso di uno o più file, non di una directory. È consentito l'utilizzo di caratteri jolly. Questo parametro è obbligatorio, ma il nome del parametro ("Path") è facoltativo.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a Clear-Content.
Output | Nessuno Questo cmdlet non restituisce alcun oggetto.

Note

È inoltre possibile fare riferimento a Clear-Content tramite il relativo alias predefinito "clc". Per ulteriori informazioni, vedere about_Aliases.

Se si omette il nome del parametro -Path, il valore di Path deve essere il primo parametro nel comando. Ad esempio, "clear-content c:\mydir\*.txt". Se si include il nome del parametro, è possibile elencare i parametri in qualsiasi ordine.

È possibile utilizzare Clear-Content con il provider File System di Windows PowerShell e con altri provider di modifica del contenuto. Per cancellare elementi che non sono considerati contenuto, ad esempio elementi gestiti dai provider Certificate o Registry di Windows PowerShell, utilizzare Clear-Item.

Il cmdlet Clear-Content è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PsProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>clear-content ..\SmpUsers\*\init.txt

Descrizione
-----------
Con questo comando viene eliminato tutto il contenuto dei file "init.txt" in tutte le sottodirectory della directory SmpUsers. I file non vengono eliminati, ma sono vuoti.

Esempio 2

C:\PS>clear-content -path * -filter *.log -force

Descrizione
-----------
Con questo comando viene eliminato il contenuto di tutti i file con estensione "log" nella directory corrente, inclusi quelli con attributo di sola lettura. L'asterisco (*) nel percorso rappresenta tutti gli elementi nella directory corrente. Il parametro Force applica il comando ai file di sola lettura. L'utilizzo di un filtro per limitare il comando ai file con estensione "log", invece di specificare "*.log" nel percorso, rende l'operazione più rapida.

Esempio 3

C:\PS>clear-content c:\Temp\* -Include Smp* -Exclude *2* -whatif

Descrizione
-----------
Questo comando richiede una previsione delle conseguenze dell'esecuzione del comando: "clear-content c:\temp\* -include smp* -exclude *2*". Nel risultato sono elencati i file che verrebbero cancellati, in questo caso i file nella directory Temp il cui nome inizia per "Smp" e non contiene "2". Per eseguire il comando, eseguirlo nuovamente senza il parametro Whatif.

Vedere anche

  • about_Providers
  • Get-Content
  • Set-Content
  • Add-Content
  • Get-Item


Clear-EventLog

Elimina tutte le voci dai registri eventi specificati nei computer locali o remoti.

Sintassi

Clear-EventLog [-LogName] <string[]> [[-ComputerName] <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Con il cmdlet Clear-EventLog vengono eliminate tutte le voci dai registri eventi specificati nel computer locali o nei computer remoti. Per utilizzare Clear-EventLog, è necessario essere un membro del gruppo Administrators nel computer interessato.

I cmdlet che contengono il sostantivo EventLog (cmdlet EventLog) funzionano solo su registri eventi classici. Per ottenere eventi da registri che utilizzano la tecnologia Registro eventi di Windows in Windows Vista e nelle versioni successive di Windows, utilizzare Get-WinEvent.

Parametri

-ComputerName <string[]>

Specifica un computer remoto. Il valore predefinito è il computer locale.

Digitare il nome NetBIOS, un indirizzo IP (Internet Protocol) o un nome di dominio completo di un computer remoto. Per specificare il computer locale, digitare il nome del computer, un punto (.) o "localhost".

Questo parametro non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName di Get-EventLog anche se il computer non è configurato per l'esecuzione di comandi remoti.

Obbligatorio? | false
Posizione? | 2
Valore predefinito | Local computer
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-LogName <string[]>

Specifica i registri eventi. Immettere il nome del registro, ovvero il valore della proprietà Log e non di LogDisplayName, di uno o più registri eventi separati da virgole. Non è consentito l'utilizzo di caratteri jolly. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a Clear-EventLog.
Output | Nessuno Questo cmdlet non genera alcun output.

Note

Per utilizzare Clear-EventLog in Windows Vista e nelle versioni successive di Windows, avviare Windows PowerShell con l'opzione "Esegui come amministratore".

Esempio 1

C:\PS>clear-eventlog "Windows PowerShell"

Descrizione
-----------
Con questo comando vengono eliminate le voci dal registro eventi "Windows PowerShell" nel computer locale.

Esempio 2

C:\PS>clear-eventlog -logname ODiag, OSession -computername localhost, Server02

Descrizione
-----------
Con questo comando vengono eliminate tutte le voci nei registri Microsoft Office Diagnostics (ODiag) e Microsoft Office Sessions (OSession) nel computer locale e nel computer remoto Server02.

Esempio 3

C:\PS>clear-eventlog -log application, system -confirm

Descrizione
-----------
Con questo comando viene richiesta la conferma prima di eliminare le voci nei registri eventi specificati.

Esempio 4

C:\PS>function clear-all-event-logs ($computerName="localhost")
{
    $logs = get-eventlog -computername $computername -list | foreach {$_.Log}
    $logs | foreach {clear-eventlog -comp $computername -log $_ }
    get-eventlog -computername $computername -list
}

C:\PS> clear-all-event-logs -comp Server01

  Max(K) Retain OverflowAction        Entries Log
  ------ ------ --------------        ------- ---
  15,168      0 OverwriteAsNeeded           0 Application
  15,168      0 OverwriteAsNeeded           0 DFS Replication
     512      7 OverwriteOlder              0 DxStudio
  20,480      0 OverwriteAsNeeded           0 Hardware Events
     512      7 OverwriteOlder              0 Internet Explorer
  20,480      0 OverwriteAsNeeded           0 Key Management Service
  16,384      0 OverwriteAsNeeded           0 Microsoft Office Diagnostics
  16,384      0 OverwriteAsNeeded           0 Microsoft Office Sessions
  30,016      0 OverwriteAsNeeded           1 Security
  15,168      0 OverwriteAsNeeded           2 System
  15,360      0 OverwriteAsNeeded           0 Windows PowerShell

Descrizione
-----------
Con questa funzione vengono cancellati tutti i registri eventi nei computer specificati e viene visualizzato l'elenco dei registri eventi risultante.

Si noti che sono state aggiunte alcune voci ai registri System e Security dopo la cancellazione dei registri, ma prima della loro visualizzazione.

Vedere anche

  • Get-EventLog
  • Limit-EventLog
  • New-EventLog
  • Remove-EventLog
  • Show-EventLog
  • Write-EventLog
  • Get-WinEvent


Clear-History

Elimina le voci dalla cronologia dei comandi.

Sintassi

Clear-History [[-Id] <Int32[]>] [[-Count] <int>] [-Newest] [-Confirm] [-WhatIf] [<CommonParameters>]

Clear-History [[-Count] <int>] [-CommandLine <string[]>] [-Newest] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Clear-History elimina i comandi dalla cronologia dei comandi, ovvero l'elenco dei comandi immessi durante la sessione corrente.

Senza parametri, tramite Clear-History vengono eliminati tutti i comandi dalla cronologia della sessione, ma è possibile utilizzare i parametri di Clear-History per eliminare comandi selezionati.

Parametri

-CommandLine <string[]>

Elimina i comandi con le stringhe di testo specificate. Se si immette più di una stringa, tramite Clear-History verranno eliminati i comandi con qualsiasi stringa.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-Count <int>

Cancella il numero specificato di voci della cronologia, a partire dalla voce meno recente.

Se si utilizzano i parametri Count e Id nello stesso comando, il cmdlet cancella il numero di voci specificate dal parametro Count, a partire dalla voce specificata dal parametro Id. Ad esempio, se Count è 10 e Id è 30, tramite Clear-History vengono cancellati gli elementi da 21 a 30 (inclusi).

Se si utilizzano i parametri Count e CommandLine nello stesso comando, tramite Clear-History viene cancellato il numero di voci specificate dal parametro Count, a partire dalla voce specificata dal parametro CommandLine.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Id <Int32[]>

Elimina i comandi con gli ID cronologia specificati.

Per trovare l'ID cronologia di un comando, utilizzare Get-History.

Obbligatorio? | false
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Newest

Elimina le voci più recenti nella cronologia. Per impostazione predefinita, tramite Clear-History vengono eliminate le voci meno recenti nella cronologia.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a Clear-History.
Output | Nessuno Questo cmdlet non genera alcun output.

Note

La cronologia della sessione è un elenco dei comandi immessi durante la sessione corrente. È possibile visualizzare la cronologia, aggiungere ed eliminare comandi ed eseguire comandi dalla cronologia stessa. Per ulteriori informazioni, vedere about_History.

L'eliminazione di un comando dalla cronologia non modifica gli ID cronologia degli elementi restanti nella cronologia del comando.

Esempio 1

C:\PS>clear-history

Descrizione
-----------
Elimina tutti i comandi dalla cronologia della sessione.

Esempio 2

C:\PS>clear-history -id 23, 25

Descrizione
-----------
Elimina i comandi con gli ID cronologia 23 e 25.

Esempio 3

C:\PS>clear-history -command *help*, *command

Descrizione
-----------
Elimina i comandi che includono "help" o terminano con "command".

Esempio 4

C:\PS>clear-history -count 10 -newest

Descrizione
-----------
Elimina i 10 comandi più recenti dalla cronologia.

Esempio 5

C:\PS>clear-history -id 10 -count 3

Descrizione
-----------
Elimina i tre comandi meno recenti, a partire dalla voce con ID 10.

Vedere anche

  • about_History
  • Get-History
  • Add-History
  • Invoke-History


Clear-Item

Elimina il contenuto di un elemento, senza eliminare l'elemento stesso.

Sintassi

Clear-Item [-LiteralPath] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Clear-Item [-Path] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Con il cmdlet Clear-Item viene eliminato il valore di un elemento, senza eliminare l'elemento stesso. Ad esempio, Clear-Item consente di eliminare il valore di una variabile, ma non la variabile stessa. Il valore utilizzato per rappresentare un elemento cancellato viene definito da ogni provider di Windows PowerShell. Clear-Item è simile a Clear-Content, ma funziona su alias e variabili anziché su file.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di cancellare elementi che non possono essere modificati in altro modo, ad esempio alias in sola lettura. Il cmdlet non può cancellare le costanti. L'implementazione varia a seconda del provider. Per ulteriori informazioni, vedere about_Providers. Quando si utilizza il parametro Force, il cmdlet non può ignorare le limitazioni di sicurezza.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Cancella unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica il percorso degli elementi che vengono cancellati. A differenza di Path, il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso degli elementi che vengono cancellati. È consentito l'utilizzo di caratteri jolly. Questo parametro è obbligatorio, ma il nome del parametro ("Path") è facoltativo.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa di percorso a Clear-Item.
Output | Nessuno Questo cmdlet non restituisce alcun oggetto.

Note

Il cmdlet Clear-Item è supportato solo da vari provider di Windows PowerShell, inclusi i provider Alias, Environment, Function, Registry e Variable. È pertanto possibile utilizzare Clear-Item per eliminare il contenuto di elementi negli spazi dei nomi del provider.

Non è possibile utilizzare Clear-Item per eliminare il contenuto di un file, perché il provider FileSystem di Windows PowerShell non supporta questo cmdlet. Per cancellare i file, utilizzare Clear-Content.

È inoltre possibile fare riferimento a Clear-Item tramite il relativo alias predefinito "cli". Per ulteriori informazioni, digitare "Get-Help about_Aliases".

Il cmdlet Clear-Item è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PsProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>clear-item Variable:TestVar1

Descrizione
-----------
Con questo comando verrà eliminato il valore della variabile Testvar1. La variabile non viene eliminata e rimane valida, ma il relativo valore viene impostato su null.

Il nome della variabile è preceduta da "Variable:" per indicare il provider Variable di Windows PowerShell. Per ottenere lo stesso risultato, è possibile passare prima allo spazio dei nomi del provider Variable di Windows PowerShell e quindi eseguire il comando Clear-Item.

    PS C:> Set-location Variable:
    PS Variable:\> clear-item Testvar1

Esempio 2

C:\PS>clear-item Alias:log* -include *1* -exclude *3* -whatif

What if: Performing operation "Clear Item" on Target "Item: log1".

Descrizione
-----------
Con questo comando viene chiesto a Windows PowerShell quali conseguenze avrebbe l'esecuzione del comando "clear-item alias:log* -include *1* -exclude *3". Si riceve la risposta che l'esecuzione del comando comporta l'eliminazione del valore alias log1:

Questo comando non avrebbe alcuno effetto sugli alias log, log2 o log13. Poiché il provider di Alias non permette un alias senza un valore, quando si cancella un alias, si elimina anche l'alias.

Esempio 3

C:\PS>clear-item registry::HKLM\Software\MyCompany\MyKey -confirm

Descrizione
-----------
Con questo comando vengono eliminate tutte le voci del Registro di sistema nella sottochiave MyKey, ma solo dopo la richiesta di conferma. Il comando non elimina la sottochiave MyKey né ha effetto su altre chiavi o voci del Registro di sistema. È possibile utilizzare i parametri Include ed Exclude per identificare determinate chiavi del Registro di sistema, ma non per identificare voci del Registro di sistema. Per eliminare determinate voci del Registro di sistema, utilizzare Remove-ItemProperty. Per eliminare il valore di una voce del Registro di sistema, utilizzare Clear-ItemProperty.

Vedere anche

  • about_Providers
  • Copy-Item
  • Get-Item
  • Invoke-Item
  • Move-Item
  • Set-Item
  • New-Item
  • Remove-Item
  • Rename-Item


Clear-ItemProperty

Elimina il valore di una proprietà, senza eliminare la proprietà stessa.

Sintassi

Clear-ItemProperty [-LiteralPath] <string[]> [-Name] <string> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Clear-ItemProperty [-Path] <string[]> [-Name] <string> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Clear-ItemProperty elimina il valore di una proprietà, senza eliminare la proprietà stessa. È possibile utilizzare questo cmdlet per eliminare dati da un valore del Registro di sistema.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt" o "s*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di eliminare proprietà da elementi altrimenti inaccessibili all'utente. L'implementazione varia a seconda del provider. Per ulteriori informazioni, vedere about_Providers.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Cancella unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica il percorso della proprietà che viene cancellata. A differenza di Path, il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Name <string>

Specifica il nome della proprietà da cancellare, ad esempio il nome di un valore del Registro di sistema. Non è consentito l'utilizzo di caratteri jolly.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta la proprietà dell'elemento cancellato. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso della proprietà che viene cancellata. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa di percorso a Clear-ItemProperty.
Output | Nessuno o System.Management.Automation.PSCustomObject Quando si utilizza il parametro PassThru, Clear-ItemProperty genera un oggetto PSCustomObject che rappresenta la proprietà dell'elemento cancellato. Negli altri casi, il cmdlet non genera alcun output.

Note

È possibile utilizzare Clear-ItemProperty per eliminare dati nei valori del Registro di sistema senza eliminare il valore. Se il tipo di dati del valore è binario o DWORD, la cancellazione dei dati imposta il valore su zero. In caso contrario, il valore è vuoto.

È inoltre possibile fare riferimento a Clear-ItemProperty tramite il relativo alias predefinito "clp". Per ulteriori informazioni, vedere about_Aliases.

Il cmdlet Clear-ItemProperty è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>clear-itemproperty -path HKLM:\Software\MyCompany\MyApp -name Options

Descrizione
-----------
Con questo comando vengono eliminati i dati nel valore Options del Registro di sistema nella sottochiave MyApp di HKEY_LOCAL_MACHINE\Software\MyCompany.

Poiché è stato generato da un'unità (C:) del file system, il comando utilizza il percorso completo dell'unità HKLM: e la sottochiave Software\MyCompany\MyApp. Viene utilizzato il parametro Name per specificare il valore Options.

Vedere anche

  • about_Providers
  • Copy-ItemProperty
  • New-ItemProperty
  • Move-ItemProperty
  • Rename-ItemProperty
  • Get-ItemProperty
  • New-ItemProperty


Clear-Variable

Elimina il valore di una variabile.

Sintassi

Clear-Variable [-Name] <string[]> [-Exclude <string[]>] [-Force] [-Include <string[]>] [-PassThru] [-Scope <string>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Clear-Variable consente di eliminare i dati archiviati in una variabile ma non di eliminare la variabile. Di conseguenza, il valore della variabile sarà NULL (vuota). Se per la variabile è stato specificato un tipo di dati o di oggetto, Clear-Variable manterrà il tipo dell'oggetto archiviato nella variabile.

Parametri

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Name. Immettere un criterio o un elemento del nome, ad esempio "s*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di cancellare una variabile anche se è di sola lettura. Anche se si utilizza il parametro Force, il cmdlet non può cancellare le costanti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Cancella unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Name. Immettere un criterio o un elemento del nome, ad esempio "s*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string[]>

Specifica il nome della variabile da eliminare. È consentito l'utilizzo di caratteri jolly. Questo parametro è obbligatorio, ma il nome del parametro ("Name") è facoltativo.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta la variabile cancellata. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Scope <string>

Specifica l'ambito in cui l'alias è considerato valido. I valori validi sono "Global", "Local", "Script" oppure un numero relativo all'ambito corrente, ovvero da 0 al numero di ambiti, dove 0 corrisponde all'ambito corrente e 1 al relativo padre. Il valore predefinito è "Local". Per ulteriori informazioni, vedere about_Scopes.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a Clear-Variable.
Output | Nessuno o System.Management.Automation.PSVariable Quando si utilizza il parametro PassThru, Clear-Variable genera un oggetto System.Management.Automation.PSVariable che rappresenta la variabile cancellata. Negli altri casi, il cmdlet non genera alcun output.

Note

Per eliminare una variabile unitamente al relativo valore, utilizzare Remove-Variable o Remove-Item.

Clear-Variable non eliminerà i valori di variabili impostate come costanti o di proprietà del sistema, anche se si utilizza il parametro -Force.

Se la variabile da cancellare non esiste, il cmdlet non ha nessun effetto e non viene creata una variabile con valore Null.

È inoltre possibile fare riferimento a Clear-Variable tramite il relativo alias predefinito "clv". Per ulteriori informazioni, vedere about_Aliases.

Esempio 1

C:\PS>clear-variable my* -global

Descrizione
-----------
Tramite questo comando verrà eliminato il valore delle variabili globali che iniziano con "my".

Esempio 2

C:\PS>$a=3

C:\PS>&{ clear-variable a }

C:\PS>$a
3

Descrizione
-----------
Tramite questi comandi verrà dimostrato che la cancellazione di una variabile in un ambito figlio non implica la cancellazione del valore nell'ambito padre. Il primo comando imposta il valore della variabile $a su "3". Nel secondo comando viene utilizzato l'operatore invoke (&) per eseguire il comando Clear-Variable in un nuovo ambito. La variabile verrà cancellata nell'ambito figlio, sebbene non esistente, ma non nell'ambito locale. Con il terzo comando, che consente di ottenere il valore di $a, verrà dimostrato che la cancellazione non ha interessato il valore 3.

Esempio 3

C:\PS>clear-variable -name processes

Descrizione
-----------
Tramite questo comando verrà eliminato il valore della variabile $processes. La variabile è ancora esistente ma il relativo valore è Null.

Vedere anche

  • Get-Variable
  • Set-Variable
  • New-Variable
  • Remove-Variable


Compare-Object

Confronta due set di oggetti.

Sintassi

Compare-Object [-ReferenceObject] <PSObject[]> [-DifferenceObject] <PSObject[]> [-CaseSensitive] [-Culture <string>] [-ExcludeDifferent] [-IncludeEqual] [-PassThru] [-Property <Object[]>] [-SyncWindow <int>] [<CommonParameters>]

Descrizione

Il cmdlet Compare-Object consente di confrontare due set di oggetti. I due set di oggetti sono Reference e Difference.

Il risultato del confronto indica se un valore di proprietà è presente solo nell'oggetto dell'insieme Reference (indicato dal simbolo <=), solo nell'oggetto dell'insieme Difference (indicato dal simbolo =>) oppure, se viene specificato il parametro IncludeEqual, in entrambi gli oggetti (indicati dal simbolo ==).

Parametri

-CaseSensitive

Indica che per i confronti verrà fatta distinzione tra maiuscole e minuscole.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Culture <string>

Specifica la lingua da utilizzare per i confronti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-DifferenceObject <PSObject[]>

Specifica gli oggetti confrontati agli oggetti Reference.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-ExcludeDifferent

Visualizza solo le caratteristiche uguali degli oggetti confrontati.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-IncludeEqual

Visualizza le caratteristiche uguali degli oggetti confrontati. Per impostazione predefinita, vengono visualizzate solo le caratteristiche che differiscono tra gli oggetti Reference e Difference.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PassThru

Passa gli oggetti diversi alla pipeline. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Property <Object[]>

Specifica le proprietà degli oggetti Reference e Difference da confrontare.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ReferenceObject <PSObject[]>

Oggetti utilizzati come riferimento per il confronto.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SyncWindow <int>

Definisce un'area di ricerca in cui viene effettuato un tentativo di risincronizzazione dell'ordine in caso di mancata corrispondenza. Il valore predefinito è [Int32]::MaxValue.

Obbligatorio? | false
Posizione? | named
Valore predefinito | [Int32]::MaxValue
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È inoltre possibile reindirizzare un oggetto DifferenceObject a Compare-Object.
Output | Nessuno o gli oggetti diversi Quando si utilizza il parametro PassThru, Compare-Object restituisce gli oggetti che differiscono. Negli altri casi, il cmdlet non genera alcun output.

Esempio 1

C:\PS>compare-object -referenceobject $(get-content C:\test\testfile1.txt) -differenceobject $(get-content C:\test\testfile2.txt)

Descrizione
-----------
Tramite questo comando verrà confrontato il contenuto di due file di testo. Vengono visualizzate solo le righe riportate in uno o nell'altro file, ma non in entrambi.

Esempio 2

C:\PS>compare-object -referenceobject $(get-content C:\Test\testfile1.txt) -differenceobject $(get-content C:\Test\testfile2.txt) -includeequal

Descrizione
-----------
Tramite questo comando verrà confrontata ogni riga del contenuto di due file di testo. Verranno visualizzate tutte le righe del contenuto di entrambi i file con l'indicazione dei casi in cui la singola riga è presente solo nel file Textfile1.txt o nel file Textfile2.txt oppure in entrambi i file.

Esempio 3

C:\PS>$processes_before = get-process

C:\PS> notepad

C:\PS> $processes_after  = get-process

C:\PS> compare-object -referenceobject $processes_before -differenceobject $processes_after

Descrizione
-----------
Tramite questi comandi verranno confrontati due set di oggetti processo.

Nel primo comando viene utilizzato il cmdlet Get-Process per ottenere i processi disponibili nel computer. I processi vengono archiviati nella variabile $processes_before.

Il secondo comando avvia Blocco note.

Nel terzo comando viene nuovamente utilizzato il cmdlet Get-Process e i processi risultanti vengono archiviati nella variabile $processes_after

Nel quarto comando viene utilizzato il cmdlet Compare-Object per confrontare i due set di oggetti processo. Vengono visualizzate le differenze tra di essi, inclusa la nuova istanza di Blocco note.

Vedere anche

  • Group-Object
  • Measure-Object
  • Sort-Object
  • ForEach-Object
  • New-Object
  • Select-Object
  • Tee-Object
  • Where-Object


Complete-Transaction

Esegue il commit della transazione attiva.

Sintassi

Complete-Transaction [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Con il cmdlet Complete-Transaction viene eseguito commit della transazione attiva. Quando si esegue il commit di una transazione, i comandi nella transazione sono completati e i dati interessati dai comandi vengono modificati.

Se la transazione include più sottoscrittori, per eseguire il commit della transazione, è necessario immettere un comando Complete-Transaction per ogni comando Start-Transaction.

Il cmdlet Complete-Transaction fa parte di un set di cmdlet che supportano la funzionalità delle transazioni in Windows PowerShell. Per ulteriori informazioni, vedere about_Transactions.

Parametri

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a Complete-Transaction.
Output | Nessuno Questo cmdlet non restituisce alcun oggetto.

Note

Non è possibile eseguire il rollback di una transazione di cui è stato eseguito il commit o eseguire il commit di una transazione di cui è stato eseguito il rollback.

Non è possibile eseguire il rollback di transazioni diverse da quella attiva. Per eseguire il rollback di una transazione diversa, è necessario eseguire innanzitutto il commit o il rollback della transazione attiva.

Per impostazione predefinita, se il commit di qualsiasi parte di una transazione non può essere eseguito, ad esempio quando un comando nella transazione presenta un errore, viene eseguito il rollback dell'intera transazione.

Esempio 1

C:\PS>cd hkcu:\software

PS HKCU:\software> start-transaction

PS HKCU:\software> new-item MyCompany -UseTransaction
PS HKCU:\software> dir m*

   Hive: HKEY_CURRENT_USER\software

SKC  VC Name                           Property
---  -- ----                           --------
 82   1 Microsoft                      {(default)}

PS HKCU:\software> complete-transaction
PS HKCU:\software> dir m*

   Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
 82   1 Microsoft                      {(default)}
  0   0 MyCompany                      {}

Descrizione
-----------
In questo esempio viene illustrato l'effetto dell'utilizzo del cmdlet Complete-Transaction per il commit di una transazione.

Con il primo comando Start-Transaction viene avviata la transazione. Nel comando New-Item viene utilizzato il parametro UseTransaction per includere il comando nella transazione.

Il primo comando "dir (Get-ChildItem)" mostra che il nuovo elemento non è ancora stato aggiunto al Registro di sistema.

Con il comando Complete-Transaction viene eseguito il commit la transazione che rende valida la modifica di Registro di sistema. Di conseguenza, il secondo comando "dir" mostra che il Registro di sistema è stato modificato.

Esempio 2

C:\PS>cd hkcu:\software

PS HKCU:\software> start-transaction
PS HKCU:\software> new-item MyCompany -UseTransaction

   Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
  0   0 MyCompany                      {}

PS HKCU:\software> start-transaction
PS HKCU:\Software> Get-Transaction

RollbackPreference   SubscriberCount  Status
------------------   ---------------  ------
Error                2                Active

PS HKCU:\software> new-itemproperty -path MyCompany -name MyKey -value -UseTransaction

MyKey
-----
123

PS HKCU:\software> complete-transaction
PS HKCU:\software> get-transaction

RollbackPreference   SubscriberCount  Status
------------------   ---------------  ------
Error                1                Active

PS HKCU:\software> dir m*

   Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
 82   1 Microsoft                      {(default)}

PS HKCU:\software> complete-transaction
PS HKCU:\software> dir m*

   Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
 82   1 Microsoft                      {(default)}
  0   1 MyCompany                      {MyKey}

Descrizione
-----------
In questo esempio viene illustrato come utilizzare Complete-Transaction per eseguire il commit di una transazione con più sottoscrittori.

Per eseguire il commit di una con più sottoscrittori, è necessario immettere un comando Complete-Transaction per ogni comando Start-Transaction. I dati vengono modificati solo quando viene inviato il comando Complete-Transaction finale.

In questo esempio viene illustrata, ai fini dimostrativi, una serie di comandi immessi nella riga di comando. Nella pratica, le transazioni vengono probabilmente eseguite in script, con la transazione secondaria eseguita da uno script di funzione o di supporto chiamato dallo script principale.

In questo esempio, un comando Start-Transaction avvia la transazione. Con comando New-Item con il parametro UseTransaction viene aggiunta la chiave MyCompany a alla chiave Software. Sebbene il comando New-Item restituisce un oggetto chiave, i dati nel Registro di sistema non vengono ancora modificati.

Con un secondo comando Start-Transaction viene aggiunto un secondo sottoscrittore alla transazione esistente. Con il comando Get-Transaction viene confermato che il conteggio dei sottoscrittori è 2. Con un comando New-ItemProperty con il parametro UseTransaction viene aggiunta una voce del Registro di sistema alla nuova chiave MyCompany. Nuovamente, il comando restituisce un valore ma il Registro di sistema non viene modificato.

Con il primo comando Complete-Transaction viene ridotto di 1 il conteggio dei sottoscrittori. Questo è confermato da un comando Get-Transaction. Tuttavia, nessun dato viene modificato, come evidenziato da un comando "dir m*" (Get-ChildItem).

Con il secondo comando Complete-Transaction viene eseguito il commit dell'intera transazione e vengono modificati i dati nel Registro di sistema. Tale risultato è confermato da un secondo comando "dir m*" che mostra i cambiamenti.

Esempio 3

C:\PS>cd hkcu:\software

PS HKCU:\software> start-transaction

PS HKCU:\software> new-item MyCompany -UseTransaction

PS HKCU:\software> dir m*

   Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
 82   1 Microsoft                      {(default)}

PS HKCU:\software> dir m* -UseTransaction

   Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
 82   1 Microsoft                      {(default)}
  0   0 MyCompany                      {}

PS HKCU:\software> complete-transaction

Descrizione
-----------
In questo esempio viene illustrato il valore di utilizzo di comandi Get-* e di altri comandi che non modificano i dati in una transazione. Quando in una transazione viene utilizzato un comando Get-*, vengono ottenuti gli oggetti che fanno parte della transazione. Questo consente di visualizzare in anteprima le modifiche della transazione prima che venga eseguito il commit di tali modifiche.

In questo esempio, viene avviata una transazione. Con un comando New-Item con il parametro UseTransaction viene aggiunta una nuova chiave al Registro di sistema come parte della transazione.

Poiché la nuova chiave del Registro di sistema non è aggiunta al Registro di sistema finché non viene eseguito il comando Complete-Transaction, un semplice comando "dir" (Get-ChildItem) mostra il Registro di sistema senza la nuova chiave.

Tuttavia, quando si aggiunge il parametro UseTransaction al comando "dir", il comando diventa parte della transazione e ottiene gli elementi nella transazione, anche se non sono ancora aggiunti ai dati.

Vedere anche

  • about_Transactions
  • Start-Transaction
  • Get-Transaction
  • Undo-Transaction
  • Use-Transaction


Connect-WSMan

Stabilisce la connessione al servizio WinRM in un computer remoto.

Sintassi

Connect-WSMan [-ApplicationName <string>] [-ComputerName <string>] [-Port <int>] [-UseSSL] [-Authentication <Authentication>] [-ComputerName <string>] [-Credential <PSCredential>] [-Port <int>] [-SessionOption <hashtable>] [<CommonParameters>]

Connect-WSMan [-ConnectionURI <Uri>] [-Authentication <Authentication>] [-ComputerName <string>] [-Credential <PSCredential>] [-Port <int>] [-SessionOption <hashtable>] [<CommonParameters>]

Descrizione

Il cmdlet Connect-WSMan crea una connessione al servizio Gestione remota Windows in un computer remoto e stabilisce una connessione permanente al computer remoto. È possibile utilizzare questo cmdlet nel contesto del provider di WS-Management per stabilire la connessione al servizio Gestione remota Windows in un computer remoto. È inoltre possibile utilizzare questo cmdlet per stabilire la connessione al servizio Gestione remota Windows in un computer remoto prima di passare al provider di WS-Management. Il computer remoto verrà visualizzato nella directory radice del provider di WS-Management.

Per ulteriori informazioni su come effettuare la disconnessione dal servizio Gestione remota Windows in un computer remoto, vedere Disconnect-WSMan.

Parametri

-ApplicationName <string>

Specifica il nome dell'applicazione nella connessione. Il valore predefinito del parametro ApplicationName è "WSMAN". L'identificatore completo dell'endpoint remoto ha il formato seguente:

<trasporto>://<server>:<porta>/<NomeApplicazione>

Ad esempio:

http://server01:8080/WSMAN

Tramite Internet Information Services (IIS), che ospita la sessione, le richieste con questo endpoint vengono inoltrate all'applicazione specificata. L'impostazione predefinita "WSMAN" è appropriata per la maggior parte degli utilizzi. Questo parametro è progettato per essere utilizzato quando più computer stabiliscono connessioni remote a un computer in cui è in esecuzione Windows PowerShell. In questo caso, IIS ospita Gestione remota Windows (WS-Management) per motivi di efficienza.

Obbligatorio? | false
Posizione? | named
Valore predefinito | wsman
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Authentication <Authentication>

Specifica il meccanismo di autenticazione da utilizzare nel server. I valori possibili sono:

- Basic: Basic è uno schema in cui il nome utente e la password vengono inviati come testo non crittografato al server o al proxy.

- Default: utilizzare il metodo di autenticazione implementato dal protocollo WS-Management. Si tratta dell'impostazione predefinita.

- Digest: Digest è uno schema basato su una richiesta di verifica e relativa risposta che utilizza una stringa di dati specificata dal server per la richiesta di verifica.

- Kerberos: il server e il computer client si autenticano reciprocamente utilizzando certificati Kerberos.

- Negotiate: Negotiate è uno schema basato su una richiesta di verifica e relativa risposta che negozia con il server o il proxy per determinare lo schema da utilizzare per l'autenticazione. Ad esempio, questo valore di parametro consente la negoziazione per determinare se viene utilizzato il protocollo Kerberos o NTLM.

- CredSSP: utilizzare l'autenticazione CredSSP (Credential Security Service Provider) che consente all'utente di delegare le credenziali. Questa opzione è destinata ai comandi che vengono eseguiti in un computer remoto, ma raccolgono dati o eseguono ulteriori comandi in altri computer remoti.

Attenzione: CredSSP (Credential Security Service Provider) delega le credenziali dell'utente dal computer locale a un computer remoto. Questa procedura aumenta il rischio per la sicurezza dell'operazione remota. Se il computer remoto è compromesso, quando le credenziali vengono passate a tale computer è possibile utilizzarle per controllare la sessione di rete.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Default
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string>

Specifica il computer in cui si desidera eseguire l'operazione di gestione. Il valore può essere un nome di dominio completo, un nome NetBIOS o un indirizzo IP. Utilizzare il nome del computer locale, localhost o un punto (.) per specificare il computer locale. Il valore predefinito è il computer locale. Quando il computer remoto si trova in un dominio diverso da quello dell'utente, è necessario utilizzare un nome di dominio completo. È possibile reindirizzare un valore per questo parametro al cmdlet.

Obbligatorio? | false
Posizione? | named
Valore predefinito | localhost
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ConnectionURI <Uri>

Specifica l'endpoint di connessione. Il formato di questa stringa è:

<Trasporto>://<Server>:<Porta>/<NomeApplicazione>.

La seguente stringa rappresenta un valore formattato correttamente per questo parametro:

http://Server01:8080/WSMAN. L'URI deve essere completo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente. Digitare un nome utente, ad esempio "User01", "Domain01\User01" o "User@Domain.com". In alternativa, immettere un oggetto PSCredential, ad esempio quello restituito dal cmdlet Get-Credential. Quando si digita un nome utente, viene richiesta una password.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-OptionSet <hashtable>

Passa un set di opzioni a un servizio per modificare o perfezionare la natura della richiesta. Si tratta di opzioni simili a quelle utilizzate nelle shell della riga di comando in quanto specifiche del servizio. È possibile specificare qualsiasi numero di opzioni.

Nell'esempio seguente viene illustrata la sintassi che passa i valori 1, 2 e 3 per i parametri a, b e c:

-OptionSet @{a=1;b=2;c=3}

Obbligatorio? |
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Port <int>

Specifica la porta da utilizzare per la connessione del client al servizio Gestione remota Windows. Quando il trasporto è HTTP, la porta predefinita è 80. Quando il trasporto è HTTPS, la porta predefinita è 443. Quando si utilizza HTTPS come trasporto, il valore del parametro ComputerName deve corrispondere al nome comune del certificato del server. Tuttavia, se il parametro SkipCNCheck viene specificato come parte del parametro SessionOption, il nome comune del certificato del server non deve corrispondere al nome host del server. Il parametro SkipCNCheck deve essere utilizzato solo per computer attendibili.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SessionOption <hashtable>

Definisce un set di opzioni estese per la sessione WS-Management. Immettere un oggetto SessionOption creato utilizzando il cmdlet New-WSManSessionOption. Per ulteriori informazioni sulle opzioni disponibili, vedere New-WSManSessionOption.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseSSL

Specifica che deve essere utilizzato il protocollo SSL (Secure Sockets Layer) per stabilire una connessione al computer remoto. Per impostazione predefinita SSL non viene utilizzato.

In WS-Management viene crittografato tutto il contenuto di Windows PowerShell trasmesso in rete. Il parametro UseSSL consente di specificare la protezione aggiuntiva derivante dall'utilizzo di HTTPS anziché HTTP. Se si specifica questo parametro ma SSL non è disponibile sulla porta utilizzata per la connessione, il comando ha esito negativo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Questo cmdlet non accetta alcun input.
Output | Nessuno Questo cmdlet non genera alcun output.

Note

È possibile eseguire comandi di gestione o query sui dati di gestione in un computer remoto senza creare una sessione WS-Management. A tale scopo, è possibile utilizzare i parametri ComputerName di Invoke-WSManAction e Get-WSManInstance. Quando si utilizza il parametro ComputerName, in Windows PowerShell viene creata una connessione temporanea utilizzata per il singolo comando. Una volta eseguito il comando, la connessione viene chiusa.

Esempio 1

C:\PS>Connect-WSMan -computer server01

PS C:\Users\testuser> cd wsman:
PS WSMan:\>
PS WSMan:\> dir

   WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan

ComputerName                                  Type
------------                                  ----
localhost                                     Container
server01                                      Container

Descrizione
-----------
Questo comando crea una connessione al computer remoto server01.

Il cmdlet Connect-WSMan viene generalmente utilizzato nel contesto del provider di WS-Management per stabilire la connessione a un computer remoto, in questo caso server01. È tuttavia possibile utilizzare il cmdlet per stabilire le connessioni ai computer remoti prima di passare al provider di WS-Management. Le connessioni verranno visualizzate nell'elenco ComputerName.

Esempio 2

C:\PS>$cred = Get-Credential Administrator
Connect-WSMan -computer server01 -credential $cred

PS C:\Users\testuser> cd wsman:
PS WSMan:\>
PS WSMan:\> dir

   WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan

ComputerName                                  Type
------------                                  ----
localhost                                     Container
server01                                      Container

Descrizione
-----------
Questo comando crea una connessione al sistema remoto server01 utilizzando le credenziali dell'account amministratore.

Il primo comando utilizza il cmdlet Get-Credential per ottenere le credenziali di amministratore e archiviarle nella variabile $cred. Il cmdlet Get-Credential richiede all'utente una password o un nome utente e una password. La richiesta viene visualizzata tramite una finestra di dialogo
o sulla riga di comando, a seconda delle impostazioni del Registro di sistema.

Il secondo comando utilizza il parametro Credential per passare a Connect-WSMan le credenziali archiviate in $cred Connect-WSMan quindi stabilisce la connessione al sistema remoto server01 utilizzando le credenziali di amministratore.

Il cmdlet Connect-WSMan viene generalmente utilizzato nel contesto del provider di WS-Management per stabilire la connessione a un computer remoto, in questo caso server01. È tuttavia possibile utilizzare il cmdlet per stabilire le connessioni ai computer remoti prima di passare al provider di WS-Management. Le connessioni verranno visualizzate nell'elenco ComputerName.

Esempio 3

C:\PS>Connect-WSMan -computer server01 -port 80

PS C:\Users\testuser> cd wsman:
PS WSMan:\>
PS WSMan:\> dir

   WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan

ComputerName                                  Type
------------                                  ----
localhost                                     Container
server01                                      Container

Descrizione
-----------
Questo comando crea una connessione al computer remoto server01 sulla porta 80.

Il cmdlet Connect-WSMan viene generalmente utilizzato nel contesto del provider di WS-Management per stabilire la connessione a un computer remoto, in questo caso server01. È tuttavia possibile utilizzare il cmdlet per stabilire le connessioni ai computer remoti prima di passare al provider di WS-Management. Le connessioni verranno visualizzate nell'elenco ComputerName.

Esempio 4

C:\PS>$a = New-WSManSessionOption -operationtimeout 30000
Connect-WSMan -computer server01 -sessionoption $a

PS C:\Users\testuser> cd wsman:
PS WSMan:\>
PS WSMan:\> dir

   WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan

ComputerName                                  Type
------------                                  ----
localhost                                     Container
server01                                      Container

Descrizione
-----------
Questo comando crea una connessione al computer remoto server01 utilizzando le opzioni di connessione definite nel comando New-WSManSessionOption.

Il primo comando utilizza il cmdlet New-WSManSessionOption per archiviare un set di opzioni di impostazione della connessione nella variabile $a. In questo caso, nelle opzioni di sessione viene impostato un timeout connessione di 30 secondi (30.000 millisecondi).

Il secondo comando utilizza il parametro SessionOption per passare a Connect-WSMan le credenziali archiviate nella variabile $a. Tramite Connect-WSMan viene quindi stabilita la connessione al computer remoto server01 mediante le opzioni di sessione specificate.

Il cmdlet Connect-WSMan viene generalmente utilizzato nel contesto del provider di WS-Management per stabilire la connessione a un computer remoto, in questo caso server01. È tuttavia possibile utilizzare il cmdlet per stabilire le connessioni ai computer remoti prima di passare al provider di WS-Management. Le connessioni verranno visualizzate nell'elenco ComputerName.

Vedere anche

  • Disable-WSManCredSSP
  • Disconnect-WSMan
  • Enable-WSManCredSSP
  • Get-WSManCredSSP
  • Get-WSManInstance
  • Invoke-WSManAction
  • New-WSManInstance
  • New-WSManSessionOption
  • Remove-WSManInstance
  • Set-WSManInstance
  • Set-WSManQuickConfig
  • Test-WSMan


ConvertFrom-CSV

Converte le proprietà degli oggetti in formato CSV nelle versioni CSV degli oggetti originali.

Sintassi

ConvertFrom-CSV [[-Delimiter] <char>] [-InputObject] <PSObject[]> [-Header <string[]>] [<CommonParameters>]

ConvertFrom-CSV -UseCulture [-InputObject] <PSObject[]> [-Header <string[]>] [<CommonParameters>]

Descrizione

Il cmdlet ConvertFrom-CSV consente di creare oggetti da stringhe di lunghezza variabile CSV generate dal cmdlet ConvertTo-CSV.

È possibile utilizzare i parametri del cmdlet ConvertFrom-CSV per specificare la riga dell'intestazione di colonna che determina i nomi delle proprietà degli oggetti risultanti, per specificare il delimitatore dell'elemento o per fare in modo che ConvertFrom-CSV utilizzi il separatore di elenco per l'impostazione cultura corrente come delimitatore.

Gli oggetti creati da ConvertFrom-CSV sono versioni CSV degli oggetti originali. I valori delle proprietà degli oggetti CSV sono versioni di tipo stringa dei valori delle proprietà degli oggetti originali. Le versioni CSV degli oggetti non dispongono di alcun metodo.

È inoltre possibile utilizzare i cmdlet Export-CSV e Import-CSV per convertire gli oggetti in stringhe CSV in un file (e viceversa). Questi cmdlet corrispondono ai cmdlet ConvertTo-CSV e ConvertFrom-CSV, a eccezione del fatto che consentono di salvare le stringhe CSV in un file.

Parametri

-Delimiter <char>

Specifica il delimitatore che separa i valori delle proprietà nelle stringhe CSV. Il valore predefinito è la virgola (,). Immettere un carattere, ad esempio i due punti (:). Per specificare il punto e virgola (;), è necessario racchiuderlo tra virgolette doppie.

Se si specifica un carattere diverso dal delimitatore utilizzato nelle stringhe CSV, non è possibile creare oggetti dalle stringhe CSV mediante ConvertFrom-CSV. Vengono invece restituite le stringhe.

Obbligatorio? | false
Posizione? | 2
Valore predefinito | ','
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Header <string[]>

Specifica una riga dell'intestazione di colonna alternativa per la stringa importata. L'intestazione di colonna determina i nomi delle proprietà dell'oggetto creato da ConvertFrom-CSV.

Immettere un elenco di intestazioni di colonna separate da virgole. Racchiudere ogni elemento tra virgolette (singole o doppie). Non racchiudere la stringa dell'intestazione tra virgolette. Se si immette un numero di intestazioni di colonna inferiore a quello delle colonne, le colonne rimanenti non avranno alcuna intestazione. Se si immette un numero di intestazioni superiore a quello delle colonne, le intestazioni in più verranno ignorate.

Quando si utilizza il parametro Header, omettere la stringa dell'intestazione di colonna dalle stringhe CSV. In caso contrario, ConvertFrom-CSV crea un oggetto in più dagli elementi nella riga dell'intestazione.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <PSObject[]>

Specifica le stringhe CSV da convertire in oggetti. Immettere una variabile che contiene le stringhe CSV oppure digitare un comando o un'espressione che consente di ottenere le stringhe CSV. È inoltre possibile reindirizzare le stringhe CSV a ConvertFrom-CSV.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-UseCulture

Utilizzare il separatore di elenco per l'impostazione cultura corrente come delimitatore di stringa. Il valore predefinito è la virgola (,).

Per trovare il separatore di elenco di un'impostazione cultura, utilizzare il comando (Get-Culture).TextInfo.ListSeparator. Se si specifica un carattere diverso dal delimitatore utilizzato nelle stringhe CSV, non è possibile creare oggetti dalle stringhe CSV mediante ConvertFrom-CSV. Vengono invece restituite le stringhe.

Obbligatorio? | true
Posizione? | named
Valore predefinito | Comma
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare le stringhe CSV a ConvertFrom-CSV.
Output | System.Management.Automation.PSObject ConvertFrom-CSV restituisce gli oggetti descritti dalle proprietà nelle stringhe CSV.

Note

Poiché gli oggetti importati sono versioni CSV del tipo di oggetto, non vengono riconosciuti e formattati dalle voci di formattazione dei tipi di Windows PowerShell mediante cui vengono formattate le versioni non CSV del tipo di oggetto.

Nel formato CSV, ogni oggetto viene rappresentato da un elenco di valori delle proprietà dell'oggetto separati da virgole. I valori delle proprietà vengono convertiti in stringhe (tramite il metodo ToString() dell'oggetto), pertanto sono in genere rappresentati dal nome del valore della proprietà. ConvertTo-CSV non esporta i metodi dell'oggetto.

Esempio 1

C:\PS>$p = get-process | convertto-csv

C:\PS> $p | convertfrom-csv

Descrizione
-----------
Con questi comandi i processi nel computer locale vengono convertiti in formato CSV, quindi ripristinati al formato dell'oggetto.

Nel primo comando viene utilizzato il cmdlet Get-Process per ottenere i processi disponibili nel computer locale. Un operatore pipeline (|) li invia al cmdlet ConvertTo-CSV che converte l'oggetto processo nel formato CSV. Le stringhe CSV vengono salvate nella variabile $p.

Nel secondo comando viene utilizzato un operatore pipeline per inviare le stringhe CSV nella variabile $p al cmdlet ConvertFrom-CSV. Il cmdlet consente di convertire le stringhe CSV nelle versioni CSV degli oggetti processo originali.

Esempio 2

C:\PS>$date = get-date | convertto-csv -delimiter ";"

C:\PS> convertfrom-csv -inputobject $date -delimiter ";"

Descrizione
-----------
Questi comandi convertono un oggetto dati in formato CSV, quindi in formato oggetto CSV.

Nel primo comando viene utilizzato il cmdlet Get-Date per ottenere la data e l'ora correnti. Un oggetto pipeline (|) invia la data ai cmdlet ConvertTo-CSV che convertono l'oggetto data in una serie di stringhe CSV. Viene utilizzato il parametro Delimiter per specificare il punto e virgola come delimitatore. Le stringhe vengono salvate nella variabile $date.

Nel secondo comando viene utilizzato il cmdlet ConvertFrom-CSV per convertire nuovamente le stringhe CSV nella variabile $date nel formato oggetto. Vengono utilizzati il parametro InputObject per specificare le stringhe CSV e il parametro Delimiter per specificare il punto e virgola come delimitatore.

Esempio 3

C:\PS>$j = start-job -scriptblock { get-process } | convertto-csv

C:\PS> $header = "MoreData","StatusMessage","Location","Command","State","Finished","InstanceId","SessionId","Name","ChildJobs","Output","Error","Progress","Verbose","Debug","Warning","StateChanged"

# Delete header from $j
C:\PS> $j = $j[0], $j[2..($j.count - 1)]

$j | convertfrom-csv -header $header

MoreData      : True
StatusMessage :
Location      : localhost
Command       : get-process
State         : Running
Finished      : System.Threading.ManualResetEvent
InstanceId    : 6fcb6578-7f42-4d93-9f23-9937f6aac1a2
SessionId     : 1
Name          : Job1
ChildJobs     : System.Collections.Generic.List`1[System.Management.Automation.Job]
Output        : System.Management.Automation.PSDataCollection`1[System.Management.Automation.PSObject]
Error         : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ErrorRecord]
Progress      : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ProgressRecord]
Verbose       : System.Management.Automation.PSDataCollection`1[System.String]
Debug         : System.Management.Automation.PSDataCollection`1[System.String]
Warning       : System.Management.Automation.PSDataCollection`1[System.String]
StateChanged  :

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il parametro Header di ConvertFrom-Csv per modificare i nomi delle proprietà nell'oggetto importato risultante.

Nel primo comando viene utilizzato il cmdlet Start-Job per avviare un processo in background che esegue un comando Get-Process nel computer locale. Un operatore pipeline (|) invia l'oggetto processo risultante al cmdlet ConvertTo-CSV che converte l'oggetto processo nel formato CSV. Un operatore di assegnazione (=) consente di salvare il CSV risultante nella variabile $j.

Nel secondo comando un'intestazione viene salvata nella variabile $header. A differenza dell'intestazione predefinita, questa intestazione utilizza "MoreData" anziché "HasMoreData" e "State" anziché "JobStateInfo".

Con il terzo comando l'intestazione originale (seconda riga) viene eliminata dalle stringhe CSV e restituita alla variabile $j.

Nel quarto comando viene utilizzato il cmdlet ConvertFrom-CSV per convertire le stringhe CSV in una versione CSV dell'oggetto processo. Viene utilizzato un operatore pipeline per inviare il contenuto di $j a ConvertFrom-CSV. L'oggetto risultante dispone delle proprietà "MoreData" e "State", come specificato dall'intestazione.

Esempio 4

C:\PS>(get-culture).textinfo.listseparator

C:\PS> ConvertFrom-Csv -inputobject $services -UseCulture

Descrizione
-----------
Viene utilizzato il cmdlet ConvertFrom-CSV per convertire le stringhe CSV degli oggetti servizio convertiti dal cmdlet ConvertTo-CSV. Viene utilizzato il parametro UseCulture per indicare a ConvertFrom-CSV di utilizzare il delimitatore (separatore di elenco) delle impostazioni cultura correnti.

Quando si utilizza il parametro UseCulture, assicurarsi che il separatore di elenco delle impostazioni cultura correnti corrisponda al delimitatore utilizzato nelle stringhe CSV. In caso contrario, ConvertFrom-CSV non può generare oggetti dalle stringhe CSV.

In questo esempio, è stato utilizzato un comando Get-Culture per verificare il separatore di elenco prima dell'utilizzo del comando ConvertFrom-CSV.

Vedere anche

  • ConvertTo-CSV
  • Export-CSV
  • Import-CSV


ConvertFrom-SecureString

Converte una stringa protetta in una stringa standard crittografata.

Sintassi

ConvertFrom-SecureString [-Key <Byte[]>] [-SecureString] <SecureString> [<CommonParameters>]

ConvertFrom-SecureString [[-SecureKey] <SecureString>] [-SecureString] <SecureString> [<CommonParameters>]

Descrizione

Il cmdlet ConvertFrom-SecureString converte una stringa sicura (System.Security.SecureString) in una stringa standard crittografata (System.String). A differenza della stringa sicura, la stringa standard crittografata può essere salvata in un file per essere utilizzata successivamente. La stringa standard crittografata può essere riconvertita nel formato di stringa sicura tramite il cmdlet ConvertTo-SecureString. Se viene specificata una chiave di crittografia utilizzando il parametro Key o SecureKey, viene utilizzato l'algoritmo di crittografia Rijndael. La chiave specificata deve avere una lunghezza di 128, 192 o 256 bit in quanto queste lunghezze sono quelle supportate per le chiavi dall'algoritmo di crittografia Rijndael. Se non è specificata alcuna chiave, per crittografare la rappresentazione della stringa standard viene utilizzata l'API Windows per la sicurezza dei dati (DPAPI, Windows Data Protection API).

Parametri

-Key <Byte[]>

Specifica la chiave di crittografia come matrice di byte.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SecureKey <SecureString>

Specifica la chiave di crittografia come stringa protetta. Il valore della stringa protetta viene convertito in una matrice di byte prima di essere utilizzato come chiave.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SecureString <SecureString>

Specifica la stringa protetta da convertire in stringa standard crittografata.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Security.SecureString È possibile reindirizzare un oggetto SecureString a ConvertFrom-SecureString.
Output | System.String ConvertFrom-SecureString restituisce un oggetto stringa standard.

Note

Per creare una stringa sicura da caratteri digitati al prompt dei comandi, utilizzare il parametro AsSecureString del cmdlet Read-Host.

Quando si specifica una chiave utilizzando il parametro Key o SecureKey, la lunghezza della chiave deve essere appropriata. Una chiave a 128 bit può ad esempio essere specificata come matrice di byte di 16 cifre. Analogamente, le chiavi a 192 e 256 bit corrispondono rispettivamente a matrici di byte di 24 e 32 cifre.

Esempio 1

C:\PS>$securestring = read-host -assecurestring

Descrizione
-----------
Con questo comando viene creata una stringa sicura da caratteri digitati al prompt dei comandi. Dopo avere immesso il comando, digitare la stringa che si desidera archiviare come stringa protetta. Ogni carattere digitato verrà rappresentato tramite un asterisco (*).

Esempio 2

C:\PS>$standardstring = convertfrom-securestring  $securestring

Descrizione
-----------
Con questo comando viene convertita la stringa sicura archiviata nella variabile $securestring in una stringa standard crittografata. La stringa standard crittografata risultante è archiviata nella variabile $standardstring.

Esempio 3

C:\PS>$key = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43)

C:\PS> $standardstring = convertfrom-securestring  $securestring -key $key

Descrizione
-----------
Questi comandi utilizzano l'algoritmo Rijndael per convertire la stringa sicura archiviata nella variabile $securestring in una stringa standard crittografata con una chiave a 192 bit. La stringa standard crittografata risultante è archiviata nella variabile $standardstring.

Con il primo comando viene archiviata una chiave nella variabile $key. La chiave è una matrice di 24 cifre, tutte inferiori a 256.

Poiché ogni cifra rappresenta un byte (8 bit), la chiave è composta da 24 cifre per un totale di 192 bit (8 x 24). Si tratta di una lunghezza di chiave valida per l'algoritmo Rijndael. Ogni singolo valore è inferiore a 256, ovvero il valore massimo archiviabile in un byte senza segno.

Con il secondo comando viene utilizzata la chiave nella variabile $key per convertire la stringa sicura in una stringa standard crittografata.

Vedere anche

  • ConvertTo-SecureString
  • Read-Host


ConvertFrom-StringData

Converte una stringa che contiene una o più coppie chiave/valore in una tabella hash.

Sintassi

ConvertFrom-StringData [-StringData] <string> [<CommonParameters>]

Descrizione

Il cmdlet ConvertFrom-StringData consente di convertire una stringa che contiene una o più coppie chiave/valore in una tabella hash. Poiché ciascuna coppia chiave/valore deve trovarsi su una riga separata, le stringhe here sono spesso utilizzate come formato di input.

ConvertFrom-StringData è considerato un cmdlet sicuro che può essere utilizzato nella sezione DATA di uno script o una funzione. Quando si utilizza una sezione DATA, il contenuto della stringa deve attenersi alle regole di tale sezione. Per ulteriori informazioni, vedere about_Data_Sections.

Parametri

-StringData <string>

Specifica la stringa da convertire. È possibile utilizzare questo parametro o reindirizzare una stringa a ConvertFrom-StringData. Il nome del parametro è facoltativo.

Il valore di questo parametro deve essere una stringa racchiusa tra virgolette singole (stringa tra virgolette singole), una stringa racchiusa tra virgolette doppie (stringa tra virgolette doppie) o una stringa here che contiene una o più coppie chiave/valore. Ciascuna coppia chiave/valore deve trovarsi su una riga separata o essere separata da caratteri di avanzamento riga (`n).

La stringa può contenere commenti, purché non si trovino sulla stessa riga di una coppia chiave/valore. I commenti non vengono inclusi nella tabella hash.

Una stringa here è composta da una o più righe sulle quali le virgolette sono interpretate letteralmente. Per ulteriori informazioni, vedere about_Quoting_Rules.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene una coppia chiave/valore a ConvertFrom-StringData.
Output | System.Collections.Hashtable ConvertFrom-StringData restituisce una tabella hash creata dalle coppie chiave/valore.

Note

Una stringa here è composta da una o più righe sulle quali le virgolette sono interpretate letteralmente. Per ulteriori informazioni, vedere about_Quoting_Rules.

ConvertFrom-StringData può essere utile negli script che visualizzano messaggi utente in più lingue. È possibile utilizzare le tabelle hash di tipo dizionario per isolare le stringhe di testo dal codice, ad esempio in file di risorse, quindi formattare tali stringhe per utilizzarle negli strumenti di traduzione.

Esempio 1

C:\PS>$here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable does not exist.
'@

C:\PS> convertfrom-stringdata -stringdata $here

Name                           Value
----                           -----
Msg3                           The specified variable does not exist.
Msg2                           Credentials are required for this command.
Msg1                           The string parameter is required.

Descrizione
-----------
Con questi comandi una stringa here tra virgolette singole costituita da messaggi utente viene convertita in una tabella hash. In una stringa racchiusa tra virgolette singole, i valori non sono sostituti di variabili e le espressioni non vengono valutate.

Con il primo comando una stringa here viene creata e salvata nella variabile $here.

Nel secondo comando viene utilizzato il cmdlet ConvertFrom-StringData per convertire la stringa here nella variabile $here in una tabella hash.

Esempio 2

C:\PS>$p = @"
ISE = Windows PowerShell Integrated Scripting Environment
"@

C:\PS> $p | get-member

   TypeName: System.String

Name             MemberType            Definition
----             ----------            ----------
Clone            Method                System.Object Clone()
...

C:\PS> $hash = convertfrom-stringdata -stringdata $p

C:\PS> $hash | get-member

   TypeName: System.Collections.Hashtable

Name              MemberType            Definition
----              ----------            ----------
Add               Method                System.Void Add(Object key, Object
...

Descrizione
-----------
Questi comandi dimostrano che ConvertFrom-StringData converte realmente una stringa here in una tabella hash.

Con il primo comando viene creata una stringa here racchiusa tra virgolette doppie che include una coppia chiave/valore, quindi tale stringa viene salvata nella variabile $p.

Nel secondo comando viene utilizzato un operatore pipeline (|) per inviare la variabile $p al cmdlet Get-Member. Il risultato mostra che $p è una stringa (System.String).

Nel terzo comando viene utilizzato il cmdlet ConvertFrom-StringData per convertire la stringa here in $p in una tabella hash. Il risultato viene archiviato nella variabile $hash.

Nel comando finale viene utilizzato un operatore pipeline (|) per inviare la variabile $hash al cmdlet Get-Member. Il risultato mostra che il contenuto della variabile $hash è una tabella hash (System.Collections.Hashtable).

Esempio 3

C:\PS>convertfrom-stringdata -stringdata @'
   Name = Disks.ps1
   # Category is optional.
   Category = Storage
   Cost = Free
'@

Name                           Value
----                           -----
Cost                           Free
Category                       Storage
Name                           Disks.ps1

Descrizione
-----------
Con questo comando una stringa here racchiusa tra virgolette singole che contiene più coppie chiave/valore viene convertita in una tabella hash.

In questo comando, il valore del parametro StringData è una stringa here, anziché una variabile che contiene una stringa here. Entrambi i formati sono validi.

La stringa here include un commento su una delle stringhe. I commenti sono validi nelle stringhe, purché si trovino su una riga diversa rispetto a una coppia chiave/valore.

Esempio 4

C:\PS>$a = convertfrom-stringdata -stringdata "Top = Red `n Bottom = Blue"

C:\PS> "Top = " + $a.Top
Top = Red

C:\PS> "Bottom = " + $a.Bottom
Bottom = Blue

Descrizione
-----------
In questo esempio una stringa regolare racchiusa tra virgolette doppie (non una stringa here) viene convertita in una tabella hash e salvata nella variabile $a.

Per soddisfare la condizione secondo cui ciascuna coppia chiave/valore deve trovarsi su una riga separata, viene utilizzato il carattere di avanzamento riga (`n) di Windows PowerShell per separare le coppie.

Il risultato è una tabella hash dell'input. I comandi rimanenti consentono di visualizzare l'output.

Esempio 5

C:\PS>$TextMsgs = DATA {
  ConvertFrom-StringData @'
    Text001 = The $Notebook variable contains the 	name of the user's system notebook.
    Text002 = The $MyNotebook variable contains the 	name of the user's private notebook.
'@
}

C:\PS> $TextMsgs.Text001
The $Notebook variable contains the name of the user's system notebook.

C:\PS> $TextMsgs.Text002
The $MyNotebook variable contains the name of the user's private notebook.

Descrizione
-----------
In questo esempio viene illustrato un comando ConvertFrom-StringData utilizzato nella sezione DATA di uno script. Le istruzioni sotto la sezione DATA visualizzano il testo all'utente.

Poiché il testo include nomi di variabili, è necessario racchiuderlo in una stringa tra virgolette singole in modo che le variabili vengano interpretate in modo letterale e non vengano espanse. Le variabili non sono consentite nella sezione DATA.

Esempio 6

C:\PS>$here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable does not exist.
'@

C:\PS> $hash = $here | convertfrom-stringdata

C:\PS> $hash

Name     Value
----     -----
Msg3     The specified variable does not exist.
Msg2     Credentials are required for this command.
Msg1     The string parameter is required.

Descrizione
-----------
In questo esempio viene illustrato che è possibile utilizzare un operatore pipeline (|) per inviare una stringa a ConvertFrom-StringData.

Con il primo comando la stringa here viene salvata nella variabile $here. Nel secondo comando viene utilizzato un operatore pipeline (|) per inviare la variabile $here a ConvertFrom-StringData. Il risultato viene salvato nella variabile $hash.

Con il comando finale viene visualizzato il contenuto della variabile $hash.

Vedere anche

  • about_Data_Sections
  • about_Quoting_Rules
  • about_Script_Internationalization


Convert-Path

Converte un percorso di Windows PowerShell in un percorso di provider di Windows PowerShell.

Sintassi

Convert-Path [-LiteralPath] <string[]> [-UseTransaction] [<CommonParameters>]

Convert-Path [-Path] <string[]> [-UseTransaction] [<CommonParameters>]

Descrizione

Con il cmdlet Convert-Path viene convertito un percorso di Windows PowerShell in un percorso di provider di Windows PowerShell.

Parametri

-LiteralPath <string[]>

Specifica il percorso da convertire. Il valore del parametro LiteralPath viene utilizzato esattamente come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso di Windows PowerShell da convertire.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare un percorso (ma non un percorso letterale) a Convert-Path.
Output | System.String Convert-Path restituisce una stringa che contiene il percorso convertito.

Note

I cmdlet che contengono il sostantivo Path (cmdlet Path) modificano i nomi dei percorsi e restituiscono i nomi in un formato conciso che può essere interpretato da tutti i provider di Windows PowerShell. Sono progettati per essere utilizzati in programmi e script in cui si intende visualizzare un nome di percorso, completo o parziale, in un determinato formato. Utilizzare questi cmdlet in modo analogo a Dirname, Normpath, Realpath, Join o altri modificatori di percorso.

È possibile utilizzare i cmdlet path con diversi provider, inclusi FileSystem, Registry e Certificate.

Il cmdlet Convert-Path è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>convert-path ~

Descrizione
-----------
Con questo comando viene espansa la directory di lavoro corrente.

Esempio 2

C:\PS>convert-path HKLM:\software\microsoft

Descrizione
-----------
Con questo comando viene convertito un percorso di provider di Windows PowerShell in un percorso standard del Registro di sistema.

Vedere anche

  • about_Providers
  • Test-Path
  • Split-Path
  • Resolve-Path
  • Join-Path


ConvertTo-CSV

Converte gli oggetti Microsoft .NET Framework in una serie di stringhe di lunghezza variabile con valori separati da virgole (CSV).

Sintassi

ConvertTo-CSV [[-Delimiter] <char>] [-InputObject] <psobject> [-NoTypeInformation] [<CommonParameters>]

ConvertTo-CSV [-UseCulture] [-InputObject] <psobject> [-NoTypeInformation] [<CommonParameters>]

Descrizione

Il cmdlet ConvertTo-CSV restituisce una serie di stringhe di lunghezza variabile separate da virgole (CSV) che rappresenta gli oggetti inviati. Per ricreare oggetti dalle stringhe CSV, è quindi possibile utilizzare il cmdlet ConvertFrom-CSV. Gli oggetti risultanti sono le versioni CSV degli oggetti originali costituiti da rappresentazioni di stringhe dei valori delle proprietà senza alcun metodo.

È inoltre possibile utilizzare i cmdlet Export-CSV e Import-CSV per convertire gli oggetti .NET Framework in stringhe CSV (e viceversa). Export-CSV equivale a ConvertTo-CSV, a eccezione del fatto che consente di salvare le stringhe CSV in un file.

È possibile utilizzare i parametri del cmdlet ConvertTo-CSV per specificare un delimitatore diverso dalla virgola o fare in modo che ConvertTo-CSV utilizzi il delimitatore predefinito per l'impostazione cultura corrente.

Per ulteriori informazioni, vedere Export-CSV e la sezione Note.

Parametri

-Delimiter <char>

Specifica un delimitatore per separare i valori delle proprietà. Il valore predefinito è la virgola (,). Immettere un carattere, ad esempio i due punti (:).

Per specificare il punto e virgola (;), è necessario racchiuderlo tra virgolette doppie. In caso contrario, verrà interpretato come delimitatore del comando.

Obbligatorio? | false
Posizione? | 2
Valore predefinito | , (comma)
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica gli oggetti da esportare come stringhe CSV. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti. È inoltre possibile reindirizzare gli oggetti a ConvertTo-CSV.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-NoTypeInformation

Omette l'intestazione delle informazioni sui tipi dall'output. Per impostazione predefinita, la stringa nell'output contiene "#TYPE" seguito dal nome completo del tipo di oggetto .NET Framework.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseCulture

Utilizza il separatore di elenco per l'impostazione cultura corrente come delimitatore di dati. Il valore predefinito è la virgola (,).

Questo parametro è molto utile negli script distribuiti agli utenti di tutto il mondo. Per trovare il separatore di elenco di un'impostazione cultura, utilizzare il comando (Get-Culture).TextInfo.ListSeparator.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Comma
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare qualsiasi oggetto .NET Framework a ConvertTo-CSV.
Output | System.String L'output CSV viene restituito come una raccolta di stringhe.

Note

Nel formato CSV, ogni oggetto viene rappresentato da un elenco di valori delle relative proprietà separati da virgole. I valori delle proprietà vengono convertiti in stringhe (tramite il metodo ToString() dell'oggetto), pertanto sono in genere rappresentati dal nome del valore della proprietà. ConvertTo-CSV non esporta i metodi dell'oggetto.

Il formato delle stringhe CSV risultanti è il seguente:

-- La prima stringa è composta da '#TYPE' seguito dal nome completo del tipo .NET Framework dell'oggetto, ad esempio #TYPE System.Diagnostics.Process. Per eliminare questa stringa, utilizzare il parametro NoTypeInformation.

-- La stringa successiva rappresenta le intestazioni di colonna. È incluso un elenco dei nomi di tutte le proprietà del primo oggetto separati da virgole.

-- Le stringhe rimanenti sono costituite da elenchi di valori di proprietà di ogni oggetto separati da virgole.

Quando si inviano più oggetti a ConvertTo-CSV, le stringhe vengono ordinate in base alle proprietà del primo oggetto inviato. Se gli oggetti rimanenti non hanno una delle proprietà specificate, il valore della proprietà di tale oggetto è null, rappresentato da due virgole consecutive. Se gli oggetti rimanenti hanno proprietà aggiuntive, i valori di tali proprietà vengono ignorati.

Esempio 1

C:\PS>get-process powershell | convertto-csv

#TYPE System.Diagnostics.Process
"__NounName","Name","Handles","VM","WS","PM","NPM","Path","Company","CPU","FileVersion","ProductVersion","Description",
"Product","BasePriority","ExitCode","HasExited","ExitTime","Handle","HandleCount","Id","MachineName","MainWindowHandle"
,"MainWindowTitle","MainModule","MaxWorkingSet","MinWorkingSet","Modules","NonpagedSystemMemorySize","NonpagedSystemMem
orySize64","PagedMemorySize","PagedMemorySize64","PagedSystemMemorySize","PagedSystemMemorySize64","PeakPagedMemorySize
","PeakPagedMemorySize64","PeakWorkingSet","PeakWorkingSet64","PeakVirtualMemorySize","PeakVirtualMemorySize64","Priori
tyBoostEnabled","PriorityClass","PrivateMemorySize","PrivateMemorySize64","PrivilegedProcessorTime","ProcessName","Proc
essorAffinity","Responding","SessionId","StartInfo","StartTime","SynchronizingObject","Threads","TotalProcessorTime","U
serProcessorTime","VirtualMemorySize","VirtualMemorySize64","EnableRaisingEvents","StandardInput","StandardOutput","Sta
ndardError","WorkingSet","WorkingSet64","Site","Container"
"Process","powershell","216","597544960","60399616","63197184","21692","C:\WINDOWS\system32\WindowsPowerShell\v1.0\powe
rshell.exe","Microsoft Corporation","3.4788223","6.1.6587.1 (fbl_srv_powershell(nigels).070711-0102)","6.1.6587.1","Win
dows PowerShell","Microsoft® Windows® Operating System","8",,"False",,"860","216","5132",".","5636936","Windows PowerSh
ell 2.0 (04/17/2008 00:10:40)","System.Diagnostics.ProcessModule (powershell.exe)","1413120","204800","System.Diagnosti
cs.ProcessModuleCollection","21692","21692","63197184","63197184","320080","320080","63868928","63868928","60715008","6
0715008","598642688","598642688","True","Normal","63197184","63197184","00:00:00.2028013","powershell","15","True","1",
"System.Diagnostics.ProcessStartInfo","4/21/2008 3:49:19 PM",,"System.Diagnostics.ProcessThreadCollection","00:00:03.51
00225","00:00:03.3072212","597544960","597544960","False",,,,"60399616","60399616",,

Descrizione
-----------
Con questo comando un singolo oggetto processo viene convertito in formato CSV. Viene utilizzato il cmdlet Get-Process per ottenere i processi PowerShell disponibili nel computer locale. Viene utilizzato un operatore pipeline (|) per inviare il comando al cmdlet ConvertTo-CSV che lo converte in una serie di stringhe separate da virgole.

Esempio 2

C:\PS>$date = get-date

C:\PS> convertto-csv -inputobject $date -delimiter ";" -notypeinformation

Descrizione
-----------
In questo esempio un oggetto data viene convertito in formato CSV.

Nel primo comando viene utilizzato il cmdlet Get-Date per ottenere la data corrente. La data viene salvata nella variabile $date.

Nel secondo comando viene utilizzato il cmdlet ConvertTo-CSV per convertire l'oggetto DateTime nella variabile $date in formato CSV. Vengono utilizzati il parametro InputObject per specificare l'oggetto da convertire, il parametro Delimiter per specificare il delimitatore che separa le proprietà dell'oggetto e il parametro NoTypeInformation per eliminare la stringa #TYPE.

Esempio 3

C:\PS>get-eventlog -log "windows powershell" | convertto-csv -useculture

Descrizione
-----------
Con questo comando il registro eventi di Windows PowerShell nel computer locale viene convertito in una serie di stringhe CSV.

Nel comando viene utilizzato il cmdlet Get-EventLog per ottenere gli eventi nel registro di Windows PowerShell. Mediante un operatore pipeline (|) gli eventi vengono inviati al cmdlet ConvertTo-CSV che li converte in formato CSV. Viene utilizzato il parametro UseCulture che utilizza il separatore di elenco per le impostazioni cultura correnti come delimitatore.

Vedere anche

  • Import-CSV
  • Export-CSV
  • ConvertFrom-CSV


ConvertTo-Html

Converte gli oggetti Microsoft .NET Framework in HTML che è possibile visualizzare in un browser.

Sintassi

ConvertTo-Html [[-Head] <string[]>] [[-Title] <string>] [[-Body] <string[]>] [-CssUri <Uri>] [[-Property] <Object[]>] [-As <string>] [-InputObject <psobject>] [-PostContent <string[]>] [-PreContent <string[]>] [<CommonParameters>]

ConvertTo-Html [-Fragment] [[-Property] <Object[]>] [-As <string>] [-InputObject <psobject>] [-PostContent <string[]>] [-PreContent <string[]>] [<CommonParameters>]

Descrizione

Il cmdlet ConvertTo-Html converte gli oggetti .NET Framework in HTML che è possibile visualizzare in un browser. È possibile utilizzare questo cmdlet per visualizzare l'output di un comando in una pagina Web.

È possibile utilizzare i parametri di ConvertTo-Html per selezionare le proprietà degli oggetti, specificare una tabella o un formato elenco, specificare il titolo della pagina HTML, aggiungere testo prima e dopo l'oggetto e restituire solo la tabella o il frammento di elenco, anziché una pagina DTD Strict.

Quando si inviano più oggetti a ConvertTo-Html, in Windows PowerShell viene creata la tabella (o l'elenco) in base alle proprietà del primo oggetto inviato. Se gli oggetti rimanenti non dispongono di una delle proprietà specificate, il valore della proprietà di tale oggetto è una cella vuota. Se gli oggetti rimanenti dispongono di proprietà aggiuntive, i valori di tali proprietà non vengono inclusi nel file.

Parametri

-As <string>

Determina se l'oggetto viene formattato come tabella o elenco. I valori validi sono TABLE e LIST. Il valore predefinito è TABLE.

Il valore TABLE genera una tabella HTML simile al formato tabella di Windows PowerShell. Nella riga dell'intestazione vengono visualizzati i nomi delle proprietà. Ogni riga della tabella rappresenta un oggetto e visualizza i valori dell'oggetto per ciascuna proprietà.

Il valore LIST genera una tabella HTML a due colonne per ogni oggetto simile al formato elenco di Windows PowerShell. Nella prima colonna viene visualizzato il nome della proprietà; nella seconda il valore della proprietà.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Table
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Body <string[]>

Specifica il testo da aggiungere dopo il tag <BODY> di apertura. Per impostazione predefinita, in tale posizione non è presente testo.

Obbligatorio? | false
Posizione? | 4
Valore predefinito | No text.
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-CssUri <Uri>

Specifica l'URI del foglio di stile CSS applicato al file HTML. L'URI viene incluso in un collegamento al foglio di stile nell'output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Fragment

Genera solo una tabella HTML. I tag HTML, HEAD, TITLE e BODY vengono omessi.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Head <string[]>

Specifica il contenuto del tag <HEAD>. L'impostazione predefinita è"<title>HTML TABLE</title>". Se si utilizza il parametro Head, viene ignorato il parametro Title.

Obbligatorio? | false
Posizione? | 2
Valore predefinito | <title>HTML TABLE</title>
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica gli oggetti da rappresentare in HTML. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Se si utilizza questo parametro per inviare più oggetti, ad esempio tutti i servizi in un computer, ConvertTo-Html crea una tabella in cui vengono visualizzate le proprietà di una raccolta o di una matrice di oggetti (System.Object[]). Per creare una tabella dei singoli oggetti, utilizzare l'operatore pipeline per reindirizzare gli oggetti a ConvertTo-Html.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-PostContent <string[]>

Specifica il testo da aggiungere dopo il tag </TABLE> di chiusura. Per impostazione predefinita, in tale posizione non è presente testo.

Obbligatorio? | false
Posizione? | named
Valore predefinito | No text
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PreContent <string[]>

Specifica il testo da aggiungere prima del tag <TABLE> di apertura. Per impostazione predefinita, in tale posizione non è presente testo.

Obbligatorio? | false
Posizione? | named
Valore predefinito | No text
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Property <Object[]>

Include le proprietà specificate degli oggetti in HTML.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Title <string>

Specifica un titolo per il file HTML, ovvero il testo visualizzato tra i tag <TITLE>.

Obbligatorio? | false
Posizione? | 3
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare qualsiasi oggetto .NET a ConvertTo-Html.
Output | System.String ConvertTo-Html restituisce una serie di stringhe che includono l'HTML valido.

Note

Per utilizzare questo cmdlet, reindirizzare uno o più oggetti al cmdlet o utilizzare il parametro InputObject per specificare l'oggetto. Quando l'input è costituito da più oggetti, l'output di questi due metodi è piuttosto diverso.

-- Quando si reindirizzano più oggetti a un cmdlet, in Windows PowerShell gli oggetti vengono inviati al cmdlet uno alla volta. Di conseguenza, ConvertTo-Html crea una tabella in cui vengono visualizzati i singoli oggetti. Ad esempio, se si reindirizzano i processi in un computer a ConvertTo-Html, nella tabella risultante vengono visualizzati tutti i processi.

-- Quando si utilizza il parametro InputObject per inviare più oggetti, ConvertTo-Html riceve questi oggetti come raccolta o matrice. Di conseguenza, crea una tabella in cui viene visualizzata la matrice e le relative proprietà, non gli elementi nella matrice. Ad esempio, se si utilizza InputObject per inviare i processi in un computer a ConvertTo-Html, nella tabella risultante viene visualizzata una matrice di oggetti (System.Object[]) e le relative proprietà.

Per essere conforme a XHTML DTD Strict, il tag DOCTYPE viene modificato di conseguenza:

(<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">)

Esempio 1

C:\PS>convertto-html -inputobject (get-date)

Descrizione
-----------
Con questo comando viene creata una pagina HTML in cui sono visualizzate le proprietà della data corrente. Viene utilizzato il parametro InputObject per inviare i risultati di un comando Get-Date al cmdlet ConvertTo-Html.

Esempio 2

C:\PS>get-alias | convertto-html > aliases.htm

C:\PS> invoke-item aliases.htm

Descrizione
-----------
Con questo comando viene creata una pagina HTML che elenca gli alias Windows PowerShell nella console corrente.

Il cmdlet Get-Alias viene utilizzato per ottenere gli alias e l'operatore pipeline (|) viene utilizzato per inviare gli alias al cmdlet ConvertTo-Html che crea la pagina HTML.

Esempio 3

C:\PS>get-eventlog -logname "Windows PowerShell | convertto-html > pslog.htm

Descrizione
-----------
Con questo comando viene creata una pagina HTML denominata pslog.htm che visualizza gli eventi nel registro eventi di Windows PowerShell nel computer locale.

Il cmdlet Get-EventLog viene utilizzato per ottenere gli eventi nel registro di Windows PowerShell, quindi l'operatore pipeline (|) viene utilizzato per inviare gli eventi al cmdlet ConvertTo-Html.

Viene inoltre utilizzato l'operatore di reindirizzamento (>) per inviare il codice HTML al file pslog.htm.

Esempio 4

C:\PS>get-process | convertto-html -property Name, Path, Company -title "Process Information" > proc.htm; ii proc.htm

Descrizione
-----------
Con questi comandi viene creata e aperta una pagina HTML in cui sono elencati nome, percorso e società dei processi nel computer locale.

Nel primo comando viene utilizzato il cmdlet Get-Process per ottenere oggetti che rappresentano i processi in esecuzione nel computer. Viene utilizzato l'operatore pipeline (|) per inviare gli oggetti processo al cmdlet ConvertTo-Html.

Vengono utilizzati il parametro Property per selezionare tre proprietà degli oggetti processo da includere nella tabella e il parametro Title per specificare un titolo per la pagina HTML. Viene quindi utilizzato l'operatore di reindirizzamento (>) per inviare il codice HTML risultante a un file denominato Proc.htm.

Nel secondo comando viene utilizzato il cmdlet Invoke-Item (alias = ii) per aprire il file Proc.htm nel browser predefinito. I due comandi sono separati da punto e virgola (;).

Esempio 5

C:\PS>get-service | convertto-html -CssUri "test.css"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>HTML TABLE</title>
<link rel="stylesheet" type="text/css" href="test.css" />
...

Descrizione
-----------
Con questo comando viene creata una pagina HTML degli oggetti servizio restituiti dal cmdlet Get-Service. Viene utilizzato il parametro CssUri per specificare un foglio di stile CSS per la pagina HTML.

Il parametro CssUri aggiunge un tag "<link rel="stylesheet" type="text/css" aggiuntivo all'HTML risultante. L'attributo HREF nel tag contiene il nome del foglio di stile.

Esempio 6

C:\PS>get-service | convertto-html -as LIST > services.htm

Descrizione
-----------
Con questo comando viene creata una pagina HTML degli oggetti servizio restituiti dal cmdlet Get-Service. Viene utilizzato il parametro As per specificare un formato elenco. L'operatore di reindirizzamento (>) invia l'HTML risultante al file Services.htm.

Esempio 7

C:\PS>get-date | cth -fragment

<table>
<colgroup>...</colgroup>
<tr><th>DisplayHint</th><th>DateTime</th><th>Date</th><th>Day</th><th>DayOfWeek</th><th>DayOfYear</th><th>Hour</th><th>
Kind</th><th>Millisecond</th><th>Minute</th><th>Month</th><th>Second</th><th>Ticks</th><th>TimeOfDay</th><th>Year</th><
/tr>
<tr><td>DateTime</td><td>Monday, May 05, 2008 10:40:04 AM</td><td>5/5/2008 12:00:00 AM</td><td>5</td><td>Monday</td><td
>126</td><td>10</td><td>Local</td><td>123</td><td>40</td><td>5</td><td>4</td><td>633455808041237213</td><td>10:40:04.12
37213</td><td>2008</td></tr>
</table>

Descrizione
-----------
In questo comando viene utilizzato ConvertTo-Html per generare una tabella HTML della data corrente. Vengono utilizzati il cmdlet Get-Date per ottenere la data corrente e un operatore pipeline (|) per inviare i risultati al cmdlet ConvertTo-Html (con alias "cth").

Il comando ConvertTo-Html include il parametro Fragment che limita l'output a una tabella HTML. Di conseguenza, vengono omessi gli altri elementi di una pagina HTML, ad esempio i tag <HEAD> e <BODY>.

Esempio 8

C:\PS>get-eventlog -log "Windows PowerShell" | convertto-html -property id, level, task

Descrizione
-----------
In questo comando viene utilizzato il cmdlet Get-EventLog per ottenere eventi dal registro eventi "Windows PowerShell".

Viene utilizzato un operatore pipeline (|) per inviare gli eventi al cmdlet ConvertTo-Html che li converte in formato HTML.

Nel comando ConvertTo-Html viene utilizzato il parametro Property per selezionare solo le proprietà ID, Level e Task dell'evento.

Esempio 9

C:\PS>get-service A* | ConvertTo-Html -title "Windows Services: Server01" -body (get-date) -pre "<P>Generated by Corporate IT</P
>" -post "For details, contact Corporate IT." > services.htm; ii services.htm

Descrizione
-----------
Con questo comando viene creata e aperta una pagina Web in cui vengono visualizzati i servizi che iniziano con "A" disponibili nel computer. I parametri Title, Body, PreContent e PostContent di ConvertTo-Html vengono utilizzati per personalizzare l'output.

Nella prima parte del comando viene utilizzato il cmdlet Get-Service per ottenere i servizi che iniziano con "A" disponibili nel computer. Vengono utilizzati un operatore pipeline (|) per inviare i risultati al cmdlet ConvertTo-Html e un operatore di reindirizzamento (>) per inviare l'output al file Services.htm.

Il punto e virgola (;) termina il primo comando e ne avvia un secondo, che utilizza il cmdlet Invoke-Item (alias = "ii") per aprire il file Services.htm nel browser predefinito.

Vedere anche

  • ConvertTo-CSV
  • ConvertTo-XML


ConvertTo-SecureString

Converte stringhe standard crittografate in stringhe protette. Consente inoltre di convertire testo normale in stringhe protette. Viene utilizzato con ConvertFrom-SecureString e Read-Host.

Sintassi

ConvertTo-SecureString [-Key <Byte[]>] [-String] <string> [<CommonParameters>]

ConvertTo-SecureString [-AsPlainText] [-Force] [-String] <string> [<CommonParameters>]

ConvertTo-SecureString [[-SecureKey] <SecureString>] [-String] <string> [<CommonParameters>]

Descrizione

Il cmdlet ConvertTo-SecureString converte stringhe standard crittografate in stringhe protette. Consente inoltre di convertire testo normale in stringhe protette. Viene utilizzato con ConvertFrom-SecureString e Read-Host. La stringa protetta creata dal cmdlet può essere utilizzata con cmdlet o funzioni che richiedono un parametro di tipo SecureString. La stringa sicura può essere riconvertita nel formato di stringa standard crittografata tramite il cmdlet ConvertFrom-SecureString. In questo modo, può essere archiviata in un file per essere utilizzata successivamente.

Se la stringa standard che deve essere convertita è stata crittografata con ConvertFrom-SecureString utilizzando una chiave specificata, è necessario fornire la stessa chiave come valore del parametro Key o SecureKey del cmdlet ConvertTo-SecureString.

Parametri

-AsPlainText

Specifica una stringa di testo normale da convertire in stringa protetta. I cmdlet SecureString offrono supporto per la sicurezza di testo riservato. Il testo viene crittografato per garantire la sicurezza dei dati personali e dopo essere stato utilizzato viene eliminato dalla memoria del computer. Se si utilizza questo parametro per fornire testo normale come input, l'input non può essere protetto dal sistema. Per utilizzare questo parametro, è necessario specificare anche il parametro Force.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Verifica che l'utente abbia compreso le implicazioni dell'utilizzo del parametro AsPlainText e voglia comunque utilizzarlo.

Obbligatorio? | false
Posizione? | 3
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Key <Byte[]>

Specifica la chiave di crittografia da utilizzare per la conversione di una stringa protetta in stringa standard crittografata. Le lunghezze valide per le chiavi sono di 16, 24 e 32 byte.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SecureKey <SecureString>

Specifica la chiave di crittografia da utilizzare per la conversione di una stringa protetta in stringa standard crittografata. La chiave deve essere fornita nel formato di stringa protetta. La stringa protetta viene convertita in una matrice di byte prima di essere utilizzata come chiave. Le lunghezze valide per le chiavi sono di 16, 24 e 32 byte.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-String <string>

Specifica la stringa da convertire in stringa protetta.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa standard crittografata a ConvertTo-SecureString.
Output | System.Security.SecureString ConvertTo-SecureString restituisce un oggetto SecureString.

Esempio 1

C:\PS>$secure = read-host -assecurestring

C:\PS> $secure
System.Security.SecureString

C:\PS> $encrypted = convertfrom-securestring -securestring $secure
C:\PS> $encrypted
01000000d08c9ddf0115d1118c7a00c04fc297eb010000001a114d45b8dd3f4aa11ad7c0abdae9800000000002000000000003660000a8000000100000005df63cea84bfb7d70bd6842e7
efa79820000000004800000a000000010000000f10cd0f4a99a8d5814d94e0687d7430b100000008bf11f1960158405b2779613e9352c6d14000000e6b7bf46a9d485ff211b9b2a2df3bd
6eb67aae41

C:\PS> $secure2 = convertto-securestring -string $encrypted
C:\PS> $secure2
System.Security.SecureString

Descrizione
-----------
In questo esempio viene illustrato come creare una stringa sicura dall'input dell'utente, come convertire la stringa sicura in una stringa standard crittografata e come convertire di nuovo la stringa standard crittografata in una stringa sicura.

Con il primo comando viene utilizzato il parametro AsSecureString del cmdlet Read-Host per creare una stringa sicura. Dopo avere immesso il comando, qualsiasi carattere digitato viene convertito in una stringa sicura e salvato in una variabile $secure.

Con il secondo comando viene visualizzato il contenuto della variabile $secure. Poiché la variabile $secure contiene una stringa sicura, in Windows PowerShell viene visualizzato solo il tipo System.Security.SecureString.

Con il terzo comando viene utilizzato il cmdlet ConvertFrom-SecureString per convertire la stringa sicura archiviata in una variabile $secure in una stringa standard crittografata. Il risultato viene salvato nella variabile $encrypted. Con il quarto comando viene visualizzata la stringa crittografata nel valore della variabile $encrypted.

Con il quinto comando viene utilizzato il cmdlet ConvertTo-SecureString per convertire la stringa standard crittografata archiviata nella variabile $encrypted in una stringa sicura. Il risultato viene salvato nella variabile $secure2. Con il sesto comando viene visualizzato il valore della variabile $secure2. Il tipo SecureString indica che il comando ha avuto esito positivo.

Esempio 2

C:\PS>$secure = read-host -assecurestring

C:\PS> $encrypted = convertfrom-securestring -secureString $secure -key (1..16)

C:\PS> $encrypted | set-content encrypted.txt

C:\PS> $secure2 = get-content encrypted.txt | convertto-securestring -key (1..16)

Descrizione
-----------
In questo esempio viene illustrato come creare una stringa sicura da una stringa standard crittografata salvata in un file.

Con il primo comando viene utilizzato il parametro AsSecureString del cmdlet Read-Host per creare una stringa sicura. Dopo avere immesso il comando, qualsiasi carattere digitato viene convertito in una stringa sicura e salvato in una variabile $secure.

Con il secondo comando viene utilizzato il cmdlet ConvertFrom-SecureString per convertire la stringa sicura archiviata in una variabile $secure in una stringa standard crittografata tramite la chiave specificata. Il contenuto viene salvato nella variabile $encrypted.

Con il terzo comando viene utilizzato un operatore pipeline (|) per inviare il valore della variabile $encrypted nel cmdlet Set-Content che salva il valore nel file Encrypted.txt.

Con il quarto comando viene utilizzato il cmdlet Get-Content per ottenere la stringa standard crittografata nel file Encrypted.txt. Viene utilizzato un operatore pipeline per inviare la stringa crittografata al cmdlet ConvertTo-SecureString che la converte in una stringa sicura tramite la chiave specificata. I risultati vengono salvati nella variabile $secure2.

Esempio 3

C:\PS>$secure_string_pwd = convertto-securestring "P@ssW0rD!" -asplaintext -force

Descrizione
-----------
Con questo comando una stringa di testo normale, "P@ssW0rD!", viene convertita in stringa sicura e il risultato viene archiviato nella variabile $secure_string_pwd. Per utilizzare il parametro AsPlainText, anche il parametro Force deve essere incluso nel comando.

Vedere anche

  • ConvertFrom-SecureString
  • Read-Host


ConvertTo-XML

Crea una rappresentazione di un oggetto basata su XML.

Sintassi

ConvertTo-XML [-InputObject] <psobject> [-As <string>] [-Depth <int>] [-NoTypeInformation] [<CommonParameters>]

Descrizione

Il cmdlet ConvertTo-Xml crea una rappresentazione basata su XML di uno o più oggetti Microsoft .NET Framework. Per utilizzare questo cmdlet, reindirizzare uno o più oggetti al cmdlet o utilizzare il parametro InputObject per specificare l'oggetto.

Quando si reindirizzano più oggetti a ConvertTo-XML o si utilizza il parametro InputObject per inviare più oggetti, ConvertTo-XML restituisce un unico documento XML che include le rappresentazioni di tutti gli oggetti.

Questo cmdlet è simile a Export-Clixml, a eccezione del fatto che Export-Clixml archivia l'XML risultante in un file. ConvertTo-XML restituisce l'XML, per consentire di continuarne l'elaborazione in Windows PowerShell.

Parametri

-As <string>

Determina il formato dell'output. I valori validi sono:

-- String: restituisce una singola stringa.

-- Stream: restituisce una matrice di stringhe.

-- Document: restituisce un oggetto XmlDocument.

Il valore predefinito è Stream.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Stream
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Depth <int>

Specifica quanti livelli di oggetti contenuti vengono inclusi nella rappresentazione XML. Il valore predefinito è 1.

Se, ad esempio, le proprietà dell'oggetto contengono anche oggetti, per salvare una rappresentazione XML delle proprietà degli oggetti contenuti, è necessario specificare un valore di profondità 2.

È possibile eseguire l'override del valore predefinito per il tipo di oggetto nei file Types.ps1xml. Per ulteriori informazioni, vedere about_Types.ps1xml.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 1
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica l'oggetto da convertire. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti. È inoltre possibile reindirizzare gli oggetti a ConvertTo-XML.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | true

-NoTypeInformation

Omette l'attributo Type dai nodi oggetto.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare qualsiasi oggetto a ConvertTo-XML.
Output | System.String o System.Xml.XmlDocument Il valore del parametro As determina il tipo di oggetto restituito da ConvertTo-XML.

Esempio 1

C:\PS>get-date | convertto-xml

Descrizione
-----------
Con questo comando viene convertita la data corrente (un oggetto DateTime) in XML.

Esempio 2

C:\PS>convertto-xml -as Document -inputObject (get-process) -depth 3

Descrizione
-----------
Con questo comando gli oggetti processo che rappresentano tutti i processi nel computer vengono convertiti in un documento XML. Gli oggetti vengono espansi a una profondità di tre livelli.

Vedere anche

  • Export-Clixml
  • Import-Clixml
  • ConvertTo-Html
  • ConvertTo-CSV


Copy-Item

Copia un elemento da un percorso a un altro all'interno di uno spazio dei nomi.

Sintassi

Copy-Item [-LiteralPath] <string[]> [[-Destination] <string>] [-Container] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Recurse] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Copy-Item [-Path] <string[]> [[-Destination] <string>] [-Container] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Recurse] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Copy-Item copia un elemento da un percorso a un altro in uno spazio dei nomi. Copy-Item non elimina gli elementi copiati. Gli elementi che è possibile copiare tramite il cmdlet dipendono dai provider di Windows PowerShell disponibili. Quando viene utilizzato con il provider FileSystem, ad esempio, il cmdlet può copiare file e directory, mentre quando viene utilizzato con il provider Registry può copiare chiavi e voci del Registro di sistema.

Parametri

-Container

Mantiene gli oggetti contenitore durante l'operazione di copia.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Destination <string>

Specifica il percorso in cui gli elementi devono essere copiati.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di copiare elementi che non possono essere modificati in altro modo, ad esempio eseguire una copia su un file o un alias di sola lettura.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Specifica solo gli elementi sui quali il cmdlet può eseguire operazioni, escludendo tutti gli altri.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica un percorso dell'elemento. Il valore del parametro LiteralPath viene utilizzato esattamente come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta ogni elemento copiato. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso degli elementi da copiare.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Recurse

Specifica una copia ricorsiva.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso a Copy-ItemProperty.
Output | Nessuno o un oggetto che rappresenta l'elemento copiato. Quando si utilizza il parametro PassThru, Copy-Item restituisce un oggetto che rappresenta l'elemento copiato. Negli altri casi, il cmdlet non genera alcun output.

Note

Copy-Item è simile al comando 'cp' o 'copy' in altre shell.

Il cmdlet Copy-Item è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PsProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>copy-item C:\Wabash\Logfiles\mar1604.log.txt -destination C:\Presentation

Descrizione
-----------
Con questo comando il file mar1604.log.txt viene copiato nella directory C:\Presentation. Il file originale non viene eliminato.

Esempio 2

C:\PS>copy-item C:\Logfiles -destination C:\Drawings -recurse

Descrizione
-----------
Con questo comando l'intero contenuto della directory Logfiles viene copiato nella directory Drawings. Se la directory di origine contiene file nelle relative sottodirectory, queste vengono copiate mantenendo intatti gli alberi dei file. Per impostazione predefinita, il parametro Container è impostato su true. In questo modo, la struttura della directory viene mantenuta.

Esempio 3

C:\PS>copy-item C:\Logfiles -destination C:\Drawings\Logs -recurse

Descrizione
-----------
Con questo comando il contenuto della directory C:\Logfiles viene copiato nella directory C:\Drawings\Logs. Se non esiste, la sottodirectory \Logs verrà creata automaticamente.

Vedere anche

  • about_Providers
  • Clear-Item
  • Get-Item
  • Invoke-Item
  • Move-Item
  • Set-Item
  • New-Item
  • Remove-Item
  • Rename-Item


Copy-ItemProperty

Copia una proprietà e un valore da un percorso specificato in un altro percorso.

Sintassi

Copy-ItemProperty [-LiteralPath] <string[]> [-Destination] <string> [-Name] <string> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Copy-ItemProperty [-Path] <string[]> [-Destination] <string> [-Name] <string> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Con il cmdlet Copy-ItemProperty viene copiata una proprietà e un valore da un percorso specificato in un altro percorso. Ad esempio, è possibile utilizzare Copy-ItemProperty per copiare una o più voci del Registro di sistema da una chiave del Registro di sistema a un'altra.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Destination <string>

Specifica il percorso di destinazione.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di ignorare le restrizioni, ad esempio la ridenominazione di file esistenti, purché non venga compromessa la sicurezza.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Specifica solo gli elementi sui quali il cmdlet può eseguire operazioni, escludendo tutti gli altri.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica un percorso della proprietà dell'elemento. Il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Name <string>

Specifica il nome della proprietà da copiare.

Obbligatorio? | true
Posizione? | 3
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta la proprietà dell'elemento copiato. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso della proprietà da copiare.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso a Copy-ItemProperty.
Output | Nessuno o System.Management.Automation.PSCustomObject Quando si utilizza il parametro Passthru, Copy-ItemProperty genera un oggetto PsCustomObject che rappresenta la proprietà dell'elemento copiato. Negli altri casi, il cmdlet non genera alcun output.

Note

Il cmdlet Copy-ItemProperty è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>copy-itemproperty -path MyApplication -destination HKLM:\Software\MyApplicationRev2 -name MyProperty

Descrizione
-----------
Con questo comando la proprietà MyProperty viene copiata dalla chiave del Registro di sistema MyApplication nella chiave del Registro di sistema MyApplicationRev2.

Vedere anche

  • about_Providers
  • Clear-ItemProperty
  • New-ItemProperty
  • Move-ItemProperty
  • Rename-ItemProperty
  • Get-ItemProperty
  • Set-ItemProperty


Debug-Process

Esegue il debug di uno o più processi in esecuzione nel computer locale.

Sintassi

Debug-Process [-Name] <string[]> [-Confirm] [-WhatIf] [<CommonParameters>]

Debug-Process [-Id] <Int32[]> [-Confirm] [-WhatIf] [<CommonParameters>]

Debug-Process -InputObject <Process[]> [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Con il cmdlet Debug-Process viene collegato un debugger a uno o più processi in esecuzione in un computer locale. È possibile specificare i processi in base al nome o all'ID processo (PID) oppure reindirizzare gli oggetti processo a Debug-Process.

Con Debug-Process viene collegato il debugger attualmente registrato per il processo. Prima di utilizzare questo cmdlet, verificare che sia stato scaricato e correttamente configurato un debugger.

Parametri

-Id <Int32[]>

Specifica gli ID dei processi da sottoporre a debug. Il nome del parametro ("-Id") è facoltativo.

Per trovare l'ID di un processo, digitare "Get-Process".

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-InputObject <Process[]>

Specifica gli oggetti processo che rappresentano i processi di cui eseguire il debug. Immettere una variabile contenente gli oggetti processo o un comando che ottenga gli oggetti processo, quale un comando Get-Process. È anche possibile reindirizzare gli oggetti processo a Debug-Process.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Name <string[]>

Specifica i nomi dei processi di cui eseguire il debug. Se sono presenti più processi con lo stesso nome, Debug-Process collega un debugger a tutti i processi con tale nome. Il nome del parametro ("Name") è facoltativo.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Int32, System.Diagnostics.Process, System.String È possibile reindirizzare un ID processo (Int32), un oggetto processo (System.Diagnostics.Process) o un nome processo (String) a Debug-Process.
Output | Nessuno Questo cmdlet non genera alcun output.

Note

Questo cmdlet utilizza il metodo AttachDebugger della classe Windows Management Instrumentation (WMI) Win32_Process. Per ulteriori informazioni su questo metodo, vedere l'argomento relativo al metodo AttachDebugger in MSDN (Microsoft Developer Network) Library all'indirizzo http://go.microsoft.com/fwlink/?LinkId=143640 (le informazioni potrebbero essere in lingua inglese).

Esempio 1

C:\PS>debug-process -name powershell

Descrizione
-----------
Con questo comando viene collegato un debugger al processo di PowerShell nel computer.

Esempio 2

C:\PS>debug-process -name sql*

Descrizione
-----------
Con questo comando viene collegato un debugger a tutti i processi i cui nomi iniziano con "sql."

Esempio 3

C:\PS>debug-process winlogon, explorer, outlook

Descrizione
-----------
Con questo comando viene collegato un debugger ai processi a Winlogon, Explorer e Outlook.

Esempio 4

C:\PS>debug-process -id 1132, 2028

Descrizione
-----------
Con questo comando viene collegato un debugger ai processi che presentano gli ID processo 1132 e 2028.

Esempio 5

C:\PS>get-process powershell | debug-process

Descrizione
-----------
Con questo comando viene collegato un debugger ai processi di PowerShell nel computer. Viene utilizzato il cmdlet Get-Process per ottenere i processi PowerShell nel computer e viene utilizzato un operatore pipeline (|) per inviare i processi al cmdlet Debug-Process.

Per specificare un particolare processo di PowerShell, utilizzare il parametro ID di Get-Process.

Esempio 6

C:\PS>$pid | debug-process

Descrizione
-----------
Con questo comando viene collegato un debugger ai processi di PowerShell correnti nel computer.

Viene utilizzata la variabile automatica $pid che contiene l'ID processo del processo di PowerShell corrente. Viene quindi utilizzato un operatore pipeline (|) per inviare l'ID processo al cmdlet Debug-Process.

Per ulteriori informazioni sulla variabile automatica $pid, vedere about_Automatic_Variables.

Esempio 7

C:\PS>get-process -computername Server01, Server02 -name MyApp | debug-process

Descrizione
-----------
Con questo comando viene collegato un debugger ai processi MyApp nei computer Server01 e Server02.

Viene utilizzato il cmdlet Get-Process per ottenere i processi MyApp nei computer Server01 e Server02. Viene utilizzato l'operatore pipeline per inviare i processi al cmdlet Debug-Process che collega i debugger.

Esempio 8

C:\PS>$p = get-process powershell

C:\PS> debug-process -inputobject $p

Descrizione
-----------
Con questo comando viene collegato un debugger ai processi di PowerShell nel computer locale.

Nel primo comando viene utilizzato il cmdlet Get-Process per ottenere i processi di PowerShell disponibili nel computer. L'oggetto processo risultante viene salvato nella variabile $p.

Nel secondo comando viene utilizzato il parametro InputObject di Debug-Process per inviare l'oggetto processo nella variabile $p a Debug-Process.

Vedere anche

  • Get-Process
  • Start-Process
  • Stop-Process
  • Wait-Process
  • Debug-Process


Disable-ComputerRestore

Disabilita la funzionalità di ripristino di sistema nell'unità del file system specificata.

Sintassi

Disable-ComputerRestore [-Cert:] <string[]> [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Con il cmdlet Disable-ComputerRestore viene disattivata la funzionalità di ripristino di sistema in una o più unità del file system. Come risultato, i tentativi di ripristino del computer non riguardano l'unità specificata.

Per disabilitare il ripristino di sistema in qualsiasi unità, è necessario disabilitarlo nell'unità di sistema precedentemente o contemporaneamente.

Per abilitare nuovamente il ripristino di sistema, utilizzare il cmdlet Enable-ComputerRestore. Per rilevare lo stato del ripristino di sistema di ogni unità, utilizzare Rstrui.exe.

Parametri

-Cert: <string[]>

Specifica le unità del file system. Immettere una o più lettere dell'unità del file system, ognuna delle quali seguita dai due punti e da una barra rovesciata e racchiusa tra virgolette, ovvero "C:\" o "D:\". Questo parametro è obbligatorio.

Non è possibile utilizzare questo cmdlet per disabilitare il ripristino di sistema in un'unità di rete remota, anche se l'unità è mappata al computer locale e non è possibile disabilitare il ripristino di sistema nelle unità non idonee per il ripristino di sistema, ad esempio nelle unità esterne.

Per disabilitare il ripristino di sistema in qualsiasi unità, è necessario disabilitarlo nell'unità di sistema precedentemente o contemporaneamente.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Nessuno Questo cmdlet non genera alcun output.

Note

Disable-ComputerRestore e Enable-ComputerRestore funzionano solo in sistemi operativi client, quali Windows Vista e Windows XP.

Per eseguire un comando Disable-ComputerRestore in Windows Vista e nelle versioni successive di Windows, aprire Windows PowerShell con l'opzione "Esegui come amministratore".

Per trovare le unità del file system idonee per il ripristino di sistema, in Sistema nel Pannello di controllo, accedere alla scheda Protezione sistema. Per aprire questa scheda in Windows PowerShell, digitare "SystemPropertiesProtection."

Questo cmdlet utilizza la classe SystemRestore di Strumentazione gestione Windows (WMI).

Esempio 1

C:\PS>disable-computerrestore -drive "C:\"

Descrizione
-----------
Con questo comando viene disabilitato il ripristino di sistema nell'unità C:.

Esempio 2

C:\PS>disable-computerrestore "C:\", "D:\"

Descrizione
-----------
Con questo comando viene disabilitato il ripristino di sistema nelle unità C: e D:. In questo comando viene utilizzato il parametro Drive, ma viene omesso il nome di parametro facoltativo.

Vedere anche

  • Enable-ComputerRestore
  • Get-ComputerRestorePoint
  • Restore-Computer
  • Restart-Computer


Disable-PSBreakpoint

Disabilita i punti di interruzione nella console corrente.

Sintassi

Disable-PSBreakpoint [-Id] <Int32[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Disable-PSBreakpoint [-Breakpoint] <Breakpoint[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Disable-PSBreakpoint consente di disabilitare i punti di interruzione, il che ne garantisce l'esclusione durante l'esecuzione dello script. È possibile utilizzarlo per disabilitare tutti i punti di interruzione o specificare i punti di interruzione inviando oggetti o ID punto di interruzione.

Tecnicamente, questo cmdlet consente di impostare su False il valore della proprietà Enabled di un oggetto punto di interruzione. Per abilitare nuovamente un punto di interruzione, utilizzare il cmdlet Enable-PSBreakpoint. I punti di interruzione vengono abilitati per impostazione predefinita quando vengono creati tramite il cmdlet Set-PSBreakpoint.

Un punto di interruzione è un punto di uno script in cui l'esecuzione viene interrotta temporaneamente per consentire l'analisi delle istruzioni nello script. Disable-PSBreakpoint è uno dei diversi cmdlet progettato per il debug degli script di Windows PowerShell. Per ulteriori informazioni sul debugger di Windows PowerShell, vedere about_Debuggers.

Parametri

-Breakpoint <Breakpoint[]>

Specifica i punti di interruzione da disabilitare. Immettere una variabile che contiene oggetti punto di interruzione o un comando che consente di ottenere oggetti punto di interruzione, ad esempio Get-PSBreakpoint. È inoltre possibile reindirizzare gli oggetti punto di interruzione al cmdlet Disable-PSBreakpoint.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Id <Int32[]>

Disabilita i punti di interruzione con gli ID punto di interruzione specificati. Immettere gli ID o una variabile che li contenga. Non è possibile reindirizzare gli ID a Disable-PSBreakpoint.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta i punti di interruzione abilitati. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.Breakpoint È possibile reindirizzare un oggetto punto di interruzione a Disable-PSBreakpoint.
Output | Nessuno o System.Management.Automation.Breakpoint Quando si utilizza il parametro PassThru, Disable-PSBreakpoint restituisce un oggetto che rappresenta il punto di interruzione disabilitato. Negli altri casi, il cmdlet non genera alcun output.

Esempio 1

C:\PS>$b = set-psbreakpoint -script sample.ps1 -variable name

C:\PS> $b | disable-psbreakpoint

Descrizione
-----------
Con questi comandi viene disabilitato un punto di interruzione appena creato.

Nel primo comando viene utilizzato il cmdlet Set-PSBreakpoint per creare un punto di interruzione nella variabile Name dello script Sample.ps1. L'oggetto punto di interruzione viene quindi salvato nella variabile $b.

Nel secondo comando viene utilizzato il cmdlet Disable-PSBreakpoint per disabilitare il nuovo punto di interruzione. Viene utilizzato un operatore pipeline (|) per inviare l'oggetto punto di interruzione in $b al cmdlet Disable-PSBreakpoint.

Come conseguenza del comando, il valore della proprietà Enabled dell'oggetto punto di interruzione in $b sarà False.

Esempio 2

C:\PS>disable-psbreakpoint -id 0

Descrizione
-----------
Con questo comando viene disabilitato il punto di interruzione il cui ID è 0.

Esempio 3

C:\PS>disable-psbreakpoint -breakpoint ($b = set-psbreakpoint -script sample.ps1 -line 5)

C:\PS> $b

Descrizione
-----------
Con questo comando viene creato un nuovo punto di interruzione disabilitato fino all'abilitazione.

Viene utilizzato il cmdlet Disable-PSBreakpoint per disabilitare il punto di interruzione. Il valore del parametro Breakpoint è un comando Set-PSBreakpoint che imposta un nuovo punto di interruzione, genera un oggetto punto di interruzione e salva l'oggetto nella variabile $b.

I parametri dei cmdlet che accettano gli oggetti come valori possono accettare una variabile che contiene l'oggetto o un comando che ottiene o genera l'oggetto. In questo caso, poiché Set-PSBreakpoint genera un oggetto punto di interruzione, può essere utilizzato come valore del parametro Breakpoint.

Con il secondo comando l'oggetto punto di interruzione viene visualizzato nel valore della variabile $b.

Esempio 4

C:\PS>get-psbreakpoint | disable-psbreakpoint

Descrizione
-----------
Con questo comando vengono disabilitati tutti i punti di interruzione nella console corrente. È possibile abbreviare questo comando in: "gbp | dbp".

Vedere anche

  • about_Debuggers
  • Set-PSBreakpoint
  • Get-PSBreakpoint
  • Enable-PSBreakpoint
  • Remove-PSBreakpoint
  • Get-PSCallStack


Disable-PSRemoting

Impedisce al computer di ricevere comandi remoti di Windows PowerShell.

Sintassi

Disable-PSRemoting [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

La funzione Disable-PSRemoting disabilita tutte le configurazioni di sessione nel computer locale aggiungendo una voce "deny all" ai descrittori di sicurezza. Ciò impedisce al computer locale di ricevere comandi remoti.

Disable-PSRemoting non provoca l'arresto del servizio Gestione remota Windows e non impedisce agli utenti del computer locale di stabilire sessioni che si connettano a computer remoti o di inviare comandi ad altri computer.

Per abilitare nuovamente le configurazioni di sessione, utilizzare il cmdlet Enable-PSRemoting o Enable-PSSessionConfiguration.

Per eseguire questa funzione in Windows Vista, Windows Server 2008 e nelle versioni successive di Windows, è necessario aprire Windows PowerShell con l'opzione "Esegui come amministratore".

Parametri

-Force

Elimina tutti i prompt dell'utente. Per impostazione predefinita, viene richiesto di confermare ogni operazione.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Nessuno Questo cmdlet non restituisce alcun oggetto.

Note

Una configurazione di sessione è un gruppo di impostazioni che definiscono l'ambiente per una sessione. Le configurazioni di sessione si trovano nel computer remoto e vengono utilizzate dalle sessioni locali e remote che si connettono al computer.

Per ogni sessione che si connette al computer è necessario utilizzare una delle configurazioni di sessione registrate nel computer. Sono incluse le sessioni permanenti create mediante il cmdlet New-PSSession o Enter-PSSession e le sessioni temporanee create da Windows PowerShell quando si utilizza il parametro ComputerName di un cmdlet che utilizza la tecnologia di comunicazione remota di WS-Management, ad esempio Invoke-Command. Negando l'accesso a tutte le configurazioni di sessione, si impedisce a tutti gli utenti di stabilire sessioni che si connettano al computer.

Disable-PSRemoting equivale a "Disable-PSSessionConfiguration -name *.

Esempio 1

C:\PS>disable-psremoting

Descrizione
-----------
Con questo comando vengono disabilitate tutte le configurazioni di sessione nel computer.

Esempio 2

C:\PS>disable-psremoting -force

Descrizione
-----------
Con questo comando vengono disabilitate tutte le configurazioni di sessione nel computer senza chiedere conferma.

Esempio 3

C:\PS>disable-psremoting -force

C:\PS> new-pssession -computername localhost

[localhost] Connecting to remote server failed with the following error
message : Access is denied. For more information, see the about_Remote_Troub
leshooting Help topic.
    + CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportException
    + FullyQualifiedErrorId : PSSessionOpenFailed

C:\PS> new-pssession -computername Server01

 Id Name       ComputerName    State    Configuration         Availability
 -- ----       ------------    -----    -------------         ------------
  1 Session1   Server01...     Opened   Microsoft.PowerShell     Available

C:\PS> enable-pssessionConfiguration -name * -force

C:\PS> new-pssession -computername localhost

 Id Name       ComputerName    State    Configuration         Availability
 -- ----       ------------    -----    -------------         ------------
  1 Session1   localhost       Opened   Microsoft.PowerShell     Available

Descrizione
-----------
In questo esempio viene illustrato l'effetto dell'utilizzo di Disable-PSRemoting.

Con il primo comando si utilizza Disable-PSRemoting per disabilitare tutte le configurazioni di sessione registrate nel computer locale.

Con il secondo comando si utilizza New-PSSession per creare una sessione remota al computer locale (nota anche come "loopback"). Poiché le configurazioni di sessione richieste dalla sessione sono disabilitate, il comando ha esito negativo.

Con il terzo comando si utilizza il cmdlet New-PSSession per creare una sessione dal computer locale al computer remoto Server01. Questo comando, che utilizza le configurazioni di sessione nel computer remoto, ha esito positivo.

Con il quarto comando si utilizza il cmdlet Enable-PSSessionConfiguration per abilitare nuovamente tutte le configurazioni di sessione nel computer locale. Il comando utilizza un valore di * (tutti) nel parametro Name.

Con il quinto comando si tenta nuovamente di stabilire una sessione di loopback mediante il cmdlet New-PSSession. Questa volta il comando ha esito positivo, perché le configurazioni di sessione necessarie sono abilitate.

Esempio 4

C:\PS>disable-psremoting -force

C:\PS> get-psSessionConfiguration | format-table -property name, permission -auto

Name                   Permission
----                   ----------
microsoft.powershell   Everyone AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell32 Everyone AccessDenied, BUILTIN\Administrators AccessAllowed

C:\PS> enable-psremoting -force
WinRM already is set up to receive requests on this machine.
WinRM already is set up for remote management on this machine.

C:\PS>> Get-PSSessionConfiguration | ft name, Permission -auto

Name                   Permission
----                   ----------
microsoft.powershell   BUILTIN\Administrators AccessAllowed
microsoft.powershell32 BUILTIN\Administrators AccessAllowed

Descrizione
-----------
In questo esempio viene illustrato l'effetto dell'utilizzo di Disable-PSRemoting e Enable-PSRemoting sulle configurazioni di sessione.

Con il primo comando si utilizza la funzione Disable-PSRemoting per disabilitare tutte le configurazioni di sessione registrate. Il parametro force elimina tutti i prompt dell'utente.

Con il secondo comando si utilizza il cmdlet Get-PSSessionConfiguration per visualizzare le configurazioni di sessione registrate nel computer. Il comando utilizza un operatore pipeline per inviare i risultati a un comando Format-Table che visualizza solo le proprietà Name e Permission delle configurazioni in una tabella.

Nella tabella risultante è indicato che nessuno dispone delle autorizzazioni per le configurazioni.

Con il terzo comando si utilizza il cmdlet Enable-PSRemoting per abilitare nuovamente tutte le configurazioni di sessione nel computer. È inoltre possibile utilizzare un comando "Enable-PsSessionConfiguration -name *". Il comando utilizza il parametro Force per eliminare tutti i prompt dell'utente e riavviare il servizio Gestione remota Windows senza chiedere conferma.

Con il quarto comando si utilizza Get-PSSessionConfiguration e Format-Table per visualizzare i nomi e le autorizzazioni delle configurazioni di sessione. I risultati mostrano che i membri del gruppo Administrators dispongono ora di accesso alle configurazioni di sessione.

Vedere anche

  • Enable-PSRemoting
  • Disable-PSSessionConfiguration
  • Get-PSSessionConfiguration
  • Register-PSSessionConfiguration
  • Set-PSSessionConfiguration
  • Unregister-PSSessionConfiguration
  • WSMan Provider


Disable-PSSessionConfiguration

Nega l'accesso alle configurazioni di sessione nel computer locale.

Sintassi

Disable-PSSessionConfiguration [[-Name] <string[]>] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Disable-PSSessionConfiguration impedisce a tutti gli utenti del computer di utilizzare la configurazione di sessione in una sessione. Si tratta di un cmdlet avanzato progettato per essere utilizzato da amministratori di sistema per gestire le configurazioni di sessione personalizzate degli utenti.

Il cmdlet Disable-PSSessionConfiguration aggiunge un'impostazione "deny all" al descrittore di sicurezza di una o più configurazioni di sessione registrate. Di conseguenza, è possibile annullare la registrazione, visualizzare e modificare le configurazioni, ma non utilizzarle in una sessione.

Senza parametri, Disable-PSSessionConfiguration disabilita la configurazione Microsoft.PowerShell, ovvero la configurazione predefinita utilizzata per le sessioni. A meno che l'utente non specifichi una configurazione diversa, gli utenti locali e remoti non sono autorizzati a creare sessioni che si connettano al computer.

Per disabilitare tutte le configurazioni di sessione nel computer, utilizzare Disable-PSRemoting.

Parametri

-Force

Elimina tutti i prompt dell'utente. Per impostazione predefinita, viene richiesto di confermare ogni operazione.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string[]>

Specifica i nomi delle configurazioni di sessione da disabilitare. Immettere uno o più nomi di configurazione. È consentito l'utilizzo di caratteri jolly. È inoltre possibile reindirizzare una stringa che contiene un nome di configurazione o un oggetto configurazione di sessione a Disable-PSSessionConfiguration.

Se si omette questo parametro, Disable-PSSessionConfiguration disabilita la configurazione di sessione Microsoft.PowerShell.

Obbligatorio? | false
Posizione? | 1
Valore predefinito | Microsoft.PowerShell
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | true

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Microsoft.PowerShell.Commands.PSSessionConfigurationCommands#PSSessionConfiguration, System.String È possibile reindirizzare un oggetto configurazione di sessione o una stringa che contiene il nome di una configurazione di sessione a Disable-PSSessionConfiguration.
Output | Nessuno Questo cmdlet non restituisce alcun oggetto.

Note

Per eseguire questo cmdlet in Windows Vista, Windows Server 2008 e nelle versioni successive di Windows, è necessario avviare Windows PowerShell con l'opzione "Esegui come amministratore".

Esempio 1

C:\PS>Disable-PSSessionConfiguration

Descrizione
-----------
Con questo comando viene disabilitata la configurazione di sessione Microsoft.PowerShell.

Esempio 2

C:\PS>disable-pssessionConfiguration -name *

Descrizione
-----------
Con questo comando vengono disabilitate tutte le configurazioni di sessione registrate nel computer.

Esempio 3

C:\PS>disable-pssessionConfiguration -name Microsoft* -force

Descrizione
-----------
Con questo comando vengono disabilitate tutte le configurazioni di sessione i cui nomi iniziano con "Microsoft". Il comando utilizza il parametro Force per eliminare tutti i prompt dell'utente dal comando.

Esempio 4

C:\PS>Get-PSSessionConfiguration -name MaintenanceShell, AdminShell | Disable-PSSessionConfiguration

Descrizione
-----------
Con questo comando vengono disabilitate le configurazioni di sessione MaintenanceShell e AdminShell.

Nel comando viene utilizzato un operatore pipeline (|) per inviare i risultati di un comando Get-PSSessionConfiguration a Disable-PSSessionConfiguration.

Esempio 5

C:\PS>Get-PSSessionConfiguration | format-table -property Name, Permission -auto

Name                   Permission
----                   ----------
MaintenanceShell       BUILTIN\Administrators AccessAllowed
microsoft.powershell   BUILTIN\Administrators AccessAllowed
microsoft.powershell32 BUILTIN\Administrators AccessAllowed

C:\PS> Disable-PSSessionConfiguration -name MaintenanceShell -force

C:\PS> Get-PSSessionConfiguration | format-table -property Name, Permission -auto

Name                   Permission
----                   ----------
MaintenanceShell       Everyone AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell   BUILTIN\Administrators AccessAllowed
microsoft.powershell32 BUILTIN\Administrators AccessAllowed

C:\PS> Set-PSSessionConfiguration -name MaintenanceShell -MaximumReceivedDataSizePerCommandMB 60

ParamName            ParamValue
---------            ----------
psmaximumreceived... 60

"Restart WinRM service"
WinRM service need to be restarted to make the changes effective. Do you want to run the command "restart-service winrm"?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y

C:\PS> new-pssession -computername localhost -configurationName MaintenanceShell

[localhost] Connecting to remote server failed with the following error message : Access is denied. For more information, see the about_Remote_Troubl
eshooting Help topic.
    + CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportException
    + FullyQualifiedErrorId : PSSessionOpenFailed

Descrizione
-----------
In questo esempio viene illustrato l'effetto della disabilitazione di una configurazione di sessione.

Con il primo comando vengono utilizzati i cmdlet Get-SessionConfiguration e Format-Table per visualizzare solo le proprietà Name e Permission degli oggetti configurazione di sessione. Questo formato tabella rende più semplice la visualizzazione dei valori degli oggetti. I risultati mostrano che ai membri del gruppo Administrators è consentito utilizzare le configurazioni di sessione.

Con il secondo comando si utilizza il cmdlet Disable-PSSessionConfiguration per disabilitare la configurazione di sessione MaintenanceShell. Il comando utilizza il parametro Force per eliminare tutti i prompt dell'utente.

Il terzo comando ripete il primo. I risultati mostrano che è ancora possibile ottenere l'oggetto che rappresenta la configurazione di sessione MaintenanceShell anche se l'accesso viene negato a tutti. La voce "AccessDenied" ha la precedenza su tutte le altre voci nel descrittore di sicurezza.

Con il quarto comando si utilizza il cmdlet Set-PSSessionConfiguration per aumentare l'impostazione MaximumDataSizePerCommandMB della configurazione di sessione MaintenanceShell a 60. I risultati mostrano che il comando ha avuto esito positivo anche se l'accesso alla configurazione viene negato a tutti.

Con il quinto comando si tenta di utilizzare la configurazione di sessione MaintenanceShell in una sessione. Vengono utilizzati il cmdlet New-PSSession per creare una nuova sessione e il parametro ConfigurationName per specificare la configurazione MaintenanceShell. I risultati mostrano che il comando New-PSSession ha esito negativo perché all'utente viene negato l'accesso alla configurazione.

Vedere anche

  • about_Session_Configurations
  • Enable-PSSessionConfiguration
  • Get-PSSessionConfiguration
  • Register-PSSessionConfiguration
  • Set-PSSessionConfiguration
  • Unregister-PSSessionConfiguration
  • WSMan Provider


Disable-WSManCredSSP

Disattiva l'autenticazione CredSSP (Credential Security Service Provider) in un computer client.

Sintassi

Disable-WSManCredSSP [-Role] <string> [<CommonParameters>]

Descrizione

Il cmdlet Disable-WSManCredSPP disattiva l'autenticazione CredSSP in un client o in un computer server. Quando viene utilizzata l'autenticazione CredSSP, le credenziali dell'utente vengono passate a un computer remoto per l'autenticazione. Questo tipo di autenticazione è progettato per i comandi che creano una sessione remota dall'interno di un'altra sessione remota. Viene ad esempio utilizzato se si desidera eseguire un processo in background in un computer remoto.

Il cmdlet viene utilizzato per disattivare CredSSP nel client specificando come valore Client nel parametro Role, quindi effettua le azioni seguenti:

- Disattiva CredSSP nel client. L'impostazione di WS-Management <localhost|nomecomputer>\Client\Auth\CredSSP è impostata su false.

- Rimuove eventuali impostazioni WSMAN/* dal criterio AllowFreshCredentials di Windows CredSSP nel client.

Il cmdlet viene utilizzato per disattivare CredSSP nel server specificando come valore Server nel parametro Role, quindi effettua le azioni seguenti:

- Disattiva CredSSP nel server. L'impostazione di WS-Management <localhost|nomecomputer>\Service\Auth\CredSSP è impostata su false.

Attenzione: l'autenticazione CredSSP delega le credenziali dell'utente dal computer locale a un computer remoto. Questa procedura aumenta il rischio per la sicurezza dell'operazione remota. Se il computer remoto è compromesso, quando le credenziali vengono passate a tale computer è possibile utilizzarle per controllare la sessione di rete.

Per disattivare l'autenticazione CredSSP, utilizzare il cmdlet Disable-WSManCredSSP.

Parametri

-Role <string>

Accetta uno dei due valori possibili: Client o Server. Questi valori specificano se CredSSP deve essere disattivato come client o come server.

Se il cmdlet viene utilizzato per disattivare CredSSP nel client specificando come valore Client nel parametro Role, il cmdlet effettua le azioni seguenti:

- Disattiva CredSSP nel client. L'impostazione di WS-Management <localhost|nomecomputer>\Client\Auth\CredSSP è impostata su false.

- Rimuove eventuali impostazioni WSMAN/* dal criterio AllowFreshCredentials di Windows CredSSP nel client.

Se il cmdlet viene utilizzato per disattivare CredSSP nel server specificando come valore Server nel parametro Role, il cmdlet effettua le azioni seguenti:

- Disattiva CredSSP nel server. L'impostazione di WS-Management <localhost|nomecomputer>\Service\Auth\CredSSP è impostata su false.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Questo cmdlet non accetta alcun input.
Output | Nessuno Questo cmdlet non genera alcun output.

Note

Per abilitare l'autenticazione CredSSP, utilizzare il cmdlet Enable-WSManCredSSP.

Esempio 1

C:\PS>Disable-WSManCredSSP -Role Client

Descrizione
-----------
Questo comando disattiva l'autenticazione CredSSP nel client per impedire la delega ai server.

Esempio 2

C:\PS>Disable-WSManCredSSP -Role Server

Descrizione
-----------
Questo comando disattiva l'autenticazione CredSSP nel server per impedire la delega dai client.

Vedere anche

  • Connect-WSMan
  • Disconnect-WSMan
  • Enable-WSManCredSSP
  • Get-WSManCredSSP
  • Get-WSManInstance
  • Invoke-WSManAction
  • New-WSManInstance
  • New-WSManSessionOption
  • Remove-WSManInstance
  • Set-WSManInstance
  • Set-WSManQuickConfig
  • Test-WSMan


Disconnect-WSMan

Interrompe la connessione del client al servizio Gestione remota Windows in un computer remoto.

Sintassi

Disconnect-WSMan [-ComputerName <string>] [<CommonParameters>]

Descrizione

Il cmdlet Disconnect-WSMan consente di effettuare la disconnessione del client dal servizio Gestione remota Windows in un computer remoto. Se la sessione WS-Management è stata archiviata in una variabile, l'oggetto sessione rimane nella variabile, ma lo stato della sessione WS-Management è "Closed". È possibile utilizzare questo cmdlet nel contesto del provider di WS-Management per effettuare la disconnessione del client dal servizio Gestione remota Windows in un computer remoto. È tuttavia possibile utilizzare questo cmdlet per effettuare la disconnessione dal servizio Gestione remota Windows in computer remoti prima di passare al provider di WS-Management.

Per ulteriori informazioni su come eseguire la connessione al servizio Gestione remota Windows in un computer remoto, vedere Connect-WSMan.

Parametri

-ComputerName <string>

Specifica il computer dal quale si desidera effettuare la disconnessione. Il valore può essere un nome di dominio completo, un nome NetBIOS o un indirizzo IP. Utilizzare il nome del computer locale, localhost o un punto (.) per specificare il computer locale. Il valore predefinito è il computer locale. Quando il computer remoto si trova in un dominio diverso da quello dell'utente, è necessario utilizzare un nome di dominio completo. È possibile reindirizzare un valore per questo parametro al cmdlet.

Nota: non è possibile effettuare la disconnessione dall'host locale (la connessione predefinita al computer locale). Tuttavia, se viene eseguita una connessione separata al computer locale, utilizzando ad esempio il nome del computer, è possibile rimuovere la connessione mediante il cmdlet Disconnect-WSMan.

Obbligatorio? | false
Posizione? | named
Valore predefinito | localhost
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Questo cmdlet non accetta alcun input.
Output | Nessuno Questo cmdlet non genera alcun output.

Esempio 1

C:\PS>Disconnect-WSMan -computer server01

C:\PS> cd WSMan:
PS WSMan:\>
PS WSMan:\> dir

   WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan

ComputerName                                  Type
------------                                  ----
localhost                                     Container

Descrizione
-----------
Questo comando elimina la connessione al computer remoto server01.

Questo cmdlet viene generalmente utilizzato nel contesto del provider di WS-Management per effettuare la disconnessione da un computer remoto, in questo caso server01. È tuttavia possibile utilizzare il cmdlet Disconnect-WSMan anche per rimuovere le connessioni ai computer remoti prima di passare al provider di WS-Management. Le connessioni non verranno visualizzate nell'elenco ComputerName.

Vedere anche

  • Connect-WSMan
  • Disable-WSManCredSSP
  • Enable-WSManCredSSP
  • Get-WSManCredSSP
  • Get-WSManInstance
  • Invoke-WSManAction
  • New-WSManInstance
  • New-WSManSessionOption
  • Remove-WSManInstance
  • Set-WSManInstance
  • Set-WSManQuickConfig
  • Test-WSMan


Enable-ComputerRestore

Abilita la funzionalità di ripristino di sistema nell'unità del file system specificata.

Sintassi

Enable-ComputerRestore [-Cert:] <string[]> [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Con il cmdlet Enable-ComputerRestore viene attivata la funzionalità di ripristino di sistema in una o più unità del file system. Di conseguenza, è possibile utilizzare strumenti, quali il cmdlet Restore-Computer, per ripristinare il computer a uno stato precedente.

Il ripristino di sistema è abilitato per impostazione predefinita in tutte le unità idonee, ma è possibile disabilitarlo, ad esempio tramite il cmdlet Disable-ComputerRestore. Per abilitare (o abilitare nuovamente) il ripristino di sistema in qualsiasi unità, è necessario abilitarlo nell'unità di sistema precedentemente o contemporaneamente. Per rilevare lo stato del ripristino di sistema di ogni unità, utilizzare Rstrui.exe.

Parametri

-Cert: <string[]>

Specifica le unità del file system. Immettere una o più lettere dell'unità del file system, ognuna delle quali seguita dai due punti e da una barra rovesciata e racchiusa tra virgolette, ovvero "C:\" o "D:\". Questo parametro è obbligatorio.

Non è possibile utilizzare questo cmdlet per abilitare il ripristino di sistema in un'unità di rete remota, anche se l'unità è mappata al computer locale e non è possibile abilitare il ripristino di sistema nelle unità non idonee per il ripristino di sistema, ad esempio nelle unità esterne.

Per abilitare il ripristino di sistema in qualsiasi unità, è necessario abilitarlo nell'unità di sistema precedentemente o contemporaneamente.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a questo cmdlet.
Output | Nessuno Questo cmdlet non genera alcun output.

Note

Disable-ComputerRestore e Enable-ComputerRestore funzionano solo in sistemi operativi client, quali Windows Vista e Windows XP.

Per eseguire un comando Enable-ComputerRestore in Windows Vista e nelle versioni successive di Windows, aprire Windows PowerShell con l'opzione "Esegui come amministratore".

Per trovare le unità del file system idonee per il ripristino di sistema, in Sistema nel Pannello di controllo, accedere alla scheda Protezione sistema. Per aprire questa scheda in Windows PowerShell, digitare "SystemPropertiesProtection."

Questo cmdlet utilizza la classe SystemRestore di Strumentazione gestione Windows (WMI).

Esempio 1

C:\PS>enable-computerrestore -drive "C:\"

Descrizione
-----------
Con questo comando viene abilitato il ripristino di sistema nell'unità C: del computer locale.

Esempio 2

C:\PS>enable-computerrestore -drive "C:\", "D:\"

Descrizione
-----------
Con questo comando viene abilitato il ripristino di sistema nelle unità C: e D: del computer locale.

Vedere anche

  • Disable-ComputerRestore
  • Get-ComputerRestorePoint
  • Restore-Computer
  • Restart-Computer


Enable-PSBreakpoint

Abilita i punti di interruzione nella console corrente.

Sintassi

Enable-PSBreakpoint [-Id] <Int32[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Enable-PSBreakpoint [-Breakpoint] <Breakpoint[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Enable-PSBreakpoint consente di abilitare nuovamente i punti di interruzione disabilitati. È possibile utilizzarlo per abilitare tutti i punti di interruzione o specificare i punti di interruzione inviando oggetti o ID punto di interruzione.

Un punto di interruzione è un punto di uno script in cui viene interrotta temporaneamente l'esecuzione per consentire l'analisi delle istruzioni nello script. I punti di interruzione appena creati vengono automaticamente abilitati, ma è possibile disabilitarli tramite il cmdlet Disable-PSBreakpoint.

Tecnicamente, questo cmdlet consente di impostare su True il valore della proprietà Enabled di un oggetto punto di interruzione.

Enable-PSBreakpoint è uno dei diversi cmdlet progettati per il debug degli script di Windows PowerShell. Per ulteriori informazioni sul debugger di Windows PowerShell, vedere about_Debuggers.

Parametri

-Breakpoint <Breakpoint[]>

Specifica i punti di interruzione da abilitare. Immettere una variabile che contiene oggetti punto di interruzione o un comando che consente di ottenere oggetti punto di interruzione, ad esempio Get-PSBreakpoint. È inoltre possibile reindirizzare gli oggetti punto di interruzione a Enable-PSBreakpoint.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | None.
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Id <Int32[]>

Abilita i punti di interruzione con gli ID specificati. Il valore predefinito è tutti i punti di interruzione. Immettere gli ID o una variabile che li contenga. Non è possibile reindirizzare gli ID a Enable-PSBreakpoint. Per trovare l'ID di un punto di interruzione, utilizzare il cmdlet Get-PSBreakpoint.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta il punto di interruzione abilitato. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito | No output
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.Breakpoint È possibile reindirizzare un oggetto punto di interruzione a Enable-PSBreakpoint.
Output | Nessuno o System.Management.Automation.Breakpoint Quando si utilizza il parametro PassThru, Enable-PSBreakpoint restituisce un oggetto punto di interruzione che rappresenta il punto di interruzione abilitato. Negli altri casi, il cmdlet non genera alcun output.

Note

Il cmdlet Enable-PSBreakpoint non genera un errore se si tenta di abilitare un punto di interruzione già abilitato. Pertanto, è possibile abilitare tutti i punti di interruzione senza errore, anche quando solo alcuni sono disabilitati.

I punti di interruzione vengono abilitati quando vengono creati tramite il cmdlet Set-PSBreakpoint. Non è necessario abilitare punti di interruzione appena creati.

Esempio 1

C:\PS>get-psbreakpoint | enable-psbreakpoint

Descrizione
-----------
Con questo comando vengono abilitati tutti i punti di interruzione nella console corrente. È possibile abbreviare il comando in "gbp | ebp".

Esempio 2

C:\PS>enable-psbreakpoint -id 0, 1, 5

Descrizione
-----------
Con questo comando vengono abilitati i punti di interruzione con ID 0, 1 e 5.

Esempio 3

C:\PS>$b = set-psbreakpoint -script sample.ps1 -variable Name

C:\PS> $b | disable-psbreakpoint -passthru

AccessMode : Write
Variable   : Name
Action     :
Enabled    : False
HitCount   : 0
Id         : 0
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

C:\PS> $b | enable-psbreakpoint -passthru

AccessMode : Write
Variable   : Name
Action     :
Enabled    : True
HitCount   : 0
Id         : 0
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Descrizione
-----------
Con questi comandi viene abilitato nuovamente un punto di interruzione disabilitato.

Nel primo comando viene utilizzato il cmdlet Set-PSBreakpoint per creare un punto di interruzione nella variabile "Name" dello script Sample.ps1. L'oggetto punto di interruzione viene quindi salvato nella variabile $b.

Nel secondo comando viene utilizzato il cmdlet Disable-PSBreakpoint per disabilitare il nuovo punto di interruzione. Vengono utilizzati un operatore pipeline (|) per inviare l'oggetto punto di interruzione in $b al cmdlet Disable-PSBreakpoint e il parametro PassThru di Disable-PSBreakpoint per visualizzare l'oggetto punto di interruzione disabilitato. In questo modo è possibile verificare che il valore della proprietà Enabled dell'oggetto punto di interruzione sia False.

Nel terzo comando viene utilizzato il cmdlet Enable-PSBreakpoint per abilitare nuovamente il punto di interruzione. Vengono utilizzati un operatore pipeline (|) per inviare l'oggetto punto di interruzione in $b al cmdlet Enable-PSBreakpoint e il parametro PassThru di Enable-PSBreakpoint per visualizzare l'oggetto punto di interruzione. In questo modo è possibile verificare che il valore della proprietà Enabled dell'oggetto punto di interruzione sia True.

I risultati vengono illustrati nell'esempio di output seguente.

Esempio 4

C:\PS>$b = get-psbreakpoint -id 3, 5

C:\PS> enable-psbreakpoint -breakpoint $b

Descrizione
-----------
Con questi comandi viene abilitato un set di punti di interruzione specificando gli oggetti punto di interruzione.

Nel primo comando viene utilizzato il cmdlet Get-PSBreakpoint per ottenere i punti di interruzione, i quali vengono salvati nella variabile $b.

Nel secondo comando viene utilizzato il cmdlet Enable-PSBreakpoint con il parametro Breakpoint per abilitare i punti di interruzione.
Questo comando equivale a "enable-psbreakpoint - id 3, 5".

Vedere anche

  • about_Debuggers
  • Set-PSBreakpoint
  • Disable-PSBreakpoint
  • Get-PSBreakpoint
  • Remove-PSBreakpoint
  • Get-PSCallStack


Enable-PSRemoting

Configura il computer per la ricezione di comandi remoti.

Sintassi

Enable-PSRemoting [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Enable-PSRemoting configura il computer affinché riceva i comandi remoti di Windows PowerShell inviati mediante la tecnologia WS-Management.

È necessario eseguire questo comando una sola volta in ciascun computer che riceverà i comandi. Non è necessario eseguirlo in computer che inviano solo comandi. Poiché la configurazione attiva i listener, è opportuno eseguirlo solo se necessario.

Il cmdlet Enable-PSRemoting consente di eseguire le operazioni seguenti:

-- Eseguire il cmdlet Set-WSManQuickConfig per l'esecuzione delle attività seguenti:

----- Avviare il servizio Gestione remota Windows.

----- Impostare il tipo di avvio sul servizio Gestione remota Windows su Automatico.

----- Creare un listener per accettare le richieste su qualsiasi indirizzo IP.

----- Abilitare un'eccezione del firewall per le comunicazioni di WS-Management.

-- Consentire a tutte le configurazioni di sessione di Windows PowerShell registrate di ricevere istruzioni da un computer remoto.

----- Registrare la configurazione di sessione "Microsoft.PowerShell", se non è già registrata.

----- Registrare la configurazione di sessione "Microsoft.PowerShell32" in computer a 64 bit, se non è già registrata.

----- Rimuovere l'impostazione "Deny Everyone" dal descrittore di sicurezza per tutte le configurazioni di sessione registrate.

----- Riavviare il servizio Gestione remota Windows per rendere effettive le modifiche precedenti.

Per eseguire questo cmdlet in Windows Vista, Windows Server 2008 e nelle versioni successive di Windows, è necessario avviare Windows PowerShell con l'opzione "Esegui come amministratore".

Parametri

-Force

Elimina tutti i prompt dell'utente. Per impostazione predefinita, viene richiesto di confermare ogni operazione.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.String Enable-PSRemoting restituisce stringhe che descrivono i risultati.

Esempio 1

C:\PS>enable-psremoting

Descrizione
-----------
Con questo comando viene configurato il computer per la ricezione di comandi remoti.

Esempio 2

C:\PS>enable-psremoting -force

Descrizione
-----------
Con questo comando viene configurato il computer per la ricezione di comandi remoti. Viene utilizzato il parametro Force per eliminare i prompt dell'utente.

Vedere anche

  • about_Remote
  • about_Session_Configurations
  • Disable-PSRemoting
  • Get-PSSessionConfiguration
  • Enable-PSSessionConfiguration
  • Disable-PSSessionConfiguration
  • Register-PSSessionConfiguration
  • Set-PSSessionConfiguration
  • WSMan Provider


Enable-PSSessionConfiguration

Consente di abilitare le configurazioni di sessione nel computer locale.

Sintassi

Enable-PSSessionConfiguration [[-Name] <string[]>] [-Force] [-SecurityDescriptorSDDL <string>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Enable-PSSessionConfiguration consente di abilitare nuovamente le configurazioni di sessione registrate disabilitate mediante il cmdlet Disable-PSSessionConfiguration. Si tratta di un cmdlet avanzato progettato per essere utilizzato da amministratori di sistema per gestire le configurazioni di sessione personalizzate degli utenti.

Senza parametri, Enable-PSSessionConfiguration consente di disabilitare nuovamente la configurazione Microsoft.PowerShell, ovvero la configurazione predefinita utilizzata per le sessioni.

Questo cmdlet consente di eseguire le operazioni seguenti per ciascuna configurazione abilitata:

-- Rimuovere l'impostazione "deny all" dal descrittore di sicurezza della configurazione o sostituire il descrittore di sicurezza con uno specificato.

-- Attivare il listener che accetta le richieste su qualsiasi indirizzo IP.

-- Riavviare il servizio Gestione remota Windows.

Il cmdlet Enable-PSSessionConfiguration chiama il cmdlet Set-WSManQuickConfig. Tuttavia, non deve essere utilizzato per abilitare la comunicazione remota nel computer. Utilizzare invece il cmdlet più completo Enable-PSRemoting.

Parametri

-Force

Elimina tutti i prompt dell'utente e riavvia il servizio Gestione remota Windows senza richieste. Con il riavvio del servizio la modifica della configurazione diventa effettiva.

Per impedire un riavvio ed eliminare il prompt di riavvio, utilizzare il parametro NoServiceRestart.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string[]>

Specifica i nomi delle configurazioni di sessione da abilitare. Immettere uno o più nomi di configurazione. È consentito l'utilizzo di caratteri jolly.

È inoltre possibile reindirizzare una stringa che contiene un nome di configurazione o un oggetto configurazione di sessione a Enable-PSSessionConfiguration.

Se si omette questo parametro, Enable-PSSessionConfiguration abilita la configurazione di sessione Microsoft.PowerShell.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | true

-SecurityDescriptorSDDL <string>

Sostituisce il descrittore di sicurezza nella configurazione di sessione con il descrittore di sicurezza specificato.

Se si omette questo parametro, Enable-PSSessionConfiguration elimina solo l'elemento "deny all" dal descrittore di sicurezza.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Microsoft.PowerShell.Commands.PSSessionConfigurationCommands#PSSessionConfiguration, System.String È possibile reindirizzare un oggetto configurazione di sessione o una stringa che contiene il nome di una configurazione di sessione a Enable-PSSessionConfiguration.
Output | Nessuno Questo cmdlet non restituisce alcun oggetto.

Note

Per eseguire questo cmdlet in Windows Vista, Windows Server 2008 e nelle versioni successive di Windows, è necessario avviare Windows PowerShell con l'opzione "Esegui come amministratore".

Esempio 1

C:\PS>Enable-PSSessionConfiguration

Descrizione
-----------
Con questo comando viene abilitata nuovamente la configurazione di sessione predefinita Microsoft.PowerShell nel computer.

Esempio 2

C:\PS>Enable-PSSessionConfiguration -name MaintenanceShell, AdminShell

Descrizione
-----------
Con questo comando vengono abilitate nuovamente le configurazioni di sessione MaintenanceShell e AdminShell nel computer.

Esempio 3

C:\PS>Enable-PSSessionConfiguration -name *

C:\PS> Get-PSSessionConfiguration | Enable-PSSessionConfiguration

Descrizione
-----------
Con questi comandi vengono abilitate nuovamente tutte le configurazioni di sessione nel computer. I comandi sono equivalenti, è quindi possibile utilizzarne uno.

Enable-PSSessionConfiguration non genera un errore se si abilita una configurazione di sessione già abilitata.

Esempio 4

C:\PS>Enable-PSSessionConfiguration -name MaintenanceShell -securityDescriptorSDDL "O:NSG:BAD:P(A;;GXGWGR;;;BA)(A;;GAGR;;;S-1-5-21-123456789-188441444-3100496)S:P"

Descrizione
-----------
Con questo comando viene abilitata nuovamente la configurazione di sessione MaintenanceShell e specificato un nuovo descrittore di sicurezza per la configurazione.

Vedere anche

  • about_Session_Configurations
  • Disable-PSSessionConfiguration
  • Get-PSSessionConfiguration
  • Register-PSSessionConfiguration
  • Set-PSSessionConfiguration
  • Unregister-PSSessionConfiguration
  • WSMan Provider


Enable-WSManCredSSP

Abilita l'autenticazione CredSSP (Credential Security Service Provider) in un computer client.

Sintassi

Enable-WSManCredSSP [-Role] <string> [[-DelegateComputer] <string>] [<CommonParameters>]

Descrizione

Il cmdlet Enable-WSManCredSPP consente di abilitare l'autenticazione CredSSP in un client o in un computer server. Quando viene utilizzata l'autenticazione CredSSP, le credenziali dell'utente vengono passate a un computer remoto per l'autenticazione. Questo tipo di autenticazione è progettato per i comandi che creano una sessione remota dall'interno di un'altra sessione remota. Viene ad esempio utilizzato se si desidera eseguire un processo in background in un computer remoto.

Questo cmdlet viene utilizzato per abilitare CredSSP nel client specificando come valore Client nel parametro Role, quindi effettua le azioni seguenti:

- Abilita CredSSP nel client. L'impostazione di WS-Management <localhost|nomecomputer>\Client\Auth\CredSSP è impostata su true.

- Imposta il criterio AllowFreshCredentials di Windows CredSSP su WSMan/Delegate nel client.

Nota: queste impostazioni consentono al client di delegare le credenziali esplicite a un server quando viene realizzata l'autenticazione server.

Questo cmdlet viene utilizzato per abilitare CredSSP nel server specificando come valore Server nel parametro Role, quindi effettua le azioni seguenti:

- Abilita CredSSP nel server. L'impostazione di WS-Management <localhost|nomecomputer>\Service\Auth\CredSSP è impostata su true.

Nota: tramite questa impostazione dei criteri è possibile utilizzare il server come delegato dei client.

Attenzione: l'autenticazione CredSSP delega le credenziali dell'utente dal computer locale a un computer remoto. Questa procedura aumenta il rischio per la sicurezza dell'operazione remota. Se il computer remoto è compromesso, quando le credenziali vengono passate a tale computer è possibile utilizzarle per controllare la sessione di rete.

Per disattivare l'autenticazione CredSSP, utilizzare il cmdlet Disable-WSManCredSSP.

Parametri

-DelegateComputer <string>

Consente di delegare le credenziali del client al server o ai server specificati dal parametro. Il valore di questo parametro deve essere un nome di dominio completo.

Se il valore specificato nel parametro Role è Client, il parametro DelegateComputer è obbligatorio.

Se il valore specificato nel parametro Role è Server, il parametro DelegateComputer non è consentito.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Role <string>

Accetta uno dei due valori possibili: Client o Server. Questi valori specificano se CredSSP deve essere abilitato come client o come server.

Se il valore specificato nel parametro Role è Client, il cmdlet effettua le azioni seguenti:

- Abilita CredSSP nel client. L'impostazione di WS-Management <localhost|nomecomputer>\Client\Auth\CredSSP è impostata su true.

- Imposta il criterio AllowFreshCredentials di Windows CredSSP su WSMan/Delegate nel client.

Nota: queste impostazioni consentono al client di delegare le credenziali esplicite a un server quando viene realizzata l'autenticazione server.

Se il valore specificato nel parametro Role è Server, il cmdlet effettua le azioni seguenti:

- Abilita CredSSP nel server. L'impostazione di WS-Management <localhost|nomecomputer>\Service\Auth\CredSSP è impostata su true.

Nota: tramite questa impostazione dei criteri è possibile utilizzare il server come delegato dei client.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Questo cmdlet non accetta alcun input.
Output | System.Xml.XmlElement Se l'autenticazione CredSSP è stata abilitata, questo cmdlet genera un oggetto XMLElement.

Esempio 1

C:\PS>enable-wsmancredssp -role client -delegatecomputer server02.accounting.fabrikam.com

cfg         : http://schemas.microsoft.com/wbem/wsman/1/config/client/auth
lang        : en-US
Basic       : true
Digest      : true
Kerberos    : true
Negotiate   : true
Certificate : true
CredSSP     : true

Descrizione
-----------
Questo comando consente di delegare le credenziali del client al computer server02.

Esempio 2

C:\PS>enable-wsmancredssp -role client -delegatecomputer *.accounting.fabrikam.com

cfg         : http://schemas.microsoft.com/wbem/wsman/1/config/client/auth
lang        : en-US
Basic       : true
Digest      : true
Kerberos    : true
Negotiate   : true
Certificate : true
CredSSP     : true

Descrizione
-----------
Questo comando consente di delegare le credenziali dal client a tutti i computer nel dominio accounting.fabrikam.com.

Esempio 3

C:\PS>enable-wsmancredssp -role client -delegatecomputer server02.accounting.fabrikam.com, server03.accounting.fabrikam.com, server04.accounting.fabrikam.com

cfg         : http://schemas.microsoft.com/wbem/wsman/1/config/client/auth
lang        : en-US
Basic       : true
Digest      : true
Kerberos    : true
Negotiate   : true
Certificate : true
CredSSP     : true

Descrizione
-----------
Questo comando consente di delegare le credenziali del client a più computer.

Esempio 4

C:\PS>enable-wsmancredssp -role server

Descrizione
-----------
Questo comando consente di utilizzare un computer come delegato di un altro. Il cmdlet Enable-WSManCredSSP degli esempi precedenti abilita solo l'autenticazione CredSSP nel client e specifica i computer remoti che possono essere utilizzati per suo conto. Affinché il computer remoto venga utilizzato come delegato del client, è necessario che l'elemento CredSSP nel nodo Service di WS-Management sia impostato su true.

Esempio 5

C:\PS>connect-wsman server02
set-item wsman:\server02\service\auth\credSSP -value $true

Descrizione
-----------
Questo comando consente di utilizzare un computer come delegato di un altro computer. I comandi Enable-WSManCredSSP degli esempi precedenti abilitano l'autenticazione CredSSP solo nel computer client e specificano i computer remoti che possono essere utilizzati per suo conto. Affinché il computer remoto venga utilizzato come delegato del computer client, è necessario che l'elemento CredSSP nella directory Service del provider di WS-Management sia impostato su true.

In questo esempio, il primo comando crea una connessione al computer remoto server02.

Il secondo comando imposta il valore credSSP nel computer remoto server02 in modo che tale computer possa essere utilizzato come delegato.

Vedere anche

  • Connect-WSMan
  • Disable-WSManCredSSP
  • Disconnect-WSMan
  • Get-WSManCredSSP
  • Get-WSManInstance
  • Invoke-WSManAction
  • New-WSManInstance
  • New-WSManSessionOption
  • Remove-WSManInstance
  • Set-WSManInstance
  • Set-WSManQuickConfig
  • Test-WSMan


Enter-PSSession

Avvia una sessione interattiva con un computer remoto.

Sintassi

Enter-PSSession [-ComputerName] <string> [-ApplicationName <string>] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-Port <int>] [-SessionOption <PSSessionOption>] [-UseSSL] [<CommonParameters>]

Enter-PSSession [[-Id] <int>] [<CommonParameters>]

Enter-PSSession [-InstanceId <Guid>] [<CommonParameters>]

Enter-PSSession [-Name <string>] [<CommonParameters>]

Enter-PSSession [[-Session] <PSSession>] [<CommonParameters>]

Enter-PSSession [[-ConnectionURI] <Uri>] [-AllowRedirection] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-SessionOption <PSSessionOption>] [<CommonParameters>]

Descrizione

Il cmdlet Enter-PSSession avvia una sessione interattiva con un singolo computer remoto. Durante la sessione, i comandi digitati vengono eseguiti nel computer remoto, come se venissero digitati direttamente nel computer remoto. È possibile disporre di una sola sessione interattiva alla volta.

In genere, viene utilizzato il parametro ComputerName per specificare il nome del computer remoto. Tuttavia, è possibile utilizzare anche una sessione creata tramite New-PSSession per la sessione interattiva.

Per terminare la sessione interattiva e disconnettersi dal computer remoto, utilizzare il cmdlet Exit-PSSession o digitare "exit".

Parametri

-AllowRedirection

Consente il reindirizzamento di questa connessione a un URI alternativo.

Quando si utilizza il parametro ConnectionURI, la destinazione remota può restituire un'istruzione di reindirizzamento a un altro URI. Per impostazione predefinita in Windows PowerShell le connessioni non vengono reindirizzate, ma è possibile utilizzare questo parametro per consentire il reindirizzamento della connessione.

Consente il reindirizzamento di questa connessione a un URI alternativo.

Quando si utilizza il parametro ConnectionURI, la destinazione remota può restituire un'istruzione di reindirizzamento a un altro URI. Per impostazione predefinita in Windows PowerShell le connessioni non vengono reindirizzate, ma è possibile utilizzare il parametro AllowRedirection per consentire il reindirizzamento della connessione.

È inoltre possibile limitare il numero di volte in cui la connessione viene reindirizzata impostando la proprietà MaximumConnectionRedirectionCount della variabile di preferenza $PSSessionOption o la proprietà MaximumConnectionRedirectionCount del valore del parametro SessionOption. Il valore predefinito è 5. Per ulteriori informazioni, vedere la descrizione del parametro SessionOption e New-PSSessionOption.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ApplicationName <string>

Specifica il segmento del nome dell'applicazione dell'URI di connessione. Utilizzare questo parametro per specificare il nome dell'applicazione quando non si utilizza il parametro ConnectionURI nel comando.

Il valore predefinito è il valore della variabile di preferenza $PSSessionApplicationName nel computer locale. Se questa variabile di preferenza non è definita, il valore predefinito è WSMAN. Questo valore è appropriato per la maggior parte degli utilizzi. Per ulteriori informazioni, vedere about_Preference_Variables.

Il servizio Gestione remota Windows utilizza il nome dell'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.

Obbligatorio? | false
Posizione? | named
Valore predefinito | WSMAN
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Authentication <AuthenticationMechanism>

Specifica il meccanismo utilizzato per autenticare le credenziali dell'utente. I valori validi sono "Default", "Basic", "Credssp", "Digest", "Kerberos", "Negotiate" e "NegotiateWithImplicitCredential". Il valore predefinito è "Default".

L'autenticazione CredSSP è disponibile unicamente in Windows Vista, Windows Server 2008 e versioni successive di Windows.

Per informazioni sui valori di questo parametro, vedere la descrizione dell'enumerazione System.Management.Automation.Runspaces.AuthenticationMechanism in MSDN Library all'indirizzo http://go.microsoft.com/fwlink/?LinkId=144382 (le informazioni potrebbero essere in lingua inglese).

Attenzione: l'autenticazione CredSSP (Credential Security Service Provider), che prevede il passaggio delle credenziali dell'utente a un computer remoto per l'autenticazione, è progettata per i comandi che richiedono l'autenticazione su più di una risorsa, ad esempio l'accesso a una condivisione di rete remota. Questo meccanismo aumenta il rischio per la sicurezza dell'operazione remota. Se il computer remoto è compromesso, è possibile utilizzare le credenziali passate a tale computer per controllare la sessione di rete.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-CertificateThumbprint <string>

Specifica il certificato di chiave pubblica digitale (X509) di un account utente con autorizzazione per l'esecuzione di questa azione. Immettere l'identificazione digitale del certificato.

I certificati vengono utilizzati nell'autenticazione basata su certificati client. Possono essere mappati solo agli account utente locali; non funzionano con gli account di dominio.

Per ottenere un'identificazione digitale del certificato, utilizzare il comando Get-Item o Get-ChildItem nell'unità Cert: di Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string>

Avvia una sessione interattiva con il computer remoto specificato. Immettere un solo nome del computer. Il valore predefinito è il computer locale.

Digitare il nome NetBIOS, un indirizzo IP o un nome di dominio completo di uno o più computer remoti. È anche possibile reindirizzare il nome di un computer a Enter-PSSession.

Per utilizzare un indirizzo IP nel valore del parametro ComputerName, il comando deve includere il parametro Credential. È inoltre necessario configurare il computer per il trasporto HTTPS o includere l'indirizzo IP del computer remoto nell'elenco di host attendibili (TrustedHosts) di Gestione remota Windows nel computer locale. Per istruzioni relative all'aggiunta di un nome di computer all'elenco di host attendibili (TrustedHosts), vedere "Come aggiungere un computer all'elenco di host attendibili" in about_Remote_Troubleshooting.

Nota: in Windows Vista e nelle versioni successive di Windows per includere il computer locale nel valore del parametro ComputerName, è necessario avviare Windows PowerShell con l'opzione "Esegui come amministratore".

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-ConfigurationName <string>

Specifica la configurazione di sessione utilizzata per la sessione interattiva.

Immettere un nome di configurazione o l'URI di risorsa completo per una configurazione di sessione. Se si specifica unicamente il nome di configurazione, viene anteposto l'URI di schema seguente: http://schemas.microsoft.com/powershell.

La configurazione di sessione per una sessione si trova nel computer remoto. Se la configurazione di sessione specificata non esiste nel computer remoto, il comando ha esito negativo.

Il valore predefinito è il valore della variabile di preferenza $PSSessionConfigurationName nel computer locale. Se questa variabile di preferenza non è impostata, l'impostazione predefinita è Microsoft.PowerShell. Per ulteriori informazioni, vedere about_Preference_Variables.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-ConnectionURI <Uri>

Specifica un URI (Uniform Resource Identifier) che definisce l'endpoint della connessione per la sessione interattiva. L'URI deve essere completo.

Il formato di questa stringa è il seguente:

<Trasporto>://<NomeComputer>:<Porta>/<NomeApplicazione>

Il valore predefinito è il seguente:

http://localhost:80/WSMAN

I valori validi per il segmento Trasport dell'URI sono HTTP e HTTPS. Se non si specifica ConnectionURI, è possibile utilizzare i parametri UseSSL, ComputerName, Port e ApplicationName per specificare i valori URI.

Se il computer di destinazione reindirizza la connessione a un URI diverso, in Windows PowerShell viene impedito il reindirizzamento a meno che non si utilizzi il parametro AllowRedirection nel comando.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01", "Dominio01\Utente01" o "Utente@Dominio.com", oppure immettere un oggetto PSCredential, ad esempio uno restituito dal cmdlet Get-Credential.

Quando si digita un nome utente, viene richiesta una password.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Current user
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Id <int>

Specifica l'ID di una sessione esistente. Tramite Enter-PSSession viene utilizzata la sessione specificata per la sessione interattiva.

Per trovare l'ID di una sessione, utilizzare il cmdlet Get-PSSession.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-InstanceId <Guid>

Specifica l'ID istanza di una sessione esistente. Tramite Enter-PSSession viene utilizzata la sessione specificata per la sessione interattiva.

L'ID istanza è un GUID. Per trovare l'ID istanza di una sessione, utilizzare il cmdlet Get-PSSession. È anche possibile utilizzare i parametri Session, Name o ID per specificare una sessione esistente. In alternativa è possibile utilizzare il parametro ComputerName per avviare una sessione temporanea.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Name <string>

Specifica il nome descrittivo di una sessione esistente. Tramite Enter-PSSession viene utilizzata la sessione specificata per la sessione interattiva.

Se il nome specificato corrisponde a più di una sessione, il comando avrà esito negativo. È anche possibile utilizzare i parametri Session, InstanceID o ID per specificare una sessione esistente. In alternativa è possibile utilizzare il parametro ComputerName per avviare una sessione temporanea.

Per stabilire un nome descrittivo per una sessione, utilizzare il parametro Name del cmdlet New-PSSession.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Port <int>

Specifica la porta di rete nel computer remoto utilizzato per questo comando. Il valore predefinito è la porta 80 (porta HTTP).

Prima di utilizzare una porta alternativa, è necessario configurare il listener WinRM nel computer remoto affinché resti in ascolto su tale porta. Utilizzare i comandi seguenti per configurare il listener:

1. winrm delete winrm/config/listener?Address=*+Transport=HTTP

2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="<numero-porta>"}

Non utilizzare il parametro Port a meno che non sia necessario. L'impostazione di porta nel comando si applica a tutti i computer o a tutte le sessioni in cui il comando è in esecuzione. Un'impostazione di porta alternativa potrebbe impedire l'esecuzione del comando in tutti i computer.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Session <PSSession>

Specifica una sessione di Windows PowerShell (PSSession) da utilizzare per la sessione interattiva. Questo parametro accetta un oggetto sessione. È anche possibile utilizzare i parametri Name, InstanceID o ID per specificare una sessione PSSession.

Immettere una variabile che contiene un oggetto sessione o un comando che crea o ottiene un oggetto sessione, ad esempio un comando New-PSSession o Get-PSSession. È inoltre possibile reindirizzare un oggetto sessione a Enter-PSSession. È possibile inviare solo una sessione PSSession con questo parametro. Se si immette una variabile che contiene più di una sessione PSSession, il comando avrà esito negativo.

Quando si utilizza Exit-PSSession o la parola chiave EXIT, la sessione interattiva termina, ma la sessione PSSession creata rimane aperta e disponibile all'uso.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | true

-SessionOption <PSSessionOption>

Imposta opzioni avanzate per la sessione. Immettere un oggetto SessionOption creato utilizzando il cmdlet New-PSSessionOption.

I valori predefiniti delle opzioni sono determinati dal valore della variabile di preferenza $PSSessionOption, se impostato. In caso contrario nella sessione vengono utilizzate le impostazioni predefinite del sistema.

Per una descrizione delle opzioni di sessione, inclusi i valori predefiniti, vedere New-PSSessionOption. Per informazioni sulla variabile di preferenza $PSSessionOption, vedere about_Preference_Variables.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseSSL

Utilizza il protocollo SSL (Secure Sockets Layer) per stabilire una connessione al computer remoto. Per impostazione predefinita, SSL non viene utilizzato.

WS-Management consente di crittografare tutto il contenuto di Windows PowerShell trasmesso in rete. UseSSL consente di inviare i dati con una protezione aggiuntiva attraverso una connessione HTTPS anziché HTTP.

Se si utilizza questo parametro, ma SSL non è disponibile sulla porta utilizzata per il comando, il comando ha esito negativo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String o System.Management.Automation.Runspaces.PSSession È possibile reindirizzare un nome del computer (una stringa) o un oggetto sessione a Enter-PSSession.
Output | Nessuno Il cmdlet non restituisce alcun output.

Note

-- Per connettersi a un computer remoto, è necessario essere un membro del gruppo Administrators nel computer remoto.

-- In Windows Vista e nelle versioni successive di Windows, per avviare una sessione interattiva nel computer locale, è necessario avviare Windows PowerShell con l'opzione "Esegui come amministratore".

-- Quando si utilizza Enter-PSSession, il profilo utente nel computer remoto viene utilizzato per la sessione interattiva. I comandi nel profilo utente remoto, compresi i comandi per aggiungere snap-in di Windows PowerShell e modificare il prompt dei comandi, vengono eseguiti prima che venga visualizzato il prompt remoto.

-- Tramite Enter-PSSession vengono utilizzate le impostazioni cultura dell'interfaccia utente impostate nel computer locale per la sessione interattiva. Per trovare le impostazioni cultura dell'interfaccia utente locali, utilizzare la variabile automatica $UICulture.

-- Per Enter-PSSession sono necessari i cmdlet Get-Command, Out-Default e Exit-PSSession. Se questi cmdlet non sono inclusi nella configurazione di sessione nel computer remoto, il comando Enter-PSSession avrà esito negativo.

-- A differenza di Invoke-Command, che analizza e interpreta i comandi prima di inviarli al computer remoto, Enter-PSSession invia direttamente i comandi al computer remoto senza interpretazione.

Esempio 1

C:\PS>Enter-PSSession

LocalHost\PS>

Descrizione
-----------
Tramite questo comando viene avviata una sessione interattiva nel computer locale. Il prompt dei comandi viene modificato per indicare che ora i comandi sono in esecuzione in una sessione diversa.

I comandi immessi vengono eseguiti nella nuova sessione e i risultati vengono restituiti alla sessione predefinita come testo.

Esempio 2

C:\PS>enter-pssession -computer Server01

Server01\PS> get-process powershell > C:\ps-test\process.txt

Server01\PS> exit-pssession
C:\PS>

C:\PS> dir C:\ps-test\process.txt
Get-ChildItem : Cannot find path 'C:\ps-test\process.txt' because it does not exist.
At line:1 char:4
+ dir <<<<  c:\ps-test\process.txt

Descrizione
-----------
Tramite questo comando viene illustrato come utilizzare una sessione interattiva con un computer remoto.

Nel primo comando viene utilizzato il cmdlet Enter-PSSession per avviare una sessione interattiva con Server01, un computer remoto. Quando la sessione viene avviata, il prompt dei comandi viene modificato per includere il nome del computer.

Nel secondo comando si ottiene il processo di PowerShell e reindirizza l'output al file Process.txt. Il comando viene inviato al computer remoto e il file viene salvato in tale computer.

Nel terzo comando viene utilizzata la parola chiave Exit per terminare la sessione interattiva e chiudere la connessione.

Nel quarto comando viene confermato che il file Process.txt si trova nel computer remoto. Un comando Get-ChildItem ("dir") nel computer locale non è in grado di trovare il file.

Esempio 3

C:\PS>$s = new-pssession -computername Server01

C:\PS> Enter-PSSession -session $s

Server01\PS>

Descrizione
-----------
Tramite questi comandi viene utilizzato il parametro Session di Enter-PSSession per eseguire la sessione interattiva in una sessione di Windows PowerShell esistente (PSSession).

Esempio 4

C:\PS>Enter-PSSession -computername Server01 -port 90 -credential domain01\user01

Server01\PS>

Descrizione
-----------
Tramite questo comando viene avviata una sessione interattiva con il computer Server01. Viene utilizzato il parametro Port per specificare la porta e il parametro Credential per specificare l'account di un utente con autorizzazione per la connessione al computer remoto.

Esempio 5

C:\PS>Enter-PSSession -computername Server01

Server01:\PS> Exit-PSSession

C:\PS>

Descrizione
-----------
In questo esempio viene illustrato come avviare e interrompere una sessione interattiva. Nel primo comando viene utilizzato il cmdlet Enter-PSSession per avviare una sessione interattiva con il computer Server01.

Nel secondo comando viene utilizzato il cmdlet Exit-PSSession per terminare la sessione. È anche possibile utilizzare la parola chiave Exit per terminare la sessione interattiva. Exit-PSSession ed Exit hanno lo stesso effetto.

Vedere anche

  • about_PSSessions
  • about_Remote
  • New-PSSession
  • Get-PSSession
  • Exit-PSSession
  • Remove-PSSession
  • Invoke-Command


Exit-PSSession

Termina una sessione interattiva con un computer remoto.

Sintassi

Exit-PSSession [<CommonParameters>]

Descrizione

Il cmdlet Exit-PSSession consente di terminare le sessioni interattive avviate tramite Enter-PSSession.

È anche possibile utilizzare la parola chiave Exit per terminare una sessione interattiva. L'effetto equivale all'utilizzo di Exit-PSSession.

Parametri

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a Exit-PSSession.
Output | Nessuno Questo cmdlet non restituisce alcun output.

Note

Questo cmdlet accetta solo i parametri comuni.

Esempio 1

C:\PS>Enter-PSSession -computername Server01

Server01\PS> Exit-PSSession

C:\PS>

Descrizione
-----------
Tramite questi comandi viene avviata e successivamente interrotta una sessione interattiva con il computer remoto Server01.

Esempio 2

C:\PS>$s = new-pssession -computername Server01

C:\PS> Enter-PSSession -session $s

Server01\PS> Exit-PSSession

C:\PS> $s

Id Name            ComputerName    State    ConfigurationName
-- ----            ------------    -----    -----------------
1  Session1        Server01        Opened   Microsoft.PowerShell

Descrizione
-----------
Tramite questi comandi viene avviata e interrotta una sessione interattiva con il computer Server01 che utilizza una sessione di Windows PowerShell (PSSession).

Poiché la sessione interattiva è stata avviata tramite una sessione di Windows PowerShell (PSSession), la sessione PSSession è ancora disponibile al termine della sessione interattiva. Se si utilizza il parametro ComputerName, tramite Enter-PSSession viene creata una sessione temporanea che si chiude al termine della sessione interattiva.

Nel primo comando viene utilizzato il cmdlet New-PSSession per creare una sessione PSSession nel computer Server01. La sessione PSSession viene salvata nella variabile $s.

Nel secondo comando viene utilizzato il cmdlet Enter-PSSession per avviare una sessione interattiva utilizzando PSSession in $s.

Nel terzo comando viene utilizzato il cmdlet Exit-PSSession per interrompere la sessione interattiva.

Con il comando finale viene visualizzata la sessione PSSession nella variabile $s. La proprietà State indica che la sessione PSSession è ancora aperta e disponibile all'uso.

Esempio 3

C:\PS>Enter-PSSession -computername Server01

Server01\PS> exit

C:\PS>

Descrizione
-----------
Tramite questo comando viene utilizzata la parola chiave Exit per interrompere una sessione interattiva avviata tramite il cmdlet Enter-PSSession. La parola chiave Exit ha lo stesso effetto dell'utilizzo di Exit-PSSession.

Vedere anche

  • about_PSSessions
  • about_Remote
  • Enter-PSSession
  • New-PSSession
  • Get-PSSession
  • Remove-PSSession
  • Invoke-Command


Export-Alias

Esporta in un file informazioni sugli alias attualmente definiti.

Sintassi

Export-Alias [-Path] <string> [[-Name] <string[]>] [-Append] [-As {<Csv> | <Script>}] [-Description <string>] [-Force] [-NoClobber] [-PassThru] [-Scope <string>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Export-Alias consente di esportare gli alias nella sessione corrente in un file. Se il file di output non esiste, viene creato automaticamente.

Export-Alias può esportare gli alias in un determinato ambito o in tutti gli ambiti, può generare i dati in formato CSV o come serie di comandi Set-Alias che è possibile aggiungere a una sessione o a un profilo di Windows PowerShell.

Parametri

-Append

Accoda l'output al file specificato, anziché sovrascrivere il contenuto esistente del file.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-As <ExportAliasFormat>

Determina il formato dell'output. Il formato predefinito è CSV.

I valori validi sono:

-- CSV: formato con valori separati da virgole.

-- Script: crea un comando Set-Alias per ogni alias esportato. Se si assegna un nome al file di output con estensione ps1, è possibile eseguirlo come script per aggiungere gli alias a qualsiasi sessione.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Description <string>

Aggiunge una descrizione al file esportato. La descrizione viene visualizzata come commento nella parte iniziale del file dopo le informazioni dell'intestazione.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Sovrascrive il file di output, anche se per il file è impostato l'attributo di sola lettura.

Per impostazione predefinita, Export-Alias sovrascrive i file senza alcun messaggio di avviso, a meno che non sia impostato l'attributo nascosto o di sola lettura o non si utilizzi il parametro NoClobber nel comando. Tale parametro ha la precedenza sul parametro Force quando entrambi vengono utilizzati in un comando.

Il parametro Force non può forzare la sovrascrittura tramite Export-Alias di file con l'attributo nascosto.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Does not overwrite read-only files.
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string[]>

Specifica i nomi degli alias da esportare. È consentito l'utilizzo di caratteri jolly.

Per impostazione predefinita, Export-Alias esporta tutti gli alias nella sessione o nell'ambito.

Obbligatorio? | false
Posizione? | 2
Valore predefinito | Export all aliases
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-NoClobber

Impedisce la sovrascrittura di file mediante Export-Alias, anche se nel comando viene utilizzato il parametro Force.

Se viene omesso il parametro NoClobber, Export-Alias sovrascrive un file esistente senza alcun messaggio di avviso, a meno che per il file non sia stato impostato l'attributo di sola lettura. NoClobber ha la precedenza sul parametro Force, pertanto Export-Alias è in grado di sovrascrivere un file con l'attributo di sola lettura.

NoClobber non impedisce l'aggiunta di contenuto a un file esistente tramite il parametro Append.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Overwrites read-write files.
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PassThru

Restituisce oggetti che rappresentano gli alias esportati. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito | No output
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string>

Specifica il percorso del file di output. È consentito l'utilizzo di caratteri jolly, ma il percorso risultante deve essere risolto in un singolo nome file. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Scope <string>

Specifica l'ambito da cui esportare gli alias.

I valori validi sono "Global", "Local", "Script" oppure un numero relativo all'ambito corrente, ovvero da 0 al numero di ambiti, dove 0 corrisponde all'ambito corrente e 1 al relativo padre. Il valore predefinito è "Local". Per ulteriori informazioni, vedere about_Scopes.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Local
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno. Non è possibile reindirizzare oggetti a questo cmdlet.
Output | Nessuno o System.Management.Automation.AliasInfo Quando si utilizza il parametro PassThru, Export-Alias restituisce un oggetto System.Management.Automation.AliasInfo che rappresenta l'alias. Negli altri casi, il cmdlet non genera alcun output.

Note

È possibile esportare alias tramite Export-Alias solo in un file.

Esempio 1

C:\PS>export-alias -path alias.csv

Descrizione
-----------
Con questo comando le informazioni correnti sull'alias verranno esportate in un file denominato Alias.csv nella directory corrente.

Esempio 2

C:\PS>export-alias -path alias.csv -noclobber

Descrizione
-----------
Con questo comando gli alias nella sessione corrente vengono esportati nel file Alias.csv.

Poiché non viene specificato alcun parametro NoClobber, il comando non viene eseguito se nella directory corrente è già presente un file denominato Alias.csv.

Esempio 3

C:\PS>export-alias -path alias.csv -append -description "Appended Aliases" -force

Descrizione
-----------
Con questo comando gli alias nella sessione corrente vengono aggiunti al file Alias.csv.

Viene utilizzato il parametro Description per aggiungere una descrizione ai commenti nella parte iniziale del file.

Viene inoltre utilizzato il parametro Force per sovrascrivere qualsiasi file Alias.csv esistente, anche se dispone dell'attributo di sola lettura.

Esempio 4

C:\PS>export-alias -path alias.ps1 -as script

C:\PS> add-content -path $profile -value (get-content alias.ps1)

C:\PS> $s = new-pssession -computername Server01
C:\PS> invoke-command -session $s -filepath .\alias.ps1

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il formato file script generato da Export-Alias.

Con il primo comando gli alias nella sessione vengono esportati nel file Alias.ps1. Viene utilizzato il parametro As con il valore Script per generare un file che contiene un comando Set-Alias per ciascun alias.

Con il secondo comando gli alias nel file Alias.ps1 vengono aggiunti al profilo CurrentUser-CurrentHost. Il percorso del profilo viene salvato nella variabile $profile. Vengono utilizzati il cmdlet Get-Content per ottenere gli alias dal file Alias.ps1 e il cmdlet Add-Content per aggiungerli al profilo. Per ulteriori informazioni, vedere about_Profiles.

Con il terzo e il quarto comando gli alias nel file Alias.ps1 vengono aggiunti a una sessione remota del computer Server01. Nel terzo comando viene utilizzato il cmdlet New-PSSession per creare la sessione, nel quarto comando viene utilizzato il parametro FilePath del cmdlet Invoke-Command per eseguire il file Alias.ps1 nella nuova sessione.

Vedere anche

  • Import-Alias
  • Get-Alias
  • New-Alias
  • Set-Alias


Export-Clixml

Crea una rappresentazione basata su XML di uno o più oggetti e la archivia in un file.

Sintassi

Export-Clixml [-Path] <string> -InputObject <psobject> [-Depth <int>] [-Encoding <string>] [-Force] [-NoClobber] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Export-Clixml consente di creare una rappresentazione basata su XML di uno o più oggetti e di archiviarla in un file. Sarà quindi possibile utilizzare il cmdlet Import-CLIXML per ricreare l'oggetto salvato in base al contenuto del file.

Questo cmdlet è simile a ConvertTo-XML, a eccezione del fatto che Export-Clixml consente di archiviare l'XML risultante in un file. ConvertTo-XML restituisce l'XML, per consentire di continuarne l'elaborazione in Windows PowerShell.

Parametri

-Depth <int>

Specifica quanti livelli di oggetti contenuti vengono inclusi nella rappresentazione XML. Il valore predefinito è 2.

È possibile eseguire l'override del valore predefinito per il tipo di oggetto nei file Types.ps1xml. Per ulteriori informazioni, vedere about_Types.ps1xml.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 2
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Encoding <string>

Specifica il tipo di codifica del file di destinazione. I valori validi sono ASCII, UTF8, UTF7, UTF32, Unicode, BigEndianUnicode, Default e OEM. Il valore predefinito è UTF8.

Obbligatorio? | false
Posizione? | named
Valore predefinito | UTF8
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Forza il cmdlet a cancellare l'attributo di sola lettura del file di output, se necessario. Dopo il completamento del comando, il cmdlet tenterà di reimpostare l'attributo di sola lettura.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica l'oggetto da convertire. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti. È inoltre possibile reindirizzare gli oggetti a Export-Clixml.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-NoClobber

Assicura che il cmdlet non sovrascriva il contenuto di un file esistente. Per impostazione predefinita, se nel percorso specificato è presente un file, Export-Clixml lo sovrascrive senza visualizzare alcun avviso.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string>

Specifica il percorso del file in cui verrà archiviata la rappresentazione XML dell'oggetto.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare qualsiasi oggetto a Export-Clixml.
Output | System.IO.FileInfo Export-Clixml crea un file che contiene XML.

Esempio 1

C:\PS>"This is a test" | export-clixml sample.xml

Descrizione
-----------
Tramite questo comando verrà creato un file XML in cui è archiviata una rappresentazione della stringa "This is a test".

Esempio 2

C:\PS>get-acl C:\test.txt | export-clixml -Path fileacl.xml

C:\PS> $fileacl = import-clixml fileacl.xml

Descrizione
-----------
In questo esempio viene illustrato come esportare un oggetto in un file XML e creare quindi un oggetto importando l'XML dal file.

Nel primo comando viene utilizzato il cmdlet Get-ACL per ottenere il descrittore di sicurezza del file Test.txt. Viene utilizzato un operatore pipeline per passare il descrittore di sicurezza a Export-Clixml che archivia una rappresentazione basata su XML dell'oggetto in un file denominato FileACL.xml.

Nel secondo comando viene utilizzato il cmdlet Import-Clixml per creare un oggetto dall'XML nel file FileACL.xml. L'oggetto viene quindi salvato nella variabile $FileAcl.

Vedere anche

  • Import-Clixml
  • ConvertTo-XML
  • Export-CSV
  • ConvertTo-Html


Export-Console

Esporta i nomi degli snap-in della sessione corrente in un file della console.

Sintassi

Export-Console [[-Path] <string>] [-Force] [-NoClobber] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Export-Console esporta i nomi degli snap-in di Windows PowerShell della sessione corrente in un file della console di Windows PowerShell (estensione psc1). È possibile utilizzare questo cmdlet per salvare gli snap-in per l'utilizzo in sessioni future.

Per aggiungere gli snap-in del file della console psc1 a una sessione, avviare Windows PowerShell (Powershell.exe) nella riga di comando, ad esempio tramite Cmd.exe o un'altra sessione di Windows PowerShell, quindi utilizzare il parametro PSConsoleFile di Powershell.exe per specificare il file della console.

Per ulteriori informazioni sugli snap-in di Windows PowerShell, vedere about_Pssnapins.

Parametri

-Force

Sovrascrive i dati in un file della console senza che venga visualizzato alcun avviso, anche se il file è di sola lettura. L'attributo di sola lettura viene modificato e non verrà reimpostato al termine dell'esecuzione del comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-NoClobber

Non sovrascrive, ovvero sostituisce, il contenuto di un file della console esistente. Per impostazione predefinita, se nel percorso specificato è presente un file, Export-Console lo sovrascrive senza visualizzare alcun avviso.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string>

Specifica un percorso e un nome file per il file della console (*.psc1). Immettere un percorso (facoltativo) e un nome. Non è consentito l'utilizzo di caratteri jolly.

Se si digita solo un nome file, tramite Export-Console verrà creato un file con il nome specificato e l'estensione psc1 nella directory corrente.

Questo parametro è obbligatorio a meno che Windows PowerShell non sia stato aperto con il parametro PSConsoleFile o non sia stato esportato un file della console durante la sessione corrente. Il parametro è inoltre obbligatorio quando si utilizza il parametro NoClobber per impedire che il file della console corrente venga sovrascritto.

Se questo parametro viene omesso, Export-Console sovrascrive, ovvero sostituisce, il contenuto del file della console utilizzato più di recente nella sessione. Il percorso al file della console utilizzato più di recente viene archiviato nel valore della variabile automatica $ConsoleFileName. Per ulteriori informazioni, vedere about_Automatic_Variables.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa di percorso a Export-Console.
Output | System.IO.FileInfo Export-Console crea un file che contiene gli alias esportati.

Note

Quando un file della console (.psc1) viene utilizzato per avviare la sessione, il nome di questo file viene automaticamente archiviato nella variabile automatica $ConsoleFileName. Il valore di $ConsoleFileName viene aggiornato quando si utilizza il parametro Path di Export-Console per specificare un nuovo file della console. Quando non si utilizza alcun file della console, $ConsoleFileName non dispone di nessun valore ($null).

Per utilizzare un file della console di Windows PowerShell in una nuova sessione, immettere la sintassi seguente per avviare Windows PowerShell:

"powershell.exe -PsConsoleFile <FileConsole>.psc1".

È inoltre possibile salvare gli snap-in di Windows PowerShell per sessioni future aggiungendo un comando Add-PSSnapin al profilo di Windows PowerShell. Per ulteriori informazioni, vedere about_Profiles.

Esempio 1

C:\PS>export-console -path $pshome\Consoles\ConsoleS1.psc1

Descrizione
-----------
Tramite questo comando vengono esportati i nomi degli snap-in di Windows PowerShell della sessione corrente nel file ConsoleS1.psc1 nella sottodirectory Consoles della directory di installazione di Windows PowerShell, $pshome.

Esempio 2

C:\PS>export-console

Descrizione
-----------
Tramite questo comando vengono esportati i nomi degli snap-in di Windows PowerShell dalla sessione corrente nel file della console di Windows PowerShell utilizzato più di recente nella sessione corrente. Il contenuto del file precedente viene sovrascritto.

Se durante la sessione corrente non è stato esportato un file della console, viene richiesta l'autorizzazione per continuare, quindi viene chiesto di immettere un nome file.

Esempio 3

C:\PS>add-pssnapin NewPSSnapin

C:\PS> export-console -path NewPSSnapinConsole.psc1

C:\PS> powershell.exe -PsConsoleFile NewPsSnapinConsole.psc1

Descrizione
-----------
Tramite questi comandi viene aggiunto alla sessione corrente lo snap-in NewPSSnapin di Windows PowerShell, vengono esportati i nomi degli snap-in di Windows PowerShell della sessione corrente in un file della console, quindi viene avviata una sessione di Windows PowerShell con il file della console.

Con il primo comando viene utilizzato il cmdlet Add-PSSnapin per aggiungere lo snap-in NewPSSnapin alla sessione corrente. È possibile aggiungere solo snap-in di Windows PowerShell registrati nel sistema.

Con il secondo comando vengono esportati i nomi degli snap-in di Windows PowerShell nel file NewPSSnapinConsole.psc1.

Con il terzo comando viene avviato Windows PowerShell con il file NewPSSnapinConsole.psc1. Poiché il file della console include il nome dello snap-in di Windows PowerShell, i cmdlet e i provider negli snap-in sono disponibili nella sessione corrente.

Esempio 4

C:\PS>export-console -path Console01

C:\PS> notepad console01.psc1

<?xml version="1.0" encoding="utf-8"?>
<PSConsoleFile ConsoleSchemaVersion="1.0">
  <PSVersion>2.0</PSVersion>
  <PSSnapIns>
    <PSSnapIn Name="NewPSSnapin" />
  </PSSnapIns>
</PSConsoleFile>

Descrizione
-----------
Tramite questo comando vengono esportati i nomi degli snap-in di Windows PowerShell della sessione corrente nel file Console01.psc1 della directory corrente.

Con il secondo comando viene visualizzato il contenuto del file Console01.psc1 in Blocco note.

Esempio 5

C:\PS>powershell.exe -PSConsoleFile Console01.psc1

C:\PS> add-pssnapin MySnapin

C:\PS> export-console NewConsole.psc1

C:\PS> $consolefilename

C:\PS> add-pssnapin SnapIn03

C:\PS> export-console

Descrizione
-----------
In questo esempio viene illustrato come utilizzare la variabile automatica $ConsoleFileName per determinare il file della console che verrà aggiornato se si utilizza Export-Console senza un valore del parametro Path.

Nel primo comando viene utilizzato il parametro PSConsoleFile di PowerShell.exe per aprire Windows PowerShell con il file Console01.psc1.

Nel secondo comando viene utilizzato il cmdlet Add-PSSnapin per aggiungere lo snap-in MySnapin di Windows PowerShell alla sessione corrente.

Nel terzo comando viene utilizzato il cmdlet Export-Console per esportare i nomi di tutti gli snap-in di Windows PowerShell della sessione nel file NewConsole.psc1.

Nel quarto comando viene utilizzato il parametro $ConsoleFileName per visualizzare il file della console utilizzato più recentemente. L'output di esempio indica che NewConsole.ps1 è il file utilizzato più recentemente.

Con il quinto viene aggiunto SnapIn03 alla console corrente.

Nel sesto comando viene utilizzato il cmdlet ExportConsole senza un parametro Path. Tramite questo comando vengono esportati i nomi di tutti gli snap-in di Windows PowerShell della sessione corrente nel file utilizzato più di recente, NewConsole01.psc1.

Vedere anche

  • Add-PSSnapin
  • Get-PSSnapin
  • Remove-PSSnapin


Export-Counter

Il cmdlet Export-Counter accetta gli oggetti PerformanceCounterSampleSet e li esporta come file del registro dei contatori.

Sintassi

Export-Counter [-Path] <string> -InputObject <PerformanceCounterSampleSet[]> [-Circular <switch>] [-FileFormat <string>] [-Force <switch>] [-MaxSize <int>] [<CommonParameters>]

Descrizione

Il cmdlet Export-Counter esporta i dati del contatore delle prestazioni (oggetti PerformanceCounterSampleSet) in file di registro nel formato del registro delle prestazioni binario (blg), nel formato csv (valori delimitati da virgole) o nel formato tsv (valori delimitati da tabulazioni). È possibile utilizzare questo cmdlet per registrare o registrare nuovamente dati del contatore delle prestazioni.

Export-Counter è progettato per esportare dati restituiti dai cmdlet Get-Counter e Import-Counter.

Nota: Export-Counter può essere eseguito solo in Windows 7, Windows Server 2008 R2 e versioni successive di Windows.

Parametri

-Circular <switch>

Indica che il file di output deve essere un registro circolare nel formato FIFO (first in, first out). Quando si include questo parametro, il parametro MaxSize è obbligatorio.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-FileFormat <string>

Specifica il formato di output del file del registro di output. I valori validi sono CSV, TSV e BLG. Il valore predefinito è BLG.

Obbligatorio? | false
Posizione? | named
Valore predefinito | BLG
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force <switch>

Sovrascrive e sostituisce un file esistente se ne esiste uno nel percorso specificato dal parametro Path.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <PerformanceCounterSampleSet[]>

Specifica i dati del contatore da esportare. Immettere una variabile che contiene i dati o un comando che consenta di ottenere i dati, ad esempio Get-Counter o Import-Counter.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-MaxSize <int>

Specifica la dimensione massima del file di output.

Se viene specificato il parametro Circular, quando il file di registro raggiunge la dimensione massima specificata, le voci meno recenti vengono eliminate man mano che vengono aggiunte quelle più recenti. Se il parametro Circular non è specificato, quando il file di registro raggiunge la dimensione massima specificata, i nuovi dati non vengono aggiunti e il cmdlet genera un errore non fatale.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string>

Specifica il percorso e il nome del file di output. Immettere un percorso relativo o assoluto nel computer locale o un percorso UNC (Uniform Naming Convention) di un computer remoto, ad esempio \\Computer\Share\file.blg. Questo parametro è obbligatorio.

Nota: il formato del file è determinato dal valore del parametro FileFormat, non dall'estensione di file nel percorso.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet È possibile reindirizzare i dati dei contatori delle prestazioni da Get-Counter o Import-Counter a Export-Counter.
Output | Nessuno

Note

Il generatore di file di registro prevede che tutti gli oggetti di input dispongano dello stesso percorso di contatore e che gli oggetti vengono disposti in ordine di tempo crescente.

Il tipo di contatore e il percorso del primo oggetto di input determinano le proprietà registrate nel file di registro. Se altri oggetti di input non dispongono di un valore per una proprietà registrata, il campo della proprietà è vuoto. Se gli oggetti dispongono di valori di proprietà non registrati, i valori aggiuntivi delle proprietà vengono ignorati.

Performance Monitor potrebbe non essere in grado di leggere tutti i registri generati da Export-Counter. Ad esempio, Performance Monitor richiede che tutti gli oggetti dispongano dello stesso percorso e che siano separati dallo stesso intervallo di tempo.

Il cmdlet Import-Counter non dispone di un parametro ComputerName. Tuttavia, se il computer è configurato per la comunicazione remota di Windows PowerShell, è possibile utilizzare il cmdlet Invoke-Command per eseguire un comando Import-Counter in un computer remoto.

Esempio 1

C:\PS># Export-Counter

Descrizione
-----------
Questo comando esporta i dati dei contatori in un file con estensione blg.

Nel comando viene utilizzato il cmdlet Get-Counter per raccogliere dati sul tempo del processore. Viene utilizzato un operatore pipeline (|) per inviare i dati al cmdlet Export-Counter. Il comando Export-Counter utilizza la variabile Path per specificare il file di output.

C:\PS> get-counter "\Processor(*)\% Processor Time" -max 50 | export-counter -path $home\counters.blg

Poiché il set di dati potrebbe essere di grandi dimensioni, questo comando invia i dati a Export-Counter attraverso la pipeline. Se i dati sono stati salvati in una variabile, il comando potrebbe utilizzare una quantità di memoria sproporzionata.

Esempio 2

C:\PS># Export-Counter

Descrizione
-----------
Questi comandi convertono un file CSV nel formato BLG dei dati del contatore.

Il primo comando utilizza la funzionalità di conversione predefinita di Windows PowerShell per archiviare il valore di 1 gigabtye (GB) in byte nella variabile $1GBinBytes. Quando si digita un valore seguito da K (kilobyte), MB (megabyte) o GB, Windows PowerShell restituisce il valore in byte.

C:\PS> $1GBinBytes = 1GB

Il secondo comando utilizza il cmdlet Import-Counter per importare i dati del contatore delle prestazioni dal file Threads.csv. Nell'esempio si presume che questo file sia stato precedentemente esportato tramite il cmdlet Export-Counter.

Un operatore pipeline (|) invia i dati importati al cmdlet Export-Counter. In questo comando viene utilizzato il parametro Path per specificare la posizione del file di output. Vengono utilizzati i parametri Circular e MaxSize per indicare a Export-Counter di creare un registro circolare che esegua il wrapping a 1 GB.

C:\PS> import-counter threads.csv | export-counter -path threadtest.blg -circular -maxsize $1GBinBytes

Esempio 3

C:\PS># Export-Counter

Descrizione
-----------
In questo esempio viene illustrato come ottenere dati del contatore delle prestazioni da un computer remoto e salvare i dati in un file nel computer remoto.

Il primo comando utilizza il cmdlet Get-Counter per raccogliere dati del contatore del working set da Server01, un computer remoto. Il comando salva i dati nella variabile $c.

C:\PS> $c = get-counter -computername Server01 -counter "\Process(*)\Working Set - Private" -maxSamples 20

Il secondo comando utilizza un operatore pipeline (|) per inviare i dati in $c al cmdlet Export-Counter che li salva nel file Workingset.blg nella condivisione Perf nel computer Server01.

C:\PS> $c | export-counter -path \\Server01\Perf\WorkingSet.blg

Esempio 4

C:\PS># Export-Counter

Descrizione
-----------
In questo esempio viene illustrato come utilizzare i cmdlet Import-Counter e Export-Counter per registrare nuovamente dati esistenti.

Il primo comando utilizza il cmdlet Import-Counter per importare i dati del contatore delle prestazioni dal registro DiskSpace.blg. I dati vengono salvati nella variabile $all. Questo file contiene esempi del contatore "LogicalDisk\% Free Space" in più di 200 computer remoti dell'organizzazione.

C:\PS> $all = import-counter DiskSpace.blg

Il secondo comando utilizza la proprietà CounterSamples dell'oggetto set di esempi in $all e il cmdlet Where-Object (alias = "where") per selezionare oggetti con valori CookedValues inferiori a 15 (%). I risultati vengono salvati nella variabile $lowSpace.

C:\PS> $lowSpace = $all.countersamples | where {$_.cookedvalues -lt 15}

Nel terzo comando viene utilizzato un operatore pipeline (|) per inviare i dati nella variabile $lowSpace al cmdlet Export-Counter. Il comando utilizza la variabile path per indicare che i dati selezionati devono essere registrati nel file LowDiskSpace.blg.

C:\PS> $lowSpace | export-counter -path LowDiskSpace.blg

Vedere anche

  • Get-Counter
  • Import-Counter


Export-CSV

Converte gli oggetti Microsoft .NET Framework in una serie di stringhe a lunghezza variabile con valori delimitati da virgole (CSV) e salva le stringhe in un file CSV.

Sintassi

Export-CSV [[-Delimiter] <char>] [-Path] <string> -InputObject <psobject> [-Encoding <string>] [-Force] [-NoClobber] [-NoTypeInformation] [-Confirm] [-WhatIf] [<CommonParameters>]

Export-CSV [-UseCulture] [-Path] <string> -InputObject <psobject> [-Encoding <string>] [-Force] [-NoClobber] [-NoTypeInformation] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Export-CSV crea un file di lunghezza variabile CSV che rappresenta gli oggetti inviati.

Per ricreare oggetti dalle stringhe CSV nei file, è quindi possibile utilizzare il cmdlet Import-CSV. Gli oggetti risultanti sono le versioni CSV degli oggetti originali costituiti da rappresentazioni di stringhe dei valori delle proprietà senza alcun metodo.

È inoltre possibile utilizzare i cmdlet ConvertTo-CSV e ConvertFrom-CSV per convertire gli oggetti .NET Framework in stringhe CSV (e viceversa). Export-CSV equivale a ConvertTo-CSV, a eccezione del fatto che consente di salvare le stringhe CSV in un file.

È possibile utilizzare i parametri del cmdlet Export-CSV per specificare un delimitatore diverso dalla virgola o fare in modo che Export-CSV utilizzi il delimitatore predefinito per l'impostazione cultura corrente.

Quando si inviano più oggetti a Export-CSV, Export-CSV organizza il file in base alle proprietà del primo oggetto inviato. Se gli oggetti rimanenti non hanno una delle proprietà specificate, il valore della proprietà di tale oggetto è null, rappresentato da due virgole consecutive. Se gli oggetti rimanenti dispongono di proprietà aggiuntive, i valori di tali proprietà non vengono inclusi nel file.

Per ulteriori informazioni, vedere Export-CSV e la sezione Note.

Parametri

-Delimiter <char>

Specifica un delimitatore per separare i valori delle proprietà. Il valore predefinito è la virgola (,). Immettere un carattere, ad esempio i due punti (:). Per specificare il punto e virgola (;), è necessario racchiuderlo tra virgolette doppie.

Obbligatorio? | false
Posizione? | 2
Valore predefinito | , (comma)
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Encoding <string>

Specifica la codifica del file CSV esportato. I valori validi sono Unicode, UTF7, UTF8, ASCII, UTF32, BigEndianUnicode, Default e OEM. Il valore predefinito è ASCII.

Obbligatorio? | false
Posizione? | named
Valore predefinito | ASCII
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Sovrascrive il file specificato nel percorso senza chiedere conferma.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica gli oggetti da esportare come stringhe CSV. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti. È inoltre possibile reindirizzare gli oggetti a Export-CSV.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-NoClobber

Non sovrascrivere un file esistente (sostituirne il contenuto). Per impostazione predefinita, se nel percorso specificato è presente un file, Export-CSV lo sovrascrive senza visualizzare alcun avviso.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-NoTypeInformation

Omette le informazioni sui tipi dal file CSV. Per impostazione predefinita, la prima riga del file CSV contiene "#TYPE" seguito dal nome completo del tipo di oggetto .NET Framework.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string>

Specifica il percorso del file CSV di output. Il parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseCulture

Utilizzare il separatore di elenco per l'impostazione cultura corrente come delimitatore dell'elemento. Il valore predefinito è la virgola (,).

Questo parametro è molto utile negli script distribuiti agli utenti di tutto il mondo. Per trovare il separatore di elenco di un'impostazione cultura, utilizzare il comando (Get-Culture).TextInfo.ListSeparator.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Comma
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare qualsiasi oggetto .NET Framework a Export-CSV.
Output | System.String L'elenco CSV viene inviato al file specificato nel parametro Path.

Note

Il cmdlet Export-CSV converte gli oggetti inviati in una serie di stringhe a lunghezza variabile CSV e salva le stringhe nel file di testo specificato. È possibile utilizzare Export-CSV per salvare oggetti in un file CSV e utilizzare quindi il cmdlet Import-CSV per creare oggetti dal testo del file CSV.

Nel file CSV, ogni oggetto viene rappresentato da un elenco di valori delle proprietà dell'oggetto separati da virgole. I valori delle proprietà vengono convertiti in stringhe (tramite il metodo ToString() dell'oggetto), pertanto sono in genere rappresentati dal nome del valore della proprietà. Export-CSV non esporta i metodi dell'oggetto.

Il formato di un file esportato è il seguente:

-- La prima riga del file CSV contiene la stringa '#TYPE' seguita dal nome completo del tipo .NET Framework dell'oggetto, ad esempio #TYPE System.Diagnostics.Process. Per eliminare questa riga, utilizzare il parametro NoTypeInformation.

-- Nella riga successiva del file CSV sono rappresentate le intestazioni di colonna È incluso un elenco dei nomi di tutte le proprietà del primo oggetto separati da virgole.

-- Le righe aggiuntive del file sono costituite da elenchi di valori delle proprietà di ogni oggetto separati da virgole.

Esempio 1

C:\PS>get-process wmiprvse | select-object basePriority,ID,SessionID,WorkingSet | export-csv -path data.csv

Descrizione
-----------
Tramite questo comando alcune proprietà del processo wmiprvse verranno selezionate ed esportate in un file in formato CSV denominato data.csv.

Esempio 2

C:\PS>get-process | export-csv processes.csv

C:\PS> get-process | export-csv processes.csv

# In processes.csv

#TYPE System.Diagnostics.Process
__NounName,Name,Handles,VM,WS,PM,NPM,Path,Company,CPU,FileVersion,...
Process,powershell,626,201666560,76058624,61943808,11960,C:\WINDOWS...
Process,powershell,257,151920640,38322176,37052416,7836,C:\WINDOWS\...

Descrizione
-----------
Con questo comando gli oggetti che rappresentano i processi nel computer vengono esportati nel file Processes.csv nella directory corrente. Poiché non viene specificato un delimitatore, viene utilizzata la virgola (,) per separare i campi nel file.

Esempio 3

C:\PS>get-process | export-csv processes.csv -Delimiter ";"

# In processes.csv

#TYPE System.Diagnostics.Process
__NounName;Name;Handles;VM;WS;PM;NPM;Path;Company;CPU;FileVersion;...
Process;powershell;626;201666560;76058624;61943808;11960;C:\WINDOWS...
Process;powershell;257;151920640;38322176;37052416;7836;C:\WINDOWS\...

Descrizione
-----------
Con questo comando gli oggetti che rappresentano i processi nel computer vengono esportati nel file Processes.csv nella directory corrente. Viene utilizzato il parametro Delimiter per specificare il punto e virgola (;). Di conseguenza i campi nel file vengono separati da punti e virgola.

Esempio 4

C:\PS>get-process | export-csv processes.csv -UseCulture

Descrizione
-----------
Con questo comando gli oggetti che rappresentano i processi nel computer vengono esportati nel file Processes.csv nella directory corrente. Viene utilizzato il parametro UseCulture per fare in modo che Export-CSV utilizzi il delimitatore specificato dalla proprietà ListSeparator delle impostazioni cultura correnti.

Esempio 5

C:\PS>get-process | export-csv processes.csv -NoTypeInformation

C:\PS> get-process | export-csv processes.csv -NoTypeInformation

# In processes.csv

__NounName,Name,Handles,VM,WS,PM,NPM,Path,Company,CPU,FileVersion,...
Process,powershell,626,201666560,76058624,61943808,11960,C:\WINDOWS...
Process,powershell,257,151920640,38322176,37052416,7836,C:\WINDOWS\...

Descrizione
-----------
Con questo comando gli oggetti che rappresentano i processi nel computer vengono esportati nel file Processes.csv nella directory corrente. Viene utilizzato il parametro NoTypeInformation per eliminare le informazioni sui tipi nel file.

Vedere anche

  • Import-CSV
  • ConvertTo-CSV
  • ConvertFrom-CSV


Export-FormatData

Salva i dati di formattazione della sessione corrente in un file di formattazione.

Sintassi

Export-FormatData [-Force] [-IncludeScriptBlock] [-InputObject <ExtendedTypeDefinition[]>] [-NoClobber] [-Path <string>] [<CommonParameters>]

Descrizione

Il cmdlet Export-FormatData crea file di formattazione di Windows PowerShell (format.ps1xml) dagli oggetti di formattazione della sessione corrente. Accetta gli oggetti ExtendedTypeDefinition restituiti da Get-FormatData e li salva in un file in formato XML.

Windows PowerShell utilizza i dati nei file di formattazione (format.ps1xml) per generare la visualizzazione predefinita di oggetti Microsoft .NET Framework nella sessione. È possibile visualizzare e modificare i file di formattazione e utilizzare il cmdlet Update-FormatData per aggiungere dati di formattazione a una sessione.

Per ulteriori informazioni sui file di formattazione in Windows PowerShell, vedere about_Format.ps1xml.

Parametri

-Force

Sovrascrive un file di output esistente, anche se per il file è impostato l'attributo di sola lettura.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-IncludeScriptBlock

Determina se vengono esportati i blocchi di script nei dati di formato.

Poiché i blocchi di script contengono codice e possono essere utilizzati in modo dannoso, non vengono esportati per impostazione predefinita.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <ExtendedTypeDefinition[]>

Specifica gli oggetti dati di formato da esportare. Immettere una variabile contenente gli oggetti o un comando che consente di ottenere gli oggetti, ad esempio Get-FormatData. È inoltre possibile reindirizzare gli oggetti da Get-FormatData a Export-FormatData.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-NoClobber

Impedisce al cmdlet di sovrascrivere i file esistenti. Per impostazione predefinita, Export-FormatData sovrascrive i file senza visualizzare alcun avviso a meno che il file non disponga dell'attributo di sola lettura.

Per fare in modo che Export-FormatData sovrascriva i file di sola lettura, utilizzare il parametro Force.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string>

Specifica un percorso per il file di output. Immettere un percorso (facoltativo) e un nome file con estensione format.ps1xml. Se si omette il percorso, Export-FormatData crea il file nella directory corrente.

Se si utilizza un'estensione di file diversa da ps1xml, il cmdlet Update-FormatData non riconoscerà il file.

Se si specifica un file esistente, Export-FormatData lo sovrascrive senza alcun avviso, a meno che il file non disponga dell'attributo di sola lettura. Per sovrascrivere un file di sola lettura, utilizzare il parametro Force. Per evitare la sovrascrittura dei file, utilizzare il parametro NoClobber.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.ExtendedTypeDefinition È inoltre possibile reindirizzare oggetti ExtendedTypeDefinition da Get-FormatData a Export-FormatData.
Output | Nessuno Export-FormatData non restituisce alcun oggetto. Genera un file e lo salva nel percorso specificato.

Note

Per utilizzare qualsiasi file di formattazione, incluso un file di formattazione esportato, è necessario che i criteri di esecuzione per la sessione consentano l'esecuzione di script e file di configurazione. Per ulteriori informazioni, vedere about_Execution_Policies.

Esempio 1

C:\PS>get-formatdata -typename * | export-formatdata -path allformat.ps1xml -IncludeScriptBlock

Descrizione
-----------
Con questo comando vengono esportati tutti i dati di formato della sessione nel file AllFormat.ps1xml.

Viene utilizzato il cmdlet Get-FormatData per ottenere i dati di formato nella sessione. Con il valore * (tutto) per il parametro TypeName viene indicato al cmdlet di ottenere tutti i dati della sessione.

Nel comando viene utilizzato un operatore pipeline (|) per inviare i dati di formato dal comando Get-FormatData al cmdlet Export-FormatData che li esporta nel file AllFormat.ps1.

Il comando Export-FormatData utilizza il parametro IncludeScriptBlock per includere i blocchi di script nei dati di formato nel file.

Esempio 2

C:\PS>$f = get-formatdata -typename helpinfoshort

C:\PS> export-formatdata -inputObject $f -path c:\test\help.format.ps1xml -IncludeScriptBlock

Descrizione
-----------
Tramite questi comandi vengono esportati i dati di formato per il tipo HelpInfoShort nel file Help.format.ps1xml.

Nel primo comando viene utilizzato il cmdlet Get-FormatData per ottenere i dati di formato per il tipo HelpInfoShort che vengono quindi salvati nella variabile $f.

Nel secondo comando viene utilizzato il parametro InputObject di Export-FormatData per immettere i dati di formato salvati nella variabile $f. Viene inoltre utilizzato il parametro IncludeScriptBlock per includere blocchi di script nell'output.

Esempio 3

C:\PS>get-formatdata -typename System.Diagnostics.Process | export-FormatData -path process.format.ps1xml

C:\PS> Update-FormatData -prependPath .\process.format.ps1xml

C:\PS> get-process p*

Handles  NPM(K)  PM(K)  WS(K) VM(M)   CPU(s)    Id ProcessName
-------  ------  -----  ----- -----   ------    -- -----------
    323                                       5600 powershell
    336                                       3900 powershell_ise
    138                                       4076 PresentationFontCache

Descrizione
-----------
In questo esempio viene illustrato l'effetto dell'omissione del parametro IncludeScriptBlock da un comando Export-FormatData.

Nel primo comando viene utilizzato il cmdlet Get-FormatData per ottenere i dati di formato per l'oggetto System.Diagnostics.Process restituito dal cmdlet Get-Process. Viene utilizzato un operatore pipeline (|) per inviare i dati di formattazione al cmdlet Export-FormatData che li esporta nel file Process.format.ps1xml nella directory corrente.

In questo caso, nel comando Export-FormatData non viene utilizzato il parametro IncludeScriptBlock.

Nel secondo comando viene utilizzato il cmdlet Update-FormatData per aggiungere il file Process.format.ps1xml alla sessione corrente. Viene utilizzato il parametro PrependPath per assicurarsi che i dati di formattazione per gli oggetti processo nel file Process.format.ps1xml si trovino prima dei dati di formattazione standard per gli oggetti processo.

Il terzo comando illustra gli effetti di questa modifica. Nel comando viene utilizzato il cmdlet Get-Process per ottenere i processi il cui nome inizia con "P". Nell'output viene illustrato che i valori di proprietà calcolati mediante blocchi di script non sono presenti nella visualizzazione.

Vedere anche

  • Get-FormatData
  • Update-FormatData


Export-ModuleMember

Specifica i membri del modulo esportati.

Sintassi

Export-ModuleMember [[-Function] <string[]>] [-Alias <string[]>] [-Cmdlet <string[]>] [-Variable <string[]>] [<CommonParameters>]

Descrizione

Il cmdlet Export-ModuleMember consente di specificare i membri di modulo (ad esempio cmdlet, funzioni, variabili e alias) esportati da un file modulo di script (estensione psm1) o da un modulo dinamico creato tramite il cmdlet New-Module. Questo cmdlet può essere utilizzato solo in un file modulo di script o in un modulo dinamico.

Se un modulo di script non include un comando Export-ModuleMember, le funzioni nel modulo di script vengono esportate, mentre le variabili e gli alias no. Quando un modulo di script include un comando Export-ModuleMember, vengono esportati solo i membri specificati nel comando Export-ModuleMember.

Se un modulo di script contiene più comandi Export-ModuleMember, vengono esportati solo i membri elencati in un comando Export-ModuleMember.

È anche possibile utilizzare Export-ModuleMember per esportare membri che il modulo di script importa da altri moduli.

Parametri

-Alias <string[]>

Specifica gli alias esportati dal file modulo di script. Immettere i nomi degli alias. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | true

-Cmdlet <string[]>

Specifica i cmdlet esportati dal file modulo di script. Immettere i nomi dei cmdlet. È consentito l'utilizzo di caratteri jolly.

Non è possibile creare cmdlet in un file modulo di script, ma è possibile importarli da un modulo binario in un modulo di script ed esportarli nuovamente dal modulo di script.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | true

-Function <string[]>

Specifica le funzioni esportate dal file modulo di script. Immettere i nomi delle funzioni. È consentito l'utilizzo di caratteri jolly. È anche possibile reindirizzare stringhe di nomi di funzioni a Export-ModuleMember.

Obbligatorio? | false
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | true

-Variable <string[]>

Specifica le variabili esportate dal file modulo di script. Immettere i nomi delle variabili (senza simbolo del dollaro). È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | true

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare stringhe di nomi di funzioni a Export-ModuleMember.
Output | Nessuno Questo cmdlet non genera alcun output.

Note

Per escludere un membro dall'elenco di membri esportati, aggiungere un comando Export-ModuleMember in cui vengono elencati tutti gli altri membri, ma viene omesso il membro che si desidera escludere.

Esempio 1

C:\PS>Export-ModuleMember -function * -alias *

Descrizione
-----------
Tramite questo comando vengono esportati gli alias definiti nel modulo di script, insieme alle funzioni definite nello stesso modulo.

Per esportare gli alias, operazione non eseguita per impostazione predefinita, è anche necessario specificare le funzioni in modo esplicito. In caso contrario, verranno esportati solo gli alias.

Esempio 2

C:\PS>Export-ModuleMember -function Get-Test, New-Test, Start-Test -alias gtt, ntt, stt

Descrizione
-----------
Tramite questo comando vengono esportati tre alias e tre funzioni definite nel modulo di script.

È possibile utilizzare questo formato di comando per specificare i nomi dei membri di modulo.

Esempio 3

C:\PS>Export-ModuleMember

Descrizione
-----------
Questo comando specifica che non viene esportato alcun membro definito nel modulo di script.

Questo comando impedisce l'esportazione dei membri di modulo, ma non nasconde i membri. Gli utenti possono leggere e copiare i membri di modulo o utilizzare l'operatore di chiamata (&) per richiamare i membri di modulo che non vengono esportati.

Esempio 4

C:\PS>Export-ModuleMember -variable increment

Descrizione
-----------
Tramite questo comando viene esportata solo la variabile $increment dal modulo di script. Non viene esportato nessun altro membro.

Se si desidera esportare una variabile, oltre all'esportazione delle funzioni in un modulo, il comando Export-ModuleMember deve includere i nomi di tutte le funzioni e il nome della variabile.

Esempio 5

C:\PS># From TestModule.psm1

function new-test
    { <function code> }
export-modulemember -function new-test

function validate-test
    { <function code> }

function start-test
    { <function code> }
set-alias stt start-test
export-modulemember -function *-test -alias stt

Descrizione
-----------
Tramite questi comandi viene illustrato come vengono interpretati più comandi Export-ModuleMember in un file modulo di script (.psm1).

Vengono create tre funzioni e un alias, quindi vengono esportate due delle funzioni e l'alias.

Senza i comandi Export-ModuleMember, verrebbero esportate le tre funzioni, ma non l'alias. Con i comandi Export-ModuleMember, vengono esportate solo le funzioni Get-Test e Start-Test e l'alias STT.

Esempio 6

C:\PS>new-module -script {function SayHello {"Hello!"}; set-alias Hi SayHello; Export-ModuleMember -alias Hi -function SayHello}

Descrizione
-----------
Tramite questo comando viene illustrato come utilizzare Export-ModuleMember in un modulo dinamico creato tramite il cmdlet New-Module.

In questo esempio, Export-ModuleMember viene utilizzato per esportare l'alias "Ciao" e la funzione "BuonGiorno" nel modulo dinamico.

Esempio 7

C:\PS>function export
{
    param (
        [parameter(mandatory=$true)] [validateset("function","variable")] $type,
        [parameter(mandatory=$true)] $name,
        [parameter(mandatory=$true)] $value
    )
    if ($type -eq "function")
    {
        Set-item "function:script:$name" $value
        Export-ModuleMember $name
    }
    else
    {
        Set-Variable -scope Script $name $value
        Export-ModuleMember -variable $name
    }
}

export function New-Test
{
  ...
}

function helper
{
  ...
}

export variable interval 0
$interval = 2

Descrizione
-----------
Questo esempio include una funzione denominata Export che dichiara una funzione o crea una variabile e scrive un comando Export-ModuleMember per la funzione o la variabile. Ciò consente di dichiarare ed esportare una funzione o una variabile in un singolo comando.

Per utilizzare la funzione Export, includerla nel modulo di script. Per esportare una funzione, digitare "Export" prima della parola chiave Function.

Per esportare una variabile, utilizzare il formato seguente per dichiarare la variabile e impostarne il valore:

    export variable <nome-variabile> <valore>

I comandi dell'esempio presentano il formato corretto. In questo esempio, vengono esportate solo la funzione New-Test e la variabile $Interval.

Vedere anche

  • Import-Module
  • Get-Module
  • Remove-Module
  • about_Modules


Export-PSSession

Importa comandi da un'altra sessione e li salva in un modulo di Windows PowerShell.

Sintassi

Export-PSSession [-Session] <PSSession> [-OutputModule] <string> [[-CommandName] <string[]>] [[-FormatTypeName] <string[]>] [-AllowClobber] [-ArgumentList <Object[]>] [-CommandType {<Alias> | <Function> | <Filter> | <Cmdlet> | <ExternalScript> | <Application> | <Script> | <All>}] [-Encoding <string>] [-Force] [-Module <string[]>] [<CommonParameters>]

Descrizione

Il cmdlet Export-PSSession ottiene cmdlet, funzioni, alias e altri tipi di comando da un'altra sessione PSSession in un computer locale o remoto e li salva in un modulo di Windows PowerShell. Per aggiungere i comandi del modulo alla sessione corrente, utilizzare il cmdlet Import-Module.

A differenza di Import-PSSession che importa comandi da un'altra sessione PSSession nella sessione corrente, Export-PSSession salva i comandi in un modulo. I comandi non vengono importati nella sessione corrente.

Per esportare comandi, utilizzare innanzitutto il cmdlet New-PSSession per creare una sessione PSSession contenente i comandi da esportare. Utilizzare quindi il cmdlet Export-PSSession per esportare i comandi. Per impostazione predefinita, Export-PSSession esporta tutti i comandi a eccezione di quelli già esistenti nella sessione corrente, ma è possibile utilizzare i parametri CommandName per specificare i comandi da esportare.

Il cmdlet Export-PSSession utilizza la funzionalità di comunicazione remota implicita di Windows PowerShell. Quando si importano comandi nella sessione corrente, essi vengono eseguiti in modo implicito nella sessione originale o in una sessione simile nel computer di origine.

Parametri

-AllowClobber

Esporta i comandi specificati anche se hanno gli stessi nomi dei comandi della sessione corrente.

Se si importa un comando con lo stesso nome di un comando nella sessione corrente, il comando importato nasconde o sostituisce i comandi originali. Per ulteriori informazioni, vedere about_Command_Precedence.

Export-PSSession non importa i comandi con gli stessi nomi dei comandi della sessione corrente. Il comportamento predefinito ha lo scopo di evitare i conflitti tra i nomi dei comandi.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ArgumentList <Object[]>

Esporta la variante del comando risultante dall'utilizzo degli argomenti specificati (valori di parametro).

Ad esempio, per esportare la variante del comando Get-Item nell'unità del certificato (Cert:) nella sessione PSSession in $s, digitare "export-pssession -session $s -command Get-Item -argumentlist cert:".

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-CommandName <string[]>

Esporta solo i comandi con i modelli di nome o i nomi specificati. È consentito l'utilizzo di caratteri jolly. Utilizzare "CommandName" o il relativo alias, "Name".

Per impostazione predefinita, Export-PSSession esporta tutti i comandi dalla sessione PSSession, a eccezione di quelli con gli stessi nomi dei comandi nella sessione corrente. In questo modo si evita che i comandi importati nascondano o sostituiscano comandi nella sessione corrente. Per esportare tutti i comandi, anche quelli che ne nascondono o sostituiscono altri, utilizzare il parametro AllowClobber.

Se si utilizza il parametro CommandName, i file di formattazione per i comandi non vengono esportati a meno che non si utilizzi il parametro FormatTypeName. Analogamente, se si utilizza il parametro FormatTypeName, non viene esportato alcun comando a meno che non si utilizzi il parametro CommandName.

Obbligatorio? | false
Posizione? | 3
Valore predefinito | All commands in the session.
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-CommandType <CommandTypes>

Esporta solo i tipi specificati degli oggetti comando. Utilizzare "CommandType" o il relativo alias, "Type".

I valori validi sono:

-- Alias: tutti gli alias Windows PowerShell della sessione corrente.

-- All: tutti i tipi di comando. Equivale a "Get-Command *".

-- Application: tutti i file non di Windows PowerShell nei percorsi elencati nella variabile di ambiente Path ($env:path), inclusi i file con estensione txt, exe e dll.

-- Cmdlet: cmdlet della sessione corrente. Il valore predefinito è "Cmdlet".

-- ExternalScript: tutti i file con estensione ps1 nei percorsi elencati nella variabile di ambiente Path ($env:path).

-- Filter e Function: tutte le funzioni di Windows PowerShell.

-- Script: blocchi di script nella sessione corrente.

Obbligatorio? | false
Posizione? | named
Valore predefinito | All commands in the session.
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Encoding <string>

Specifica la codifica per i file di output. I valori validi sono Unicode, UTF7, UTF8, ASCII, UTF32, BigEndianUnicode, Default e OEM. Il valore predefinito è UTF-8.

Obbligatorio? | false
Posizione? | named
Valore predefinito | UTF-8
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Sovrascrive uno o più file di output esistenti, anche se per il file è impostato l'attributo di sola lettura.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-FormatTypeName <string[]>

Esporta le istruzioni di formattazione solo per i tipi Microsoft .NET Framework specificati. Immettere i nomi dei tipi. Per impostazione predefinita, Export-PSSession esporta le istruzioni di formattazione per tutti i tipi .NET Framework che non si trovano nello spazio dei nomi System.Management.Automation.

Il valore di questo parametro deve essere il nome di un tipo restituito da un comando Get-FormatData nella sessione da cui vengono importati i comandi. Per ottenere tutti i dati di formattazione della sessione remota, digitare *.

Se si utilizza il parametro FormatTypeName, non viene esportato alcun comando a meno che non si utilizzi il parametro CommandName.

Analogamente, se si utilizza il parametro CommandName, i file di formattazione per i comandi non vengono esportati a meno che non si utilizzi il parametro FormatTypeName.

Obbligatorio? | false
Posizione? | 4
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Module <string[]>

Esporta solo i comandi negli snap-in e nei moduli di Windows PowerShell specificati. Immettere i nomi degli snap-in e dei moduli. Non è consentito l'utilizzo di caratteri jolly.

Per ulteriori informazioni, vedere about_Pssnapins e Import-Module.

Obbligatorio? | false
Posizione? | named
Valore predefinito | All commands in the session.
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-OutputModule <string>

Specifica un percorso (facoltativo) e un nome per il modulo creato da Export-PSSession. Il percorso predefinito è $home\Documents\WindowsPowerShell\Modules. Questo parametro è obbligatorio.

Se la sottodirectory del modulo o uno qualsiasi dei file creati da Export-PSSession esiste già, il comando ha esito negativo. Per sovrascrivere i file esistenti, utilizzare il parametro Force.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Session <PSSession>

Specifica la sessione PSSession da cui vengono esportati i comandi. Immettere una variabile che contiene un oggetto sessione o un comando che ottiene un oggetto sessione, ad esempio Get-PSSession. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a Export-PSSession.
Output | System.IO.FileInfo Export-PSSession restituisce un elenco di file che comprendono il modulo creato.

Note

Export-PSSession si basa sull'infrastruttura remota di Windows PowerShell. Per utilizzare questo cmdlet, è necessario configurare il computer per la comunicazione remota. Per ulteriori informazioni, vedere about_Remote_Requirements.

Non è possibile utilizzare Export-PSSession per esportare un provider di Windows PowerShell.

I comandi esportati vengono eseguiti in modo implicito nella sessione PSSession da cui sono stati esportati. Tuttavia, i dettagli dell'esecuzione dei comandi in modalità remota sono gestiti interamente da Windows PowerShell. È possibile eseguire i comandi esportati come se si trattasse di comandi locali.

Export-Module acquisisce e salva le informazioni relative alla sessione PSSession nel modulo esportato. Se la sessione PSSession da cui sono stati esportati i comandi viene chiusa quando si importa il modulo e non sono presenti sessioni PSSession attive nello stesso computer, i comandi nel modulo tentano di ricreare la sessione PSSession. Se tale tentativo ha esito negativo, i comandi esportati non verranno eseguiti.

Le informazioni relative alla sessione acquisite e salvate nel modulo da Export-Module non includono le opzioni della sessione, ad esempio quelle specificate nella variabile automatica $PSSessionOption o attraverso i parametri SessionOption del cmdlet New-PSSession, Enter-PSSession o Invoke-Command. Se la sessione PSSession originale viene chiusa quando si importa il modulo, il modulo ne utilizzerà un'altra nello stesso computer, se disponibile. Per consentire l'esecuzione dei comandi importati in una sessione configurata correttamente, creare una sessione PSSession con le opzioni desiderate prima di importare il modulo.

Per trovare i comandi da esportare, Export-PSSession utilizza il cmdlet Invoke-Command per eseguire un comando Get-Command nella sessione PSSession. Per ottenere e salvare i dati di formattazione per i comandi, utilizza i cmdlet Get-FormatData e Export-FormatData. Quando si esegue un comando Export-PSSession, è possibile che vengano visualizzati messaggi di errore da Invoke-Command, Get-Command, Get-FormatData ed Export-FormatData. Inoltre, Export-PSSession non può esportare comandi da una sessione che non include i cmdlet Get-Command, Get-FormatData, Select-Object e Get-Help.

Export-PSSession utilizza il cmdlet Write-Progress per visualizzare l'avanzamento del comando. Durante l'esecuzione del comando, è possibile osservare l'indicatore di stato.

I comandi esportati sono soggetti alle stesse limitazioni degli altri comandi remoti, inclusa l'impossibilità di avviare un programma con interfaccia utente, ad esempio Blocco note.

Poiché i profili di Windows PowerShell non vengono eseguiti nelle sessioni PSSession, i comandi aggiunti da un profilo a una sessione non sono disponibili per Export-PSSession. Per esportare comandi da un profilo, utilizzare un comando Invoke-Command per eseguire manualmente il profilo nella sessione PSSession prima di esportare i comandi.

Il modulo creato da Export-PSSession potrebbe includere un file di formattazione, anche se il comando non importa dati di formattazione. Se il comando non importa dati di formattazione, qualsiasi file di formattazione creato non conterrà dati di formattazione.

Esempio 1

C:\PS>$s = new-pssession -computerName Server01

C:\PS> export-pssession -session $s -outputModule Server01

Descrizione
-----------
Tramite i comandi di questo esempio vengono esportati tutti i comandi da una sessione PSSession nel computer Server01 al modulo Server01 nel computer locale, ad eccezione di quelli con gli stessi nomi dei comandi nella sessione corrente. Vengono inoltre esportati i dati di formattazione per i comandi.

Il primo comando crea una sessione PSSession nel computer Server01. Con il secondo comando vengono esportati i comandi e i dati di formattazione dalla sessione nel modulo Server01.

Esempio 2

C:\PS>$s = new-pssession -ConnectionUri http://exchange.microsoft.com/mailbox -credential exchangeadmin01@hotmail.com -authentication negotiate

C:\PS> export-pssession -session $r -module exch* -commandname get-*, set-* -formattypename * -outputModule $pshome\Modules\Exchange -encoding ASCII

Descrizione
-----------
Con questi comandi vengono esportati i comandi Get e Set da uno snap-in Microsoft Exchange Server in un computer remoto a un modulo di Exchange nella directory $pshome\Modules del computer locale.

L'inserimento del modulo nella directory $pshome\Modules lo rende accessibile a tutti gli utenti del computer.

Esempio 3

C:\PS>$s = new-pssession -computerName Server01 -credential Server01\User01

C:\PS> export-pssession -session $s -outputModule TestCmdlets -type cmdlet -commandname *test* -formattypename *

C:\PS> remove-pssession $s

C:\PS> import-module TestCmdlets

C:\PS> get-help test*

C:\PS> test-files

Descrizione
-----------
Con questi comandi i cmdlet vengono esportati da una sessione PSSession in un computer remoto e vengono salvati in un modulo nel computer locale. I cmdlet vengono quindi aggiunti dal modulo alla sessione corrente per poterli utilizzare.

Con il primo comando una sessione PSSession viene creata nel computer Server01 e salvata nella variabile $s.

Con il secondo comando i cmdlet il cui nome inizia con "Test" vengono esportati dalla sessione PSSession in $s al modulo TestCmdlets nel computer locale.

Nel terzo comando viene utilizzato il cmdlet Remove-PSSession per eliminare la sessione PSSession in $s dalla sessione corrente. Con questo comando viene illustrato che non è necessario che la sessione PSSession sia attiva per utilizzare i comandi importati da essa.

Nel quarto comando, che può essere eseguito in qualsiasi sessione e in qualsiasi momento, viene utilizzato il cmdlet Import-Module per aggiungere alla sessione corrente i cmdlet nel modulo TestCmdlets.psm1.

Nel quinto comando viene utilizzato il cmdlet Get-Help per visualizzare la Guida per i cmdlet il cui nome inizia con "Test". Dopo l'aggiunta dei comandi di un modulo alla sessione corrente, è possibile utilizzare i cmdlet Get-Help e Get-Command per ottenere ulteriori informazioni sui comandi importati, come per qualsiasi comando della sessione.

Nel sesto comando viene utilizzato il cmdlet Test-Files, esportato dal computer Server01 e aggiunto alla sessione.

Benché non sia evidente, il comando Test-Files viene effettivamente eseguito in una sessione remota nel computer dal quale è stato importato. Windows PowerShell crea una sessione dalle informazioni archiviate nel modulo.

Esempio 4

C:\PS>export-pssession -session $s -AllowClobber -outputModule AllCommands

Descrizione
-----------
Con questo comando vengono esportati tutti i comandi e tutti i dati di formattazione dalla sessione PSSession nella variabile $s nella sessione corrente. Viene utilizzato il parametro AllowClobber per includere comandi con lo stesso nome di comandi della sessione corrente.

Esempio 5

C:\PS>$options = New-PSSessionOption -NoMachineProfile

C:\PS> $s = new-pssession -computername Server01 -sessionoption $options

C:\PS> export-pssession -session $s -outputModule Server01

C:\PS> remove-pssession $s

C:\PS> new-pssession -computername Server01 -sessionoption $options

C:\PS> import-module Server01

Descrizione
-----------
In questo esempio viene illustrato come eseguire i comandi esportati in una sessione con determinate opzioni quando la sessione PSSession da cui sono stati esportati i comandi è chiusa.

Quando si utilizza Export-PSSession, le informazioni vengono salvate nella sessione PSSession originale nel modulo creato. Quando si importa il modulo, se la sessione remota originale è chiusa, il modulo utilizzerà qualsiasi sessione remota aperta connessa al computer originale.

Se la sessione corrente non include una sessione remota connessa al computer originale, i comandi nel modulo ristabiliranno una sessione a tale computer. Tuttavia, Export-PSSession non salva nel modulo opzioni speciali, ad esempio quelle impostate mediante il parametro SessionOption di New-PSSession.

Pertanto, se si desidera eseguire i comandi esportati in una sessione remota con determinate opzioni, è necessario creare una sessione remota con le opzioni desiderate prima di importare il modulo.

Nel primo comando viene utilizzato il cmdlet New-PSSessionOption per creare un oggetto PSSessionOption che viene salvato nella variabile $options.

Con il secondo comando viene creata una sessione PSSession che include le opzioni specificate. Viene utilizzato il cmdlet New-PSSession per creare una sessione PSSession nel computer Server01. Viene utilizzato il parametro SessionOption per inviare l'oggetto opzione in $options.

Nel terzo comando viene utilizzato il cmdlet Export-PSSession per esportare comandi dalla sessione PSSession in $s al modulo Server01.

Nel quarto comando viene utilizzato il cmdlet Remove-PSSession per eliminare la sessione PSSession nella variabile $s.

Nel quinto comando viene utilizzato il cmdlet New-PSSession per creare una nuova sessione PSSession che si connette al computer Server01. In questa sessione PSSession vengono inoltre utilizzate le opzioni di sessione nella variabile $options.

Nel sesto comando viene utilizzato il cmdlet Import-Module per importare i comandi dal modulo Server01. I comandi nel modulo vengono eseguiti nella sessione PSSession nel computer Server01.

Vedere anche

  • about_Command_Precedence
  • Import-PSSession
  • New-PSSession
  • Import-Module
  • Invoke-Command
  • about_PSSessions


ForEach-Object

Esegue un'operazione su ogni set di oggetti di input.

Sintassi

ForEach-Object [-Process] <ScriptBlock[]> [-Begin <scriptblock>] [-End <scriptblock>] [-InputObject <psobject>] [<CommonParameters>]

Descrizione

Il cmdlet ForEach-Object esegue un'operazione in ogni set di oggetti di input. Gli oggetti di input possono essere reindirizzati al cmdlet o specificati utilizzando il parametro InputObject.

L'operazione da eseguire viene descritta in un blocco di script fornito al cmdlet come valore del parametro Process. Il blocco di script può contenere qualsiasi script di Windows PowerShell.

All'interno del blocco di script l'oggetto di input corrente è rappresentato dalla variabile $_.

Oltre all'utilizzo del blocco di script in cui vengono descritte le operazioni da eseguire in ogni oggetto di input, è possibile fornire altri due blocchi di script. Uno, specificato come valore del parametro Begin, viene eseguito prima dell'elaborazione del primo oggetto di input. L'altro, specificato come valore del parametro End, viene eseguito dopo l'elaborazione dell'ultimo oggetto di input.

I risultati della valutazione di tutti i blocchi di script, inclusi quelli specificati con Begin ed End, vengono passati attraverso la pipeline.

Parametri

-Begin <scriptblock>

Specifica un blocco di script da eseguire prima dell'elaborazione di qualsiasi oggetto di input.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-End <scriptblock>

Specifica un blocco di script da eseguire dopo l'elaborazione di tutti gli oggetti di input.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Accetta un oggetto su cui il blocco di script specificato nel parametro Process può eseguire operazioni. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Process <ScriptBlock[]>

Specifica il blocco di script applicato a ogni oggetto in ingresso.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare qualsiasi oggetto a ForEach-Object.
Output | System.Management.Automation.PSObject Gli oggetti restituiti da ForEach-Object vengono determinati dall'input.

Esempio 1

C:\PS>30000,56798,12432 | foreach-object -process {$_/1024}

Descrizione
-----------
Tramite questo comando viene accettata una matrice di valori integer, viene diviso ogni valore per 1024 e vengono visualizzati i risultati.

Esempio 2

C:\PS>get-childitem C:\ | foreach-object -process { $_.length / 1024 }

Descrizione
-----------
Tramite questo comando vengono recuperati i file e le directory nella radice dell'unità C: e ne vengono restituite e visualizzate le dimensioni di ciascuno di essi. Gli zero rappresentano le directory in cui le dimensioni dei file non sono disponibili.

Esempio 3

C:\PS>$events = get-eventlog -logname system -newest 1000

C:\PS> $events | foreach-object -begin {get-date} -process {out-file -filepath events.txt -append -inputobject $_.message} -end {get-date}

Descrizione
-----------
Tramite questo comando vengono recuperati i 1000 eventi più recenti dal registro eventi di sistema e tali eventi vengono quindi archiviati nella variabile $events. Gli eventi vengono quindi reindirizzati al cmdlet ForEach-Object. Tramite il parametro Begin vengono visualizzate la data e l'ora correnti. Tramite il parametro Process viene quindi utilizzato il cmdlet Out-File per creare un file di testo denominato events.txt e vengono archiviate le proprietà di messaggio di ognuno degli eventi inclusi nel file. Viene infine utilizzato il parametro End per visualizzare la data e l'ora al termine di tutte le operazioni di elaborazione.

Esempio 4

C:\PS>get-itemproperty -path hkcu:\Network\* | foreach-object {set-itemproperty -path $_.pspath -name RemotePath -value $_.RemotePath.ToUpper();}

Descrizione
-----------
Tramite questo comando viene impostato il valore della voce del Registro di sistema RemotePath in tutte le sottochiavi della chiave HKCU:\Network su testo maiuscolo. È possibile utilizzare questo formato per modificare il formato o il contenuto del valore di una voce del Registro di sistema.

Ogni sottochiave della chiave Network rappresenta un'unità di rete di cui è stato eseguito il mapping che si riconnetterà al momento dell'accesso. La voce RemotePath contiene il percorso UNC dell'unità collegata. Ad esempio, se si esegue il mapping dell'unità E: a \\Server\Share, sarà presente una sottochiave E di HKCU:\Network e il valore della voce del Registro di sistema RemotePath nella sottochiave E sarà \\Server\Share.

Tramite questo comando viene utilizzato il cmdlet Get-ItemProperty per ottenere tutte le sottochiavi della chiave Network e il cmdlet Set-ItemProperty per modificare il valore della voce del Registro di sistema RemotePath in ogni chiave. Nel comando Set-ItemProperty, il percorso è il valore della proprietà PSPath della chiave del Registro di sistema. (Si tratta di una proprietà dell'oggetto Microsoft .NET Framework che rappresenta la chiave del Registro di sistema; non è una voce del Registro di sistema). Nel comando viene utilizzato il metodo ToUpper() del valore RemotePath, che corrisponde a una stringa (REG_SZ).

Poiché Set-ItemProperty modifica la proprietà di ogni chiave, è necessario il cmdlet ForEach-Object per accedere alla proprietà.


Format-Custom

Utilizza una visualizzazione personalizzata per formattare l'output.

Sintassi

Format-Custom [[-Property] <Object[]>] [-Depth <int>] [-DisplayError] [-Expand <string>] [-Force] [-GroupBy <Object>] [-InputObject <psobject>] [-ShowError] [-View <string>] [<CommonParameters>]

Descrizione

Il cmdlet Format-Custom formatta l'output di un comando secondo la definizione di una visualizzazione alternativa. Format-Custom è progettato in modo da restituire visualizzazioni che non corrispondono solo a tabelle o a elenchi. È possibile utilizzare le visualizzazioni definite nei file *format.PS1XML della directory Windows PowerShell oppure creare visualizzazioni personalizzate in nuovi file PS1XML e utilizzare il cmdlet Update-FormatData per aggiungerle a Windows PowerShell.

Parametri

-Depth <int>

Specifica il numero di colonne della visualizzazione.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-DisplayError

Visualizza gli errori sulla riga di comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Expand <string>

Formatta l'oggetto insieme, nonché gli oggetti inclusi nell'insieme. Questo parametro è progettato in modo da formattare oggetti che supportano l'interfaccia ICollection (System.Collections). Il valore predefinito è EnumOnly.

I valori validi sono:

-- EnumOnly: visualizza le proprietà degli oggetti presenti nella raccolta.

-- CoreOnly: visualizza le proprietà dell'oggetto raccolta.

-- Both: visualizza le proprietà dell'oggetto raccolta e degli oggetti inclusi nella raccolta.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Indica al cmdlet di visualizzare tutte le informazioni sull'errore. Utilizzare con il parametro DisplayError o ShowError. Per impostazione predefinita, quando un oggetto errore viene scritto nei flussi di errore o di visualizzazione, solo una parte delle informazioni sull'errore viene visualizzata.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-GroupBy <Object>

Formatta l'output in gruppi basati su un valore o una proprietà condivisa. Immettere un'espressione o una proprietà dell'output.

Il valore del parametro GroupBy può essere una nuova proprietà calcolata. Per creare una proprietà calcolata, utilizzare una tabella hash. Le chiavi valide sono le seguenti:

-- Name (o Label) <stringa>

-- Expression <stringa> o <blocco di script>

-- FormatString <stringa>

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica gli oggetti da formattare. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Property <Object[]>

Specifica le proprietà dell'oggetto incluse nella visualizzazione e l'ordine in cui vengono visualizzate. È consentito l'utilizzo di caratteri jolly.

Se questo parametro viene omesso, le proprietà incluse nella visualizzazione dipenderanno dall'oggetto da visualizzare. Il nome del parametro ("Property") è facoltativo. Non è possibile utilizzare i parametri Property e View nello stesso comando.

Il valore del parametro Property può essere una nuova proprietà calcolata. Per creare una proprietà calcolata, utilizzare una tabella hash. Le chiavi valide sono le seguenti:

-- Expression <stringa> o <blocco di script>

-- Depth <int32>

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ShowError

Invia gli errori attraverso la pipeline.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-View <string>

Specifica il nome di un formato o di una visualizzazione alternativa. Se si omette questo parametro, Format-Custom utilizza una visualizzazione personalizzata predefinita. Non è possibile utilizzare i parametri Property e View nello stesso comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare qualsiasi oggetto a Format-Custom.
Output | Microsoft.PowerShell.Commands.Internal.Format Format-Custom restituisce gli oggetti formato che rappresentano la visualizzazione.

Note

Format-Custom è progettato in modo da restituire visualizzazioni che non corrispondono solo a tabelle o a elenchi. Per ottenere una visualizzazione tabella alternativa, utilizzare Format-Table. Per ottenere una visualizzazione elenco alternativa, utilizzare Format-List.

È inoltre possibile fare riferimento a Format-Custom tramite il relativo alias predefinito "fc". Per ulteriori informazioni, vedere about_Aliases.

Per il parametro GroupBy si presuppone che gli oggetti siano ordinati. Prima di utilizzare Format-Custom per raggruppare gli oggetti, ordinarli con Sort-Object.

Esempio 1

C:\PS>get-command start-transcript | format-custom -view MyView

Descrizione
-----------
Tramite questo comando le informazioni sul cmdlet Start-Transcript vengono formattate nel formato definito dalla visualizzazione personalizzata MyView, creata dall'utente. Per la corretta esecuzione di questo comando, è necessario creare prima un nuovo file PS1XML, definire la visualizzazione MyView, quindi utilizzare il comando Update-FormatData per aggiungere il file PS1XML a Windows PowerShell.

Esempio 2

C:\PS>get-process Winlogon | format-custom

Descrizione
-----------
Tramite questo comando le informazioni sul processo Winlogon verranno formattate in una visualizzazione personalizzata alternativa. Poiché per il comando non viene utilizzato il parametro View, Format-Custom utilizza una visualizzazione personalizzata predefinita per la formattazione dei dati.


Format-List

Formatta l'output come un elenco di proprietà in cui ogni proprietà è visualizzata su una nuova riga.

Sintassi

Format-List [[-Property] <Object[]>] [-DisplayError] [-Expand <string>] [-Force] [-GroupBy <Object>] [-InputObject <psobject>] [-ShowError] [-View <string>] [<CommonParameters>]

Descrizione

Il cmdlet Format-List formatta l'output di un comando come un elenco di proprietà in cui ogni proprietà viene visualizzata su una riga distinta. È possibile utilizzare Format-List per formattare e visualizzare come elenco (format-list *) tutte le proprietà o solo le proprietà selezionate di un oggetto.

Poiché per ogni voce di un elenco è disponibile più spazio rispetto a una tabella, nell'elenco verrà visualizzato un numero maggiore di proprietà e i valori delle proprietà saranno meno soggetti a troncamento.

Parametri

-DisplayError

Visualizza gli errori sulla riga di comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Expand <string>

Formatta l'oggetto insieme, nonché gli oggetti inclusi nell'insieme. Questo parametro è progettato in modo da formattare oggetti che supportano l'interfaccia ICollection (System.Collections). Il valore predefinito è EnumOnly.

I valori validi sono:

-- EnumOnly: visualizza le proprietà degli oggetti presenti nella raccolta.

-- CoreOnly: visualizza le proprietà dell'oggetto raccolta.

-- Both: visualizza le proprietà dell'oggetto raccolta e degli oggetti inclusi nella raccolta.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Indica al cmdlet di visualizzare tutte le informazioni sull'errore. Utilizzare con il parametro DisplayError o ShowError. Per impostazione predefinita, quando un oggetto errore viene scritto nei flussi di errore o di visualizzazione, solo una parte delle informazioni sull'errore viene visualizzata.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-GroupBy <Object>

Formatta l'output in gruppi basati su un valore o una proprietà condivisa. Immettere un'espressione o una proprietà dell'output.

Il valore del parametro GroupBy può essere una nuova proprietà calcolata. Per creare una proprietà calcolata, utilizzare una tabella hash. Le chiavi valide sono le seguenti:

-- Name (o Label) <stringa>

-- Expression <stringa> o <blocco di script>

-- FormatString <stringa>

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica gli oggetti da formattare. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Property <Object[]>

Specifica le proprietà dell'oggetto incluse nella visualizzazione e l'ordine in cui vengono visualizzate. È consentito l'utilizzo di caratteri jolly.

Se questo parametro viene omesso, le proprietà incluse nella visualizzazione dipenderanno dall'oggetto da visualizzare. Il nome del parametro ("Property") è facoltativo. Non è possibile utilizzare i parametri Property e View nello stesso comando.

Il valore del parametro Property può essere una nuova proprietà calcolata. Per creare una proprietà calcolata, utilizzare una tabella hash. Le chiavi valide sono le seguenti:

-- Name (o Label) <stringa>

-- Expression <stringa> o <blocco di script>

-- FormatString <stringa>

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ShowError

Invia gli errori attraverso la pipeline.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-View <string>

Specifica il nome di un formato elenco o di una "visualizzazione" alternativa. Non è possibile utilizzare i parametri Property e View nello stesso comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare qualsiasi oggetto a Format-List.
Output | Microsoft.PowerShell.Commands.Internal.Format Format-List restituisce gli oggetti formato che rappresentano l'elenco.

Note

È inoltre possibile fare riferimento a Format-List tramite il relativo alias predefinito "FL". Per ulteriori informazioni, vedere about_Aliases.

I cmdlet di formato, ad esempio Format-List, consentono di specificare la disposizione dei dati da visualizzare, ma non di visualizzarli. Per la visualizzazione dei dati vengono utilizzate altre funzionalità di output di Windows PowerShell, nonché i cmdlet che contengono il verbo Out (cmdlet Out), ad esempio Out-Host, Out-File e Out-Printer.

Se non si utilizza un cmdlet di formato, verrà applicato il formato predefinito di ciascun oggetto visualizzato in Windows PowerShell.

Per il parametro GroupBy si presuppone che gli oggetti siano ordinati. Prima di utilizzare Format-Custom per raggruppare gli oggetti, ordinarli con Sort-Object.

Il parametro View consente di specificare un formato alternativo per la tabella. È possibile utilizzare le visualizzazioni definite nei file *.format.PS1XML della directory Windows PowerShell oppure creare visualizzazioni personalizzate in nuovi file PS1XML e utilizzare il cmdlet Update-FormatData per includerle in Windows PowerShell.

Per la visualizzazione alternativa del parametro View deve essere utilizzato il formato elenco. In caso contrario, il comando non verrà eseguito. Se la visualizzazione alternativa è una tabella, utilizzare Format-Table. Se la visualizzazione alternativa non è né un elenco né una tabella, utilizzare Format-Custom.

Esempio 1

C:\PS>get-service | format-list

Descrizione
-----------
Tramite questo comando le informazioni relative ai servizi disponibili nel computer locale verranno formattate come elenco. Per impostazione predefinita, i servizi vengono formattati come tabella. Il cmdlet Get-Service ottiene gli oggetti che rappresentano i servizi disponibili nel computer. L'operatore pipeline (|) passa i risultati a Format-List attraverso la pipeline. Tramite il comando Format-List, infine, le informazioni relative ai servizi vengono formattate come elenco e inviate al cmdlet output predefinito per la visualizzazione.

Esempio 2

C:\PS>$a = get-childitem $pshome\*.ps1xml

Descrizione
-----------
Tramite questi comandi le informazioni sui file PS1XML della directory Windows PowerShell vengono visualizzate come elenco. Tramite il primo comando vengono ottenuti gli oggetti che rappresentano i file che verranno quindi archiviati nella variabile $a. Nel secondo comando viene utilizzato Format-List per formattare le informazioni relative agli oggetti archiviati in $a. Viene utilizzato il parametro InputObject per passare la variabile a Format-List, che invia l'output formattato al cmdlet output predefinito per la visualizzazione.

Esempio 3

C:\PS>get-process | format-list -property name, basepriority, priorityclass

Descrizione
-----------
Tramite questo comando verranno visualizzati il nome, la priorità di base e la classe di priorità di ogni processo disponibile nel computer. Verrà utilizzato il cmdlet Get-Process per ottenere un oggetto che rappresenta il singolo processo. L'operatore pipeline (|) passa gli oggetti processo attraverso la pipeline a Format-List, attraverso cui i processi vengono formattati come un elenco delle proprietà specificate. Il nome del parametro "Property" è facoltativo, pertanto può essere omesso.

Esempio 4

C:\PS>get-process winlogon | format-list -property *

Descrizione
-----------
Tramite questo comando verranno visualizzate tutte le proprietà del processo Winlogon. Viene utilizzato il cmdlet Get-Process per ottenere un oggetto che rappresenta il processo Winlogon. L'operatore pipeline (|) passa l'oggetto processo Winlogon a Format-List attraverso la pipeline. Verranno utilizzati il parametro Property per specificare le proprietà e * per indicare tutte le proprietà. Poiché il nome del parametro Property è facoltativo, è possibile ometterlo e digitare il comando come: "format-list * ". Format-List automaticamente invia i risultati al cmdlet di output predefinito per la visualizzazione.


Format-Table

Formatta l'output come tabella.

Sintassi

Format-Table [[-Property] <Object[]>] [-AutoSize] [-DisplayError] [-Expand <string>] [-Force] [-GroupBy <Object>] [-HideTableHeaders] [-InputObject <psobject>] [-ShowError] [-View <string>] [-Wrap] [<CommonParameters>]

Descrizione

Il cmdlet Format-Table formatta l'output di un comando come tabella le cui colonne includono proprietà selezionate dell'oggetto. Il tipo dell'oggetto determina il layout predefinito e le proprietà visualizzate in ciascuna colonna. È tuttavia possibile utilizzare il parametro Property per selezionare le proprietà che si desidera visualizzare.

È inoltre possibile utilizzare una tabella hash per aggiungere proprietà calcolate a un oggetto prima di visualizzarlo e per specificare le intestazioni di colonna nella tabella. Per aggiungere una proprietà calcolata, utilizzare i parametri Property o GroupBy.

Parametri

-AutoSize

Adatta le dimensioni e il numero delle colonne in base alla larghezza dei dati. Per impostazione predefinita, le dimensioni e il numero delle colonne sono determinate dalla visualizzazione.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-DisplayError

Visualizza gli errori sulla riga di comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Expand <string>

Formatta l'oggetto insieme, nonché gli oggetti inclusi nell'insieme. Questo parametro è progettato in modo da formattare oggetti che supportano l'interfaccia ICollection (System.Collections). Il valore predefinito è EnumOnly.

I valori validi sono:

-- EnumOnly: visualizza le proprietà degli oggetti presenti nella raccolta.

-- CoreOnly: visualizza le proprietà dell'oggetto raccolta.

-- Both: visualizza le proprietà dell'oggetto raccolta e degli oggetti inclusi nella raccolta.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Indica al cmdlet di visualizzare tutte le informazioni sull'errore. Utilizzare con il parametro DisplayError o ShowError. Per impostazione predefinita, quando un oggetto errore viene scritto nei flussi di errore o di visualizzazione, solo una parte delle informazioni sull'errore viene visualizzata.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-GroupBy <Object>

Dispone l'output ordinato in tabelle separate in base al valore di una proprietà. Ad esempio, è possibile utilizzare GroupBy per elencare i servizi in tabelle separate in base al relativo stato.

Immettere un'espressione o una proprietà dell'output. È necessario ordinare l'output prima di inviarlo a Format-Table.

Il valore del parametro GroupBy può essere una nuova proprietà calcolata. Per creare una proprietà calcolata, utilizzare una tabella hash. Le chiavi valide sono le seguenti:

-- Name (o Label) <stringa>

-- Expression <stringa> o <blocco di script>

-- FormatString <stringa>

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-HideTableHeaders

Omette le intestazioni di colonna dalla tabella.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica gli oggetti da formattare. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Property <Object[]>

Specifica le proprietà dell'oggetto incluse nella visualizzazione e l'ordine in cui vengono visualizzate. Digitare uno o più nomi di proprietà (separati da virgole) o utilizzare una tabella hash per visualizzare una proprietà calcolata. È consentito l'utilizzo di caratteri jolly.

Se questo parametro viene omesso, le proprietà incluse nella visualizzazione dipenderanno dall'oggetto da visualizzare. Il nome del parametro ("Property") è facoltativo. Non è possibile utilizzare i parametri Property e View nello stesso comando.

Il valore del parametro Property può essere una nuova proprietà calcolata. Per creare una proprietà calcolata, utilizzare una tabella hash. Le chiavi valide sono le seguenti:

-- Name (o Label) <stringa>

-- Expression <stringa> o <blocco di script>

-- FormatString <stringa>

-- Width <int32>

-- Alignment (il valore può essere "Left", "Center" o "Right")

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ShowError

Invia gli errori attraverso la pipeline.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-View <string>

Specifica il nome di un formato tabella o di una "visualizzazione" alternativa. Non è possibile utilizzare i parametri Property e View nello stesso comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Wrap

Visualizza sulla riga successiva il testo che supera la larghezza della colonna. Per impostazione predefinita, il testo che supera la larghezza della colonna viene troncato.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare qualsiasi oggetto a Format-Table.
Output | Microsoft.PowerShell.Commands.Internal.Format Format-Table restituisce gli oggetti formato che rappresentano la tabella.

Note

È inoltre possibile fare riferimento a Format-Table tramite il relativo alias predefinito "FT". Per ulteriori informazioni, vedere about_Aliases.

Per il parametro GroupBy si presuppone che gli oggetti siano ordinati. Prima di utilizzare Format-Custom per raggruppare gli oggetti, ordinarli con Sort-Object.

Il parametro View consente di specificare un formato alternativo per la tabella. È possibile utilizzare le visualizzazioni definite nei file *.format.PS1XML della directory Windows PowerShell oppure creare visualizzazioni personalizzate in nuovi file PS1XML e utilizzare il cmdlet Update-FormatData per includerle in Windows PowerShell.

Per la visualizzazione alternativa del parametro View deve essere utilizzato il formato tabella. In caso contrario, il comando non verrà eseguito. Se la visualizzazione alternativa è un elenco, utilizzare Format-List. Se la visualizzazione alternativa non è né un elenco né una tabella, utilizzare Format-Custom.

Esempio 1

C:\PS>get-pssnapin | format-table -auto

Descrizione
-----------
Tramite questo comando le informazioni sugli snap-in di Windows PowerShell verranno formattate come tabella. Per impostazione predefinita, le informazioni vengono formattate come elenco. Verrà utilizzato il cmdlet Get-PSSnapin per ottenere gli oggetti che rappresentano gli snap-in. Verrà quindi utilizzato l'operatore pipeline (|) per passare l'oggetto al comando Format-Table. Format-Table formatta gli oggetti in una tabella. Il parametro Autosize consente di adattare la larghezza delle colonne per ridurre al minimo il troncamento.

Esempio 2

C:\PS>get-process | sort-object -property basepriority | format-table -groupby basepriority -wrap

Descrizione
-----------
Con questo comando i processi disponibili nel computer verranno visualizzati in gruppi con la stessa priorità di base.

Il cmdlet Get-Process ottiene gli oggetti che rappresentano ciascun processo nel computer. L'operatore pipeline (|) passa l'oggetto al cmdlet Sort-Object che ordina gli oggetti in base alla relativa priorità di base.

I risultati vengono passati al comando Format-Table da un altro operatore pipeline. Il parametro GroupBy consente di disporre in gruppi i dati relativi ai processi in base al valore della relativa proprietà BasePriority. Il parametro Wrap garantisce che i dati non vengano troncati.

Esempio 3

C:\PS>get-process | sort-object starttime | format-table -view starttime

Descrizione
-----------
Tramite questo comando le informazioni sui processi disponibili nel computer verranno visualizzate in gruppi in base alla data di inizio del processo. Verrà utilizzato il cmdlet Get-Process per ottenere gli oggetti che rappresentano i processi disponibili nel computer. Verrà quindi utilizzato l'operatore pipeline (|) per inviare l'output di Get-Process al cmdlet Sort-Object, che ordinerà i dati in base alla proprietà StartTime. Verrà infine utilizzato un altro operatore pipeline per inviare i risultati ordinati a Format-Table.

Verrà utilizzato il parametro View per selezionare la visualizzazione StartTime definita nel file di formattazione DotNetTypes.format.ps1xml per gli oggetti System.Diagnostics.Process, come quelli restituiti da Get-Process. Questa visualizzazione consente di convertire la proprietà StartTime del processo in una data in formato breve e quindi di raggruppare i processi in base alla data di inizio.

Il file di formattazione DotNetTypes.format.ps1xml include inoltre una visualizzazione Priority per i processi. È infine possibile creare file format.ps1xml con visualizzazioni personalizzate.

Esempio 4

C:\PS>get-service | format-table -property Name, DependentServices

Descrizione
-----------
Tramite questo comando tutti i servizi disponibili nel computer verranno visualizzati in una tabella con due colonne denominate Name e DependentServices. Viene utilizzato il cmdlet Get-Service per ottenere tutti i servizi disponibili nel computer. Verrà quindi utilizzato un operatore pipeline (|) per inviare i risultati al cmdlet Format-Table, che formatterà l'output in una tabella. Il parametro Property specifica le proprietà visualizzate nelle colonne della tabella. Il nome del parametro Property è facoltativo, pertanto può essere omesso ("format-table name, dependentservices").

Property e DependentServices sono solo due delle proprietà degli oggetti servizio. Per visualizzare tutte le proprietà, digitare "get-service | get-member".

Esempio 5

C:\PS>get-process notepad | format-table ProcessName, `
@{Label="TotalRunningTime"; Expression={(get-date) - $_.StartTime}}

Descrizione
-----------
Tramite questo comando verrà illustrato come utilizzare una proprietà calcolata in una tabella. Verrà infatti visualizzata una tabella in cui è indicato il nome del processo e il tempo totale di esecuzione di tutti i processi Notepad disponibili nel computer locale. Il tempo totale di esecuzione viene calcolato sottraendo l'ora di inizio di ogni processo dall'ora corrente.

In questo comando verrà utilizzato il cmdlet Get-Process per ottenere tutti i processi denominati "Notepad" disponibili nel computer locale. I risultati vengono inviati dall'operatore pipeline (|) a Format-Table, tramite cui viene visualizzata una tabella con due colonne: ProcessName, una proprietà standard dei processi e TotalRunningTime, una proprietà calcolata.

La proprietà TotalRunningTime verrà specificata tramite una tabella hash a due chiavi, Label ed Expression. Alla chiave Label verrà assegnato il nome della proprietà, mentre alla chiave Expression verrà assegnato il calcolo. Tramite l'espressione verrà ottenuta la proprietà StartTime di ogni oggetto processo che verrà sottratta dal risultato dell'esecuzione di un comando Get-Date, che consente di ottenere la data e l'ora corrente.

Esempio 6

C:\PS>$processes = get-wmiobject -ComputerName Server01 win32_process -filter "name='notepad.exe'"

C:\PS> $processes | format-table ProcessName, @{ Label = "Total  Running Time"; `
Expression={(get-date) - $_.ConvertToDateTime($_.CreationDate)}}

Descrizione
-----------
Questi comandi sono simili al precedente, ma utilizzano il cmdlet Get-WmiObject e la classe Win32_Process per visualizzare informazioni sui processi Notepad disponibili in un computer remoto.

Nel primo comando viene utilizzato il cmdlet Get-WmiObject per ottenere le istanze della classe Win32_Process di Strumentazione gestione Windows (WMI) che descrive tutti i processi disponibili nel computer Server01 denominati Notepad.exe. Le informazioni sui processi verranno archiviate nella variabile $processes.

Nel secondo comando viene utilizzato l'operatore pipeline (|) per inviare le informazioni sui processi archiviate nella variabile $processes al cmdlet Format-Table che consentirà di visualizzare la proprietà ProcessName di ciascun processo unitamente a una nuova proprietà calcolata.

Il nome della nuova proprietà calcolata, Total Running Time, viene assegnato dal comando alla chiave Label. Verrà quindi utilizzato il blocco di script assegnato alla chiave Expression per calcolare l'intervallo di esecuzione del processo sottraendo alla data corrente la data di creazione del processo. Tramite il cmdlet Get-Date viene ottenuta la data corrente. Verrà utilizzato il metodo ConvertToDateTime per convertire la proprietà CreationDate dell'oggetto Win32_Process da un oggetto CIM_DATETIME di WMI in un oggetto DateTime di Microsoft .NET Framework che potrà essere confrontato con l'output di Get-Date. La data di creazione convertita verrà quindi sottratta dalla data corrente. Il risultato corrisponderà al valore di Total Running Time.

I caratteri di apice inverso (`) sono caratteri di continuazione della riga.

Vedere anche

  • Format-List
  • Format-Wide
  • Format-Custom


Format-Wide

Formatta gli oggetti come tabella ampia in cui è visualizzata una sola proprietà di ciascun oggetto.

Sintassi

Format-Wide [[-Property] <Object>] [-AutoSize] [-Column <int>] [-DisplayError] [-Expand <string>] [-Force] [-GroupBy <Object>] [-InputObject <psobject>] [-ShowError] [-View <string>] [<CommonParameters>]

Descrizione

Il cmdlet Format-Wide consente di formattare gli oggetti come tabella ampia in cui viene visualizzata una sola proprietà di ciascun oggetto. È possibile utilizzare il parametro Property per determinare la proprietà che verrà visualizzata.

Parametri

-AutoSize

Adatta le dimensioni e il numero delle colonne in base alla larghezza dei dati. Per impostazione predefinita, le dimensioni e il numero delle colonne sono determinate dalla visualizzazione. Non è possibile utilizzare i parametri AutoSize e Column nello stesso comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Column <int>

Specifica il numero di colonne della visualizzazione. Non è possibile utilizzare i parametri AutoSize e Column nello stesso comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-DisplayError

Visualizza gli errori sulla riga di comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Expand <string>

Formatta l'oggetto insieme, nonché gli oggetti inclusi nell'insieme. Questo parametro è progettato in modo da formattare oggetti che supportano l'interfaccia ICollection (System.Collections). Il valore predefinito è EnumOnly.

I valori validi sono:

-- EnumOnly: visualizza le proprietà degli oggetti presenti nella raccolta.

-- CoreOnly: visualizza le proprietà dell'oggetto raccolta.

-- Both: visualizza le proprietà dell'oggetto raccolta e degli oggetti inclusi nella raccolta.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Ignora le restrizioni che impediscono la corretta esecuzione del comando, purché le modifiche non abbiano effetti negativi sulla sicurezza. Force, ad esempio, ignora l'attributo di sola lettura o crea directory per completare un percorso di file, ma non tenta di modificare le autorizzazioni per il file.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-GroupBy <Object>

Formatta l'output in gruppi basati su un valore o una proprietà condivisa. Immettere un'espressione o una proprietà dell'output.

Il valore del parametro GroupBy può essere una nuova proprietà calcolata. Per creare una proprietà calcolata, utilizzare una tabella hash. Le chiavi valide sono le seguenti:

-- Name (o Label) <stringa>

-- Expression <stringa> o <blocco di script>

-- FormatString <stringa>

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica gli oggetti da formattare. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Property <Object>

Specifica le proprietà dell'oggetto incluse nella visualizzazione e l'ordine in cui vengono visualizzate. È consentito l'utilizzo di caratteri jolly.

Se questo parametro viene omesso, le proprietà incluse nella visualizzazione dipenderanno dall'oggetto da visualizzare. Il nome del parametro ("Property") è facoltativo. Non è possibile utilizzare i parametri Property e View nello stesso comando.

Il valore del parametro Property può essere una nuova proprietà calcolata. Per creare una proprietà calcolata, utilizzare una tabella hash. Le chiavi valide sono le seguenti:

-- Expression <stringa> o <blocco di script>

-- FormatString <stringa>

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ShowError

Invia gli errori attraverso la pipeline.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-View <string>

Specifica il nome di un formato tabella o di una "visualizzazione" alternativa. Non è possibile utilizzare i parametri Property e View nello stesso comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare qualsiasi oggetto a Format-Wide.
Output | Microsoft.PowerShell.Commands.Internal.Format Format-Wide restituisce gli oggetti formato che rappresentano la tabella.

Note

È inoltre possibile fare riferimento a Format-Wide tramite il relativo alias predefinito "fw". Per ulteriori informazioni, vedere about_Aliases.

Per il parametro GroupBy si presuppone che gli oggetti siano ordinati. Prima di utilizzare Format-Custom per raggruppare gli oggetti, ordinarli con Sort-Object.

Il parametro -View consente di specificare un formato alternativo per la tabella. È possibile utilizzare le visualizzazioni definite nei file *.format.PS1XML della directory Windows PowerShell oppure creare visualizzazioni personalizzate in nuovi file PS1XML e utilizzare il cmdlet Update-FormatData per includerle in Windows PowerShell.

Per la visualizzazione alternativa del parametro View deve essere utilizzato il formato tabella. In caso contrario, il comando non verrà eseguito. Se la visualizzazione alternativa è un elenco, utilizzare Format-List. Se la visualizzazione alternativa non è né un elenco né una tabella, utilizzare Format-Custom.

Esempio 1

C:\PS>get-childitem | format-wide -column 3

Descrizione
-----------
Tramite questo comando i nomi dei file presenti nella directory corrente verranno visualizzati in tre colonne che occupano tutta la schermata. Verrà utilizzato il cmdlet Get-ChildItem per ottenere gli oggetti che rappresentano i singoli file presenti nella directory. Verrà quindi utilizzato l'operatore pipeline (|) per passare gli oggetti file attraverso la pipeline a Format-Wide, tramite il quale verranno formattati per l'output. Il numero di colonne verrà specificato nel parametro Column.

Esempio 2

C:\PS>get-childitem HKCU:\software\microsoft | format-wide -property pschildname -autosize

Descrizione
-----------
Tramite questo comando verranno visualizzati i nomi delle chiavi del Registro della chiave HKEY_CURRENT_USER\Software\Microsoft. Verrà utilizzato il cmdlet Get-ChildItem per ottenere gli oggetti che rappresentano le chiavi. Il percorso verrà specificato come "HKCU:", ovvero una delle unità esposte dal provider Registry di Windows PowerShell, seguito dal percorso della chiave. Verrà quindi utilizzato l'operatore pipeline (|) per passare gli oggetti chiave del Registro di sistema attraverso la pipeline a Format-Wide, tramite il quale verranno formattati per l'output. Per specificare il nome della proprietà, verrà utilizzato il parametro Property, mentre il parametro Autosize consentirà di adattare la larghezza delle colonne in modo che risultino facilmente leggibili.


Get-Acl

Ottiene il descrittore di sicurezza per una risorsa, ad esempio un file o una chiave del Registro di sistema.

Sintassi

Get-Acl [[-Path] <string[]>] [-Audit] [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Get-Acl ottiene oggetti che rappresentano il descrittore di sicurezza di un file o di una risorsa. Tale descrittore contiene gli elenchi di controllo di accesso (ACL, Access Control List) della risorsa. L'elenco di controllo di accesso specifica le autorizzazioni di cui devono disporre utenti e gruppi di utenti per accedere alla risorsa.

Parametri

-Audit

Ottiene i dati di controllo per il descrittore di sicurezza dall'elenco di controllo di accesso di sistema (SACL, System Access Control List).

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Recupera unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso di una risorsa. Get-Acl ottiene il descrittore di sicurezza della risorsa indicata dal percorso. È consentito l'utilizzo di caratteri jolly. Se si omette il parametro Path, Get-Acl ottiene il descrittore di sicurezza della directory corrente.

Il nome del parametro ("Path") è facoltativo.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso a Get-Acl.
Output | System.Security.AccessControl Get-Acl restituisce un oggetto che rappresenta gli elenchi di controllo di accesso ottenuti. Il tipo di oggetto dipende dal tipo di elenco di controllo di accesso.

Note

Per impostazione predefinita, Get-Acl visualizza il percorso della risorsa in Windows PowerShell (<provider>::<percorso-risorsa>), il proprietario della risorsa e un elenco di accesso, ovvero un elenco (matrice) delle voci di controllo di accesso presenti nell'elenco di controllo di accesso discrezionale (DACL, Discretionary Access Control List) per la risorsa. L'elenco DACL è controllato dal proprietario della risorsa.

Quando si formatta il risultato come elenco, ("get-acl | Format-List"), oltre al percorso, al proprietario e all'elenco di accesso, in Windows PowerShell vengono visualizzati i campi seguenti:

-- Group: gruppo di sicurezza del proprietario.

-- Audit: elenco (matrice) di voci dell'elenco di controllo di accesso di sistema (SACL, System Access Control List). L'elenco SACL specifica i tipi di tentativi di accesso per i quali in Windows vengono generati record di controllo.

-- Sddl: descrittore di sicurezza della risorsa visualizzata in una singola stringa di testo in formato SDDL (Security Descriptor Definition Language). Per recuperare questi dati, in Windows PowerShell viene utilizzato il metodo GetSddlForm dei descrittori di sicurezza.

Poiché il cmdlet Get-Acl è supportato dai provider FileSystem e Registry, è possibile utilizzare Get-Acl per visualizzare l'ACL degli oggetti del file system, ad esempio file e directory, e degli oggetti del Registro di sistema, ad esempio voci e chiavi.

Esempio 1

C:\PS>get-acl C:\windows

Descrizione
-----------
Tramite questo comando viene ottenuto il descrittore di sicurezza della directory C:Windows.

Esempio 2

C:\PS>get-acl C:\Windows\k*.log | format-list -property PSPath, Sddl

Descrizione
-----------
Questo comando ottiene il percorso di Windows PowerShell e i valori SDDL di tutti i file con estensione log presenti nella directory C:\Windows il cui nome inizia con la lettera "k".

Nel comando viene utilizzato Get-Acl per ottenere gli oggetti che rappresentano i descrittori di sicurezza di ogni file di registro. Viene utilizzato un operatore pipeline (|) per inviare i risultati al cmdlet Format-List. Viene utilizzato il parametro Property di Format-List per visualizzare solo le proprietà PsPath e SDDL di ogni oggetto descrittore di sicurezza.

In Windows PowerShell vengono utilizzati spesso gli elenchi in quanto nelle tabelle i valori lunghi vengono troncati.

I valori SDDL sono utili per gli amministratori di sistema in quanto sono costituiti da semplici stringhe di testo che contengono tutte le informazioni del descrittore di sicurezza e possono pertanto essere passati e archiviati in modo semplice, nonché analizzati quando necessario.

Esempio 3

C:\PS>get-ACL c:/windows/k*.log -Audit | foreach-object { $_.Audit.Count }

Descrizione
-----------
Con questo comando si ottengono i descrittori di sicurezza dei file con estensione log nella directory C:\Windows i cui nomi iniziano con "k." Viene utilizzato il parametro Audit per recuperare i record di controllo dall'elenco SACL nel descrittore di sicurezza. Viene quindi utilizzato il parametro For-EachObject per contare il numero di record di controllo associati a ogni file. Il risultato è un elenco di numeri che rappresentano il numero di record di controllo per ogni file di registro.

Esempio 4

C:\PS>get-acl -path hklm:\system\currentcontrolset\control | format-list

Descrizione
-----------
Con questo comando viene utilizzato il cmdlet Get-Acl per ottenere il descrittore di sicurezza della sottochiave Control (HKLM\SYSTEM\CurrentControlSet\Control) del Registro di sistema.

Il parametro Path specifica la sottochiave Control. L'operatore pipeline (|) passa il descrittore di sicurezza recuperato da Get-Acl al comando Format-List che formatta le proprietà del descrittore di sicurezza come elenco, affinché risultino di facile lettura.

Vedere anche

  • Set-Acl


Get-Alias

Ottiene gli alias della sessione corrente.

Sintassi

Get-Alias [[-Name] <string[]>] [-Exclude <string[]>] [-Scope <string>] [<CommonParameters>]

Get-Alias [-Definition <string[]>] [-Exclude <string[]>] [-Scope <string>] [<CommonParameters>]

Descrizione

Il cmdlet Get-Alias consente di ottenere gli alias (nomi alternativi per comandi e file eseguibili) nella sessione corrente. Sono inclusi alias predefiniti, alias impostati o importati, nonché alias aggiunti al profilo di Windows PowerShell.

Per impostazione predefinita, Get-Alias consente di accettare un alias e di restituire il nome del comando. Quando si utilizza il parametro Definition, Get-Alias consente di accettare il nome di un comando e di restituirne gli alias.

Parametri

-Definition <string[]>

Ottiene gli alias per l'elemento specificato. Immettere il nome di un cmdlet, una funzione, uno script, un file o un file eseguibile.

Questo parametro è denominato Definition, poiché consente di cercare il nome dell'elemento nella proprietà Definition dell'oggetto alias.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica i parametri Name e Definition. Immettere un nome, una definizione o un criterio, ad esempio "s*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string[]>

Specifica gli alias da recuperare. È consentito l'utilizzo di caratteri jolly. Per impostazione predefinita, Get-Alias consente di recuperare tutti gli alias definiti per la sessione corrente. Il nome del parametro ("Name") è facoltativo. È inoltre possibile reindirizzare i nomi di alias a Get-Alias.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Scope <string>

Ottiene solo gli alias nell'ambito specificato. I valori validi sono "Global", "Local", "Script" oppure un numero relativo all'ambito corrente, ovvero da 0 al numero di ambiti, dove 0 corrisponde all'ambito corrente e 1 al relativo padre. Il valore predefinito è "Local". Per ulteriori informazioni, vedere about_Scopes.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare i nomi di alias a Get-Alias.
Output | System.Management.Automation.AliasInfo Get-Alias restituisce un oggetto che rappresenta ciascun alias.

Note

Un alias è un nome alternativo di un cmdlet, una funzione o un file eseguibile. Per eseguire il cmdlet, la funzione o l'eseguibile, è possibile utilizzare il relativo nome completo o l'eventuale alias. Per ulteriori informazioni, vedere about_Aliases.

Per creare un nuovo alias, utilizzare Set-Alias o New-Alias. Per eliminare un alias, utilizzare Remove-Item.

Esempio 1

C:\PS>get-alias

Descrizione
-----------
Con questo comando si ottengono tutti gli alias nella sessione corrente.

Esempio 2

C:\PS>get-alias -name g*, s* -exclude get-*

Descrizione
-----------
Con questo comando si ottengono tutti gli alias che iniziano con "g" o "s", fatta eccezione per gli alias che iniziano con "get-".

Esempio 3

C:\PS>get-alias -definition Get-ChildItem

Descrizione
-----------
Con questo comando si ottengono gli alias per il cmdlet Get-ChildItem.

Per impostazione predefinita, il cmdlet Get-Alias consente di ottenere il nome dell'elemento quando si conosce l'alias. Il parametro Definition consente di ottenere l'alias quando si conosce il nome dell'elemento.

Esempio 4

C:\PS>get-alias | where-object {$_.Options -match "ReadOnly"}

Descrizione
-----------
Tramite questo comando verranno recuperati tutti gli alias in cui il valore della proprietà è ReadOnly. Il comando rappresenta pertanto una soluzione rapida per trovare rapidamente gli alias predefiniti in Windows PowerShell, perché sono caratterizzati dall'opzione ReadOnly.

Options è solo una delle proprietà degli oggetti AliasInfo ottenuti da Get-Alias. Per trovare tutte le proprietà e i metodi degli oggetti AliasInfo, digitare "get-alias | get-member".

Esempio 5

C:\PS>get-alias -definition "*-pssession" -exclude e* -scope global

Descrizione
-----------
In questo esempio vengono ottenuti gli alias per i comandi con nomi che terminano in "- pssession", fatta eccezione per quelli che iniziano con "e".

Viene utilizzato il parametro Scope per applicare il comando nell'ambito globale. Si tratta di una soluzione utile negli script quando si desidera ottenere gli alias nella sessione.

Vedere anche

  • about_Aliases
  • Set-Alias
  • New-Alias
  • Export-Alias
  • Import-Alias
  • Alias Provider


Get-AuthenticodeSignature

Ottiene informazioni sulla firma Authenticode in un file.

Sintassi

Get-AuthenticodeSignature [-FilePath] <string[]> [<CommonParameters>]

Descrizione

Il cmdlet Get-AuthenticodeSignature ottiene informazioni sulla firma Authenticode in un file. Se il file non è firmato, le informazioni vengono recuperate ma i campi rimangono vuoti.

Parametri

-FilePath <string[]>

Specifica il percorso del file esaminato. I caratteri jolly sono consentiti, ma devono portare a un unico file. Il nome del parametro ("FilePath") è facoltativo.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso a Get-AuthenticodeSignature.
Output | System.Management.Automation.Signature Get-AuthenticodeSignature restituisce un oggetto firma per ogni firma ottenuta.

Note

Per informazioni sulle firme Authenticode in Windows PowerShell, vedere about_Signing.

Esempio 1

C:\PS>get-AuthenticodeSignature -filepath C:\Test\NewScript.ps1

Descrizione
-----------
Tramite questo cmdlet è possibile ottenere informazioni sulla firma Authenticode nel file NewScript.ps1. Viene utilizzato il parametro FilePath per specificare il file.

Esempio 2

C:\PS>get-authenticodesignature test.ps1, test1.ps1, sign-file.ps1, makexml.ps1

Descrizione
-----------
Tramite questo cmdlet è possibile ottenere informazioni sulla firma Authenticode nei quattro file elencati nella riga di comando. In questo comando il nome del parametro FilePath, che è facoltativo, viene omesso.

Esempio 3

C:\PS>get-childitem $pshome\*.* | foreach-object {Get-AuthenticodeSignature $_} | where {$_.status -eq "Valid"}

Descrizione
-----------
Questo comando elenca tutti i file presenti nella directory $pshome che dispongono di una firma Authenticode valida. La variabile automatica $pshome contiene il percorso alla directory di installazione di Windows PowerShell.

Il comando utilizza il cmdlet Get-ChildItem per ottenere i file nella directory $pshome. Utilizza un modello *.* per escludere le directory (sebbene vengano esclusi anche i file nel cui nome non è presente un punto).

Il comando utilizza un operatore pipeline (|) per inviare i file in pshome $ al cmdlet Foreach-Object, dove Get-AuthenticodeSignature viene chiamato per ciascun file.

I risultati del comando Get-AuthenticodeSignature vengono inviati a un comando Where-Object che seleziona solo gli oggetti della firma con uno stato di "Valid".

Vedere anche

  • about_Signing
  • about_Execution_Policies
  • Set-AuthenticodeSignature
  • Get-ExecutionPolicy
  • Set-ExecutionPolicy


Get-ChildItem

Ottiene gli elementi e gli elementi figlio in una o più posizioni specificate.

Sintassi

Get-ChildItem [[-Path] <string[]>] [[-Filter] <string>] [-Exclude <string[]>] [-Force] [-Include <string[]>] [-Name] [-Recurse] [-UseTransaction] [<CommonParameters>]

Get-ChildItem [-LiteralPath] <string[]> [[-Filter] <string>] [-Exclude <string[]>] [-Force] [-Include <string[]>] [-Name] [-Recurse] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Get-ChildItem ottiene gli elementi in una o più posizioni specificate. Se l'elemento è un contenitore, ottiene gli elementi all'interno del contenitore, denominati elementi figlio. È possibile utilizzare il parametro Recurse per ottenere gli elementi in tutti i contenitori figlio.

Un percorso può essere un percorso del file system, ad esempio una directory, oppure un percorso esposto da un altro provider, ad esempio un hive del Registro di sistema o un archivio certificati.

Parametri

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di ottenere elementi altrimenti inaccessibili all'utente, ad esempio file nascosto o di sistema. L'implementazione varia a seconda del provider. Per ulteriori informazioni, vedere about_Providers. Quando si utilizza il parametro Force, il cmdlet non può ignorare le limitazioni di sicurezza.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Recupera unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Il parametro Include ha effetto solo quando il comando include il parametro Recurse o il percorso porta al contenuto di una directory, ad esempio C:\Windows\*, dove il carattere jolly specifica il contenuto della directory C:\Windows.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica un percorso di una o più posizioni. A differenza di Path, il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Name

Recupera unicamente i nomi degli elementi nelle posizioni. Se si reindirizza l'output di questo comando a un altro comando, vengono inviati solo i nomi degli elementi.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string[]>

Specifica un percorso di una o più posizioni. È consentito l'utilizzo di caratteri jolly. La posizione predefinita è la directory corrente (.).

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Recurse

Ottiene gli elementi nelle posizioni specificate e in tutti gli elementi figlio delle posizioni.

Recurse funziona solo quando il percorso punta a un contenitore con elementi figlio, ad esempio C:\Windows o C:\Windows\*, non quando punta a elementi privi di elementi figlio, ad esempio C:\Windows\*.exe.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso a Get-ChildItem.
Output | Oggetto. Il tipo di oggetto restituito da Get-ChildItem è determinato dal provider con il quale viene utilizzato.

Note

È inoltre possibile fare riferimento a Get-ChildItem tramite i relativi alias predefiniti "ls", "dir" e "gci". Per ulteriori informazioni, vedere about_Aliases.

Get-ChildItem non ottiene gli elementi nascosti per impostazione predefinita. Per ottenere gli elementi nascosti, utilizzare -Force.

Il cmdlet Get-ChildItem è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PsProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>get-childitem

Descrizione
-----------
Con questo comando si ottengono gli elementi figlio nella posizione corrente. Se la posizione è una directory del file system, si ottengono i file e le sottodirectory nella directory corrente. Se l'elemento non contiene elementi figlio, questo comando torna alla riga di comando senza visualizzare alcuna informazione.

Nella visualizzazione predefinita vengono elencati la modalità (attributi), l'ora dell'ultima scrittura, le dimensioni (lunghezza) e il nome del file. I valori validi per la modalità sono d (directory), a (archivio), r (sola lettura), h (nascosto) ed s (sistema).

Esempio 2

C:\PS>get-childitem . -include *.txt -recurse -force

Descrizione
-----------
Con questo comando vengono recuperati tutti i file txt nella directory corrente e le relative sottodirectory. Il punto (.) rappresenta la directory corrente e il parametro Include specifica l'estensione del nome file. Con il parametro Recurse viene indicato a Windows PowerShell di recuperare gli oggetti in modalità ricorsiva e che l'oggetto del comando è la directory specificata e il relativo contenuto. Con il parametro force vengono aggiunti file alla visualizzazione.

Esempio 3

C:\PS>get-childitem c:\windows\logs\* -include *.txt -exclude A*

Descrizione
-----------
Con questo comando vengono elencati i file txt nella sottodirectory Logs, a eccezione dei file il cui nome inizia con la lettera A. Il carattere jolly (*) viene utilizzato per indicare il contenuto della sottodirectory Logs, non il contenitore della directory. Poiché il comando non include il parametro Recurse, Get-ChildItem non include automaticamente il contenuto della directory. È necessario specificarlo.

Esempio 4

C:\PS>get-childitem registry::hklm\software

Descrizione
-----------
Con questo comando vengono recuperate tutte le chiavi del Registro di sistema nella chiave HKEY_LOCAL_MACHINE\SOFTWARE nel Registro di sistema del computer locale.

Esempio 5

C:\PS>get-childitem -name

Descrizione
-----------
Con questo comando vengono recuperati unicamente i nomi degli elementi nella directory corrente.

Esempio 6

C:\PS>get-childitem cert:\. -recurse -codesigningcert

Descrizione
-----------
Con questo comando vengono ottenuti tutti i certificati nell'archivio certificati con autorità di firma del codice.

Viene utilizzato il cmdlet Get-ChildItem. Il percorso specifica l'unità Cert: esposta dal provider di certificati di Windows PowerShell. Il simbolo di barra rovesciata (\) specifica una sottodirectory dell'archivio certificati e il punto (.) rappresenta la directory corrente, ovvero la directory radice dell'archivio certificati. Il parametro Recurse specifica una ricerca ricorsiva.

Il parametro CodeSigningCertificate è un parametro dinamico che ottiene solo i certificati con autorità di firma del codice. Per ulteriori informazioni, digitare "get-help certificate".

Esempio 7

C:\PS>get-childitem * -include *.exe

Descrizione
-----------
Con questo comando vengono recuperati tutti gli elementi nella directory corrente con estensione exe. Il carattere jolly (*) rappresenta il contenuto della directory corrente, non il contenitore. Quando si utilizza il parametro Include senza il parametro Recurse, il percorso deve puntare al contenuto, non a un contenitore.

Vedere anche

  • about_Providers
  • Get-Item
  • Get-Alias
  • Get-Location
  • Get-Process


Get-Command

Ottiene informazioni di base sui cmdlet e altri elementi dei comandi di Windows PowerShell.

Sintassi

Get-Command [[-Name] <string[]>] [-CommandType {<Alias> | <Function> | <Filter> | <Cmdlet> | <ExternalScript> | <Application> | <Script> | <All>}] [[-ArgumentList] <Object[]>] [-Module <string[]>] [-Sintassi] [-TotalCount <int>] [<CommonParameters>]

Get-Command [-Noun <string[]>] [-Verb <string[]>] [[-ArgumentList] <Object[]>] [-Module <string[]>] [-Sintassi] [-TotalCount <int>] [<CommonParameters>]

Descrizione

Il cmdlet Get-Command ottiene informazioni di base relative a cmdlet e ad altri elementi dei comandi di Windows PowerShell nella sessione, quali alias, funzioni, filtri, script e applicazioni.

Tramite Get-Command i dati vengono ottenuti direttamente dal codice di un cmdlet, una funzione, uno script o un alias, diversamente da Get-Help che ottiene le informazioni dai file degli argomenti della Guida.

Senza parametri, "Get-Command" consente di ottenere tutti i cmdlet e le funzioni della sessione corrente. Tramite "Get-Command *" si ottengono tutti gli elementi di Windows PowerShell e tutti i file non di Windows PowerShell nella variabile di ambiente Path ($env:path). I file vengono raggruppati nel tipo di comando "Application".

È possibile utilizzare il parametro Module di Get-Command per trovare i comandi aggiunti alla sessione aggiungendo un snap-in di Windows PowerShell o importando un modulo.

Parametri

-ArgumentList <Object[]>

Ottiene informazioni su un cmdlet o una funzione quando viene utilizzata con i parametri ("argomenti") specificati, ad esempio un percorso. L'alias per ArgumentList è Args.

Per rilevare i parametri aggiunti a un cmdlet quando viene utilizzato con un determinato provider, impostare il valore di ArgumentList su un percorso nell'unità del provider, ad esempio "HKML\Software" o "cert:\my."

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-CommandType <CommandTypes>

Ottiene solo i tipi di comandi specificati. Utilizzare "CommandType" o il relativo alias, "Type". Per impostazione predefinita, Get-Command consente di ottenere cmdlet e funzioni.

I valori validi sono:

-- Alias: tutti gli alias Windows PowerShell della sessione corrente.

-- All: tutti i tipi di comando. Equivale a "get-command *".

-- Application: tutti i file non di Windows PowerShell nei percorsi elencati nella variabile di ambiente Path ($env:path), inclusi i file con estensione txt, exe e dll.

-- Cmdlet: cmdlet della sessione corrente. Il valore predefinito è "Cmdlet".

-- ExternalScript: tutti i file con estensione ps1 nei percorsi elencati nella variabile di ambiente Path ($env:path).

-- Filter e Function: tutte le funzioni di Windows PowerShell.

-- Script: blocchi di script nella sessione corrente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Module <string[]>

Ottiene i comandi che derivano dai moduli o dagli snap-in specificati. Immettere i nomi dei moduli o degli snap-in oppure gli oggetti modulo o snap-in.

È possibile fare riferimento a questo parametro in base al nome, Module, o all'alias, PSSnapin. Il nome del parametro scelto non ha effetto sul comando o sul relativo output.

Questo parametro accetta i valori di stringa, ma è possibile fornire anche un oggetto PSModuleInfo o PSSnapinInfo, ad esempio gli oggetti restituiti da Get-Module, Get-PSSnapin e Import-PSSession.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Name <string[]>

Ottiene informazioni solo sui cmdlet o sugli elementi del comando con il nome specificato. <String> rappresenta completamente o in parte il nome del cmdlet o dell'elemento del comando. È consentito l'utilizzo di caratteri jolly.

Per elencare i comandi con lo stesso nome in ordine di esecuzione, digitare il nome del comando senza caratteri jolly. Per ulteriori informazioni, vedere la sezione Note.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Noun <string[]>

Ottiene i cmdlet e le funzioni i cui nomi includono il nome specificato. <String> rappresenta uno o più nomi o criteri di nomi, ad esempio "process" o "*item*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Sintassi

Per ogni elemento del comando ottiene solo i dati specificati.

* Per gli alias, recupera il nome standard.

* Per i cmdlet, recupera la sintassi.

* Per le funzioni e i filtri, recupera la definizione di funzione.

* Per gli script e le applicazioni (file), recupera il percorso e il nome file.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-TotalCount <int>

Ottiene solo il numero specificato degli elementi del comando. È possibile utilizzare questo parametro per limitare l'output di un comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Verb <string[]>

Ottiene informazioni sui cmdlet e sulle funzioni i cui nomi includono il verbo specificato. <String> rappresenta uno o più verbi o criteri di verbi, ad esempio "remove" o *et". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una proprietà "Name", "Command" e "Verb" specificata o un oggetto stringa a Get-Command.
Output | Object Il tipo di oggetto restituito dipende dal tipo di elemento del comando recuperato. Get-Command in un cmdlet, ad esempio, recupera un oggetto CmdletInfo, mentre Get-Command in una DLL recupera un oggetto ApplicationInfo.

Note

Se non si specifica alcun parametro, tramite "Get-Command" vengono ottenute informazioni sui cmdlet e sulle funzioni di Windows PowerShell. Utilizzare i parametri per qualificare gli elementi recuperati.

Diversamente da Get-Help, tramite cui viene visualizzato il contenuto dei file degli argomenti della Guida basati su XML, tramite Get-Command le informazioni sui cmdlet vengono ottenute direttamente dal codice del cmdlet nel sistema.

Get-Command restituisce i comandi in ordine alfabetico. Quando la sessione contiene più di un comando con lo stesso nome, Get-Command restituisce i comandi in ordine di esecuzione. Il primo comando elencato è quello che viene eseguito quando si digita il nome del comando senza qualificazione. Per ulteriori informazioni, vedere about_Command_Precedence.

Esempio 1

C:\PS>get-command

Descrizione
-----------
Con questo comando si ottengono informazioni su tutti i cmdlet e le funzioni di Windows PowerShell.

Nella visualizzazione predefinita viene elencato il tipo di comando ("Cmdlet", "Function" o "Filter"), il nome del cmdlet o la funziona e la sintassi o la definizione della funzione.

Esempio 2

C:\PS>get-command -verb set | format-list

Descrizione
-----------
Con questo comando si ottengono informazioni su tutti i cmdlet e le funzioni contenenti il verbo "set" e alcune di queste informazioni vengono visualizzate in un elenco.

Nel formato elenco sono inclusi i campi omessi dalla visualizzazione tabella, compresa la sintassi completa. Per visualizzare tutti i campi, ovvero tutte le proprietà dell'oggetto, digitare "get-command -verb set | format-list *".

Esempio 3

C:\PS>get-command -type cmdlet | sort-object noun | format-table -group noun

Descrizione
-----------
Tramite questo comando vengono recuperati tutti i cmdlet, che vengono quindi ordinati alfabeticamente in base alla prima parte del nome e visualizzati in gruppi
basati sul nome. Questa visualizzazione consente di trovare i cmdlet per un'attività specifica.

Per impostazione predefinita, Get-Command visualizza gli elementi in base all'ordine in cui vengono rilevati dal sistema, ovvero l'ordine in cui vengono selezionati per l'esecuzione nel caso di un comando ambiguo.

Esempio 4

C:\PS>get-command -module Microsoft.PowerShell.Security, TestModule

Descrizione
-----------
Con questo comando si ottengono i comandi nello snap-in Microsoft.PowerShell.Security e nel modulo Test-Module.

Il parametro Module consente di ottenere comandi aggiunti importando moduli o aggiungendo snap-in di Windows PowerShell.

Esempio 5

C:\PS>get-command get-childitem -args cert: -syntax

Descrizione
-----------
Con questo comando vengono recuperate informazioni sul cmdlet Get-ChildItem quando si utilizza Get-ChildItem con il provider Certificate di Windows PowerShell.

Confrontando la sintassi visualizzata nell'output con la sintassi visualizzata quando si omette il parametro Args (ArgumentList), si noterà che il provider Certificate aggiunge dinamicamente un parametro, ovvero il parametro CodeSigningCert, al cmdlet Get-ChildItem.

Esempio 6

C:\PS>(get-command get-childitem -ArgumentList cert:).parametersets[0].parameters | where-object { $_.IsDynamic }

Descrizione
-----------
Con questo comando vengono recuperati solo i parametri aggiunti dinamicamente al cmdlet Get-ChildItem quando questo viene utilizzato con il provider Certificate di Windows PowerShell. Il comando rappresenta un'alternativa al metodo utilizzato nell'esempio precedente.

In questo comando, "get-command get-childitem -ArgumentList cert:" viene elaborato per primo. Vengono quindi richieste informazioni da Get-Command sul cmdlet Get-ChildItem quando questo viene utilizzato con il provider Certificate. Tramite ".parametersets[0]" viene selezionato il primo set di parametri (set 0) di "get-childitem -argumentList cert:", mentre tramite ".parameters" vengono selezionati i parametri in tale set di parametri. I parametri risultanti vengono reindirizzati al cmdlet Where-Object affinché ogni parametro ("$_.") venga verificato tramite la proprietà IsDynamic. Per trovare le proprietà degli oggetti in un comando, utilizzare Get-Member.

Esempio 7

C:\PS>get-command *

Descrizione
-----------
Tramite questo comando vengono ottenute informazioni su cmdlet, funzioni, filtri, script e alias di Windows PowerShell nella console corrente.

Vengono anche ottenute informazioni su tutti i file nei percorsi della variabile di ambiente Path ($env:path). Viene restituito un oggetto ApplicationInfo (System.Management.Automation.ApplicationInfo) per ogni file e non un oggetto FileInfo (System.IO.FileInfo).

Esempio 8

C:\PS>get-command | where-object {$_.definition -like "*first*"}

CommandType     Name                        Definition
-----------     ----                        ---------
Cmdlet          Select-Object               Select-Object [[-Property]

Descrizione
-----------
Tramite questo comando è possibile trovare un cmdlet o una funzione in base al nome di uno dei relativi parametri. È possibile utilizzare questo comando per identificare un cmdlet o una funzione quando si ricorda solo il nome di uno dei relativi parametri.

In questo caso, si ricorda che uno dei cmdlet o delle funzioni dispone di un parametro First che ottiene i primi "n" oggetti in un elenco, ma non è possibile ricordare di quale cmdlet si tratta.

Tramite questo comando viene utilizzato il cmdlet Get-Command per ottenere un oggetto CmdletInfo che rappresenta ogni cmdlet e ogni funzione della sessione. L'oggetto CmdletInfo dispone di una proprietà Definition che contiene la sintassi del cmdlet o della funzione, inclusi i relativi parametri.

Nel comando viene utilizzato un operatore pipeline (|) per passare l'oggetto CmdletInfo al cmdlet Where-Object che esamina la definizione (sintassi) di ogni oggetto (_ $) per rilevare un valore che include "first".

Il risultato indica che il parametro First appartiene al cmdlet Select-Object.

Esempio 9

C:\PS>get-command dir | format-list

Name              : dir
CommandType       : Alias
Definition        : Get-ChildItem
ReferencedCommand : Get-ChildItem
ResolvedCommand   : Get-ChildItem

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il cmdlet Get-Command con un alias. Sebbene venga utilizzato generalmente nei cmdlet, tramite Get-Command vengono anche visualizzate informazioni sul codice in script, funzioni, alias e file eseguibili.

Tramite questo comando viene visualizzato l'alias "dir" nella console corrente. Il comando consente di reindirizzare il risultato ai cmdlet Format-List.

Esempio 10

C:\PS>get-command notepad

CommandType     Name           Definition
-----------     ----           ----------
Application     notepad.exe    C:\WINDOWS\system32\notepad.exe
Application     NOTEPAD.EXE    C:\WINDOWS\NOTEPAD.EXE

Descrizione
-----------
In questo esempio viene illustrato come utilizzare Get-Command da determinare quale comando viene eseguito in Windows PowerShell quando si dispone dell'accesso a più comandi con lo stesso nome. Quando si utilizza il parametro Name senza caratteri jolly, tramite Get-Command vengono elencati i comandi con quel nome in ordine di precedenza di esecuzione.

Questo comando indica quale programma di Blocco note viene eseguito in Windows PowerShell quando si digita "Blocco note" senza un percorso completo. Nel comando viene utilizzato il parametro Name senza caratteri jolly.

Nell'output di esempio vengono illustrati i comandi di Blocco note nella console corrente. Indica che in Windows PowerShell verrà eseguita l'istanza di Notepad.exe nella directory C:\Windows\System32.

Esempio 11

C:\PS>(get-command get-date).pssnapin

C:\PS> (get-command remove-gpo).module

Descrizione
-----------
Tramite questi comandi viene illustrato come trovare lo snap-in o il modulo dal quale ha avuto origine un particolare cmdlet.

Nel primo comando viene utilizzata la proprietà PSSnapin dell'oggetto CmdletInfo per trovare lo snap-in che ha aggiunto il cmdlet Get-Date.

Nel secondo comando viene utilizzata la proprietà Module dell'oggetto CmdletInfo per trovare il modulo che ha aggiunto il cmdlet Remove-GPO.

Vedere anche

  • about_Command_Precedence
  • Get-Help
  • Get-PSDrive
  • Get-Member
  • Import-PSSession
  • Export-PSSession


Get-ComputerRestorePoint

Ottiene i punti di ripristino nel computer locale.

Sintassi

Get-ComputerRestorePoint [[-RestorePoint] <Int32[]>] [<CommonParameters>]

Get-ComputerRestorePoint -LastStatus [<CommonParameters>]

Descrizione

Con il cmdlet Get-ComputerRestorePoint vengono ottenuti i punti di ripristino nel computer locale. Questo cmdlet consente inoltre di visualizzare lo stato del tentativo più recente di ripristino del computer.

È possibile utilizzare le informazioni restituite da Get-ComputerRestorePoint per selezionare un punto di ripristino ed è possibile utilizzare il numero di sequenza per identificare un punto di ripristino per il cmdlet Restore-Computer.

Parametri

-LastStatus

Ottiene lo stato dell'operazione di ripristino di sistema più recente.

Obbligatorio? | true
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-RestorePoint <Int32[]>

Ottiene i punti di ripristino con i numeri di sequenza specificati. Immettere i numeri di sequenza di uno o più punti di ripristino. Per impostazione predefinita, tramite il cmdlet Get-ComputerRestorePoint vengono ottenuti tutti i punti di ripristino nel computer locale.

Obbligatorio? | false
Posizione? | 1
Valore predefinito | All restore points
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a questo cmdlet.
Output | System.Management.ManagementObject#root\default\SystemRestore o String. Get-ComputerRestore restituisce un oggetto SystemRestore, ovvero un'istanza della classe WMI SystemRestore. Quando si utilizza il parametro LastStatus, il cmdlet restituisce una stringa.

Note

Per eseguire un comando Get-ComputerRestorePoint in Windows Vista e nelle versioni successive di Windows, aprire Windows PowerShell con l'opzione "Esegui come amministratore".

Questo cmdlet utilizza la classe SystemRestore di Strumentazione gestione Windows (WMI).

Esempio 1

C:\PS>get-computerrestorepoint

Descrizione
-----------
Con questo comando vengono ottenuti tutti i punti di ripristino nel computer locale.

Esempio 2

C:\PS>get-computerrestorepoint -restorepoint 232, 240, 245

Descrizione
-----------
Con questo comando vengono ottenuti i punti di ripristino con i numeri di sequenza 232, 240 e 245.

Esempio 3

C:\PS>get-computerrestorepoint -laststatus

The last restore failed.

Descrizione
-----------
Con questo comando viene visualizzato lo stato della più recente operazione di ripristino del sistema sul computer locale.

Esempio 4

C:\PS>get-computerrestorepoint | format-table SequenceNumber, @{Label="Date"; Expression={$_.ConvertToDateTime($_.CreationTime)}}, Description -auto

SequenceNumber Date                  Description
-------------- ----                  -----------
           253 8/5/2008 3:19:20 PM   Windows Update
           254 8/6/2008 1:53:24 AM   Windows Update
           255 8/7/2008 12:00:04 AM  Scheduled Checkpoint
...

Descrizione
-----------
Con questo comando vengono visualizzati i punti di ripristino in una tabella per un'agevole lettura.

Il comando Format-Table include una proprietà calcolata che utilizza il metodo ConvertToDateTime per convertire il valore della proprietà CreationTime dal formato WMI in un oggetto DateTime.

Esempio 5

C:\PS>((get-computerrestorepoint)[-1]).sequencenumber

Descrizione
-----------
Con questo comando viene ottenuto il numero di sequenza del punto di ripristino creato più recentemente nel computer.

Nel comando viene utilizzato l'indice -1 per ottenere l'ultimo elemento nella matrice restituita da Get-ComputerRestorePoint.

Vedere anche

  • Enable-ComputerRestore
  • Disable-ComputerRestore
  • Restore-Computer
  • Restart-Computer


Get-Content

Ottiene il contenuto dell'elemento nella posizione specificata.

Sintassi

Get-Content [-LiteralPath] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-ReadCount <Int64>] [-TotalCount <Int64>] [-UseTransaction] [<CommonParameters>]

Get-Content [-Path] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-ReadCount <Int64>] [-TotalCount <Int64>] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Get-Content ottiene il contenuto dell'elemento nella posizione specificata dal percorso, ad esempio il testo di un file. Il contenuto viene letto una riga alla volta e viene restituito un oggetto per ogni riga.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Ignora le restrizioni che impediscono la corretta esecuzione del comando, purché le modifiche non abbiano effetti negativi sulla sicurezza. Force, ad esempio, ignora l'attributo di sola lettura o crea directory per completare un percorso di file, ma non tenta di modificare le autorizzazioni per il file.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Recupera unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica il percorso di un elemento. A differenza di Path, il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso di un elemento. Get-Content recupera il contenuto dell'elemento. È consentito l'utilizzo di caratteri jolly. Il nome del parametro ("Path" o "FilePath") è facoltativo.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-ReadCount <Int64>

Specifica quante righe di contenuto vengono inviate contemporaneamente attraverso la pipeline. Il valore predefinito è 1. Un valore di 0 (zero) comporta l'invio di tutto il contenuto in una volta.

Questo parametro non modifica il contenuto visualizzato, ma influisce sul tempo necessario per visualizzarlo. Più aumenta il valore di ReadCount, più aumenta il tempo necessario per restituire la prima riga, mentre il tempo totale dell'operazione diminuisce. Questa condizione può costituire una differenza importante per gli elementi di grandi dimensioni.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-TotalCount <Int64>

Specifica quante righe di contenuto vengono recuperate. L'impostazione predefinita è -1 (tutte le righe).

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a Get-Content.
Output | Object Get-Content restituisce oggetti che rappresentano il contenuto ottenuto. Il tipo di oggetto dipende dal tipo di contenuto.

Note

È inoltre possibile fare riferimento a Get-Content tramite i relativi alias predefiniti "cat", "type" e "gc". Per ulteriori informazioni, vedere about_Aliases.

Il cmdlet Get-Content è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PsProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>get-content -Path C:\Chapters\chapter1.txt

Descrizione
-----------
Con questo comando il contenuto del file Chapter1.txt viene visualizzato sulla console. Viene utilizzato il parametro Path per specificare il nome dell'elemento. Get-Content passa in realtà il contenuto attraverso la pipeline, ma poiché non sono presenti altri elementi della pipeline, il contenuto viene formattato e visualizzato sulla console.

Esempio 2

C:\PS>get-content c:\Logs\Log060912.txt -totalcount 50 | set-content sample.txt

Descrizione
-----------
Con questo comando si ottengono le prime 50 righe del file Log060912.txt, le quali vengono successivamente archiviate nel file sample.txt. Viene utilizzato il cmdlet Get-Content per ottenere il testo presente nel file. Il nome del parametro Path facoltativo è omesso. Il parametro TotalCount limita il recupero alle prime 50 righe. Il risultato viene inviato dall'operatore pipeline (|) a Set-Content, tramite il quale viene collocato nel file sample.txt.

Esempio 3

C:\PS>(get-content cmdlets.txt -totalcount 5)[-1]

Descrizione
-----------
Con questo comando viene ottenuta la quinta riga del file di testo Cmdlets.txt. Viene utilizzato il parametro TotalCount per ottenere le prime cinque righe e quindi viene utilizzata la notazione di matrice per ottenere l'ultima riga (indicata da "-1") dell'insieme risultante.

Vedere anche

  • about_Providers
  • Add-Content
  • Set-Content
  • Clear-Content


Get-Counter

Ottiene dati del contatore delle prestazioni da computer locali e remoti.

Sintassi

Get-Counter [-Counter] <string[]> [-ComputerName <string[]>] [-Continuous] [-MaxSamples <Int64>] [-SampleInterval <int>] [<CommonParameters>]

Get-Counter -ListSet <string[]> [-ComputerName <string[]>] [<CommonParameters>]

Descrizione

Il cmdlet Get-Counter ottiene in diretta i dati del contatore delle prestazioni in tempo reale direttamente dalla strumentazione del monitoraggio delle prestazioni in Windows. È possibile utilizzarlo per ottenere dati relativi alle prestazioni dai computer locali o remoti nell'intervallo dell'esempio specificato.

Senza parametri, un comando "Get-Counter" ottiene dati per un set di contatori del sistema.

È possibile utilizzare i parametri di Get-Counter per specificare uno o più computer, elencare i set di contatori delle prestazioni e i contatori in essi contenuti e impostare l'intervallo e le dimensioni dell'esempio.

Parametri

-ComputerName <string[]>

Ottiene dati computer specificati. Digitare il nome NetBIOS, un indirizzo IP (Internet Protocol) o i nomi di dominio completi dei computer. Il valore predefinito è il computer locale.

Nota: Get-Counter non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName di Get-Counter anche se il computer non è configurato per la comunicazione remota in Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Continuous

Ottiene continuamente esempi finché non si preme CTRL+C. Per impostazione predefinita, Get-Counter ottiene un solo esempio di contatore. È possibile utilizzare il parametro SampleInterval per impostare l'intervallo per il campionamento continuo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Counter <string[]>

Ottiene dati dai contatori di prestazioni specificati. Immettere uno o più percorsi di contatori. I caratteri jolly sono consentiti solo nel valore Instance. È inoltre possibile reindirizzare stringhe di percorsi di contatori a Get-Counter.

Il percorso di ciascun contatore dispone del formato seguente:

"[\\<ComputerName>]\<CounterSet>(<Instance>)\<CounterName>"

Ad esempio:

"\\Server01\Processor(2)\% User Time".

L'elemento <ComputerName> è facoltativo. Se lo si omette, Get-Counter utilizza il valore del parametro ComputerName.

Nota: per ottenere percorsi di contatori formattati correttamente, utilizzare il parametro ListSet per ottenere un set di contatori delle prestazioni. Le proprietà Paths e PathsWithInstances di ciascun set di contatori di prestazioni contengono i singoli percorsi dei contatori formattati come stringa. È possibile salvare le stringhe dei percorsi dei contatori in una variabile, oppure reindirizzare la stringa direttamente a un altro comando Get-Counter. Per una dimostrazione, vedere gli esempi.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | true

-ListSet <string[]>

Ottiene i set di contatori delle prestazioni specificati nei computer. Immettere i nomi dei set di contatori. È consentito l'utilizzo di caratteri jolly. È inoltre possibile reindirizzare nomi di set di contatori a Get-Counter.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | true

-MaxSamples <Int64>

Specifica il numero di esempi da ottenere da ciascun contatore. Il valore predefinito è 1 esempio. Per ottenere continuamente esempi (dimensione massima di esempio non impostata), utilizzare il parametro Continuous.

Per raccogliere un set di dati di grandi dimensioni, eseguire un comando Get-Counter come processo in background di Windows PowerShell. Per ulteriori informazioni, vedere about_Jobs e Start-Job.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SampleInterval <int>

Specifica il tempo in secondi tra gli esempi. Il valore minimo e il valore predefinito sono 1 secondo.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 1
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input

System.String[]

È possibile reindirizzare nomi di set di contatori (ListSet) e percorsi di contatori a Get-Counter.

Output

Microsoft.PowerShell.Commands.GetCounter.CounterSet, Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet, Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSample

Il parametro ListSet ottiene oggetti Microsoft.PowerShell.Commands.GetCounter.CounterSet. Il parametro Counter ottiene oggetti Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet. Ogni valore di contatore è un oggetto Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSample.

Note

I contatori delle prestazioni sono spesso protetti da elenchi di controllo di accesso (ACL). Per ottenere tutti i contatori delle prestazioni disponibili, aprire Windows PowerShell con l'opzione "Esegui come amministratore".

Per impostazione predefinita, Get-Counter ottiene un esempio durante un intervallo di esempio di un secondo. Per modificare questo comportamento, utilizzare i parametri MaxSamples e Continuous.

I valori MaxSamples e SampleInterval impostati si applicano a tutti i contatori in tutti i computer nel comando. Per impostare valori diversi per contatori diversi, immettere comandi Get-Counter separati per ciascun contatore.

Esempio 1

C:\PS># Get-Counter

Descrizione
-----------
Questo comando ottiene tutti i set di contatori nel computer locale.

C:\PS> get-counter -ListSet *

Poiché molti set di contatori sono protetti da elenchi di controllo di accesso (ACL), per visualizzare tutti i set di contatori, aprire Windows PowerShell con l'opzione "Esegui come amministratore" prima di utilizzare il comando Get-Counter.

Esempio 2

C:\PS># Get-Counter

Descrizione
-----------
Questo comando ottiene i valori combinati "% Processor Time" correnti per tutti i processori nel computer locale. Raccoglie dati ogni due secondi finché non dispone di tre valori.

C:\PS> get-counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 2 -MaxSamples 3

Esempio 3

C:\PS># Get-Counter

Descrizione
-----------
Questo comando ottiene un elenco ordinato alfabeticamente dei nomi di tutti i set di contatori nel computer locale.

C:\PS> get-counter -listset * | sort-object  countersetname | format-table countersetname

Esempio 4

C:\PS># Get-Counter

Descrizione
-----------
Questi comandi utilizzano la proprietà Path di un set di contatori per trovare i nomi dei percorsi correttamente formattati per i contatori delle prestazioni. È possibile utilizzare un comando come questo per ottenere i nomi corretti dei percorsi dei contatori.

Il primo comando ottiene i nomi dei percorsi dei contatori delle prestazioni nel contatore Memory impostato nel computer locale.

C:\PS> (get-counter -listset memory).paths

\Memory\Page Faults/sec
\Memory\Available Bytes
\Memory\Committed Bytes
\Memory\Commit Limit
\Memory\Write Copies/sec
\Memory\Transition Faults/sec
\Memory\Cache Faults/sec
\Memory\Demand Zero Faults/sec
\Memory\Pages/sec
\Memory\Pages Input/sec
...

Il secondo comando ottiene i nomi dei percorsi che includono "cache".

C:\PS> (get-counter -listset memory).paths | where {$_ -like "*cache*"}

\Memory\Cache Faults/sec
\Memory\Cache Bytes
\Memory\Cache Bytes Peak
\Memory\System Cache Resident Bytes
\Memory\Standby Cache Reserve Bytes
\Memory\Standby Cache Normal Priority Bytes
\Memory\Standby Cache Core Bytes

Esempio 5

C:\PS># Get-Counter

Descrizione
-----------
Questi comandi ottengono i dati del contatore Disk Reads/sec dai computer Server01 e Server02.

Il primo comando salva un percorso del contatore Disk Reads/sec nella variabile $diskreads.

C:\PS> $diskreads = "\LogicalDisk(C:)\Disk Reads/sec"

Il secondo comando utilizza un operatore pipeline (|) per inviare il percorso del contatore nella variabile $diskreads al cmdlet Get-Counter. Il comando utilizza il parametro MaxSample per limitare l'output a 10 esempi.

C:\PS> $diskreads | get-counter -computer Server01, Server02 -maxsamples 10

Esempio 6

C:\PS># Get-Counter

Descrizione
-----------
Questo comando ottiene i nomi dei percorsi formattati correttamente per i contatori delle prestazioni PhysicalDisk, inclusi i nomi delle istanze.

C:\PS> (get-counter -list physicaldisk).pathswithinstances

Esempio 7

C:\PS># Get-Counter

Descrizione
-----------
Questi comandi ottengono il valore del contatore delle prestazioni "% DPC Time" in 50 computer selezionati casualmente nell'organizzazione.

Il primo comando utilizza il cmdlet Get-Content per ottenere l'elenco dei server dell'organizzazione dal file Servers.txt. Utilizza il cmdlet Get-Random per selezionare in modo casuale 50 nomi di server dal contenuto del file Servers.txt. I risultati vengono salvati nella variabile $servers.

C:\PS> $servers = get-random (get-content servers.txt) -count 50

Il secondo comando salva il percorso del contatore nel cmdlet "% DPC Time" nella variabile $Counter. Il percorso del contatore include un carattere jolly nel nome dell'istanza per ottenere i dati in tutti i processori in ciascun computer.

C:\PS> $counter = "\Processor(*)\% DPC Time"

Il terzo comando utilizza il cmdlet Get-Counter per ottenere i valori del contatore. Utilizza il parametro Counter per specificare i contatori e il parametro ComputerName per specificare i computer salvati nella variabile $servers.

C:\PS> get-counter -Counter $counter -computername $servers

Esempio 8

C:\PS># Get-Counter

Descrizione
-----------
Questi comandi ottengono un singolo valore per tutti i contatori delle prestazioni nel contatore della memoria impostato nel computer locale.

Il primo comando ottiene i percorsi dei contatori e li salva nella variabile $memCounters.

C:\PS> $memCounters = (get-counter -list memory).paths

Il secondo comando utilizza il cmdlet Get-Counter per ottenere i dati dei contatori per ciascun contatore. Utilizza il parametro Counter per specificare i contatori in $memCounters.

C:\PS> get-counter -counter $memCounters

Esempio 9

C:\PS># Get-Counter

Descrizione
-----------
In questo esempio vengono illustrati i valori delle proprietà nell'oggetto PerformanceCounterSample che rappresenta ciascun esempio di dati.

Il primo comando salva un percorso del contatore nella variabile $counter.

C:\PS> $counter = "\\SERVER01\Process(Idle)\% Processor Time"

Il secondo comando utilizza il cmdlet Get-Counter per ottenere un esempio dei valori dei contatori. I risultati vengono salvati nella variabile $data.

C:\PS> $data = get-counter $counter

Il terzo comando utilizza il cmdlet Format-List per visualizzare tutte le proprietà della proprietà CounterSamples dell'oggetto set di esempi come elenco.

C:\PS> $data.countersamples | format-list -property *

Path             : \\SERVER01\process(idle)\% processor time
InstanceName     : idle
CookedValue      : 198.467899571389
RawValue         : 14329160321003
SecondValue      : 128606459528326201
MultipleCount    : 1
CounterType      : Timer100Ns
Timestamp        : 7/15/2008 6:39:12 PM
Timestamp100NSec : 128606207528320000
Status           : 0
DefaultScale     : 0
TimeBase         : 10000000

È possibile utilizzare le proprietà dell'oggetto CounterSamples per esaminare, selezionare, ordinare e raggruppare i dati.

Esempio 10

C:\PS># Get-Counter

Descrizione
-----------
Il comando esegue un comando Get-Counter come processo in background. Per ulteriori informazioni, vedere Start-Job.

C:\PS> $counters = "\LogicalDisk(_Total)\% Free Space"

C:\PS> start-job -scriptblock {get-counter -counter $counters -maxsamples 1000)

Esempio 11

C:\PS># Get-Counter

Descrizione
-----------
Questo comando utilizza i cmdlet Get-Counter e Get-Random per trovare la percentuale di spazio libero su disco nei 50 computer selezionati casualmente dal file Servers.txt.

C:\PS> get-counter -computername (get-random servers.txt -count 50) -counter "\LogicalDisk(*)\% Free Space"

Esempio 12

C:\PS># Get-Counter

Descrizione
-----------
In questo esempio viene illustrato come associare dati del contatore al computer in cui hanno avuto origine e come modificare i dati.

Il primo comando utilizza il cmdlet Get-Counter per ottenere il valore del contatore "LogicalDisk \% Free Space" da due computer remoti, S1 e S2. Il risultato viene salvato nella variabile $a.

$a = get-counter "\LogicalDisk(_Total)\% Free Space" -comp s1, s2

Nel secondo comando vengono visualizzati i risultati nella variabile $a. Tutti i dati vengono archiviati nell'oggetto, ma non è facile visualizzarli in questo formato.

C:\PS> $a

Counter Paths: \\s1\\logicaldisk(c:)\% free space, \\s1\\logicaldisk(d:)\% free space, \\s1\\logicaldisk(_total)\% free space, \\s2\\logicaldisk(c:)\% free space, \\s2\\logicaldisk(_total)\% free space

Timestamp     : 7/15/2008 5:09:08 PM
Cooked Values : "0.327058823529412", "17.8952248493278", "12.9994033060778", "75.0754805595626", "75.0754805595626"

Il terzo comando visualizza in una tabella il valore della proprietà CounterSamples dell'oggetto PerformanceCounterSampleSet restituito da Get-Counter. (Per visualizzare tutte le proprietà e i metodi dell'oggetto, reindirizzarlo al cmdlet Get-Member).

C:\PS> $a.countersamples | format-table -auto

Path                                     InstanceName       CookedValue
----                                     ------------       -----------
\\s1\\logicaldisk(c:)\% free space       c:           0.327058823529412
\\s1\\logicaldisk(d:)\% free space       d:            17.8952248493278
\\s1\\logicaldisk(_total)\% free space   _total        12.9994033060778
\\s2\\logicaldisk(c:)\% free space       c:            75.0754805595626
\\s2\\logicaldisk(_total)\% free space   _total        75.0754805595626

La proprietà CounterSamples contiene un oggetto PerformanceCounterSample con i relativi metodi e proprietà. Il quarto comando utilizza la notazione di matrice per ottenere il primo esempio di contatore e un operatore pipeline per inviare l'oggetto esempio di contatore al cmdlet Format-List che visualizza tutte le proprietà e i metodi in un elenco. In questa visualizzazione viene mostrata la ricchezza di dati in ciascun oggetto esempio di contatore.

Il quarto comando illustra come selezionare dati dagli esempi di contatore. Utilizza il cmdlet Where-Object per ottenere solo gli esempi di contatore con il valore di CookedValue minore di 15.

C:\PS> $a.countersamples | where {$_.cookedvalue -lt 15}

Path                                     InstanceName       CookedValue
----                                     ------------       -----------
\\s1\\logicaldisk(c:)\% free space       c:           0.327058823529412
\\s1\\logicaldisk(_total)\% free space   _total        12.9994033060778

Esempio 13

C:\PS># Get-Counter

Descrizione
-----------
In questo esempio viene illustrato come ordinare i dati del contatore delle prestazioni recuperati. Nell'esempio vengono trovati i processi nel computer che utilizzano la maggior parte del tempo del processore durante il campionamento.

Il primo comando ottiene il contatore "Process\% Processor Time" per tutti i processi nel computer. I risultati vengono salvati nella variabile $p.

C:\PS> $p = get-counter '\Process(*)\% Processor Time'

Il secondo comando ottiene la proprietà CounterSamples dell'oggetto esempio impostato in $p e ordina gli esempi in ordine decrescente in base al valore cooked dell'esempio. Il comando utilizza il cmdlet Format-Table e il parametro AutoFormat per sistemare le colonne nella tabella.

C:\PS> $p.CounterSamples | sort-object -property CookedValue -Descending | format-table -auto

Path                                              InstanceName      CookedValue
----                                              ------------      -----------
\\server01\process(_total)\% processor time        _total        200.00641042078
\\server01\process(idle)\% processor time          idle          200.00641042078
\\server01\process(explorer#1)\% processor time    explorer                    0
\\server01\process(dwm#1)\% processor time         dwm                         0
\\server01\process(taskeng#1)\% processor time     taskeng                     0
\\server01\process(taskhost#1)\% processor time    taskhost                    0
\\server01\process(winlogon)\% processor time      winlogon                    0
\\server01\process(csrss)\% processor time         csrss                       0

Esempio 14

C:\PS># Get-Counter

Descrizione
-----------
Questi comandi trovano i processi nel computer con i working set di dimensioni maggiori. Elencano i processi in ordine decrescente in base alla dimensione del relativo working set.

Il primo comando ottiene un esempio del contatore "Process\Working Set - Private" per ciascun processo. Il comando salva i dati del contatore nella variabile $ws.

C:\PS> $ws = get-counter "\Process(*)\Working Set - Private"

Il secondo comando utilizza un operatore pipeline (|) per inviare i dati nella proprietà CounterSamples della variabile $ws al cmdlet Sort-Object in cui i dati del processo vengono ordinati in ordine decrescente in base al valore della proprietà CookedValue. Un'altra pipeline invia i dati ordinati al cmdlet Format-Table in cui i dati vengono formattati come tabella con le colonne InstanceName e CookedValue.

C:\PS> $ws.countersamples | sort-object -property cookedvalue -descending | format-table -property InstanceName, CookedValue -auto

InstanceName  CookedValue
------------  -----------
_total          162983936
svchost          40370176
powershell       15110144
explorer         14135296
svchost          10928128
svchost           9027584
...

Esempio 15

C:\PS># Get-Counter

Descrizione
-----------
Questo comando ottiene una serie di esempi del contatore Processor\%Processor Time all'intervallo di un secondo predefinito. Per interrompere il comando, premere CTRL+C.

C:\PS> get-counter -counter "\processor(_total)\% processor time" -continuous

Vedere anche

  • Import-Counter
  • Export-Counter


Get-Credential

Ottiene un oggetto credenziale basato su un nome utente e una password.

Sintassi

Get-Credential [-Credential] <PSCredential> [<CommonParameters>]

Descrizione

Il cmdlet Get-Credential crea un oggetto credenziale per un nome utente e una password specificati. Tale oggetto credenziale può essere utilizzato nelle operazioni in cui è richiesta la sicurezza.

Il cmdlet richiede all'utente una password o un nome utente e una password. La richiesta viene visualizzata tramite una finestra di dialogo o sulla riga di comando, a seconda dell'impostazione del Registro di sistema.

Parametri

-Credential <PSCredential>

Specifica un nome utente per la credenziale, ad esempio "Utente01" o "Dominio01\Utente01". Il nome del parametro ("Credential") è facoltativo.

Quando si invia il comando, viene richiesta una password.

Se si immette un nome utente senza un dominio, Get-Credential inserisce una barra rovesciata prima del nome.

Se si omette questo parametro, vengono richiesti un nome utente e una password.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.Management.Automation.PSCredential Get-Credential restituisce un oggetto credenziale.

Note

È possibile utilizzare l'oggetto PSCredential creato da Get-Credential in cmdlet che richiedono l'autenticazione utente, ad esempio quelli con un parametro Credential.

Il parametro Credential non è supportato dai provider installati con Windows PowerShell. È tuttavia possibile utilizzare il parametro Credential con Get-WmiObject, in quanto questo cmdlet chiama direttamente Microsoft .NET Framework.

Esempio 1

C:\PS>$c = Get-Credential

Descrizione
-----------
Tramite questo comando è possibile ottenere un oggetto credenziale e salvarlo nella variabile $c.

Quando si immette il comando, viene visualizzata una finestra di dialogo in cui viene richiesto di immettere un nome utente e una password. Quando si immettono le informazioni richieste, tramite il cmdlet viene creato un oggetto PSCredential che rappresenta le credenziali dell'utente e tale oggetto viene salvato nella variabile $c.

È possibile utilizzare l'oggetto come input per i cmdlet che richiedono l'autenticazione utente, ad esempio quelli con un parametro Credential. Il parametro Credential non è tuttavia supportato dai provider installati con Windows PowerShell.

Esempio 2

C:\PS>$c = Get-Credential

C:\PS>Get-WmiObject Win32_DiskDrive -ComputerName Server01 -Credential $c

Descrizione
-----------
In questi comandi viene utilizzato un oggetto credenziale ottenuto da Get-Credential per autenticare un utente in un computer remoto, affinché possa utilizzare Strumentazione gestione Windows (WMI) per gestire il computer.

Tramite il primo comando è possibile ottenere un oggetto credenziale e salvarlo nella variabile $c. Nel secondo comando l'oggetto credenziale viene utilizzato in un comando Get-WmiObject. Questo comando consente di ottenere informazioni sulle unità disco nel computer Server01.

Esempio 3

C:\PS>C:\PS>Get-WmiObject Win32_BIOS -ComputerName Server01 '
-Credential (get-credential Domain01\User01)

Descrizione
-----------
Con questo comando viene illustrato come includere un comando Get-Credential in un comando Get-WmiObject.

Nel comando viene utilizzato il cmdlet Get-WmiObject per ottenere informazioni sul BIOS del computer Server01. Vengono utilizzati il parametro Credential per autenticare l'utente, Domain01\User01, e un comando Get-Credential come valore del parametro Credential.

Esempio 4

C:\PS>$c = Get-Credential -credential User01

C:\PS>$c.Username

\User01

Descrizione
-----------
In questo comando viene creata una credenziale che include un nome utente senza un nome di dominio. Indica che Get-Credential inserisce una barra rovesciata prima del nome utente.

Con il primo comando si ottiene una credenziale con il nome utente User01 e la si archivia nella variabile $c.

Nel secondo comando viene visualizzato il valore della proprietà Username dell'oggetto credenziale risultante.

Esempio 5

C:\PS>$credential = $host.ui.PromptForCredential("Need credentials", "Please enter your user name and password.", "", "NetBiosUserName")

Descrizione
-----------
Questo comando utilizza il metodo PromptForCredential per richiedere all'utente il nome utente e la password. Il comando salva le credenziali risultati nella variabile $credential.

PromptForCredential è un'alternativa all'utilizzo di Get-Credential. Quando si utilizza PromptForCredential, è possibile specificare la didascalia, i messaggi e il nome utente visualizzati nella finestra di messaggio.

Esempio 6

C:\PS>Set-ItemProperty 'HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds' ConsolePrompting $true

Descrizione
-----------
Per impostazione predefinita, quando vengono richiesti un nome utente e una password all'utente, viene visualizzata una finestra di dialogo. Per visualizzare la richiesta sulla riga di comando, modificare il Registro di sistema eseguendo questo comando in Esegui come amministratore di Windows PowerShell.

Utilizzare lo stesso comando, con "ConsolePrompting $false" per visualizzare la richiesta con una finestra di dialogo.


Get-Culture

Ottiene le impostazioni cultura correnti impostate nel sistema operativo.

Sintassi

Get-Culture [<CommonParameters>]

Descrizione

Il cmdlet Get-Culture consente di ottenere informazioni sulle impostazioni cultura correnti. Sono incluse le informazioni sulle impostazioni correnti della lingua del sistema, ad esempio il layout della tastiera e il formato di visualizzazione di elementi quali numeri, valuta e date.

È possibile utilizzare anche il cmdlet Get-UICulture che consente di ottenere le impostazioni cultura correnti dell'interfaccia utente del sistema. Le impostazioni cultura dell'interfaccia utente determinano quali stringhe di testo vengono utilizzate per gli elementi dell'interfaccia utente, ad esempio menu e messaggi.

Parametri

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.Globalization.CultureInfo Get-Culture restituisce un oggetto che rappresenta le impostazioni cultura correnti.

Note

È inoltre possibile utilizzare le variabili $PsCulture e $PsUICulture. La variabile $PsCulture consente di archiviare il nome delle impostazioni cultura correnti, mentre la variabile $PsUICulture consente di archiviare il nome delle impostazioni cultura correnti dell'interfaccia utente.

Esempio 1

C:\PS>get-culture

Descrizione
-----------
Tramite questo comando verranno visualizzate informazioni sulle impostazioni internazionali del computer.

Esempio 2

C:\PS>$c = get-culture

C:\PS> $c | format-list -property *

Parent                         : en
LCID                           : 1033
KeyboardLayoutId               : 1033
Name                           : en-US
IetfLanguageTag                : en-US
DisplayName                    : English (United States)
NativeName                     : English (United States)
EnglishName                    : English (United States)
TwoLetterISOLanguageName       : en
ThreeLetterISOLanguageName     : eng
ThreeLetterWindowsLanguageName : ENU
CompareInfo                    : CompareInfo - 1033
TextInfo                       : TextInfo - 1033
IsNeutralCulture               : False
CultureTypes                   : SpecificCultures, InstalledWin32Cultures, FrameworkCultures
NumberFormat                   : System.Globalization.NumberFormatInfo
DateTimeFormat                 : System.Globalization.DateTimeFormatInfo
Calendar                       : System.Globalization.GregorianCalendar
OptionalCalendars              : {System.Globalization.GregorianCalendar, System.Globalization.GregorianCalendar}
UseUserOverride                : True
IsReadOnly                     : False

C:\PS> $c.calendar

MinSupportedDateTime : 1/1/0001 12:00:00 AM
MaxSupportedDateTime : 12/31/9999 11:59:59 PM
AlgorithmType        : SolarCalendar
CalendarType         : Localized
Eras                 : {1}
TwoDigitYearMax      : 2029
IsReadOnly           : False

C:\PS> $c.datetimeformat

AMDesignator                     : AM
Calendar                         : System.Globalization.GregorianCalendar
DateSeparator                    : /
FirstDayOfWeek                   : Sunday
CalendarWeekRule                 : FirstDay
FullDateTimePattern              : dddd, MMMM dd, yyyy h:mm:ss tt
LongDatePattern                  : dddd, MMMM dd, yyyy
LongTimePattern                  : h:mm:ss tt
MonthDayPattern                  : MMMM dd
PMDesignator                     : PM
RFC1123Pattern                   : ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
ShortDatePattern                 : M/d/yyyy
ShortTimePattern                 : h:mm tt
SortableDateTimePattern          : yyyy'-'MM'-'dd'T'HH':'mm':'ss
TimeSeparator                    : :
UniversalSortableDateTimePattern : yyyy'-'MM'-'dd HH':'mm':'ss'Z'
YearMonthPattern                 : MMMM, yyyy
AbbreviatedDayNames              : {Sun, Mon, Tue, Wed...}
ShortestDayNames                 : {Su, Mo, Tu, We...}
DayNames                         : {Sunday, Monday, Tuesday, Wednesday...}
AbbreviatedMonthNames            : {Jan, Feb, Mar, Apr...}
MonthNames                       : {January, February, March, April...}
IsReadOnly                       : False
NativeCalendarName               : Gregorian Calendar
AbbreviatedMonthGenitiveNames    : {Jan, Feb, Mar, Apr...}
MonthGenitiveNames               : {January, February, March, April...}

C:\PS> $c.datetimeformat.firstdayofweek
Sunday

Descrizione
-----------
In questo esempio viene illustrata la notevole quantità di dati dell'oggetto impostazioni cultura. Viene illustrato come visualizzare le proprietà e le sottoproprietà dell'oggetto.

Nel primo comando viene utilizzato il cmdlet Get-Culture per ottenere le impostazioni cultura correnti nel computer. L'oggetto impostazioni cultura risultante viene archiviato nella variabile $.

Con il secondo comando vengono visualizzate tutte le proprietà dell'oggetto impostazioni cultura. Vengono utilizzati un operatore pipeline (|) per inviare l'oggetto impostazioni cultura in $c al cmdlet Format-List e il parametro Property per visualizzare tutte le proprietà (*) dell'oggetto. È possibile abbreviare questo comando in "$c | fl *".

I comandi rimanenti consentono di esplorare le proprietà dell'oggetto impostazioni cultura utilizzando la notazione con punto per visualizzare i valori delle proprietà dell'oggetto. È possibile utilizzare questa notazione per visualizzare il valore di qualsiasi proprietà dell'oggetto.

Nel terzo comando viene utilizzata la notazione con punto per visualizzare il valore della proprietà Calendar dell'oggetto impostazioni cultura.

Nel quarto comando viene utilizzata la notazione con punto per visualizzare il valore della proprietà DataTimeFormat dell'oggetto impostazioni cultura.

Molte proprietà dell'oggetto hanno a loro volta proprietà. Nel quinto comando viene utilizzata la notazione con punto per visualizzare il valore della proprietà FirstDayOfWeek della proprietà DateTimeFormat.


Get-Date

Ottiene la data e l'ora correnti.

Sintassi

Get-Date [-Formato <string>] [[-Data] <DateTime>] [-Day <int>] [-DisplayHint {<Date> | <Time> | <DateTime>}] [-Hour <int>] [-Minute <int>] [-Month <int>] [-Second <int>] [-Year <int>] [<CommonParameters>]

Get-Date [-UFormat <string>] [[-Data] <DateTime>] [-Day <int>] [-DisplayHint {<Date> | <Time> | <DateTime>}] [-Hour <int>] [-Minute <int>] [-Month <int>] [-Second <int>] [-Year <int>] [<CommonParameters>]

Descrizione

Il cmdlet Get-Date consente di ottenere un oggetto DateTime che rappresenta la data corrente o una data specificata dall'utente. La data e l'ora possono essere formattate in diversi formati Windows e UNIX. È possibile utilizzare Get-Date per generare una stringa di caratteri data o ora e inviare quindi la stringa ad altri cmdlet o programmi.

Parametri

-Data <DateTime>

Specifica una data e un'ora. Per impostazione predefinita, Get-Date consente di ottenere la data e l'ora correnti del sistema.

Digitare la data in un formato standard per le impostazioni locali del sistema, ad esempio gg-MM-aaaa (tedesco [Germania]) o MM/gg/aaaa (inglese [Stati Uniti]).

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Day <int>

Specifica il giorno del mese visualizzato. Immettere un valore compreso tra 1 e 31. Tale valore verrà visualizzato in sostituzione del giorno corrente.

Se si specifica un valore maggiore del numero di giorni del mese, il numero di giorni verrà aggiunto al mese e verrà visualizzata la data risultante. Ad esempio, se si specifica "get-date -month 2 -day 31", verrà visualizzato "3 marzo" e non "31 febbraio".

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-DisplayHint <DisplayHintType>

Determina gli elementi della data e dell'ora che vengono visualizzati.

I valori validi sono:

-- Date: visualizza solo la data

-- Time: visualizza solo l'ora

-- DateTime: visualizza la data e l'ora

Il valore predefinito è DateTime.

Questo parametro non influisce sull'oggetto DateTime recuperato da Get-Date.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Formato <string>

Visualizza la data e l'ora nel formato Microsoft .NET Framework indicato dall'identificatore di formato. Immettere un identificatore di formato. Per un elenco identificatori di formato disponibili, vedere l'argomento relativo alla classe DateTimeFormatInfo in MSDN (Microsoft Developer Network) Library all'indirizzo http://go.microsoft.com/fwlink/? LinkId=143638 (le informazioni potrebbero essere in lingua inglese).

Quando si utilizza il parametro Format, in Windows PowerShell vengono recuperate solo le proprietà dell'oggetto DateTime necessarie per visualizzare la data nel formato specificato. Di conseguenza, è possibile che alcune proprietà e alcuni metodi degli oggetti DateTime non siano disponibili.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Hour <int>

Specifica l'ora visualizzata. Immettere un valore compreso tra 1 e 23. Tale valore verrà visualizzato in sostituzione dell'ora corrente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Minute <int>

Specifica il minuto visualizzato. Immettere un valore compreso tra 1 e 59. Tale valore verrà visualizzato in sostituzione del minuto corrente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Month <int>

Specifica il mese visualizzato. Immettere un valore compreso tra 1 e 12. Tale valore verrà visualizzato in sostituzione del mese corrente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Second <int>

Specifica il secondo visualizzato. Immettere un valore compreso tra 1 e 59. Tale valore verrà visualizzato in sostituzione del secondo corrente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UFormat <string>

Visualizza la data e l'ora in formato UNIX. Per un elenco degli identificatori di formato, vedere la sezione Note.

Quando si utilizza il parametro UFormat, in Windows PowerShell vengono recuperate solo le proprietà dell'oggetto DateTime necessarie per visualizzare la data nel formato specificato. Di conseguenza, è possibile che alcune proprietà e alcuni metodi degli oggetti DateTime non siano disponibili.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Year <int>

Specifica l'anno visualizzato. Immettere un valore compreso tra 1 e 9999. Tale valore verrà visualizzato in sostituzione dell'anno corrente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.DateTime o System.String Quando si utilizzano i parametri Format o UFormat, l'oggetto di output è System.String.

Note

Per impostazione predefinita, la data e l'ora vengono visualizzate nei formati di data e ora estesi per le impostazioni locali del sistema.

Quando si reindirizza una data ai cmdlet che prevedono un input di tipo stringa, ad esempio Add-Content, in Windows PowerShell l'oggetto DateTime viene convertito in una stringa prima di essere aggiunto al file. Il formato ToString () predefinito è in formato breve per la data ed esteso per l'ora. Per specificare un formato alternativo, utilizzare i parametri Format o UFormat di Get-Date.

Valori di Uformat

Di seguito sono riportati i valori del parametro UFormat. Il formato del comando è:

get-date -uformat %<valore>

Ad esempio,

get-date - uformat%d

Date-Time:

Data e ora - formato esteso

(impostazione predefinita) (venerdì 16 giugno 2006 10.31.27)

c Data e ora - formato breve (ven 16 giu 2006 10.31.27)

Data:

D Data in formato mm/gg/aa (06/14/06)

x Data nel formato standard per le impostazioni internazionali (12/09/2007 per l'italiano)

Anno:

C Secolo (20 per il 2006)

Y Anno nel formato a quattro cifre (2006)

y Anno nel formato a due cifre (06)

G Uguale a 'Y'

g Uguale a 'y'

Mese:

b Nome del mese - formato breve (gen)

B Nome del mese - formato lungo (gennaio)

h Uguale a 'b'

m Numero del mese (06)

Settimana:

W Settimana dell'anno (da 00 a 52)

V Settimana dell'anno (da 01 a 53)

U Uguale a 'W'

Giorno:

a Giorno della settimana - formato breve (lun)

A Giorno della settimana - formato esteso (lunedì)

u Giorno della settimana - numero (lunedì = 1)

d Giorno del mese - Due cifre (05)

e Giorno del mese - cifra preceduta da uno spazio ( 5)

j Giorno dell'anno - (da 1 a 366)

w Uguale a 'u'

Orario:

p AM o PM

r Orario nel formato 12 ore (09:15:36 AM)

R Orario nel formato 24 ore - senza secondi (17:45)

T Orario nel formato 24 ore (17:45:52)

X Uguale a 'T'

Z Differenza di fuso orario da UTC (-07)

Ora:

H Ora nel formato 24 ore (17)

I Ora nel formato 12 ore (05)

k Uguale a 'H'

l Uguale a 'I' (I maiuscola = L minuscola)

Minuti e secondi:

M Minuti (35)

S Secondi (05)

s Secondi trascorsi dal 1 gennaio 1970 00.00.00 (1150451174.95705)

Caratteri speciali:

n carattere di avanzamento riga (\n)

t carattere di tabulazione (\t)

Esempio 1

C:\PS>get-date -DisplayHint date

Tuesday, June 13, 2006

Descrizione
-----------
Tramite questo comando verrà recuperato un oggetto DateTime, ma verrà visualizzata solo la data. Per indicare che deve essere visualizzata solo la data, verrà utilizzato il parametro DisplayHint.

Esempio 2

C:\PS>get-date -format g

6/13/2006 12:43 PM

Descrizione
-----------
Tramite questo comando la data e l'ora corrente verranno recuperate e formattate entrambe nel formato breve. Per specificare il formato, verrà utilizzato l'identificatore di formato "g" di .NET Framework, ovvero Generale per specifica della data e dell'ora in formato breve.

Esempio 3

C:\PS>get-date -uformat "%Y / %m / %d / %A / %Z"

2006 / 06 / 13 / Tuesday / -07

Descrizione
-----------
Tramite questo comando la data e l'ora corrente verranno recuperate e formattate nel modo specificato dal comando. In questo caso, saranno inclusi l'anno espresso nel formato esteso (%Y), il mese espresso in formato numerico a due cifre (%m), la data (%d), il giorno della settimana espresso nel formato esteso (%A) e la differenza di fuso orario rispetto a UTC ("Zulu").

Esempio 4

C:\PS>(get-date -year 2000 -month 12 -day 31).dayofyear

366

Descrizione
-----------
Tramite questo comando verrà visualizzato il giorno dell'anno corrispondente alla data corrente. Ad esempio, il 31 dicembre corrisponde al trecentosessantacinquesimo giorno del 2006, ma è il trecentosessantaseiesimo giorno del 2000.

Esempio 5

C:\PS>$a = get-date

C:\PS> $a.IsDaylightSavingTime()

True

Descrizione
-----------
Tramite questi comandi verrà indicato se la data e l'ora correnti sono regolate per l'ora legale nelle impostazioni internazionali correnti.

Tramite il primo comando verrà creata una variabile denominata $a, cui verrà assegnato l'oggetto recuperato da Get-Date. Verrà quindi utilizzato il metodo IsDaylightSavingTime sull'oggetto presente nella variabile $a.

Per visualizzare le proprietà e i metodi dell'oggetto DateTime, digitare:
 "get-date | get-member".

Esempio 6

C:\PS>$a = get-date

C:\PS> $a.ToUniversalTime()

Tuesday, June 13, 2006 8:09:19 PM

Descrizione
-----------
Tramite questi comandi la data e l'ora correnti verranno convertiti nell'ora UTC.

Tramite il primo comando verrà creata una variabile denominata $a, cui verrà assegnato l'oggetto recuperato da Get-Date. Verrà quindi utilizzato il metodo ToUniversalTime sull'oggetto presente nella variabile $a.

Esempio 7

C:\PS>$a = get-wmiobject win32_bios -computer server01

$a | format-list -property Name, @{Label="BIOS Age"; `
Expression={(get-date) - $_.ConvertToDateTime($_.ReleaseDate)}}

Name     : Default System BIOS
BIOS Age : 1345.17:31:07.1091047

Descrizione
-----------
In Strumentazione gestione Windows (WMI) viene utilizzato un oggetto data/ora diverso dall'oggetto data/ora di .NET Framework restituito da Get-Date. Per utilizzare le informazioni relative a data e ora restituite da WMI in un comando in cui tali informazioni vengono restituite da Get-Date, è necessario utilizzare il metodo ConvertToDateTime per convertire gli oggetti CIM_DATETIME di WMI in oggetti DateTime di .NET Framework.

Con i comandi di questo esempio vengono visualizzati il nome e l'età del BIOS in un computer remoto, Server01.

Nel primo comando viene utilizzato il cmdlet Get-WmiObject per ottenere un'istanza della classe Win32_BIOS in Server01 che viene archiviata nella variabile $a.

Nel secondo comando viene utilizzato l'operatore pipeline (|) per inviare l'oggetto WMI archiviato in $a al cmdlet Format-List. Viene quindi utilizzato il parametro Property di Format-List per specificare due proprietà da visualizzare nell'elenco, ovvero "Name" e "BIOS Age". La proprietà "BIOS Age" viene specificata in una tabella hash. Tale tabella include la chiave Label, in cui è specificato il nome della proprietà, e la chiave Expression, che include l'espressione per il calcolo dell'età del BIOS. Nell'espressione viene utilizzato il metodo ConvertToDateTime per convertire ogni istanza di ReleaseDate in un oggetto DateTime di .NET Framework. Il valore viene quindi sottratto da quello del cmdlet Get-Date, che, senza parametri, consente di ottenere la data corrente.

Il carattere di apice inverso (`) è il carattere di continuazione della riga in Windows PowerShell.

Esempio 8

C:\PS>get-date

Tuesday, June 13, 2006 12:43:42 PM

Descrizione
-----------
Con questo comando si ottiene un oggetto DateTime e vengono visualizzate la data e l'ora correnti nei formati estesi di data e ora per le impostazioni locali del sistema, come per il comando "get-date -format F".

Esempio 9

C:\PS>get-date

C:\PS> Tuesday, September 26, 2006 11:25:31 AM

c:\PS>(get-date).ToString()
9/26/2006 11:25:31 AM

C:\PS>get-date | add-content test.txt
# Adds 9/26/2006 11:25:31 AM

C:\PS>get-date -format F | add-content test.txt
# Adds Tuesday, September 26, 2006 11:25:31 AM

Descrizione
-----------
Con questi comandi viene illustrato come utilizzare Get-Date con Add-Content e altri cmdlet che convertono in una stringa l'oggetto DateTime generato da Get-Date.

Nel primo comando viene illustrato che la visualizzazione predefinita da un comando "get-date" è in formato di data e ora esteso.

Nel secondo comando viene illustrato che la visualizzazione predefinita dal metodo ToString() dell'oggetto DateTime è in formato di data e ora breve.

Nel terzo comando viene utilizzato un operatore pipeline per inviare l'oggetto DateTime al cmdlet Add-Content che aggiunge il contenuto al file Test.txt. Poiché Add-Content utilizza il metodo ToString () dell'oggetto DateTime, la data aggiunta è in formato di data e ora breve.

Nel quarto comando viene utilizzato il parametro Format di Get-Date per specificare il formato. Quando si utilizzano i parametri Format o UFormat, Get-Date genera una stringa, non un oggetto DateTime. Successivamente, quando la stringa viene inviata a Add-Content, viene aggiunta al file Test.txt senza modifiche.

Vedere anche

  • Set-Date
  • New-TimeSpan


Get-Event

Ottiene gli eventi nella coda eventi.

Sintassi

Get-Event [-EventIdentifier] <int> [<CommonParameters>]

Get-Event [[-SourceIdentifier] <string>] [<CommonParameters>]

Descrizione

Il cmdlet Get-Event consente di ottenere eventi nella coda degli eventi di Windows PowerShell per la sessione corrente. È possibile ottenere tutti gli eventi o utilizzare i parametri EventIdentifier o SourceIdentifier per specificarne alcuni.

Quando si verifica un evento, esso viene aggiunto alla coda degli eventi. La coda degli eventi include gli eventi per i quali è stata effettuata la registrazione, gli eventi creati tramite il cmdlet New-Event e l'evento generato alla chiusura di Windows PowerShell. È possibile utilizzare Get-Event o Wait-Event per ottenere gli eventi.

Questo cmdlet non consente di ottenere eventi dai registri del Visualizzatore eventi. Per ottenere tali eventi, utilizzare Get-WinEvent o Get-EventLog.

Parametri

-EventIdentifier <int>

Ottiene solo gli eventi con l'identificatore evento specificato.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-SourceIdentifier <string>

Ottiene solo gli eventi con l'identificatore di origine specificato. L'impostazione predefinita è tutti gli eventi nella coda degli eventi. Non è consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | 1
Valore predefinito | All events
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.Management.Automation.PSEventArgs Get-Event restituisce un oggetto PSEventArgs per ogni evento. Per visualizzare una descrizione di questo oggetto, digitare "get-help get-event -full" e consultare la sezione Note dell'argomento della Guida.

Note

Gli eventi, le sottoscrizioni di eventi e la coda degli eventi esistono solo nella sessione corrente. Se si chiude la sessione corrente, la coda degli eventi viene eliminata e la sottoscrizione di eventi viene annullata.

Il cmdlet Get-Event restituisce un oggetto PSEventArgs (System.Management.Automation.PSEventArgs) con le proprietà seguenti.

-- ComputerName: il nome del computer agente nel quale si è verificato l'evento. Il valore di questa proprietà viene compilato solo quando l'evento viene inoltrato da un computer remoto.

-- RunspaceId: GUID che identifica in modo univoco la sessione nella quale si verificato l'evento. Il valore di questa proprietà viene compilato solo quando l'evento viene inoltrato da un computer remoto.

-- EventIdentifier: valore intero (Int32) che identifica in modo univoco la funzionalità di notifica degli eventi nella sessione corrente.

-- Sender: oggetto che ha generato l'evento. Nel valore del parametro Action, la variabile automatica $Sender contiene l'oggetto Sender.

-- SourceEventArgs: il primo parametro che deriva da EventArgs, se esiste. Ad esempio, in un evento Elapsed del timer in cui la firma presenta il formato "Oggetto Sender, Timers.ElapsedEventArgs e", la proprietà SourceEventArgs conterrebbe Timers.ElapsedEventArgs. Nel valore del parametro Action, la variabile automatica $SourceEventArgs contiene tale valore.

-- SourceArgs: tutti i parametri della firma dell'evento originale. Per una firma dell'evento standard, $args[0] rappresenta il mittente e $args[1] rappresenta SourceEventArgs. Nel valore del parametro Action, la variabile automatica $SourceArgs contiene tale valore.

-- SourceIdentifier: stringa che identifica la sottoscrizione di eventi. Nel valore del parametro Action, la proprietà SourceIdentifier della variabile automatica $Event contiene tale valore.

-- TimeGenerated: oggetto DateTime che rappresenta l'ora alla quale è stato generato l'evento. Nel valore del parametro Action, la proprietà TimeGenerated della variabile automatica $Event contiene tale valore.

--MessageData: dati associati alla sottoscrizione di eventi. Gli utenti specificano questi dati quando registrano un evento. Nel valore del parametro Action, la proprietà MessageData della variabile automatica $Event contiene tale valore.

Esempio 1

C:\PS>get-event

Descrizione
-----------
Con questo comando si ottengono tutti gli eventi nella coda degli eventi.

Esempio 2

C:\PS>get-event -sourceIdentifier "PowerShell.ProcessCreated"

Descrizione
-----------
Con questo comando si ottengono gli eventi il cui valore della proprietà SourceIdentifier è "PowerShell.ProcessCreated".

Esempio 3

C:\PS>$events = get-event

C:\PS> $events[0] | format-list -property *

ComputerName     :
RunspaceId       : c2153740-256d-46c0-a57c-b805917d1b7b
EventIdentifier  : 1
Sender           : System.Management.ManagementEventWatcher
SourceEventArgs  : System.Management.EventArrivedEventArgs
SourceArgs       : {System.Management.ManagementEventWatcher, System.Management.EventArrivedEventArgs}
SourceIdentifier : ProcessStarted
TimeGenerated    : 11/13/2008 12:09:32 PM
MessageData      :

C:\PS> get-event | where {$_.TimeGenerated -ge "11/13/2008 12:15:00 PM"}

ComputerName     :
RunspaceId       : c2153740-256d-46c0-a57c-b8059325d1a0
EventIdentifier  : 1
Sender           : System.Management.ManagementEventWatcher
SourceEventArgs  : System.Management.EventArrivedEventArgs
SourceArgs       : {System.Management.ManagementEventWatcher, System.Management.EventArrivedEventArgs}
SourceIdentifier : ProcessStarted
TimeGenerated    : 11/13/2008 12:15:00 PM
MessageData      :

Descrizione
-----------
In questo esempio viene illustrato come ottenere eventi tramite proprietà diverse da SourceIdentifier.

Con il primo comando si ottengono tutti gli eventi nella coda degli eventi, che vengono quindi salvati nella variabile $events.

Nel secondo comando viene utilizzata la notazione di matrice per ottenere il primo evento (0-index) nella matrice della variabile $events. Viene utilizzato un operatore pipeline (|) per inviare l'evento al comando Format-List tramite cui vengono visualizzate tutte le proprietà dell'evento in un elenco. In questo modo è possibile esaminare le proprietà dell'oggetto evento.

Con il terzo comando viene illustrato come utilizzare il cmdlet Where-Object per ottenere un evento
in base all'ora in cui è stato generato.

Esempio 4

C:\PS>get-event -eventIdentifier 2

Descrizione
-----------
Con questo comando si ottiene l'evento con un identificatore evento uguale a 2.

Vedere anche

  • Register-ObjectEvent
  • Register-EngineEvent
  • Register-WmiEvent
  • Unregister-Event
  • New-Event
  • Remove-Event
  • Wait-Event


Get-EventLog

Ottiene gli eventi in un registro eventi o un elenco dei registri eventi, sui computer locali o remoti.

Sintassi

Get-EventLog [-AsString] [-ComputerName <string[]>] [-List] [<CommonParameters>]

Get-EventLog [-LogName] <string> [[-InstanceId] <Int64[]>] [-After <DateTime>] [-AsBaseObject] [-Before <DateTime>] [-ComputerName <string[]>] [-EntryType <string[]>] [-Index <Int32[]>] [-Message <string>] [-Newest <int>] [-Source <string[]>] [-UserName <string[]>] [<CommonParameters>]

Descrizione

Con il cmdlet Get-EventLog vengono ottenuti gli eventi e i registri eventi nei computer locali e remoti.

Utilizzare i parametri di Get-EventLog per cercare gli eventi utilizzando i relativi valori delle proprietà. Con Get-EventLog vengono ottenuti solo gli eventi che corrispondono a tutti i valori delle proprietà specificati.

I cmdlet che contengono il sostantivo EventLog (cmdlet EventLog) funzionano solo su registri eventi classici. Per ottenere eventi da registri che utilizzano la tecnologia Registro eventi di Windows in Windows Vista e nelle versioni successive di Windows, utilizzare Get-WinEvent.

Parametri

-After <DateTime>

Ottiene solo gli eventi che si verificano dopo la data e l'ora specificate. Immettere un oggetto DateTime, ad esempio quello restituito dal cmdlet Get-Date.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-AsBaseObject

Restituisce un oggetto System.Diagnostics.EventLogEntry standard per ogni evento. Senza questo parametro, Get-EventLog restituisce un oggetto PSObject esteso con proprietà EventLogName, Source e InstanceId aggiuntive.

Per vedere l'effetto di questo parametro, indirizzare gli eventi al cmdlet Get-Member ed esaminare il valore TypeName nel risultato.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-AsString

Restituisce l'output come stringhe anziché come oggetti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Before <DateTime>

Ottiene solo gli eventi che si verificano prima della data e dell'ora specificate. Immettere un oggetto DateTime, ad esempio quello restituito dal cmdlet Get-Date.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string[]>

Specifica un computer remoto. Il valore predefinito è il computer locale.

Digitare il nome NetBIOS, un indirizzo IP (Internet Protocol) o un nome di dominio completo di un computer remoto. Per specificare il computer locale, digitare il nome del computer, un punto (.) o "localhost".

Questo parametro non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName di Get-EventLog anche se il computer non è configurato per l'esecuzione di comandi remoti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-EntryType <string[]>

Ottiene solo gli eventi con il tipo di voce specificato. I valori validi sono Error, Information, FailureAudit, SuccessAudit e Warning. L'impostazione predefinita include tutti gli eventi.

Obbligatorio? | false
Posizione? | named
Valore predefinito | All events
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Index <Int32[]>

Ottiene solo gli eventi con i valori di indice specificati.

Obbligatorio? | false
Posizione? | named
Valore predefinito | All events
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InstanceId <Int64[]>

Ottiene solo gli eventi con gli ID istanza specificati.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-List

Ottiene un elenco dei registri eventi nel computer.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LogName <string>

Specifica il registro eventi. Immettere il nome registro (il valore della proprietà Log, non LogDisplayName) di uno dei registri eventi. Non è consentito l'utilizzo di caratteri jolly. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Message <string>

Ottiene gli eventi che presentano la stringa specificata nei messaggi. È possibile utilizzare questa proprietà per cercare i messaggi che contengono determinate parole o frasi. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-Newest <int>

Specifica il numero massimo di eventi recuperati. Con Get-EventLog viene ottenuto il numero specificato di eventi, partendo dall'evento più recente nel log.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Source <string[]>

Ottiene gli eventi scritti nel log dalle origini specificate. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-UserName <string[]>

Ottiene solo gli eventi associati ai nomi utente specificati. Immettere nomi o modelli di nome, ad esempio Utente01, Utente* o Dominio01\Utente*. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno. Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.Diagnostics.EventLogEntry. System.Diagnostics.EventLog. System.String Se viene specificato il parametro LogName, l'output è una raccolta di oggetti EventLogEntry (System.Diagnostics.EventLogEntry). Se viene specificato solo il parametro List, l'output è una raccolta di oggetti EventLog (System.Diagnostics.EventLog). Se vengono specificati sia il parametro List sia il parametro AsString, l'output è una raccolta di stringhe (System.String).

Esempio 1

C:\PS>get-eventlog -list

Descrizione
-----------
Con questo comando vengono visualizzate informazioni relative ai registri eventi nel computer.

Esempio 2

C:\PS>get-eventlog -newest 5 -logname application

Descrizione
-----------
Con questo comando vengono visualizzate le cinque voci più recenti nel registro eventi dell'applicazione.

Esempio 3

C:\PS>$events = get-eventlog -logname system -newest 1000

C:\PS> $events | group-object -property source -noelement | sort-object -property count -descending

Count Name
----- ----
   75 Service Control Manager
   12 Print
    6 UmrdpService
    2 DnsApi
    2 DCOM
    1 Dhcp
    1 TermDD
    1 volsnap

Descrizione
-----------
In questo esempio viene illustrato come trovare tutte le origini rappresentate nelle 1000 voci più recenti de registro eventi di sistema.

Con il primo comando si ottengono le 1000 voci più recenti nel registro eventi di sistema, le quali vengono archiviate nella variabile $events.

Nel secondo comando viene utilizzato un operatore pipeline (|) per inviare gli eventi in $events al cmdlet Group-Object che raggruppa le voci per il valore della proprietà Source. Nel comando è utilizzato un secondo operatore pipeline per inviare gli eventi raggruppati al cmdlet Sort-Object che li ordina in ordine decrescente in modo che l'origine che appare più frequentemente sia elencata per prima.

Source è solo una proprietà delle voci del registro eventi. Per visualizzate tutte le altre proprietà di una voce del registro eventi, indirizzare gli eventi al cmdlet Get-Member.

Esempio 4

C:\PS>get-eventlog -logname System -EntryType Error

Descrizione
-----------
Con questo comando vengono ottenuti solo gli eventi di errore del registro eventi di sistema.

Esempio 5

C:\PS>get-eventlog -logname System -instanceID 3221235481 -Source "DCOM"

Descrizione
-----------
Con questo comando vengono ottenuti gli eventi del registro di sistema che presentano InstanceID di 3221235481 e un valore Source di "DCOM."

Esempio 6

C:\PS>get-eventlog -logname "Windows PowerShell" -computername localhost, Server01, Server02

Descrizione
-----------
Con questo comando vengono ottenuti gli eventi del registro eventi "Windows PowerShell" su tre computer, Server01, Server02 e il computer locale, denominato "localhost".

Esempio 7

C:\PS>get-eventlog -logname "Windows PowerShell" -message "*failed*"

Descrizione
-----------
Con questo comando vengono ottenuti tutti gli eventi del registro eventi Windows PowerShell che presentano un valore di messaggio che include la parola "failed".

Esempio 8

C:\PS>$a = get-eventlog -log System -newest 1

C:\PS> $a | format-list -property *

EventID            : 7036
MachineName        : Server01
Data               : {}
Index              : 10238
Category           : (0)
CategoryNumber     : 0
EntryType          : Information
Message            : The description for Event ID
Source             : Service Control Manager
ReplacementStrings : {WinHTTP Web Proxy Auto-Disco
InstanceId         : 1073748860
TimeGenerated      : 4/11/2008 9:56:05 PM
TimeWritten        : 4/11/2008 9:56:05 PM
UserName           :
Site               :
Container          :

Descrizione
-----------
In questo esempio viene illustrato come visualizzare tutti i valori delle proprietà di un evento.

Con il primo comando viene ottenuto l'evento più recente del registro eventi di sistema e viene salvato nella variabile $a.

Nel il secondo comando viene utilizzato un operatore pipeline (|) per inviare l'evento in $a al comando Format-List che visualizza tutte (*) le proprietà dell'evento.

Esempio 9

C:\PS>get-eventlog -log application -source outlook | where {$_.eventID -eq 34}

Descrizione
-----------
Con questo comando vengono ottenuti gli eventi del registro eventi dell'applicazione dove l'origine è Outlook e l'ID evento è 34. Anche se Get-EventLog non presenta un parametro EventID, è possibile utilizzare il cmdlet Where-Object per selezionare gli eventi in base al valore di qualsiasi proprietà degli eventi.

Esempio 10

C:\PS>get-eventlog -log system -username NT* | group-object -property username -noelement | format-table Count, Name -auto

Count Name
----- ----
 6031 NT AUTHORITY\SYSTEM
   42 NT AUTHORITY\LOCAL SERVICE
    4 NT AUTHORITY\NETWORK SERVICE

Descrizione
-----------
Con questo comando vengono restituiti gli venti del registro di sistema raggruppati per il valore della proprietà UserName. Nel comando Get-EventLog viene utilizzato il parametro UserName per ottenere solo gli eventi nei quali il nome utente inizia con "NT*".

Esempio 11

C:\PS>$May31 = get-date 5/31/08

C:\PS> $July1 = get-date 7/01/08

C:\PS> get-eventlog -log "Windows PowerShell" -entrytype Error -after $may31 -before $july1

Descrizione
-----------
Con questo comando vengono ottenuti tutti gli errori del registro eventi Windows PowerShell che si sono verificati nel giugno 2008.

Vedere anche

  • Get-WinEvent
  • Clear-EventLog
  • Limit-EventLog
  • New-EventLog
  • Remove-EventLog
  • Show-EventLog
  • Write-EventLog
  • Get-WinEvent


Get-EventSubscriber

Ottiene i sottoscrittori di eventi nella sessione corrente.

Sintassi

Get-EventSubscriber [-SubscriptionId] <int> [-Force] [<CommonParameters>]

Get-EventSubscriber [[-SourceIdentifier] <string>] [-Force] [<CommonParameters>]

Descrizione

Il cmdlet Get-EventSubscriber consente di ottenere i sottoscrittori di eventi nella sessione corrente.

Quando si sottoscrive un evento tramite un cmdlet Register, un sottoscrittore di eventi viene aggiunto alla sessione di Windows PowerShell e gli eventi sottoscritti vengono aggiunti alla coda degli eventi ogni volta che vengono generati. Per annullare la sottoscrizione di un evento, eliminare il sottoscrittore di eventi tramite il cmdlet Unregister-Event.

Parametri

-Force

Ottiene tutti i sottoscrittori di eventi, inclusi quelli per gli eventi nascosti mediante il parametro SupportEvent di Register-ObjectEvent, Register-WmiEvent e Register-EngineEvent.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SourceIdentifier <string>

Ottiene solo i sottoscrittori di eventi con il valore della proprietà SourceIdentifier specificato. Per impostazione predefinita, Get-EventSubscriber consente di ottenere tutti i sottoscrittori di eventi nella sessione. Non è consentito l'utilizzo di caratteri jolly. Questo parametro rileva la distinzione tra maiuscole e minuscole.

Obbligatorio? | false
Posizione? | 1
Valore predefinito | All event subscribers
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-SubscriptionId <int>

Ottiene solo l'identificatore di sottoscrizione specificato. Per impostazione predefinita, Get-EventSubscriber consente di ottenere tutti i sottoscrittori di eventi nella sessione.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.Management.Automation.PSEventSubscriber Get-EventSubscriber restituisce un oggetto che rappresenta ciascun sottoscrittore di eventi.

Note

Il cmdlet New-Event, che crea un evento personalizzato, non genera un sottoscrittore. Il cmdlet Get-EventSubscriber non consente pertanto di trovare un oggetto sottoscrittore per questi eventi. Tuttavia, se si utilizza il cmdlet Register-EngineEvent per sottoscrivere un evento personalizzato (per inoltrare l'evento o specificare un'azione), Get-EventSubscriber consentirà di trovare il sottoscrittore generato da Register-EngineEvent.

Gli eventi, le sottoscrizioni di eventi e la coda degli eventi esistono solo nella sessione corrente. Se si chiude la sessione corrente, la coda degli eventi viene eliminata e la sottoscrizione di eventi viene annullata.

Esempio 1

C:\PS>$timer = New-Object Timers.Timer

C:\PS> $timer | Get-Member -Type Event

C:\PS> Register-ObjectEvent -inputObject $timer -EventName Elapsed -SourceIdentifier Timer.Elapsed

C:\PS> Get-EventSubscriber

C:\PS> $timer = New-Object Timers.Timer

C:\PS> $timer | Get-Member -Type Event

   TypeName: System.Timers.Timer

Name     MemberType Definition
----     ---------- ----------
Disposed Event      System.EventHandler Disposed(System.Object, System.EventArgs)
Elapsed  Event      System.Timers.ElapsedEventHandler Elapsed(System.Object, System.Timers.ElapsedEventArgs)

C:\PS> Register-ObjectEvent -InputObject $timer -EventName Elapsed -SourceIdentifier Timer.Elapsed

C:\PS> Get-EventSubscriber

SubscriptionId   : 4
SourceObject     : System.Timers.Timer
EventName        : Elapsed
SourceIdentifier : Timer.Elapsed
Action           :
HandlerDelegate  :
SupportEvent     : False
ForwardEvent     : False

Descrizione
-----------
In questo esempio viene utilizzato un comando Get-EventSubscriber per ottenere il sottoscrittore di eventi per un evento del timer.

Nel primo comando viene utilizzato il cmdlet New-Object per creare un'istanza di un oggetto timer. Il nuovo oggetto timer viene salvato nella variabile $timer.

Nel secondo comando viene utilizzato il cmdlet Get-Member per visualizzare gli eventi disponibili per gli oggetti timer. Viene utilizzato il parametro Type del cmdlet Get-Member con un valore pari a Event.

Nel terzo comando viene utilizzato il cmdlet Register-ObjectEvent per registrare l'evento Elapsed nell'oggetto timer.

Nel quarto comando viene utilizzato il cmdlet Get-EventSubscriber per ottenere il sottoscrittore di eventi per l'evento Elapsed.

Esempio 2

C:\PS>$timer  = New-Object Timers.Timer

C:\PS> $timer.Interval = 500

C:\PS> Register-ObjectEvent -inputObject $timer -eventName Elapsed -sourceIdentifier Timer.Random -Action { $random = Get-Random -Min 0 -Max 100 }

Id  Name           State      HasMoreData  Location  Command
--  ----           -----      -----------  --------  -------
3   Timer.Random   NotStarted False                  $random = Get-Random ...

C:\PS> $timer.Enabled = $true

C:\PS> $subscriber = Get-EventSubcriber -sourceIdentifer Timer.Random

C:\PS> ($subscriber.action).gettype().fullname
PSEventJob

C:\PS> $subscriber.action | format-list -property *

State         : Running
Module        : __DynamicModule_6b5cbe82-d634-41d1-ae5e-ad7fe8d57fe0
StatusMessage :
HasMoreData   : True
Location      :
Command       : $random = Get-Random -Min 0 -Max 100
JobStateInfo  : Running
Finished      : System.Threading.ManualResetEvent
InstanceId    : 88944290-133d-4b44-8752-f901bd8012e2
Id            : 1
Name          : Timer.Random
ChildJobs     : {}
...

C:\PS> & $subscriber.action.module {$random}
96

C:\PS> & $subscriber.action.module {$random}
23

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il modulo dinamico nell'oggetto PSEventJob nella proprietà Action del sottoscrittore di eventi.

Nel primo comando viene utilizzato il cmdlet New-Object per creare un oggetto timer. Nel secondo comando viene impostato l'intervallo del timer su 500 (millisecondi).

Nel terzo comando viene utilizzato il cmdlet Register-ObjectEvent per registrare l'evento Elapsed dell'oggetto timer. Il comando include un'azione che gestisce l'evento. Quando l'intervallo del timer è trascorso, viene generato un evento e vengono eseguiti i comandi nell'azione. In questo caso, il cmdlet Get-Random genera un numero casuale compreso tra 0 e 100 e lo salva nella variabile $random. L'identificatore di origine dell'evento è Timer.Random.

Quando si utilizza un parametro Action in un comando Register-ObjectEvent, il comando restituisce un oggetto PSEventJob che rappresenta l'azione.

Nel quarto comando viene attivato il timer.

Nel quinto comando viene utilizzato il cmdlet Get-EventSubscriber per ottenere il sottoscrittore di eventi dell'evento Timer.Random. L'oggetto sottoscrittore di eventi viene salvato nella variabile $subscriber.

Nel sesto comando viene indicato che la proprietà Action dell'oggetto sottoscrittore di eventi contiene un oggetto PSEventJob. Infatti, contiene lo stesso oggetto PSEventJob restituito dal comando Register-ObjectEvent.

Nel settimo comando viene utilizzato il cmdlet Format-List per visualizzare in un elenco tutte le proprietà dell'oggetto PSEventJob nella proprietà Action. Il risultato rivela che l'oggetto PSEventJob dispone di una proprietà Module in cui è contenuto un modulo di script dinamico che implementa l'azione.

Nei comandi rimanenti viene utilizzano l'operatore di chiamata (&) per richiamare il comando nel modulo e visualizzare il valore della variabile $random. È possibile utilizzare l'operatore di chiamata per richiamare qualsiasi comando in un modulo, inclusi i comandi non esportati. In questo caso, nei comandi viene visualizzato il numero casuale che viene generato quando si verifica l'evento Elapsed.

Per ulteriori informazioni sui moduli, vedere about_Modules.

Vedere anche

  • Register-ObjectEvent
  • Register-EngineEvent
  • Register-WmiEvent
  • Unregister-Event
  • Get-Event
  • New-Event
  • Remove-Event
  • Wait-Event


Get-ExecutionPolicy

Ottiene i criteri di esecuzione per la sessione corrente.

Sintassi

Get-ExecutionPolicy [[-Scope] {<Process> | <CurrentUser> | <LocalMachine> | <UserPolicy> | <MachinePolicy>}] [-List] [<CommonParameters>]

Descrizione

Il cmdlet Get-ExecutionPolicy ottiene i criteri di esecuzione per la sessione corrente.

Tale criterio è determinato dai criteri di esecuzione specificati dall'utente utilizzando Set-ExecutionPolicy e dalle impostazioni dei Criteri di gruppo per il criterio di esecuzione di Windows PowerShell. Il valore predefinito è "Restricted".

Senza parametri, Get-ExecutionPolicy ottiene i criteri di esecuzione effettivi nella sessione. È possibile utilizzare il parametro List per ottenere tutti i criteri di esecuzione che influiscono sulla sessione o il parametro Scope per ottenere i criteri di esecuzione per un particolare ambito.

Per ulteriori informazioni, vedere about_Execution_Policies.

Parametri

-List

Ottiene tutti i valori dei criteri di esecuzione per la sessione elencata in ordine di precedenza. Per impostazione predefinita, Get-ExecutionPolicy ottiene unicamente i criteri di esecuzione effettivi.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Scope <ExecutionPolicyScope>

Ottiene i criteri di esecuzione nell'ambito specificato. Per impostazione predefinita, Get-ExecutionPolicy ottiene i criteri di esecuzione effettivi per la sessione corrente.

I valori validi sono:

-- MachinePolicy: i criteri di esecuzione impostati da Criteri di gruppo per tutti gli utenti del computer.

-- UserPolicy: i criteri di esecuzione impostati da Criteri di gruppo per l'utente corrente del computer.

-- Process: i criteri di esecuzione impostati per il processo corrente di Windows PowerShell.

-- CurrentUser: i criteri di esecuzione impostati per l'utente corrente.

-- LocalMachine: i criteri di esecuzione impostati per tutti gli utenti del computer.

Obbligatorio? | false
Posizione? | 1
Valore predefinito | Effective execution policy
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Microsoft.PowerShell.ExecutionPolicy Get-ExecutionPolicy restituisce un oggetto per ogni criterio di esecuzione ottenuto.

Note

Non è possibile utilizzare Get-ExecutionPolicy per ottenere particolari criteri di esecuzione impostati per un determinato ambito o per ottenere il criterio di esecuzione impostato da un Criterio di gruppo. Get-ExecutionPolicy ottiene solo i criteri di esecuzione validi determinati dall'applicazione di tutte le regole di precedenza.

Il criterio di esecuzione fa parte della strategia di sicurezza di Windows PowerShell. Esso determina se è possibile caricare file di configurazione, incluso il profilo di Windows PowerShell, ed eseguire script, nonché determina quali script, se presenti, devono essere firmati digitalmente per poter essere eseguiti.

Il criterio di esecuzione in uso è determinato dai criteri impostati dall'utente utilizzando Set-ExecutionPolicy e dai Criteri di gruppo relativi all'attivazione dell'esecuzione degli script per computer e utenti. L'ordine di precedenza è criteri di gruppo computer > criteri di gruppo utente > criteri di esecuzione processo (sessione) > criteri di esecuzione utente > criteri di esecuzione computer.

Per ulteriori informazioni sui criteri di esecuzione di Windows PowerShell, incluse le definizioni dei criteri di Windows PowerShell, vedere about_Execution_Policies.

Esempio 1

C:\PS>get-executionpolicy

Restricted

Descrizione
-----------
Tramite questo comando viene ottenuto il criterio di esecuzione corrente per la shell.

Esempio 2

C:\PS>set-executionpolicy RemoteSigned; get-executionPolicy

RemoteSigned

Descrizione
-----------
Tramite questi comandi vengono definite nuove impostazioni per il criterio di esecuzione della shell e viene visualizzato il criterio di esecuzione in uso. I comandi sono separati da un punto e virgola (;). Poiché non vi sono impostazioni dei Criteri di gruppo, in questo esempio l'impostazione definita dall'utente corrisponde al criterio in uso nella shell.

Esempio 3

C:\PS>get-executionpolicy -list

        Scope  ExecutionPolicy
        -----  ---------------
MachinePolicy  Undefined
   UserPolicy  Undefined
      Process  Undefined
  CurrentUser  AllSigned
 LocalMachine  RemoteSigned

C:\PS> get-executionpolicy
AllSigned

Descrizione
-----------
Questi comandi ottengono tutti i criteri di esecuzione nella sessione corrente e i criteri di esecuzione effettivi.

Con il primo comando si ottengono tutti i criteri di esecuzione che influiscono sulla sessione corrente. I criteri sono elencati in ordine di precedenza.

Con il secondo comando si ottengono unicamente i criteri di esecuzione effettivi, ovvero quelli impostati nell'ambito CurrentUser.

Vedere anche

  • Set-ExecutionPolicy
  • Get-AuthenticodeSignature
  • Set-AuthenticodeSignature
  • about_Execution_Policies
  • about_Signing


Get-FormatData

Ottiene i dati di formattazione della sessione corrente.

Sintassi

Get-FormatData [[-TypeName] <string[]>] [<CommonParameters>]

Descrizione

Il cmdlet Get-FormatData ottiene i dati di formattazione della sessione corrente.

I dati di formattazione della sessione includono dati dei file di formattazione Format.ps1xml (come quelli nella directory $pshome), dati di formattazione per moduli importati nella sessione e dati di formattazione per i comandi importati nella sessione tramite il cmdlet Import-PSSession.

È possibile utilizzare questo cmdlet per esaminare i dati di formattazione. È quindi possibile utilizzare il cmdlet Export-FormatData per serializzare gli oggetti (convertirli in XML) e salvarli nei file Format.ps1xml.

Per ulteriori informazioni sui file di formattazione in Windows PowerShell, vedere about_Format.ps1xml.

Parametri

-TypeName <string[]>

Ottiene solo i dati di formattazione con i nomi dei tipi specificati. Immettere i nomi dei tipi. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.Management.Automation.ExtendedTypeDefinition

Esempio 1

C:\PS>get-formatdata

Descrizione
-----------
Con questo comando si ottengono tutti i dati di formattazione nella sessione.

Esempio 2

C:\PS>get-formatdata -typename Microsoft.Wsman*

Descrizione
-----------
Con questo comando si ottengono gli elementi dei dati di formattazione i cui nomi cominciano con "Microsoft.Wsman."

Esempio 3

C:\PS>$f = get-formatdata -typename helpinfoshort

C:\PS> $f

TypeName        FormatViewDefinition
--------        --------------------
HelpInfoShort   {help , TableControl}

C:\PS> $f.FormatViewDefinition[0].control

Headers                                                                    Rows
-------                                                                    ----
{System.Management.Automation.TableControlColumnHeader, System.Manageme... {System.Management.Automation.TableControlRow}

C:\PS> $f.FormatViewDefinition[0].control.headers

Label         Alignment      Width
-----         ---------      -----
Name          Left           33
Category      Left           9
              Undefined      0

Descrizione
-----------
In questo esempio viene illustrato come ottenere un oggetto dati di formattazione e come esaminarne le proprietà.

Esempio 4

C:\PS>$a = get-formatdata

C:\PS> import-module bitstransfer
C:\PS> $b = get-formatdata
C:\PS> compare-object $a $b

InputObject                                                SideIndicator
-----------                                                -------------
Microsoft.BackgroundIntelligentTransfer.Management.BitsJob =>

C:\PS> get-formatdata *bits* | export-formatdata -filepath c:\test\bits.format.ps1xml

C:\PS> get-content c:\test\bits.format.ps1xml

<?xml version="1.0" encoding="utf-8"?><Configuration><ViewDefinitions>
<View><Name>Microsoft.BackgroundIntelligentTransfer.Management.BitsJob</Name>
...

Descrizione
-----------
In questo esempio viene illustrato come utilizzare Get-FormatData ed Export-FormatData per esportare i dati di formattazione aggiunti da un modulo.

Nei primi quattro comandi vengono utilizzati i cmdlet Get-FormatData, Import-Module e Compare-Object per identificare il tipo di formato aggiunto alla sessione dal modulo BitsTransfer.

Nel quinto comando viene utilizzato il cmdlet Get-FormatData per ottenere il tipo di formato aggiunto dal modulo BitsTransfer. Viene utilizzato un operatore pipeline (|) per inviare l'oggetto tipo di formato al cmdlet Export-FormatData, che lo converte nuovamente in XML e lo salva nel file format.ps1xml specificato.

Nel comando finale viene illustrato un estratto del contenuto del file format.ps1xml.

Vedere anche

  • Export-FormatData
  • Update-FormatData


Get-Help

Visualizza informazioni sui comandi e i concetti relativi a Windows PowerShell.

Sintassi

Get-Help [-Full] [[-Name] <string>] [-Category <string[]>] [-Component <string[]>] [-Functionality <string[]>] [-Online] [-Path <string>] [-Role <string[]>] [<CommonParameters>]

Get-Help [-Detailed] [[-Name] <string>] [-Category <string[]>] [-Component <string[]>] [-Functionality <string[]>] [-Online] [-Path <string>] [-Role <string[]>] [<CommonParameters>]

Get-Help [-Esempi] [[-Name] <string>] [-Category <string[]>] [-Component <string[]>] [-Functionality <string[]>] [-Online] [-Path <string>] [-Role <string[]>] [<CommonParameters>]

Get-Help [-Parameter <string>] [[-Name] <string>] [-Category <string[]>] [-Component <string[]>] [-Functionality <string[]>] [-Online] [-Path <string>] [-Role <string[]>] [<CommonParameters>]

Descrizione

Mediante il cmdlet Get-Help vengono visualizzate informazioni su comandi e concetti relativi a Windows PowerShell, inclusi cmdlet, provider, funzioni e script. Per ottenere un elenco di tutti i titoli degli argomenti della Guida relativi ai cmdlet, digitare "get-help *".

Se si digita "Get-Help" seguito dal nome esatto di un argomento della Guida o da una parola univoca presente in un argomento della Guida, Get-Help visualizza il contenuto dell'argomento. Se si immette una parola o un gruppo di parole che compare in diversi titoli della guida, mediante Get-Help viene visualizzato un elenco di titoli corrispondenti. Se si immette una parola che non è presente in alcun titolo della guida, mediante Get-Help viene visualizzato un elenco di argomenti che presentano tale parola nel contenuto.

Oltre a "get-help", è possibile digitare "help" o "man" per visualizzare una schermata di testo alla volta, oppure "<nome-cmdlet> -?" che corrisponde a Get-Help ma funziona solo per i cmdlet.

È possibile visualizzare l'intero file della Guida o parti selezionate del file, ad esempio la sintassi, i parametri o gli esempi. È inoltre possibile utilizzare il parametro Online per visualizzare una versione online di un file della Guida nel browser Internet. Questi parametri non hanno effetto sugli argomenti concettuali della Guida.

Gli argomenti concettuali della Guida in Windows PowerShell iniziano con "about_", ad esempio "about_Comparison_Operators". Per vedere tutti gli argomenti "about_", digitare "get-help about_*". Per visualizzare un determinato argomento, digitare "get-help about_<nome-argomento>", ad esempio "get-help about_Comparison_Operators".

Parametri

-Category <string[]>

Visualizza la Guida per gli elementi della categoria specificata. I valori validi sono Alias, Cmdlet, Provider e HelpFile. Gli argomenti concettuali sono inclusi nella categoria HelpFile.

Category è una proprietà dell'oggetto MamlCommandHelpInfo restituito da Get-Help. Questo parametro non ha alcun effetto sulla visualizzazione degli argomenti concettuali ("about_") della Guida.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Component <string[]>

Visualizza un elenco di strumenti con il valore del componente specificato, ad esempio "Exchange". Immettere un nome di componente. È consentito l'utilizzo di caratteri jolly.

Component è una proprietà dell'oggetto MamlCommandHelpInfo restituito da Get-Help. Questo parametro non ha alcun effetto sulla visualizzazione degli argomenti concettuali ("About_") della Guida.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Detailed

Aggiunge esempi e descrizioni dei parametri alla visualizzazione di base della Guida.

Questo parametro non ha alcun effetto sulla visualizzazione degli argomenti concettuali ("About_") della Guida.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Esempi

Visualizza solo il nome, il riepilogo e gli esempi. Per visualizzare solo gli esempi, digitare "(get-help <cmdlet-name>).examples".

Questo parametro non ha alcun effetto sulla visualizzazione degli argomenti concettuali ("About_") della Guida.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Full

Visualizza l'intero file della Guida per un cmdlet, comprese le descrizioni e gli attributi dei parametri, gli esempi, tipi di oggetti di input e output e note aggiuntive.

Questo parametro non ha alcun effetto sulla visualizzazione degli argomenti concettuali ("About_") della Guida.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Functionality <string[]>

Visualizza la Guida per gli elementi con la funzionalità specificata. Immettere la funzionalità. È consentito l'utilizzo di caratteri jolly.

Functionality è una proprietà dell'oggetto MamlCommandHelpInfo restituito da Get-Help. Questo parametro non ha alcun effetto sulla visualizzazione degli argomenti concettuali ("About_") della Guida.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string>

Richiede la Guida sullo strumento o sull'argomento concettuale specificato. Immettere un nome di cmdlet, provider, script o funzione, ad esempio Get-Member, un nome di argomento concettuale, ad esempio "about_Objects", o un alias, ad esempio "ls". I caratteri jolly sono consentiti nei nomi dei cmdlet e dei provider, ma non è possibile utilizzarli per trovare i nomi degli argomenti della Guida relativi a funzioni e script.

Per ottenere la Guida per uno script che non si trova in un percorso elencato nella variabile di ambiente Path, digitare il percorso e il nome file dello script.

Se si immette il nome esatto di un argomento della guida, tramite Get-Help viene visualizzato il contenuto di tale argomento. Se si immette una parola o un gruppo di parole che compare in diversi titoli della guida, mediante Get-Help viene visualizzato un elenco di titoli corrispondenti. Se si immette una parola che non ha corrispondenza in alcun titolo della guida, mediante Get-Help viene visualizzato un elenco di argomenti che presentano tale parola nel contenuto.

I nomi degli argomenti concettuali, ad esempio about_Objects, devono essere inseriti in inglese, anche nelle versioni di Windows PowerShell non in lingua inglese.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Online

Visualizza la versione online di un argomento della Guida nel browser Internet predefinito. Questo parametro è valido solo per gli argomenti della Guida relativi a cmdlet, funzioni e script.

Get-Help utilizza l'indirizzo Internet (Uniform Resource Identifier [URI]) riportato nel primo elemento della sezione Argomenti correlati dell'argomento della Guida di un cmdlet, funzione o script. Questo parametro funziona solo quando l'argomento della Guida include un URI che inizia con "Http" o "Https" e nel sistema è installato un browser Internet.

Per informazioni sul supporto di questa funzionalità negli argomenti della Guida scritti, vedere about_Comment_Based_Help e l'argomento relativo alla scrittura di argomenti della Guida per i cmdlet in MSDN library (Microsoft Developer Network) all'indirizzo (le informazioni potrebbero essere in lingua inglese).

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Parameter <string>

Visualizza solo le descrizioni dettagliate dei parametri specificati. È consentito l'utilizzo di caratteri jolly.

Questo parametro non ha alcun effetto sulla visualizzazione degli argomenti concettuali ("About_") della Guida.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string>

Ottiene informazioni della guida che spiegano il funzionamento del cmdlet nel percorso del provider specificato. Immettere il percorso di un provider Windows PowerShell.

Questo parametro ottiene una versione personalizzata dell'argomento della Guida dedicato al cmdlet che ne illustra il funzionamento nel percorso del provider Windows PowerShell specificato. Questo parametro ha effetto solo per la Guida relativa a un cmdlet del provider e solo quando il provider include una versione personalizzata dell'argomento della Guida relativo al cmdlet del provider.

Per visualizzare la Guida del cmdlet personalizzato per un percorso del provider, passare al percorso del provider e immettere un comando Get-Help oppure, da qualsiasi percorso, utilizzare il parametro Path di Get-Help per specificare il percorso del provider. Per ulteriori informazioni, vedere about_Providers.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Role <string[]>

Visualizza la Guida personalizzata per il ruolo utente specificato. Immettere un ruolo. È consentito l'utilizzo di caratteri jolly.

Immettere il ruolo svolto dall'utente in un'organizzazione. In base al valore di questo parametro, per alcuni cmdlet viene visualizzato testo diverso nei relativi file della Guida. Questo parametro non ha alcun effetto sulla Guida dei cmdlet principali.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a questo cmdlet.
Output | System.String o MamlCommandHelpInfo Se si richiede un argomento concettuale, Get-Help lo restituisce come stringa. Se si specifica il nome di un cmdlet, una funzione o uno script, viene restituito un oggetto MamlCommandHelpInfo. In caso contrario, Get-Help restituisce una delle visualizzazioni formattate specificate nel file Help.Format.ps1xml nella directory $pshome.

Note

Se non si specifica alcun parametro, "Get-Help" visualizza informazioni sulla Guida di Windows PowerShell.

Nella visualizzazione completa della Guida (-full) è inclusa una tabella contenente le informazioni sui parametri. Nella tabella sono inclusi i campi seguenti:

-- Required: indica se il parametro è obbligatorio (true) o facoltativo (false).

-- Position: indica se il parametro è denominato o posizionale (numerato). I parametri posizionali devono essere inseriti in una posizione specifica nel comando.

-- "Named": indica che il nome del parametro è obbligatorio, ma che il parametro può essere immesso in qualsiasi punto del comando.

-- <Number>: indica che il nome del parametro è facoltativo, ma che, se si omette il nome, il parametro deve essere immesso nella posizione specificata dal numero. "2", ad esempio, indica che quando si omette il nome il parametro deve essere il secondo (2) o unico parametro senza nome presente nel comando. Se viene specificato il nome, il parametro può essere immesso in qualsiasi punto del comando.

-- Default value: valore del parametro utilizzato da Windows PowerShell se non si include il parametro nel comando.

-- Accepts pipeline input: indica se è possibile (true) o meno (false) inviare oggetti al parametro attraverso una pipeline. "By Property Name" indica che l'oggetto inviato attraverso la pipeline deve avere una proprietà con lo stesso nome del parametro.

-- Accepts wildcard characters: indica se il valore di un parametro può includere caratteri jolly, ad esempio "* e ?".

Esempio 1

C:\PS>get-help

Descrizione
-----------
Tramite questo comando viene visualizzata la Guida di Windows PowerShell.

Esempio 2

C:\PS>get-help *

Descrizione
-----------
Tramite questo comando viene visualizzato un elenco di tutti i file della Guida di Windows PowerShell.

Esempio 3

C:\PS>get-help get-alias

C:\PS>help get-alias

C:\PS>get-alias -?

Descrizione
-----------
Tramite questi comandi vengono visualizzate informazioni di base sul cmdlet get-alias. Tramite i comandi "Get-Help" e "-?" le informazioni vengono visualizzate in una sola pagina. Con il comando "Help" le informazioni vengono visualizzate una pagina per volta.

Esempio 4

C:\PS>get-help about_*

Descrizione
-----------
Tramite questo comando viene visualizzato un elenco di argomenti concettuali inclusi nella Guida di Windows PowerShell. Tutti questi argomenti iniziano con i caratteri "about_". Per visualizzare un file della Guida specifico, digitare "get-help <nome-argomento>, ad esempio "get-help about_signing".

Esempio 5

C:\PS>get-help ls -detailed

Descrizione
-----------
Tramite questo comando viene visualizzata la Guida dettagliata per il cmdlet Get-ChildItem specificando uno dei relativi alias, "ls". Il parametro Detailed richiede la visualizzazione dettagliata del file della Guida che include descrizioni dei parametri ed esempi. Per visualizzare il file completo della Guida per un cmdlet, utilizzare il parametro Full.

Esempio 6

C:\PS>get-help format-string -full

Descrizione
-----------
Tramite questo comando viene visualizzata la Guida completa per il cmdlet Format-String. La visualizzazione completa della Guida include le descrizioni dei parametri, gli esempi, nonché una tabella contenente informazioni tecniche sui parametri.

Esempio 7

C:\PS>get-help start-service -examples

Descrizione
-----------
Con questo comando vengono visualizzati alcuni esempi di utilizzo di start-service nei comandi di Windows PowerShell.

Esempio 8

C:\PS>get-help get-childitem -parameter f*

Descrizione
-----------
Tramite questo comando vengono visualizzate le descrizioni dei parametri del cmdlet Get-ChildItem che iniziano con "f" (Filter e Force). Per le descrizioni di tutti i parametri, digitare "get-help get-childitem parameter*".

Esempio 9

C:\PS>(get-help write-output).syntax

Descrizione
-----------
Tramite questo comando viene visualizzata solo la sintassi del cmdlet Write-Output.

La sintassi è una delle numerose proprietà degli oggetti della Guida. Le altre sono description, details, examples e parameters. Per trovare tutti i metodi e le proprietà degli oggetti della Guida, digitare "get-help <nome-cmdlet> | get-member"; ad esempio "get-help start-service | get member".

Esempio 10

C:\PS>(get-help trace-command).alertset

Descrizione
-----------
Tramite questo comando vengono visualizzate le note sul cmdlet. Le note vengono archiviate nella proprietà alertSet dell'oggetto della Guida.

Le note includono informazioni concettuali e suggerimenti per l'utilizzo del cmdlet. Per impostazione predefinita, le note vengono visualizzate solo quando si utilizza il parametro Full di Get-Help, ma è possibile visualizzarle anche tramite la proprietà alertSet.

Esempio 11

C:\PS>get-help add-member -full | out-string -stream | select-string -pattern clixml

Descrizione
-----------
In questo esempio viene illustrato come cercare una parola in un particolare argomento della Guida del cmdlet. Tramite questo comando viene cercata la parola "clixml" nella versione completa dell'argomento della Guida relativo al cmdlet Add-Member.

Poiché tramite il cmdlet Get-Help viene generato un oggetto MamlCommandHelpInfo e non una stringa, è necessario utilizzare un comando che trasforma il contenuto dell'argomento della Guida in una stringa, ad esempio Out-String o Out-File.

Esempio 12

C:\PS>get-help get-member -online

Descrizione
-----------
Tramite questo comando viene visualizzata la versione online dell'argomento della Guida relativo al cmdlet Get-Member.

Esempio 13

C:\PS>get-help remoting

Descrizione
-----------
Con questo comando viene visualizzato un elenco di argomenti nel cui contenuto è presente la parola "comunicazione remota".

Quando si immette una parola che non è presente in nessun titolo degli argomenti, tramite Get-Help viene visualizzato un elenco di argomenti che presentano tale parola.

Esempio 14

C:\PS>get-help get-item -path SQLSERVER:\DataCollection

NAME
    Get-Item

SYNOPSIS
    Gets a collection of Server objects for the local computer and any computers to which you have made a SQL Server PowerShell connection.
...

C:\PS> cd SQLSERVER:\DataCollection
C:\PS> SQLSERVER:\DataCollection> get-help get-item

NAME
    Get-Item

SYNOPSIS
    Gets a collection of Server objects for the local computer and any computers to which you have made a SQL Server PowerShell connection.
...

C:\PS> Get-Item

NAME
    Get-Item

SYNOPSIS
    Gets the item at the specified location.

...

Descrizione
-----------
In questo esempio viene illustrato come ottenere la Guida per il cmdlet Get-Item in cui viene spiegato come utilizzare il cmdlet nel nodo DataCollection del provider SQL Server di Windows PowerShell.

Nell'esempio vengono illustrate due modalità per l'acquisizione della Guida personalizzata su Get-Item.

Nel primo comando viene utilizzato il parametro Path di Get-Help per specificare il percorso del provider. È possibile immettere questo comando in qualsiasi percorso.

Nel secondo comando viene utilizzato il cmdlet Set-Location (alias = "cd") per passare al percorso del provider. Da tale percorso, anche senza il parametro Path, il comando Get-Help consente di ottenere la Guida personalizzata per il percorso del provider.

Con il terzo comando viene illustrato come un comando Get-Help in un percorso del file system e senza il parametro Path, consenta di ottenere la Guida standard per il cmdlet Get-Item.

Esempio 15

C:\PS>get-help c:\ps-test\MyScript.ps1

Descrizione
-----------
Con questo comando si ottiene la Guida per lo script MyScript.ps1. Per informazioni sulla modalità di scrittura della Guida per funzioni e script, vedere about_Comment_Based_Help.

Vedere anche

  • about_Comment_Based_Help
  • Get-Command
  • Get-PSDrive
  • Get-Member


Get-History

Ottiene un elenco dei comandi immessi durante la sessione corrente.

Sintassi

Get-History [[-Id] <Int64[]>] [[-Count] <int>] [<CommonParameters>]

Descrizione

Il cmdlet Get-History ottiene la cronologia della sessione, ovvero l'elenco dei comandi immessi durante la sessione corrente. In Windows PowerShell viene automaticamente mantenuta una cronologia per ogni sessione. È possibile salvare la cronologia della sessione in formato XML o CSV. Per impostazione predefinita, i file della cronologia vengono salvati nella home directory, ma è possibile salvarli in qualsiasi percorso.

Parametri

-Count <int>

Visualizza il numero specificato delle voci più recenti della cronologia. Il valore predefinito è 32. Se si utilizzano entrambi i parametri Count e Id in un comando, la visualizzazione termina con il comando specificato dal parametro Id.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Id <Int64[]>

Specifica il numero di ID di un comando nella cronologia della sessione. Tramite Get-History si ottiene solo il comando specificato. Se si utilizzano Id e Count, tramite Get-History vengono ottenuti i comandi più recenti, l'ultimo dei quali sarà il comando specificato dal parametro Id.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Int64 È possibile reindirizzare un ID cronologia a Get-History.
Output | Microsoft.PowerShell.Commands.HistoryInfo Get-History restituisce un oggetto cronologia per ogni elemento cronologia ottenuto.

Note

La cronologia della sessione è un elenco dei comandi immessi durante la sessione insieme all'ID. La cronologia della sessione rappresenta l'ordine di esecuzione, lo stato e le ore di inizio e di fine del comando. I comandi immessi vengono aggiunti da Windows PowerShell alla cronologia per consentirne il riutilizzo. Per ulteriori informazioni sulla cronologia dei comandi, vedere about_History.

È inoltre possibile fare riferimento a Get-History tramite i relativi alias predefiniti, ovvero "h", "history" e "ghy". Per ulteriori informazioni, vedere about_Aliases.

Esempio 1

C:\PS>get-history

Descrizione
-----------
Tramite questo comando vengono ottenuti i 32 comandi eseguiti più di recente. Nella visualizzazione predefinita sono inclusi ogni comando e il relativo ID, indicante l'ordine di esecuzione.

Esempio 2

C:\PS>get-history | where-object {$_.commandLine -like "*service*"}

Descrizione
-----------
Tramite questo comando vengono recuperate le voci che includono la parola "service" dalla cronologia della sessione. Con il primo comando vengono ottenute le 32 voci più recenti della cronologia della sessione. L'operatore pipeline (|) passa i risultati al cmdlet Where-Object, tramite cui vengono selezionati solo i comandi che includono la parola "service".

Esempio 3

C:\PS>get-history -id 7 -count 5 | export-csv history.csv

Descrizione
-----------
Tramite questo comando vengono ottenute le cinque voci più recenti della cronologia, l'ultima delle quali è la voce 7. L'operatore pipeline (|) passa il risultato al cmdlet Export-Csv, tramite cui la cronologia viene formattata come testo separato da virgole e quindi salvata nel file History.csv. Nel file sono inclusi i dati visualizzati durante la modifica della cronologia in elenco, compresi lo stato e le ore di inizio e di fine del comando.

Esempio 4

C:\PS>get-history -count 1

Descrizione
-----------
Tramite questo comando viene ottenuto l'ultimo comando, ovvero quello immesso più di recente, della cronologia dei comandi. Viene utilizzato il parametro Count per visualizzare solo un comando. Per impostazione predefinita, tramite Get-History vengono visualizzati i comandi più recenti. Questo comando può essere abbreviato in "h -c 1" ed equivale a premere il tasto freccia SU.

Esempio 5

C:\PS>get-history -count $MaximumHistoryCount

Descrizione
-----------
Tramite questo comando vengono visualizzati tutti i comandi salvati nella cronologia della sessione. Per impostazione predefinita, la variabile $MaximumHistoryCount è impostata su 64, pertanto questo comando può essere abbreviato in "h -c 64".

Esempio 6

C:\PS>get-history | format-list

Descrizione
-----------
Tramite questo comando vengono visualizzate tutte le proprietà delle voci della cronologia della sessione. L'operatore pipeline (|) passa il risultato al cmdlet Format-List, tramite cui vengono visualizzate tutte le proprietà di ogni voce della cronologia, inclusi l'ID, lo stato e le ore di inizio e di fine del comando.

Vedere anche

  • about_History
  • Invoke-History
  • Add-History
  • Clear-History


Get-Host

Ottiene un oggetto che rappresenta il programma host corrente. Visualizza la versione di Windows PowerShell e le informazioni sulle impostazioni internazionali per impostazione predefinita.

Sintassi

Get-Host [<CommonParameters>]

Descrizione

Il cmdlet Get-Host consente di ottenere un oggetto che rappresenta il programma che ospita Windows PowerShell.

La visualizzazione predefinita include il numero di versione di Windows PowerShell e le impostazioni internazionali e della lingua correnti utilizzate dall'host, ma l'oggetto host contiene numerose informazioni, tra cui i dettagli sulla versione di Windows PowerShell attualmente in esecuzione, le impostazioni cultura correnti e le impostazioni cultura dell'interfaccia utente di Windows PowerShell. È inoltre possibile utilizzare questo cmdlet per personalizzare le funzionalità dell'interfaccia utente del programma host, ad esempio i colori di testo e sfondo.

Parametri

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.Management.Automation.Internal.Host.InternalHost Get-Host restituisce un oggetto System.Management.Automation.Internal.Host.InternalHost.

Note

La variabile automatica $host contiene lo stesso oggetto restituito da Get-Host ed è possibile utilizzarla nello stesso modo. Analogamente, le variabili automatiche $PSCulture e $PSUICulture contengono gli stessi oggetti delle proprietà CurrentCulture e CurrentUICulture dell'oggetto host. Queste funzionalità sono intercambiabili.

Per ulteriori informazioni, vedere about_Automatic_Variables.

Esempio 1

C:\PS>get-host

Name             : ConsoleHost
Version          : 2.0
InstanceId       : e4e0ab54-cc5e-4261-9117-4081f20ce7a2
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-US
CurrentUICulture : en-US
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

Descrizione
-----------
Con questo comando vengono visualizzate le informazioni sulla console di Windows PowerShell che in questo esempio è il programma host corrente per Windows PowerShell. Sono inclusi il nome dell'host, la versione di Windows PowerShell in esecuzione nell'host, le impostazioni cultura dell'interfaccia utente e le impostazioni cultura correnti.

Le proprietà Version, UI, CurrentCulture, CurrentUICulture, PrivateData e Runspace contengono ciascuna un oggetto con proprietà molto utili, che verranno presentate in esempi successivi.

Esempio 2

C:\PS>$h = get-host

C:\PS> $win = $h.ui.rawui.windowsize

C:\PS> $win.height = 10

C:\PS> $win.width  = 10

C:\PS> $h.ui.rawui.set_windowsize($win)

Descrizione
-----------
Tramite questo comando la finestra di Windows PowerShell verrà ridimensionata a 10 pixel x 10 pixel.

Esempio 3

C:\PS>(get-host).version | format-list -property *

Major         : 2
Minor         : 0
Build         : -1
Revision      : -1
MajorRevision : -1
MinorRevision : -1

Descrizione
-----------
Con questo comando si ottengono informazioni dettagliate sulla versione di Windows PowerShell in esecuzione nell'host. È possibile visualizzare, ma non modificare questi valori.

La proprietà Version di Get-Host contiene un oggetto System.Version. In questo comando viene utilizzato un operatore pipeline (|) per inviare l'oggetto versione al cmdlet Format-List. Il comando Format-List utilizza il parametro Property con valore tutto (*) per visualizzare tutte le proprietà e i valori delle proprietà dell'oggetto versione.

Esempio 4

C:\PS>(get-host).currentculture | format-list -property *

Parent                         : en
LCID                           : 1033
KeyboardLayoutId               : 1033
Name                           : en-US
IetfLanguageTag                : en-US
DisplayName                    : English (United States)
NativeName                     : English (United States)
EnglishName                    : English (United States)
TwoLetterISOLanguageName       : en
ThreeLetterISOLanguageName     : eng
ThreeLetterWindowsLanguageName : ENU
CompareInfo                    : CompareInfo - 1033
TextInfo                       : TextInfo - 1033
IsNeutralCulture               : False
CultureTypes                   : SpecificCultures, InstalledWin32Cultures, FrameworkCultures
NumberFormat                   : System.Globalization.NumberFormatInfo
DateTimeFormat                 : System.Globalization.DateTimeFormatInfo
Calendar                       : System.Globalization.GregorianCalendar
OptionalCalendars              : {System.Globalization.GregorianCalendar, System.Globalization.GregorianCalendar}
UseUserOverride                : True
IsReadOnly                     : False

Descrizione
-----------
Con questo comando si ottengono informazioni dettagliate sulle impostazioni cultura correnti per Windows PowerShell in esecuzione nell'host. Si tratta delle stesse informazioni restituite dal cmdlet Get-Culture.

Analogamente, la proprietà CurrentUICulture restituisce lo stesso oggetto restituito da Get-UICulture.

La proprietà CurrentCulture dell'oggetto host contiene un oggetto System.Globalization.CultureInfo. Questo comando utilizza un operatore pipeline (|) per inviare l'oggetto CultureInfo al cmdlet Format-List. Il comando Format-List utilizza il parametro Property con un valore di (*) per visualizzare tutte le proprietà e i valori delle proprietà dell'oggetto CultureInfo.

Esempio 5

C:\PS>(get-host).currentculture.DateTimeFormat | format-list -property *

AMDesignator                     : AM
Calendar                         : System.Globalization.GregorianCalendar
DateSeparator                    : /
FirstDayOfWeek                   : Sunday
CalendarWeekRule                 : FirstDay
FullDateTimePattern              : dddd, MMMM dd, yyyy h:mm:ss tt
LongDatePattern                  : dddd, MMMM dd, yyyy
LongTimePattern                  : h:mm:ss tt
MonthDayPattern                  : MMMM dd
PMDesignator                     : PM
RFC1123Pattern                   : ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
ShortDatePattern                 : M/d/yyyy
ShortTimePattern                 : h:mm tt
SortableDateTimePattern          : yyyy'-'MM'-'dd'T'HH':'mm':'ss
TimeSeparator                    : :
UniversalSortableDateTimePattern : yyyy'-'MM'-'dd HH':'mm':'ss'Z'
YearMonthPattern                 : MMMM, yyyy
AbbreviatedDayNames              : {Sun, Mon, Tue, Wed...}
ShortestDayNames                 : {Su, Mo, Tu, We...}
DayNames                         : {Sunday, Monday, Tuesday, Wednesday...}
AbbreviatedMonthNames            : {Jan, Feb, Mar, Apr...}
MonthNames                       : {January, February, March, April...}
IsReadOnly                       : False
NativeCalendarName               : Gregorian Calendar
AbbreviatedMonthGenitiveNames    : {Jan, Feb, Mar, Apr...}
MonthGenitiveNames               : {January, February, March, April...}

Descrizione
-----------
Questo comando restituisce le informazioni dettagliate sulla proprietà DateTimeFormat delle impostazioni cultura correnti utilizzate per Windows PowerShell.

La proprietà CurrentCulture dell'oggetto host contiene un oggetto CultureInfo che dispone, a sua volta, di molte proprietà utili. Tra queste, la proprietà DateTimeFormat contiene un oggetto DateTimeFormatInfo con molte proprietà utili.

Per trovare il tipo di un oggetto archiviato in una proprietà dell'oggetto, utilizzare il cmdlet Get-Member. Per visualizzare i valori della proprietà dell'oggetto, utilizzare il cmdlet Format-List.

Esempio 6

C:\PS>(get-host).ui.rawui | format-list -property *

ForegroundColor       : DarkYellow
BackgroundColor       : DarkBlue
CursorPosition        : 0,390
WindowPosition        : 0,341
CursorSize            : 25
BufferSize            : 120,3000
WindowSize            : 120,50
MaxWindowSize         : 120,81
MaxPhysicalWindowSize : 182,81
KeyAvailable          : False
WindowTitle           : Windows PowerShell 2.0 (04/11/2008 00:08:14)

Descrizione
-----------
Questo comando consente di visualizzare le proprietà della proprietà RawUI dell'oggetto host. Modificando questi valori, è possibile modificare l'aspetto del programma host.

Esempio 7

C:\PS>(get-host).ui.rawui.backgroundcolor = "Black"

C:\PS> cls

Descrizione
-----------
Questi comandi modificano il colore di sfondo della console di Windows PowerShell in nero. Il comando "cls" è un alias per la funzione Clear-Host che consente di cancellare il contenuto dello schermo e modificare l'intera schermata nel nuovo colore.

Questa modifica ha effetto solo nella sessione corrente. Per modificare il colore di sfondo della console per tutte le sessioni, aggiungere il comando al profilo di Windows PowerShell.

Esempio 8

C:\PS>$host.privatedata.errorbackgroundcolor = "white"

Descrizione
-----------
Questo comando imposta il bianco come colore di sfondo dei messaggi di errore.

In questo comando viene utilizzata la variabile automatica $host che contiene l'oggetto host per il programma host corrente. Get-Host restituisce lo stesso oggetto contenuto in $host, pertanto sono interscambiabili.

In questo comando viene utilizzata la proprietà PrivateData di $host e la relativa proprietà ErrorBackgroundColor. Per visualizzare tutte le proprietà dell'oggetto nella proprietà $host.privatedata, digitare "$host.privatedata | format-list * ".

Vedere anche

  • Read-Host
  • Out-Host
  • Write-Host


Get-HotFix

Ottiene gli aggiornamenti rapidi applicati al computer locale e ai computer remoti.

Sintassi

Get-HotFix [[-Id] <string[]>] [-ComputerName <string[]>] [-Credential <PSCredential>] [<CommonParameters>]

Get-HotFix [-Descrizione <string[]>] [-ComputerName <string[]>] [-Credential <PSCredential>] [<CommonParameters>]

Descrizione

Con il cmdlet Get-Hotfix vengono ottenuti gli aggiornamenti rapidi applicati al computer locale o ai computer remoti mediante il modulo di manutenzione pacchetti basato su componenti.

Parametri

-ComputerName <string[]>

Specifica un computer remoto. Il valore predefinito è il computer locale.

Digitare il nome NetBIOS, un indirizzo IP (Internet Protocol) o un nome di dominio completo di un computer remoto.

Questo parametro non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName di Get-Hotfix anche se il computer non è configurato per l'esecuzione di comandi remoti.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Local computer
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Current user
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Descrizione <string[]>

Ottiene solo aggiornamenti rapidi con le descrizioni specificate. È consentito l'utilizzo di caratteri jolly. L'impostazione predefinita include tutti gli aggiornamenti rapidi nel computer.

Obbligatorio? | false
Posizione? | named
Valore predefinito | All hotfixes
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-Id <string[]>

Ottiene solo gli aggiornamenti rapidi con gli ID aggiornamento rapido specificati. L'impostazione predefinita include tutti gli aggiornamenti rapidi nel computer.

Obbligatorio? | false
Posizione? | 1
Valore predefinito | All hotfixes
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a Get-HotFix.
Output | System.Management.ManagementObject#root\CIMV2\Win32_QuickFixEngineering Get-Hotfix restituisce oggetti che rappresentano gli aggiornamenti rapidi nel computer.

Note

In questo cmdlet viene utilizzata la classe WMI Win32_QuickFixEngineering che rappresenta i piccoli aggiornamenti a livello di sistema del sistema operativo. A partire da Windows Vista, questa classe restituisce solo gli aggiornamenti forniti dal modulo di manutenzione pacchetti basato su componenti. Non include aggiornamenti forniti da Microsoft Windows Installer (MSI) o dal sito di aggiornamento di Windows. Per ulteriori informazioni, vedere l'argomento relativo alla classe Win32_QuickFixEngineering in Microsoft .NET Framework SDK all'indirizzo http://go.microsoft.com/fwlink/?LinkID=145071 (le informazioni potrebbero essere in lingua inglese).

L'output di questo cmdlet potrebbe essere diverso su sistemi operativi diversi.

Esempio 1

C:\PS>get-hotfix

Descrizione
-----------
Con questo comando vengono ottenuti tutti gli aggiornamenti rapidi nel computer locale.

Esempio 2

C:\PS>get-hotfix -description Security* -computername Server01, Server02 -cred Server01\admin01

Descrizione
-----------
Con questo comando vengono ottenuti tutti gli aggiornamenti rapidi sui computer Server01 e Server02 che presentano una descrizione che inizia con "Security".

Esempio 3

C:\PS>$a = get-content servers.txt

C:\PS> $a | foreach { if (!(get-hotfix -id KB957095 -computername $_)) { add-content $_ -path Missing-kb953631.txt }}

Descrizione
-----------
Con i comandi in questo esempio viene creato un file di testo in cui sono elencati i nomi di computer in cui manca un aggiornamento della protezione.

Nel comandi viene utilizzato il cmdlet Get-Hotfix per ottenere l'aggiornamento della protezione KB957095 in tutti i computer i cui nomi sono elencati nel file Servers.txt.

Se un computer non dispone dell'aggiornamento, il cmdlet Add-Content scrive il nome del computer nel file Missing-KB953631.txt.

Esempio 4

C:\PS>(get-hotfix | sort installedon)[-1]

Descrizione
-----------
Con questo comando vengono ottenuti gli aggiornamenti rapidi più recenti nel computer locale.

Ottiene gli aggiornamenti rapidi, li ordina in base al valore della proprietà InstalledOn, quindi utilizza la notazione di matrice per selezionare l'ultimo elemento nella matrice.

Vedere anche

  • Get-ComputerRestorePoint


Get-Item

Ottiene l'elemento nella posizione specificata.

Sintassi

Get-Item [-LiteralPath] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-UseTransaction] [<CommonParameters>]

Get-Item [-Path] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Get-Item ottiene l'elemento nella posizione specificata. Non ottiene il contenuto dell'elemento nella posizione, a meno che non si utilizzi un carattere jolly (*) per richiedere tutto il contenuto dell'elemento.

Il cmdlet Get-Item viene utilizzato dai provider Windows PowerShell per consentire l'esplorazione tra diversi tipi di archivi dati.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Il parametro Exclude ha effetto solo quando il comando include il contenuto di un elemento, ad esempio C:\Windows\*, dove il carattere jolly specifica il contenuto della directory C:\Windows.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di ottenere elementi altrimenti inaccessibili, ad esempio elementi nascosti. L'implementazione varia a seconda del provider. Per ulteriori informazioni, vedere about_Providers. Quando si utilizza il parametro Force, il cmdlet non può ignorare le limitazioni di sicurezza.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Recupera unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Il parametro Include ha effetto solo quando il comando include il contenuto di un elemento, ad esempio C:\Windows\*, dove il carattere jolly specifica il contenuto della directory C:\Windows.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica un percorso dell'elemento. A differenza di Path, il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso di un elemento. Get-Item ottiene l'elemento nel percorso specificato. È consentito l'utilizzo di caratteri jolly. Questo parametro è obbligatorio, ma il nome del parametro ("Path") è facoltativo.

Utilizzare un punto (.) per specificare la posizione corrente. Utilizzare il carattere jolly (*) per specificare tutti gli elementi nella posizione corrente.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso a Get-Item.
Output | Object Get-Item restituisce gli oggetti ottenuti. Il tipo è determinato dal tipo di oggetti nel percorso.

Note

È inoltre possibile fare riferimento a Get-Item tramite il relativo alias predefinito "gi". Per ulteriori informazioni, vedere about_Aliases.

Get-Item non prevede un parametro Recurse, perché ottiene solo un elemento, non il relativo contenuto. Per ottenere il contenuto di un elemento in modalità ricorsiva, utilizzare Get-ChildItem.

Per esplorare il Registro di sistema, utilizzare Get-Item per ottenere le chiavi del Registro di sistema e Get-ItemProperty per ottenere i valori e i dati del Registro di sistema. I valori del Registro di sistema sono considerati proprietà della chiave del Registro di sistema.

Il cmdlet Get-Item è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PsProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>get-item .

Directory: C:\

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         7/26/2006  10:01 AM            ps-test

Descrizione
-----------
Con questo comando viene ottenuta la directory corrente. Il punto (.) rappresenta l'elemento nella posizione corrente, non il contenuto.

Esempio 2

C:\PS>get-item *

Directory: C:\ps-test

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         7/26/2006   9:29 AM            Logs
d----         7/26/2006   9:26 AM            Recs
-a---         7/26/2006   9:28 AM         80 date.csv
-a---         7/26/2006  10:01 AM         30 filenoext
-a---         7/26/2006   9:30 AM      11472 process.doc
-a---         7/14/2006  10:47 AM         30 test.txt

Descrizione
-----------
Con questo comando si ottengono tutti gli elementi nella directory corrente. Il carattere jolly (*) rappresenta tutto il contenuto dell'elemento corrente.

Esempio 3

C:\PS>get-item C:\

Descrizione
-----------
Con questo comando viene ottenuta la directory corrente dell'unità C: L'oggetto recuperato rappresenta solo la directory, non il contenuto.

Esempio 4

C:\PS>get-item C:\*

Descrizione
-----------
Con questo comando vengono ottenuti gli elementi nell'unità C:. Il carattere jolly (*) rappresenta tutti gli elementi nel contenitore, non solo il contenitore.

In Windows PowerShell utilizzare un asterisco singolo (*) per ottenere il contenuto, anziché la forma standard "*.*". Il formato viene interpretato in modo letterale, pertanto "*.*" non consentirebbe il recupero delle directory o dei nomi di file senza punto.

Esempio 5

C:\PS>(get-item C:\Windows).LastAccessTime

Descrizione
-----------
Con questo comando viene ottenuta la proprietà LastAccessTime della directory C:\Windows. LastAccessTime è solo una proprietà delle directory del file system. Per vedere tutte le proprietà di una directory, digitare "(Get-Item <nome-directory>) | Get-Member".

Esempio 6

C:\PS>get-item hklm:\software\microsoft\powershell\1\shellids\microsoft.powershell\*

Descrizione
-----------
Con questo comando viene mostrato il contenuto della chiave del Registro di sistema Microsoft.PowerShell. È possibile utilizzare Get-Item con il provider Registry di Windows PowerShell per ottenere le chiavi e le sottochiavi del Registro di sistema, ma è necessario utilizzare Get-ItemProperty per ottenere i valori e i dati del Registro di sistema.

Esempio 7

C:\PS>get-item c:\Windows\* -include *.* -exclude w*

Descrizione
-----------
Con questo comando vengono ottenuti gli elementi nella directory Windows il cui nome contiene un punto (.), ma non inizia con w*. Questo comando funziona solo quando il percorso include un carattere jolly (*) per specificare il contenuto dell'elemento.

Vedere anche

  • about_Providers
  • Clear-Item
  • Copy-Item
  • Invoke-Item
  • Move-Item
  • Set-Item
  • New-Item
  • Remove-Item
  • Rename-Item


Get-ItemProperty

Ottiene le proprietà di un elemento specificato.

Sintassi

Get-ItemProperty [-LiteralPath] <string[]> [[-Name] <string[]>] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-UseTransaction] [<CommonParameters>]

Get-ItemProperty [-Path] <string[]> [[-Name] <string[]>] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-UseTransaction] [<CommonParameters>]

Descrizione

Con il cmdlet Get-ItemProperty vengono ottenute le proprietà di uno o elementi specificati. Ad esempio, è possibile utilizzare Get-ItemProperty per ottenere il valore della proprietà LastAccessTime di un oggetto file su true. È anche possibile utilizzare Get-ItemProperty per visualizzare le voci del Registro di sistema e i loro valori.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Include gli elementi specificati.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica un percorso della proprietà dell'elemento. Il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Name <string[]>

Specifica il nome della proprietà o delle proprietà da recuperare.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso dell'elemento o degli elementi.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso a Get-ItemProperty.
Output | Object Get-ItemProperty restituisce un oggetto per ogni proprietà dell'elemento ottenuta. Il tipo di oggetto dipende dall'oggetto recuperato.

Note

Il cmdlet Get-ItemProperty è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>get-itemproperty C:\Windows

Descrizione
-----------
Con questo comando vengono ottenute informazioni relative alla directory C:\Windows.

Esempio 2

C:\PS>get-itemproperty C:\Test\Weather.xls | format-list

Descrizione
-----------
Con questo comando vengono ottenute le proprietà del file C:\Test\Weather.xls. Il risultato viene reindirizzato al cmdlet Format-List per visualizzare l'output come elenco.

Esempio 3

C:\PS>get-itemproperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion

Descrizione
-----------
Con questo comando vengono visualizzati il nome del valore e i dati di ogni voce del Registro di sistema contenuta nella sottochiave CurrentVersion. Si noti che il comando richiede la presenza di un'unità di Windows PowerShell denominata HKLM: di cui viene eseguito il mapping all'hive HKEY_LOCAL_MACHINE del Registro di sistema. Un'unità con questo nome e questo mapping è disponibile per impostazione predefinita in Windows PowerShell. In alternativa, è possibile specificare il percorso di questa sottochiave del Registro di sistema utilizzando il percorso alternativo seguente che inizia con il nome del provider seguito dai due punti:
Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion.

Esempio 4

C:\PS>get-itemproperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion `
-name "ProgramFilesDir"

Descrizione
-----------
Con questo comando vengono ottenuti il nome del valore e i dati della voce del Registro di sistema ProgramFilesDir contenuta nella sottochiave CurrentVersion. Nel comando viene utilizzato il parametro Path per specificare la sottochiave e il parametro Name per specificare il nome del valore della voce.

Esempio 5

C:\PS>get-itemproperty -path HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine

ApplicationBase         : C:\Windows\system32\WindowsPowerShell\v1.0\
ConsoleHostAssemblyName : Microsoft.PowerShell.ConsoleHost, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad
                          364e35, ProcessorArchitecture=msil
PowerShellVersion       : 2.0
RuntimeVersion          : v2.0.50727
CTPVersion              : 5
PSCompatibleVersion     : 1.0,2.0

Descrizione
-----------
Con questo comando vengono ottenuti i nomi del valore e i dati delle voci del Registro di sistema nella chiave PowerShellEngine. I risultati vengono illustrati nell'esempio di output seguente.

Esempio 6

C:\PS>get-itemproperty -path HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell

Path                                                        ExecutionPolicy
----                                                        ---------------
C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe   RemoteSigned

C:\PS>get-itemproperty -path HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell | format-list -property *

PSPath          : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\PowerShell\1\ShellIds\Micro
                  soft.PowerShell
PSParentPath    : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\PowerShell\1\ShellIds
PSChildName     : Microsoft.PowerShell
PSDrive         : HKLM
PSProvider      : Microsoft.PowerShell.Core\Registry
Path            : C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
ExecutionPolicy : RemoteSigned

Descrizione
-----------
In questo esempio viene illustrato come formattare l'output di un comando Get-ItemProperty in un elenco per agevolare la lettura dei valori e dei dati del Registro di sistema e facilitare l'interpretazione dei risultati.

Nel primo comando viene utilizzato il cmdlet Get-ItemProperty per ottenere le voci del Registro di sistema nella sottochiave Microsoft.PowerShell. In questa sottochiave sono archiviate opzioni per la shell predefinita per Windows PowerShell. I risultati vengono illustrati nell'esempio di output seguente.

L'output mostra che sono presenti due voci del Registro di sistema, Path e ExecutionPolicy. Quando una chiave del Registro di sistema contiene meno di cinque voci, per impostazione predefinita viene visualizzata in una tabella, ma è spesso più agevole la visualizzazione in un elenco.

Nel secondo comando viene utilizzato lo stesso comando Get-ItemProperty. Questa volta, tuttavia, nel comando viene utilizzato un operatore pipeline (|) per inviare i risultati del comando al cmdlet Format-List. Nel comando Format-List è utilizzato il parametro Property con un valore di * (tutti) per visualizzare tutte le proprietà degli oggetti processo in un elenco. I risultati vengono illustrati nell'esempio di output seguente.

La visualizzazione risultante mostra le voci del Registro di sistema Path e ExecutionPolicy, insieme a diverse proprietà meno comuni dell'oggetto chiave del Registro di sistema. Le altre proprietà, con prefisso "PS", sono proprietà di oggetti personalizzati di Windows PowerShell, ad esempio oggetti che rappresentano le chiavi del Registro di sistema.

Vedere anche

  • about_Providers
  • Set-ItemProperty
  • Clear-ItemProperty
  • Copy-ItemProperty
  • Move-ItemProperty
  • New-ItemProperty
  • Remove-ItemProperty
  • Rename-ItemProperty


Get-Job

Ottiene i processi in background di Windows PowerShell in esecuzione nella sessione corrente.

Sintassi

Get-Job [-Command <string[]>] [<CommonParameters>]

Get-Job [[-InstanceId] <Guid[]>] [<CommonParameters>]

Get-Job [[-Name] <string[]>] [<CommonParameters>]

Get-Job [[-Id] <Int32[]>] [<CommonParameters>]

Get-Job [-State {<NotStarted> | <Running> | <Completed> | <Failed> | <Stopped> | <Blocked>}] [<CommonParameters>]

Descrizione

Il cmdlet Get-Job ottiene oggetti che rappresentano i processi in background avviati nella sessione corrente. È possibile utilizzare Get-Job per ottenere i processi avviati tramite Start-Job o tramite il parametro AsJob di qualsiasi cmdlet.

Senza parametri, un comando "Get-Job" consente di ottenere tutti i processi della sessione corrente. È possibile utilizzare i parametri di Get-Job per ottenere determinati processi.

L'oggetto processo restituito da Get-Job contiene informazioni utili sul processo, ma non contiene i risultati. Per ottenere i risultati del processo, utilizzare il cmdlet Receive-Job.

Un processo in background di Windows PowerShell è un comando che viene eseguito "in background" senza interagire con la sessione corrente. In genere, un processo in background viene utilizzato per eseguire un comando complesso il cui completamento richiede molto tempo. Per ulteriori informazioni sui processi in background di Windows PowerShell, vedere about_Jobs.

Parametri

-Command <string[]>

Ottiene i processi che includono il comando specificato. Il valore predefinito è impostato su tutti i processi. Immettere un comando (come stringa). È possibile utilizzare caratteri jolly per specificare un modello di comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito | All jobs
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | true

-Id <Int32[]>

Ottiene solo i processi con gli ID specificati.

L'ID è un valore intero che identifica in modo univoco il processo all'interno della sessione corrente. È più facile da ricordare e da digitare rispetto all'ID istanza, ma è univoco solo nella sessione corrente. È possibile digitare uno o più ID (separati da virgole). Per trovare l'ID di un processo, digitare "Get-Job" senza parametri.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-InstanceId <Guid[]>

Ottiene i processi con gli ID istanza specificati. Il valore predefinito è impostato su tutti i processi.

Un ID istanza è un GUID che identifica in modo univoco il processo nel computer. Per trovare l'ID istanza di un processo, utilizzare Get-Job.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | true

-Name <string[]>

Ottiene il processo con i nomi descrittivi specificati. Immettere il nome di un processo o utilizzare caratteri jolly per immettere un modello di nome di processo. Per impostazione predefinita, Get-Job consente di ottenere tutti i processi della sessione corrente.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | true

-State <JobState>

Ottiene solo i processi nello stato specificato. I valori validi sono NotStarted, Running, Completed, Stopped, Failed e Blocked. Per impostazione predefinita, Get-Job ottiene tutti i processi della sessione corrente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.Management.Automation.RemotingJob Get-Job restituisce gli oggetti che rappresentano i processi nella sessione.

Esempio 1

C:\PS>get-job

Descrizione
-----------
Tramite questo comando è possibile ottenere tutti i processi in background avviati nella sessione corrente. Non include processi creati in altre sessioni, anche se vengono eseguiti nel computer locale.

Esempio 2

C:\PS>$j = get-job -name Job1

C:\PS> $ID = $j.InstanceID

C:\PS> $ID

Guid
----
03c3232e-1d23-453b-a6f4-ed73c9e29d55

C:\PS> stop-job -instanceid $ID

Descrizione
-----------
Tramite questi comandi viene illustrato come ottenere l'ID istanza di un processo e successivamente come utilizzarlo per arrestare un processo. A differenza del nome di un processo, che non è univoco, l'ID istanza è univoco.

Nel primo comando viene utilizzato il cmdlet Get-Job per ottenere un processo. Viene utilizzato il parametro Name per identificare il processo. Il comando consente di archiviare l'oggetto processo restituito da Get-Job nella variabile $j. In questo esempio, è presente un solo processo con il nome specificato.

Con il secondo comando si ottiene la proprietà InstanceId dell'oggetto nella variabile $j e la si archivia nella variabile $ID.

Con il terzo comando viene visualizzato il valore della variabile $ID.

Nel quarto comando viene utilizzato il cmdlet Stop-Job per interrompere il processo. Viene utilizzato il parametro InstanceId per identificare il processo e la variabile $ID per rappresentare l'ID istanza del processo.

Esempio 3

C:\PS>get-job -command "*get-process*"

Descrizione
-----------
Tramite questo comando vengono ottenuti i processi del sistema che includono un comando Get-Process. Viene utilizzato il parametro Command di Get-Job per limitare i processi recuperati. Vengono utilizzati caratteri jolly (*) per ottenere processi che includono un comando Get-Process in qualsiasi punto della stringa di comando.

Esempio 4

C:\PS>"*get-process*" | get-job

Descrizione
-----------
Analogamente al comando dell'esempio precedente, tramite questo comando vengono ottenuti i processi del sistema che includono un comando Get-Process. Viene utilizzato un operatore pipeline (|) per inviare una stringa (tra virgolette doppie) al cmdlet Get-Job. Equivale al comando precedente.

Esempio 5

C:\PS>get-job -state NotStarted

Descrizione
-----------
Con questo comando si ottengono solo i processi che sono stati creati ma non ancora avviati. Sono inclusi i processi la cui esecuzione è pianificata in futuro e quelli non ancora pianificati.

Esempio 6

C:\PS>get-job -name job*

Descrizione
-----------
Tramite questo comando vengono ottenuti tutti i processi che dispongono di nomi che iniziano con "job". Poiché "job<numero>" è il nome predefinito per un processo, questo comando consente di ottenere tutti i processi che non dispongono di un nome assegnato in modo esplicito.

Esempio 7

C:\PS>start-job -scriptblock {get-process} -name MyJob

C:\PS> $j = get-job -name MyJob

C:\PS> $j

Id       Name      State      HasMoreData     Location    Command
--       ----      -----      -----------     --------    -------
1        myjob     Completed  True            localhost   get-process

C:\PS> receive-job -job $j

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    124       4    13572      12080    59            1140 audiodg
    783      16    11428      13636   100             548 CcmExec
     96       4     4252       3764    59            3856 ccmsetup
...

Descrizione
-----------
In questo esempio viene illustrato come utilizzare Get-Job per ottenere un oggetto processo e successivamente come utilizzare l'oggetto processo per rappresentare il processo in un comando.

Nel primo comando viene utilizzato il cmdlet Start-Job per avviare un processo in background che esegue un comando Get-Process nel computer locale. Viene utilizzato il parametro Name di Start-Job per assegnare un nome descrittivo al processo.

Nel secondo comando viene utilizzato Get-Job per ottenere il processo. Viene utilizzato il parametro Name di Get-Job per identificare il processo. L'oggetto processo risultante viene salvato nella variabile $j.

Con il terzo comando viene visualizzato il valore dell'oggetto processo nella variabile $j. Il valore della proprietà State indica che il processo è completo. Il valore della proprietà HasMoreData indica che sono disponibili risultati del processo che non sono ancora stati recuperati.

Nel quarto comando viene utilizzato il cmdlet Receive-Job per ottenere i risultati del processo. Viene utilizzato l'oggetto processo nella variabile $j per rappresentare il processo. È anche possibile utilizzare un operatore pipeline per inviare un oggetto processo a Receive-Job.

Esempio 8

C:\PS>start-job -scriptblock {get-eventlog system}

C:\PS> invoke-command -computername S1 -scriptblock {get-eventlog system} -AsJob

C:\PS> invoke-command -computername S2 -scriptblock {start-job -scriptblock {get-eventlog system}}

C:\PS> get-job

Id    Name     State      HasMoreData   Location   Command
--    ----     -----      -----------   --------   -------
1     Job1     Running    True          localhost  get-eventlog system
2     Job2     Running    True          S1         get-eventlog system

C:\PS> invoke-command -computername S2 -scriptblock {get-job}

Id    Name     State      HasMoreData   Location   Command
--    ----     -----      -----------   --------   -------
4     Job4     Running    True          localhost  get-eventlog system

Descrizione
-----------
In questo esempio viene dimostrato che il cmdlet Get-Job può ottenere tutti i processi avviati nella sessione corrente, anche se sono stati avviati tramite metodi diversi.

Nel primo comando viene utilizzato il cmdlet Start-Job per avviare un processo nel computer locale.

Nel secondo comando viene utilizzato il parametro AsJob di Invoke-Command per avviare un processo nel computer S1. Anche se i comandi del processo vengono eseguiti nel computer remoto, l'oggetto processo viene creato nel computer locale, in modo da poter utilizzare i comandi locali per gestire il processo.

Nel terzo comando viene utilizzato il cmdlet Invoke-Command per eseguire un comando Start-Job nel computer S2. Con questo metodo, l'oggetto processo viene creato nel computer locale, in modo da poter utilizzare i comandi remoti per gestire il processo.

Nel quarto comando viene utilizzato Get-Job per ottenere i processi archiviati nel computer locale.

Nel quinto comando viene utilizzato Invoke-Command per eseguire un comando Get-Job nel computer S2.

Nell'output di esempio vengono indicati i risultati dei comandi Get-Job.

Per ulteriori informazioni sull'esecuzione dei processi in background in computer remoti, vedere about_Remote_Jobs.

Esempio 9

C:\PS>start-job -scriptblock {get-process}

Id       Name            State      HasMoreData     Location             Command
--       ----            -----      -----------     --------             -------
1        Job1            Failed     False           localhost            get-process

C:\PS> (get-job).jobstateinfo | format-list -property *

State  : Failed
Reason :

C:\PS> get-job | format-list *

HasMoreData   : False
StatusMessage :
Location      : localhost
Command       : get-process
JobStateInfo  : Failed
Finished      : System.Threading.ManualResetEvent
InstanceId    : fb792295-1318-4f5d-8ac8-8a89c5261507
Id            : 1
Name          : Job1
ChildJobs     : {Job2}
Output        : {}
Error         : {}
Progress      : {}
Verbose       : {}
Debug         : {}
Warning       : {}
StateChanged  :

C:\PS> (get-job -name job2).jobstateinfo.reason
Connecting to remote server using WSManCreateShellEx api failed. The async callback gave the following error message :
Access is denied.

Descrizione
-----------
Tramite questo comando viene illustrato come utilizzare l'oggetto processo restituito da Get-Job per analizzare la causa dell'esito negativo di un processo. Viene inoltre illustrato come ottenere i processi figlio di ciascun processo.

Nel primo comando viene utilizzato il cmdlet Start-Job per avviare un processo nel computer locale. L'oggetto processo restituito da Start-Job indica che il processo non è riuscito. Il valore della proprietà State è "Failed".

Nel secondo comando viene utilizzato Get-Job per ottenere l'oggetto processo. Viene utilizzato il metodo con punto per ottenere il valore della proprietà JobStateInfo dell'oggetto. Viene utilizzato un operatore pipeline per inviare l'oggetto nella proprietà JobStateInfo al cmdlet Format-List che formatta tutte le proprietà dell'oggetto (*) in un elenco.

Il risultato del comando Format-List indica che il valore della proprietà Reason del processo è vuoto.

Nel terzo comando viene eseguita un'ulteriore analisi. Viene utilizzato un comando Get-Job per ottenere il processo, quindi si utilizza un operatore pipeline per inviare l'intero oggetto processo al cmdlet Format-List, in cui vengono visualizzate tutte le proprietà del processo in un elenco.

La visualizzazione di tutte le proprietà nell'oggetto processo indica che il processo contiene un processo figlio denominato "Job2."

Nel quarto comando viene utilizzato Get-Job per ottenere l'oggetto processo che rappresenta il processo figlio Job2. Si tratta del processo in cui viene eseguito effettivamente il comando. Viene utilizzato il metodo con punto per ottenere la proprietà Reason della proprietà JobStateInfo.

Il risultato indica che il processo non è riuscito a causa di un errore di "accesso negato". In questo caso, l'utente ha dimenticato di utilizzare l'opzione "Esegui come amministratore" al momento dell'apertura di Windows PowerShell.

Poiché nei processi in background vengono utilizzate le funzionalità di comunicazione remota di Windows PowerShell, è necessario configurare il computer affinché la comunicazione remota esegua un processo, anche quando il processo viene eseguito nel computer locale.

Per informazioni sui requisiti per la comunicazione remota in Windows PowerShell, vedere about_Remote_Requirements. Per suggerimenti sulla risoluzione dei problemi, vedere about_Remote_Troubleshooting.

Vedere anche

  • about_Jobs
  • about_Job_Details
  • about_Remote_Jobs
  • Start-Job
  • Receive-Job
  • Wait-Job
  • Stop-Job
  • Remove-Job
  • Invoke-Command


Get-Location

Ottiene informazioni sulla posizione di lavoro corrente.

Sintassi

Get-Location [-PSDrive <string[]>] [-PSProvider <string[]>] [-UseTransaction] [<CommonParameters>]

Get-Location [-Stack] [-StackName <string[]>] [-UseTransaction] [<CommonParameters>]

Descrizione

Con il cmdlet Get-Location viene ottenuto un oggetto che rappresenta la directory corrente, analogamente al comando pwd (directory di lavoro di stampa).

Quando si passa da un'unità di Windows PowerShell all'altra, Windows PowerShell mantiene il percorso in ogni unità. È possibile utilizzare Get-Location per trovare il percorso in ogni unità.

È anche possibile utilizzare Get-Location per ottenere la directory corrente in fase di esecuzione e utilizzarlo in funzioni e script, ad esempio in una funzione che visualizza la directory corrente nel prompt di Windows PowerShell.

Se si utilizza il cmdlet Push-Location per aggiungere percorsi a un stack di percorsi, è possibile utilizzare il parametro Stack di Get-Location per visualizzare lo stack corrente.

Parametri

-PSDrive <string[]>

Ottiene il percorso corrente nell'unità di Windows PowerShell specificata.

Ad esempio, se ci si trova nell'unità Certificate: è possibile utilizzare questo parametro per trovare il percorso corrente nell'unità C:.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PSProvider <string[]>

Ottiene il percorso corrente nell'unità supportata dal provider di Windows PowerShell specificato.

Se il provider specificato supporta più unità, Get-Location restituisce il percorso sull'unità a cui si è acceduto più recentemente.

Ad esempio, se ci si trova nell'unità C:, è possibile utilizzare questo parametro per trovare il percorso corrente nelle unità del provider Registry di Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Stack

Visualizza i percorsi nello stack di percorsi predefinito.

Per aggiungere percorsi allo stack predefinito, utilizzare il cmdlet Push-Location.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-StackName <string[]>

Visualizza i percorsi nello stack di percorsi specificato.

Per creare stack di percorsi, utilizzare il cmdlet Push-Location.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Oggetti PathInfo o StackInfo Se si utilizzano i parametri Stack o StackName, Get-Location restituisce un oggetto StackInfo. In caso contrario, restituisce un oggetto PathInfo.

Note

È possibile archiviare i percorsi in uno stack. Il cmdlet Push-Location aggiunge un percorso in cima allo stack. Il cmdlet Pop-Location ottiene il percorso in cima allo stack.

Le modalità di interazione dei parametri PSProvider, PSDrive, Stack e StackName dipendono dal provider. Alcune combinazioni possono restituire errori, ad esempio nel caso si specifichi sia un'unità sia un provider che non espone tale unità. Se non si specifica alcun parametro, Get-Location restituisce l'oggetto PathInfo per il provider che contiene il percorso di lavoro corrente.

Il cmdlet Get-Location è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>get-location

Path
----
C:\WINDOWS

Descrizione
-----------
Con questo comando viene visualizzato il percorso nell'unità di Windows PowerShell corrente.

Ad esempio, se ci si trova nella directory di Windows dell'unità C:, viene visualizzato il percorso di tale directory.

Esempio 2

C:\PS>set-location

Descrizione
-----------
Con questi comandi viene illustrato l'utilizzo di Get-Location per visualizzare il percorso corrente in unità di Windows PowerShell diverse.

Nel primo comando viene utilizzato il cmdlet Set-Location per impostare il percorso corrente sulla sottodirectory di Windows dell'unità C:.

    C:\PS> set-location C:\Windows

Nel secondo comando viene utilizzato il cmdlet Set-Location per modificare il percorso sulla chiave del Registro di sistema HKLM:\Software\Microsoft. Quando si passa a un percorso nell'unità HKLM:, Windows PowerShell mantiene il percorso nell'unità C:.

    PS C:\WINDOWS> set-location HKLM:\Software\Microsoft
    PS HKLM:\Software\Microsoft >

Nel terzo comando viene utilizzato il cmdlet Set-Location per modificare il percorso sulla chiave del Registro di sistema "HKCU:\Control Panel\Input Method".

    PS HKLM:\Software\Microsoft> set-location 'HKCU:\Control Panel\Input Method'
    PS HKCU:\Control Panel\Input Method>

Nel quarto comando viene utilizzato il cmdlet Get-Location per trovare il percorso corrente nell'unità C:. Viene utilizzato il parametro PSDrive per specificare l'unità.

    PS HKCU:\Control Panel\Input Method> get-location -psdrive c
    Path
    ----
    C:\WINDOWS

Nel quinto comando viene utilizzato il cmdlet Set-Location per tornare all'unità C. Anche se nel comando non viene specificata una sottodirectory, Windows PowerShell torna al percorso salvato.

    PS HKCU:\Control Panel\Input Method> set-location C:
    PS C:\WINDOWS>

Nel sesto comando viene utilizzato il cmdlet Get-Location per trovare il percorso corrente nelle unità supportate dal provider Registry di Windows PowerShell. Get-Location restituisce il percorso dell'unità del Registro di sistema a cui si è effettuato più frequentemente l'accesso, HKCU:.

    PS C:\WINDOWS> get-location -psprovider registry
    Path
    ----
    HKCU:\Control Panel\Input Method

Per visualizzare il percorso corrente nell'unità HKLM:, è necessario utilizzare il parametro PSDrive per specificare l'unità. A tale scopo viene utilizzato il settimo comando:

    PS C:\WINDOWS> get-location -psdrive HKLM
    Path
    ----
    HKLM:\Software\Microsoft

Esempio 3

C:\PS>set-location

Descrizione
-----------
Con questi comandi viene illustrato come utilizzare i parametri Stack e StackName di Get-Location per elencare i percorsi negli stack di percorsi predefiniti e alternativi.

Nel primo comando impostato il percorso corrente sulla directory di Windows dell'unità C:.

    C:\PS> set-location C:\Windows

Nel secondo comando viene utilizzato il cmdlet Push-Location per aggiungere il percorso corrente (C:\Windows) allo stack di percorsi e passare alla sottodirectory System32. Poiché non è specificato alcuno stack, il percorso corrente viene aggiunto allo stack predefinito.
    C:\WINDOWS>push-location System32

Il terzo comando inserisce il percorso corrente (C:\Windows\System32) nello stack Stack2 e imposta il percorso sulla sottodirectory WindowsPowerShell.

    C:\Windows\System32>push-location WindowsPowerShell -stack Stack2

Nel quarto comando viene utilizzato il cmdlet Get-Location per ottenere i percorsi nello stack di percorsi predefinito.

    C:\WINDOWS\system32\WindowsPowerShell>get-location -stack

    Path
    ----
    C:\WINDOWS

Nell'ultimo comando viene utilizzato il parametro StackName di Get-Location per ottenere i percorsi nello stack Stack2.

    C:\WINDOWS\system32\WindowsPowerShell>get-location -stackname Stack2

    Path
    ----
    C:\WINDOWS\system32

Esempio 4

C:\PS>function prompt { 'PowerShell: ' + (get-location) + '> '}

PowerShell: C:\WINDOWS>

Descrizione
-----------
In questo esempio viene illustrato come personalizzare il prompt di Windows PowerShell. La funzione che definisce il prompt include un comando Get-Location, eseguito ogni volta che il prompt viene visualizzato nella console.

Il formato del prompt di Windows PowerShell predefinito è definito da una funzione speciale denominata "prompt". È possibile modificare il prompt nella console creando una nuova funzione denominata "prompt".

Per visualizzare la funzione prompt corrente, digitare il seguente comando:

    get-content function:prompt

Il comando inizia con la parola chiave "function" seguita dal nome della funzione "prompt". Il corpo della funzione è racchiuso tra parentesi graffe ({}).

Con questo comando viene definito un nuovo prompt che inizia con la stringa "PowerShell: ". Per aggiungere il percorso corrente, viene utilizzato un comando Get-Location eseguito quando viene chiamata la funzione prompt. Il prompt termina con la stringa">".

Vedere anche

  • about_Providers
  • Pop-Location
  • Push-Location
  • Set-Location


Get-Member

Ottiene le proprietà e i metodi degli oggetti.

Sintassi

Get-Member [[-Name] <string[]>] [-Force] [-InputObject <psobject>] [-MemberType {<AliasProperty> | <CodeProperty> | <Property> | <NoteProperty> | <ScriptProperty> | <Properties> | <PropertySet> | <Method> | <CodeMethod> | <ScriptMethod> | <Methods> | <ParameterizedProperty> | <MemberSet> | <Event> | <All>}] [-Static] [-View {<Extended> | <Adapted> | <Base> | <All>}] [<CommonParameters>]

Descrizione

Il cmdlet Get-Member ottiene i "membri" (proprietà e metodi) degli oggetti.

Per specificare l'oggetto, utilizzare il parametro InputObject o reindirizzare un oggetto a Get-Member. Per recuperare informazioni sui membri statici (membri della classe, non dell'istanza), utilizzare il parametro Static. Per ottenere solo determinati tipi di membri, ad esempio NoteProperties, utilizzare il parametro MemberType.

Parametri

-Force

Aggiunge alla visualizzazione i membri intrinseci (PSBase, PSAdapted, PSObject, PSTypeNames) e i metodi get_ e set_ generati dal compilatore. Per impostazione predefinita, Get-Member ottiene queste proprietà in tutte le visualizzazioni diverse da "Base" e "Adapted", ma non le visualizza.

Nell'elenco seguente vengono descritte le proprietà aggiunte quando si utilizza il parametro Force:

-- PSBase: proprietà originali dell'oggetto .NET Framework senza estensione o adattamento. Si tratta delle proprietà definite per la classe di oggetti ed elencate in MSDN.

-- PSAdapted: proprietà e metodi definiti nel sistema di tipi esteso di Windows PowerShell.

-- PSExtended: proprietà e metodi aggiunti nei file Types.ps1xml o tramite il cmdlet Add-Member.

-- PSObject: adattatore che converte l'oggetto di base in un oggetto PSObject di Windows PowerShell.

-- PSTypeNames: elenco di tipi di oggetto che descrivono l'oggetto in ordine di specificità. Durante la formattazione dell'oggetto, vengono cercati i tipi nei file Format.ps1xml nella directory di installazione ($pshome) di Windows PowerShell. Viene utilizzata la definizione di formattazione per il primo tipo rilevato.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica l'oggetto i cui membri vengono recuperati.

L'utilizzo del parametro InputObject non corrisponde al reindirizzamento di un oggetto a Get-Member. Le differenze sono le seguenti.

-- Quando si reindirizza una raccolta di oggetti a Get-Member, Get-Member ottiene i membri dei singoli oggetti nella raccolta, ad esempio le proprietà dei valori interi in una matrice di valori interi.

-- Quando si utilizza InputObject per inviare una raccolta di oggetti, Get-Member ottiene i membri della raccolta, ad esempio le proprietà della matrice in una matrice di valori interi.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-MemberType <PSMemberTypes>

Ottiene solo membri con il tipo di membro specificato. Il valore predefinito è All.

I valori validi per questo parametro sono:

-- AliasProperty: proprietà che definisce un nuovo nome per una proprietà esistente.

-- CodeMethod: metodo che fa riferimento a un metodo statico di una classe .NET Framework.

-- CodeProperty: proprietà che fa riferimento a una proprietà statica di una classe .NET Framework.

-- Event: specifica che l'oggetto invia un messaggio per indicare un'azione o una modifica di stato.

-- MemberSet: raccolta predefinita di proprietà e metodi, quali PSBase, PSObject e PSTypeNames.

-- Method: metodo dell'oggetto .NET Framework sottostante.

-- NoteProperty: proprietà con un valore statico.

-- ParameterizedProperty: proprietà che accetta parametri e valori di parametro.

-- Property: proprietà dell'oggetto .NET Framework sottostante.

-- PropertySet: raccolta predefinita di proprietà dell'oggetto.

-- ScriptMethod: metodo il cui valore è l'output di uno script.

-- ScriptProperty: proprietà il cui valore è l'output di uno script.

-- All: ottiene tutti i tipi di membro.

-- Methods: ottiene tutti i tipi di metodo dell'oggetto (ad esempio Method, CodeMethod, ScriptMethod).

-- Properties: ottiene tutti i tipi di proprietà dell'oggetto (ad esempio Property, CodeProperty, AliasProperty, ScriptProperty).

Non tutti gli oggetti dispongono di ogni tipo di membro. Se si specifica un tipo di membro di cui l'oggetto non dispone, in Windows PowerShell viene restituito un valore null.

Per ottenere i tipi di membri correlati, ad esempio tutti i membri estesi, utilizzare il parametro View. Se si utilizza il parametro MemberType con i parametri Static o View, Get-Member consente di ottenere i membri che appartengono a entrambi gli insiemi.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string[]>

Specifica i nomi di una o più proprietà o metodi dell'oggetto. Get-Member consente di ottenere solo le proprietà e i metodi specificati.

Se si utilizza il parametro Name con il parametro MemberType, View o Static, Get-Member ottiene solo i membri che soddisfano i criteri di tutti i parametri.

Per ottenere un membro statico in base al nome, utilizzare il parametro Static con il parametro Name.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Static

Ottiene solo le proprietà e i metodi statici dell'oggetto.

Le proprietà e i metodi statici sono definiti nella classe di oggetti, non in qualsiasi istanza della classe.

Se si utilizza il parametro Static con il parametro View, il secondo parametro viene ignorato. Se si utilizza il parametro Static con il parametro MemberType, Get-Member ottiene solo i membri che appartengono a entrambi i set.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-View <PSMemberViewTypes>

Ottiene solo determinati tipi di membri (proprietà e metodi). Specificare uno o più valori. Il valore predefinito è "Adapted, Extended".

I valori validi sono:

-- Base: ottiene solo i metodi e le proprietà originali dell'oggetto .NET Framework (senza estensione o adattamento).

-- Adapted: ottiene solo le proprietà e i metodi definiti nel sistema di tipi esteso di Windows PowerShell.

-- Extended: ottiene solo le proprietà e i metodi aggiunti nei file Types.ps1xml o tramite il cmdlet Add-Member.

-- All: ottiene i membri nelle visualizzazioni Base, Adapted ed Extended.

Il parametro View determina i membri recuperati, non solo la loro visualizzazione.

Per ottenere determinati tipi di membro, ad esempio le proprietà script, utilizzare il parametro MemberType. Se si utilizzano i parametri MemberType e View nello stesso comando, Get-Member ottiene i membri che appartengono a entrambi i set. Se si utilizzano i parametri Static e View nello stesso comando, il secondo parametro viene ignorato.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare qualsiasi oggetto a Get-Member.
Output | Microsoft.PowerShell.Commands.MemberDefinition Get-Member restituisce un oggetto per ogni proprietà o metodo ottenuti.

Note

È possibile recuperare informazioni su un oggetto raccolta utilizzando il parametro InputObject o reindirizzando l'oggetto, preceduto da una virgola, a Get-Member.

Esempio 1

C:\PS>get-service | get-member

   TypeName: System.ServiceProcess.ServiceController

Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
Close                     Method        System.Void Close()
Continue                  Method        System.Void Continue()
CreateObjRef              Method        System.Runtime.Remoting.ObjRef CreateObjRef(Type requestedType)
Dispose                   Method        System.Void Dispose()
Equals                    Method        System.Boolean Equals(Object obj)
ExecuteCommand            Method        System.Void ExecuteCommand(Int32 command)
GetHashCode               Method        System.Int32 GetHashCode()
GetLifetimeService        Method        System.Object GetLifetimeService()
GetType                   Method        System.Type GetType()
InitializeLifetimeService Method        System.Object InitializeLifetimeService()
Pause                     Method        System.Void Pause()
Refresh                   Method        System.Void Refresh()
Start                     Method        System.Void Start(), System.Void Start(String[] args)
Stop                      Method        System.Void Stop()
ToString                  Method        System.String ToString()
WaitForStatus             Method        System.Void WaitForStatus(ServiceControllerStatus desiredStatus), System.Voi...
CanPauseAndContinue       Property      System.Boolean CanPauseAndContinue {get;}
CanShutdown               Property      System.Boolean CanShutdown {get;}
CanStop                   Property      System.Boolean CanStop {get;}
Container                 Property      System.ComponentModel.IContainer Container {get;}
DependentServices         Property      System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName               Property      System.String DisplayName {get;set;}
MachineName               Property      System.String MachineName {get;set;}
ServiceHandle             Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName               Property      System.String ServiceName {get;set;}
ServicesDependedOn        Property      System.ServiceProcess.ServiceController[] ServicesDependedOn {get;}
ServiceType               Property      System.ServiceProcess.ServiceType ServiceType {get;}
Site                      Property      System.ComponentModel.ISite Site {get;set;}
Status                    Property      System.ServiceProcess.ServiceControllerStatus Status {get;}

Descrizione
-----------
Questo comando consente di visualizzare i metodi e le proprietà degli oggetti processo (System.ServiceProcess.ServiceController) generati dal cmdlet Get-Service.

Nel comando viene utilizzato l'operatore pipeline (|) per inviare l'output di un comando Get-Service a Get-Member.

Poiché la parte Get-Member del comando non dispone di parametri, vengono utilizzati tutti i valori predefiniti. In questo modo, si ottengono tutti i tipi di membro, ma non i membri statici, e non vengono visualizzati i membri intrinseci.

Esempio 2

C:\PS>get-service | get-member -force

C:\PS> (get-service -schedule).psbase

Descrizione
-----------
In questo esempio si ottengono tutti i membri (proprietà e metodi) degli oggetti servizio (System.ServiceProcess.ServiceController) recuperati dal cmdlet Get-Service, inclusi i membri intrinseci, quali PSBase e PSObject, e i metodi get_ e set_.

Nel primo comando viene utilizzato il cmdlet Get-Service per ottenere gli oggetti che rappresentano i servizi nel sistema. Viene utilizzato un operatore pipeline (|) per passare gli oggetti servizio al cmdlet Get-Member.

Nel comando Get-Member viene utilizzato il parametro Force per aggiungere alla visualizzazione membri intrinseci e membri degli oggetti generati dal compilatore. Get-Member ottiene questi membri, ma li nasconde per impostazione predefinita.

È possibile utilizzare questi metodi e proprietà nello stesso modo in cui si utilizzerebbe un metodo adattato dell'oggetto. Nel secondo comando viene illustrato come visualizzare il valore della proprietà PSBase del servizio Schedule.

Esempio 3

C:\PS>get-service	| get-member -view extended

   TypeName: System.ServiceProcess.ServiceController

Name MemberType    Definition
---- ----------    ----------
Name AliasProperty Name = ServiceName

Descrizione
-----------
Questo comando ottiene i metodi e le proprietà degli oggetti servizio estesi mediante il file Types.ps1xml o il cmdlet Add-Member.

Il comando Get-Member utilizza il parametro View per ottenere solo i membri estesi degli oggetti servizio. In questo caso, il membro esteso è la proprietà Name, alias della proprietà ServiceName.

Esempio 4

C:\PS>get-eventlog -log system | gm -membertype scriptproperty

   TypeName: System.Diagnostics.EventLogEntry

Name    MemberType     Definition
----    ----------     ----------
EventID ScriptProperty System.Object EventID {get=$this.get_EventID() -band 0xFFFF;}

Descrizione
-----------
Con questo comando si ottengono le proprietà script di oggetti del registro eventi di sistema nel Visualizzatore eventi. In questo caso, l'unica proprietà script è EventID.

Esempio 5

C:\PS>get-eventlog -log system | get-member -membertype scriptproperty

   TypeName: System.Diagnostics.EventLogEntry

Name    MemberType     Definition
----    ----------     ----------
EventID ScriptProperty System.Object EventID {get=$this.get_EventID() -band 0xFFFF;}

Descrizione
-----------
Con questo comando si ottengono le proprietà script di oggetti del registro eventi di sistema nel Visualizzatore eventi.

Nel comando viene utilizzato il parametro MemberType per ottenere solo gli oggetti con valore AliasProperty per la proprietà MemberType.

Viene restituita la proprietà EventID dell'oggetto EventLog.

Esempio 6

C:\PS>$a = "get-process", "get-service", "get-culture", "get-psdrive", "get-executionpolicy"

C:\PS> foreach ($cmdlet in $a) {invoke-expression $cmdlet | get-member -name machinename}

TypeName: System.Diagnostics.Process

Name        MemberType Definition
----        ---------- ----------
MachineName Property   System.String MachineName {get;}

   TypeName: System.ServiceProcess.ServiceController

Name        MemberType Definition
----        ---------- ----------
MachineName Property   System.String MachineName {get;set;}

Descrizione
-----------
Con questo comando si ottengono gli oggetti che dispongono di una proprietà MachineName da un elenco di cmdlet.

Il primo comando archivia i nomi di diversi cmdlet nella variabile $a.

Nel secondo comando viene utilizzata un'istruzione ForEach per richiamare ciascun comando, inviare i risultati a Get-Member e limitare i risultati di Get-Member ai membri che dispongono del nome "MachineName".

I risultati mostrano che solo gli oggetti processo (System.Diagnostics.Process) e gli oggetti servizio (System.ServiceProcess.ServiceController) dispongono di una proprietà MachineName.

Esempio 7

C:\PS>$a = get-member -inputobject @(1)

C:\PS>$a.count

1

C:\PS> $a = get-member -inputobject 1,2,3

   TypeName: System.Object[]
Name               MemberType    Definition
----               ----------    ----------
Count              AliasProperty Count = Length
Address            Method        System.Object& Address(Int32 )
Clone              Method        System.Object Clone()
...

C:\PS>$a.count
1

Descrizione
-----------
In questo esempio viene illustrato come trovare i metodi e le proprietà di una matrice di oggetti quando si dispone di un solo oggetto del tipo specificato.

Poiché l'obiettivo del comando è trovare le proprietà di una matrice, nel primo comando viene utilizzato il parametro InputObject. Viene utilizzato il simbolo della a commerciale (@) per indicare una matrice. In questo caso, la matrice contiene solo un oggetto, il valore intero 1.

Nel terzo comando viene utilizzato il cmdlet Get-Member per ottenere le proprietà e i metodi di una matrice di valori interi, che vengono quindi salvati nella variabile $a.

Nel quarto comando viene utilizzata la proprietà Count della matrice per trovare il numero di oggetti nella variabile $a.

Vedere anche

  • Add-Member
  • Get-Help
  • Get-Command
  • Get-PSDrive


Get-Module

Ottiene i moduli importati o che possono essere importati nella sessione corrente.

Sintassi

Get-Module [-Tutti] [-ListAvailable] [-Name <string[]>] [<CommonParameters>]

Get-Module [[-Name] <string[]>] [<CommonParameters>]

Descrizione

Il cmdlet Get-Module ottiene i moduli importati o che possono essere importati nella sessione corrente.

Get-Module non importa i moduli; li ottiene soltanto. Per importare i moduli nella sessione, utilizzare Import-Module.

Parametri

-Tutti

Ottiene gli oggetti modulo per tutti i file di modulo.

Senza il parametro All, Get-Module ottiene solo l'oggetto modulo per il file di modulo predefinito. Il cmdlet seleziona i tipi di file nell'ordine seguente: file manifesto (psd1), file modulo di script (psm1) e file modulo binari (dll).

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ListAvailable

Ottiene tutti i moduli che possono essere importati nella sessione. Get-Module ottiene i moduli dei percorsi specificati dalla variabile di ambiente $env:PSModulePath.

Senza questo parametro, Get-Module ottiene solo i moduli importati nella sessione.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string[]>

Ottiene solo i moduli con i modelli di nome o i nomi specificati. È consentito l'utilizzo di caratteri jolly. È inoltre possibile reindirizzare i nomi a Get-Module.

Obbligatorio? | false
Posizione? | 1
Valore predefinito | All imported or available modules.
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | true

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare i nomi dei moduli a Get-Module.
Output | System.Management.Automation.PSModuleInfo Get-Module restituisce oggetti che rappresentano i moduli.

Note

È anche possibile fare riferimento a Get-Module tramite il relativo alias, "gmo". Per ulteriori informazioni, vedere about_Aliases.

Il parametro All restituisce oggetti modulo per tutti i file con estensione dll, anche se non implementano cmdlet o provider.

Esempio 1

C:\PS>get-module

Descrizione
-----------
Tramite questo comando vengono ottenuti i moduli importati nella sessione corrente.

Esempio 2

C:\PS>get-module -listAvailable

Descrizione
-----------
Tramite questo comando vengono ottenuti i moduli che possono essere importati nella sessione corrente.

Get-Module cerca i moduli disponibili nel percorso specificato dalla variabile di ambiente $env:PSModulePath. Per ulteriori informazioni su PSModulePath, vedere about_Modules e about_Environment_Variables.

Esempio 3

C:\PS>get-module -listAvailable -all

Descrizione
-----------
Tramite questo comando vengono ottenuti tutti i file esportati per tutti i moduli disponibili.

Esempio 4

C:\PS>get-module | get-member -type property

   TypeName: System.Management.Automation.PSModuleInfo

Name              MemberType Definition
----              ---------- ----------
AccessMode        Property   System.Management.Automation.ModuleAcc
Description       Property   System.String Description {get;set;}
ExportedAliases   Property   System.Collections.Generic.Dictionary`
ExportedCmdlets   Property   System.Collections.Generic.Dictionary`
ExportedFunctions Property   System.Collections.Generic.Dictionary`
ExportedVariables Property   System.Collections.Generic.Dictionary`
Guid              Property   System.Guid Guid {get;}
ModuleBase        Property   System.String ModuleBase {get;}
ModuleType        Property   System.Management.Automation.ModuleTyp
Name              Property   System.String Name {get;}
NestedModules     Property   System.Collections.ObjectModel.ReadOnl
OnRemove          Property   System.Management.Automation.ScriptBlo
Path              Property   System.String Path {get;}
PrivateData       Property   System.Object PrivateData {get;set;}
SessionState      Property   System.Management.Automation.SessionSt
Version           Property   System.Version Version {get;}

Descrizione
-----------
Tramite questo comando vengono ottenute le proprietà dell'oggetto PSModuleInfo restituito da Get-Module. È presente un oggetto per ogni file di modulo.

È possibile utilizzare le proprietà per formattare e filtrare gli oggetti modulo. Per ulteriori informazioni sulle proprietà, vedere l'argomento relativo alle proprietà PSModule in MSDN Library all'indirizzo http://go.microsoft.com/fwlink/?LinkId=143624 (le informazioni potrebbero essere in lingua inglese).

Esempio 5

C:\PS>get-module -listAvailable -all | format-table -property name, moduletype, path -groupby name -auto

   Name: MyTestCmdlets

Name          ModuleType Path
----          ---------- ----
MyTestCmdlets     Script C:\Windows\system32\WindowsPowerShell\v1.0\Modules\TestCmdlets\TestCmdlets.dll

   Name: PSDiagnostics

Name          ModuleType Path
----          ---------- ----
PSDiagnostics   Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules\PSDiagnostics\PSDiagnostics.psd1
PSDiagnostics     Script C:\Windows\system32\WindowsPowerShell\v1.0\Modules\PSDiagnostics\PSDiagnostics.psm1

   Name: FileTransfer

Name         ModuleType Path
----         ---------- ----
FileTransfer   Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules\FileTransfer\FileTransfer.psd1

Descrizione
-----------
Tramite questo comando vengono ottenuti tutti i file di modulo (importati e disponibili) e successivamente vengono raggruppati in base al nome del modulo. In questo modo è possibile visualizzare i file di modulo che ogni script sta esportando.

Esempio 6

C:\PS>$m = get-module -list -name FileTransfer | where {$_.moduletype -eq "Manifest"}

C:\PS> get-content $m.path

@{
GUID="{8FA5064B-8479-4c5c-86EA-0D311FE48875}"
Author="Microsoft Corporation"
CompanyName="Microsoft Corporation"
Copyright="© Microsoft Corporation. All rights reserved."
ModuleVersion="1.0.0.0"
Description="Windows Powershell File Transfer Module"
PowerShellVersion="2.0"
CLRVersion="2.0"
NestedModules="Microsoft.BackgroundIntelligentTransfer.Management"
FormatsToProcess="FileTransfer.Format.ps1xml"
RequiredAssemblies=Join-Path $psScriptRoot "Microsoft.BackgroundIntelligentTransfer.Management.Interop.dll"
}

Descrizione
-----------
Tramite questi comandi viene visualizzato il contenuto del manifesto del modulo File Transfer di Windows PowerShell.

Con il primo comando viene ottenuto l'oggetto PSModuleInfo che rappresenta il manifesto del modulo File Transfer. L'oggetto viene salvato nella variabile $m.

Nel secondo comando viene utilizzata la notazione con punto per ottenere il percorso al file manifesto, archiviato nella proprietà Path dell'oggetto. Successivamente viene utilizzato il cmdlet Get-Content per ottenere il contenuto del file manifesto nel percorso specificato.

Non è necessario che i moduli dispongano di file manifesto. In tal caso, un manifesto è necessario solo per includere un numero di versione. Tuttavia, i file manifesto spesso forniscono informazioni utili su un modulo, sui suoi requisiti e sul suo contenuto.

Esempio 7

C:\PS>get-module -listAvailable  -name FileTransfer | format-list -property *

Name              : FileTransfer
Path              : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\FileTransfer\FileTransfer.psd1
Description       : Powershell File Transfer Module
Guid              : 8fa5064b-8479-4c5c-86ea-0d311fe48875
ModuleBase        : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\FileTransfer
PrivateData       :
Version           : 1.0.0.0
ModuleType        : Manifest
AccessMode        : ReadWrite
ExportedFunctions : {}
ExportedCmdlets   : {}
NestedModules     : {}
ExportedVariables : {}
ExportedAliases   : {}
SessionState      : System.Management.Automation.SessionState
OnRemove          :

Descrizione
-----------
Tramite questo comando tutte le proprietà del modulo FileTransfer vengono visualizzate in un elenco.

Poiché il modulo non è stato ancora importato nella sessione, le proprietà Exported* e la proprietà NestedModules non sono ancora definite. Queste proprietà vengono definite solo dopo l'esportazione degli elementi e la creazione delle istanze dei moduli nidificati.

Esempio 8

C:\PS>dir (get-module -listavailable FileTransfer).modulebase

    Directory: C:\Windows\system32\WindowsPowerShell\v1.0\Modules\FileTransfer

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        12/16/2008  12:36 PM            en-US
-a---        11/19/2008  11:30 PM      16184 FileTransfer.Format.ps1xml
-a---        11/20/2008  11:30 PM       1044 FileTransfer.psd1
-a---        12/16/2008  12:20 AM     108544 Microsoft.BackgroundIntelligentTransfer.Management.Interop.dll

Descrizione
-----------
Tramite questo comando vengono elencati i file nella directory del modulo. Si tratta di un'altra modalità per determinare ciò che si trova in un modulo prima di importarlo. Alcuni moduli potrebbero disporre di file della Guida o di file ReadMe che descrivono il modulo.

Vedere anche

  • Import-Module
  • New-Module
  • Remove-Module
  • about_Modules


Get-PfxCertificate

Ottiene informazioni sui file di certificato, con estensione pfx, presenti nel computer.

Sintassi

Get-PfxCertificate [-FilePath] <string[]> [<CommonParameters>]

Descrizione

Il cmdlet Get-PfxCertificate ottiene un oggetto che rappresenta ogni file di certificato, con estensione pfx, specificato. Un file pfx include sia il certificato che una chiave privata.

Parametri

-FilePath <string[]>

Percorso completo del file pfx del file protetto. Il nome del parametro ("FilePath") è facoltativo.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso a Get-PfxCertificate.
Output | System.Security.Cryptography.X509Certificates Get-PfxCertificate restituisce un oggetto per ogni certificato ottenuto.

Note

Quando si utilizza il cmdlet Invoke-Command per eseguire un comando Get-PfxCertificate in modalità remota e il file del certificato .pfx non protetto da password, il valore del parametro Authentication di Invoke-Command deve essere "CredSSP".

Esempio 1

C:\PS>get-pfxcertificate -filepath C:\windows\system32\Test.pfx

Password: ******
Signer Certificate:      Matt Berg (Self Certificate)
Time Certificate:
Time Stamp:
Path:                    C:\windows\system32\zap.pfx

Descrizione
-----------
Tramite questo comando vengono ottenute informazioni sul certificato Test.pfx nel sistema.

Esempio 2

C:\PS>invoke-command -computername Server01 -scriptblock {get-pfxcertificate -filepath C:\Text\TestNoPassword.pfx} -authentication CredSSP

Descrizione
-----------
Questo comando ottiene un file del certificato .pfx dal computer remoto Server01. Viene utilizzato il cmdlet Invoke-Command per eseguire un comando Get-PfxCertificate in modalità remota.

Quando il file del certificato .pfx non protetto da password, il valore del parametro Authentication di Invoke-Command deve essere "CredSSP".

Vedere anche

  • Get-AuthenticodeSignature
  • Set-AuthenticodeSignature
  • about_Signing


Get-Process

Ottiene i processi in esecuzione nel computer locale o in un computer remoto.

Sintassi

Get-Process [[-Name] <string[]>] [-ComputerName <string[]>] [-FileVersionInfo] [-Module] [<CommonParameters>]

Get-Process -Id <Int32[]> [-ComputerName <string[]>] [-FileVersionInfo] [-Module] [<CommonParameters>]

Get-Process -InputObject <Process[]> [-ComputerName <string[]>] [-FileVersionInfo] [-Module] [<CommonParameters>]

Descrizione

Con il cmdlet Get-Process vengono ottenuti i processi in un computer locale o remoto.

Senza parametri, Get-Process ottiene tutti i processi nel computer locale. È inoltre possibile specificare un determinato processo per nome o ID processo (PID) oppure passare un oggetto processo attraverso la pipeline a Get-Process.

Per impostazione predefinita, Get-Process restituisce un oggetto processo che presenta informazioni dettagliate sul processo e supporta metodi che consentono l'avvio e l'arresto del processo. È anche possibile utilizzare i parametri di Get-Process per ottenere informazioni sulla versione del file per il programma in esecuzione nel processo e per ottenere i moduli caricati dal processo.

Parametri

-ComputerName <string[]>

Ottiene i processi in esecuzione nei computer specificati. Il valore predefinito è il computer locale.

Digitare il nome NetBIOS, un indirizzo IP o un nome di dominio completo di uno o più computer. Per specificare il computer locale, digitare il nome del computer, un punto (.) o "localhost".

Questo parametro non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName di Get-Process anche se il computer non è configurato per l'esecuzione di comandi remoti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-FileVersionInfo

Ottiene le informazioni sulla versione del file per il programma in esecuzione nel processo.

In Windows Vista e nelle versioni successive di Windows per utilizzare questo parametro nei processi di cui non si è il proprietario è necessario aprire Windows PowerShell con l'opzione "Esegui come amministratore".

L'utilizzo di questo parametro equivale a ottenere la proprietà MainModule.FileVersionInfo di ogni oggetto processo. Quando si utilizza questo parametro, Get-Process restituisce un oggetto FileVersionInfo (System.Diagnostics.FileVersionInfo) e non un oggetto processo. Non è pertanto possibile reindirizzare l'output del comando a un cmdlet che prevede un oggetto processo, ad esempio Stop-Process.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Id <Int32[]>

Specifica uno o più processi per ID processo (PID). Per specificare più ID, separarli tramite virgole. Per trovare il PID di un processo, digitare "get-process".

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-InputObject <Process[]>

Specifica uno o più oggetti processo. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Module

Ottiene i moduli caricati dai processi.

In Windows Vista e nelle versioni successive di Windows per utilizzare questo parametro nei processi di cui non si è il proprietario è necessario aprire Windows PowerShell con l'opzione "Esegui come amministratore".

Questo parametro equivale a ottenere la proprietà Modules di ogni oggetto processo. Quando si utilizza questo parametro, Get-Process restituisce un oggetto ProcessModule (System.Diagnostics.ProcessModule) e non un oggetto processo. Non è pertanto possibile reindirizzare l'output del comando a un cmdlet che prevede un oggetto processo, ad esempio Stop-Process.

Quando si utilizzano entrambi i parametri Module e FileVersionInfo nello stesso comando, Get-Process restituisce un oggetto FileVersionInfo con informazioni sulla versione file di tutti i moduli.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string[]>

Specifica uno o più processi per nome processo. È possibile digitare più nomi di processo, separati da virgole, oppure utilizzare caratteri jolly. Il nome del parametro ("Name") è facoltativo.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | true

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Diagnostics.Process È possibile reindirizzare un oggetto processo a Get-Process.
Output | System.Diagnostics.Process, System.Diagnotics.FileVersionInfo, System.Diagnostics.ProcessModule Per impostazione predefinita, Get-Process restituisce un oggetto System.Diagnostics.Process. Se si utilizza il parametro FileVersionInfo, restituisce un oggetto System.Diagnotics.FileVersionInfo. Se si utilizza il parametro Module (senza il parametro FileVersionInfo), restituisce un oggetto System.Diagnostics.ProcessModule.

Note

Non è possibile utilizzare i parametri Name, ID e InputObject nello stesso comando.

È inoltre possibile fare riferimento a Get-Process tramite i relativi alias predefiniti "ps" e "gps". Per ulteriori informazioni, vedere about_Aliases.

È inoltre possibile utilizzare le proprietà e i metodi dell'oggetto WMI Win32_Process in Windows PowerShell. Per informazioni, vedere Get-WmiObject e l'SDK di Strumentazione gestione Windows (WMI).

La visualizzazione predefinita di un processo è una tabella che include le colonne seguenti:

-- Handles: numero di handle aperti dal processo.

-- NPM(K): quantità di memoria non di paging utilizzata dal processo, in kilobyte.

-- PM(K): quantità di memoria paginabile utilizzata dal processo, in kilobyte.

-- WS(K): dimensioni del working set del processo, in kilobyte. Il working set è costituito dalle pagine di memoria a cui ha fatto recentemente riferimento il processo.

-- VM(M): quantità di memoria virtuale utilizzata dal processo, in megabyte. La memoria virtuale include l'archiviazione nei file di paging su disco.

-- CPU: quantità di tempo del processore utilizzata dal processo su tutti i processori, in secondi.

-- ID: ID processo (PID) del processo.

-- ProcessName: nome del processo.

Per una spiegazione dei concetti relativi ai processi, consultare il Glossario in Guida e supporto tecnico e la Guida di Gestione attività.

È inoltre possibile utilizzare le visualizzazioni alternative incorporate dei processi disponibili con Format-Table, ad esempio "StartTime" e "Priority", nonché progettare visualizzazioni personalizzate. Per ulteriori informazioni, vedere Format-Table.

Esempio 1

C:\PS>Get-Process

Descrizione
-----------
Con questo comando viene ottenuto un elenco dei processi in esecuzione nel computer locale. Per la definizione di ogni colonna, vedere la sezione delle note aggiuntive dell'argomento della Guida relativo a Get-Help.

Esempio 2

C:\PS>Get-Process winword, explorer | format-list *

Descrizione
-----------
Con questo comando vengono ottenuti tutti i dati disponibili sui processi di Winword ed Explorer nel computer. Viene utilizzato il parametro Name per specificare i processi ma viene omesso il nome del parametro facoltativo. Con l'operatore pipeline (|) vengono passati i dati al cmdlet Format-List che visualizza tutte le proprietà disponibili (*) degli oggetti processo Winword ed Explorer.

È inoltre possibile identificare i processi tramite il relativo ID. Ad esempio, "get-process -id 664, 2060".

Esempio 3

C:\PS>get-process | where-object {$_.WorkingSet -gt 20000000}

Descrizione
-----------
Con questo comando vengono ottenuti tutti i processi con un working set superiore a 20 MB. Viene utilizzato il cmdlet Get-Process per ottenere tutti i processi in esecuzione. L'operatore pipeline (|) passa gli oggetti processo al cmdlet Where-Object, tramite il quale viene selezionato solo l'oggetto con un valore superiore a 20.000.000 byte per la proprietà WorkingSet.

WorkingSet è una delle numerose proprietà degli oggetti processo. Per visualizzare tutte le proprietà, digitare "Get-Process | Get-Member". Per impostazione predefinita, i valori di tutte le proprietà di quantità sono espressi in byte, anche se nella visualizzazione predefinita sono elencati in kilobyte e megabyte.

Esempio 4

C:\PS>$a = get-process

C:\PS> get-process -inputobject $a | format-table -view priority

Descrizione
-----------
Con questi comandi vengono elencati i processi nel computer in gruppi basati sulla loro classe di priorità.

Mediante il primo comando vengono ottenuti tutti i processi nel computer che vengono quindi archiviati nella variabile $a.

Nel secondo comando viene utilizzato il parametro InputObject per passare al cmdlet Get-Process gli oggetti di processo archiviati nella variabile $a. Con l'operatore pipeline vengono passati gli oggetti al cmdlet Format-Table che formatta i processi utilizzando la visualizzazione Priority.

La visualizzazione Priority e le altre visualizzazioni sono definite nei file di formato PS1XML nella home directory ($pshome) di Windows PowerShell.

Esempio 5

C:\PS>get-process powershell -computername S1, localhost | ft @{Label="NPM(K)";Expression={[int]($_.NPM/1024)}}, @{Label="PM(K)";Expression={[int]($_.PM/1024)}},@{Label="WS(K)";Expression={[int]($_.WS/1024)}},@{Label="VM(M)";Expression={[int]($_.VM/1MB)}}, @{Label="CPU(s)";Expression={if ($_.CPU -ne $()) { $_.CPU.ToString("N")}}}, Id, MachineName, ProcessName -auto

NPM(K) PM(K) WS(K) VM(M) CPU(s)   Id MachineName ProcessName
------ ----- ----- ----- ------   -- ----------- -----------
     6 23500 31340   142        1980 S1          powershell
     6 23500 31348   142        4016 S1          powershell
    27 54572 54520   576        4428 localhost   powershell

Descrizione
-----------
In questo esempio viene fornito un comando Format-Table (alias = ft) che aggiunge la proprietà MachineName alla visualizzazione output Get-Process standard.

Esempio 6

C:\PS>get-process powershell -fileversioninfo

ProductVersion   FileVersion      FileName
--------------   -----------      --------
6.1.6713.1       6.1.6713.1 (f... C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe

Descrizione
-----------
In questo comando viene utilizzato il parametro FileVersionInfo per ottenere informazioni sulla versione del file PowerShell.exe che costituisce il modulo principale del processo PowerShell.

Per eseguire questo comando con processi di cui non si è il proprietario in Windows Vista e nelle versioni successive di Windows, è necessario aprire Windows PowerShell con l'opzione "Esegui come amministratore".

Esempio 7

C:\PS>get-process sql* -module

Descrizione
-----------
In questo comando viene utilizzato il parametro Module per ottenere i moduli caricati dal processo. Con questo comando vengono ottenuti i moduli per i processi i cui nomi iniziano con "sql".

Per eseguire questo comando in Windows Vista (e nelle versioni successive di Windows) con processi di cui non si è il proprietario, è necessario avviare Windows PowerShell con l'opzione "Esegui come amministratore".

Esempio 8

C:\PS>$p = get-wmiobject win32_process -filter "name='powershell.exe'"

C:\PS> $p.getowner()

__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 3
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
Domain           : DOMAIN01
ReturnValue      : 0
User             : user01

Descrizione
-----------
Con questo comando viene illustrato come trovare il proprietario di un processo. Poiché l'oggetto System.Diagnostics.Process restituito da Get-Process non presenta una proprietà o un metodo che restituisce il proprietario del processo, il comando utilizza
il cmdlet Get-WmiObject per ottenere un oggetto Win32_Process che rappresenta lo stesso processo.

Nel primo comando viene utilizzato Get-WmiObject per ottenere il processo PowerShell. Viene salvato nella variabile $p.

Nel secondo comando viene utilizzato il metodo GetOwner per ottenere il proprietario del processo in $p. Il comando rivela che il proprietario è Domain01\user01.

Esempio 9

C:\PS>get-process powershell

C:\PS> get-process -id $pid

C:\PS> get-process powershell

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    308      26    52308      61780   567     3.18   5632 powershell
    377      26    62676      63384   575     3.88   5888 powershell

C:\PS> get-process -id $pid

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    396      26    56488      57236   575     3.90   5888 powershell

Descrizione
-----------
Con questi comandi viene illustrato come utilizzare la variabile automatica $pid per identificare il processo che ospita la sessione corrente di Windows PowerShell. È possibile utilizzare questo metodo per distinguere il processo host dagli altri processi di PowerShell che può essere opportuno arrestare o chiudere.

Con il primo comando vengono ottenuti tutti i processi PowerShell nella sessione corrente.

Con il secondo comando viene ottenuto il processo PowerShell che ospita la sessione corrente.

Vedere anche

  • Get-Process
  • Start-Process
  • Stop-Process
  • Wait-Process
  • Debug-Process


Get-PSBreakpoint

Ottiene i punti di interruzione impostati nella sessione corrente.

Sintassi

Get-PSBreakpoint [[-Script] <string[]>] [<CommonParameters>]

Get-PSBreakpoint -Command <string[]> [-Script <string[]>] [<CommonParameters>]

Get-PSBreakpoint [-Id] <Int32[]> [<CommonParameters>]

Get-PSBreakpoint [-Type] <BreakpointType[]> [-Script <string[]>] [<CommonParameters>]

Get-PSBreakpoint -Variable <string[]> [-Script <string[]>] [<CommonParameters>]

Descrizione

Il cmdlet Get-PSBreakPoint ottiene i punti di interruzione impostati nella sessione corrente. È possibile utilizzare i parametri del cmdlet per ottenere determinati punti di interruzione.

Un punto di interruzione è un punto in un comando o in uno script in corrispondenza del quale l'esecuzione viene interrotta temporaneamente per consentire l'analisi delle istruzioni. Get-PSBreakpoint è uno dei diversi cmdlet progettato per il debug dei comandi e degli script di Windows PowerShell. Per ulteriori informazioni sul debugger di Windows PowerShell, vedere about_Debuggers.

Parametri

-Command <string[]>

Ottiene i punti di interruzione comando impostati sui nomi dei comandi specificati. Immettere i nomi dei comandi, ad esempio il nome di un cmdlet o di una funzione.

Obbligatorio? | true
Posizione? | named
Valore predefinito | All breakpoints
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Id <Int32[]>

Ottiene i punti di interruzione con gli ID dei punti di interruzione specificati. Immettere gli ID in un elenco separato da virgole. È inoltre possibile reindirizzare gli ID dei punti di interruzione a Get-PSBreakpoint.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | All breakpoints
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Script <string[]>

Ottiene solo i punti di interruzione negli script specificati. Immettere il percorso (facoltativo) e i nomi di uno o più file di script. Il percorso predefinito è la directory corrente.

Obbligatorio? | false
Posizione? | named
Valore predefinito | All breakpoints
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Type <BreakpointType[]>

Ottiene solo i punti di interruzione dei tipi specificati. Immettere uno o più tipi. I valori validi sono Line, Command e Variable. È inoltre possibile reindirizzare i tipi di punto di interruzione a Get-PSBreakpoint.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | All breakpoints
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Variable <string[]>

Ottiene i punti di interruzione variabile impostati sui nomi della variabile specificata. Immettere i nomi della variabile senza simboli di dollaro.

Obbligatorio? | true
Posizione? | named
Valore predefinito | All breakpoints
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Int32, Microsoft.PowerShell.Commands.BreakpointType È possibile reindirizzare i tipi e gli ID dei punti di interruzione a Get-PSBreakpoint.
Output | Oggetto punto di interruzione (System.Management.Automation.LineBreakpoint, System.Management.Automation.VariableBreakpoint, System.Management.Automation.CommandBreakpoint) Get-PSBreakPoint restituisce gli oggetti che rappresentano i punti di interruzione nella sessione.

Note

È possibile utilizzare Get-PSBreakpoint o il relativo alias, "gbp".

Esempio 1

C:\PS>get-psbreakpoint

Descrizione
-----------
Questo comando consente di ottenere tutti i set di punti di interruzione in tutti gli script e le funzioni nella sessione corrente.

Esempio 2

C:\PS>get-psbreakpoint -Id 2

Function   : Increment
Action     :
Enabled    : True
HitCount   : 0
Id         : 2
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Descrizione
-----------
Con questo comando si ottiene il punto di interruzione con ID del punto di interruzione 2.

Esempio 3

C:\PS>$b = set-psbreakpoint -script sample.ps1 -function increment

C:\PS> $b.Id | get-psbreakpoint

Descrizione
-----------
In questi comandi viene illustrato come ottenere un punto di interruzione reindirizzando un ID del punto di interruzione a Get-PSBreakpoint.

Nel primo comando viene utilizzato il cmdlet Set-PSBreakpoint per creare un punto di interruzione nella funzione Increment nello script Sample.ps1. L'oggetto punto di interruzione viene salvato nella variabile $b.

Nel secondo comando viene utilizzato l'operatore punto (.) per ottenere la proprietà dell'Id dell'oggetto punto di interruzione nella variabile $b. Viene utilizzato un operatore pipeline (|) per inviare l'ID al cmdlet Get-PSBreakpoint.

Di conseguenza, Get-PSBreakpoint ottiene il punto di interruzione con l'ID specificato.

Esempio 4

C:\PS>get-psbreakpoint -script Sample.ps1, SupportScript.ps1

Descrizione
-----------
Con questo comando si ottengono tutti i punti di interruzione nei file Sample.ps1 e SupportScript.ps1.

Non si ottengono altri punti di interruzione che potrebbero essere impostati in altri script o su funzioni della sessione.

Esempio 5

C:\PS>get-psbreakpoint -command Read-Host, Write-Host -script Sample.ps1

Descrizione
-----------
Con questo comando si ottengono tutti i punti di interruzione Command impostati sui comandi Read-Host o Write-Host nel file Sample.ps1.

Esempio 6

C:\PS>get-psbreakpoint -type Command -script Sample.ps1

Descrizione
-----------
Con questo comando si ottengono tutti i punti di interruzione Command nel file Sample.ps1.

Esempio 7

C:\PS>get-psbreakpoint -variable Index, Swap

Descrizione
-----------
Con questo comando si ottengono i punti di interruzione impostati sulle variabili $index e $swap nella sessione corrente.

Esempio 8

C:\PS>get-psbreakpoint -type line, variable -script Sample.ps1

Descrizione
-----------
Con questo comando si ottengono tutti i punti di interruzione riga e variabile nello script Sample.ps1.

Vedere anche

  • about_Debuggers
  • Set-PSBreakpoint
  • Disable-PSBreakpoint
  • Enable-PSBreakpoint
  • Remove-PSBreakpoint
  • Get-PSCallStack


Get-PSCallStack

Visualizza lo stack di chiamate corrente.

Sintassi

Get-PSCallStack [<CommonParameters>]

Descrizione

Il cmdlet Get-PSCallStack visualizza lo stack di chiamate corrente.

Sebbene sia progettato per essere utilizzato con il debugger di Windows PowerShell, è possibile utilizzare questo cmdlet per visualizzare lo stack di chiamate in uno script o una funzione all'esterno del debugger.

Per eseguire un comando Get-PSCallStack dal debugger, digitare "k" o "get-pscallstack".

Parametri

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a questo cmdlet.
Output | System.Management.Automation.CallStackFrame Get-PSCallStack restituisce un oggetto che rappresenta gli elementi nello stack di chiamate.

Esempio 1

C:\PS>function my-alias {
   $p = $args[0]
   get-alias | where {$_.definition -like "*$p"} | ft definition, name -auto
}

PS C:\ps-test> set-psbreakpoint -command my-alias

Command    : my-alias
Action     :
Enabled    : True
HitCount   : 0
Id         : 0
Script     : prompt

PS C:\ps-test> my-alias get-content
Entering debug mode. Use h or ? for help.

Hit Command breakpoint on 'prompt:my-alias'

my-alias get-content

[DBG]: PS C:\ps-test> s
$p = $args[0]

DEBUG: Stepped to ':    $p = $args[0]    '

[DBG]: PS C:\ps-test> s
get-alias | Where {$_.Definition -like "*$p*"} | ft Definition,

[DBG]: PS C:\ps-test>get-pscallstack

Name        CommandLineParameters         UnboundArguments              Location
----        ---------------------         ----------------              --------
prompt      {}                            {}                            prompt
my-alias    {}                            {get-content}                 prompt
prompt      {}                            {}                            prompt

[DBG]: PS C:\ps-test> o

Definition  Name
----------  ----
Get-Content gc
Get-Content cat
Get-Content type

Descrizione
-----------
In questo comando viene utilizzato il cmdlet Get-PSCallStack per visualizzare lo stack di chiamate per My-Alias, una funzione semplice che consente di ottenere gli alias per un nome di cmdlet.

Il primo comando immette la funzione al prompt di Windows PowerShell. Nel secondo comando viene utilizzato il cmdlet Set-PSBreakpoint per impostare un punto di interruzione sulla funzione My-Alias. Nel terzo comando viene utilizzata la funzione My-Alias per ottenere tutti gli alias nella sessione corrente per il cmdlet Get-Content.

Il debugger si attiva al momento della chiamata di funzione. Tramite due comandi consecutivi di esecuzione (s) viene avviata l'esecuzione della funzione riga per riga. Viene quindi utilizzato un comando Get-PSCallStack per recuperare lo stack di chiamate.

Il comando finale è un comando Step-Out (o) che consente di uscire dal debugger e di continuare l'esecuzione dello script fino al completamento.

Vedere anche

  • about_Debuggers
  • Set-PSBreakpoint
  • Get-PSBreakpoint
  • Enable-PSBreakpoint
  • Disable-PSBreakpoint
  • Remove-PSBreakpoint


Get-PSDrive

Ottiene le unità di Windows PowerShell disponibili nella sessione corrente.

Sintassi

Get-PSDrive [-LiteralName] <string[]> [-PSProvider <string[]>] [-Scope <string>] [-UseTransaction] [<CommonParameters>]

Get-PSDrive [[-Name] <string[]>] [-PSProvider <string[]>] [-Scope <string>] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Get-PSDrive ottiene le unità di Windows PowerShell disponibili nella sessione corrente. È possibile ottenere un'unità specifica o tutte le unità nella console.

Get-PSDrive ottiene le unità seguenti:

-- Unità logiche di Windows nel computer, incluse le unità mappate a condivisioni di rete.

-- Unità esposte dai provider di Windows PowerShell, ad esempio le unità Certificate:, Function: e Alias:, e le unità HKLM: e HKCU: esposte dal provider Registry di Windows PowerShell.

-- Unità create dall'utente mediante New-PSDrive.

Get-PSDrive non ottiene le unità di Windows mappate aggiunte o create dopo l'apertura della console Windows PowerShell.

Parametri

-LiteralName <string[]>

Specifica il nome dell'unità di Windows PowerShell.

Il valore di LiteralName viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il nome include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Name <string[]>

Ottiene solo le unità specificate. Digitare il nome unità o la lettera senza due punti (:).

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PSProvider <string[]>

Ottiene solo le unità supportate dal provider di Windows PowerShell specificato. Digitare il nome di un provider, ad esempio FileSystem, Registry o Certificate.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Scope <string>

Ottiene le unità di Windows PowerShell nell'ambito specificato. I valori validi sono "Global", "Local", "Script" oppure un numero relativo all'ambito corrente, ovvero da 0 al numero di ambiti, dove 0 corrisponde all'ambito corrente e 1 al relativo padre. Il valore predefinito è "Local". Per ulteriori informazioni, vedere about_Scopes.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a Get-PSDrive.
Output | System.Management.Automation.PSDriveInfo Get-PSDrive restituisce oggetti che rappresentano le unità di Windows PowerShell disponibili nella sessione.

Note

Il cmdlet Get-PSDrive è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>get-psdrive

Name       Provider      Root
----       --------      ----
Alias      Alias
C          FileSystem    C:\
cert       Certificate   \
D          FileSystem    D:\
Env        Environment
Function   Function
HKCU       Registry      HKEY_CURRENT_USER
HKLM       Registry      HKEY_LOCAL_MACHINE
Variable   Variable
X          FileSystem    X:\

Descrizione
-----------
Con questo comando vengono ottenute le unità di Windows PowerShell disponibili nella sessione corrente.

L'output mostra il disco rigido (C:) e l'unità CD-ROM (D:) sul computer, le unità esposte dai provider di Windows PowerShell (Alias:, Cert:, Env:, Function:, HKCU:, HKLM: e Variable:) e un'unità di cui è stato eseguito il mapping a una condivisione di rete (X:).

Esempio 2

C:\PS>get-psdrive d

Name       Provider      Root
----       --------      ----
D          FileSystem    D:\

Descrizione
-----------
Con questo comando viene visualizzata l'unità D:. Notare che la lettera dell'unità non è seguita dai due punti.

Esempio 3

C:\PS>get-psdrive -psprovider filesystem

Name       Provider      Root
----       --------      ----
C          FileSystem    C:\
D          FileSystem    D:\
X          FileSystem    X:\
Y          FileSystem    \\Server01\Public
Z          FileSystem    C:\Windows\System32

Descrizione
-----------
Con questo comando vengono visualizzate tutte le unità supportate dal provider FileSystem di Windows PowerShell. Sono incluse unità fisse, partizioni logiche, unità di rete mappate e unità create tramite New-PSDrive mappate alle unità del file system.

In questo esempio viene illustrato che le unità create da New-PSDrive presentano il nome del percorso mappato nel valore della proprietà Root. Le unità di Windows presentano solo la radice della lettera di unità.

Esempio 4

C:\PS>if (!(get-psdrive X)) {
    new-psdrive -name X -psprovider Registry -root HKLM:\Network
}
else { write-host "The X: drive is already in use." }

Descrizione
-----------
Con questo comando viene controllato se l'unità X è già utilizzata come nome di unità di Windows PowerShell. In caso contrario, il comando utilizza il cmdlet New-PSDrive per creare un'unità di Windows PowerShell mappata alla chiave del Registro di sistema HKLM:\Network.

Esempio 5

C:\PS>get-psdrive -provider filesystem

C:\PS> get-psdrive -provider filesystem

Name       Provider      Root
----       --------      ----
C          FileSystem    C:\
D          FileSystem    D:\
X          FileSystem    X:\
Y          FileSystem    \\Server01\Public
Z          FileSystem    C:\Windows\System32

C:\PS> net use
New connections will be remembered.

Status       Local     Remote                    Network
-------------------------------------------------------------------------------
             X:        \\Server01\Public         Microsoft Windows Network

C:\PS> [System.IO.DriveInfo]::getdrives()

Name               : C:\
DriveType          : Fixed
DriveFormat        : NTFS
IsReady            : True
AvailableFreeSpace : 39831498752
TotalFreeSpace     : 39831498752
TotalSize          : 79900368896
RootDirectory      : C:\
VolumeLabel        :
Name               : D:\
DriveType          : CDRom
DriveFormat        :
IsReady            : False
AvailableFreeSpace :
TotalFreeSpace     :
TotalSize          :
RootDirectory      : D:\
VolumeLabel        :
Name               : X:\
DriveType          : Network
DriveFormat        : NTFS
IsReady            : True
AvailableFreeSpace : 36340559872
TotalFreeSpace     : 36340559872
TotalSize          : 36413280256
RootDirectory      : X:\
VolumeLabel        : D_Drive

C:\PS> get-wmiobject win32_logicaldisk

DeviceID     : C:
DriveType    : 3
ProviderName :
FreeSpace    : 39831252992
Size         : 79900368896
VolumeName   :
DeviceID     : D:
DriveType    : 5
ProviderName :
FreeSpace    :
Size         :
VolumeName   :
DeviceID     : X:
DriveType    : 4
ProviderName : \\server01\public
FreeSpace    : 36340559872
Size         : 36413280256
VolumeName   : D_Drive

C:\PS> get-wmiobject win32_networkconnection
LocalName                     RemoteName
--------------               ------------
x:                            \\server01\public

Descrizione
-----------
In questo esempio vengono confrontati i tipi di unità del file system visualizzati da Get-PSDrive con quelli visualizzati tramite gli altri metodi. Nell'esempio vengono illustrati diversi modi per visualizzare le unità in Windows PowerShell e viene indicato che le unità create tramite New-PSDrive sono accessibili solo in Windows PowerShell.

Nel primo comando viene utilizzato Get-PSDrive per ottenere tutte le unità del file system nella console Windows PowerShell. Sono incluse le unità fisse (C: e D:), l'unità di rete mappata (X:) e due unità di Windows PowerShell (Y: e Z:) create utilizzando New-PsDrive.

Un comando "net use", che visualizza le unità di rete mappate di Windows, visualizza solo l'unità X. Non visualizza le unità create da New-PSDrive. Mostra che l'unità X: è anche mappata a \\Server01\Public.

Nel terzo comando viene utilizzato il metodo GetDrives della classe System.IO.DriveInfo di Microsoft .NET Framework. Con questo comando vengono ottenute le unità di file system di Windows, inclusa l'unità X: ma non vengono ottenute le unità create da New-PSDrive.

Nel quarto comando viene utilizzato il cmdlet Get-WmiObject per visualizzare le istanze della classe Win32_LogicalDisk. Vengono restituite le unità C:, D: ed X: ma non le unità create da New-PSDrive.

Nell'ultimo comando viene utilizzato il cmdlet Get-WmiObject per visualizzare le istanze della classe Win32_NetworkConnection. Come "net use", restituisce solo l'unità X:.

Vedere anche

  • about_Providers
  • New-PSDrive
  • Remove-PSDrive
  • Get-Help
  • Get-Command
  • Get-Member


Get-PSProvider

Ottiene informazioni sul provider di Windows PowerShell specificato.

Sintassi

Get-PSProvider [[-PSProvider] <string[]>] [<CommonParameters>]

Descrizione

Il cmdlet Get-PSProvider ottiene i provider di Windows PowerShell disponibili nella sessione corrente. È possibile ottenere un'unità specifica o tutte le unità nella sessione.

I provider di Windows PowerShell consentono di accedere una vasta gamma di archivi dati come se si trattasse di unità del file system. Per informazioni sui provider di Windows PowerShell, vedere about_Providers.

Parametri

-PSProvider <string[]>

Specifica il nome o i nomi dei provider di Windows PowerShell sui quali recuperare informazioni.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a questo cmdlet.
Output | System.Management.Automation.ProviderInfo Get-PSProvider restituisce oggetti che rappresentano i provider di Windows PowerShell disponibili nella sessione.

Esempio 1

C:\PS>get-psprovider

Descrizione
-----------
Con questo comando viene visualizzato un elenco di tutti i provider di Windows PowerShell disponibili.

Esempio 2

C:\PS>get-psprovider f*, r* | format-list

Descrizione
-----------
Con questo comando viene visualizzato un elenco di tutti i provider di Windows PowerShell con i nomi che iniziano con la lettera "f" o "r".

Esempio 3

C:\PS>get-psprovider | format-table name, module, pssnapin -auto

Name        Module       PSSnapIn
----        ------       --------
Test        TestModule
WSMan                    Microsoft.WSMan.Management
Alias                    Microsoft.PowerShell.Core
Environment              Microsoft.PowerShell.Core
FileSystem               Microsoft.PowerShell.Core
Function                 Microsoft.PowerShell.Core
Registry                 Microsoft.PowerShell.Core
Variable                 Microsoft.PowerShell.Core
Certificate              Microsoft.PowerShell.Security

C:\PS> get-psprovider | where {$_.pssnapin -eq "Microsoft.PowerShell.Security"}

Name            Capabilities      Drives
----            ------------      ------
Certificate     ShouldProcess     {cert}

Descrizione
-----------
Con questi comandi vengono trovati gli snap-in di Windows PowerShell o i moduli che hanno aggiunto provider alla sessione. Tutti gli di Windows PowerShell, inclusi i provider danno origine a uno snap-in o a un modulo.

In questi comandi vengono utilizzate le proprietà PSSnapin e Module dell'oggetto ProviderInfo restituito da Get-PSProvider. I valori di queste proprietà contengono il nome dello snap-in o del modulo che aggiunge il provider.

Con il primo comando vengono ottenuti tutti i provider di sessione e vengono formattati in una tabella con i valori delle relative proprietà Name, Module e PSSnapin.

Nel secondo comando viene utilizzato il cmdlet Where-Object per ottenere i provider provenienti dallo snap-in Microsoft.PowerShell.Security.

Vedere anche

  • about_Providers


Get-PSSession

Ottiene le sessioni di Windows PowerShell (PSSession) nella sessione corrente.

Sintassi

Get-PSSession [[-ComputerName] <string[]>] [<CommonParameters>]

Get-PSSession [-Id] <Int32[]> [<CommonParameters>]

Get-PSSession [-InstanceId <Guid[]>] [<CommonParameters>]

Get-PSSession [-Name <string[]>] [<CommonParameters>]

Descrizione

Il cmdlet Get-PSSession ottiene le sessioni di Windows PowerShell (PSSession) create nella sessione corrente.

Senza parametri, Get-PSSession consente di ottenere tutte le sessioni PSSession create nella sessione corrente. È possibile utilizzare i parametri di Get-PSSession per ottenere le sessioni connesse a particolari computer o identificare le sessioni in base ai relativi nomi, ID o ID istanza.

Per ulteriori informazioni sulle sessioni di Windows PowerShell, vedere about_PSSessions.

Parametri

-ComputerName <string[]>

Ottiene solo le sessioni PSSession connesse ai computer specificati. È consentito l'utilizzo di caratteri jolly.

Digitare il nome NetBIOS, un indirizzo IP o un nome di dominio completo di uno o più computer. Per specificare il computer locale, digitare il nome del computer, "localhost" o un punto (.).

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | true

-Id <Int32[]>

Ottiene solo le sessioni PSSession con gli ID specificati. Digitare uno o più ID (separati da virgole) o utilizzare l'operatore intervallo (..) per specificare un intervallo di ID.

Un ID è un valore intero che identifica in modo univoco la sessione PSSession nella sessione corrente. È più facile da ricordare e digitare rispetto all'ID istanza, ma è univoco solo nella sessione corrente. Per trovare l'ID di una sessione PSSession, utilizzare Get-PSSession senza parametri.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | All sessions in the shell
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-InstanceId <Guid[]>

Ottiene solo le sessioni PSSession con gli ID istanza specificati.

L'ID istanza è un GUID che identifica in modo univoco una sessione PSSession in un computer locale o remoto. InstanceID è univoco, anche quando si dispone di più sessioni in esecuzione in Windows PowerShell.

InstanceID viene archiviato nella proprietà InstanceID dell'oggetto che rappresenta una sessione PSSession. Per trovare l'ID istanza delle sessioni PSSession nella sessione corrente, digitare "get-pssession | Format-Table Name, ComputerName, InstanceId".

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | true

-Name <string[]>

Ottiene solo le sessioni PSSession con i nomi descrittivi specificati. È consentito l'utilizzo di caratteri jolly.

Per trovare i nomi delle sessioni PSSession della sessione corrente, digitare "get-pssession" senza parametri.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | true

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.Management.Automation.Runspaces.PSSession Get-PSSession restituisce un oggetto PSSession per ogni sessione PSSession ottenuta.

Note

Get-PSSession consente di ottenere le sessioni PSSession create nella sessione corrente. Non viene ottenuta la sessione creata all'apertura di Windows PowerShell e non vengono ottenute le sessioni PSSession create in altre sessioni o in altri computer, anche se sono connessi al computer locale.

Esempio 1

C:\PS>get-pssession

Descrizione
-----------
Tramite questo comando vengono ottenute tutte le sessioni PSSession create nella sessione corrente.

Non vengono ottenute le sessioni PSSession create in altre sessioni o in altri computer, anche se sono connessi a questo computer.

Esempio 2

C:\PS>$s = get-pssession -computername Server02

Descrizione
-----------
Tramite questo comando vengono ottenute le sessioni PSSession connesse al computer Server02 e vengono salvate nella variabile $p.

Esempio 3

C:\PS>new-pssession -computername Server01, Server02, Server03

C:\PS> $s1, $s2, $s3 = get-pssession

Descrizione
-----------
In questo esempio viene illustrato come salvare i risultati di un comando Get-PSSession in più variabili.

Nel primo comando viene utilizzato il cmdlet New-PSSession per creare sessioni PSSession in tre computer remoti.

Nel secondo comando viene utilizzato un cmdlet Get-PSSession per ottenere le tre sessioni PSSession. Successivamente ogni sessione PSSession viene salvata in una variabile separata.

In Windows PowerShell, quando si assegna una matrice di oggetti a una matrice di variabili, il primo oggetto viene assegnato alla prima variabile, il secondo oggetto alla seconda variabile e così via. Se sono presenti più oggetti che variabili, tutti gli oggetti rimanenti vengono assegnati all'ultima variabile della matrice. Se sono presenti più variabili che oggetti, le variabili supplementari non vengono utilizzate.

Esempio 4

C:\PS>get-pssession | format-table -property computername, InstanceID

C:\PS> $s = get-pssession -InstanceID a786be29-a6bb-40da-80fb-782c67f7db0f

C:\PS> remove-pssession -session $s

Descrizione
-----------
In questo esempio viene illustrato come ottenere una sessione PSSession tramite il relativo ID istanza e successivamente come eliminarla.

Con il primo comando si ottengono tutte le sessioni PSSession nel computer locale. Le sessioni PSSession vengono inviate al cmdlet Format-Table, in cui vengono visualizzate le proprietà ComputerName e InstanceID di ogni sessione PSSession.

Nel secondo comando viene utilizzato il cmdlet Get-PSSession per ottenere una determinata sessione PSSession e per salvarla nella variabile $s. Viene utilizzato il parametro InstanceID per identificare la sessione PSSession.

Nel terzo comando viene utilizzato il cmdlet Remove-PSSession per eliminare la sessione PSSession nella variabile $s.

Esempio 5

C:\PS>get-pssession -computername Serv*

Descrizione
-----------
Tramite questo comando vengono ottenute tutte le sessioni PSSession che si connettono a computer i cui nomi iniziano con "Serv".

Esempio 6

C:\PS>get-pssession -name Test*, Ux*

Descrizione
-----------
Tramite questo comando vengono ottenute le sessioni PSSession i cui nomi iniziano con "Test" o "Ux".

Esempio 7

C:\PS>get-pssession 2

Descrizione
-----------
Tramite questo comando viene ottenuta la sessione PSSession con ID 2.

Vedere anche

  • about_PSSessions
  • about_Remote
  • New-PSSession
  • Remove-PSSession
  • Enter-PSSession
  • Exit-PSSession
  • Invoke-Command


Get-PSSessionConfiguration

Ottiene le configurazioni di sessione registrate nel computer.

Sintassi

Get-PSSessionConfiguration [[-Name] <string[]>] [<CommonParameters>]

Descrizione

Il cmdlet Get-PSSessionConfiguration ottiene le configurazioni di sessione registrate nel computer locale. Si tratta di un cmdlet avanzato progettato per essere utilizzato da amministratori di sistema per gestire le configurazioni di sessione personalizzate degli utenti.

Per creare e registrare una configurazione di sessione, utilizzare il cmdlet Register-PSSessionConfiguration.

Parametri

-Name <string[]>

Ottiene solo le configurazioni di sessione con il modello di nome o il nome specificato. Immettere uno o più nomi di configurazioni di sessione. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | 1
Valore predefinito | All session configurations on the local computer
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Microsoft.PowerShell.Commands.PSSessionConfigurationCommands#PSSessionConfiguration

Note

Per eseguire questo cmdlet in Windows Vista, Windows Server 2008 e nelle versioni successive di Windows, è necessario aprire Windows PowerShell con l'opzione "Esegui come amministratore".

Per visualizzare le configurazioni di sessione nel computer, è necessario essere un membro del gruppo Administrators nel computer.

Per eseguire un comando Get-PSSessionConfiguration in un computer remoto, è necessario abilitare l'autenticazione CredSSP (Credential Security Service Provider) nelle impostazioni client nel computer locale (tramite il cmdlet Enable-WSManCredSSP) e nelle impostazioni servizio nel computer remoto, nonché utilizzare il valore CredSSP del parametro Authentication per stabilire la sessione remota. In caso contrario, l'accesso viene negato.

Esempio 1

C:\PS>get-pssessionconfiguration

Descrizione
-----------
Con questo comando si ottengono le configurazioni di sessione nel computer.

Esempio 2

C:\PS>get-pssessionconfiguration -name Microsoft*

Name                      PSVersion  StartupScript        Permission
----                      ---------  -------------        ----------
microsoft.powershell      2.0                             BUILTIN\Administrators AccessAll...
microsoft.powershell32    2.0                             BUILTIN\Administrators AccessAll...

Descrizione
-----------
Questo comando utilizza il parametro Name di Get-PSSessionConfiguration per ottenere solo le configurazioni di sessione con nomi che iniziano con "Microsoft".

Con questo comando si ottengono le due configurazioni di sessione predefinite fornite con Windows PowerShell.

Esempio 3

C:\PS>Get-PSSessionConfiguration -name microsoft.powershell | get-member

   TypeName: Microsoft.PowerShell.Commands.PSSessionConfigurationCommands#PSSessionConfiguration

Name                   MemberType     Definition
----                   ----------     ----------
Equals                 Method         bool Equals(System.Object obj)
GetHashCode            Method         int GetHashCode()
GetType                Method         type GetType()
ToString               Method         string ToString()
Capability             NoteProperty   System.Object[] Capability=System.Object[]
ExactMatch             NoteProperty   System.String ExactMatch=False
Filename               NoteProperty   System.String Filename=%windir%\system32\pwrshplugin.dll
lang                   NoteProperty   System.String lang=en-US
Name                   NoteProperty   System.String Name=microsoft.powershell
PSVersion              NoteProperty   System.String PSVersion=2.0
ResourceUri            NoteProperty   System.String ResourceUri=http://schemas.microsoft.com/powershell/microsoft.powershell
SDKVersion             NoteProperty   System.String SDKVersion=1
SecurityDescriptorSddl NoteProperty   System.String SecurityDescriptorSddl=O:NSG:BAD:P(A;;GA;;;BA)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)
SupportsOptions        NoteProperty   System.String SupportsOptions=true
Uri                    NoteProperty   System.String Uri=http://schemas.microsoft.com/powershell/microsoft.powershell
xmlns                  NoteProperty   System.String xmlns=http://schemas.microsoft.com/wbem/wsman/1/config/PluginConfiguration
XmlRenderingType       NoteProperty   System.String XmlRenderingType=text
Permission             ScriptProperty System.Object Permission {get=trap { continue; }...

C:\PS> Get-PSSessionConfiguration -name microsoft.powershell | format-list -property *

Name                   : microsoft.powershell
Filename               : %windir%\system32\pwrshplugin.dll
SDKVersion             : 1
XmlRenderingType       : text
lang                   : en-US
PSVersion              : 2.0
ResourceUri            : http://schemas.microsoft.com/powershell/microsoft.powershell
SupportsOptions        : true
Capability             : {Shell}
Uri                    : http://schemas.microsoft.com/powershell/microsoft.powershell
SecurityDescriptorSddl : O:NSG:BAD:P(A;;GA;;;BA)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)
ExactMatch             : False
xmlns                  : http://schemas.microsoft.com/wbem/wsman/1/config/PluginConfiguration
Permission             : BUILTIN\Administrators AccessAllowed

Descrizione
-----------
Questi comandi esaminano l'oggetto PSSessionConfiguration restituito da Get-PSSessionConfiguration.

Con il primo comando viene utilizzato il cmdlet Get-PSSessionConfiguration per ottenere la configurazione predefinita Microsoft.PowerShell.

Con il secondo comando viene utilizzato un operatore pipeline (|) per inviare l'oggetto restituito da Get-PSSessionConfiguration al cmdlet Get-Member. L'output mostra le proprietà e i metodi dell'oggetto.

Con il terzo comando viene inviato lo stesso oggetto al cmdlet Format-List. Con il parametro Property impostato sul valore * (tutti) Format-List elenca tutte le proprietà e i valori di proprietà dell'oggetto.

L'output di questo comando dispone di informazioni molto utili, inclusi il percorso del file con estensione dll che implementa il tipo di configurazione, l'URI (Uniform Resource Identifier) della risorsa per l'endpoint creato e l'SDDL (Security Descriptor Definition Language) per la configurazione.

Esempio 4

C:\PS>dir wsman:\localhost\plugin

   WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin

Name                      Type                 Keys
----                      ----                 ----
Event Forwarding Plugin   Container            {Name=Event Forwarding Plugin}
MaintenanceShell          Container            {Name=MaintenanceShell}
microsoft.powershell      Container            {Name=microsoft.powershell}
microsoft.powershell32    Container            {Name=microsoft.powershell32}
WMI Provider              Container            {Name=WMI Provider}

Descrizione
-----------
Nel comando viene utilizzato il cmdlet Get-ChildItem (alias = dir) nell'unità WSMAN: del provider per analizzare il contenuto del nodo Plugin.

Si tratta di un'altra modalità per analizzare le configurazioni di sessione nel computer.

Il nodo Plugin contiene oggetti ContainerElement (Microsoft.WSMan.Management.WSManConfigContainerElement) che rappresentano le configurazioni di sessione registrate di Windows PowerShell, insieme ad altri plug-in per WS-Management.

Esempio 5

C:\PS>enable-wsmanCredSSP -delegate server02

C:\PS> connect-wsman server02

C:\PS> set-item wsman:\server02*\service\auth\credSSP -value $true

C:\PS> invoke-command -scriptblock {Get-PSSessionConfiguration} -computername Server02 -authentication CredSSP -credential Domain01\Admin01

Name                      PSVersion  StartupScript        Permission                          PSComputerName
----                      ---------  -------------        ----------                          --------------
microsoft.powershell      2.0                             BUILTIN\Administrators AccessAll... server02.corp.fabrikam.com
microsoft.powershell32    2.0                             BUILTIN\Administrators AccessAll... server02.corp.fabrikam.com
MyX86Shell                2.0        c:\test\x86Shell.ps1 BUILTIN\Administrators AccessAll... server02.corp.fabrikam.com

Descrizione
-----------
In questo esempio viene illustrato come eseguire un comando Get-PSSessionConfiguration in un computer remoto. Per questo comando è necessario che la delega CredSSP sia abilitata nelle impostazioni client del computer locale e nelle impostazioni servizio nel computer remoto. Per eseguire i comandi in questo esempio, è necessario essere un membro del gruppo Administrators nel computer locale e nel computer remoto.

Con il primo comando viene utilizzato il cmdlet Enable-WSManCredSSP per abilitare la delega CredSSP dal computer locale Server01 al computer remoto Server02. L'impostazione client CredSSP viene configurata nel computer locale.

Con il secondo comando viene utilizzato il cmdlet Connect-WSMan per la connessione al computer Server02. Questa azione consente di aggiungere un nodo per il computer Server02 all'unità WSMan: nel computer locale, consentendo la visualizzazione e la modifica delle impostazioni di WS-Management nel computer Server02.

Nel terzo comando viene utilizzato il cmdlet Set-Item per modificare il valore dell'elemento CredSSP nel nodo Service del computer Server02 in True. Le impostazioni servizio vengono configurate nel computer remoto.

Con il quarto comando viene utilizzato il cmdlet Invoke-Command per eseguire un comando Get-PSSessionConfiguration nel computer Server02. Vengono utilizzati il parametro Credential e il parametro Authentication con un valore di CredSSP.

Esempio 6

C:\PS>(get-PSSessionConfiguration -name CustomShell).resourceURI

http://schemas.microsoft.com/powershell/microsoft.CustomShell

Descrizione
-----------
Con questo comando viene utilizzato il cmdlet Get-PSSessionConfiguration per ottenere l'URI di risorsa di una configurazione di sessione.

Questo comando è utile per l'impostazione del valore della variabile di preferenza $PSSessionConfigurationName che accetta un URI di risorsa.

Con la variabile $PSSessionConfiguationName viene specificata la configurazione predefinita utilizzata quando si crea una sessione. Questa variabile viene impostata nel computer locale, ma specifica una configurazione nel computer remoto. Per ulteriori informazioni sulla variabile $PSSessionConfiguration, vedere about_Preference_Variables.

Vedere anche

  • about_Session_Configurations
  • Disable-PSSessionConfiguration
  • Enable-PSSessionConfiguration
  • Register-PSSessionConfiguration
  • Set-PSSessionConfiguration
  • Unregister-PSSessionConfiguration
  • WSMan Provider


Get-PSSnapin

Ottiene gli snap-in di Windows PowerShell nel computer.

Sintassi

Get-PSSnapin [[-Name] <string[]>] [-Registered] [<CommonParameters>]

Descrizione

Il cmdlet Get-PSSnapin ottiene gli snap-in di Windows PowerShell aggiunti alla sessione corrente o registrati nel sistema. Gli snap-in sono elencati in base allo stesso ordine in cui vengono rilevati.

Get-PSSnapin ottiene solo gli snap-in registrati. Per registrare uno snap-in di Windows PowerShell, utilizzare lo strumento InstallUtil incluso in Microsoft .NET Framework 2.0. Per ulteriori informazioni, vedere l'argomento relativo alla registrazione di cmdlet, provider e applicazioni host in MSDN Library all'indirizzo http://go.microsoft.com/fwlink/?LinkId=143619 (le informazioni potrebbero essere in lingua inglese).

Parametri

-Name <string[]>

Ottiene solo gli snap-in di Windows PowerShell specificati. Immettere il nome di uno o più snap-in di Windows PowerShell. È consentito l'utilizzo di caratteri jolly.

Il nome del parametro ("Name") è facoltativo.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Registered

Ottiene gli snap-in di Windows PowerShell registrati nel sistema (anche se non sono ancora stati aggiunti alla sessione).

Gli snap-in installati con Windows PowerShell non saranno inclusi nell'elenco.

Senza questo parametro, tramite Get-PSSnapin vengono ottenuti gli snap-in di Windows PowerShell aggiunti alla sessione.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a Get-PSSnapin.
Output | System.Management.Automation.PSSnapInInfo Get-PSSnapin restituisce un oggetto per ogni snap-in ottenuto.

Note

È possibile fare riferimento a Get-PSSnapin tramite il relativo alias predefinito "psnp". Per ulteriori informazioni, vedere about_Aliases.

Esempio 1

C:\PS>get-PSSnapIn

Descrizione
-----------
Con questo comando si ottengono gli snap-in di Windows PowerShell attualmente caricati nella sessione. Sono inclusi gli snap-in installati con Windows PowerShell e quelli aggiunti alla sessione.

Esempio 2

C:\PS>get-PSSnapIn -registered

Descrizione
-----------
Tramite questo comando vengono ottenuti gli snap-in di Windows PowerShell registrati nel computer, inclusi quelli già aggiunti alla sessione. Nell'output non sono inclusi gli snap-in installati con Windows PowerShell o gli snap-in in forma di librerie a collegamento dinamico (DLL, Dynamic-Link Library) di Windows PowerShell non ancora registrati nel sistema.

Esempio 3

C:\PS>get-PSSnapIn smp*

Descrizione
-----------
Tramite questo comando vengono ottenuti gli snap-in di Windows PowerShell presenti nella sessione corrente il cui nome inizia con "smp".

Vedere anche

  • Add-PSSnapin
  • Remove-PSSnapin


Get-Random

Ottiene un numero casuale o seleziona gli oggetti da una raccolta in modo casuale.

Sintassi

Get-Random [-InputObject] <Object[]> [-Count <int>] [-SetSeed <int>] [<CommonParameters>]

Get-Random [[-Maximum] <Object>] [-Minimum <Object>] [-SetSeed <int>] [<CommonParameters>]

Descrizione

Il cmdlet Get-Random ottiene un numero selezionato casualmente. Se si invia una raccolta di oggetti a Get-Random, si ottengono uno o più oggetti selezionati casualmente dalla raccolta.

Senza parametri o input, un comando Get-Random restituisce un valore intero senza segno a 32 bit selezionato casualmente tra 0 (zero) e Int32.MaxValue (0x7FFFFFFF, 2,147,483,647).

È possibile utilizzare i parametri di Get-Random per specificare un numero di valore iniziale, i valori minimo e massimo e il numero di oggetti restituiti da una raccolta inviata.

Parametri

-Count <int>

Determina quanti oggetti vengono restituiti. Il valore predefinito è 1. Se il valore di Count supera il numero di oggetti nella raccolta, Get-Random restituisce tutti gli oggetti in ordine casuale.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 1
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <Object[]>

Specifica una raccolta di oggetti. Get-Random ottiene oggetti selezionati casualmente dalla raccolta. Immettere gli oggetti, una variabile contenente gli oggetti oppure un comando o un'espressione che consente di ottenere gli oggetti. È inoltre possibile reindirizzare una raccolta di oggetti a Get-Random.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Maximum <Object>

Specifica un valore massimo per il numero casuale. Get-Random restituisce un valore minore del valore massimo (non uguale). Immettere un valore intero a 32 bit o un numero a virgola mobile a precisione doppia o un oggetto che può essere convertito in valore intero o doppio, ad esempio una stringa numerica ("100"). Il valore massimo deve essere superiore (non uguale) al valore minimo.

Se il valore massimo o quello minimo è un numero a virgola mobile, Get-Random restituisce un numero a virgola mobile selezionato casualmente.

Se il valore minimo è doppio (numero a virgola mobile), il valore massimo predefinito è Double.MaxValue. Altrimenti, il valore predefinito è Int32.MaxValue (2,147,483,647 o 0x7FFFFFFF).

Obbligatorio? | false
Posizione? | 1
Valore predefinito | Int32.MaxValue
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Minimum <Object>

Specifica un valore minimo per il numero casuale. Immettere un valore intero a 32 bit o un numero a virgola mobile a precisione doppia o un oggetto che può essere convertito in valore intero o doppio, ad esempio una stringa numerica ("100"). Il valore predefinito è 0 (zero).

Il valore minimo deve essere inferiore (non uguale) al valore massimo. Se il valore massimo o quello minimo è un numero a virgola mobile, Get-Random restituisce un numero a virgola mobile selezionato casualmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 0
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SetSeed <int>

Specifica un valore iniziale per il generatore di numeri casuali. Questo valore viene utilizzato per il comando corrente e per tutti i comandi Get-Random successivi nella sessione corrente finché non si utilizza nuovamente SetSeed o non si chiude la sessione. Non è possibile reimpostare il valore iniziale predefinito, basato sul clock.

Il parametro SetSeed non è obbligatorio. Per impostazione predefinita, Get-Random utilizza il clock di sistema per generare un valore iniziale. Poiché SetSeed ha un comportamento non casuale, viene utilizzato in genere solo quando si tenta di riprodurre un comportamento, ad esempio quando si esegue il debug o l'analisi di uno script che include comandi Get-Random.

Obbligatorio? | false
Posizione? | named
Valore predefinito | System clock
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Object È possibile reindirizzare uno o più oggetti a Get-Random. Get-Random seleziona casualmente i valori dagli oggetti reindirizzati.
Output | System.Object Get-Random restituisce un valore intero o un numero a virgola mobile oppure un oggetto selezionato casualmente da una raccolta inviata.

Note

Get-Random imposta un valore iniziale predefinito per ogni sessione in base al clock di sistema all'avvio della sessione.

Esempio 1

C:\PS>get-random

3951433

Descrizione
-----------
Con questo comando si ottiene un valore intero casuale compreso tra 0 (zero) e Int32.MaxValue.

Esempio 2

C:\PS>get-random -maximum 100

47

Descrizione
-----------
Con questo comando si ottiene un valore intero casuale compreso tra 0 (zero) e 99.

Esempio 3

C:\PS>get-random -minimum -100 -maximum 100

-56

Descrizione
-----------
Questo comando ottiene un valore intero casuale compreso tra -100 e 99.

Esempio 4

C:\PS>get-random -min 10.7 -max 20.93

18.08467273887

Descrizione
-----------
Questo comando ottiene un numero a virgola mobile casuale maggiore o uguale a 10,7 e minore di 20,92.

Esempio 5

C:\PS>get-random -input 1, 2, 3, 5, 8, 13

8

Descrizione
-----------
Questo comando ottiene un numero selezionato casualmente dalla matrice specificata.

Esempio 6

C:\PS>get-random -input 1, 2, 3, 5, 8, 13 -count 3

3
1
13

Descrizione
-----------
Questo comando ottiene tre numeri selezionati casualmente dalla matrice in ordine casuale.

Esempio 7

C:\PS>get-random -input 1, 2, 3, 5, 8, 13 -count ([int]::MaxValue)

2
3
5
1
8
13

Descrizione
-----------
Questo comando restituisce l'intera raccolta in ordine casuale. Il valore del parametro Count è la proprietà statica MaxValue dei valori interi.

Per restituire un'intera raccolta in ordine casuale, immettere qualsiasi numero maggiore o uguale al numero di oggetti nella raccolta.

Esempio 8

C:\PS>get-random -input "red", "yellow", "blue"

yellow

Descrizione
-----------
Questo comando restituisce un valore casuale da una raccolta non numerica.

Esempio 9

C:\PS>get-process | get-random

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    144       4     2080        488    36     0.48   3164 wmiprvse

Descrizione
-----------
Questo comando ottiene un processo selezionato casualmente dalla raccolta di processi nel computer.

Esempio 10

C:\PS>get-content servers.txt | get-random -count (get-content servers.txt).count | foreach {invoke-expression -computer $_ -command 'get-process powershell'}

Descrizione
-----------
Questo comando esegue un comando in una serie di computer remoti in ordine casuale.

Esempio 11

C:\PS>get-random -max 100 -setseed 23

# Commands with the default seed are pseudorandom
PS C:\ps-test> get-random -max 100
59
PS C:\ps-test> get-random -max 100
65
PS C:\ps-test> get-random -max 100
21

# Commands with the same seed are not random
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100 -setseed 23
74

# SetSeed results in a repeatable series
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100
56
PS C:\ps-test> get-random -max 100
84
PS C:\ps-test> get-random -max 100
46
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100
56
PS C:\ps-test> get-random -max 100
84
PS C:\ps-test> get-random -max 100
46

Descrizione
-----------
In questo esempio viene illustrato l'effetto dell'utilizzo del parametro SetSeed. Poiché SetSeed ha un comportamento non casuale, viene utilizzato in genere solo per riprodurre risultati, ad esempio quando si esegue il debug o l'analisi di uno script.

Esempio 12

C:\PS>$files = dir -path c:\* -recurse

C:\PS> $sample = $files | get-random -count 50

Descrizione
-----------
Questi comandi ottengono un campione di 50 file selezionati casualmente dall'unità C: del computer locale.

Esempio 13

C:\PS>get-random 10001

7600

Descrizione
-----------
Questo comando ottiene un valore intero casuale minore di 10001. Poiché il parametro Maximum è in posizione 1, è possibile omettere il nome del parametro quando il valore è il primo o l'unico parametro senza nome nel comando.


Get-Service

Ottiene i servizi in un computer locale o remoto.

Sintassi

Get-Service [[-Name] <string[]>] [-ComputerName <string[]>] [-DependentServices] [-Exclude <string[]>] [-Include <string[]>] [-RequiredServices] [<CommonParameters>]

Get-Service -DisplayName <string[]> [-ComputerName <string[]>] [-DependentServices] [-Exclude <string[]>] [-Include <string[]>] [-RequiredServices] [<CommonParameters>]

Get-Service [-InputObject <ServiceController[]>] [-ComputerName <string[]>] [-DependentServices] [-Exclude <string[]>] [-Include <string[]>] [-RequiredServices] [<CommonParameters>]

Descrizione

Il cmdlet Get-Service ottiene gli oggetti che rappresentano i servizi in un computer locale o remoto, inclusi i servizi in esecuzione e quelli interrotti.

È possibile indicare a Get-Service di ottenere solo determinati servizi specificando il nome o il nome visualizzato dei servizi oppure è possibile reindirizzare gli oggetti servizio a Get-Service.

Parametri

-ComputerName <string[]>

Ottiene i servizi in esecuzione nei computer specificati. Il valore predefinito è il computer locale.

Digitare il nome NetBIOS, un indirizzo IP o un nome di dominio completo di un computer remoto. Per specificare il computer locale, digitare il nome del computer, un punto (.) o "localhost".

Questo parametro non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName di Get-Service anche se il computer non è configurato per l'esecuzione di comandi remoti.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Localhost
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-DependentServices

Ottiene solo i servizi che dipendono dal servizio specificato.

Per impostazione predefinita, Get-Service ottiene tutti i servizi.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-DisplayName <string[]>

Specifica i nomi visualizzati dei servizi da recuperare. È consentito l'utilizzo di caratteri jolly. Per impostazione predefinita, Get-Service ottiene tutti i servizi nel computer.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette i servizi specificati. Il valore di questo parametro qualifica il parametro Name. Immettere un criterio o un elemento del nome, ad esempio "s*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Recupera unicamente i servizi specificati. Il valore di questo parametro qualifica il parametro Name. Immettere un criterio o un elemento del nome, ad esempio "s*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <ServiceController[]>

Specifica gli oggetti ServiceController che rappresentano i servizi da recuperare. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti. È inoltre possibile reindirizzare un oggetto servizio a Get-Service.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Name <string[]>

Specifica i nomi dei servizi da recuperare. È consentito l'utilizzo di caratteri jolly. Per impostazione predefinita, Get-Service ottiene tutti i servizi nel computer.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | true

-RequiredServices

Ottiene solo i servizi richiesti da tale servizio.

Questo parametro ottiene il valore della proprietà ServicesDependedOn del servizio. Per impostazione predefinita, Get-Service ottiene tutti i servizi.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.ServiceProcess.ServiceController, System.String È possibile reindirizzare un oggetto servizio o un nome servizio a Get-Service.
Output | System.ServiceProcess.ServiceController Get-Service restituisce oggetti che rappresentano i servizi disponibili nel computer.

Note

È inoltre possibile fare riferimento a Get-Service tramite il relativo alias predefinito "gsv". Per ulteriori informazioni, vedere about_Aliases.

Get-Service consente di visualizzare servizi solo se l'utente corrente dispone delle autorizzazioni per vederli. Se i servizi non vengono visualizzati da Get-Service, è possibile che non si disponga delle autorizzazioni per vederli.

Per trovare il nome del servizio e il nome visualizzato di ogni servizio nel sistema, digitare "get-service". I nomi dei servizi vengono visualizzati nella colonna Name e i nomi visualizzati vengono elencati nella colonna DisplayName.

Quando si ordina in ordine crescente in base al valore di stato, i servizi "Stopped" vengono visualizzati prima dei "Running". La proprietà Status di un servizio è un valore enumerato nel quale i nomi degli stati rappresentano valori interi. L'ordinamento è basato sul valore intero, non sul nome. "Running" viene visualizzato prima di "Stopped" poiché "Stopped" ha un valore di "1" mentre "Running" ha un valore di "4".

Esempio 1

C:\PS>get-service

Descrizione
-----------
Con questo comando vengono recuperati tutti i servizi nel sistema come se si digitasse "get-service *". Nella visualizzazione predefinita sono elencati lo stato, il nome e il nome visualizzato di ogni servizio.

Esempio 2

C:\PS>get-service wmi*

Descrizione
-----------
Con questo comando vengono recuperati servizi il cui nome inizia con "WMI" (acronimo di Strumentazione gestione Windows).

Esempio 3

C:\PS>get-service -displayname *network*

Descrizione
-----------
Con questo comando vengono visualizzati i servizi il cui nome visualizzato inizia con la parola
"network". La ricerca del nome visualizzato consente di trovare tutti i servizi relativi alla rete, anche se il nome del servizio non include "Net", ad esempio xmlprov, il servizio Provisioning di rete.

Esempio 4

C:\PS>get-service -name win* -exclude winrm

Descrizione
-----------
Con questi comandi vengono ottenuti solo i servizi il cui nome inizia con "win", tranne il servizio WinRM.

Esempio 5

C:\PS>get-service | where-object {$_.Status -eq "Running"}

Descrizione
-----------
Con questo comando vengono visualizzati solo i servizi attualmente in esecuzione. Viene utilizzato il cmdlet Get-Service per ottenere tutti i servizi disponibili nel computer. L'operatore pipeline (|) passa i risultati al cmdlet Where-Object, tramite il quale vengono selezionati solo i servizi la cui proprietà Status equivale a "Running".

Status è l'unica proprietà degli oggetti servizio. Per visualizzare tutte le proprietà, digitare "get-service | get-member".

Esempio 6

C:\PS>get-service -computername Server02

Descrizione
-----------
Con questo comando vengono ottenuti i servizi nel computer remoto Server02.

Poiché il parametro ComputerName di Get-Service non utilizza la comunicazione remota di Windows PowerShell, è possibile utilizzare questo parametro anche se il computer non è configurato per la comunicazione remota di Windows PowerShell.

Esempio 7

C:\PS>get-service | where-object {$_.DependentServices} | format-list -property Name, DependentServices, @{Label="NoOfDependentS
ervices"; Expression={$_.dependentservices.count}}

Name                  : AudioEndpointBuilder
DependentServices     : {AudioSrv}
NoOfDependentServices : 1

Name                  : Dhcp
DependentServices     : {WinHttpAutoProxySvc}
NoOfDependentServices : 1
...

Descrizione
-----------
Questi comandi elencano i servizi presenti nel computer con servizi dipendenti.

Nel primo comando viene utilizzato il cmdlet Get-Service per ottenere i servizi disponibili nel computer. Un operatore pipeline (|) invia i servizi al cmdlet Where-Object che seleziona i servizi la cui proprietà DependentServices non è null.

I risultati vengono inviati al cmdlet Format-List da un altro operatore pipeline. Nel comando viene utilizzato il parametro Property per visualizzare il nome del servizio, il nome dei servizi dipendenti e una proprietà calcolata che visualizza il numero di servizi dipendenti di ogni servizio.

Esempio 8

C:\PS>C:\PS> get-service s* | sort-object status

Status   Name               DisplayName
------   ----               -----------
Stopped  stisvc             Windows Image Acquisition (WIA)
Stopped  SwPrv              MS Software Shadow Copy Provider
Stopped  SysmonLog          Performance Logs and Alerts
Running  Spooler            Print Spooler
Running  srservice          System Restore Service
Running  SSDPSRV            SSDP Discovery Service
Running  ShellHWDetection   Shell Hardware Detection
Running  Schedule           Task Scheduler
Running  SCardSvr           Smart Card
Running  SamSs              Security Accounts Manager
Running  SharedAccess       Windows Firewall/Internet Connectio...
Running  SENS               System Event Notification
Running  seclogon           Secondary Logon

C:\PS> get-service s* | sort-object status -descending

Status   Name               DisplayName
------   ----               -----------
Running  ShellHWDetection   Shell Hardware Detection
Running  SharedAccess       Windows Firewall/Internet Connectio...
Running  Spooler            Print Spooler
Running  SSDPSRV            SSDP Discovery Service
Running  srservice          System Restore Service
Running  SCardSvr           Smart Card
Running  SamSs              Security Accounts Manager
Running  Schedule           Task Scheduler
Running  SENS               System Event Notification
Running  seclogon           Secondary Logon
Stopped  SysmonLog          Performance Logs and Alerts
Stopped  SwPrv              MS Software Shadow Copy Provider
Stopped  stisvc             Windows Image Acquisition (WIA)

Descrizione
-----------
Questo comando mostra che quando si ordinano in ordine crescente i servizi in base al valore della proprietà Status, i servizi arrestati vengono visualizzati prima dei servizi in esecuzione. Questa situazione è dovuta al fatto che il valore di Status è un'enumerazione in cui "Stopped" ha valore "1" e "Running" ha valore 4.

Per elencare prima i servizi in esecuzione, utilizzare il parametro Descending del cmdlet Sort-Object.

Esempio 9

C:\PS>get-service -name winrm -computername localhost, Server01, Server02  | format-table -property MachineName, Status, Name, DisplayName -auto

MachineName    Status  Name  DisplayName
------------   ------  ----  -----------
localhost      Running WinRM Windows Remote Management (WS-Management)
Server01       Running WinRM Windows Remote Management (WS-Management)
Server02       Running WinRM Windows Remote Management (WS-Management)

Descrizione
-----------
In questo comando viene utilizza il cmdlet Get-Service per eseguire un comando "Get-Service Winrm" su due computer remoti e sul computer locale ("localhost").

Il comando Get-Service viene eseguito in computer remoti e i risultati vengono restituiti al computer locale. Verrà quindi utilizzato un operatore pipeline (|) per inviare i risultati al cmdlet Format-Table, che formatterà i servizi in una tabella. Nel comando Format-Table viene utilizzato il parametro Property per specificare le proprietà visualizzate nella tabella, inclusa la proprietà MachineName.

Esempio 10

C:\PS>get-service winrm -requiredServices

Descrizione
-----------
Questo comando ottiene i servizi richiesti dal servizio WinRM.

Il comando restituisce il valore della proprietà ServicesDependedOn del servizio.

Esempio 11

C:\PS>"winrm" | get-service

Descrizione
-----------
Questo comando ottiene il servizio WinRM nel computer locale. In questo esempio viene illustrato che è possibile reindirizzare una stringa del nome del servizio (racchiusa tra virgolette) a Get-Service.

Vedere anche

  • Start-Service
  • Stop-Service
  • Restart-Service
  • Resume-Service
  • Suspend-Service
  • Set-Service
  • New-Service


Get-TraceSource

Ottiene i componenti di Windows PowerShell instrumentati per l'analisi.

Sintassi

Get-TraceSource [[-Name] <string[]>] [<CommonParameters>]

Descrizione

Il cmdlet Get-TraceSource consente di ottenere le origini di analisi per i componenti di Windows PowerShell attualmente in uso. È possibile utilizzare i dati per determinare i componenti di Windows PowerShell che è possibile analizzare. Durante l'analisi il componente genera messaggi dettagliati sui singoli passaggi della relativa elaborazione interna. Gli sviluppatori utilizzano i dati di analisi per eseguire il monitoraggio del flusso dei dati, dell'esecuzione dei programmi, nonché degli errori. I cmdlet di analisi sono stati progettati specificamente per gli sviluppatori di Windows PowerShell, ma possono essere utilizzati da tutti gli utenti.

Parametri

-Name <string[]>

Ottiene solo le origini di analisi specificate. È consentito l'utilizzo di caratteri jolly. Il nome del parametro ("Name") è facoltativo.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene il nome di un'origine di analisi a Get-TraceSource.
Output | System.Management.Automation.PSTraceSource Get-TraceSource restituisce gli oggetti che rappresentano le origini di analisi.

Esempio 1

C:\PS>get-traceSource  *provider*

Descrizione
-----------
Tramite questo comando verranno ottenute tutte le origini di analisi il cui nome include la parola "provider".

Esempio 2

C:\PS>get-tracesource

Descrizione
-----------
Tramite questo comando verranno recuperati tutti i componenti di Windows PowerShell che è possibile analizzare.

Vedere anche

  • Set-TraceSource
  • Trace-Command


Get-Transaction

Ottiene la transazione corrente (attiva).

Sintassi

Get-Transaction [<CommonParameters>]

Descrizione

Con il cmdlet Get-Transaction viene ottenuto un oggetto che rappresenta la transazione corrente nella sessione.

Questo cmdlet non restituisce mai più di un oggetto, poiché è presente una sola transazione attiva alla volta. Se si avviano una o più transazioni indipendenti (utilizzando il parametro Independent di Start-Transaction) è attiva la transazione avviata più recentemente, ossia la transazione restituita da Get-Transaction.

Una volta eseguito il rollback o il commit di tutte le transazioni attive, Get-Transaction mostra la transazione attiva più di recente della sessione.

Il cmdlet Get-Transaction fa parte di un set di cmdlet che supportano la funzionalità delle transazioni in Windows PowerShell. Per ulteriori informazioni, vedere about_Transactions.

Parametri

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a questo cmdlet.
Output | System.Management.Automation.PSTransaction Get-Transaction restituisce un oggetto che rappresenta la transazione corrente.

Esempio 1

C:\PS>start-transaction

C:\PS> get-transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                1                 Active

Descrizione
-----------
In questo comando viene utilizzato il cmdlet Get-Transaction per ottenere la transazione corrente.

Esempio 2

C:\PS>get-transaction | get-member

Name               MemberType Definition
----               ---------- ----------
Dispose            Method     System.Void Dispose(), System.Void Dispose(Boolean disposing)
Equals             Method     System.Boolean Equals(Object obj)
GetHashCode        Method     System.Int32 GetHashCode()
GetType            Method     System.Type GetType()
ToString           Method     System.String ToString()
IsCommitted        Property   System.Boolean IsCommitted {get;}
IsRolledBack       Property   System.Boolean IsRolledBack {get;}
RollbackPreference Property   System.Management.Automation.RollbackSeverity RollbackPreference {get;}
SubscriberCount    Property   System.Int32 SubscriberCount {get;set;}

Descrizione
-----------
In questo comando viene utilizzato il cmdlet Get-Member per visualizzare le proprietà e i metodi dell'oggetto transazione.

Esempio 3

C:\PS>cd hklm:\software
HKLM:\SOFTWARE> Start-Transaction
HKLM:\SOFTWARE> New-Item MyCompany -UseTransaction
HKLM:\SOFTWARE> Undo-Transaction
HKLM:\SOFTWARE> Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ----------
Error                0                 RolledBack

Descrizione
-----------
Con questo comando vengono visualizzati i valori delle proprietà di un oggetto transazione per una transazione di cui si eseguito il rollback.

Esempio 4

C:\PS>cd hklm:\software
HKLM:\SOFTWARE> Start-Transaction
HKLM:\SOFTWARE> New-Item MyCompany -UseTransaction
HKLM:\SOFTWARE> Complete-Transaction
HKLM:\SOFTWARE> Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ---------
Error                1                 Committed

Descrizione
-----------
Con questo comando vengono visualizzati i valori delle proprietà di un oggetto transazione per una transazione di cui si eseguito il commit.

Esempio 5

C:\PS>cd hklm:\software
HKLM:\SOFTWARE> Start-Transaction
HKLM:\SOFTWARE> New-Item MyCompany -UseTransaction

HKLM:\SOFTWARE> Start-Transaction
HKLM:\SOFTWARE> New-Item MyCompany2 -UseTransaction

HKLM:\SOFTWARE> Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                2                 Active

HKLM:\SOFTWARE> Complete-Transaction
HKLM:\SOFTWARE> Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                1                 Active

HKLM:\SOFTWARE> Complete-Transaction
HKLM:\SOFTWARE> Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ---------
Error                1                 Committed

Descrizione
-----------
In questo esempio viene illustrato l'effetto sull'oggetto transazione dell'avvio di una transazione mentre un'altra transazione è in corso. In genere questa situazione si verifica quando uno script che esegue una transazione include una funzione o chiama uno script che contiene un'altra transazione completa.

A meno che il secondo comando Start-Transaction non includa il parametro Independent, Start-Transaction non crea una nuova transazione. Viceversa, aggiunge un secondo sottoscrittore alla transazione originale.

Il primo comando Start-Transaction avvia la transazione. Un comando New-Item con il parametro UseTransaction fa parte della transazione.

Con un secondo comando Start-Transaction viene aggiunto un sottoscrittore alla transazione. Anche il comando New-Item fa parte della transazione.

Il primo comando Get-Transaction mostra la transazione a più sottoscrittori. Si noti che il conteggio dei sottoscrittori è 2.

Il primo comando Complete-Transaction non esegue il commit della transazione, ma riduce il conteggio dei sottoscrittori a 1.

Il comando Complete-Transaction esegue il commit della transazione.

Esempio 6

C:\PS>HKLM:\SOFTWARE> Start-Transaction

HKLM:\SOFTWARE> Get-Transaction

RollbackPreference   SubscriberCount   IsRolledBack   IsCommitted
------------------   ---------------   ------------   -----------
Error                1                 False          False

HKLM:\SOFTWARE> Start-Transaction -Independent
HKLM:\SOFTWARE> Get-Transaction

RollbackPreference   SubscriberCount   IsRolledBack   IsCommitted
------------------   ---------------   ------------   -----------
Error                1                 False          False

HKLM:\SOFTWARE> Complete-Transaction
HKLM:\SOFTWARE> Get-Transaction

HKLM:\SOFTWARE> Complete-Transaction
HKLM:\SOFTWARE> Get-Transaction

Descrizione
-----------
In questo esempio viene illustrato l'effetto sull'oggetto transazione dell'avvio di una transazione indipendente mentre un'altra transazione è in corso.

Il primo comando Start-Transaction avvia la transazione. Un comando New-Item con il parametro UseTransaction fa parte della transazione.

Con un secondo comando Start-Transaction viene aggiunto un sottoscrittore alla transazione. Anche il comando New-Item fa parte della transazione.

Il primo comando Get-Transaction mostra la transazione a più sottoscrittori. Si noti che il conteggio dei sottoscrittori è 2.

Il primo comando Complete-Transaction riduce il conteggio dei sottoscrittori a 1 ma non esegue il commit della transazione.

Il comando Complete-Transaction esegue il commit della transazione.

Vedere anche

  • about_Transactions
  • about_Providers
  • Start-Transaction
  • Complete-Transaction
  • Undo-Transaction
  • Use-Transaction


Get-UICulture

Ottiene le impostazioni cultura correnti dell'interfaccia utente del sistema operativo.

Sintassi

Get-UICulture [<CommonParameters>]

Descrizione

Il cmdlet Get-UICulture ottiene informazioni sulle impostazioni cultura correnti dell'interfaccia utente di Windows. Le impostazioni cultura dell'interfaccia utente determinano quali stringhe di testo vengono utilizzate per gli elementi dell'interfaccia utente, ad esempio menu e messaggi.

È inoltre possibile utilizzare il cmdlet Get-Culture che ottiene le impostazioni cultura correnti nel sistema. Le impostazioni cultura determinano il formato di visualizzazione di elementi quali numeri, valuta e date.

Parametri

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.Globalization.CultureInfo Get-UICulture restituisce un oggetto che rappresenta le impostazioni cultura correnti dell'interfaccia utente.

Note

È inoltre possibile utilizzare le variabili $PsCulture e $PsUICulture. La variabile $PsCulture consente di archiviare il nome delle impostazioni cultura correnti, mentre la variabile $PsUICulture consente di archiviare il nome delle impostazioni cultura correnti dell'interfaccia utente.

Esempio 1

C:\PS>get-uiculture

Descrizione
-----------
Tramite questo comando verranno ottenute informazioni sulla lingua dell'interfaccia utente corrente.

Esempio 2

C:\PS>get-uiculture | format-list *

Descrizione
-----------
Tramite questo comando i valori di tutte le proprietà della lingua dell'interfaccia utente corrente verranno visualizzati in un elenco.

Esempio 3

C:\PS>(get-uiculture).calendar

Descrizione
-----------
Tramite questo comando verranno visualizzati i valori correnti della proprietà Calendar della lingua dell'interfaccia utente corrente. Calendar è solo una delle proprietà della lingua dell'interfaccia utente. Per visualizzare tutte le proprietà, digitare "get-uiculture | get-member".

Esempio 4

C:\PS>(get-uiculture).datetimeformat.shortdatepattern

Descrizione
-----------
Tramite questo comando verrà visualizzato il formato breve della data per la lingua dell'interfaccia utente corrente. Per visualizzare tutte le sottoproprietà della proprietà DateTimeFormat relativa alle impostazioni cultura dell'interfaccia utente, digitare "(get-uiculture).datetimeformat | gm".


Get-Unique

Restituisce le voci univoche di un elenco ordinato.

Sintassi

Get-Unique [-AsString] [-InputObject <psobject>] [<CommonParameters>]

Get-Unique [-OnType] [-InputObject <psobject>] [<CommonParameters>]

Descrizione

Il cmdlet Get-Unique consente di confrontare le singole voci di un elenco ordinato con la voce successiva e di eliminare i duplicati restituendo una sola istanza di ciascuna voce. Per il corretto funzionamento del cmdlet l'elenco deve essere ordinato.

Parametri

-AsString

Considera i dati come una stringa. Se questo parametro non viene specificato, i dati vengono trattati come oggetto, pertanto quando si invia a Get-Unique una raccolta di oggetti dello stesso tipo, ad esempio una raccolta di file, ne viene restituito solo uno, ovvero il primo. È possibile utilizzare questo parametro per trovare i valori univoci di proprietà dell'oggetto, ad esempio i nomi file.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Accetta input per Get-Unique. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Get-Unique tratta l'input inviato tramite InputObject come raccolta; non enumera i singoli elementi della raccolta. Poiché l'insieme è costituito da un singolo elemento, l'input inviato tramite InputObject verrà sempre restituito senza modifiche.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-OnType

Restituisce solo un oggetto di ciascun tipo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare qualsiasi tipo di oggetto a Get-Unique.
Output | System.Management.Automation.PSObject Il tipo di oggetto restituito da Get-Unique viene determinato dall'input.

Note

È inoltre possibile fare riferimento a Get-Unique tramite il relativo alias predefinito "gu". Per ulteriori informazioni, vedere about_Aliases.

Per ordinare un elenco, utilizzare Sort-Object. È inoltre possibile utilizzare il parametro Unique di Sort-Object per trovare le voci univoche di un elenco.

Esempio 1

C:\PS>$a = $(foreach ($line in get-content C:\Test1\File1.txt) {$line.tolower().split(" ")}) | sort | get-unique

C:\PS> $a.count

Descrizione
-----------
Tramite questi comandi verrà trovato il numero di parole univoche in un file di testo.

Tramite il primo comando verrà ottenuto il contenuto del file File.txt. Ogni riga di testo verrà convertita in lettere minuscole e ogni parola verrà spostata su una riga distinta in corrispondenza dello spazio (" "). L'elenco risultante verrà quindi ordinato alfabeticamente (impostazione predefinita). Verrà utilizzato il cmdlet Get-Unique per eliminare le eventuali parole duplicate. I risultati verranno archiviati nella variabile $a.

Nel secondo comando verrà invece utilizzata la proprietà Count dell'insieme di stringhe archiviate in $a per determinare il numero di voci incluse in $a.

Esempio 2

C:\PS>1,1,1,1,12,23,4,5,4643,5,3,3,3,3,3,3,3 | sort-object | Get-Unique

Descrizione
-----------
Tramite questo comando verranno trovati i membri univoci del set di valori integer. Nel primo comando una matrice di valori interi digitati sulla riga di comando verranno reindirizzati al cmdlet Sort-Object per essere ordinati e quindi reindirizzati a Get-Unique, che consente di eliminare le voci duplicate.

Esempio 3

C:\PS>get-childitem | sort-object {$_.GetType()} |  unique -OnType

Descrizione
-----------
In questo comando verrà utilizzato il cmdlet Get-ChildItem per recuperare il contenuto della directory locale, che include file e directory. I risultati vengono inviati al cmdlet Sort-Object dall'operatore pipeline (|). L'istruzione "$_.GetType()" consentirà di applicare il metodo GetType a ogni file o directory. Gli elementi verranno ordinati in base al tipo tramite Sort-Object. Verrà infine utilizzato un altro operatore pipeline per inviare i risultati a Get-Unique. Il parametro OnType indicherà a Get-Unique di restituire un solo oggetto di ciascun tipo.

Esempio 4

C:\PS>get-process | sort-object | select processname | get-unique -asstring

Descrizione
-----------
Tramite questo comando verrà ottenuto un elenco senza duplicati dei nomi dei processi in esecuzione nel computer.

Con il comando Get-Process si otterranno tutti i processi in esecuzione nel computer. Verrà quindi utilizzato l'operatore pipeline (|) per passare il risultato a Sort-Object, che, per impostazione predefinita, ordina alfabeticamente i processi in base a ProcessName. I risultati verranno reindirizzati al cmdlet Select-Object, che selezionerà solo i valori della proprietà ProcessName di ciascun oggetto. I risultati verranno infine inviati a Get-Unique per l'eliminazione dei duplicati.

Il parametro AsString indicherà a Get-Unique di considerare i valori ProcessName come stringhe. Se questo parametro non viene specificato, i valori ProcessName verranno considerati come oggetti, pertanto Get-Unique restituirà una sola istanza dell'oggetto, ovvero il nome del primo processo dell'elenco.

Vedere anche

  • Select-Object
  • Sort-Object


Get-Variable

Ottiene le variabili disponibili nella console corrente.

Sintassi

Get-Variable [[-Name] <string[]>] [-Exclude <string[]>] [-Include <string[]>] [-Scope <string>] [-ValueOnly] [<CommonParameters>]

Descrizione

Il cmdlet Get-Variable ottiene le variabili di Windows PowerShell disponibili nella console corrente. È possibile recuperare solo i valori delle variabili specificando il parametro ValueOnly e filtrare le variabili restituite in base al nome.

Parametri

-Exclude <string[]>

Omette gli elementi specificati. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Specifica solo gli elementi sui quali il cmdlet può eseguire operazioni, escludendo tutti gli altri. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string[]>

Specifica il nome della variabile.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Scope <string>

Ottiene solo le variabili nell'ambito specificato. I valori validi sono "Global", "Local", "Script" oppure un numero relativo all'ambito corrente, ovvero da 0 al numero di ambiti, dove 0 corrisponde all'ambito corrente e 1 al relativo padre. Il valore predefinito è "Local". Per ulteriori informazioni, vedere about_Scopes.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ValueOnly

Ottiene solo il valore della variabile.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene il nome della variabile a Get-Variable.
Output | Oggetto variabile Get-Variable restituisce un oggetto variabile System.Management.Automation per ogni variabile ottenuta. Il tipo di oggetto dipende dalla variabile.

Note

Questo cmdlet non consente di gestire le variabili di ambiente. Per gestire le variabili di ambiente, è possibile utilizzare il provider delle variabili di ambiente.

Esempio 1

C:\PS>get-variable m*

Descrizione
-----------
Tramite questo comando verranno visualizzate le variabili il cui nome inizia con la lettera "m". Verrà inoltre visualizzato il valore delle variabili.

Esempio 2

C:\PS>get-variable m* -valueonly

Descrizione
-----------
Tramite questo comando verranno visualizzati soli i valori delle variabili il cui nome inizia con la lettera "m".

Esempio 3

C:\PS>get-variable -include M*,P* | sort-object name

Descrizione
-----------
Tramite questo comando vengono ottenute informazioni sulle variabili il cui nome inizia con la lettera "M" o "P". I risultati verranno reindirizzati al cmdlet Sort-Object, ordinati in base al nome e visualizzati.

Esempio 4

C:\PS>get-variable -scope 0

C:\PS> compare-object (get-variable -scope 0) (get-variable -scope 1)

Descrizione
-----------
Il primo comando consente di ottenere solo le variabili definite nell'ambito locale. Equivale a "get-variable -scope local" e può essere abbreviato in "gv -s 0".

Nel secondo comando viene utilizzato il cmdlet Compare-Object per trovare le variabili definite nell'ambito padre (Ambito 1), ma visibili solo nell'ambito locale (Ambito 0).

Vedere anche

  • Set-Variable
  • New-Variable
  • Clear-Variable
  • Remove-Variable


Get-WinEvent

Ottiene eventi dai registri eventi e dai file di registro di traccia eventi nei computer locali e remoti.

Sintassi

Get-WinEvent [-LogName] <string[]> [-ComputerName <string>] [-Credential <PSCredential>] [-FilterXPath <string>] [-Force <switch>] [-MaxEvents <int64>] [-Oldest] [<CommonParameters>]

Get-WinEvent [-Path] <string[]> [-ComputerName <string>] [-Credential <PSCredential>] [-FilterXPath <string>] [-Force <switch>] [-MaxEvents <int64>] [-Oldest] [<CommonParameters>]

Get-WinEvent [-ProviderName] <string[]> [-ComputerName <string>] [-Credential <PSCredential>] [-FilterXPath <string>] [-Force <switch>] [-MaxEvents <int64>] [-Oldest] [<CommonParameters>]

Get-WinEvent -FilterHashTable <Hashtable[]> [-ComputerName <string>] [-Credential <PSCredential>] [-Force <switch>] [-MaxEvents <int64>] [-Oldest] [<CommonParameters>]

Get-WinEvent [-ListLog] <string[]> [-ComputerName <string>] [-Credential <PSCredential>] [<CommonParameters>]

Get-WinEvent [-ListProvider] <string[]> [-ComputerName <string>] [-Credential <PSCredential>] [<CommonParameters>]

Get-WinEvent -FilterXml <XmlDocument> [-ComputerName <string>] [-Credential <PSCredential>] [-Force <switch>] [-MaxEvents <int64>] [-Oldest] [<CommonParameters>]

Descrizione

Il cmdlet Get-WinEvent ottiene eventi dai registri eventi, inclusi i registri classici, ad esempio i registri eventi di sistema e delle applicazioni e i registri eventi generati dalla nuova tecnologia Registro eventi di Windows introdotta in Windows Vista. Ottiene inoltre eventi nei file di registro generati da Traccia eventi per Windows (ETW).

Senza parametri, un comando Get-WinEvent ottiene tutti gli eventi da tutti i registri eventi nel computer. Per interrompere il comando, premere CTRL+C.

Get-WinEvent elenca inoltre i registri eventi e i provider dei registri eventi. È possibile ottenere eventi da registri selezionati o generati dai provider di eventi selezionati. È inoltre possibile combinare eventi ottenuti da più origini in un solo comando. Get-WinEvent consente di filtrare eventi tramite query XPath, query XML strutturate e query della tabella hash semplificate.

Nota: Get-WinEvent richiede Windows Vista, Windows Server 2008 R2 o versioni successive di Windows. Richiede inoltre Microsoft .NET Framework 3.5 o versioni successive.

Parametri

-ComputerName <string>

Ottiene eventi dai registri eventi nel computer specificato. Digitare il nome NetBIOS, un indirizzo IP (Internet Protocol) o il nome di dominio completo del computer. Il valore predefinito è il computer locale.

Questo parametro accetta un solo nome di computer alla volta. Per trovare i registri eventi su più computer, utilizzare un'istruzione ForEach. Per ulteriori informazioni su questo parametro, vedere gli esempi.

Per ottenere eventi e registri eventi da computer remoti, è necessario che la porta del firewall per il servizio del registro eventi sia configurata per consentire l'accesso remoto.

Questo parametro non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName anche se il computer non è configurato per l'esecuzione di comandi remoti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio Utente01 o Dominio01\Utente01. In alternativa, immettere un oggetto PSCredential, ad esempio quello generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password. Se si digita solo il nome del parametro, vengono richiesti sia un nome utente sia una password.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Current user
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-FilterHashTable <Hashtable[]>

Utilizza una query in formato di tabella hash per selezionare eventi da uno o più registri eventi. La query contiene una tabella hash con una o più coppie chiave-valore.

Le query della tabella hash dispongono delle regole seguenti:

-- Chiavi e valori non rilevano la distinzione tra maiuscole e minuscole.

-- I caratteri jolly sono validi solo nei valori associati alle chiavi LogName e ProviderName.

-- Ogni chiave può essere elencata una sola volta in ciascuna tabella hash.

-- Il valore Path accetta i percorsi dei file di registro con estensione etl, evt ed evtx.

-- È possibile utilizzare le chiavi LogName, Path e ProviderName nella stessa query.

-- La chiave UserID può accettare un ID di sicurezza (SID) valido o il nome di un account di dominio che può essere utilizzato per creare un oggetto System.Security.Principal.NTAccount valido.

-- Il valore Data accetta dati evento in un campo senza nome. Ciò è valido per gli eventi nei registri eventi classici.

-- La chiave * rappresenta un campo dati evento con nome.

Quando per Get-WinEvent non è possibile interpretare una coppia chiave-valore, la chiave viene interpretata come nome con distinzione tra maiuscole e minuscole per i dati evento nell'evento.

Le coppie chiave-valore valide sono come segue:

-- LogName=<String[]>

-- ProviderName=<String[]>

-- Path=<String[]>

-- Keywords=<Long[]>

-- ID=<Int32[]>

-- Level=<Int32[]>

-- StartTime=<DateTime>

-- EndTime=<DataTime>

-- UserID=<SID>

-- Data=<String[]>

-- *=<String[]>

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-FilterXml <XmlDocument>

Utilizza una query XML strutturata per selezionare eventi da uno o più registri eventi.

Per generare una query XML valida, utilizzare le funzionalità Crea visualizzazione personalizzata e Filtro registro corrente nel Visualizzatore eventi. Utilizzare gli elementi nella finestra di dialogo per creare una query, quindi fare clic sulla scheda XML per visualizzare la query in formato XML. È possibile copiare l'XML dalla scheda XML nel valore del parametro FilterXml. Per ulteriori informazioni sulle funzionalità del Visualizzatore, vedere la Guida del Visualizzatore eventi.

In genere, si utilizza una query XML per creare una query complessa che contiene diverse istruzioni XPath. Il formato XML consente inoltre di utilizzare un elemento XML "Elimina" che esclude gli eventi dalla query. Per ulteriori informazioni sullo schema XML per le query del registro eventi, vedere gli argomenti seguenti in MSDN Library.

-- "Query Schema": http://go.microsoft.com/fwlink/?LinkId=143685

-- "XML Event Queries" in "Event Selection": http://go.microsoft.com/fwlink/?LinkID=143608

Obbligatorio? | true
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-FilterXPath <string>

Utilizza una query XPath per selezionare eventi da uno o più registri.

Per ulteriori informazioni sul linguaggio XPath, vedere "Selection Filters" in "Event Selection" e "XPath Reference" in MSDN Library.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force <switch>

Ottiene i registri analitici e di debug, oltre ad altri registri eventi. Il parametro Force è necessario per ottenere un registro di debug o analitico quando il valore del parametro Name include caratteri jolly.

Per impostazione predefinita, in Get-WinEvent questi registri vengono esclusi, a meno che non si specifichi in modo esplicito il nome completo di un registro analitico o di debug.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Debugging and analytic logs are not returned in response to queries that use wildcard characters.
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ListLog <string[]>

Ottiene i registri eventi specificati. Immettere i nomi dei registri eventi in un elenco con valori delimitati da virgole. È consentito l'utilizzo di caratteri jolly. Per ottenere tutti i registri, immettere il valore *.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-ListProvider <string[]>

Ottiene i provider dei registri eventi specificati. Un provider del registro eventi è un programma o un servizio che scrive eventi nel registro eventi.

Immettere i nomi dei provider in un elenco con valori delimitati da virgole. È consentito l'utilizzo di caratteri jolly. Per ottenere i provider di tutti i registri eventi nel computer, immettere il valore *.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-LogName <string[]>

Ottiene eventi da registri eventi specificati. Immettere i nomi dei registri eventi in un elenco con valori delimitati da virgole. È consentito l'utilizzo di caratteri jolly. È inoltre possibile reindirizzare i nomi di registro a Get-WinEvent.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | true

-MaxEvents <int64>

Specifica il numero massimo di eventi restituiti da Get-WinEvent. Immettere un valore intero. Per impostazione predefinita vengono restituiti tutti gli eventi nei registri o file.

Obbligatorio? | false
Posizione? | named
Valore predefinito | All events
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Oldest

Restituisce gli eventi a partire dal meno recente. Per impostazione predefinita gli eventi vengono restituiti a partire dal più recente.

Questo parametro è obbligatorio per ottenere eventi dai file con estensione etl ed evt e dai registri analitici e di debug. In questi file gli eventi vengono registrati a partire dal meno recente e possono essere restituiti solo in tale ordine.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string[]>

Ottiene eventi dai file dei registri eventi specificati. Immettere i percorsi dei file di registro in un elenco con valori delimitati da virgole oppure utilizzare caratteri jolly per creare criteri dei percorsi dei file.

Get-WinEvent supporta file con estensione evt, evtx ed etl. È possibile includere eventi da file e tipi di file diversi nello stesso comando.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-ProviderName <string[]>

Ottiene eventi scritti dai provider dei registri eventi specificati. Immettere i nomi dei provider in un elenco con valori delimitati da virgole oppure utilizzare caratteri jolly per creare criteri dei nome dei provider.

Un provider del registro eventi è un programma o un servizio che scrive eventi nel registro eventi. Non è un provider di Windows PowerShell.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input

System.String, System.Xml.XmlDocument, System.Collections.Hashtable.

È possibile reindirizzare un LogName (stringa), una query FilterXML o una query FilterHashTable a Get-WinEvent.

Output

System.Diagnostics.Eventing.Reader.EventLogConfiguration, System.Diagnostics.Eventing.Reader.EventLogRecord, System.Diagnostics.Eventing.Reader.ProviderMetadata

Con il parametro ListLog, Get-WinEvent restituisce oggetti System.Diagnostics.Eventing.Reader.EventLogConfiguration. Con il parametro ListProvider, Get-WinEvent restituisce oggetti System.Diagnostics.Eventing.Reader.ProviderMetadata. Con tutti gli altri parametri, Get-WinEvent restituisce oggetti System.Diagnostics.Eventing.Reader.EventLogRecord.

Note

Get-WinEvent è progettato per sostituire il cmdlet Get-EventLog nei computer in cui è in esecuzione Windows Vista e versioni successive di Windows. Get-EventLog ottiene eventi solo in registri eventi classici. Get-EventLog viene mantenuto in Windows PowerShell 2.0 per i sistemi precedenti a Windows Vista.

Esempio 1

C:\PS>get-winevent -listlog  *

Descrizione
-----------
Questo comando ottiene tutti i registri nel computer locale.

I registri vengono elencati nell'ordine in cui vengono ottenuti da Get-WinEvent. In genere, i registri classici vengono restituiti per primi, seguiti dai nuovi registri degli eventi di Windows.

Poiché sono generalmente presenti più di cento registri eventi, questo parametro richiede un nome di registro o un criterio del nome. Per ottenere tutti i registri, utilizzare *.

Esempio 2

C:\PS>get-winevent -listlog Setup | format-list -property *

    FileSize                       : 69632
    IsLogFull                      : False
    LastAccessTime                 : 2/14/2008 12:55:12 AM
    LastWriteTime                  : 7/9/2008 3:12:05 AM
    OldestRecordNumber             : 1
    RecordCount                    : 3
    LogName                        : Setup
    LogType                        : Operational
    LogIsolation                   : Application
    IsEnabled                      : True
    IsClassicLog                   : False
    SecurityDescriptor             : O:BAG:SYD:(A;;0xf0007;;;SY)(A;
                                     (A;;0x1;;;S-1-5-32-573)
    LogFilePath                    : %SystemRoot%\System32\Winevt\L
    MaximumSizeInBytes             : 1052672
    LogMode                        : Circular
    OwningProviderName             : Microsoft-Windows-Eventlog
    ProviderNames                  : {Microsoft-Windows-WUSA, Micro
    ProviderLevel                  :
    ProviderKeywords               :
    ProviderBufferSize             : 64
    ProviderMinimumNumberOfBuffers : 0
    ProviderMaximumNumberOfBuffers : 64
    ProviderLatency                : 1000
    ProviderControlGuid            :

Descrizione
-----------
Questi comandi ottengono un oggetto che rappresenta il registro eventi di sistema classico nel computer locale. L'oggetto include informazioni utili sul registro, comprese le dimensioni, il provider del registro eventi, il percorso del file e se è attivato.

Esempio 3

C:\PS>get-winevent -listlog * -computername Server01| where {$_.recordcount}

Descrizione
-----------
Questo comando ottiene i registri eventi solo nel computer Server01 che contiene gli eventi. Molti registri potrebbero essere vuoti.

Il comando utilizza la proprietà RecordCount dell'oggetto EventLogConfiguration restituito da Get-WinEvent quando si utilizza il parametro ListLog.

Esempio 4

C:\PS>$s = "Server01", "Server02", "Server03"

C:\PS> foreach ($server in $s)
     {$server; get-winevent -listlog "Windows PowerShell" -computername $server}

Descrizione
-----------
I comandi in questo esempio ottengono gli oggetti che rappresentano i registri eventi di Windows PowerShell nei computer Server01, Server02 e Server03. Questo comando utilizza la parola chiave Foreach perché il parametro ComputerName accetta un solo valore.

Il primo comando salva i nomi dei computer nella variabile $s.

Il secondo comando utilizza un'istruzione Foreach. Per ciascuno dei computer nella variabile $s, esegue il comando nel blocco di script (tra parentesi graffe). Il comando stampa innanzitutto il nome del computer. Esegue quindi un comando Get-WinEvent per ottenere un oggetto che rappresenta il registro di Windows PowerShell.

Esempio 5

C:\PS>get-winevent -listprovider *

Descrizione
-----------
Questo comando ottiene i provider dei registri eventi nel computer locale e i registri in cui scrivono, se presenti.

Esempio 6

C:\PS>(get-winevent -listlog Application).providernames

Descrizione
-----------
Questo comando ottiene tutti i provider che scrivono nel registro applicazioni nel computer locale.

Esempio 7

C:\PS>>get-winevent -listprovider *policy*

Descrizione
-----------
Questo comando ottiene i provider dei registri eventi i cui nomi includono la parola "policy".

Esempio 8

C:\PS>(get-winevent -listprovider microsoft-windows-grouppolicy).events | format-table id, description -auto

Descrizione
-----------
Questo comando elenca gli ID evento generati dal provider di eventi Microsoft-Windows-GroupPolicy unitamente alla descrizione dell'evento.

Utilizza la proprietà Events dell'oggetto restituito da Get-WinEvent quando si utilizza il parametro ListProvider e le proprietà ID e Description dell'oggetto nella proprietà Events.

Esempio 9

C:\PS>$events = get-winevent -logname "Windows PowerShell"

C:\PS> $events.count
195

C:\PS> $events | group-object id -noelement | sort-object count -desc
Count Name
----- ----
  147 600
   22 400
   21 601
    3 403
    2 103

 C:\PS> $events | group-object leveldisplayname -noelement
Count Name
----- ----
    2 Warning
  193 Information

Descrizione
-----------
In questo esempio viene illustrato come utilizzare le proprietà degli oggetti evento restituiti da Get-WinEvent per ottenere ulteriori informazioni sugli eventi in un registro eventi.

Nel primo comando viene utilizzato il cmdlet Get-WinEvent per ottenere tutti gli eventi nel registro eventi di Windows PowerShell. Vengono quindi salvati nella variabile $events. Il nome del registro è racchiuso tra virgolette perché contiene uno spazio.

Nel secondo comando viene utilizzata la proprietà Count delle raccolte di oggetti per trovare il numero di voci nel registro eventi.

Il terzo comando visualizza l'incidenza di ciascun evento nel registro, innanzitutto con gli eventi più frequenti. In questo esempio, l'ID evento 600 è l'evento più frequente.

Il quarto comando raggruppa gli elementi in base al valore della relativa proprietà LevelDisplayName per illustrare quanti eventi di errore, avviso e informazione sono presenti nel registro.

Esempio 10

C:\PS>get-winevent -logname *disk*, Microsoft-Windows-Kernel-WHEA

Descrizione
-----------
Questo comando ottiene gli eventi di errore i cui nomi includono "disk" da tutti i registri eventi del computer e dal registro eventi Microsoft-Windows-Kernel-WHEA.

Esempio 11

C:\PS>get-winevent -path 'c:\ps-test\Windows PowerShell.evtx'

Descrizione
-----------
Questo comando ottiene eventi da una copia del file del registro eventi di Windows PowerShell in una directory di prova. Il percorso è racchiuso tra virgolette perché il nome del registro contiene uno spazio.

Esempio 12

C:\PS>get-winevent -path 'c:\tracing\tracelog.etl' -maxevents 100 -oldest

C:\PS> get-winevent -path 'c:\tracing\tracelog.etl' -oldest | sort-object -property timecreated -desc | select-object -first 100

Descrizione
-----------
Questi comandi ottengono i primi 100 eventi da un file del registro di Traccia eventi per Windows (ETW).

Il primo comando ottiene i 100 eventi meno recenti nel log. Utilizza il cmdlet Get-WinEvent per ottenere eventi dal file Tracelog.etl. Utilizza il parametro MaxEvents per limitare il recupero a 100 eventi. Poiché gli eventi sono elencati nell'ordine in cui sono scritti nel log (dal meno recente), il parametro Oldest è obbligatorio.

Il secondo comando ottiene i 100 eventi più recenti nel log. Utilizza il cmdlet Get-WinEvent per ottenere tutti gli eventi dal file Tracing.etl. Gli eventi
vengono passati al cmdlet Sort-Object che li ordina in ordine decrescente in base al valore della proprietà TimeCreated. Gli eventi ordinati vengono quindi inviati al cmdlet Select-Object per selezionare i 100 eventi più recenti.

Esempio 13

C:\PS>get-winevent -path "c:\tracing\tracelog.etl", "c:\Logs\Windows PowerShell.evtx" -oldest | where {$_.id -eq "103"}

Descrizione
-----------
In questo esempio viene illustrato come ottenere gli eventi da un file di registro di traccia eventi (con estensione etl) e da una copia del file del registro di Windows PowerShell (con estensione evtx) salvata in una directory di prova.

È possibile combinare più tipi di file in un solo comando. Poiché i file contengono lo stesso tipo di oggetto .NET Framework (un oggetto EventLogRecord), è possibile utilizzare le stesse proprietà per filtrarli.

Si noti che il comando richiede il parametro Oldest perché esegue la lettura da un file con estensione etl, ma il parametro Oldest si applica a entrambi i file.

Esempio 14

C:\PS># Use the Where-Object cmdlet
C:\PS> $yesterday = (get-date) - (new-timespan -day 1)
C:\PS> get-winevent -logname "Windows PowerShell" | where {$_.timecreated -ge $yesterday}

# Uses FilterHashTable
C:\PS> $yesterday = (get-date) - (new-timespan -day 1)
C:\PS> get-winevent -FilterHashTable @{LogName='Windows PowerShell'; Level=3; StartTime=$yesterday}

# Use FilterXML
C:\PS> get-winevent -FilterXML "<QueryList><Query><Select Path='Windows PowerShell'>*[System[Level=3 and TimeCreated[timediff(@SystemTime) <= 86400000]]]</Select></Query></QueryList>"

# Use FilterXPath
C:\PS> get-winevent -LogName "Windows Powershell" -FilterXPath "*[System[Level=3 and TimeCreated[timediff(@SystemTime) <= 86400000]]]"

Descrizione
-----------
In questo esempio vengono illustrati diversi metodi di filtro per la selezione di eventi da un registro eventi. Tutti questi comandi ottengono gli eventi che si sono verificati nelle ultime 24 ore dal registro eventi di Windows Powershell.

I metodi dei filtri sono più efficienti dell'utilizzo del cmdlet Where-Object perché i filtri vengono applicati mentre vengono recuperati gli oggetti, piuttosto che recuperare tutti gli oggetti e poi filtrarli.

Poiché le date sono difficili da formulare nei formati XML e XPath, per creare il contenuto XML per la data, viene utilizzata la funzionalità Filtro registro corrente del Visualizzatore eventi. Per ulteriori informazioni su questa funzionalità, vedere la Guida del Visualizzatore eventi.

Esempio 15

C:\PS>$date = (get-date).AddDays(-2)

C:\PS> $events = get-winevent -FilterHashTable @{ logname = "Microsoft-Windows-Diagnostics-Performance/Operational"; StartTime = $date; ID = 100 }

Descrizione
-----------
In questo esempio viene utilizzata una tabella hash del filtro per ottenere eventi dal registro delle prestazioni.

Il primo comando utilizza il cmdlet Get-Date e il metodo AddDays per ottenere una data che precede di due giorni la data corrente. La data viene salvata nella variabile $date.

Nel secondo comando viene utilizzato il cmdlet Get-WinEvent con il parametro FilterHashTable. Le chiavi nella tabella hash definiscono un filtro che seleziona nel registro delle prestazioni eventi che si sono verificati negli ultimi due giorni e che presentano un ID evento 100.

La chiave LogName specifica il registro eventi, la chiave StartTime specifica la data e la chiave ID specifica l'ID evento.

Esempio 16

C:\PS>$starttime = (get-date).adddays(-7)

C:\PS> $ie-error = Get-WinEvent -FilterHashtable @{logname="application"; providername="Application Error"; data="iexplore.exe"; starttime=$starttime}

Descrizione
-----------
In questo esempio viene utilizzata una tabella hash del filtro per trovare errori dell'applicazione Internet Explorer che si sono verificati nell'ultima settimana.

Il primo comando ottiene la data che precede di sette giorni la data corrente e l'archivia nella variabile $starttime.

Nel secondo comando viene utilizzato il cmdlet Get-WinEvent con il parametro FilterHashTable. Le chiavi nella tabella hash definiscono un filtro che seleziona, dal registro applicazioni, gli eventi scritti dal provider dell'errore dell'applicazione e include la frase "iexplore.exe".

La chiave LogName specifica il registro eventi. La chiave ProviderName specifica il provider di eventi, la chiave StartTime specifica la data iniziale degli eventi e la chiave Data specifica il testo nel messaggio dell'evento.

Vedere anche

  • Get-EventLog
  • Get-Counter
  • about_Eventlogs


Get-WmiObject

Ottiene le istanze delle classi di Strumentazione gestione Windows (WMI) o informazioni relative alle classi disponibili.

Sintassi

Get-WmiObject [-Authority <string>] [-Amended] [-AsJob] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-ThrottleLimit <int>] [<CommonParameters>]

Get-WmiObject [[-Classe] <string>] [-Authority <string>] [-List] [-Recurse] [-Amended] [-AsJob] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-ThrottleLimit <int>] [<CommonParameters>]

Get-WmiObject [-Authority <string>] [-Amended] [-AsJob] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-ThrottleLimit <int>] [<CommonParameters>]

Get-WmiObject [-Classe] <string> [[-Property] <string[]>] [-Authority <string>] [-DirectRead] [-Filter <string>] [-Amended] [-AsJob] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-ThrottleLimit <int>] [<CommonParameters>]

Get-WmiObject -Query <string> [-Authority <string>] [-DirectRead] [-Amended] [-AsJob] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-ThrottleLimit <int>] [<CommonParameters>]

Descrizione

Il cmdlet Get-WmiObject ottiene le istanze delle classi WMI o informazioni relative alle classi WMI disponibili. Il parametro ComputerName può essere sempre utilizzato per specificare un computer remoto. Se si specifica il parametro List, il cmdlet ottiene informazioni relative alle classi WMI disponibili in un determinato spazio dei nomi. Se viene specificato il parametro Query, il cmdlet esegue un'istruzione WQL (WMI Query Language).

Il cmdlet Get-WmiObject non utilizza l'infrastruttura remota di Windows PowerShell per eseguire operazioni remote. È possibile utilizzare il parametro ComputerName del cmdlet Get-WmiObject anche se il computer non soddisfa i requisiti per la comunicazione remota di Windows PowerShell e non è configurato in tal senso in Windows PowerShell.

Parametri

-Amended

Ottiene o imposta un valore che indica se gli oggetti restituiti da WMI devono contenere informazioni corrette. In genere, si tratta di informazioni localizzabili collegate all'oggetto WMI, ad esempio descrizioni dell'oggetto e delle proprietà.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-AsJob

Esegue il comando come processo in background. Utilizzare questo parametro per eseguire comandi il cui completamento richiede molto tempo.

Quando si utilizza il parametro AsJob, il comando restituisce un oggetto che rappresenta il processo in background, quindi visualizza il prompt dei comandi. È possibile continuare a utilizzare la sessione fino al completamento del processo. Se Get-WmiObject viene utilizzato in un computer remoto, il processo viene creato nel computer locale e i risultati dei computer remoti vengono automaticamente restituiti nel computer locale. Per gestire il processo, utilizzare i cmdlet che contengono il nome Job (cmdlet Job). Per ottenere i risultati del processo, utilizzare il cmdlet Receive-Job.

Nota: per utilizzare questo parametro con computer remoti, è necessario configurare il computer locale e quello remoto per la comunicazione remota. È inoltre necessario avviare Windows PowerShell utilizzando l'opzione "Esegui come amministratore" di Windows Vista e delle versioni successive di Windows. Per ulteriori informazioni, vedere about_Remote_Requirements.

Per ulteriori informazioni sui processi in background di Windows PowerShell, vedere about_Jobs e about_Remote_Jobs.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Authentication <AuthenticationLevel>

Specifica il livello di autenticazione da utilizzare con la connessione WMI. I valori validi sono:

-1: Unchanged

0: Default

1: None (non viene eseguita alcuna autenticazione).

2: Connect (l'autenticazione viene eseguita solo quando il client stabilisce una relazione con l'applicazione).

3: Call (l'autenticazione viene eseguita solo all'inizio di ogni chiamata quando l'applicazione riceve la richiesta).

4: Packet (l'autenticazione viene eseguita su tutti i dati ricevuti dal client).

5: PacketIntegrity (tutti i dati trasferiti tra il client e l'applicazione vengono autenticati e verificati).

6: PacketPrivacy (vengono utilizzate le proprietà degli altri livelli di autenticazione e tutti i dati vengono crittografati).

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Authority <string>

Specifica l'autorità da utilizzare per autenticare la connessione WMI. È possibile specificare l'autenticazione NTLM o Kerberos standard. Per utilizzare NTLM, impostare l'autorità su ntlmdomain:<NomeDominio>, dove <NomeDominio> identifica un nome di dominio NTLM valido. Per utilizzare Kerberos, specificare kerberos:<NomeDominio>\<NomeServer>". Non è possibile includere l'impostazione Authority quando ci si connette al computer locale.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Classe <string>

Specifica il nome di una classe WMI. Quando viene utilizzato questo parametro, il cmdlet recupera le istanze della classe WMI.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string[]>

Specifica il computer in cui si desidera eseguire l'operazione di gestione. Il valore può essere un nome di dominio completo, un nome NetBIOS o un indirizzo IP. Utilizzare il nome del computer locale, localhost o un punto (.) per specificare il computer locale. Il valore predefinito è il computer locale. Quando il computer remoto si trova in un dominio diverso da quello dell'utente, è necessario utilizzare un nome di dominio completo. Questo parametro può inoltre essere reindirizzato al cmdlet.

Questo parametro non si basa sulla comunicazione remota di Windows PowerShell che utilizza WS-Management. È possibile utilizzare il parametro ComputerName di Get-WmiObject anche se il computer non è configurato per l'esecuzione di comandi remoti di WS-Management.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente. Digitare un nome utente, ad esempio "Utente01", "Dominio01\Utente01" o Utente@Contoso.com. In alternativa, immettere un oggetto PSCredential, ad esempio quello restituito dal cmdlet Get-Credential. Quando si digita un nome utente, viene richiesta una password.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-DirectRead

Specifica se è richiesto l'accesso diretto al provider WMI per la classe specificata, indipendentemente dalla relativa classe di base o dalle classi derivate.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-EnableAllPrivileges

Abilita tutti i privilegi dell'utente corrente prima che il comando effettui la chiamata WMI.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica una clausola Where da utilizzare come filtro. Utilizzare la sintassi di WQL (WMI Query Language).

Importante: non includere la parola chiave Where nel valore del parametro. Nei comandi seguenti, ad esempio, vengono restituiti solo i dischi logici in cui DeviceID corrisponde a 'c:' e i servizi in cui il nome corrisponde a 'WinRM', senza utilizzare la parola chiave Where:

get-WmiObject Win32_LogicalDisk -filter "DeviceID = 'c:'"

get-wmiobject win32_service -filter "nome='WinRM'"

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Impersonation <ImpersonationLevel>

Specifica il livello di rappresentazione da utilizzare. I valori validi sono:

0: Default (legge il Registro di sistema locale per il livello di rappresentazione predefinito, in genere impostato su "3: Impersonate").

1: Anonymous (nasconde le credenziali del chiamante).

2: Identify (consente agli oggetti di eseguire query delle credenziali del chiamante).

3: Impersonate (consente agli oggetti di utilizzare le credenziali del chiamante).

4: Delegate (consente agli oggetti di permettere ad altri oggetti di utilizzare le credenziali del chiamante).

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-List

Specifica se recuperare e visualizzare i nomi delle classi WMI nello spazio dei nomi dell'archivio WMI specificato nel parametro Namespace. La voce del Registro di sistema Default Namespace, presente nella chiave del Registro di sistema HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting, non viene utilizzata da questo cmdlet per determinare lo spazio dei nomi predefinito. Se si specifica il parametro List, ma non il parametro Namespace, per impostazione predefinita viene utilizzato lo spazio dei nomi root\CIMV2.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Locale <string>

Specifica le impostazioni locali preferite per gli oggetti WMI. Specifica il valore del parametro Locale come matrice nel formato MS_<LCID> nell'ordine preferito.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Spazio dei nomi <string>

Quando viene utilizzato con il parametro Class, questo parametro specifica lo spazio dei nomi dell'archivio WMI in cui si trova la classe a cui si fa riferimento. Quando viene utilizzato con il parametro List, specifica lo spazio dei nomi da cui raccogliere le informazioni relative alla classe WMI.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Property <string[]>

Specifica la proprietà o il set di proprietà della classe WMI da recuperare.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Query <string>

Specifica un'istruzione WQL (WMI Query Language) da eseguire. Le query di eventi non sono supportate da questo parametro.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Recurse

Fa in modo che il comando cerchi il nome della classe specificato nel parametro Class all'interno dello spazio dei nomi corrente e in tutti gli altri spazi dei nomi.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ThrottleLimit <int>

Consente all'utente di specificare un valore di limitazione per il numero di operazioni WMI (Strumentazione gestione Windows) che è possibile eseguire contemporaneamente. Questo parametro viene utilizzato insieme al parametro AsJob.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a Get-WmiObject.
Output | PSObject o System.Management.Automation.RemotingJob Quando si utilizza il parametro AsJob, il cmdlet restituisce un oggetto processo. In caso contrario, l'oggetto restituito da Get-WmiObject dipende dal valore del parametro Class.

Note

Per accedere alle informazioni WMI in un computer remoto, è necessario eseguire il cmdlet in un account membro del gruppo di amministratori locali del computer remoto. In alternativa, il controllo di accesso predefinito nello spazio dei nomi WMI dell'archivio remoto può essere modificato per concedere diritti di accesso a un altro account.

Per impostazione predefinita, vengono visualizzate solo alcune delle proprietà di una classe WMI. Il set di proprietà visualizzato per ogni classe WMI è specificato nel file di configurazione Types.ps1xml. In uno degli esempi riportati in questo argomento della Guida viene illustrato come ignorare questo comportamento utilizzando il cmdlet Format-List.

Esempio 1

C:\PS>get-wmiobject win32_process

__GENUS                    : 2
__CLASS                    : Win32_Process
__SUPERCLASS               : CIM_Process
__DYNASTY                  : CIM_ManagedSystemElement
__RELPATH                  : Win32_Process.Handle="0"
__PROPERTY_COUNT           : 45
__DERIVATION               : {CIM_Process, CIM_LogicalElement, CIM_ManagedSystemElement}
__SERVER                   : SYSTEM01
__NAMESPACE                : root\cimv2
__PATH                     : \\SYSTEM01\root\cimv2:Win32_Process.Handle="0"
Caption                    : System Idle Process
CommandLine                :
CreationClassName          : Win32_Process
CreationDate               :
CSCreationClassName        : Win32_ComputerSystem
CSName                     : SYSTEM01
Description                : System Idle Process
ExecutablePath             :
ExecutionState             :
Handle                     : 0
HandleCount                : 0
InstallDate                :
KernelModeTime             : 6138394740432
MaximumWorkingSetSize      :
MinimumWorkingSetSize      :
Name                       : System Idle Process
OSCreationClassName        : Win32_OperatingSystem
OSName                     : Microsoftr Windows VistaT Ultimate |C:\Windows|\Device\Harddisk0\Partition3
OtherOperationCount        : 0
OtherTransferCount         : 0
PageFaults                 : 0
PageFileUsage              : 0
ParentProcessId            : 0
PeakPageFileUsage          : 0
PeakVirtualSize            : 0
PeakWorkingSetSize         : 0
Priority                   : 0
PrivatePageCount           : 0
ProcessId                  : 0
QuotaNonPagedPoolUsage     : 0
QuotaPagedPoolUsage        : 0
QuotaPeakNonPagedPoolUsage : 0
QuotaPeakPagedPoolUsage    : 0
ReadOperationCount         : 0
ReadTransferCount          : 0
SessionId                  : 0
Status                     :
TerminationDate            :
ThreadCount                : 2
UserModeTime               : 0
VirtualSize                : 0
WindowsVersion             : 6.0.6001
WorkingSetSize             : 24576
WriteOperationCount        : 0
WriteTransferCount         : 0
ProcessName                : System Idle Process
Handles                    : 0
VM                         : 0
WS                         : 24576
Path                       :

...

Descrizione
-----------
Con questo comando vengono visualizzate informazioni relative a tutti i processi in esecuzione in un computer.

Esempio 2

C:\PS>get-wmiobject win32_service -computername 127.0.0.1

__GENUS                    : 2
__CLASS                    : Win32_Process
__SUPERCLASS               : CIM_Process
__DYNASTY                  : CIM_ManagedSystemElement
__RELPATH                  : Win32_Process.Handle="0"
__PROPERTY_COUNT           : 45
__DERIVATION               : {CIM_Process, CIM_LogicalElement, CIM_ManagedSystemElement}
__SERVER                   : SYSTEM02
__NAMESPACE                : root\cimv2
__PATH                     : \\SYSTEM02\root\cimv2:Win32_Process.Handle="0"
Caption                    : System Idle Process
CommandLine                :
CreationClassName          : Win32_Process
CreationDate               :
CSCreationClassName        : Win32_ComputerSystem
CSName                     : SYSTEM02
Description                : System Idle Process
ExecutablePath             :
ExecutionState             :
Handle                     : 0
HandleCount                : 0
InstallDate                :
KernelModeTime             : 6138394740432
MaximumWorkingSetSize      :
MinimumWorkingSetSize      :
Name                       : System Idle Process
OSCreationClassName        : Win32_OperatingSystem
OSName                     : Microsoftr Windows VistaT Ultimate |C:\Windows|\Device\Harddisk0\Partition3
OtherOperationCount        : 0
OtherTransferCount         : 0
PageFaults                 : 0
PageFileUsage              : 0
ParentProcessId            : 0
PeakPageFileUsage          : 0
PeakVirtualSize            : 0
PeakWorkingSetSize         : 0
Priority                   : 0
PrivatePageCount           : 0
ProcessId                  : 0
QuotaNonPagedPoolUsage     : 0
QuotaPagedPoolUsage        : 0
QuotaPeakNonPagedPoolUsage : 0
QuotaPeakPagedPoolUsage    : 0
ReadOperationCount         : 0
ReadTransferCount          : 0
SessionId                  : 0
Status                     :
TerminationDate            :
ThreadCount                : 2
UserModeTime               : 0
VirtualSize                : 0
WindowsVersion             : 6.0.6001
WorkingSetSize             : 24576
WriteOperationCount        : 0
WriteTransferCount         : 0
ProcessName                : System Idle Process
Handles                    : 0
VM                         : 0
WS                         : 24576
Path                       :

...

Descrizione
-----------
Con questo comando vengono visualizzate informazioni relative ai servizi nel computer remoto. Le informazioni vengono visualizzate specificando l'indirizzo IP (Internet Protocol) 127.0.0.1. È possibile modificare questo indirizzo IP in qualsiasi altro indirizzo IP valido nella rete al fine di visualizzare informazioni relative ai servizi di un determinato computer remoto. Per impostazione predefinita, è necessario che l'account in cui viene eseguito il comando sia membro del gruppo di amministratori locali del computer remoto specificato.

Esempio 3

C:\PS>get-wmiobject -namespace "root/default" -list

   NameSpace: ROOT\default

Name                                Methods              Properties
----                                -------              ----------
__NotifyStatus                      {}                   {StatusCode}
__ExtendedStatus                    {}                   {Description, Operation, ParameterInfo, ProviderName...}
__SecurityRelatedClass              {}                   {}
__Trustee                           {}                   {Domain, Name, SID, SidLength...}
__NTLMUser9X                        {}                   {Authority, Flags, Mask, Name...}
__ACE                               {}                   {AccessMask, AceFlags, AceType, GuidInheritedObjectType...}
__SecurityDescriptor                {}                   {ControlFlags, DACL, Group, Owner...}
__PARAMETERS                        {}                   {}
__SystemClass                       {}                   {}
__ProviderRegistration              {}                   {provider}
__EventProviderRegistration         {}                   {EventQueryList, provider}
__ObjectProviderRegistration        {}                   {InteractionType, provider, QuerySupportLevels, SupportsBat...
__ClassProviderRegistration         {}                   {CacheRefreshInterval, InteractionType, PerUserSchema, prov...
__InstanceProviderRegistration      {}                   {InteractionType, provider, QuerySupportLevels, SupportsBat...
__MethodProviderRegistration        {}                   {provider}
__PropertyProviderRegistration      {}                   {provider, SupportsGet, SupportsPut}
__EventConsumerProviderRegistration {}                   {ConsumerClassNames, provider}
__thisNAMESPACE                     {}                   {SECURITY_DESCRIPTOR}
__NAMESPACE                         {}                   {Name}
__IndicationRelated                 {}                   {}
__FilterToConsumerBinding           {}                   {Consumer, CreatorSID, DeliverSynchronously, DeliveryQoS...}
__EventConsumer                     {}                   {CreatorSID, MachineName, MaximumQueueSize}
LogFileEventConsumer                {}                   {CreatorSID, Filename, IsUnicode, MachineName...}
ActiveScriptEventConsumer           {}                   {CreatorSID, KillTimeout, MachineName, MaximumQueueSize...}
NTEventLogEventConsumer             {}                   {Category, CreatorSID, EventID, EventType...}
SMTPEventConsumer                   {}                   {BccLine, CcLine, CreatorSID, FromLine...}
CommandLineEventConsumer            {}                   {CommandLineTemplate, CreateNewConsole, CreateNewProcessGro...
__AggregateEvent                    {}                   {NumberOfEvents, Representative}
__TimerNextFiring                   {}                   {NextEvent64BitTime, TimerId}
__EventFilter                       {}                   {CreatorSID, EventAccess, EventNamespace, Name...}
__Event                             {}                   {SECURITY_DESCRIPTOR, TIME_CREATED}
__NamespaceOperationEvent           {}                   {SECURITY_DESCRIPTOR, TargetNamespace, TIME_CREATED}
__NamespaceModificationEvent        {}                   {PreviousNamespace, SECURITY_DESCRIPTOR, TargetNamespace, T...
__NamespaceDeletionEvent            {}                   {SECURITY_DESCRIPTOR, TargetNamespace, TIME_CREATED}
__NamespaceCreationEvent            {}                   {SECURITY_DESCRIPTOR, TargetNamespace, TIME_CREATED}
__ClassOperationEvent               {}                   {SECURITY_DESCRIPTOR, TargetClass, TIME_CREATED}
__ClassDeletionEvent                {}                   {SECURITY_DESCRIPTOR, TargetClass, TIME_CREATED}
__ClassModificationEvent            {}                   {PreviousClass, SECURITY_DESCRIPTOR, TargetClass, TIME_CREA...
__ClassCreationEvent                {}                   {SECURITY_DESCRIPTOR, TargetClass, TIME_CREATED}
__InstanceOperationEvent            {}                   {SECURITY_DESCRIPTOR, TargetInstance, TIME_CREATED}
__InstanceCreationEvent             {}                   {SECURITY_DESCRIPTOR, TargetInstance, TIME_CREATED}

...

Descrizione
-----------
Con questo comando vengono visualizzate le classi WMI nello spazio dei nomi radice o predefinito del computer locale.

Esempio 4

C:\PS>get-wmiobject -query "select * from win32_service where name='WinRM'" -computername server01, server02

ExitCode  : 0
Name      : WinRM
ProcessId : 1708
StartMode : Auto
State     : Running
Status    : OK

ExitCode  : 0
Name      : WinRM
ProcessId : 948
StartMode : Auto
State     : Running
Status    : OK

Descrizione
-----------
Con questo comando vengono visualizzate le informazioni sul servizio WinRM nei computer specificati nel parametro ComputerName.

Esempio 5

C:\PS>(get-wmiobject win32_service -filter "name='WinRM'" -computername server01).StopService()

__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ReturnValue      : 0

Another query using get-wmiobject -query "select * from win32_service where name='WinRM'" -computername server01, shows the service as stopped.

ExitCode  : 0
Name      : WinRM
ProcessId : 0
StartMode : Auto
State     : Stopped
Status    : OK

Descrizione
-----------
Questo comando interrompe il servizio WinRM nel computer remoto Server01. Nel comando viene utilizzato il comando Get-WmiObject standard e viene aggiunta una chiamata al metodo StopService della classe WMI Win32_Service.

Esempio 6

C:\PS>get-wmiobject win32_bios | format-list *

Status                : OK
Name                  : Phoenix ROM BIOS PLUS Version 1.10 2.3.1
Caption               : Phoenix ROM BIOS PLUS Version 1.10 2.3.1
SMBIOSPresent         : True
__GENUS               : 2
__CLASS               : Win32_BIOS
__SUPERCLASS          : CIM_BIOSElement
__DYNASTY             : CIM_ManagedSystemElement
__RELPATH             : Win32_BIOS.Name="Phoenix ROM BIOS PLUS Version 1.10 2.3.1 ",SoftwareElementID="Phoenix ROM BIOS
                         PLUS Version 1.10 2.3.1 ",SoftwareElementState=3,TargetOperatingSystem=0,Version="DELL   - 14"
__PROPERTY_COUNT      : 27
__DERIVATION          : {CIM_BIOSElement, CIM_SoftwareElement, CIM_LogicalElement, CIM_ManagedSystemElement}
__SERVER              : SERVER01
__NAMESPACE           : root\cimv2
__PATH                : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS PLUS Version 1.10 2.3.1 ",Software
                        ElementID="Phoenix ROM BIOS PLUS Version 1.10 2.3.1 ",SoftwareElementState=3,TargetOperatingSys
                        tem=0,Version="DELL   - 14"
BiosCharacteristics   : {7, 9, 10, 11...}
BIOSVersion           : {DELL   - 14, Phoenix ROM BIOS PLUS Version 1.10 2.3.1 , Phoenix ROM BIOS PLUS Version 1.10 2.3
                        .1 , Phoenix ROM BIOS PLUS Version 1.10 2.3.1 }
BuildNumber           :
CodeSet               :
CurrentLanguage       : en|US|iso8859-1
Description           : Phoenix ROM BIOS PLUS Version 1.10 2.3.1
IdentificationCode    :
InstallableLanguages  : 1
InstallDate           :
LanguageEdition       :
ListOfLanguages       : {en|US|iso8859-1}
Manufacturer          : Dell Inc.
OtherTargetOS         :
PrimaryBIOS           : True
ReleaseDate           : 20070521000000.000000+000
SerialNumber          : 8PWRVD1
SMBIOSBIOSVersion     : 2.3.1
SMBIOSMajorVersion    : 2
SMBIOSMinorVersion    : 3
SoftwareElementID     : Phoenix ROM BIOS PLUS Version 1.10 2.3.1
SoftwareElementState  : 3
TargetOperatingSystem : 0
Version               : DELL   - 14
Scope                 : System.Management.ManagementScope
Path                  : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS PLUS Version 1.10 2.3.1 ",Software
                        ElementID="Phoenix ROM BIOS PLUS Version 1.10 2.3.1 ",SoftwareElementState=3,TargetOperatingSys
                        tem=0,Version="DELL   - 14"
Options               : System.Management.ObjectGetOptions
ClassPath             : \\SERVER01\root\cimv2:Win32_BIOS
Properties            : {BiosCharacteristics, BIOSVersion, BuildNumber, Caption...}
SystemProperties      : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...}
Qualifiers            : {dynamic, Locale, provider, UUID}
Site                  :
Container             :

Descrizione
-----------
Con questo comando vengono visualizzate informazioni del BIOS. Vengono visualizzate tutte le proprietà della classe WMI, non solo quelle specificate nel file di configurazione Types.ps1xml.

Esempio 7

C:\PS>get-wmiobject win32_service -credential FABRIKAM\administrator -computer fabrikam

ExitCode  : 0
Name      : AeLookupSvc
ProcessId : 0
StartMode : Manual
State     : Stopped
Status    : OK

ExitCode  : 1077
Name      : ALG
ProcessId : 0
StartMode : Manual
State     : Stopped
Status    : OK

ExitCode  : 1077
Name      : AppIDSvc
ProcessId : 0
StartMode : Manual
State     : Stopped
Status    : OK

ExitCode  : 0
Name      : Appinfo
ProcessId : 888
StartMode : Manual
State     : Running
Status    : OK

ExitCode  : 1077
Name      : AppMgmt
ProcessId : 0
StartMode : Manual
State     : Stopped
Status    : OK

...

Descrizione
-----------
Con questo comando vengono visualizzate informazioni relative al servizio in un computer denominato Fabrikam. Viene specificato un account utente utilizzando il parametro Credential, tramite il quale viene visualizzata una finestra di dialogo per l'inserimento della password corrispondente.

Vedere anche

  • Invoke-WmiMethod
  • Remove-WmiObject
  • Set-WmiInstance
  • Get-WSManInstance
  • Invoke-WSManAction
  • New-WSManInstance
  • Remove-WSManInstance


Get-WSManCredSSP

Ottiene la configurazione correlata a CredSPP (Credential Security Service Provider) per il client.

Sintassi

Get-WSManCredSSP [<CommonParameters>]

Descrizione

Il cmdlet Get-WSManCredSPP ottiene la configurazione correlata a CredSPP (Credential Security Service Provider) del client e del server. L'output indica se l'autenticazione CredSSP è abilitata o disattivata. Visualizza inoltre le informazioni di configurazione per il criterio AllowFreshCredentials di CredSSP. Quando viene utilizzata l'autenticazione CredSSP, le credenziali dell'utente vengono passate a un computer remoto per l'autenticazione. Questo tipo di autenticazione è progettato per i comandi che creano una sessione remota dall'interno di un'altra sessione remota. Viene ad esempio utilizzato se si desidera eseguire un processo in background in un computer remoto.

Il cmdlet effettua le azioni seguenti:

- Ottiene l'impostazione CredSSP di WS-Management nel client, <localhost|nomecomputer>\Client\Auth\CredSSP.

- Ottiene l'impostazione del criterio AllowFreshCredentials di Windows CredSSP.

- Ottiene l'impostazione CredSSP di WS-Management nel server, <localhost|nomecomputer>\Service\Auth\CredSSP.

Attenzione: l'autenticazione CredSSP delega le credenziali dell'utente dal computer locale a un computer remoto. Questa procedura aumenta il rischio per la sicurezza dell'operazione remota. Se il computer remoto è compromesso, quando le credenziali vengono passate a tale computer è possibile utilizzarle per controllare la sessione di rete.

Per disattivare l'autenticazione CredSSP, utilizzare il cmdlet Disable-WSManCredSSP. Per abilitare l'autenticazione CredSSP, utilizzare il cmdlet Enable-WSManCredSSP.

Parametri

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Questo cmdlet non accetta alcun input.
Output | Nessuno Questo cmdlet non genera alcun output.

Esempio 1

C:\PS>get-wsmancredssp

Descrizione
-----------
Questo comando consente di visualizzare le informazioni di configurazione CredSSP sia per il client che per il server.

L'output indica se il computer è configurato o meno per CredSSP.

Se il computer è configurato per CredSSP, verrà visualizzato l'output seguente:

"Il computer è configurato per consentire la delega di credenziali nuove alle destinazioni seguenti: wsman/server02.accounting.fabrikam.com".

Se il computer non è configurato per CredSSP, verrà visualizzato l'output seguente:

"Il computer non è configurato per consentire la delega di nuove credenziali".

Vedere anche

  • Connect-WSMan
  • Disable-WSManCredSSP
  • Disconnect-WSMan
  • Enable-WSManCredSSP
  • Get-WSManInstance
  • Invoke-WSManAction
  • New-WSManInstance
  • New-WSManSessionOption
  • Remove-WSManInstance
  • Set-WSManInstance
  • Set-WSManQuickConfig
  • Test-WSMan


Get-WSManInstance

Visualizza informazioni di gestione per un'istanza di risorsa specificata da un URI risorsa.

Sintassi

Get-WSManInstance -SelectorSet <hashtable> [-ApplicationName <string>] [-ComputerName <string>] [-Credential <PSCredential>] [-Fragment <string>] [-Port <int>] [-UseSSL] [-ResourceURI] <Uri> [-Authentication <Authentication>] [-Dialect <Uri>] [-OptionSet <hashtable>] [-SessionOption <hashtable>] [<CommonParameters>]

Get-WSManInstance [-ApplicationName <string>] [-BasePropertiesOnly <switch>] [-ComputerName <string>] [-Credential <PSCredential>] [-Enumerate] [-filter <string>] [-Port <int>] [-References <switch>] [-ReturnType <string>] [-Shallow <switch>] [-UseSSL] [-ResourceURI] <Uri> [-Authentication <Authentication>] [-Dialect <Uri>] [-OptionSet <hashtable>] [-SessionOption <hashtable>] [<CommonParameters>]

Get-WSManInstance -ConnectionURI <Uri> -SelectorSet <hashtable> [-Fragment <string>] [-ResourceURI] <Uri> [-Authentication <Authentication>] [-Dialect <Uri>] [-OptionSet <hashtable>] [-SessionOption <hashtable>] [<CommonParameters>]

Get-WSManInstance -ConnectionURI <Uri> [-BasePropertiesOnly <switch>] [-Enumerate] [-filter <string>] [-References <switch>] [-ReturnType <string>] [-Shallow <switch>] [-ResourceURI] <Uri> [-Authentication <Authentication>] [-Dialect <Uri>] [-OptionSet <hashtable>] [-SessionOption <hashtable>] [<CommonParameters>]

Descrizione

Tramite il cmdlet Get-WSManInstance viene recuperata un'istanza della risorsa di gestione specificata da un URI di risorsa. Le informazioni recuperate possono essere un set complesso di informazioni XML (un oggetto) o un valore semplice. Questo cmdlet equivale al comando WS-Management Get standard.

Per recuperare le informazioni, questo cmdlet utilizza il livello di trasporto o la connessione di WS-Management.

Parametri

-ApplicationName <string>

Specifica il nome dell'applicazione nella connessione. Il valore predefinito del parametro ApplicationName è "WSMAN". L'identificatore completo dell'endpoint remoto ha il formato seguente:

<trasporto>://<server>:<porta>/<NomeApplicazione>

Ad esempio:

http://server01:8080/WSMAN

Tramite Internet Information Services (IIS), che ospita la sessione, le richieste con questo endpoint vengono inoltrate all'applicazione specificata. L'impostazione predefinita "WSMAN" è appropriata per la maggior parte degli utilizzi. Questo parametro è progettato per essere utilizzato quando più computer stabiliscono connessioni remote a un computer in cui è in esecuzione Windows PowerShell. In questo caso, IIS ospita Gestione remota Windows (WS-Management) per motivi di efficienza.

Obbligatorio? | false
Posizione? | named
Valore predefinito | wsman
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Authentication <Authentication>

Specifica il meccanismo di autenticazione da utilizzare nel server. I valori possibili sono:

- Basic: Basic è uno schema in cui il nome utente e la password vengono inviati come testo non crittografato al server o al proxy.

- Default: utilizzare il metodo di autenticazione implementato dal protocollo WS-Management. Si tratta dell'impostazione predefinita.

- Digest: Digest è uno schema basato su una richiesta di verifica e relativa risposta che utilizza una stringa di dati specificata dal server per la richiesta di verifica.

- Kerberos: il server e il computer client si autenticano reciprocamente utilizzando certificati Kerberos.

- Negotiate: Negotiate è uno schema basato su una richiesta di verifica e relativa risposta che negozia con il server o il proxy per determinare lo schema da utilizzare per l'autenticazione. Ad esempio, questo valore di parametro consente la negoziazione per determinare se viene utilizzato il protocollo Kerberos o NTLM.

- CredSSP: utilizzare l'autenticazione CredSSP (Credential Security Service Provider) che consente all'utente di delegare le credenziali. Questa opzione è destinata ai comandi che vengono eseguiti in un computer remoto, ma raccolgono dati o eseguono ulteriori comandi in altri computer remoti.

Attenzione: CredSSP (Credential Security Service Provider) delega le credenziali dell'utente dal computer locale a un computer remoto. Questa procedura aumenta il rischio per la sicurezza dell'operazione remota. Se il computer remoto è compromesso, quando le credenziali vengono passate a tale computer è possibile utilizzarle per controllare la sessione di rete.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Default
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-BasePropertiesOnly <switch>

Enumera solo le proprietà che fanno parte della classe di base specificata dal parametro ResourceURI. Questo parametro non ha effetto se viene specificato il parametro Shallow.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string>

Specifica il computer in cui si desidera eseguire l'operazione di gestione. Il valore può essere un nome di dominio completo, un nome NetBIOS o un indirizzo IP. Utilizzare il nome del computer locale, localhost o un punto (.) per specificare il computer locale. Il valore predefinito è il computer locale. Quando il computer remoto si trova in un dominio diverso da quello dell'utente, è necessario utilizzare un nome di dominio completo. È possibile reindirizzare un valore per questo parametro al cmdlet.

Obbligatorio? | false
Posizione? | named
Valore predefinito | localhost
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ConnectionURI <Uri>

Specifica l'endpoint di connessione. Il formato di questa stringa è:

<Trasporto>://<Server>:<Porta>/<NomeApplicazione>.

La seguente stringa rappresenta un valore formattato correttamente per questo parametro:

http://Server01:8080/WSMAN

L'URI deve essere completo.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente. Digitare un nome utente, ad esempio "User01", "Domain01\User01" o "User@Domain.com". In alternativa, immettere un oggetto PSCredential, ad esempio quello restituito dal cmdlet Get-Credential. Quando si digita un nome utente, viene richiesta una password.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Dialect <Uri>

Specifica il dialetto da utilizzare nel predicato del filtro. Può trattarsi di qualsiasi dialetto supportato dal servizio remoto. I seguenti alias possono essere utilizzati per l'URI del dialetto:

- WQL: http://schemas.microsoft.com/wbem/wsman/1/WQL

- Selector: http://schemas.microsoft.com/wbem/wsman/1/wsman/SelectorFilter

- Association: http://schemas.dmtf.org/wbem/wsman/1/cimbinding/associationFilter

Obbligatorio? | false
Posizione? | named
Valore predefinito | http://schemas.microsoft.com/wbem/wsman/1/WQL
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Enumerate

Restituisce tutte le istanze di una risorsa di gestione.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-filter <string>

Specifica l'espressione di filtro per l'enumerazione. Se si utilizza questo parametro, è necessario specificare anche il parametro Dialect.

I valori validi per questo parametro dipendono dal dialetto specificato nel parametro Dialect. Se ad esempio il parametro Dialect è impostato su WQL, il parametro Filter deve contenere una stringa contenente a sua volta una query WQL valida come la seguente:

"Select * from Win32_Service where State != Running"

Se il parametro Dialect è impostato su Association, il parametro Filter deve contenere una stringa contenente a sua volta un filtro valido come il seguente:

-filter:Object=EPR[;AssociationClassName=AssocClassName][;ResultClassName=ClassName][;Role=RefPropertyName][;ResultRole=RefPropertyName]}

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Fragment <string>

Specifica una sezione nell'istanza da aggiornare o da recuperare per l'operazione specificata. Ad esempio, per ottenere lo stato di un servizio spooler, specificare "-Fragment Status".

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-OptionSet <hashtable>

Passa un set di opzioni a un servizio per modificare o perfezionare la natura della richiesta. Si tratta di opzioni simili a quelle utilizzate nelle shell della riga di comando perché specifiche del servizio. È possibile specificare qualsiasi numero di opzioni.

Nell'esempio seguente viene illustrata la sintassi che passa i valori 1, 2 e 3 per i parametri a, b e c:

-OptionSet @{a=1;b=2;c=3}

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Port <int>

Specifica la porta da utilizzare per la connessione del client al servizio Gestione remota Windows. Quando il trasporto è HTTP, la porta predefinita è 80. Quando il trasporto è HTTPS, la porta predefinita è 443. Quando si utilizza HTTPS come trasporto, il valore del parametro ComputerName deve corrispondere al nome comune del certificato del server. Tuttavia, se il parametro SkipCNCheck viene specificato come parte del parametro SessionOption, il nome comune del certificato del server non deve corrispondere al nome host del server. Il parametro SkipCNCheck deve essere utilizzato solo per computer attendibili.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-References <switch>

Indica che devono essere recuperate le istanze di associazione anziché le istanze associate. È possibile utilizzare questo parametro solo quando il parametro Dialect è impostato sul valore "Association".

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ResourceURI <Uri>

Contiene l'URI (Uniform Resource Identifier) dell'istanza o della classe di risorse. L'URI viene utilizzato per identificare un tipo specifico di risorsa, ad esempio dischi o processi, in un computer.

Un URI è composto da un prefisso e da un percorso a una risorsa. Ad esempio:

http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk

http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_NumericSensor

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-ReturnType <string>

Specifica il tipo di dati da restituire. I valori validi sono:

Object (predefinito)

EPR

ObjectAndEPR

Se viene specificato Object o se il parametro non è utilizzato, vengono restituiti solo oggetti. Se viene specificato EPR (riferimento a endpoint), vengono restituiti solo i riferimenti agli endpoint degli oggetti. I riferimenti agli endpoint contengono informazioni sull'URI di risorsa e sui selettori per l'istanza. Se viene specificato ObjectAndEPR, vengono restituiti sia l'oggetto che i riferimenti agli endpoint associati.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Object
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SelectorSet <hashtable>

Specifica un set di coppie di valori utilizzate per selezionare particolari istanze di risorse di gestione. Il parametro SelectorSet viene utilizzato quando esiste più di un'istanza della risorsa. Il valore del parametro SelectorSet deve essere una tabella hash.

Nell'esempio seguente viene illustrato come immettere un valore per questo parametro.

-SelectorSet @{Name="WinRM";ID="yyy"}

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SessionOption <hashtable>

Definisce un set di opzioni estese per la sessione WS-Management. Immettere un oggetto SessionOption creato utilizzando il cmdlet New-WSManSessionOption. Per ulteriori informazioni sulle opzioni disponibili, vedere New-WSManSessionOption.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Shallow <switch>

Fa sì che vengano restituite solo le istanze della classe di base specificata nell'URI di risorsa. Se questa opzione non è specificata, vengono restituite le istanze della classe di base specificata nell'URI e in tutte le relative classi derivate.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseSSL

Specifica che deve essere utilizzato il protocollo SSL (Secure Sockets Layer) per stabilire una connessione al computer remoto. Per impostazione predefinita SSL non viene utilizzato.

In WS-Management viene crittografato tutto il contenuto di Windows PowerShell trasmesso in rete. Il parametro UseSSL consente di specificare la protezione aggiuntiva derivante dall'utilizzo di HTTPS anziché HTTP. Se si specifica questo parametro ma SSL non è disponibile sulla porta utilizzata per la connessione, il comando ha esito negativo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Questo comando non accetta alcun input.
Output | System.Xml.XmlElement Tramite il cmdlet Get-WSManInstance viene generato un oggetto XMLElement.

Esempio 1

C:\PS>get-wsmaninstance wmicimv2/win32_service -selectorset @{name="winrm"} -computername server01

xsi                     : http://www.w3.org/2001/XMLSchema-instance
p                       : http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service
cim                     : http://schemas.dmtf.org/wbem/wscim/1/common
type                    : p:Win32_Service_Type
lang                    : en-US
AcceptPause             : false
AcceptStop              : true
Caption                 : Windows Remote Management (WS-Management)
CheckPoint              : 0
CreationClassName       : Win32_Service
Description             : Windows Remote Management (WinRM) service implements the WS-Management protocol for remote
                          management. WS-Management is a standard web services protocol used for remote software and
                          hardware management. The WinRM service listens on the network for WS-Management requests
                          and processes them. The WinRM Service needs to be configured with a listener using the
                          winrm.cmd command line tool or through Group Policy in order for it to listen over the
                          network. The WinRM service provides access to WMI data and enables event collection. Event
                          collection and subscription to events require that the service is running. WinRM messages
                          use HTTP and HTTPS as transports. The WinRM service does not depend on IIS but is
                          preconfigured to share a port with IIS on the same machine.  The WinRM service reserves the
                          /wsman URL prefix. To prevent conflicts with IIS, administrators should ensure that any
                          websites hosted on IIS do not use the /wsman URL prefix.
DesktopInteract         : false
DisplayName             : Windows Remote Management (WS-Management)
ErrorControl            : Normal
ExitCode                : 0
InstallDate             : InstallDate
Name                    : winrm
PathName                : C:\Windows\System32\svchost.exe -k NetworkService
ProcessId               : 948
ServiceSpecificExitCode : 0
ServiceType             : Share Process
Started                 : true
StartMode               : Auto
StartName               : NT AUTHORITY\NetworkService
State                   : Running
Status                  : OK
SystemCreationClassName : Win32_ComputerSystem
SystemName              : SERVER01
TagId                   : 0
WaitHint                : 0

Descrizione
-----------
Questo comando restituisce tutte le informazioni esposte da Strumentazione gestione Windows (WMI) relative al servizio Gestione remota Windows nel computer remoto server01.

Esempio 2

C:\PS>get-wsmaninstance wmicimv2/win32_service -selectorset @{name="spooler"} -fragment status -computername server01

XmlFragment=OK

Descrizione
-----------
Questo comando restituisce solo lo stato del servizio spooler nel computer remoto server01.

Esempio 3

C:\PS>get-wsmaninstance -enumerate wmicimv2/win32_process

OSName                     : Microsoft Windows Vista Ultimate |C:\Windows|\Device\Harddisk0\Partition3
OtherOperationCount        : 11441
OtherTransferCount         : 428570
PageFaults                 : 27346
PageFileUsage              : 16428
ParentProcessId            : 604
PeakPageFileUsage          : 17588
PeakVirtualSize            : 93876224
PeakWorkingSetSize         : 12472
Priority                   : 8
PrivatePageCount           : 16822272
ProcessId                  : 1160
QuotaNonPagedPoolUsage     : 14
QuotaPagedPoolUsage        : 126
QuotaPeakNonPagedPoolUsage : 16
QuotaPeakPagedPoolUsage    : 159
ReadOperationCount         : 29568
ReadTransferCount          : 1660581404
SessionId                  : 0
Status                     : Status
TerminationDate            : TerminationDate
ThreadCount                : 23
UserModeTime               : 763156892
VirtualSize                : 80846848
WindowsVersion             : 6.0.6001
WorkingSetSize             : 11624448
WriteOperationCount        : 1913
WriteTransferCount         : 6825768

xsi                        : http://www.w3.org/2001/XMLSchema-instance
p                          : http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Process
cim                        : http://schemas.dmtf.org/wbem/wscim/1/common
type                       : p:Win32_Process_Type
lang                       : en-US
Caption                    : svchost.exe
CommandLine                : C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
CreationClassName          : Win32_Process
CreationDate               : CreationDate
CSCreationClassName        : Win32_ComputerSystem
CSName                     : COMPUTER01
Description                : svchost.exe
ExecutablePath             : C:\Windows\System32\svchost.exe
ExecutionState             : ExecutionState
Handle                     : 1192
HandleCount                : 832

...

Descrizione
-----------
Questo comando restituisce tutte le istanze della classe WMI Win32_Process nel computer locale.

Esempio 4

C:\PS>get-wsmaninstance -enumerate wmicimv2/win32_service -returntype epr

xsi                     : http://www.w3.org/2001/XMLSchema-instance
p                       : http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service
cim                     : http://schemas.dmtf.org/wbem/wscim/1/common
type                    : p:Win32_Service_Type
lang                    : en-US
AcceptPause             : false
AcceptStop              : false
Caption                 : Visual Studio 2008 Remote Debugger
CheckPoint              : 0
CreationClassName       : Win32_Service
Description             : Allows members of the Administrators group to remotely debug server applications using Visual
                           Studio 2008. Use the Visual Studio 2008 Remote Debugging Configuration Wizard to enable this
                           service.
DesktopInteract         : false
DisplayName             : Visual Studio 2008 Remote Debugger
ErrorControl            : Ignore
ExitCode                : 1077
InstallDate             : InstallDate
Name                    : msvsmon90
PathName                : "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\x86\msvsmon.exe" /s
                          ervice msvsmon90
ProcessId               : 0
ServiceSpecificExitCode : 0
ServiceType             : Own Process
Started                 : false
StartMode               : Disabled
StartName               : LocalSystem
State                   : Stopped
Status                  : OK
SystemCreationClassName : Win32_ComputerSystem
SystemName              : COMPUTER01
TagId                   : 0
WaitHint                : 0

...

Descrizione
-----------
Questo comando restituisce i riferimenti agli endpoint corrispondenti a tutti i servizi nel computer locale.

Esempio 5

C:\PS>Get-WSManInstance -Enumerate wmicimv2/* -filter "select * from win32_service where StartMode = 'Auto' and State = 'Stopped'" -computername server01

xsi                     : http://www.w3.org/2001/XMLSchema-instance
p                       : http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service
cim                     : http://schemas.dmtf.org/wbem/wscim/1/common
type                    : p:Win32_Service_Type
lang                    : en-US
AcceptPause             : false
AcceptStop              : false
Caption                 : Windows Media Center Service Launcher
CheckPoint              : 0
CreationClassName       : Win32_Service
Description             : Starts Windows Media Center Scheduler and Windows Media Center Receiver services
                          at startup if TV is enabled within Windows Media Center.
DesktopInteract         : false
DisplayName             : Windows Media Center Service Launcher
ErrorControl            : Ignore
ExitCode                : 0
InstallDate             : InstallDate
Name                    : ehstart
PathName                : C:\Windows\system32\svchost.exe -k LocalServiceNoNetwork
ProcessId               : 0
ServiceSpecificExitCode : 0
ServiceType             : Share Process
Started                 : false
StartMode               : Auto
StartName               : NT AUTHORITY\LocalService
State                   : Stopped
Status                  : OK
SystemCreationClassName : Win32_ComputerSystem
SystemName              : Server01
TagId                   : 0
WaitHint                : 0

...

Descrizione
-----------
Questo comando elenca tutti i servizi che soddisfano i criteri seguenti nel computer remoto server01:

   - Il tipo di avvio del servizio è impostato su "Automatic".
   - Il servizio è stato arrestato.

Esempio 6

C:\PS>get-wsmaninstance winrm/config/listener -selectorset @{Address="*";Transport="http"}

cfg                   : http://schemas.microsoft.com/wbem/wsman/1/config/listener
xsi                   : http://www.w3.org/2001/XMLSchema-instance
lang                  : en-US
Address               : *
Transport             : HTTP
Port                  : 80
Hostname              :
Enabled               : true
URLPrefix             : wsman
CertificateThumbprint :
ListeningOn           : {100.0.0.1, 123.123.123.123, ::1, 2001:4898:0:fff:0:5efe:123.123.123.123...}

Descrizione
-----------
Questo comando elenca nel computer locale la configurazione del listener di WS-Management per il listener che corrisponde ai criteri impostati nel set di selettori (selectorset).

Esempio 7

C:\PS>get-wsmaninstance winrm/config/listener -selectorset @{Address="*";Transport="http"} -computername server01

cfg                   : http://schemas.microsoft.com/wbem/wsman/1/config/listener
xsi                   : http://www.w3.org/2001/XMLSchema-instance
lang                  : en-US
Address               : *
Transport             : HTTP
Port                  : 80
Hostname              :
Enabled               : true
URLPrefix             : wsman
CertificateThumbprint :
ListeningOn           : {100.0.0.1, 123.123.123.124, ::1, 2001:4898:0:fff:0:5efe:123.123.123.124...}

Descrizione
-----------
Questo comando elenca nel computer remoto server01 la configurazione del listener di WS-Management per il listener che corrisponde ai criteri impostati nel set di selettori (selectorset).

Esempio 8

C:\PS>Get-WSManInstance -Enumerate -Dialect association -filter "{Object=win32_service?name=winrm}" -res wmicimv2/*

xsi                       : http://www.w3.org/2001/XMLSchema-instance
p                         : http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_ComputerSystem
cim                       : http://schemas.dmtf.org/wbem/wscim/1/common
type                      : p:Win32_ComputerSystem_Type
lang                      : en-US
AdminPasswordStatus       : 1
AutomaticManagedPagefile  : true
AutomaticResetBootOption  : true
AutomaticResetCapability  : true
BootOptionOnLimit         : BootOptionOnLimit
BootOptionOnWatchDog      : BootOptionOnWatchDog
BootROMSupported          : true
BootupState               : Normal boot
Caption                   : SERVER01
ChassisBootupState        : 3
CreationClassName         : Win32_ComputerSystem
CurrentTimeZone           : -480
DaylightInEffect          : false
Description               : AT/AT COMPATIBLE
DNSHostName               : server01
Domain                    : site01.corp.fabrikam.com
DomainRole                : 1
EnableDaylightSavingsTime : true
FrontPanelResetStatus     : 2
InfraredSupported         : false
InstallDate               : InstallDate
KeyboardPasswordStatus    : 2
LastLoadInfo              : LastLoadInfo
Manufacturer              : Dell Inc.
Model                     : OptiPlex 745
Name                      : SERVER01
NameFormat                : NameFormat
NetworkServerModeEnabled  : true
NumberOfLogicalProcessors : 2
NumberOfProcessors        : 1
OEMStringArray            : www.dell.com
PartOfDomain              : true
PauseAfterReset           : -1
PCSystemType              : 5
PowerManagementSupported  : PowerManagementSupported
PowerOnPasswordStatus     : 1
PowerState                : 0
PowerSupplyState          : 3
PrimaryOwnerContact       : PrimaryOwnerContact
PrimaryOwnerName          : testuser01
ResetCapability           : 1
ResetCount                : -1
ResetLimit                : -1
Roles                     : {LM_Workstation, LM_Server, SQLServer, NT}
Status                    : OK
SystemStartupDelay        : SystemStartupDelay
SystemStartupSetting      : SystemStartupSetting
SystemType                : X86-based PC
ThermalState              : 3
TotalPhysicalMemory       : 3217760256
UserName                  : FABRIKAM\testuser01
WakeUpType                : 6
Workgroup                 : Workgroup

xsi                     : http://www.w3.org/2001/XMLSchema-instance
p                       : http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service
cim                     : http://schemas.dmtf.org/wbem/wscim/1/common
type                    : p:Win32_Service_Type
lang                    : en-US
AcceptPause             : false
AcceptStop              : false
Caption                 : Remote Procedure Call (RPC)
CheckPoint              : 0
CreationClassName       : Win32_Service
Description             : Serves as the endpoint mapper and COM Service Control Manager. If this service is stopped
                          or disabled, programs using COM or Remote Procedure Call (RPC) services will not function
                          properly.
DesktopInteract         : false
DisplayName             : Remote Procedure Call (RPC)
ErrorControl            : Normal
ExitCode                : 0
InstallDate             : InstallDate
Name                    : RpcSs
PathName                : C:\Windows\system32\svchost.exe -k rpcss
ProcessId               : 1100
ServiceSpecificExitCode : 0
ServiceType             : Share Process
Started                 : true
StartMode               : Auto
StartName               : NT AUTHORITY\NetworkService
State                   : Running
Status                  : OK
SystemCreationClassName : Win32_ComputerSystem
SystemName              : SERVER01
TagId                   : 0
WaitHint                : 0

xsi                     : http://www.w3.org/2001/XMLSchema-instance
p                       : http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_SystemDriver
cim                     : http://schemas.dmtf.org/wbem/wscim/1/common
type                    : p:Win32_SystemDriver_Type
lang                    : en-US
AcceptPause             : false
AcceptStop              : true
Caption                 : HTTP
CreationClassName       : Win32_SystemDriver
Description             : HTTP
DesktopInteract         : false
DisplayName             : HTTP
ErrorControl            : Normal
ExitCode                : 0
InstallDate             : InstallDate
Name                    : HTTP
PathName                : C:\Windows\system32\drivers\HTTP.sys
ServiceSpecificExitCode : 0
ServiceType             : Kernel Driver
Started                 : true
StartMode               : Manual
StartName               :
State                   : Running
Status                  : OK
SystemCreationClassName : Win32_ComputerSystem
SystemName              : SERVER01
TagId                   : 0

Descrizione
-----------
Questo comando ottiene le istanze associate correlate all'istanza specificata (winrm).

Importante: è necessario racchiudere il filtro tra virgolette, come illustrato nell'esempio.

Esempio 9

C:\PS>Get-WSManInstance -Enumerate -Dialect association -References -filter "{Object=win32_service?name=winrm}" -res wmicimv2/*

Descrizione
-----------
Questo comando ottiene le istanze di associazione correlate all'istanza specificata (winrm). Poiché il parametro Dialect è impostato su "Association" e viene utilizzato il parametro Reference, questo comando restituisce istanze di associazione, anziché istanze associate.

Importante: è necessario racchiudere il filtro tra virgolette, come illustrato nell'esempio.

Vedere anche

  • Connect-WSMan
  • Disable-WSManCredSSP
  • Disconnect-WSMan
  • Enable-WSManCredSSP
  • Get-WSManCredSSP
  • Invoke-WSManAction
  • New-WSManInstance
  • New-WSManSessionOption
  • Remove-WSManInstance
  • Set-WSManInstance
  • Set-WSManQuickConfig
  • Test-WSMan


Group-Object

Raggruppa oggetti che contengono lo stesso valore per le proprietà specificate.

Sintassi

Group-Object [-AsHashTable] [-AsString] [[-Property] <Object[]>] [-CaseSensitive] [-Culture <string>] [-InputObject <psobject>] [-NoElement] [<CommonParameters>]

Descrizione

Il cmdlet Group-Object visualizza oggetti in gruppi in base al valore di una proprietà specificata. Group-Object restituisce una tabella con una riga per ogni valore di proprietà e una colonna in cui viene visualizzato il numero di elementi con tale valore.

Se si specificano più proprietà, Group-Object le raggruppa prima in base ai valori della prima proprietà, quindi in base al valore della proprietà successiva all'interno di ogni gruppo di proprietà.

Parametri

-AsHashTable

Restituisce il gruppo come tabella hash. Le chiavi della tabella hash sono i valori della proprietà in base a cui vengono raggruppati gli oggetti. I valori della tabella hash sono gli oggetti che dispongono di tale valore di proprietà.

Il parametro AsHashTable restituisce, da solo, ogni tabella hash in cui ciascuna chiave è un'istanza dell'oggetto raggruppato. Se viene utilizzato con il parametro AsString, le chiavi nella tabella hash sono stringhe.

Obbligatorio? | false
Posizione? | named
Valore predefinito | GroupInfo object
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-AsString

Converte le chiavi della tabella hash in stringhe. Per impostazione predefinita, le chiavi della tabella hash sono istanze dell'oggetto raggruppato. Questo parametro è valido solo se utilizzato con il parametro AsHashTable.

Obbligatorio? | false
Posizione? | named
Valore predefinito | GroupInfo objects
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-CaseSensitive

Con questo parametro, nel raggruppamento viene rilevata la distinzione tra maiuscole e minuscole. Senza questo parametro, invece, i valori delle proprietà degli oggetti di un gruppo possono presentare differenze nelle lettere maiuscole e minuscole.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Culture <string>

Specifica le impostazioni cultura da utilizzare nel confronto tra stringhe.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica gli oggetti da raggruppare. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Quando si utilizza il parametro InputObject per inviare una raccolta di oggetti a Group-Object, Group-Object riceve un oggetto che rappresenta la raccolta. Di conseguenza, viene creato un solo gruppo con tale oggetto come membro.

Per raggruppare gli oggetti in una raccolta, reindirizzarli a Group-Object.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-NoElement

Omette i membri di un gruppo dai risultati.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Property <Object[]>

Specifica le proprietà per il raggruppamento. Gli oggetti verranno disposti in gruppi in base al valore della proprietà specificata.

Il valore del parametro Property può essere una nuova proprietà calcolata. Per creare una proprietà calcolata, creare una tabella hash con una chiave Expression che specifica un valore di stringa o di blocco di script.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare qualsiasi oggetto a Group-Object.
Output | Microsoft.PowerShell.Commands.GroupInfo o System.Collections.Hashtable Quando si utilizza il parametro AsHashTable, Group-Object restituisce una tabella hash. In caso contrario, restituisce un oggetto GroupInfo.

Note

È inoltre possibile utilizzare il parametro GroupBy dei cmdlet di formattazione (ad esempio Format-Table [m2] e Format-List [m2]) per raggruppare oggetti. A differenza di Group-Object, che crea una sola tabella con una riga per ogni valore di proprietà, i parametri GroupBy creano una tabella per ogni valore di proprietà con una riga per ciascun elemento che dispone del valore della proprietà.

Per Group-Object non è necessario che gli oggetti raggruppati appartengano allo stesso tipo Microsoft .NET Framework. Per il raggruppamento di oggetti di tipi .NET Framework diversi, il cmdlet Group-Object utilizza le regole seguenti:

-- Stessi tipi e nomi di proprietà: se gli oggetti hanno una proprietà con il nome specificato e i valori della proprietà appartengono allo stesso tipo .NET Framework, i valori della proprietà vengono raggruppati mediante le stesse regole che verrebbero utilizzate per oggetti dello stesso tipo.

-- Stessi nomi di proprietà, tipi diversi: se gli oggetti hanno una proprietà con il nome specificato, ma i valori della proprietà appartengono a un tipo .NET Framework diverso in oggetti diversi, in Group-Object viene utilizzato il tipo .NET Framework della prima occorrenza della proprietà come tipo .NET Framework per tale gruppo di proprietà. Quando un oggetto ha una proprietà con un tipo diverso, il valore della proprietà viene convertito in quello per tale gruppo. Se la conversione del tipo non riesce, l'oggetto non viene incluso nel gruppo.

-- Proprietà mancanti: gli oggetti per i quali non è disponibile una proprietà specificata vengono considerati non raggruppabili e inclusi nell'output finale dell'oggetto GroupInfo in un gruppo denominato AutomationNull.Value.

Esempio 1

C:\PS>get-childitem *.doc | group-object -property length

Descrizione
-----------
Questo comando ottiene i file nel percorso corrente con estensione doc e li raggruppa in base alle dimensioni.

Esempio 2

C:\PS>get-childitem | sort-object -property extension | group-object -property extension

Descrizione
-----------
Questo comando ottiene i file nel percorso corrente, li ordina in base all'estensione di file, quindi li raggruppa in base all'estensione di file. Si noti che i file vengono ordinati prima di essere raggruppati.

Esempio 3

C:\PS>1..35 | group-object -property {$_ % 2},{$_ % 3}

Descrizione
-----------
In questo esempio viene illustrato come utilizzare i blocchi di script come valore del parametro Property.

Con questo comando vengono visualizzati i valori interi da 1 a 35, raggruppati in base al resto della divisione per 2 o 3.

Esempio 4

C:\PS>$events = get-eventlog -logname system -newest 1000

C:\PS> $events | group-object -property eventID

Count Name                      Group
----- ----                      -----
   44 Information               {System.Diagnostics.EventLogEntry,
    5 Error                     {System.Diagnostics.EventLogEntry,
    1 Warning                   {System.Diagnostics.EventLogEntry}

Descrizione
-----------
Con questi comandi vengono visualizzate le 1000 voci più recenti nel registro eventi di sistema, raggruppate in base all'ID evento.

Nel primo comando viene utilizzato il cmdlet Get-EventLog per recuperare gli eventi e l'operatore di assegnazione (=) per salvarli nella variabile $events.

Nel secondo comando viene utilizzato un operatore pipeline (|) per inviare gli eventi nella variabile $events al cmdlet Group-Object. Viene utilizzato il parametro Property per specificare che gli eventi devono essere raggruppati in base al valore della relativa proprietà EventID.

Nell'output la colonna Count rappresenta il numero di voci in ciascun gruppo, la colonna Name i valori EventID che definiscono un gruppo, mentre la colonna Group gli oggetti di ciascun gruppo.

Esempio 5

C:\PS>get-process | group-object -property priorityclass

Count Name                Group
----- ----                -----
   55 Normal              {System.Diagnostics.Process (AdtAgent), System.Diagnostics.Process (alg), System.Dia...
    1                     {System.Diagnostics.Process (Idle)}
    3 High                {System.Diagnostics.Process (Newproc), System.Diagnostics.Process (winlogon), System.D...
    2 BelowNormal         {System.Diagnostics.Process (winperf),

C:\PS>get-process | group-object -property company -noelement
Count Name
----- ----
   55 Normal
    1
    3 High
    2 BelowNormal

Descrizione
-----------
In questo esempio viene illustrato l'effetto del parametro NoElement. Con questi comandi i processi nel computer vengono raggruppati per classe di priorità.

Nel primo comando viene utilizzato il cmdlet Get-Process per ottenere i processi disponibili nel computer. Viene utilizzato un operatore pipeline (|) per inviare i risultati a Group-Object, che raggruppa gli oggetti in base al valore della proprietà PriorityClass del processo.

Il secondo comando è identico al primo, a eccezione del fatto che utilizza il parametro NoElement per eliminare i membri del gruppo dall'output. Il risultato è una tabella che contiene solo il conteggio e il nome del valore della proprietà.

I risultati vengono illustrati nell'esempio di output seguente.

Esempio 6

C:\PS>get-eventlog -logname system -newest 1000 | group-object -property {$_.TimeWritten - $_.TimeGenerated}

Descrizione
-----------
Con questo comando viene illustrato come specificare un blocco di script come valore del parametro Property.

Tramite questo comando verranno visualizzate le 1000 voci più recenti del registro eventi di sistema, raggruppate in base all'ora compresa tra il momento in cui sono state generate e quello in cui sono state scritte nel registro.

Nel comando viene utilizzato il cmdlet Get-EventLog per ottenere le voci del registro eventi. Viene utilizzato un operatore pipeline (|) per inviare le voci al cmdlet Group-Object. Il valore del parametro Property verrà specificato come blocco di script, ovvero espressione tra parentesi graffe. Il risultato della valutazione del blocco di script sarà costituito dall'ora compresa tra il momento in cui la voce di registro è stata generata e quello in cui è stata scritta nel registro. Tale valore verrà utilizzato per raggruppare i 1000 eventi più recenti.

Esempio 7

C:\PS>get-childitem | group-object extension -noelement

Count Name
----- ----
   21
   82 .txt
    9 .cmd
    5 .log
   12 .xml
    5 .htm
   36 .ps1
    1 .psc1
    3 .exe
    6 .csv
    1 .psd1
    2 .bat

Descrizione
-----------
Con questo comando gli elementi nella directory corrente vengono raggruppati in base all'estensione di file. Viene utilizzato il parametro NoElement per omettere i membri del gruppo.

I risultati vengono illustrati nell'esempio di output seguente.

Esempio 8

C:\PS>"a", "b", "c", "c", "d" | get-unique

a
b
c
d

C:\PS> "a", "b", "c", "c", "d" | group-object -noelement | where {$_.Count -gt 1}
Count Name
----- ----
    2 c

C:\PS> get-process | group-object -property Name -noelement | where {$_.count -gt 1}
Count Name
----- ----
    2 csrss
    5 svchost
    2 winlogon
    2 wmiprvse

Descrizione
-----------
In questo esempio viene illustrato come trovare i valori delle proprietà univoci e non (ripetuti) in una raccolta.

Il primo comando ottiene gli elementi univoci di una matrice reindirizzando la matrice al cmdlet Get-Unique.

Il secondo comando ottiene gli elementi non univoci di una matrice. La matrice viene reindirizzata al cmdlet Group-Object che raggruppa gli oggetti in base al valore. I gruppi risultanti vengono reindirizzati al cmdlet Where-Object che seleziona gli oggetti con gruppi con più di un membro.

Nel terzo comando viene illustrato l'utilizzo pratico di questa tecnica. Per rilevare processi nel computer con lo stesso nome di processo, viene utilizzato lo stesso metodo.

I risultati vengono illustrati nell'esempio di output seguente.

Esempio 9

C:\PS>$a = get-command get-*, set-* -type cmdlet | group-object -property verb -ashashtable -asstring

C:\PS> $a

Name    Value
----    -----
Get     {Get-PSCallStack, Get-PSBreakpoint, Get-PSDrive, Get-PSSession...}
Set     {Set-Service, Set-StrictMode, Set-PSDebug, Set-PSSessionConfiguration...}

C:\PS> $a.get

CommandType     Name                 Definition
-----------     ----                 ----------
Cmdlet          Get-PSCallStack      Get-PSCallStack [-Verbose] [-Debug] [-ErrorAction <ActionPrefer...
Cmdlet          Get-PSBreakpoint     Get-PSBreakpoint [[-Id] <Int32[]>] [-Verbose] [-Debug] [-ErrorA...
Cmdlet          Get-PSDrive          Get-PSDrive [[-Name] <String[]>] [-Scope <String>] [-PSProvider...
...

Descrizione
-----------
In questo esempio vengono utilizzati i parametri AsHashTable e AsString per restituire i gruppi in una tabella hash, ovvero, come raccolta di coppie chiave-valore.

Nella tabella hash risultante, ciascun valore della proprietà è una chiave e gli elementi del gruppo sono i valori. Poiché ciascuna chiave è una proprietà dell'oggetto tabella hash, è possibile utilizzare la notazione con punto per visualizzare i valori.

Il primo comando ottiene i cmdlet Get e Set nella sessione, li raggruppa in base al verbo, restituisce i gruppi come tabella hash e salva la tabella nella variabile $a.

Con il secondo comando viene visualizzata la tabella hash in $a. Sono presenti due coppie chiave-valore, una per i cmdlet Get e l'altra per i cmdlet Set.

Nel terzo comando viene utilizzata la notazione con punto per visualizzare i valori della chiave Get in $a. I valori sono l'oggetto CmdletInfo. Il parametro AsString non converte gli oggetti dei gruppi in stringhe.


Import-Alias

Importa un elenco di alias da un file.

Sintassi

Import-Alias [-Path] <string> [-Force] [-PassThru] [-Scope <string>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Import-Alias importa un elenco di alias da un file.

Parametri

-Force

Consente al cmdlet di importare un alias già definito e di sola lettura. È possibile utilizzare il comando seguente per visualizzare informazioni sugli alias attualmente definiti:

get-alias | Select-Object name,Options

Il valore della proprietà Options includerà "ReadOnly" se l'alias corrispondente è di sola lettura.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta l'alias. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string>

Specifica il percorso di un file che include informazioni sugli alias esportati. I caratteri jolly sono consentiti ma devono essere risolti in un singolo nome.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Scope <string>

Specifica l'ambito in cui vengono importati gli alias. I valori validi sono "Global", "Local", "Script" oppure un numero relativo all'ambito corrente, ovvero da 0 al numero di ambiti, dove 0 corrisponde all'ambito corrente e 1 al relativo padre. Il valore predefinito è "Local". Per ulteriori informazioni, vedere about_Scopes.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso a Import-Alias.
Output | Nessuno o System.Management.Automation.AliasInfo Quando si utilizza il parametro PassThru, Import-Alias restituisce un oggetto System.Management.Automation.AliasInfo che rappresenta l'alias. Negli altri casi, il cmdlet non genera alcun output.

Esempio 1

C:\PS>import-alias test.txt

Descrizione
-----------
Tramite questo comando le informazioni sull'alias verranno importate da un file denominato test.txt.

Vedere anche

  • Export-Alias
  • Get-Alias
  • New-Alias
  • Set-Alias


Import-Clixml

Importa un file CLIXML e crea gli oggetti corrispondenti all'interno di Windows PowerShell.

Sintassi

Import-Clixml [-Path] <string[]> [<CommonParameters>]

Descrizione

Il cmdlet Import-Clixml importa un file CLIXML con dati che rappresentano gli oggetti Microsoft .NET Framework e crea gli oggetti in Windows PowerShell.

Parametri

-Path <string[]>

Specifica il percorso dei file XML da convertire in oggetti di Windows PowerShell.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso a Import-Clixml.
Output | PSObject Import-Clixml restituisce oggetti che sono stati deserializzati dai file XML archiviati.

Note

Se per un parametro vengono specificati più valori, utilizzare virgole per separarli. Ad esempio, "<nome-parametro> <valore1>, <valore2>".

Esempio 1

C:\PS>get-process | export-clixml pi.xml

C:\PS> $processes = import-clixml pi.xml

Descrizione
-----------
Tramite questo comando il cmdlet Export-Clixml verrà utilizzato per salvare una copia serializzata delle informazioni sui processi restituite da Get-Process. Verrà quindi utilizzato Import-Clixml per recuperare il contenuto del file serializzato e ricreare un oggetto archiviato nella variabile $processes.


Import-Counter

Importa file di registro dei contatori delle prestazioni (con estensioni blg, csv e tsv) e crea gli oggetti che rappresentano ciascun esempio di contatore nel registro.

Sintassi

Import-Counter [-Path] <string[]> [-Counter <string[]>] [-EndTime <DateTime>] [-MaxSamples <Int64>] [-StartTime <DateTime>] [<CommonParameters>]

Import-Counter [-Path] <string[]> -ListSet <string[]> [<CommonParameters>]

Import-Counter [-Path] <string[]> -Riepilogo <switch> [<CommonParameters>]

Descrizione

Il cmdlet Import-Counter importa dati del contatore delle prestazioni dai file del registro del contatore delle prestazioni e crea oggetti per ciascun esempio di contatore nel file. Gli oggetti PerformanceCounterSampleSet creati sono identici agli oggetti restituiti da Get-Counter quando vengono raccolti dati del contatore delle prestazioni.

È possibile importare dati da file del registro delle prestazioni in formato csv (valori delimitati da virgole), tsv (valori delimitati da tabulazioni) e blg (file del registro delle prestazioni binario). Se si utilizzano file con estensione blg, è possibile importare più file (fino a 32 file diversi) in ogni comando. È inoltre possibile utilizzare i parametri di Import-Counter per filtrare i dati importati.

Insieme a Get-Counter e Export-Counter, questa funzionalità consente di raccogliere, esportazione, importare, combinare, filtrare, modificare e riesportare dati del contatore delle prestazioni all'interno di Windows PowerShell.

Parametri

-Counter <string[]>

Importa dati solo per i contatori delle prestazioni specificati. Per impostazione predefinita, Import-Counter importa tutti i dati da tutti i contatori nei file di input. Immettere uno o più percorsi di contatori. I caratteri jolly sono consentiti nella parte Instance del percorso.

Il percorso di ciascun contatore dispone del formato seguente. Si noti che nel percorso è richiesto il valore ComputerName, anche nel computer locale.

"\\<ComputerName>\<CounterSet>(<Instance>)\<CounterName>"

Ad esempio:

"\\Server01\Processor(2)\% User Time"

"\Processor(*)\% Processor Time

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-EndTime <DateTime>

Importa solo i dati del contatore con un timestamp minore o uguale alla data e all'ora specificate. Immettere un oggetto DateTime, ad esempio uno creato dal cmdlet Get-Date. Per impostazione predefinita, Import-Counter importa tutti i dati del contatore nei file specificati dal parametro Path.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ListSet <string[]>

Ottiene i set di contatori delle prestazioni rappresentati nei file esportati. I comandi con questo parametro non importano dati.

Immettere uno o più nomi di set di contatori. È consentito l'utilizzo di caratteri jolly. Per ottenere tutti i set di contatori nel file, digitare "import-counter -listset *".

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-MaxSamples <Int64>

Specifica il numero massimo di esempi di ciascun contatore da importare. Per impostazione predefinita, Get-Counter importa tutti i dati dei file specificati dal parametro Path.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string[]>

Specifica i percorsi dei file da importare. Questo parametro è obbligatorio.

Immettere il percorso e il nome file di un file con estensione csv, tsv o blg esportato tramite il cmdlet Export-Counter. È possibile specificare un solo file con estensione csv o tsv, ma è possibile specificare più file con estensione blg (fino a 32) in ciascun comando. È inoltre possibile reindirizzare stringhe dei percorsi dei file (tra virgolette) a Import-Counter.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | true

-StartTime <DateTime>

Importa solo i dati del contatore con un timestamp maggiore o uguale alla data e all'ora specificate. Immettere un oggetto DateTime, ad esempio uno creato dal cmdlet Get-Date. Per impostazione predefinita, Import-Counter importa tutti i dati del contatore nei file specificati dal parametro Path.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Riepilogo <switch>

Ottiene un riepilogo dei dati importati, anziché ottenere singoli esempi di dati del contatore.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input

System.String

È possibile reindirizzare percorsi di registri di contatori delle prestazioni a Import-Counter.

Output

Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet, Microsoft.PowerShell.Commands.GetCounter.CounterSet, Microsoft.PowerShell.Commands.GetCounter.CounterFileInfo

Per impostazione predefinita, Import-Counter restituisce Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet. Se si utilizza il parametro ListSet, Import-Command restituisce un oggetto Microsoft.PowerShell.Commands.GetCounter.CounterSet. Se si utilizza il parametro Summary, Import-Command restituisce un oggetto Microsoft.PowerShell.Commands.GetCounter.CounterFileInfo.

Note

Il cmdlet Import-Counter non dispone di un parametro ComputerName. Tuttavia, se il computer è configurato per la comunicazione remota di Windows PowerShell, è possibile utilizzare il cmdlet Invoke-Command per eseguire un comando Import-Counter in un computer remoto.

Esempio 1

C:\PS># Import-Counter

Descrizione
-----------
Questo comando importa tutti i dati del contatore dal file ProcessorData.csv nella variabile $data.

C:\PS> $data = import-counter -path ProcessorData.csv

Esempio 2

C:\PS># Import-Counter

Descrizione
-----------
Questo comando importa solo i dati del contatore Processor(_total)\Interrupts\sec dal file ProcessorData.blg nella variabile $i.

C:\PS> $i = import-counter -path ProcessorData.blg -counter "\\SERVER01\Processor(_Total)\Interrupts/sec"

Esempio 3

C:\PS># Import-Counter

Descrizione
-----------
In questo esempio viene illustrato come selezionare dati da un file del registro dei contatori delle prestazioni (con estensione blg) ed esportare quindi i dati selezionati in un file con estensione csv.

I primi quattro comandi ottengono i percorsi dei contatori dal file e li salvano in una variabile. Gli ultimi due comandi importano i dati selezionati, quindi esportano solo i dati selezionati.

Il primo comando utilizza Import-Counter per importare tutti i dati dei contatori delle prestazioni dai file ProcessorData.blg. Il comando salva i dati nella variabile $data.

C:\PS> $data = import-counter .\processordata.blg

Nel secondo comando vengono visualizzati i percorsi dei contatori nella variabile $data. La visualizzazione viene mostrata nell'output dei comandi.

C:\PS> $data[0].countersamples | format-table path

Path
----
\\SERVER01\Processor(_Total)\DPC Rate
\\SERVER01\Processor(1)\DPC Rate
\\SERVER01\Processor(0)\DPC Rate
\\SERVER01\Processor(_Total)\% Idle Time
\\SERVER01\Processor(1)\% Idle Time
\\SERVER01\Processor(0)\% Idle Time
\\SERVER01\Processor(_Total)\% C3 Time
\\SERVER01\Processor(1)\% C3 Time
...

Il terzo comando ottiene i percorsi dei contatori che terminano in "Interrupts/sec" e salva i percorsi nella variabile $IntCtrs.

C:\PS> $IntCtrs = $data[0].countersamples | where {$_.path -like "*interrupts/sec"} | foreach {$_.path}

Il quarto comando visualizza i percorsi dei contatori selezionati.

C:\PS> $IntCtrs

\\SERVER01\Processor(_Total)\Interrupts/sec
\\SERVER01\Processor(1)\Interrupts/sec
\\SERVER01\Processor(0)\Interrupts/sec

Il quinto comando utilizza il cmdlet Import-Counter per importare i dati. Viene utilizzato il parametro Counter con la variabile $IntCtrs per importare solo i dati per i percorsi dei contatori in $IntCtrs.

C:\PS> $i = import-counter -path .\processordata.blg -counter $intCtrs

Il sesto comando utilizza il cmdlet Export-Counter per esportare i dati.

C:\PS> $i | export-counter -path .\interrupts.csv -format CSV

Esempio 4

C:\PS># Import-Counter

Descrizione
-----------
In questo esempio viene illustrato come visualizzare tutti i percorsi dei contatori in un gruppo di set di contatori importati.

Il primo comando utilizza il parametro ListSet per ottenere tutti i set di contatori rappresentati in un file di dati contatore.

C:\PS> import-counter -path processordata.csv -listset *

CounterSetName     : Processor
MachineName        : \\SERVER01
CounterSetType     : MultiInstance
Description        :
Paths              : {\\SERVER01\Processor(*)\DPC Rate, \\SERVER01\Processor(*)\% Idle Time, \\SERVER01
                     \Processor(*)\% C3 Time, \\SERVER01\Processor(*)\% Interrupt Time...}
PathsWithInstances : {\\SERVER01\Processor(_Total)\DPC Rate, \\SERVER01\Processor(1)\DPC Rate, \\SERVER01
                     \Processor(0)\DPC Rate, \\SERVER01\Processor(_Total)\% Idle Time...}
Counter            : {\\SERVER01\Processor(*)\DPC Rate, \\SERVER01\Processor(*)\% Idle Time, \\SERVER01
                     \Processor(*)\% C3 Time, \\SERVER01\Processor(*)\% Interrupt Time...}

Il secondo comando ottiene tutti i percorsi dei contatori dal set di elenchi.

C:\PS> import-counter -path processordata.csv -listset * | foreach {$_.paths}

\\SERVER01\Processor(*)\DPC Rate
\\SERVER01\Processor(*)\% Idle Time
\\SERVER01\Processor(*)\% C3 Time
\\SERVER01\Processor(*)\% Interrupt Time
\\SERVER01\Processor(*)\% C2 Time
\\SERVER01\Processor(*)\% User Time
\\SERVER01\Processor(*)\% C1 Time
\\SERVER01\Processor(*)\% Processor Time
\\SERVER01\Processor(*)\C1 Transitions/sec
\\SERVER01\Processor(*)\% DPC Time
\\SERVER01\Processor(*)\C2 Transitions/sec
\\SERVER01\Processor(*)\% Privileged Time
\\SERVER01\Processor(*)\C3 Transitions/sec
\\SERVER01\Processor(*)\DPCs Queued/sec
\\SERVER01\Processor(*)\Interrupts/sec

Esempio 5

C:\PS># Import-Counter

Descrizione
-----------
In questo esempio vengono importati solo i dati dei contatori che dispongono di un timestamp tra gli intervalli di inizio e di fine specificati nel comando.

Il primo comando elenca i timestamp di tutti i dati nel file ProcessorData.blg.

  C:\PS> import-counter -path .\disk.blg | format-table timestamp

Il secondo e il terzo comando salvano determinati timestamp nelle variabili $start e $end. Il cast delle stringhe viene eseguito agli oggetti DateTime.

  C:\PS> $start = [datetime]"7/9/2008 3:47:00 PM"
  C:\PS> $end = [datetime]"7/9/2008 3:47:59 PM"

Il quarto comando finale utilizza Import-Counter per ottenere solo i dati del contatore che dispongono di un timestamp compreso tra l'ora di inizio e di fine (incluse). Il comando utilizza i parametri StartTime e EndTime per specificare l'intervallo.

  C:\PS> $t-data = import-counter -path disk.blg -starttime $start -endtime $end

Esempio 6

C:\PS># Import-Counter

Descrizione
-----------
In questo esempio viene illustrato come importare i cinque esempi meno recenti e più recenti da un file del registro dei contatori delle prestazioni.

Il primo comando utilizza il cmdlet Import-Counter per importare dati dal file Disk.blg. Il comando utilizza il parametro MaxSamples per limitare l'importazione a cinque esempi di contatori. Vengono ottenuti i primi cinque esempi (meno recenti) del file.

C:\PS> import-counter -path disk.blg -maxSamples 5

Il secondo comando utilizza la notazione di matrice e l'operatore di intervallo (..) di Windows PowerShell per ottenere gli ultimi cinque esempi di contatore dal file. Questi sono i cinque esempi più recenti.

C:\PS> (import-counter -path disk.blg)[-1 .. -5]

Esempio 7

C:\PS># Import-Counter

Descrizione
-----------
Questo comando utilizza il parametro Summary per ottenere un riepilogo dei dati del contatore dal file Memory.blg.

C:\PS> import-counter D:\Samples\memory.blg -summary

OldestRecord            NewestRecord            SampleCount
------------            ------------            -----------
7/10/2008 2:59:18 PM    7/10/2008 3:00:27 PM    1000

Esempio 8

C:\PS># Import-Counter

Descrizione
-----------
In questo esempio viene aggiornato un file del registro dei contatori delle prestazioni.

Il primo comando utilizza il parametro ListSet di Import-Counter per ottenere i contatori in OldData.blg, un file del registro dei contatori esistente. Il comando utilizza un operatore pipeline (|) per inviare i dati a un comando Foreach-Object che ottiene solo i valori della proprietà PathsWithInstances di ciascun oggetto.

C:\PS> $counters = import-counter olddata.blg -ListSet * | foreach {$_.PathsWithInstances}

Il secondo comando utilizza gli stessi contatori in un nuovo comando Get-Counter per ottenere un esempio corrente e lo esporta nel file NewData.blg.

C:\PS> get-counter -counter $counters -maxSamples 20 | export-counter c:\Logs\newdata.blg

Esempio 9

C:\PS># Import-Counter

Descrizione
-----------
Questo comando importa dati dei registri delle prestazioni da due registri e salva i dati nella variabile $counters. Il comando utilizza un operatore pipeline (|) per inviare i percorsi dei registri delle prestazioni a Import-Counter.

C:\PS> $counters = "d:\test\pdata.blg", "d:\samples\netlog.blg" | import-counter

Si noti che ciascun percorso è racchiuso tra virgolette e che i percorsi sono separati l'uno dall'altro da una virgola.

Vedere anche

  • Get-Counter
  • Export-Counter


Import-CSV

Converte le proprietà degli oggetti in un file CSV nelle versioni CSV degli oggetti originali.

Sintassi

Import-CSV [[-Delimiter] <char>] [-Path] <string[]> [-Header <string[]>] [<CommonParameters>]

Import-CSV -UseCulture [-Path] <string[]> [-Header <string[]>] [<CommonParameters>]

Descrizione

Il cmdlet Import-CSV consente di creare oggetti da file CSV di lunghezza variabile generati dal cmdlet Export-CSV.

È possibile utilizzare i parametri del cmdlet Import-CSV per specificare la riga dell'intestazione di colonna che determina i nomi delle proprietà degli oggetti risultanti, per specificare il delimitatore dell'elemento o indicare a Import-CSV di utilizzare il separatore di elenco per l'impostazione cultura corrente come delimitatore dell'elemento.

Gli oggetti creati da Import-CSV sono versioni CSV degli oggetti originali. I valori delle proprietà degli oggetti CSV sono versioni di tipo stringa dei valori delle proprietà degli oggetti originali. Le versioni CSV degli oggetti non dispongono di alcun metodo.

È inoltre possibile utilizzare i cmdlet ConvertTo-CSV e ConvertFrom-CSV per convertire oggetti in stringhe CSV (e viceversa). Questi cmdlet corrispondono ai cmdlet Export-CSV e Import-CSV, con l'eccezione che non salvano le stringhe CSV in un file.

Parametri

-Delimiter <char>

Specifica il delimitatore che separa i valori delle proprietà nel file CSV. Il valore predefinito è la virgola (,). Immettere un carattere, ad esempio i due punti (:). Per specificare il punto e virgola (;), è necessario racchiuderlo tra virgolette doppie.

Se si specifica un carattere diverso dall'effettivo delimitatore di stringa nel file, non è possibile creare oggetti dalle stringhe CSV mediante Import-CSV. Vengono invece restituite le stringhe.

Obbligatorio? | false
Posizione? | 2
Valore predefinito | ,
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Header <string[]>

Specifica una riga dell'intestazione di colonna alternativa per il file importato. L'intestazione di colonna determina i nomi delle proprietà dell'oggetto creato da Import-CSV.

Immettere un elenco di intestazioni di colonna separate da virgole. Racchiudere ogni elemento tra virgolette (singole o doppie). Non racchiudere la stringa dell'intestazione tra virgolette. Se si immette un numero di intestazioni di colonna inferiore a quello delle colonne, le colonne rimanenti non avranno alcuna intestazione. Se si immette un numero di intestazioni superiore a quello delle colonne, le intestazioni in più verranno ignorate.

Quando si utilizza il parametro Header, eliminare la riga dell'intestazione originale dal file CSV. In caso contrario, Import-CSV crea un oggetto in più dagli elementi nella riga dell'intestazione.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso del file CSV da importare. È inoltre possibile reindirizzare un percorso a Import-CSV.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-UseCulture

Utilizzare il separatore di elenco per l'impostazione cultura corrente come delimitatore dell'elemento. Il valore predefinito è la virgola (,).

Per trovare il separatore di elenco di un'impostazione cultura, utilizzare il comando (Get-Culture).TextInfo.ListSeparator. Se si specifica un carattere diverso dal delimitatore utilizzato nelle stringhe CSV, non è possibile creare oggetti dalle stringhe CSV mediante ConvertFrom-CSV. Vengono invece restituite le stringhe.

Obbligatorio? | true
Posizione? | named
Valore predefinito | Comma
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso a Import-CSV.
Output | Object. Import-CSV restituisce gli oggetti descritti dal contenuto del file CSV.

Note

Poiché gli oggetti importati sono versioni CSV del tipo di oggetto, non vengono riconosciuti e formattati dalle voci di formattazione dei tipi di Windows PowerShell mediante cui vengono formattate le versioni non CSV del tipo di oggetto.

Nel file CSV, ogni oggetto viene rappresentato da un elenco di valori delle proprietà dell'oggetto separati da virgole. I valori delle proprietà vengono convertiti in stringhe (tramite il metodo ToString() dell'oggetto), pertanto sono in genere rappresentati dal nome del valore della proprietà. Export-CSV non esporta i metodi dell'oggetto.

Esempio 1

C:\PS>get-process | export-csv processes.csv

C:\PS> $p = import-CSV processes.csv

C:\PS> $p | get-member

   TypeName: CSV:System.Diagnostics.Process

Name                       MemberType   Definition
----                       ----------   ----------
Equals                     Method       System.Boolean Equals(Object obj)
GetHashCode                Method       System.Int32 GetHashCode()
GetType                    Method       System.Type GetType()
ToString                   Method       System.String ToString()
BasePriority               NoteProperty System.String BasePriority=8
Company                    NoteProperty System.String Company=Microsoft Corporation
...

C:\PS> $p | out-gridview

Descrizione
-----------
In questo esempio viene illustrato come esportare e importare un file CSV di oggetti Microsoft .NET Framework.

Nel primo comando viene utilizzato il cmdlet Get-Process per ottenere il processo nel computer locale. Viene utilizzato un operatore pipeline (|) per inviare gli oggetti processo al cmdlet Export-CSV che li esporta nel file Processes.csv nella directory corrente.

Nel secondo comando viene utilizzato il cmdlet Import-CSV per importare i processi nel file Import-CSV. Gli oggetti processo risultanti vengono quindi salvati nella variabile $p.

Nel terzo comando viene utilizzato un operatore pipeline per reindirizzare gli oggetti importati ai cmdlet Get-Member. Il risultato mostra che si tratta di oggetti CSV:System.Diagnostic.Process, non degli oggetti System.Diagnostic.Process restituiti da Get-Process.

Inoltre, poiché non vi è alcun tipo di voce nei file di formattazione per la versione CSV degli oggetti processo, questi oggetti non vengono formattati come gli oggetti processo standard.

Per visualizzare gli oggetti, utilizzare i cmdlet di formattazione, ad esempio Format-Table e Format-List o reindirizzare gli oggetti a Out-GridView.

Esempio 2

C:\PS>get-process | export-csv processes.csv -Delimiter :

C:\PS> $p = import-csv processes.csv -Delimiter :

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il parametro Delimiter di Import-CSV. I processi vengono esportati in un file che utilizza i due punti (:) come delimitatore.

Durante l'importazione, il file Import-CSV utilizza il parametro Delimiter per indicare il delimitatore utilizzato nel file.

Esempio 3

C:\PS>$p = import-csv processes.csv -UseCulture

C:\PS> (get-culture).textinfo.listseparator

,

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il parametro UseCulture di Import-CSV.

Con il primo comando vengono importati gli oggetti nel file Processes.csv nella variabile $p. Viene utilizzato il parametro UseCulture per indicare a Import-CSV di utilizzare il separatore di elenco definito per le impostazioni cultura correnti.

Con il secondo comando viene visualizzato il separatore di elenco per le impostazioni cultura correnti. Viene utilizzato il cmdlet Get-Culture per ottenere le impostazioni cultura correnti. Viene utilizzato il metodo con punto (.) per ottenere la proprietà TextInfo delle impostazioni cultura correnti e la proprietà ListSeparator dell'oggetto in TextInfo. In questo esempio, il comando restituisce una virgola.

Esempio 4

C:\PS>start-job -scriptblock { get-process } | export-csv jobs.csv

C:\PS> $header = "MoreData","StatusMessage","Location","Command","State","Finished","InstanceId","SessionId","Name","ChildJobs","Output","Error","Progress","Verbose","Debug","Warning","StateChanged"

# Delete header from file
C:\PS> $a = (get-content jobs.csv)
C:\PS> $a = $a[0], $a[2..($a.count - 1)]
C:\PS> $a > jobs.csv

C:\PS> $j = import-csv jobs.csv -header $header

C:\PS> $j

MoreData      : True
StatusMessage :
Location      : localhost
Command       : get-process
State         : Running
Finished      : System.Threading.ManualResetEvent
InstanceId    : 135bdd25-40d6-4a20-bd68-05282a59abd6
SessionId     : 1
Name          : Job1
ChildJobs     : System.Collections.Generic.List`1[System.Management.Automation.Job]
Output        : System.Management.Automation.PSDataCollection`1[System.Management.Automation.PSObject]
Error         : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ErrorRecord]
Progress      : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ProgressRecord]
Verbose       : System.Management.Automation.PSDataCollection`1[System.String]
Debug         : System.Management.Automation.PSDataCollection`1[System.String]
Warning       : System.Management.Automation.PSDataCollection`1[System.String]
StateChanged  :

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il parametro Header di Import-CSV per modificare i nomi delle proprietà nell'oggetto importato risultante.

Nel primo comando viene utilizzato il cmdlet Start-Job per avviare un processo in background che esegue un comando Get-Process nel computer locale. Un operatore pipeline (|) invia l'oggetto processo risultante al cmdlet Export-CSV che converte l'oggetto processo nel formato CSV. Un operatore di assegnazione (=) consente di salvare il CSV risultante nel file Jobs.csv.

Nel secondo comando un'intestazione viene salvata nella variabile $header. A differenza dell'intestazione predefinita, questa intestazione utilizza "MoreData" anziché "HasMoreData" e "State" anziché "JobStateInfo".

Con i tre comandi successivi viene eliminata l'intestazione originale (seconda riga) dal file Jobs.csv.

Nel sesto comando viene utilizzato il cmdlet Import-CSV per importare il file Jobs.csv e convertire le stringhe CSV in una versione CSV dell'oggetto processo. Nel comando viene utilizzato il parametro Header per inviare l'intestazione alternativa. I risultati verranno archiviati nella variabile $j.

Nel settimo comando viene visualizzato l'oggetto nella variabile $j. L'oggetto risultante dispone delle proprietà "MoreData" e "State", come visualizzato nell'output dei comandi.

Esempio 5

C:\PS>".\processes.csv" | import-csv

Descrizione
-----------
Con questo comando vengono importati gli oggetti dal file Processes.csv.

Vedere anche

  • Export-CSV
  • ConvertTo-CSV
  • ConvertFrom-CSV


Import-LocalizedData

Importa dati specifici della lingua in script e funzioni in base alle impostazioni cultura dell'interfaccia utente selezionate per il sistema operativo.

Sintassi

Import-LocalizedData [-BindingVariable] <string> [[-UICulture] <string>] [-BaseDirectory <string>] [-FileName <string>] [-SupportedCommand <string[]>] [<CommonParameters>]

Descrizione

Il cmdlet Import-LocalizedData recupera dinamicamente stringhe da una sottodirectory il cui nome corrisponde alla lingua dell'interfaccia utente impostata per l'utente corrente del sistema operativo. È progettato per consentire agli script di visualizzare messaggi utente nella lingua dell'interfaccia utente selezionata dall'utente corrente.

Import-LocalizedData consente di importare dati dai file con estensione psd1 in sottodirectory specifiche della lingua della directory di script e salvarli in una variabile locale specificata nel comando. Il cmdlet seleziona la sottodirectory e il file in base al valore della variabile automatica $PSUICulture. Quando si utilizza la variabile locale nello script per visualizzare un messaggio utente, il messaggio viene visualizzato nella lingua dell'interfaccia utente.

È possibile utilizzare i parametri di Import-LocalizedData per specificare valori alternativi per impostazioni cultura dell'interfaccia utente, percorso e nome file, per aggiungere comandi supportati e per eliminare il messaggio di errore visualizzato se non vengono trovati i file con estensione psd1.

Il cmdlet Import-LocalizedData supporta l'internazionalizzazione degli script in Windows PowerShell 2.0. Questa iniziativa mira a soddisfare le esigenze degli utenti di tutto il mondo semplificando la visualizzazione di messaggi utente da parte degli script nella lingua dell'interfaccia dell'utente corrente. Per ulteriori informazioni su questa funzionalità e sul formato dei file con estensione psd1, vedere about_Script_Internationalization.

Parametri

-BaseDirectory <string>

Specifica la directory di base in cui si trovano i file con estensione psd1. L'impostazione predefinita è la directory in cui si trova lo script. Import-LocalizedData cerca il file con estensione psd1 per lo script in una sottodirectory specifica della lingua della directory di base.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-BindingVariable <string>

Specifica una variabile in cui vengono importate le stringhe di testo. Immettere un nome di variabile senza simbolo del dollaro ($).

Quando viene utilizzato Import-LocalizedData per sostituire le stringhe di testo predefinite specificate nella sezione DATA di uno script, assegnare la sezione DATA a una variabile e immettere il nome della variabile della sezione DATA nel valore del parametro BindingVariable. Quindi, quando Import-LocalizedData salva il contenuto importato in BindingVariable, i dati importati sostituiranno le stringhe di testo predefinite. Se non si specificano stringhe di testo predefinite, è possibile selezionare qualsiasi nome di variabile.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-FileName <string>

Specifica il nome del file con estensione psd1 da importare. Immettere un nome file senza estensione psd1.

L'impostazione predefinita è il nome dello script. Ad esempio, se lo script è FindFiles.ps1, Import-LocalizedData cerca FindFiles.psd1. È possibile utilizzare questo parametro per indicare a Import-LocalizedData di cercare un altro file con estensione psd1.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SupportedCommand <string[]>

Specifica cmdlet e funzioni che generano solo dati.

Utilizzare questo parametro per includere cmdlet e funzioni scritti o verificati. Per ulteriori informazioni, vedere about_Script_Internationalization.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UICulture <string>

Specifica impostazioni cultura dell'interfaccia utente alternative. L'impostazione predefinita è il valore della variabile automatica $PsUICulture. Immettere le impostazioni cultura dell'interfaccia utente nel formato "<lingua>-<paese>", ad esempio en-US, it-IT o ar-SA.

Il valore del parametro UICulture determina la sottodirectory specifica della lingua (nella directory di base) da cui Import-LocalizedData ottiene il file con estensione psd1 per lo script.

Il cmdlet cerca una sottodirectory con lo stesso nome del valore del parametro UICulture o della variabile automatica $PsUICulture, ad esempio "it-IT" o "ar-SA". Se non è possibile trovare la directory o la directory non contiene un file con estensione psd1 per lo script, verrà cercata una sottodirectory con il nome del codice della lingua, ad esempio "it" o "ar". Se non è possibile trovare la sottodirectory o il file con estensione psd1, il comando ha esito negativo e i dati vengono visualizzati nella lingua predefinita specificata nello script.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.Collections.Hashtable Import-LocalizedData salva la tabella hash nella variabile specificata dal valore del parametro BindingVariable.

Note

Prima di utilizzare Import-LocalizedData, localizzare i messaggi utente. Formattare i messaggi per tutte le impostazioni locali (impostazioni cultura dell'interfaccia utente) in una tabella hash di coppie chiave/valore e salvare la tabella hash in un file con lo stesso nome dello script e con estensione psd1. Creare una directory nella directory di script per tutte le impostazioni cultura dell'interfaccia utente supportate, quindi salvare il file con estensione psd1 per tutte le impostazioni cultura dell'interfaccia utente nella directory con il nome delle impostazioni cultura dell'interfaccia utente.

Localizzare, ad esempio, i messaggi utente per le impostazioni locali it-IT e formattarli in una tabella hash. Salvare la tabella hash in un file <NomeScript>.psd1. Creare quindi una sottodirectory it-IT nella directory di script e salvare il file it-IT <NomeScript>.psd1 nella sottodirectory it-IT. Ripetere questo metodo per tutte le impostazioni locali supportate.

Tramite Import-LocalizedData viene eseguita una ricerca strutturata dei messaggi utente localizzati per uno script.

Import-LocalizedData inizia la ricerca nella directory in cui è disponibile il file script (o il valore del parametro BaseDirectory). Cerca quindi all'interno della directory di base una sottodirectory con lo stesso nome del valore della variabile $PsUICulture (o il valore del parametro UICulture), ad esempio "it-IT" o "ar-SA". In tale sottodirectory cerca quindi un file con estensione psd1 con lo stesso nome dello script (o il valore del parametro FileName).

Se Import-LocalizedData non è in grado di trovare una sottodirectory con il nome delle impostazioni cultura dell'interfaccia utente oppure la sottodirectory non contiene un file con estensione psd1 per lo script, viene cercato un file con estensione psd1 per lo script in una sottodirectory con il nome del codice della lingua, ad esempio "it" o "ar". Se non la sottodirectory o il file con estensione psd1 non viene trovata, il comando ha esito negativo, i dati vengono visualizzati nella lingua predefinita nello script e viene visualizzato un messaggio di errore che indica che non è stato possibile importare i dati. Per eliminare il messaggio e ignorare l'errore, utilizzare il parametro comune ErrorAction con il valore SilentlyContinue.

Se Import-LocalizedData trova la sottodirectory e il file con estensione psd1, la tabella hash dei messaggi utente viene importata nel valore del parametro BindingVariable nel comando. Quindi, per qualsiasi messaggio visualizzato dalla tabella hash nella variabile sarà visualizzata la versione localizzata.

Per ulteriori informazioni, vedere about_Script_Internationalization.

Esempio 1

C:\PS>import-localizeddata -bindingVariable messages

Descrizione
-----------
Con questo comando vengono importate stringhe di testo nella variabile $messages. Vengono utilizzati tutti i valori predefiniti per i parametri del cmdlet.

Se il comando è incluso nello script Archives.ps1 nella directory C:\test, e il valore della variabile automatica $PsUICulture è zh-CN, Import-LocalizedData importa il file Archives.psd1 nella directory C:\test\zh-CN.

Esempio 2

C:\PS>import-localizeddata -bindingVariable msgTbl -uiculture ar-SA -filename Simple -baseDirectory C:\Data\Localized

Descrizione
-----------
Con questo comando vengono importate stringhe di testo nella variabile $msgTb1 di uno script.

Viene utilizzato il parametro UICulture per indicare al cmdlet di importare dati dal file Simple.psd1 nella sottodirectory ar-SA di C:\Data\Localized.

Esempio 3

C:\PS># In C:\Test\en-US\test.psd1:

ConvertFrom-StringData @'
 # English strings
Msg1 = "The Name parameter is missing from the command."
Msg2 = "This command requires the credentials of a member of the Administrators group on the computer."
Msg3 = "Use $_ to represent the object that is being processed."
'@

# In C:\Test\Test.ps1

import-localizeddata -bindingvariable messages
write-host $messages.msg2

# In Windows PowerShell

C:\PS> .\test.ps1
This command requires the credentials of a member of the Administrators group on the computer.

Descrizione
-----------
In questo esempio viene illustrato come utilizzare dati localizzati in uno script semplice.

Nella prima parte dell'esempio viene illustrato il contenuto del file Test.psd1. Contiene un comando ConvertFrom-StringData tramite cui viene convertita una serie di stringhe di testo denominate in una tabella hash. Il file test.psd1 si trova nella sottodirectory en-US della directory C:\Test che contiene lo script.

Nella seconda parte dell'esempio viene illustrato il contenuto dello script Test.ps1. Contiene un comando Import-LocalizedData che importa i dati dal file .psd1 corrispondente nella variabile $Messages e un comando Write-Host che scrive uno dei messaggi presenti nella variabile $Messages nel programma host.

Nell'ultima parte dell'esempio viene eseguito lo script. L'output mostra che viene visualizzato il messaggio utente corretto nella lingua dell'interfaccia utente impostata per l'utente corrente del sistema operativo.

Esempio 4

C:\PS># In TestScript.ps1

$UserMessages = DATA {
    ConvertFrom-StringData @'
    # English strings
        Msg1 = "Enter a name."
        Msg2 = "Enter your employee ID."
        Msg3 = "Enter your building number."
'@ }

Import-LocalizedData -bindingVariable UserMessages

$UserMessages.Msg1
...

Descrizione
-----------
In questo esempio viene illustrato come utilizzare Import-LocalizedData per sostituire stringhe di testo predefinite nella sezione DATA di uno script.

In questo esempio, la sezione DATA dello script TestScript.ps1 contiene un comando ConvertFrom-StringData che converte il contenuto della sezione DATA in una tabella hash e archivia il valore della variabile $UserMessages.

Lo script include anche un comando Import-LocalizedData che importa una tabella hash di stringhe di testo tradotte dal file con TestScript.psd1 nella sottodirectory specificata dal valore della variabile $PsUICulture. Se il comando trova il file con estensione psd1, salva le stringhe tradotte nel valore della stessa variabile $UserMessages, sovrascrivendo la tabella hash salvata dalla logica della sezione DATA.

Con il terzo comando viene visualizzato il primo messaggio nella variabile $UserMessages.

Se il comando Import-LocalizedData trova un file con estensione psd1 per la lingua di $PsUICulture, il valore della variabile $UserMessages contiene le stringhe di testo tradotte. Se, per qualsiasi motivo, il comando non riesce, vengono visualizzate le stringhe di testo predefinite specificate della sezione DATA dello script.

Esempio 5

C:\PS># In Day1.ps1
Import-LocalizedData -bindingVariable Day
Day.MessageDate

# In Day2.ps1
Import-LocalizedData -bindingVariable Day -errorAction:silentlycontinue
Day.MessageDate

C:\PS> .\Day1.ps1

Import-LocalizedData : Cannot find PowerShell data file 'Day1.psd1' in directory 'C:\ps-test\fr-BE\' or any parent culture directories.
At C:\ps-test\Day1.ps1:17 char:21
+ Import-LocalizedData <<<<  Day
Today is Tuesday

C:\PS> .\Day2.ps1

Today is Tuesday

Descrizione
-----------
In questo esempio viene illustrato come eliminare i messaggi di errore visualizzati quando Import-LocalizedData non trova le directory che corrispondono alle impostazioni cultura dell'interfaccia utente specificata o un file con estensione psd1 per lo script in tali directory.

Per eliminare il messaggio di errore, è possibile utilizzare il parametro comune ErrorAction con il valore "SilentlyContinue". Ciò è utile in particolar modo quando sono stati forniti messaggi utente in un'impostazione predefinita o una lingua di fallback e non è necessario alcun messaggio di errore.

In questo esempio vengono confrontati due script, Day1.ps1 e Day2.ps1 che includono un comando Import-LocalizedData. Gli script sono identici, ad eccezione del fatto che Day2 utilizza il parametro comune ErrorAction con il valore SilentlyContinue.

Nell'output di esempio vengono illustrati i risultati dell'esecuzione di entrambi gli script quando le impostazioni cultura dell'interfaccia utente vengono impostate su fr-BE e non sono presenti directory o file corrispondenti per tali impostazioni cultura dell'interfaccia utente. Day1.ps1 visualizza un messaggio di errore e l'output in inglese. Day2.ps1 visualizza solo l'output in inglese.

Vedere anche

  • about_Script_Internationalization


Import-Module

Aggiunge moduli alla sessione corrente.

Sintassi

Import-Module [-Name] <string[]> [-Alias <string[]>] [-ArgumentList <Object[]>] [-AsCustomObject] [-Cmdlet <string[]>] [-Force] [-Function <string[]>] [-Global] [-PassThru] [-Prefix <string>] [-Variable <string[]>] [-Version <Version>] [<CommonParameters>]

Import-Module [-Assembly] <Assembly[]> [-Alias <string[]>] [-ArgumentList <Object[]>] [-AsCustomObject] [-Cmdlet <string[]>] [-Force] [-Function <string[]>] [-Global] [-PassThru] [-Prefix <string>] [-Variable <string[]>] [-Version <Version>] [<CommonParameters>]

Import-Module [-ModuleInfo] <PSModuleInfo[]> [-Alias <string[]>] [-ArgumentList <Object[]>] [-AsCustomObject] [-Cmdlet <string[]>] [-Force] [-Function <string[]>] [-Global] [-PassThru] [-Prefix <string>] [-Variable <string[]>] [-Version <Version>] [<CommonParameters>]

Descrizione

Il cmdlet Import-Module aggiunge uno o più moduli alla sessione corrente.

Un modulo è un pacchetto che può contenere membri (ad esempio cmdlet, provider, script, funzioni, variabili e altri strumenti e file) che è possibile utilizzare in Windows PowerShell. Dopo l'importazione di un modulo, è possibile utilizzarne i membri nella sessione.

Per importare un modulo, utilizzare il parametro Name, Assembly o ModuleInfo per identificare il modulo da importare. Per impostazione predefinita, Import-Module importa tutti i membri esportati dal modulo, ma è possibile utilizzare i parametri Alias, Function, Cmdlet e Variable per limitare l'importazione a determinati membri.

Import-Module consente di importare un modulo solo nella sessione corrente. Per importare il modulo in tutte le sessioni, aggiungere un comando Import-Module al profilo di Windows PowerShell. Per ulteriori informazioni sui profili, vedere about_Profiles.

Per ulteriori informazioni sui moduli, vedere about_Modules.

Parametri

-Alias <string[]>

Importa solo gli alias specificati dal modulo nella sessione corrente. Immettere un elenco di alias separati da virgole. È consentito l'utilizzo di caratteri jolly.

Alcuni moduli esportano automaticamente gli alias selezionati nella sessione quando si importa il modulo. Questo parametro consente di eseguire la selezione tra gli alias esportati.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-ArgumentList <Object[]>

Specifica argomenti (valori di parametro) passati a un modulo di script durante il comando Import-Module. Questo parametro è valido solo quando si importa un modulo di script.

È inoltre possibile fare riferimento ad ArgumentList tramite il relativo alias "args". Per ulteriori informazioni, vedere about_Aliases.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-AsCustomObject

Restituisce un oggetto personalizzato con membri che rappresentano i membri del modulo importato. Questo parametro è valido solo per i moduli di script.

Quando si utilizza il parametro AsCustomObject, Import-Module importa i membri del modulo nella sessione, quindi restituisce un oggetto PSCustomObject anziché un oggetto PSModuleInfo. È possibile salvare l'oggetto personalizzato in una variabile e utilizzare la notazione con punto per richiamare i membri.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Assembly <Assembly[]>

Importa i cmdlet e i provider implementati negli oggetti assembly specificati. Immettere una variabile che contiene oggetti assembly oppure un comando che consente di creare tali oggetti. È inoltre possibile reindirizzare un oggetto assembly a Import-Module.

Quando si utilizza questo parametro, vengono importati solo i cmdlet e i provider implementati dagli assembly specificati. Se il modulo contiene altri file, questi non vengono importati ed è quindi possibile che importanti membri del modulo risultino mancanti. Utilizzare questo parametro per il debug e la verifica del modulo o quando l'utilizzo è richiesto da parte dell'autore del modulo.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Cmdlet <string[]>

Importa solo i cmdlet specificati dal modulo nella sessione corrente. Immettere un elenco di cmdlet. È consentito l'utilizzo di caratteri jolly.

Alcuni moduli esportano automaticamente i cmdlet selezionati nella sessione quando si importa il modulo. Questo parametro consente di eseguire la selezione tra i cmdlet esportati.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-Force

Importa nuovamente un modulo e i relativi membri, anche se il modulo o i membri dispongono di una modalità di accesso in sola lettura.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Function <string[]>

Importa solo le funzioni specificate dal modulo nella sessione corrente. Immettere un elenco di funzioni. È consentito l'utilizzo di caratteri jolly.

Alcuni moduli esportano automaticamente le funzioni selezionate nella sessione quando si importa il modulo. Questo parametro consente di eseguire la selezione tra le funzioni esportate.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-Global

Quando viene utilizzato in un modulo di script (psm1), questo parametro importa moduli nello stato della sessione globale.

Questo parametro è valido solo quando viene visualizzato in un modulo di script. Negli altri casi viene ignorato.

Per impostazione predefinita, i comandi in un modulo di script, inclusi i comandi provenienti da moduli nidificati, vengono importati nello stato della sessione del chiamante. Per limitare i comandi esportati da un modulo, utilizzare un comando Export-ModuleMember nel modulo di script.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ModuleInfo <PSModuleInfo[]>

Specifica gli oggetti del modulo da importare. Immettere una variabile che contiene gli oggetti del modulo o un comando che consente di ottenere tali oggetti, ad esempio Get-Module -listavailable. È inoltre possibile reindirizzare gli oggetti del modulo a Import-Module.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Name <string[]>

Specifica i nomi dei moduli da importare. Immettere il nome del modulo o il nome di un file del modulo, ad esempio un file con estensione psd1, psm1, dll o ps1. I percorsi dei file sono facoltativi. Non è consentito l'utilizzo di caratteri jolly. È inoltre possibile reindirizzare nomi di moduli e di file a Import-Module.

Se si omette un percorso, Import-Module cerca il modulo nei percorsi salvati nella variabile di ambiente PSModulePath ($env:PSModulePath).

Specificare solo il nome del modulo quando possibile. Quando si specifica un nome file, vengono importati solo i membri implementati in tale file. Se il modulo contiene altri file, questi non vengono importati ed è quindi possibile che importanti membri del modulo risultino mancanti.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-PassThru

Restituisce oggetti che rappresentano i moduli importati. Per impostazione predefinita, il cmdlet non genera alcun output.

Note

-- Quando si reindirizza l'output di un comando "Get-Module -listavailable" a un comando Import-Module con il parametro PassThru, Import-Module restituisce l'oggetto passato da Get-Module senza aggiornarlo. Di conseguenza, le proprietà Exported e NestedModules non sono ancora definite.

-- Quando si utilizza il parametro Prefix per specificare un prefisso per il membro, il prefisso non viene visualizzato nei nomi dei membri nelle proprietà dell'oggetto modulo. Nell'oggetto viene registrato ciò che è stato esportato prima dell'applicazione del prefisso.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Prefix <string>

Aggiunge il prefisso specificato ai sostantivi nei nomi dei membri del modulo importato.

Utilizzare questo parametro per evitare conflitti di nomi che potrebbero verificarsi quando membri diversi della sessione presentano lo stesso nome. Questo parametro non modifica il modulo e non influisce sui file importati dal modulo per il proprio utilizzo (noti come "moduli nidificati"). Ha effetto solo sui nomi dei membri della sessione corrente.

Ad esempio, se si specifica il prefisso "UTC" e si importa un cmdlet Get-Date, nella sessione il cmdlet viene indicato come Get-UTCDate e non viene confuso con il cmdlet Get-Date originale.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Variable <string[]>

Importa solo le variabili specificate dal modulo nella sessione corrente. Immettere un elenco di variabili. È consentito l'utilizzo di caratteri jolly.

Alcuni moduli esportano automaticamente le variabili selezionate nella sessione quando si importa il modulo. Questo parametro consente di eseguire la selezione tra le variabili esportate.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-Version <Version>

Specifica la versione del modulo da importare. Utilizzare questo parametro quando sono presenti versioni diverse dello stesso modulo nel sistema.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String, System.Management.Automation.PSModuleInfo, System.Reflection.Assembly È possibile reindirizzare un nome di modulo, un oggetto modulo o un oggetto assembly a Import-Module.
Output | Nessuno, System.Management.Automation.PSModuleInfo o System.Management.Automation.PSCustomObject Per impostazione predefinita, Import-Module non genera alcun output. Se si utilizza il parametro PassThru, viene generato un oggetto System.Management.Automation.PSModuleInfo che rappresenta il modulo. Se si utilizza il parametro AsCustomObject, viene generato un oggetto PSCustomObject.

Note

È inoltre possibile fare riferimento a Import-Module tramite il relativo alias, "ipmo". Per ulteriori informazioni, vedere about_Aliases.

Prima di importare un modulo, è necessario copiare la directory del modulo in una directory accessibile al computer locale. Per ulteriori informazioni, vedere about_Modules.

I membri del modulo vengono eseguiti nello stato privato della sessione del modulo, in modo che i comandi utilizzati per l'elaborazione interna non abbiano effetto sullo stato della sessione.

Se si importano membri con lo stesso nome e lo stesso tipo nella sessione, per impostazione predefinita in Windows PowerShell viene utilizzato il membro importato per ultimo. Variabili e alias vengono sostituiti e gli originali non sono accessibili. Funzioni, cmdlet e provider vengono "ombreggiati" dai nuovi membri ed è possibile accedervi indicando il nome del comando con il nome del percorso dello snap-in, modulo o funzione.

Per aggiornare i dati di formattazione per i comandi importati da un modulo, utilizzare il cmdlet Update-FormatData. Update-FormatData consente inoltre di aggiornare i dati di formattazione per i comandi nella sessione importati dai moduli. Se viene modificato il file di formattazione di un modulo, è possibile eseguire un comando Update-FormatData per aggiornare i dati di formattazione per i comandi importati. Non è necessario importare nuovamente il modulo.

Per importare un modulo creato da Import-PSSession o Export-PSSession, i criteri di esecuzione nella sessione corrente non possono essere Restricted o AllSigned, perché i moduli creati da Import-PSSession e Export-PSSession contengono file di script non firmati non consentiti da tali criteri. Per utilizzare Import-Module senza modificare i criteri di esecuzione per il computer locale, utilizzare il parametro Scope di Set-ExecutionPolicy per impostare criteri di esecuzione meno restrittivi per un singolo processo.

Esempio 1

C:\PS>import-module -name BitsTransfer

Descrizione
-----------
Con questo comando vengono importati i membri del modulo BitsTransfer nella sessione corrente.

Il nome del parametro Name (-Name) è facoltativo e può essere omesso.

Per impostazione predefinita, Import-Module non genera alcun output quando si importa un modulo. Per richiedere l'output, utilizzare il parametro PassThru o AsCustomObject o il parametro comune Verbose.

Esempio 2

C:\PS>get-module -listAvailable | import-module

Descrizione
-----------
Questo comando consente di importare tutti i moduli disponibili nel percorso specificato dalla variabile di ambiente PSModulePath ($env:psmodulepath) nella sessione corrente.

Esempio 3

C:\PS>$m = get-module -ListAvailable BitsTransfer, ServerBackup

C:\PS> import-module -moduleInfo $m

Descrizione
-----------
Con questi comandi si importano i membri dei moduli BitsTransfer e ServerBackup nella sessione corrente.

Con il primo comando si utilizza il cmdlet Get-Module per ottenere oggetti PSModuleInfo che rappresentano i moduli BitsTransfer e ServerBackup. Gli oggetti vengono salvati nella variabile $m. Il parametro ListAvailable è obbligatorio quando si ottengono moduli che non sono ancora importati nella sessione.

Il secondo comando utilizza il parametro ModuleInfo di Import-Module per importare i moduli nella sessione corrente.

Questi comandi equivalgono all'utilizzo di un operatore pipeline (|) per inviare l'output di un comando Get-Module a Import-Module.

Esempio 4

C:\PS>import-module -name c:\ps-test\modules\test -verbose

VERBOSE: Loading module from path 'C:\ps-test\modules\Test\Test.psm1'.
VERBOSE: Exporting function 'my-parm'.
VERBOSE: Exporting function 'get-parm'.
VERBOSE: Exporting function 'get-spec'.
VERBOSE: Exporting function 'get-specDetails'.

Descrizione
-----------
Con questo comando si utilizza un percorso esplicito per identificare il modulo da importare.

Viene inoltre utilizzato il parametro comune Verbose per ottenere un elenco degli elementi importati dal modulo. Senza il parametro Verbose, PassThru o AsCustomObject, Import-Module non genera alcun output quando importa un modulo.

Esempio 5

C:\PS>import-module BitsTransfer -cmdlet Add-BitsTransferFile, Get-BitsTransfer

C:\PS> get-module BitsTransfer

Name              : BitsTransfer
Path              : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\BitsTransfer\BitsTransfer.psd1
Description       :
Guid              : 8fa5064b-8479-4c5c-86ea-0d311fe48875
Version           : 1.0.0.0
ModuleBase        : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\BitsTransfer
ModuleType        : Manifest
PrivateData       :
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {[Add-BitsTransfer, Add-BitsTransfer], [Complete-BitsTransfer, Complete-BitsTransfer], [Get-BitsTransfer, Get-BitsTransfer], [Rem
                    ove-BitsTransfer, Remove-BitsTransfer]...}
ExportedFunctions : {}
ExportedVariables : {}
NestedModules     : {Microsoft.BackgroundIntelligentTransfer.Management}

C:\PS> get-command -module BitsTransfer

CommandType Name                Definition
----------- ----                ----------
Cmdlet      Add-BitsTransfer    Add-BitsTransfer [-BitsJob] <BitsJob[]> [-Source] <String[]> [[-Destination] <String[]>] [-Verbose] [-Debug] [-ErrorA...
Cmdlet      Get-BitsTransfer    Get-BitsTransfer [[-Name] <String[]>] [-AllUsers] [-Verbose] [-Debug] [-ErrorAction <ActionPreference>] [-WarningActi...

Descrizione
-----------
In questo esempio viene illustrato come limitare i membri del modulo importato nella sessione e l'effetto di questo comando sulla sessione.

Con il primo comando si importano solo i cmdlet Add-BitsTransfer e Get-BitsTransfer cmdlet dal modulo BitsTransfer. Viene utilizzato il parametro Cmdlet per limitare i cmdlet importati dal modulo. È inoltre possibile utilizzare i parametri Alias, Variable e Function per limitare altri membri importati da un modulo.

Con il secondo comando si utilizza il cmdlet Get-Module per ottenere l'oggetto che rappresenta il modulo BitsTransfer. La proprietà ExportedCmdlets consente di elencare tutti i cmdlet esportati dal modulo, anche quando non sono stati tutti importati.

Con il terzo comando si utilizza il parametro Module del cmdlet Get-Command per ottenere i comandi importati dal modulo BitsTransfer. I risultati confermano che sono stati importati solo i cmdlet Add-BitsTransfer e Get-BitsTransfer .

Esempio 6

C:\PS>import-module BitsTransfer -prefix PS -passthru

Name              : bitstransfer
Path              : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\bitstransfer\bitstransfer.psd1
Description       :
Guid              : 8fa5064b-8479-4c5c-86ea-0d311fe48875
Version           : 1.0.0.0
ModuleBase        : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\bitstransfer
ModuleType        : Manifest
PrivateData       :
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {[Add-BitsTransfer, Add-BitsTransfer], [Remove-BitsTransfer, Remove-BitsTransfer], [Complete-BitsTransfer, Complete-BitsTransfer]
                    , [Get-BitsTransfer, Get-BitsTransfer]...}
ExportedFunctions : {}
ExportedVariables : {}
NestedModules     : {Microsoft.BackgroundIntelligentTransfer.Management}

C:\PS> get-command -module bitstransfer

CommandType     Name                        Definition
-----------     ----                        ----------
Cmdlet          Add-PSBitsTransfer          Add-PSBitsTransfer [-BitsJob] <BitsJob[]> [-Source] <String[]> ...
Cmdlet          Complete-PSBitsTransfer     Complete-PSBitsTransfer [-BitsJob] <BitsJob[]> [-Verbose] [-Deb...
Cmdlet          Get-PSBitsTransfer          Get-PSBitsTransfer [[-Name] <String[]>] [-AllUsers] [-Verbose] ...
Cmdlet          Remove-PSBitsTransfer       Remove-PSBitsTransfer [-BitsJob] <BitsJob[]> [-Verbose] [-Debug...
Cmdlet          Resume-PSBitsTransfer       Resume-PSBitsTransfer [-BitsJob] <BitsJob[]> [-Asynchronous] [-...
Cmdlet          Set-PSBitsTransfer          Set-PSBitsTransfer [-BitsJob] <BitsJob[]> [-DisplayName <String...
Cmdlet          Start-PSBitsTransfer        Start-PSBitsTransfer [[-Source] <String[]>] [[-Destination] <St...
Cmdlet          Suspend-PSBitsTransfer      Suspend-PSBitsTransfer [-BitsJob] <BitsJob[]> [-Verbose] [-Debu...

Descrizione
-----------
Questi comandi consentono di importare il modulo BitsTransfer nella sessione corrente, di aggiungere un prefisso ai nomi dei membri e di visualizzare i nomi dei membri con prefisso.

Con il primo comando si utilizza il cmdlet Import-Module per importare il modulo BitsTransfer. Vengono utilizzati il parametro Prefix per aggiungere il prefisso PS a tutti i membri importati dal modulo e il parametro PassThru per restituire un oggetto modulo che rappresenta il modulo importato.

L'oggetto modulo restituito dal comando dispone di una proprietà ExportedCmdlets che elenca i membri esportati. Il prefisso non viene visualizzato nei nomi dei cmdlet perché viene applicato dopo l'esportazione dei membri (ma prima della loro importazione).

Con il secondo comando si utilizza il cmdlet Get-Command per ottenere i membri importati dal modulo e il parametro Module per specificare il modulo. L'output indica che il prefisso dei membri del modulo è stato aggiunto correttamente.

Il prefisso utilizzato si applica unicamente ai membri della sessione corrente. Il modulo non viene modificato.

Esempio 7

C:\PS>get-module -list | format-table -property name, moduletype -auto

Name          ModuleType
----          ----------
Show-Calendar     Script
BitsTransfer    Manifest
PSDiagnostics   Manifest
TestCmdlets       Script

C:\PS> $a = import-module -name Show-Calendar -asCustomObject

C:\PS> $a | get-member

   TypeName: System.Management.Automation.PSCustomObject

Name          MemberType   Definition
----          ----------   ----------
Equals        Method       bool Equals(System.Object obj)
GetHashCode   Method       int GetHashCode()
GetType       Method       type GetType()
ToString      Method       string ToString()
Show-Calendar ScriptMethod System.Object Show-Calendar();

C:\PS> $a."show-calendar"()

Descrizione
-----------
Con questi comandi viene illustrato come ottenere e utilizzare l'oggetto personalizzato restituito da Import-Module.

Gli oggetti personalizzati includono membri sintetici che rappresentano ciascuno dei membri del modulo importato. Ad esempio, i cmdlet e le funzioni di un modulo vengono convertiti in metodi script dell'oggetto personalizzato.

Gli oggetti personalizzati sono molto utili nell'utilizzo degli script e in situazioni in cui oggetti importati hanno lo stesso nome. L'utilizzo del metodo script di un oggetto equivale alla specifica del nome completo di un membro importato, incluso il nome di modulo.

Il parametro AsCustomObject può essere utilizzato solo con un modulo di script, pertanto la prima attività consiste nel determinare quale dei moduli disponibili è un modulo di script.

Il primo comando utilizza il cmdlet Get-Module per ottenere i moduli disponibili. Viene utilizzato un operatore pipeline (|) per passare gli oggetti modulo al cmdlet Format-Table, in cui vengono elencati i parametri Name e ModuleType di ogni modulo in una tabella.

Il secondo comando utilizza il cmdlet Import-Module per importare il modulo di script Show-Calendar e il parametro AsCustomObject per richiedere un oggetto personalizzato. L'oggetto personalizzato risultante viene salvato nella variabile $a.

Il terzo comando utilizza un operatore pipeline per inviare la variabile $a al cmdlet Get-Member, che consente di ottenere le proprietà e i metodi di PSCustomObject in $a. Nell'output viene visualizzato un metodo script Show-Calendar.

Nell'ultimo comando viene utilizzato il metodo script Show-Calendar. Il nome del metodo deve essere racchiuso tra virgolette, poiché include un trattino.

Esempio 8

C:\PS>import-module BitsTransfer

C:\PS> import-module BitsTransfer -force -prefix PS

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il parametro Force di Import-Module quando si importa nuovamente un modulo nella stessa sessione.

Con il primo comando si importa il modulo BitsTransfer. Con il secondo comando si importa nuovamente il modulo, utilizzando questa volta il parametro Prefix.

Il secondo comando include inoltre il parametro Force che rimuove il modulo e lo importa nuovamente. Senza questo parametro, la sessione includerebbe due copie di ciascun cmdlet BitsTransfer, uno con il nome standard e l'altro con il nome con prefisso.

Esempio 9

C:\PS>get-date

Saturday, September 12, 2009 6:47:04 PM

C:\PS> import-module TestModule

C:\PS> get-date
09255

C:\PS> get-command get-date | format-table -property commandtype, name, pssnapin, module -auto

CommandType  Name       pssnapin                       Module
-----------  ----       --------                       ------
   Function  Get-Date                                  TestModule
     Cmdlet  Get-Date   Microsoft.PowerShell.Utility

C:\PS> Microsoft.PowerShell.Utility\get-date

Saturday, September 12, 2009 6:33:23 PM

Descrizione
-----------
In questo esempio viene illustrato come eseguire i comandi nascosti da comandi importati.

Con il primo comando si esegue il cmdlet Get-Date fornito con Windows PowerShell. Viene restituito un oggetto DateTime con la data corrente.

Con il secondo comando si importa il modulo TestModule. Questo modulo include una funzione denominata Get-Date che restituisce la data giuliana.

Con il terzo comando si esegue nuovamente il comando Get-Date. Poiché le funzioni hanno la precedenza sui cmdlet, è stata eseguita la funzione Get-Date dal modulo TestModule, anziché il cmdlet Get-Date.

Con il quarto comando viene indicato che sono presenti due comandi Get-Date nella sessione, una funzione dal modulo TestModule e un cmdlet dallo snap-in Microsoft.PowerShell.Utility.

Con il quinto comando si esegue il cmdlet nascosto completandone il nome con il nome dello snap-in.

Per ulteriori informazioni sulla precedenza dei comandi in Windows PowerShell, vedere about_command_precedence.

Vedere anche

  • Get-Module
  • New-Module
  • Remove-Module
  • Export-ModuleMember
  • about_Modules


Import-PSSession

Importa comandi da un'altra sessione nella sessione corrente.

Sintassi

Import-PSSession [-Session] <PSSession> [[-CommandName] <string[]>] [[-FormatTypeName] <string[]>] [-AllowClobber] [-ArgumentList <Object[]>] [-CommandType {<Alias> | <Function> | <Filter> | <Cmdlet> | <ExternalScript> | <Application> | <Script> | <All>}] [-Module <string[]>] [-Prefix <string>] [<CommonParameters>]

Descrizione

Il cmdlet Import-PSSession importa comandi (cmdlet, funzioni e alias) da una sessione PSSession in un computer locale o remoto nella sessione corrente. È possibile importare qualsiasi comando trovato da Get-Command nella sessione PSSession.

Utilizzare un comando Import-PSSession per importare comandi da una shell personalizzata, ad esempio una shell di Microsoft Exchange Server, o da una sessione che include moduli e snap-in di Windows PowerShell o altri elementi che non presenti nella sessione corrente.

Per importare comandi, utilizzare per prima cosa il cmdlet New-PSSession per creare una sessione PSSession. Utilizzare quindi il cmdlet Import-PSSession per importare i comandi. Per impostazione predefinita, Import-PSSession importa tutti i comandi, ad eccezione di quelli con gli stessi nomi dei comandi nella sessione corrente. Per importare tutti i comandi, utilizzare il parametro AllowClobber.

È possibile utilizzare i comandi importati come qualsiasi comando della sessione. Quando si utilizza un comando importato, la parte importata del comando viene eseguita in modo implicito nella sessione da cui è stata importata. Tuttavia, le operazioni remote sono gestite totalmente da Windows PowerShell. Non è necessario conoscerle, ad eccezione del fatto che è necessario mantenere aperta la connessione all'altra sessione (PSSession). Se la si chiude, non sono più disponibili i comandi importati.

Poiché l'esecuzione dei comandi importati può richiedere più tempo rispetto a quella dei comandi locali, Import-PSSession aggiunge un parametro AsJob a ogni comando importato. Questo parametro consente di eseguire il comando come processo in background di Windows PowerShell. Per ulteriori informazioni, vedere about_Jobs.

Quando si utilizza Import-PSSession, Windows PowerShell aggiunge i comandi importati a un modulo temporaneo che esiste solo nella sessione dell'utente e restituisce un oggetto che rappresenta il modulo. Per creare un modulo permanente che può essere utilizzato nelle sessioni future, utilizzare il cmdlet Export-PSSession.

Il cmdlet Import-PSSession utilizza la funzionalità di comunicazione remota implicita di Windows PowerShell. Quando si importano comandi nella sessione corrente, essi vengono eseguiti in modo implicito nella sessione originale o in una sessione simile nel computer di origine.

Parametri

-AllowClobber

Importa i comandi specificati anche se hanno gli stessi nomi dei comandi della sessione corrente.

Se si importa un comando con lo stesso nome di un comando nella sessione corrente, il comando importato nasconde o sostituisce i comandi originali. Per ulteriori informazioni, vedere about_Command_Precedence.

Per impostazione predefinita, Import-PSSession non importa comandi con lo stesso nome dei comandi della sessione corrente.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ArgumentList <Object[]>

Importa la variante del comando risultante dall'utilizzo degli argomenti specificati (valori di parametro).

Ad esempio, per importare la variante del comando Get-Item nell'unità del certificato (Cert:) in PSSession in $s, digitare "import-pssession -session $s -command Get-Item -argumentlist cert:".

Obbligatorio? | false
Posizione? | named
Valore predefinito | All command in the PSSession, except for commands with the same names as commands in the current session.
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-CommandName <string[]>

Importa solo i comandi con i modelli di nome o i nomi specificati. È consentito l'utilizzo di caratteri jolly. Utilizzare "CommandName" o il relativo alias, "Name".

Per impostazione predefinita, Import-PSSession importa tutti i comandi dalla sessione, ad eccezione di quelli con gli stessi nomi dei comandi nella sessione corrente. In questo modo si evita che i comandi importati nascondano o sostituiscano comandi nella sessione. Per importare tutti i comandi, anche quelli che ne nascondono o sostituiscono altri, utilizzare il parametro AllowClobber.

Se si utilizza il parametro CommandName, i file di formattazione per i comandi non vengono importati a meno che non si utilizzi il parametro FormatTypeName. Analogamente, se si utilizza il parametro FormatTypeName, non viene importato alcun comando a meno che non si utilizzi il parametro CommandName.

Obbligatorio? | false
Posizione? | 3
Valore predefinito | All commands in the PSSession, except for commands with the same names as commands in the current session.
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-CommandType <CommandTypes>

Per ogni oggetto del comando importa solo i tipi specificati. Il valore predefinito è Cmdlet. Utilizzare "CommandType" o il relativo alias, "Type".

I valori validi sono:

-- Alias: alias Windows PowerShell della sessione remota.

-- All: cmdlet e funzioni della sessione remota.

-- Application: tutti i file non di Windows PowerShell nei percorsi elencati nella variabile di ambiente Path ($env:path) nella sessione remota, inclusi i file con estensione txt, exe e dll.

-- Cmdlet: cmdlet della sessione remota. Il valore predefinito è "Cmdlet".

-- ExternalScript: file con estensione ps1 nei percorsi elencati nella variabile di ambiente Path ($env:path) nella sessione remota.

-- Filter e Function: funzioni di Windows PowerShell della sessione remota.

-- Script: blocchi di script della sessione remota.

Obbligatorio? | false
Posizione? | named
Valore predefinito | All command in the PSSession, except for commands with the same names as commands in the current session.
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-FormatTypeName <string[]>

Importa le istruzioni di formattazione per i tipi Microsoft .NET Framework specificati. Immettere i nomi dei tipi. È consentito l'utilizzo di caratteri jolly.

Il valore di questo parametro deve essere il nome di un tipo restituito da un comando Get-FormatData nella sessione da cui vengono importati i comandi. Per ottenere tutti i dati di formattazione della sessione remota, digitare *.

Se il comando non include i parametri CommandName o FormatTypeName, Import-PSSession

importa le istruzioni di formattazione per tutti i tipi .NET Framework restituiti da un comando Get-FormatData nella sessione remota.

Se si utilizza il parametro FormatTypeName, non viene importato alcun comando a meno che non si utilizzi il parametro CommandName.

Analogamente, se si utilizza il parametro CommandName, i file di formattazione per i comandi non vengono importati a meno che non si utilizzi il parametro FormatTypeName.

Obbligatorio? | false
Posizione? | 4
Valore predefinito | Types in the System.Management.Automation namespace
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-Module <string[]>

Importa solo i comandi negli snap-in e nei moduli di Windows PowerShell specificati. Immettere i nomi degli snap-in e dei moduli. Non è consentito l'utilizzo di caratteri jolly.

Per ulteriori informazioni, vedere about_Pssnapins e Import-Module.

Obbligatorio? | false
Posizione? | named
Valore predefinito | All command in the PSSession, except for commands with the same names as commands in the current session.
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Prefix <string>

Aggiunge il prefisso specificato ai sostantivi nei nomi dei comandi importati.

Utilizzare questo parametro per evitare conflitti di nomi che possono verificarsi quando comandi diversi della sessione hanno lo stesso nome.

Ad esempio, se si specifica il prefisso "Remote" e si importa un cmdlet Get-Date, nella sessione il cmdlet viene indicato come Get-RemoteDate e non viene confuso con il cmdlet Get-Date originale.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Session <PSSession>

Specifica la sessione PSSession da cui vengono importati i cmdlet. Immettere una variabile che contiene un oggetto sessione o un comando che ottiene un oggetto sessione, ad esempio New-PSSession o Get-PSSession. È possibile specificare solo una sessione. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a questo cmdlet.
Output | System.Management.Automation.PSModuleInfo Import-PSSession restituisce lo stesso oggetto modulo restituito da New-Module e Get-Module. Tuttavia, il modulo importato è temporaneo ed esiste solo nella sessione corrente. Per creare un modulo permanente su disco, utilizzare il cmdlet Export-PSSession.

Note

Import-PSSession si basa sull'infrastruttura remota di Windows PowerShell. Per utilizzare questo cmdlet, è necessario configurare il computer per la comunicazione remota WS-Management. Per ulteriori informazioni, vedere about_Remote e about_Remote_Requirements.

Non è possibile utilizzare Import-PSSession per importare variabili o provider di Windows PowerShell.

Quando si importano comandi con gli stessi nomi dei comandi nella sessione corrente, i comandi importati possono nascondere alias, funzioni e cmdlet e sostituire funzioni e variabili nella sessione. Per ulteriori informazioni, vedere about_Command_Precedence.

Import-PSSession converte tutti i comandi in funzioni prima di importarli. Di conseguenza, i comandi importati hanno un comportamento leggermente diverso da quello che avrebbero se fosse stato mantenuto il tipo di comando originale. Ad esempio, se si importano un cmdlet da una sessione PSSession e un cmdlet con lo stesso nome da un modulo o uno snap-in, il cmdlet importato dalla sessione PSSession viene sempre eseguito per impostazione predefinita perché le funzioni hanno la precedenza sui cmdlet. Viceversa, se si importa un alias in una sessione che dispone di un alias con lo stesso nome, viene sempre utilizzato l'alias originale perché gli alias hanno la precedenza sulle funzioni. Per ulteriori informazioni, vedere about_Command_Precedence.

Import-PSSession utilizza il cmdlet Write-Progress per visualizzare l'avanzamento del comando. Durante l'esecuzione del comando, è possibile osservare l'indicatore di stato.

Per trovare i comandi da importare, Import-PSSession utilizza il cmdlet Invoke-Command per eseguire un comando Get-Command nella sessione PSSession. Per ottenere dati di formattazione per i comandi, utilizza il cmdlet Get-FormatData. Quando si esegue un comando Import-PSSession, è possibile che vengano visualizzati messaggi di errore da Invoke-Command, Get-Command e Get-FormatData. Inoltre, Import-PSSession non può importare comandi da una sessione PSSession che non include i cmdlet Get-Command, Get-FormatData, Select-Object e Get-Help.

I comandi importati sono soggetti alle stesse limitazioni degli altri comandi remoti, inclusa l'impossibilità di avviare un programma con interfaccia utente, ad esempio Blocco note.

Poiché i profili di Windows PowerShell non vengono eseguiti nelle sessioni PSSession, i comandi aggiunti da un profilo a una sessione non sono disponibili per Import-PSSession. Per importare comandi da un profilo, utilizzare un comando Invoke-Command per eseguire manualmente il profilo nella sessione PSSession prima di importare i comandi.

Il modulo temporaneo creato da Import-PSSession potrebbe includere un file di formattazione, anche se il comando non importa dati di formattazione. Se il comando non importa dati di formattazione, qualsiasi file di formattazione creato non conterrà dati di formattazione.

Per utilizzare Import-PSSession, il criterio di esecuzione nella sessione corrente non può essere Restricted o AllSigned, poiché il modulo creato da Import-PSSession contiene file di script non firmati non consentiti da tali criteri. Per utilizzare Import-PSSession senza modificare il criterio di esecuzione per il computer locale, utilizzare il parametro Scope di Set-ExecutionPolicy per impostare un criterio di esecuzione meno restrittivo per un singolo processo.

Esempio 1

C:\PS>$s = new-pssession -computername Server01

C:\PS> import-pssession -session $s

Descrizione
-----------
Con questo comando vengono importati nella sessione corrente tutti i comandi da una sessione PSSession del computer Server01, ad eccezione dei comandi con gli stessi nomi dei comandi nella sessione corrente.

Poiché questo comando non utilizza il parametro CommandName, importa anche tutti i dati di formattazione obbligatori per i comandi importati.

Esempio 2

C:\PS>$s = new-pssession https://ps.testlabs.com/powershell

C:\PS> import-pssession -session $s -commandname *-test -formatTypeName *

C:\PS> new-test -name test1

C:\PS> get-test test1 | run-test

Descrizione
-----------
Con questi comandi vengono importati i comandi il cui nome termina con "-test" da una sessione PSSession nella sessione locale, quindi viene illustrato come utilizzare un cmdlet importato.

Il primo comando utilizza il cmdlet New-PSSession per creare una sessione PSSession. La sessione PSSession viene quindi salvata nella variabile $s.

Il secondo comando utilizza il cmdlet Import-PSSession per importare comandi dalla sessione PSSession in $s nella sessione corrente. Utilizza il parametro CommandName per specificare comandi con il sostantivo Test e il parametro FormatTypeName per importare i dati di formattazione per i comandi Test.

Il terzo e il quarto comando utilizzando i comandi importati nella sessione corrente. Poiché i comandi importati vengono realmente aggiunti alla sessione corrente, si utilizza la sintassi locale per la loro esecuzione. Non è necessario utilizzare il cmdlet Invoke-Command per eseguire un comando importato.

Esempio 3

C:\PS>$s1 = new-pssession -computername s1

C:\PS> $s2 = new-pssession -computername s2

C:\PS> import-pssession -session s1 -type cmdlet -name New-Test, Get-Test -FormatTypeName *

C:\PS> import-pssession -session s2 -type cmdlet -name Set-Test -FormatTypeName *

C:\PS> new-test Test1 | set-test -runtype full

Descrizione
-----------
In questo esempio viene illustrato che è possibile utilizzare i cmdlet importati come quelli locali.

Con questi comandi vengono importati i cmdlet New-Test e Get-Test da una sessione PSSession del computer Server01 e il cmdlet Set-Test da una sessione PSSession del computer Server02.

Anche se i cmdlet sono stati importati da sessioni PSSession diverse, è possibile reindirizzare un oggetto da un cmdlet a un altro senza errori.

Esempio 4

C:\PS>$s = new-pssession -computername Server01

C:\PS> import-pssession -session $s -commandname *-test* -formattypename *

C:\PS> $batch = new-test -name Batch -asjob

C:\PS> receive-job $batch

Descrizione
-----------
In questo esempio viene illustrato come eseguire un comando importato come processo in background.

Poiché l'esecuzione dei comandi importati può richiedere più tempo rispetto a quella dei comandi locali, Import-PSSession aggiunge un parametro AsJob a ogni comando importato. Il parametro AsJob consente di eseguire il comando come processo in background.

Con il primo comando viene creata una sessione PSSession nel computer Server01 e l'oggetto PSSession viene salvato nella variabile $s.

Nel secondo comando viene utilizzato Import-PSSession per importare i cmdlet Test dalla sessione PSSession in $s nella sessione corrente.

Nel terzo comando viene utilizzato il parametro AsJob del cmdlet New-Test importato per eseguire un comando New-Test come processo in background. Il comando salva l'oggetto processo restituito da New-Test nella variabile $batch.

Nel quarto comando viene utilizzato il cmdlet Receive-Job per ottenere i risultati del processo nella variabile $batch.

Esempio 5

C:\PS>$s = new-pssession -comp Server01

C:\PS> invoke-command -session $s {import-module TestManagement}

C:\PS> import-pssession -session $s -module TestManagement

Descrizione
-----------
In questo esempio viene illustrato come importare i cmdlet e le funzioni da un modulo di Windows PowerShell in un computer remoto nella sessione corrente.

Con il primo comando una sessione PSSession viene creata nel computer Server01 e salvata nella variabile $s.

Nel secondo comando viene utilizzato il cmdlet Invoke-Command per eseguire un comando Import-Module nella sessione PSSession in $s.

In genere, il modulo verrebbe aggiunto a tutte le sessioni da un comando Import-Module in un profilo di Windows PowerShell, ma nelle sessioni PSSession non sono in esecuzione i profili.

Nel terzo comando viene utilizzato il parametro Module di Import-PSSession per importare i cmdlet e le funzioni del modulo nella sessione corrente.

Esempio 6

C:\PS>import-pssession $s -CommandName Get-Date, SearchHelp  -formatTypeName * -AllowClobber

Name              : tmp_79468106-4e1d-4d90-af97-1154f9317239_tcw1zunz.ttf
Path              : C:\Users\User01\AppData\Local\Temp\tmp_79468106-4e1d-4d90-af97-1154f9317239_tcw1zunz.ttf\tmp_79468106-4e1d-4d90-af97-1154f9317239_
                    tcw1zunz.ttf.psm1
Description       : Implicit remoting for http://server01.corp.fabrikam.com/wsman
Guid              : 79468106-4e1d-4d90-af97-1154f9317239
Version           : 1.0
ModuleBase        : C:\Users\User01\AppData\Local\Temp\tmp_79468106-4e1d-4d90-af97-1154f9317239_tcw1zunz.ttf
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Get-Date, Get-Date], [SearchHelp, SearchHelp]}
ExportedVariables : {}
NestedModules     : {}

Descrizione
-----------
In questo esempio viene illustrato che Import-PSSession crea un modulo in un file temporaneo su disco. Viene inoltre illustrato che tutti i comandi vengono convertiti in funzioni prima di essere importati nella sessione corrente.

Il comando utilizza il cmdlet Import-PSSession per importare un cmdlet Get-Date e una funzione SearchHelp nella sessione corrente.

Il cmdlet Import-PSSession restituisce un oggetto PSModuleInfo che rappresenta il modulo temporaneo. Il valore della proprietà Path indica che Import-PSSession ha creato un file di modulo script (con estensione psm1) in un percorso temporaneo. La proprietà ExportedFunctions indica che il cmdlet Get-Date e la funzione SearchHelp sono stati entrambi importati come funzioni.

Esempio 7

C:\PS>import-pssession $s -CommandName Get-Date -formatTypeName * -AllowClobber

C:\PS> get-command get-date

CommandType   Name       Definition
-----------   ----       ----------
Function      Get-Date   ...
Cmdlet        Get-Date   Get-Date [[-Date] <DateTime>] [-Year <Int32>] [-Month <Int32>]

C:\PS> Get-Date
09074

C:\PS> (get-command -type cmdlet -name get-date).pssnapin.name
Microsoft.PowerShell.Utility

C:\PS> Microsoft.PowerShell.Utility\get-date

Sunday, March 15, 2009 2:08:26 PM

Descrizione
-----------
In questo esempio viene illustrato come eseguire un comando nascosto da un comando importato.

Il primo comando importa un cmdlet Get-Date dalla sessione PSSession nella variabile $s. Poiché la sessione corrente include un cmdlet Get-Date, il parametro AllowClobber è obbligatorio nel comando.

Il secondo comando utilizza il cmdlet Get-Command per ottenere i comandi Get-Date nella sessione corrente. Nell'output viene illustrato che la sessione include il cmdlet Get-Date originale e una funzione Get-Date. La funzione Get-Date esegue il cmdlet Get-Date importato nella sessione PSSession in $s.

Il terzo comando esegue un comando Get-Date. Poiché le funzioni hanno la precedenza sui cmdlet, in Windows PowerShell viene eseguita la funzione Get-Date importata che restituisce una data giuliana.

Il quarto e il quinto comando mostrano come utilizzare un nome completo per eseguire un comando nascosto da un comando importato.

Il quarto comando ottiene il nome dello snap-in di Windows PowerShell che ha aggiunto il cmdlet Get-Date alla sessione corrente.

Il quinto comando utilizza il nome completo dello snap-in del cmdlet Get-Date per eseguire un comando Get-Date.

Per ulteriori informazioni sulla precedenza dei comandi e sui comandi nascosti, vedere about_Command_Precedence.

Esempio 8

C:\PS>import-pssession -session $s -commandName *Item* -AllowClobber

Descrizione
-----------
Questo comando importa comandi i cui nomi includono "Item" dalla sessione PSSession in $s. Poiché il comando include il parametro CommandName ma non il parametro FormatTypeData, viene importato solo il comando.

Utilizzare questo comando quando si utilizza Import-PSSession per eseguire un comando in un computer remoto e si dispone già dei dati di formattazione per il comando nella sessione corrente.

Esempio 9

C:\PS>$m = import-pssession -session $s -CommandName *bits* -formattypename *bits*

C:\PS> get-command -module $m

CommandType     Name
-----------     ----
Function        Add-BitsFile
Function        Complete-BitsTransfer
Function        Get-BitsTransfer
Function        Remove-BitsTransfer
Function        Resume-BitsTransfer
Function        Set-BitsTransfer
Function        Start-BitsTransfer
Function        Suspend-BitsTransfer

Descrizione
-----------
Questo comando illustra come utilizzare il parametro Module di Get-Command per individuare i comandi importati nella sessione da un comando Import-PSSession.

Il primo comando utilizza il cmdlet Import-PSSession per importare comandi il cui nome include "bits" dalla sessione PSSession nella variabile $s. Il comando Import-PSSession restituisce un modulo temporaneo e salva il modulo nella variabile $m.

Il secondo comando utilizza il cmdlet Get-Command per ottenere i comandi esportati dal modulo nella variabile $m.

Il parametro Module accetta un valore stringa, progettato per il nome del modulo. Quando si invia un oggetto modulo, tuttavia, su di esso in Windows PowerShell viene utilizzato il metodo ToString che restituisce il nome del modulo.

Il comando Get-Command equivale a "get-command $m.name".

Vedere anche

  • about_Command_Precedence
  • New-PSSession
  • Export-PSSession
  • about_Jobs
  • about_PSSessions


Invoke-Command

Esegue i comandi nei computer locali e remoti.

Sintassi

Invoke-Command [-ScriptBlock] <scriptblock> [[-ComputerName] <string[]>] [-ApplicationName <string>] [-AsJob] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-HideComputerName] [-JobName <string>] [-Port <int>] [-SessionOption <PSSessionOption>] [-ThrottleLimit <int>] [-UseSSL] [-ArgumentList <Object[]>] [-InputObject <psobject>] [<CommonParameters>]

Invoke-Command [-FilePath] <string> [[-ComputerName] <string[]>] [-ApplicationName <string>] [-AsJob] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-ConfigurationName <string>] [-Credential <PSCredential>] [-HideComputerName] [-JobName <string>] [-Port <int>] [-SessionOption <PSSessionOption>] [-ThrottleLimit <int>] [-UseSSL] [-ArgumentList <Object[]>] [-InputObject <psobject>] [<CommonParameters>]

Invoke-Command [-FilePath] <string> [[-Session] <PSSession[]>] [-AsJob] [-HideComputerName] [-JobName <string>] [-ThrottleLimit <int>] [-ArgumentList <Object[]>] [-InputObject <psobject>] [<CommonParameters>]

Invoke-Command [-FilePath] <string> [[-ConnectionURI] <Uri[]>] [-AllowRedirection] [-AsJob] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-ConfigurationName <string>] [-Credential <PSCredential>] [-HideComputerName] [-JobName <string>] [-SessionOption <PSSessionOption>] [-ThrottleLimit <int>] [-ArgumentList <Object[]>] [-InputObject <psobject>] [<CommonParameters>]

Invoke-Command [-ScriptBlock] <scriptblock> [-ArgumentList <Object[]>] [-InputObject <psobject>] [<CommonParameters>]

Invoke-Command [-ScriptBlock] <scriptblock> [[-Session] <PSSession[]>] [-AsJob] [-HideComputerName] [-JobName <string>] [-ThrottleLimit <int>] [-ArgumentList <Object[]>] [-InputObject <psobject>] [<CommonParameters>]

Invoke-Command [-ScriptBlock] <scriptblock> [[-ConnectionURI] <Uri[]>] [-AllowRedirection] [-AsJob] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-HideComputerName] [-JobName <string>] [-SessionOption <PSSessionOption>] [-ThrottleLimit <int>] [-ArgumentList <Object[]>] [-InputObject <psobject>] [<CommonParameters>]

Descrizione

Il cmdlet Invoke-Command esegue comandi in un computer locale o remoto e restituisce tutto l'output dei comandi, compresi gli errori. Con un solo comando Invoke-Command è possibile eseguire comandi in più computer.

Per eseguire un solo comando in un computer remoto, utilizzare il parametro ComputerName. Per eseguire una serie di comandi correlati che condividono dati, creare una sessione PSSession (connessione permanente) nel computer remoto, quindi utilizzare il parametro Session di Invoke-Command per eseguire il comando nella sessione PSSession.

È inoltre possibile utilizzare Invoke-Command in un computer locale per valutare o eseguire una stringa in un blocco di script come comando. Windows PowerShell converte il blocco di script in un comando, il quale viene immediatamente eseguito nell'ambito corrente anziché ripetere a video la stringa nella riga di comando.

Prima di utilizzare Invoke-Command per eseguire comandi in un computer remoto, vedere l'argomento about_Remote.

Parametri

-AllowRedirection

Consente il reindirizzamento di questa connessione a un URI alternativo.

Quando si utilizza il parametro ConnectionURI, la destinazione remota può restituire un'istruzione di reindirizzamento a un altro URI. Per impostazione predefinita in Windows PowerShell le connessioni non vengono reindirizzate, ma è possibile utilizzare il parametro AllowRedirection per consentire il reindirizzamento della connessione.

È inoltre possibile limitare il numero di volte in cui la connessione viene reindirizzata impostando la proprietà MaximumConnectionRedirectionCount della variabile di preferenza $PSSessionOption o la proprietà MaximumConnectionRedirectionCount del valore del parametro SessionOption. Il valore predefinito è 5. Per ulteriori informazioni, vedere la descrizione del parametro SessionOption e l'argomento della Guida relativo al cmdlet New-PSSessionOption.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ApplicationName <string>

Specifica il segmento del nome dell'applicazione dell'URI di connessione. Utilizzare questo parametro per specificare il nome dell'applicazione quando non si utilizza il parametro ConnectionURI nel comando.

Il valore predefinito è il valore della variabile di preferenza $PSSessionApplicationName nel computer locale. Se questa variabile di preferenza non è definita, il valore predefinito è WSMAN. Questo valore è appropriato per la maggior parte degli utilizzi. Per ulteriori informazioni, vedere about_Preference_Variables.

Il servizio Gestione remota Windows utilizza il nome dell'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.

Obbligatorio? | false
Posizione? | named
Valore predefinito | WSMAN
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-ArgumentList <Object[]>

Fornisce i valori delle variabili locali nel comando. Le variabili nel comando vengono sostituite da questi valori prima dell'esecuzione del comando nel computer remoto. Immettere i valori in un elenco separato da virgole. I valori sono associati alle variabili nell'ordine in cui sono elencati. L'alias per ArgumentList è "Args".

I valori in ArgumentList possono essere valori effettivi, ad esempio "1024", oppure riferimenti a variabili locali, ad esempio "$max".

Per utilizzare variabili locali in un comando, utilizzare il formato di comando seguente:

{param($<name1>[, $<name2>]...) <command-with-local-variables>} -ArgumentList <value | $local-variable>

Nella parola chiave "param" sono elencate le variabili locali utilizzate nel comando. Il parametro ArgumentList fornisce i valori delle variabili, nell'ordine in cui sono elencati.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-AsJob

Esegue il comando come processo in background in un computer remoto. Utilizzare questo parametro per eseguire comandi il cui completamento richiede molto tempo.

Quando si utilizza AsJob, il comando restituisce un oggetto che rappresenta il processo, quindi visualizza il prompt dei comandi. È possibile continuare a utilizzare la sessione durante il completamento del processo. Per gestire il processo, utilizzare i cmdlet Job. Per ottenere i risultati del processo, utilizzare Receive-Job.

Il parametro AsJob è simile all'utilizzo di Invoke-Command per eseguire un comando Start-Job in remoto. Tuttavia, con AsJob il processo viene creato nel computer locale, anche se viene eseguito in un computer remoto, e i risultati del processo remoto vengono automaticamente restituiti nel computer locale.

Per ulteriori informazioni sui processi in background di Windows PowerShell, vedere about_Jobs e about_Remote_Jobs.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Authentication <AuthenticationMechanism>

Specifica il meccanismo utilizzato per autenticare le credenziali dell'utente. I valori validi sono Default, Basic, Credssp, Digest, Kerberos, Negotiate e NegotiateWithImplicitCredential. Il valore predefinito è Default.

L'autenticazione CredSSP è disponibile unicamente in Windows Vista, Windows Server 2008 e nelle versioni successive di Windows.

Per informazioni sui valori di questo parametro, vedere la descrizione dell'enumerazione System.Management.Automation.Runspaces.AuthenticationMechanism in MSDN.

ATTENZIONE: l'autenticazione CredSSP (Credential Security Service Provider), che prevede il passaggio delle credenziali dell'utente a un computer remoto per l'autenticazione, è progettata per i comandi che richiedono l'autenticazione su più di una risorsa, ad esempio l'accesso a una condivisione di rete remota. Questo meccanismo aumenta il rischio per la sicurezza dell'operazione remota. Se il computer remoto è compromesso, è possibile utilizzare le credenziali passate a tale computer per controllare la sessione di rete.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Default
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-CertificateThumbprint <string>

Specifica il certificato di chiave pubblica digitale (X509) di un account utente con autorizzazione per l'esecuzione di questa azione. Immettere l'identificazione digitale del certificato.

I certificati vengono utilizzati nell'autenticazione basata su certificati client. Possono essere mappati solo agli account utente locali; non funzionano con gli account di dominio.

Per ottenere un'identificazione digitale del certificato, utilizzare i comandi Get-Item o Get-ChildItem nell'unità Cert: di Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string[]>

Specifica i computer in cui viene eseguito il comando. Il valore predefinito è il computer locale.

Quando si utilizza il parametro ComputerName, in Windows PowerShell viene creata una connessione temporanea utilizzata solo per eseguire il comando specificato e quindi chiusa. Se è necessaria una connessione permanente, utilizzare il parametro Session.

Digitare il nome NETBIOS, l'indirizzo IP o il nome di dominio completo di uno o più computer in un elenco separato da virgole. Per specificare il computer locale, digitare il nome del computer, "localhost" o un punto (.).

Per utilizzare un indirizzo IP nel valore del parametro ComputerName, il comando deve includere il parametro Credential. È inoltre necessario configurare il computer per il trasporto HTTPS o includere l'indirizzo IP del computer remoto nell'elenco di host attendibili (TrustedHosts) di Gestione remota Windows nel computer locale. Per istruzioni relative all'aggiunta di un nome di computer all'elenco di host attendibili (TrustedHosts), vedere "Come aggiungere un computer all'elenco di host attendibili" in about_Remote_Troubleshooting.

Nota: in Windows Vista e nelle versioni successive di Windows per includere il computer locale nel valore del parametro ComputerName, è necessario aprire Windows PowerShell con l'opzione "Esegui come amministratore".

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-ConfigurationName <string>

Specifica la configurazione di sessione utilizzata per la nuova sessione PSSession.

Immettere un nome di configurazione o l'URI di risorsa completo per una configurazione di sessione. Se si specifica unicamente il nome di configurazione, viene anteposto l'URI di schema seguente: http://schemas.microsoft.com/powershell.

La configurazione di sessione per una sessione si trova nel computer remoto. Se la configurazione di sessione specificata non esiste nel computer remoto, il comando ha esito negativo.

Il valore predefinito è il valore della variabile di preferenza $PSSessionConfigurationName nel computer locale. Se questa variabile di preferenza non è impostata, l'impostazione predefinita è Microsoft.PowerShell. Per ulteriori informazioni, vedere about_Preference_Variables.

Obbligatorio? | false
Posizione? | named
Valore predefinito | http://Schemas.Microsoft.com/PowerShell/Microsoft.PowerShell
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-ConnectionURI <Uri[]>

Specifica un URI (Uniform Resource Identifier) che definisce l'endpoint della connessione. L'URI deve essere completo.

Il formato di questa stringa è:

<Trasporto>://<NomeComputer>:<Porta>/<NomeApplicazione>

Il valore predefinito è:

http://localhost:80/WSMAN

I valori validi per il segmento Trasport dell'URI sono HTTP e HTTPS. Se non si specifica ConnectionURI, è possibile utilizzare i parametri UseSSL, ComputerName, Port e ApplicationName per specificare i valori URI.

Se il computer di destinazione reindirizza la connessione a un URI diverso, in Windows PowerShell viene impedito il reindirizzamento a meno che non si utilizzi il parametro AllowRedirection nel comando.

Obbligatorio? | false
Posizione? | 1
Valore predefinito | http://localhost:80/wsman
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere una variabile che contenga un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Quando si digita un nome utente, viene richiesta una password.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-FilePath <string>

Esegue lo script locale specificato in uno o più computer remoti. Immettere il percorso e il nome file dello script oppure reindirizzare un percorso di script a Invoke-Command. Lo script deve trovarsi nel computer locale o in una directory accessibile dal computer locale. Utilizzare il parametro ArgumentList per specificare i valori dei parametri nello script.

Quando si utilizza questo parametro, in Windows PowerShell il contenuto del file di script specificato viene convertito in un blocco di script, che viene trasmesso al computer remoto e successivamente eseguito su tale computer.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-HideComputerName

Omette il nome del computer di ogni oggetto dalla visualizzazione dell'output. Per impostazione predefinita, viene visualizzato il nome del computer che ha generato l'oggetto.

Questo parametro interessa solo la visualizzazione dell'output. L'oggetto non viene modificato.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica l'input del comando. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Durante l'utilizzo di InputObject, utilizzare la variabile automatica $input nel valore del parametro ScriptBlock per rappresentare gli oggetti di input.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-JobName <string>

Specifica un nome descrittivo per il processo in background. Per impostazione predefinita i processi sono denominati "Job<n>", dove <n> è un numero ordinale. Questo parametro è valido solo con il parametro AsJob.

Se si utilizza il parametro JobName in un comando, il comando viene eseguito come processo e Invoke-Command restituisce un oggetto processo, anche se il parametro AsJob non viene incluso nel comando.

Per ulteriori informazioni sui processi in background di Windows PowerShell, vedere about_Jobs.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Job<n>
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Port <int>

Specifica la porta di rete nel computer remoto utilizzato per questo comando. Il valore predefinito è la porta 80 (porta HTTP).

Prima di utilizzare una porta alternativa, è necessario configurare il listener WinRM nel computer remoto affinché resti in ascolto su tale porta. Per configurare il listener, digitare i due comandi seguenti al prompt di Windows PowerShell:

remove-item -path wsman:\Localhost\listener\listener* -recurse

new-item -path wsman:\Localhost\listener -Transport http -Address * -port <numero-porta>

Non utilizzare il parametro Port a meno che non sia necessario. Il parametro Port impostato nel comando si applica a tutti i computer o a tutte le sessioni in cui il comando è in esecuzione. Un'impostazione di porta alternativa potrebbe impedire l'esecuzione del comando in tutti i computer.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ScriptBlock <scriptblock>

Specifica i comandi da eseguire. Racchiudere i comandi tra parentesi graffe ( { } ) per creare un blocco di script. Questo parametro è obbligatorio.

Per impostazione predefinita, qualsiasi variabile nel comando verrà valutata nel computer remoto. Per includere variabili locali nel comando, utilizzare il parametro ArgumentList.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Session <PSSession[]>

Esegue il comando nelle sessioni di Windows PowerShell specificate (PSSession). Immettere una variabile che contiene le sessioni PSSession o un comando che consente di creare o ottenere tali sessioni, ad esempio New-PSSession o Get-PSSession.

Quando si crea una sessione PSSession, Windows PowerShell stabilisce una connessione permanente al computer remoto. Utilizzare una sessione PSSession per eseguire una serie di comandi correlati che condividono dati. Per eseguire un solo comando o una serie di comandi non correlati, utilizzare il parametro ComputerName.

Per creare una sessione PSSession, utilizzare il cmdlet New-PSSession. Per ulteriori informazioni, vedere about_PSSessions.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-SessionOption <PSSessionOption>

Imposta opzioni avanzate per la sessione. Immettere un oggetto SessionOption creato utilizzando il cmdlet New-PSSessionOption.

I valori predefiniti delle opzioni sono determinati dal valore della variabile di preferenza $PSSessionOption, se impostato. In caso contrario nella sessione vengono utilizzate le impostazioni predefinite del sistema.

Per una descrizione delle opzioni di sessione, inclusi i valori predefiniti, vedere l'argomento della Guida per il cmdlet New-PSSessionOption. Per informazioni sulla variabile di preferenza $PSSessionOption, vedere about_Preference_Variables.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ThrottleLimit <int>

Specifica il numero massimo di connessioni simultanee che è possibile stabilire per eseguire questo comando. Se si omette questo parametro o si immette un valore pari a 0, viene utilizzato il valore predefinito 32.

Il limite di velocità si applica solo al comando corrente, non alla sessione o al computer.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 32
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseSSL

Utilizza il protocollo SSL (Secure Sockets Layer) per stabilire una connessione al computer remoto. Per impostazione predefinita, SSL non viene utilizzato.

WS-Management consente di crittografare tutto il contenuto di Windows PowerShell trasmesso in rete. UseSSL consente di inviare i dati con una protezione aggiuntiva mediante il protocollo HTTPS anziché HTTP.

Se si utilizza questo parametro, ma SSL non è disponibile sulla porta utilizzata per il comando, il comando ha esito negativo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.ScriptBlock È possibile reindirizzare un comando in un blocco di script a Invoke-Command. Utilizzare la variabile automatica $input per rappresentare gli oggetti di input nel comando.
Output | System.Management.Automation.PSRemotingJob oppure l'output del comando richiamato Quando si utilizza il parametro AsJob, Invoke-Command restituisce un oggetto processo. In caso contrario, restituisce l'output del comando richiamato (valore del parametro ScriptBlock).

Note

-- In Windows Vista e nelle versioni successive di Windows per utilizzare il parametro ComputerName di Invoke-Command per l'esecuzione di un comando nel computer locale, è necessario aprire Windows PowerShell con l'opzione "Esegui come amministratore".

-- Quando si eseguono comandi in più computer, Windows PowerShell stabilisce la connessione ai computer nell'ordine in cui vengono visualizzati nell'elenco. Tuttavia, l'output dei comandi viene visualizzato nell'ordine in cui viene ricevuto dai computer remoti che potrebbe essere diverso.

-- Gli errori derivanti dal comando eseguito da Invoke-Command sono inclusi nei risultati del comando. Gli errori che sarebbero considerati fatali in un comando locale vengono considerati errori non fatali in un comando remoto. Questa strategia garantisce che gli errori fatali in un computer non causino l'arresto dell'esecuzione del comando in tutti i computer in cui è in corso. Questa procedura viene utilizzata anche quando un comando remoto viene eseguito in un solo computer.

-- Se il computer remoto non fa parte di un dominio considerato attendibile dal computer locale, il computer potrebbe non essere in grado di autenticare le credenziali dell'utente. Per aggiungere il computer remoto all'elenco di host attendibili in WS-Management, utilizzare il comando seguente nel provider WSMAN, dove <Nome-Computer-Remoto> è il nome del computer remoto:

set-item -path wsman:\Localhost\Client\TrustedHosts -value <Nome-Computer-Remoto>.

Esempio 1

C:\PS>invoke-command -filepath c:\scripts\test.ps1 -computerName Server01

Disks: C:, D:, E:
Status: Warning, Normal, Normal

Descrizione
-----------
Con questo comando si esegue lo script Test.ps1 nel computer Server01.

Con il comando si utilizza il parametro FilePath per specificare uno script che si trova nel computer locale. Lo script viene eseguito nel computer remoto e i risultati vengono restituiti al computer locale.

Esempio 2

C:\PS>invoke-command -computername server01 -credential domain01\user01 -scriptblock {get-culture}

Descrizione
-----------
Questo comando esegue il comando Get-Culture nel computer remoto Server01.

Vengono utilizzati il parametro ComputerName per specificare il nome del computer e il parametro Credential per eseguire il comando nel contesto di sicurezza di "Dominio01\Utente01", un utente con autorizzazione per l'esecuzione dei comandi. Viene utilizzato il parametro ScriptBlock per specificare il comando da eseguire nel computer remoto.

In risposta, viene visualizzata una finestra di dialogo di Windows PowerShell in cui vengono richiesti la password e un metodo di autenticazione per l'account Utente01. Successivamente, il comando viene eseguito nel computer Server01 e viene restituito il risultato.

Esempio 3

C:\PS>$s = new-pssession -computername server02 -credential domain01\user01

C:\PS> invoke-command -session $s -scriptblock {get-culture}

Descrizione
-----------
In questo esempio viene eseguito lo stesso comando "Get-Culture" in una sessione (connessione permanente) nel computer remoto Server02. In genere, viene creata una sessione solo quando si esegue una serie di comandi nel computer remoto.

Il primo comando utilizza il cmdlet New-PSSession per creare una sessione nel computer remoto Server02. La sessione viene quindi salvata nella variabile $s.

Il secondo comando utilizza il cmdlet Invoke-Command per eseguire il comando Get-Culture in Server02. Viene utilizzato il parametro Session per specificare la sessione salvata nella variabile $s.

In risposta, in Windows PowerShell il comando viene eseguito nella sessione nel computer Server02.

Esempio 4

C:\PS>invoke-command -computername Server02 -scriptblock {$p = get-process powershell}

C:\PS> invoke-command -computername Server02 -scriptblock {$p.virtualmemorysize}
C:\PS>

C:\PS> $s = new-pssession -computername Server02
C:\PS> invoke-command -session $s -scriptblock {$p = get-process powershell}
C:\PS> invoke-command -session $s -scriptblock {$p.virtualmemorysize}
17930240

Descrizione
-----------
In questo esempio vengono confrontati gli effetti dell'utilizzo dei parametri ComputerName e Session di Invoke-Command. Viene illustrato come utilizzare una sessione per eseguire una serie di comandi che condividono gli stessi dati.

Nei primi due comandi viene utilizzato il parametro ComputerName di Invoke-Command per eseguire comandi sul computer remoto Server02. Il primo comando utilizza il comando Get-Process per ottenere il processo di PowerShell nel computer remoto e salvarlo nella variabile $p. Il secondo comando consente di ottenere il valore della proprietà VirtualMemorySize del processo di PowerShell.

Il primo comando ha esito positivo. Il secondo, invece, ha esito negativo, poiché quando si utilizza il parametro ComputerName in Windows PowerShell viene creata una connessione solo per l'esecuzione del comando. Quindi, chiude la connessione quando il comando è completo. La variabile $p è stata creata in una connessione, ma non esiste nella connessione creata per il secondo comando.

Il problema viene risolto creando una sessione (connessione permanente) nel computer remoto ed eseguendo entrambi i comandi correlati nella stessa sessione.

Il terzo comando utilizza il cmdlet New-PSSession per creare una sessione nel computer Server02. La sessione viene quindi salvata nella variabile $s. Nel quarto e nel quinto comando la serie di comandi utilizzata nel primo set viene ripetuta, ma in questo caso nel comando Invoke-Command viene utilizzato il parametro Session per eseguire entrambi i comandi nella stessa sessione.

In questo caso, poiché entrambi i comandi vengono eseguiti nella stessa sessione, i comandi hanno esito positivo e il valore di $p rimane attivo nella sessione $s per essere utilizzato successivamente.

Esempio 5

C:\PS>$command = { get-eventlog -log "windows powershell" | where {$_.message -like "*certificate*"} }

C:\PS> invoke-command -computername S1, S2 -scriptblock $command

Descrizione
-----------
In questo esempio viene illustrato come immettere un comando salvato in una variabile locale.

Quando l'intero comando viene salvato in una variabile locale, è possibile specificare la variabile come valore del parametro ScriptBlock. Non è necessario utilizzare la parola chiave "param" o la variabile ArgumentList per inviare il valore della variabile locale.

Con il primo comando si salva un comando Get-Eventlog nella variabile $command. Il comando viene formattato come blocco di script.

Il secondo comando utilizza il cmdlet Invoke-Command per eseguire il comando in $command nei computer remoti S1 e S2.

Esempio 6

C:\PS>invoke-command -computername server01, server02, TST-0143, localhost -configurationname MySession.PowerShell -scriptblock {get-eventlog "windows powershell"}

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il cmdlet Invoke-Command per eseguire un solo comando in più computer.

Viene utilizzato il parametro ComputerName per specificare i computer. I nomi dei computer vengono presentati in un elenco separato da virgole. L'elenco di computer include il valore "localhost", che rappresenta il computer locale.

Vengono utilizzati il parametro ConfigurationName per specificare una configurazione di sessione alternativa per Windows PowerShell e il parametro ScriptBlock per specificare il comando.

In questo esempio, il comando nel blocco di script ottiene gli eventi nel registro eventi di Windows PowerShell in ogni computer remoto.

Esempio 7

C:\PS>$version = invoke-command -computername (get-content machines.txt) -scriptblock {(get-host).version}

Descrizione
-----------
Questo comando consente di ottenere la versione dell'host di Windows PowerShell in esecuzione in 200 computer remoti.

Poiché viene eseguito solo un comando, non è necessario creare connessioni permanenti (sessioni) a ognuno dei computer. Viene invece utilizzato il parametro ComputerName per indicare i computer.

Viene utilizzato il cmdlet Invoke-Command per eseguire un comando Get-Host. Viene utilizzata la notazione con punto per ottenere la proprietà Version dell'host di Windows PowerShell.

Per specificare i computer, viene utilizzato il cmdlet Get-Content per ottenere il contenuto del file Machine.txt, che contiene i nomi dei computer.

Questi comandi vengono eseguiti in modo sincrono (uno alla volta). Al termine dell'esecuzione dei comandi, l'output dei comandi di tutti i computer viene salvato nella variabile $version. L'output include il nome del computer da cui sono stati originati i dati.

Esempio 8

C:\PS>$s = new-pssession -computername Server01, Server02

C:\PS> invoke-command -session $s -scriptblock {get-eventlog system} -AsJob

Id   Name    State      HasMoreData   Location           Command
---  ----    -----      -----         -----------        --------             -------
1    Job1    Running    True          Server01,Server02  get-eventlog system

C:\PS> $j = Get-Job

C:\PS> $j | format-list -property *

HasMoreData   : True
StatusMessage :
Location      : Server01,Server02
Command       : get-eventlog system
JobStateInfo  : Running
Finished      : System.Threading.ManualResetEvent
InstanceId    : e124bb59-8cb2-498b-a0d2-2e07d4e030ca
Id            : 1
Name          : Job1
ChildJobs     : {Job2, Job3}
Output        : {}
Error         : {}
Progress      : {}
Verbose       : {}
Debug         : {}
Warning       : {}
StateChanged  :

C:\PS> $results = $j | Receive-Job

Descrizione
-----------
Questi comandi consentono l'esecuzione di un processo in background in due computer remoti. Poiché il comando Invoke-Command utilizza il parametro AsJob, i comandi vengono eseguiti nei computer remoti, ma in realtà il processo si trova nel computer locale e i risultati vengono trasmessi al computer locale.

Il primo comando utilizza il cmdlet New-PSSession per creare sessioni nei computer remoti Server01 e Server02.

Il secondo comando utilizza il cmdlet Invoke-Command per eseguire un processo in background in ciascuna sessione. Viene utilizzato il parametro AsJob per eseguire il comando come processo in background. Viene restituito un oggetto processo che contiene due oggetti processo figlio, uno per ogni processo eseguito nei due computer remoti.

Il terzo comando utilizza un comando Get-Job per salvare l'oggetto processo nella variabile di $j.

Con il quarto comando si utilizza un operatore pipeline (|) per inviare il valore della variabile $j al cmdlet Format-List che consente di visualizzare tutte le proprietà dell'oggetto processo in un elenco.

Con il quinto comando si ottengono i risultati dei processi. L'oggetto processo in $j viene reindirizzato al cmdlet Receive-Job e i risultati vengono archiviati nella variabile $results.

Esempio 9

C:\PS>$MWFO-LOg = Microsoft-Windows-Forwarding/Operational

C:\PS> invoke-command -computername server01 -scriptblock {param($log, $num) get-eventlog -logname $log -newest $num} -ArgumentList $MWFO-log, 10

Descrizione
-----------
In questo esempio viene illustrato come includere i valori delle variabili locali in un'esecuzione del comando in un computer remoto.

Il primo comando salva il nome del registro eventi Microsoft-Windows-Forwarding/Operational nella variabile $MWFO-Log.

Il secondo comando utilizza il cmdlet Invoke-Command per eseguire un comando Get-EventLog nel computer remoto Server01 che ottiene i 10 eventi più recenti dal registro eventi Microsoft-Windows-Forwarding/Operational in Server01.

In questo comando viene utilizzata la parola chiave "param" per creare due variabili, $log e $num, utilizzate come segnaposto nel comando Get-EventLog. Questi segnaposto hanno nomi arbitrari che non devono necessariamente corrispondere ai nomi delle variabili locali che ne forniscono i valori.

I valori del parametro ArgumentList illustrano le due diverse modalità per specificare i valori nell'elenco di argomenti. Il valore del segnaposto $log è la variabile $MFWO-Log, definita nel primo comando. Il valore della variabile $num è 10.

Prima dell'invio del comando al computer remoto, le variabili vengono sostituite dai valori specificati.

Esempio 10

C:\PS>invoke-command -computername S1, S2 -scriptblock {get-process powershell}

PSComputerName    Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id   ProcessName
--------------    -------  ------    -----      ----- -----   ------     --   -----------
S1                575      15        45100      40988   200     4.68     1392 powershell
S2                777      14        35100      30988   150     3.68     67   powershell

C:\PS> invoke-command -computername S1, S2 -scriptblock {get-process powershell} -HideComputerName

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id   ProcessName
-------  ------    -----      ----- -----   ------     --   -----------
575      15        45100      40988   200     4.68     1392 powershell
777      14        35100      30988   150     3.68     67   powershell

Descrizione
-----------
In questo esempio viene illustrato l'effetto dell'utilizzo del parametro HideComputerName di Invoke-Command.

Nei primi due comandi viene utilizzato il cmdlet Invoke-Command per eseguire un comando Get-Process per il processo di PowerShell. L'output del primo comando include la proprietà PsComputerName che contiene il nome del computer in cui viene eseguito il comando. L'output del secondo comando, che utilizza il parametro HideComputerName, non include la colonna PsComputerName.

L'utilizzo del parametro HideComputerName non modifica l'oggetto. È comunque possibile utilizzare i cmdlet Format per visualizzare la proprietà PsComputerName di qualsiasi oggetto interessato.

Esempio 11

C:\PS>invoke-command -comp (get-content servers.txt) -filepath c:\scripts\sample.ps1 -argumentlist Process, Service

Descrizione
-----------
In questo esempio viene utilizzato il cmdlet Invoke-Command per eseguire lo script Sample.ps1 in tutti i computer elencati nel file Servers.txt. Viene utilizzato il parametro FilePath per specificare il file script. Questo comando consente di eseguire lo script nei computer remoti, anche se il file script non è accessibile a tali computer.

Quando si invia il comando, il contenuto del file Sample.ps1 viene copiato in un blocco di script il quale viene eseguito in ciascun computer remoto. Questa procedura equivale all'utilizzo del parametro ScriptBlock per inviare il contenuto dello script.

Esempio 12

C:\PS>$LiveCred = Get-Credential

C:\PS> Invoke-Command -ConfigurationName Microsoft.Exchange `
         -ConnectionUri https://ps.exchangelabs.com/powershell `
         -Credential $LiveCred  -Authentication Basic `
         -scriptblock {Invoke-Command {Set-Mailbox dan -DisplayName "Dan Park"}

Descrizione
-----------
In questo esempio viene illustrato come eseguire un comando in un computer remoto identificato da un URI (indirizzo Internet). In questo esempio viene eseguito un comando Set-Mailbox in un server remoto di Exchange. Il carattere di apice inverso (`) nel comando è il carattere di continuazione di Windows PowerShell.

Con il primo comando si utilizza il cmdlet Get-Credential per archiviare le credenziali di Windows Live ID nella variabile $LiveCred. Quando viene visualizzata la finestra di dialogo delle credenziali, immettere le credenziali di Windows Live ID.

Con il secondo comando si utilizza il cmdlet Invoke-Command per eseguire un comando Set-Mailbox. Viene utilizzato il parametro ConfigurationName per indicare che il comando deve essere eseguito in una sessione che utilizza la configurazione di sessione Microsoft.Exchange. Il parametro ConnectionURI specifica l'URL dell'endpoint del server di Exchange.

Il parametro delle credenziali specifica le credenziali di Windows Live archiviate nella variabile $LiveCred. Il parametro AuthenticationMechanism specifica l'utilizzo dell'autenticazione di base. Il parametro ScriptBlock specifica un blocco di script che contiene il comando.

Esempio 13

C:\PS>$max = New-PSSessionOption -MaximumRedirection 1

C:\PS> Invoke-Command -ConnectionUri https://ps.exchangelabs.com/powershell `
         -scriptblock {Invoke-Command {Get-Mailbox dan} `
         -AllowRedirection -SessionOption $max

Descrizione
-----------
Con questo comando viene illustrato come utilizzare i parametri AllowRedirection e SessionOption per gestire il reindirizzamento dell'URI in un comando remoto.

Con il primo comando si utilizza il cmdlet New-PSSessionOption per creare un oggetto PSSessionOption che viene salvato nella variabile $max. Con il comando si utilizza il parametro MaximumRedirection per impostare la proprietà MaximumConnectionRedirectionCount dell'oggetto PSSessionOption su 1.

Con il secondo comando si utilizza il cmdlet Invoke-Command per eseguire il comando Get-Mailbox in un server remoto in cui viene eseguito Microsoft Exchange Server. Viene utilizzato il parametro AllowRedirection per fornire un'autorizzazione esplicita per il reindirizzamento della connessione a un endpoint alternativo. Viene inoltre utilizzato il parametro SessionOption per specificare l'oggetto sessione nella variabile $max.

Di conseguenza, se il computer remoto specificato dal parametro ConnectionURI restituisce un messaggio di reindirizzamento, in Windows PowerShell la connessione verrà reindirizzata, ma se la nuova destinazione restituisce un altro messaggio di reindirizzamento, verrà superato il valore del conteggio di reindirizzamento pari a 1 e Invoke-Command restituirà un errore non fatale.

Esempio 14

C:\PS>$so = New-PSSessionOption -SkipCACheck

PS C:\> invoke-command $s { get-hotfix } -SessionOption $so -credential server01\user01

Descrizione
-----------
In questo esempio viene illustrato come creare e utilizzare un parametro SessionOption.

Il primo comando utilizza il cmdlet New-PSSessionOption per creare un'opzione di sessione. L'oggetto SessionOption risultante viene salvato nel parametro $so.

Il secondo comando utilizza il cmdlet Invoke-Command per eseguire un comando Get-Hotfix in remoto. Il valore del parametro SessionOption è l'oggetto SessionOption presente nella variabile $so.

Esempio 15

C:\PS>enable-wsmanCredSSP -delegate server02

C:\PS> connect-wsman Server02

C:\PS> set-item wsman:\server02*\service\auth\credSSP -value $true

C:\PS> $s = new-pssession server02

C:\PS> invoke-command -session $s -script {get-item \\Net03\Scripts\LogFiles.ps1} -authentication credssp -credential domain01\admin01

Descrizione
-----------
In questo esempio viene illustrato come accedere a una condivisione di rete dall'interno di una sessione remota.

Per questo comando è necessario che la delega CredSSP sia abilitata nelle impostazioni del client del computer locale e nelle impostazioni del servizio nel computer remoto. Per eseguire i comandi in questo esempio, è necessario essere un membro del gruppo Administrators nel computer locale e nel computer remoto.

Con il primo comando si utilizza il cmdlet Enable-WSManCredSSP per abilitare la delega CredSSP dal computer locale Server01 al computer remoto Server02. L'impostazione client CredSSP viene configurata nel computer locale.

Con il secondo comando si utilizza il cmdlet Connect-WSman per la connessione al computer Server02. Questa azione consente di aggiungere un nodo per il computer Server02 all'unità WSMan: nel computer locale, consentendo la visualizzazione e la modifica delle impostazioni di WS-Management nel computer Server02.

Nel terzo comando viene utilizzato il cmdlet Set-Item per modificare il valore dell'elemento CredSSP nel nodo Service del computer Server02 in True. Questa azione consente di abilitare CredSSP nelle impostazioni servizio nel computer remoto.

Con il quarto comando si utilizza il cmdlet New-PSSession per creare una sessione PSSession nel computer Server02. La sessione PSSession viene quindi salvata nella variabile $s.

Con il quinto comando si utilizza il cmdlet Invoke-Command per eseguire un comando Get-Item nella sessione in $s che ottiene uno script dalla condivisione di rete Net03\Scripts. Vengono utilizzati il parametro Credential e il parametro Authentication con un valore di CredSSP.

Vedere anche

  • about_Remote
  • about_PSSessions
  • New-PSSession
  • Get-PSSession
  • Remove-PSSession
  • Enter-PSSession
  • Exit-PSSession
  • WSMan Provider


Invoke-Expression

Esegue comandi o espressioni nel computer locale.

Sintassi

Invoke-Expression [-Command] <string> [<CommonParameters>]

Descrizione

Il cmdlet Invoke-Expression valuta o esegue una stringa specificata come comando e restituisce i risultati dell'espressione o del comando. Senza Invoke-Expression, una stringa inviata alla riga di comando verrebbe restituita (ripetuta) invariata.

Parametri

-Command <string>

Specifica il comando o l'espressione da eseguire. Digitare il comando o l'espressione oppure immettere una variabile che li contiene. Il parametro Command è obbligatorio.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String o PSObject È possibile reindirizzare un oggetto che rappresenta il comando a Invoke-Expression. Utilizzare la variabile automatica $input per rappresentare gli oggetti di input nel comando.
Output | PSObject Restituisce l'output generato dal comando richiamato (valore del parametro Command).

Note

-- Un'espressione è un'istruzione che può essere valutata e produce un risultato, ad esempio un comando di Windows PowerShell.

-- Utilizzare con la dovuta cautela il cmdlet Invoke-Expression negli script. Quando si utilizza Invoke-Expression per eseguire un comando immesso dall'utente, verificare che il comando sia sicuro prima di eseguirlo. In genere, è consigliabile progettare lo script con opzioni di input predefinite, piuttosto che consentire l'input a mano libera.

Esempio 1

C:\PS>$command = "Get-Process"

C:\PS> $command
Get-Process

C:\PS> invoke-expression $command

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    296       4     1572       1956    20     0.53   1348 AdtAgent
    270       6     1328        800    34     0.06   2396 alg
     67       2      620        484    20     0.22    716 ati2evxx
   1060      15    12904      11840    74    11.48    892 CcmExec
   1400      33    25280      37544   223    38.44   2564 communicator
...

Descrizione
-----------
In questo esempio viene illustrato l'utilizzo di Invoke-Expression per valutare un'espressione. Senza Invoke-Expression, l'espressione viene stampata, ma non valutata.

Con il primo comando viene assegnato un valore "Get-Process" (stringa) alla variabile $command.

Con il secondo comando viene illustrato l'effetto della digitazione del nome della variabile nella riga di comando. Windows PowerShell restituisce la stringa.

Nel terzo comando viene utilizzato il cmdlet Invoke-Expression per valutare la stringa.

Esempio 2

C:\PS>invoke-expression -command "C:\ps-test\testscript.ps1"

C:\PS> "C:\ps-test\testscript.ps1" | invoke-expression

Descrizione
-----------
In questi comandi viene utilizzato Invoke-Expression per eseguire uno script, TestScript.ps1, nel computer locale. I due comandi sono equivalenti. Nel primo viene utilizzato il parametro Command per specificare il comando da eseguire. Nel secondo viene utilizzato un operatore pipeline (|) per inviare la stringa di comando a Invoke-Expression.

Esempio 3

C:\PS>$cmd = 'get-process | where {$_.cpu -gt 1000}'

C:\PS> iex $command

Descrizione
-----------
In questo esempio viene eseguita una stringa di comando salvata nella variabile $cmd.

La stringa di comando è racchiusa tra virgolette singole perché include una variabile, $_, che rappresenta l'oggetto corrente. Se fosse racchiusa tra virgolette doppie, la variabile $_ verrebbe sostituita dal relativo valore prima di essere salvata nella stringa $command.

Esempio 4

C:\PS>$cmdlet_name = "get-eventlog"

C:\PS> $example_number = 1

C:\PS> $example_code = (get-help $cmdlet_name).examples.example[($example_number-1)].code

C:\PS> invoke-expression $example_code

Descrizione
-----------
Con questo comando viene recuperato ed eseguito il primo esempio nell'argomento della guida del cmdlet Get-EventLog.

Per eseguire un esempio di un altro cmdlet, sostituire il valore della variabile $cmdlet_name con il nome del cmdlet desiderato. Inoltre, impostare la variabile $example_number sul numero di esempio che si desidera eseguire. Il comando non verrà eseguito se il numero di esempio non è valido.

Vedere anche

  • Invoke-Command


Invoke-History

Esegue i comandi dalla cronologia della sessione.

Sintassi

Invoke-History [[-Id] <string>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Invoke-History esegue i comandi dalla cronologia della sessione. È possibile passare oggetti che rappresentano i comandi da Get-History a Invoke-History oppure identificare i comandi nella cronologia corrente utilizzando il relativo numero ID. Per trovare il numero di identificazione di un comando, utilizzare Get-History.

Parametri

-Id <string>

Identifica un comando nella cronologia. È possibile digitare il numero ID o i primi caratteri del comando.

Se si digitano alcuni caratteri, tramite Invoke-History vengono trovati per primi i comandi più recenti. Se questo parametro viene omesso, tramite Invoke-History viene eseguito l'ultimo comando, ovvero il più recente. Il nome del parametro ("id") è facoltativo. Per trovare il numero di ID di un comando, utilizzare Get-History.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Nessuno Invoke-History non genera alcun output, che invece potrebbe essere generato dai comandi eseguiti da Invoke-History.

Note

La cronologia della sessione è un elenco dei comandi immessi durante la sessione insieme all'ID. La cronologia della sessione rappresenta l'ordine di esecuzione, lo stato e le ore di inizio e di fine del comando. I comandi immessi vengono aggiunti da Windows PowerShell alla cronologia per consentirne il riutilizzo. Per ulteriori informazioni sulla cronologia della sessione, vedere about_History.

È inoltre possibile fare riferimento a Invoke-History tramite i relativi alias predefiniti "r" e "ihy". Per ulteriori informazioni, vedere about_Aliases.

Esempio 1

C:\PS>invoke-history

Descrizione
-----------
Tramite questo comando viene eseguito l'ultimo (più recente) comando incluso nella cronologia della sessione. È possibile abbreviare questo comando in "r", che suggerisce le operazioni "ripetizione" e "riesecuzione" e corrisponde all'alias per Invoke-History.

Esempio 2

C:\PS>invoke-history -id 132

Descrizione
-----------
Con questo comando si esegue il comando associato all'ID 132 nella cronologia della sessione. Poiché il nome del parametro Id è facoltativo, è possibile abbreviare questo comando in "Invoke-History 132", "ihy 132" o "r 132".

Esempio 3

C:\PS>invoke-history get-pr

Descrizione
-----------
Con questo comando si esegue il comando Get-Process più recente incluso nella cronologia della sessione. Quando si digitano i caratteri per il parametro Id, tramite Invoke-History viene eseguito il primo comando trovato che corrisponde al criterio, iniziando dai comandi più recenti. Con questo comando viene utilizzato il parametro ID, ma viene omesso il nome di parametro facoltativo.

Esempio 4

C:\PS>invoke-history (16..24), 27

Descrizione
-----------
Con questo comando si eseguono i comandi con ID compresi tra 16 e 24 e quello con ID 27. È possibile specificare più ID e intervalli di ID separati da virgole.

Esempio 5

C:\PS>get-history -id 255 -count 7 | invoke-history

Descrizione
-----------
Con questo comando si eseguono i 7 comandi inclusi nella cronologia che terminano con il comando 255, in genere da 249 a 255. Viene utilizzato il cmdlet Get-History per recuperare i comandi. L'operatore pipeline (|) passa i comandi a Invoke-History, che li esegue.

Vedere anche

  • about_History
  • Get-History
  • Add-History
  • Clear-History


Invoke-Item

Esegue l'azione predefinita sull'elemento specificato.

Sintassi

Invoke-Item [-LiteralPath] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Invoke-Item [-Path] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Invoke-Item consente di eseguire l'azione predefinita sull'elemento specificato. Ad esempio, consente di eseguire un file eseguibile o di aprire un file di documento nell'applicazione associata al tipo di file. L'azione predefinita dipende dal tipo di elemento ed è determinata dal provider di Windows PowerShell che fornisce l'accesso ai dati.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Esegue l'azione predefinita solo sugli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica un percorso dell'elemento. Il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso dell'elemento selezionato.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso a Invoke-Item.
Output | Nessuno Il comando non genera alcun output. Tuttavia, l'output potrebbe essere generato dall'elemento richiamato.

Note

Il cmdlet Invoke-Item è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PsSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>invoke-item C:\Test\aliasApr04.doc

Descrizione
-----------
Con questo comando viene aperto il file aliasApr04.doc in Microsoft Office Word. In questo caso, l'azione predefinita per i file con estensione doc è l'apertura in Word.

Esempio 2

C:\PS>invoke-item "C:\Documents and Settings\Lister\My Documents\*.xls"

Descrizione
-----------
Con questo comando vengono aperti tutti i fogli di calcolo di Microsoft Office Excel nella cartella C:\Documents and Settings\Lister\Documenti. Ogni foglio di calcolo si apre in una nuova istanza di Excel. In questo caso, l'azione predefinita per i file con estensione xls è l'apertura in Excel.

Vedere anche

  • about_Providers
  • Clear-Item
  • Get-Item
  • Move-Item
  • Set-Item
  • New-Item
  • Remove-Item
  • Rename-Item
  • Copy-Item


Invoke-WmiMethod

Chiama i metodi di Strumentazione gestione Windows (WMI)

Sintassi

Invoke-WmiMethod [-Classe] <string> [[-ArgumentList] <Object[]>] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod -InputObject <ManagementObject> [-ArgumentList <Object[]>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod -Path <string> [-ArgumentList <Object[]>] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Invoke-WmiMethod chiama i metodi WMI.

Parametri

-ArgumentList <Object[]>

Specifica i parametri da passare al metodo chiamato. Il valore di questo parametro deve essere una matrice di oggetti, i quali devono essere posti nell'ordine richiesto dal metodo chiamato.

Importante: è necessario indicare un secondo valore di $null, in caso contrario il comando genererà un errore, ad esempio "Impossibile eseguire il cast di oggetti di tipo 'System.Byte' sul tipo 'System.Array'".

Di seguito viene riportato un esempio di utilizzo di una matrice di oggetti ($binSD) seguita da un valore null ($null):

PS C:\> $acl = Get-Acl test.txt

PS C:\> $binSD = $acl.GetSecurityDescriptorBinaryForm()

PS C:\> invoke-wmimethod -class Win32_SecurityDescriptorHelper -Name BinarySDToSDDL -argumentlist $binSD, $null

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-AsJob

Esegue il comando come processo in background. Utilizzare questo parametro per eseguire comandi il cui completamento richiede molto tempo.

Quando si utilizza il parametro AsJob, il comando restituisce un oggetto che rappresenta il processo in background, quindi visualizza il prompt dei comandi. È possibile continuare a utilizzare la sessione fino al completamento del processo. Se Invoke-WmiMethod viene utilizzato in un computer remoto, il processo viene creato nel computer locale e i risultati dei computer remoti vengono automaticamente restituiti nel computer locale. Per gestire il processo, utilizzare i cmdlet che contengono il nome Job (cmdlet Job). Per ottenere i risultati del processo, utilizzare il cmdlet Receive-Job.

Nota: per utilizzare questo parametro con computer remoti, è necessario configurare il computer locale e quello remoto per la comunicazione remota. È inoltre necessario avviare Windows PowerShell utilizzando l'opzione "Esegui come amministratore" di Windows Vista e delle versioni successive di Windows. Per ulteriori informazioni, vedere about_Remote_Requirements.

Per ulteriori informazioni sui processi in background di Windows PowerShell, vedere about_Jobs e about_Remote_Jobs.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Authentication <AuthenticationLevel>

Specifica il livello di autenticazione da utilizzare con la connessione WMI. I valori validi sono:

-1: Unchanged

0: Default

1: None (non viene eseguita alcuna autenticazione).

2: Connect (l'autenticazione viene eseguita solo quando il client stabilisce una relazione con l'applicazione).

3: Call (l'autenticazione viene eseguita solo all'inizio di ogni chiamata quando l'applicazione riceve la richiesta).

4: Packet (l'autenticazione viene eseguita su tutti i dati ricevuti dal client).

5: PacketIntegrity (tutti i dati trasferiti tra il client e l'applicazione vengono autenticati e verificati).

6: PacketPrivacy (vengono utilizzate le proprietà degli altri livelli di autenticazione e tutti i dati vengono crittografati).

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Authority <string>

Specifica l'autorità da utilizzare per autenticare la connessione WMI. È possibile specificare l'autenticazione NTLM o Kerberos standard. Per utilizzare NTLM, impostare l'autorità su ntlmdomain:<NomeDominio>, dove <NomeDominio> identifica un nome di dominio NTLM valido. Per utilizzare Kerberos, specificare kerberos:<NomeDominio\NomeServer>. Non è possibile includere l'impostazione Authority quando ci si connette al computer locale.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Classe <string>

Specifica la classe WMI che contiene un metodo statico da chiamare.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string[]>

Specifica il computer in cui si desidera eseguire l'operazione di gestione. Il valore può essere un nome di dominio completo, un nome NetBIOS o un indirizzo IP (Internet Protocol). Utilizzare il nome del computer locale, localhost o un punto (.) per specificare il computer locale. Il valore predefinito è il computer locale. Quando il computer remoto si trova in un dominio diverso da quello dell'utente, è obbligatorio utilizzare un nome di dominio completo. È inoltre possibile impostare il valore di questo parametro reindirizzando il valore al parametro.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente. Digitare un nome utente, ad esempio "Utente01", "Dominio01\Utente01" o Utente@Contoso.com. In alternativa, immettere un oggetto PSCredential, ad esempio uno restituito dal cmdlet Get-Credential. Quando si digita un nome utente, viene richiesta una password.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-EnableAllPrivileges

Abilita tutti i privilegi dell'utente corrente prima che il comando effettui la chiamata WMI.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Impersonation <ImpersonationLevel>

Specifica il livello di rappresentazione da utilizzare. I valori validi sono:

0: Default (legge il Registro di sistema locale per il livello di rappresentazione predefinito, in genere impostato su "3: Impersonate").

1: Anonymous (nasconde le credenziali del chiamante).

2: Identify (consente agli oggetti di eseguire query delle credenziali del chiamante).

3: Impersonate (consente agli oggetti di utilizzare le credenziali del chiamante).

4: Delegate (consente agli oggetti di permettere ad altri oggetti di utilizzare le credenziali del chiamante).

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <ManagementObject>

Specifica un oggetto ManagementObject da utilizzare come input. Quando viene utilizzato questo parametro, tutti gli altri parametri tranne Flag e Argument vengono ignorati.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Locale <string>

Specifica le impostazioni locali preferite per gli oggetti WMI. Specifica il valore del parametro Locale come matrice nel formato MS_<LCID> nell'ordine preferito.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string>

Specifica il nome del metodo da richiamare. Questo parametro è obbligatorio e non può essere null o vuoto.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Spazio dei nomi <string>

Quando viene utilizzato con il parametro Class, questo parametro specifica lo spazio dei nomi dell'archivio WMI in cui si trova la classe WMI o l'oggetto a cui si fa riferimento.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string>

Specifica il percorso dell'oggetto WMI di una classe o di un'istanza di una classe WMI. La classe o l'istanza che specificata deve contenere il metodo specificato nel parametro Name.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ThrottleLimit <int>

Consente all'utente di specificare un valore di limitazione per il numero di operazioni WMI (Strumentazione gestione Windows) che è possibile eseguire contemporaneamente. Questo parametro viene utilizzato insieme al parametro AsJob. Il limite di velocità si applica solo al comando corrente, non alla sessione o al computer.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Questo cmdlet non accetta alcun input.
Output | Nessuno Questo cmdlet non genera alcun output.

Esempio 1

C:\PS>invoke-wmimethod -path win32_process -name create -argumentlist notepad.exe

__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 2
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ProcessId        : 4844
ReturnValue      : 0

Descrizione
-----------
Con questo comando viene avviata un'istanza di Blocco note chiamando il metodo Create metodo della classe Win32_Process.

Nota: la proprietà ReturnValue viene compilata con uno 0 e la proprietà ProcessId viene compilata con un valore intero (il numero ID del processo successivo) se viene completato il comando.

Esempio 2

C:\PS>invoke-wmimethod -path "CIM_DataFile.Name='C:\scripts\test.txt'" -Name Rename -ArgumentList "C:\scripts\test_bu.txt"

__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ReturnValue      : 0

Descrizione
-----------
Con questo comando viene rinominato un file. Viene utilizzato il parametro Path per fare riferimento a un'istanza della classe CIM_DataFile. Successivamente, viene applicato il metodo Rename a quella particolare istanza.

Nota: la proprietà ReturnValue viene compilata con uno 0 se viene completato il comando.

Vedere anche

  • Get-WmiObject
  • Remove-WmiObject
  • Set-WmiInstance
  • Get-WSManInstance
  • Invoke-WSManAction
  • New-WSManInstance
  • Remove-WSManInstance


Invoke-WSManAction

Richiama un'azione sull'oggetto specificato dall'URI di risorsa e dai selettori.

Sintassi

Invoke-WSManAction [-ApplicationName <string>] [-ComputerName <string>] [-Credential <PSCredential>] [-Credential <PSCredential>] [-Credential <PSCredential>] [-Credential <PSCredential>] [-Credential <PSCredential>] [-Credential <PSCredential>] [-Credential <PSCredential>] [-Credential <PSCredential>] [-Credential <PSCredential>] [-Port <int>] [-Port <int>] [-Port <int>] [-Port <int>] [-Port <int>] [-Port <int>] [-Port <int>] [-Port <int>] [-Port <int>] [-UseSSL] [-ResourceURI] <Uri> [-Action] <string> [-Authentication <AuthenticationMechanism>] [-FilePath <File>] [-OptionSet <hashtable>] [-SelectorSet <hashtable>] [-SessionOption <hashtable>] [-ValueSet <hashtable>] [<CommonParameters>]

Invoke-WSManAction [-ConnectionURI <Uri>] [-ResourceURI] <Uri> [-Action] <string> [-Authentication <AuthenticationMechanism>] [-FilePath <File>] [-OptionSet <hashtable>] [-SelectorSet <hashtable>] [-SessionOption <hashtable>] [-ValueSet <hashtable>] [<CommonParameters>]

Descrizione

Invoke-WSManAction esegue un'azione sull'oggetto specificato da RESOURCE_URI, dove i parametri vengono specificati da coppie chiave-valore.

Questo cmdlet utilizza il livello di trasporto o la connessione di WS-Management per eseguire l'azione.

Parametri

-Action <string>

Indica il metodo da eseguire sull'oggetto di gestione specificato dal parametro ResourceURI e dai selettori.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ApplicationName <string>

Specifica il nome dell'applicazione nella connessione. Il valore predefinito del parametro ApplicationName è WSMAN. L'identificatore completo dell'endpoint remoto ha il formato seguente:

<trasporto>://<server>:<porta>/<NomeApplicazione>

Ad esempio:

http://server01:8080/WSMAN

Tramite Internet Information Services (IIS), che ospita la sessione, le richieste con questo endpoint vengono inoltrate all'applicazione specificata. L'impostazione predefinita "WSMAN" è appropriata per la maggior parte degli utilizzi. Questo parametro è progettato per essere utilizzato quando più computer stabiliscono connessioni remote a un computer in cui è in esecuzione Windows PowerShell. In questo caso, IIS ospita Gestione remota Windows (WS-Management) per motivi di efficienza.

Obbligatorio? | false
Posizione? | named
Valore predefinito | wsman
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Authentication <AuthenticationMechanism>

Specifica il meccanismo di autenticazione da utilizzare nel server. I valori possibili sono:

- Basic: Basic è uno schema in cui il nome utente e la password vengono inviati come testo non crittografato al server o al proxy.

- Default: utilizzare il metodo di autenticazione implementato dal protocollo WS-Management. Si tratta dell'impostazione predefinita.

- Digest: Digest è uno schema basato su una richiesta di verifica e relativa risposta che utilizza una stringa di dati specificata dal server per la richiesta di verifica.

- Kerberos: il server e il computer client si autenticano reciprocamente utilizzando certificati Kerberos.

- Negotiate: Negotiate è uno schema basato su una richiesta di verifica e relativa risposta che negozia con il server o il proxy per determinare lo schema da utilizzare per l'autenticazione. Ad esempio, questo valore di parametro consente la negoziazione per determinare se viene utilizzato il protocollo Kerberos o NTLM.

- CredSSP: utilizzare l'autenticazione CredSSP (Credential Security Service Provider) che consente all'utente di delegare le credenziali. Questa opzione è destinata ai comandi che vengono eseguiti in un computer remoto, ma raccolgono dati o eseguono ulteriori comandi in altri computer remoti.

Attenzione: CredSSP (Credential Security Service Provider) delega le credenziali dell'utente dal computer locale a un computer remoto. Questa procedura aumenta il rischio per la sicurezza dell'operazione remota. Se il computer remoto è compromesso, quando le credenziali vengono passate a tale computer è possibile utilizzarle per controllare la sessione di rete.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string>

Specifica il computer in cui si desidera eseguire l'operazione di gestione. Il valore può essere un nome di dominio completo, un nome NetBIOS o un indirizzo IP. Utilizzare il nome del computer locale, localhost o un punto (.) per specificare il computer locale. Il valore predefinito è il computer locale. Quando il computer remoto si trova in un dominio diverso da quello dell'utente, è necessario utilizzare un nome di dominio completo. È possibile reindirizzare un valore per questo parametro al cmdlet.

Obbligatorio? | false
Posizione? | named
Valore predefinito | localhost
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ConnectionURI <Uri>

Specifica l'endpoint di connessione. Il formato di questa stringa è:

<Trasporto>://<Server>:<Porta>/<NomeApplicazione>.

La seguente stringa rappresenta un valore formattato correttamente per questo parametro:

http://Server01:8080/WSMAN

L'URI deve essere completo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente. Digitare un nome utente, ad esempio "User01", "Domain01\User01" o User@Domain.com. In alternativa, immettere un oggetto PSCredential, ad esempio quello restituito dal cmdlet Get-Credential. Quando si digita un nome utente, viene richiesta una password.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-FilePath <File>

Specifica il percorso di un file utilizzato per aggiornare una risorsa di gestione. La risorsa di gestione viene specificata tramite i parametri ResourceURI e SelectorSet. Ad esempio, il comando seguente utilizza il parametro FilePath:

invoke-wsmanaction -action stopservice -resourceuri wmicimv2/Win32_Service -SelectorSet @{Name="spooler"} -FilePath:c:\input.xml -authentication default

Questo comando chiama il metodo StopService nel servizio spooler mediante input da un file. Il file Input.xml contiene quanto segue:

<p:StopService_INPUT xmlns:p="http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service"/>

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-OptionSet <hashtable>

Passa un set di opzioni a un servizio per modificare o perfezionare la natura della richiesta. Si tratta di opzioni simili a quelle utilizzate nelle shell della riga di comando perché specifiche del servizio. È possibile specificare qualsiasi numero di opzioni.

Nell'esempio seguente viene illustrata la sintassi che passa i valori 1, 2 e 3 per i parametri a, b e c:

-OptionSet @{a=1;b=2;c=3}

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Port <int>

Specifica la porta da utilizzare per la connessione del client al servizio Gestione remota Windows. Quando il trasporto è HTTP, la porta predefinita è 80. Quando il trasporto è HTTPS, la porta predefinita è 443. Quando si utilizza HTTPS come trasporto, il valore del parametro ComputerName deve corrispondere al nome comune del certificato del server. Tuttavia, se il parametro SkipCNCheck viene specificato come parte del parametro SessionOption, il nome comune del certificato del server non deve corrispondere al nome host del server. Il parametro SkipCNCheck deve essere utilizzato solo per computer attendibili.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ResourceURI <Uri>

Contiene l'URI (Uniform Resource Identifier) dell'istanza o della classe di risorse. L'URI viene utilizzato per identificare un tipo specifico di risorsa, ad esempio dischi o processi, in un computer.

Un URI è composto da un prefisso e da un percorso a una risorsa. Ad esempio:

http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk

http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_NumericSensor

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-SelectorSet <hashtable>

Specifica un set di coppie di valori utilizzate per selezionare particolari istanze di risorse di gestione. Il parametro SelectorSet viene utilizzato quando esiste più di un'istanza della risorsa. Il valore del parametro SelectorSet deve essere una tabella hash.

Nell'esempio seguente viene illustrato come immettere un valore per questo parametro.

-SelectorSet @{Name="WinRM";ID="yyy"}

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SessionOption <hashtable>

Definisce un set di opzioni estese per la sessione WS-Management. Immettere un oggetto SessionOption creato utilizzando il cmdlet New-WSManSessionOption. Per ulteriori informazioni sulle opzioni disponibili, vedere New-WSManSessionOption.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseSSL

Specifica che deve essere utilizzato il protocollo SSL (Secure Sockets Layer) per stabilire una connessione al computer remoto. Per impostazione predefinita SSL non viene utilizzato.

In WS-Management viene crittografato tutto il contenuto di Windows PowerShell trasmesso in rete. Il parametro UseSSL consente di specificare la protezione aggiuntiva derivante dall'utilizzo di HTTPS anziché HTTP. Se si specifica questo parametro ma SSL non è disponibile sulla porta utilizzata per la connessione, il comando ha esito negativo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ValueSet <hashtable>

Specifica una tabella hash che consente di modificare una risorsa di gestione. La risorsa di gestione viene specificata tramite i parametri ResourceURI e SelectorSet. Il valore del parametro ValueSet deve essere una tabella hash.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Questo cmdlet non accetta alcun input.
Output | Nessuno Questo cmdlet non genera alcun output.

Esempio 1

C:\PS>invoke-wsmanaction -action startservice -resourceuri wmicimv2/win32_service  -selectorset @{name="spooler"} -authentication default

xsi         : http://www.w3.org/2001/XMLSchema-instance
p           : http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service
cim         : http://schemas.dmtf.org/wbem/wscim/1/common
lang        : en-US
ReturnValue : 0

Descrizione
-----------
Questo comando chiama il metodo StartService dell'istanza della classe WMI Win32_Service che corrisponde al servizio spooler.

Il valore restituito indica se l'azione ha avuto esito positivo. In questo caso, un valore restituito pari a 0 indica che l'operazione ha avuto esito positivo. Un valore restituito pari a 5 indica che il servizio è già stato avviato.

Esempio 2

C:\PS>invoke-wsmanaction -action stopservice -resourceuri wmicimv2/Win32_Service -SelectorSet @{Name="spooler"} -FilePath:input.xml -authentication default

xsi         : http://www.w3.org/2001/XMLSchema-instance
p           : http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service
cim         : http://schemas.dmtf.org/wbem/wscim/1/common
lang        : en-US
ReturnValue : 0

Descrizione
-----------
Questo comando chiama il metodo StopService nel servizio spooler mediante input da un file. Il file Input.xml contiene quanto segue:

 <p:StopService_INPUT xmlns:p="http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service"/>

Il valore restituito indica se l'azione ha avuto esito positivo. In questo caso, un valore restituito pari a 0 indica che l'operazione ha avuto esito positivo. Un valore restituito pari a 5 indica che il servizio è già stato avviato.

Esempio 3

C:\PS>invoke-wsmanaction -action create -resourceuri wmicimv2/win32_process -valueset @{commandline="notepad.exe";currentdirectory="C:\"}

xsi         : http://www.w3.org/2001/XMLSchema-instance
p           : http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Process
cim         : http://schemas.dmtf.org/wbem/wscim/1/common
lang        : en-US
ProcessId   : 6356
ReturnValue : 0

Descrizione
-----------
Questo comando chiama il metodo Create della classe Win32_Process. Vengono passati al metodo i valori di due parametri, Notepad.exe e "C:\". Viene pertanto creato un nuovo processo per l'esecuzione del Blocco note e la directory corrente del nuovo processo viene impostata su "C:\".

Esempio 4

C:\PS>invoke-wsmanaction -action startservice -resourceuri wmicimv2/win32_service  -selectorset @{name="spooler"} -computername server01 -authentication default

xsi         : http://www.w3.org/2001/XMLSchema-instance
p           : http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service
cim         : http://schemas.dmtf.org/wbem/wscim/1/common
lang        : en-US
ReturnValue : 0

Descrizione
-----------
Questo comando chiama il metodo StartService dell'istanza della classe WMI Win32_Service che corrisponde al servizio spooler. Poiché viene specificato il parametro ComputerName, il comando viene eseguito nel computer remoto server01.

Il valore restituito indica se l'azione ha avuto esito positivo. In questo caso, un valore restituito pari a 0 indica che l'operazione ha avuto esito positivo. Un valore restituito pari a 5 indica che il servizio è già stato avviato.

Vedere anche

  • Connect-WSMan
  • Disable-WSManCredSSP
  • Disconnect-WSMan
  • Enable-WSManCredSSP
  • Get-WSManCredSSP
  • Get-WSManInstance
  • New-WSManInstance
  • New-WSManSessionOption
  • Remove-WSManInstance
  • Set-WSManInstance
  • Set-WSManQuickConfig
  • Test-WSMan
  • Invoke-WmiMethod


Join-Path

Combina un percorso e un percorso figlio in un unico percorso. I delimitatori del percorso sono forniti dal provider.

Sintassi

Join-Path [-Path] <string[]> [-ChildPath] <string> [-Credential <PSCredential>] [-Resolve] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Join-Path combina un percorso e un percorso figlio in un unico percorso. I delimitatori del percorso sono forniti dal provider.

Parametri

-ChildPath <string>

Specifica gli elementi da aggiungere al valore di Path. È consentito l'utilizzo di caratteri jolly. Il parametro ChildPath è obbligatorio, sebbene il nome del parametro ("ChildPath") sia facoltativo.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01". In alternativa, immettere un oggetto PSCredential, ad esempio quello generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso o i percorsi principali ai quali viene aggiunto il percorso figlio. È consentito l'utilizzo di caratteri jolly.

Il valore di Path determina quale provider unisce i percorsi e aggiunge i delimitatori. Questo parametro è obbligatorio, sebbene il nome del parametro ("Path") sia facoltativo.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Resolve

Visualizza gli elementi a cui fa riferimento il percorso unito.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso a Join-Path.
Output | System.String Join-Path restituisce una stringa che contiene il percorso risultante.

Note

I cmdlet che contengono il sostantivo Path (cmdlet Path) modificano i nomi dei percorsi e restituiscono i nomi in un formato conciso che può essere interpretato da tutti i provider di Windows PowerShell. Sono progettati per essere utilizzati in programmi e script in cui si intende visualizzare un nome di percorso, completo o parziale, in un determinato formato. Utilizzare questi cmdlet in modo analogo a Dirname, Normpath, Realpath, Join o altri modificatori di percorso.

È possibile utilizzare i cmdlet path con diversi provider, inclusi FileSystem, Registry e Certificate.

Il cmdlet Join-Path è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>join-path -path c:\win* -childpath System*

Descrizione
-----------
Con questo comando viene utilizzato Join-Path per combinare il percorso "c:\Win*" con il percorso figlio "System*". Il provider FileSystem di Windows PowerShell unisce il percorso e aggiunge il delimitatore "\".

Esempio 2

C:\PS>join-path c:\win* System* -resolve

Descrizione
-----------
Con questo comando vengono visualizzati i file e le cartella a cui si fa riferimento unendo il percorso "c:\Win*" e il percorso figlio "System*". Vengono visualizzati gli stessi file e le stesse cartelle ottenute con Get-ChildItem, ma viene visualizzato il percorso completo di ogni elemento. In questo comando, i nomi dei parametri facoltativi Path e ChildPath vengono omessi.

Esempio 3

C:\PS>PS HKLM:\> join-path System *ControlSet* -resolve

Descrizione
-----------
Con questo comando vengono visualizzate le chiavi del Registro di sistema nella sottochiave del Registro di sistema HKLM\System che include "ControlSet". In questo esempio viene illustrato come utilizzare Join-Path con il provider Registry di Windows PowerShell.

Esempio 4

C:\PS>join-path -path C:, D:, E:, F: -childpath New

Descrizione
-----------
Questo comando utilizza Join-Path per combinare più radici di percorso a un percorso figlio.

Esempio 5

C:\PS>get-psdrive -psprovider filesystem | foreach {$_.root} | join-path -childpath Subdir

Descrizione
-----------
Questo comando combina le radici di ogni unità del file system di Windows PowerShell nella console al percorso figlio Subdir.

Viene utilizzato il cmdlet Get-PSDrive per ottenere le unità di Windows PowerShell supportate dal provider FileSystem. Mediante l'istruzione ForEach viene selezionata solo la proprietà Root degli oggetti PSDriveInfo, la quale viene combinata con il percorso figlio specificato.

Dall'output si rileva che le unità di Windows PowerShell del computer hanno incluso un'unità mappata alla directory C:\Programmi.

Vedere anche

  • about_Providers
  • Test-Path
  • Split-Path
  • Resolve-Path
  • Convert-Path


Limit-EventLog

Imposta le proprietà del registro eventi che limitano la dimensione del registro stesso e l'età delle voci che contiene.

Sintassi

Limit-EventLog [-LogName] <string[]> [-ComputerName <string[]>] [-MaximumSize <Int64>] [-OverFlowAction {<OverwriteAsNeeded> | <OverwriteOlder> | <DoNotOverwrite>}] [-RetentionDays <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Limit-EventLog imposta la dimensione massima di un registro eventi classico, stabilisce per quanto tempo viene conservato ogni evento e definisce l'azione da eseguire quando viene raggiunta la dimensione massima del registro. È possibile utilizzarlo per limitare i registri eventi nei computer locali o remoti.

I cmdlet che contengono il sostantivo EventLog (cmdlet EventLog) funzionano solo su registri eventi classici. Per ottenere eventi da registri che utilizzano la tecnologia Registro eventi di Windows in Windows Vista e nelle versioni successive di Windows, utilizzare Get-WinEvent.

Parametri

-ComputerName <string[]>

Specifica un computer remoto. Il valore predefinito è il computer locale.

Digitare il nome NetBIOS, un indirizzo IP (Internet Protocol) o un nome di dominio completo di un computer remoto. Per specificare il computer locale, digitare il nome del computer, un punto (.) o "localhost".

Questo parametro non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName di Limit-EventLog anche se il computer non è configurato per l'esecuzione di comandi remoti.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Local computer
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LogName <string[]>

Specifica i registri eventi. Immettere il nome del registro, ovvero il valore della proprietà Log non di LogDisplayName, di uno o più registri eventi separati da virgole. Non è consentito l'utilizzo di caratteri jolly. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-MaximumSize <Int64>

Specifica la dimensione massima, espressa in byte, dei registri eventi. Immettere un valore compreso tra 64 kilobyte (KB) e 4 gigabyte (GB). Il valore deve essere divisibile per 64 KB (65536).

Questo parametro specifica il valore della proprietà MaximumKilobytes dell'oggetto System.Diagnostics.EventLog che rappresenta un registro eventi classico.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-OverFlowAction <OverflowAction>

Specifica l'azione eseguita quando viene raggiunta la dimensione massima del registro eventi.

I valori validi sono:

--DoNotOverwrite: le voci esistenti vengono mantenute e le nuove voci vengono ignorate.

--OverwriteAsNeeded: ogni nuova voce sovrascrive la voce meno recente.

--OverwriteOlder: i nuovi eventi sovrascrivono gli eventi con data antecedente il valore specificato dalla proprietà MinimumRetentionDays. Se non sono presenti eventi con data antecedente il valore della proprietà MinimumRetentionDays, i nuovi eventi vengono ignorati.

Questo parametro specifica il valore della proprietà OverflowAction dell'oggetto System.Diagnostics.EventLog che rappresenta un registro eventi classico.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-RetentionDays <int>

Specifica il numero minimo di giorni di permanenza di un evento nel registro eventi.

Questo parametro specifica il valore della proprietà MinimumRetentionDays dell'oggetto System.Diagnostics.EventLog che rappresenta un registro eventi classico.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Nessuno
Output | Nessuno Nessuno

Note

Per utilizzare Limit-EventLog in Windows Vista e nelle versioni successive di Windows, aprire Windows PowerShell con l'opzione "Esegui come amministratore".

Limit-EventLog modifica le proprietà dell'oggetto System.Diagnostics.EventLog che rappresenta un registro eventi classico. Per visualizzare le impostazioni correnti delle proprietà del registro eventi, digitare "Get-EventLog -list".

Esempio 1

C:\PS>limit-eventLog -logname "Windows PowerShell" -MaximumSize 20KB

Descrizione
-----------
Questo comando aumenta la dimensione massima del registro eventi di Windows PowerShell nel computer locale a 20480 kilobyte (KB) (20 KB).

Esempio 2

C:\PS>limit-eventlog -logname Security -comp Server01, Server02 -retentionDays 7

Descrizione
-----------
Questo comando garantisce che gli eventi nel registro di sicurezza dei computer Server01 e Server02 vengano mantenuti per almeno 7 giorni.

Esempio 3

C:\PS>$logs = get-eventlog -list | foreach {$_.log}

C:\PS> limit-eventlog -overflowaction OverwriteOlder -logname $logs

C:\PS> get-eventlog -list

Max(K) Retain OverflowAction     Entries  Log
------ ------ --------------     -------  ---
15,168      0 OverwriteOlder       3,412  Application
   512      0 OverwriteOlder           0  DFS Replication
   512      0 OverwriteOlder          17  DxStudio
10,240      7 OverwriteOlder           0  HardwareEvents
   512      0 OverwriteOlder           0  Internet Explorer
   512      0 OverwriteOlder           0  Key Management Service
16,384      0 OverwriteOlder           4  ODiag
16,384      0 OverwriteOlder         389  OSession
                                          Security
15,168      0 OverwriteOlder      19,360  System
15,360      0 OverwriteOlder      15,828  Windows PowerShell

Descrizione
-----------
Con questi comandi l'azione di overflow di tutti i registri eventi nel computer locale viene impostata su "OverwriteOlder".

Il primo comando ottiene i nomi di tutti i registri nel computer locale. Il secondo comando imposta l'azione di overflow. Il terzo comando consente di visualizzare i risultati.

Vedere anche

  • Clear-EventLog
  • Get-EventLog
  • Limit-EventLog
  • New-EventLog
  • Remove-EventLog
  • Show-EventLog
  • Write-EventLog
  • Get-WinEvent


Measure-Command

Misura il tempo necessario per eseguire blocchi di script e cmdlet.

Sintassi

Measure-Command [-Espressione] <scriptblock> [-InputObject <psobject>] [<CommonParameters>]

Descrizione

Il cmdlet Measure-Command esegue internamente un blocco di script o un cmdlet, misura il tempo necessario per l'esecuzione dell'operazione e ne restituisce il valore.

Parametri

-Espressione <scriptblock>

Specifica l'espressione di cui viene misurato il tempo necessario per l'esecuzione. Racchiudere l'espressione tra parentesi graffe ({}). Il nome del parametro ("Expression") è facoltativo.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica gli oggetti che rappresentano le espressioni da misurare. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare un oggetto a Measure-Command.
Output | System.TimeSpan Measure-Command restituisce un oggetto intervallo di tempo che rappresenta il risultato.

Note

Per ulteriori informazioni, digitare "Get-Help Measure-Command -detailed". Per informazioni tecniche, digitare "Get-Help Measure-Command -full".

Se per un parametro vengono specificati più valori, utilizzare virgole per separarli. Ad esempio, "<nome-parametro> <valore1>, <valore2>".

Esempio 1

C:\PS>Measure-Command { get-eventlog "windows powershell" }

Descrizione
-----------
Questo comando misura il tempo richiesto per eseguire un comando get-eventlog che ottiene gli eventi nel registro eventi di Windows PowerShell.

Esempio 2

C:\PS>measure-command {get-childitem c:\windows -include *.txt -recurse}

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 8
Milliseconds      : 618
Ticks             : 86182763
TotalDays         : 9.9748568287037E-05
TotalHours        : 0.00239396563888889
TotalMinutes      : 0.143637938333333
TotalSeconds      : 8.6182763
TotalMilliseconds : 8618.2763

C:\PS>measure-command {get-childitem c:\windows -filter "*.txt" -recurse}

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 1
Milliseconds      : 140
Ticks             : 11409189
TotalDays         : 1.32050798611111E-05
TotalHours        : 0.000316921916666667
TotalMinutes      : 0.019015315
TotalSeconds      : 1.1409189
TotalMilliseconds : 1140.9189

Descrizione
-----------
Tramite questi comandi verrà visualizzato il valore associato all'utilizzo di un filtro specifico del provider in comandi di Windows PowerShell. Con il primo comando verrà misurato il tempo necessario per elaborare un comando Get-ChildItem ricorsivo in cui viene utilizzato il parametro Include. Con il secondo comando verrà invece misurato il tempo necessario per elaborare un comando Get-ChildItem ricorsivo in cui viene utilizzato il parametro Filter specifico del provider.

Vedere anche

  • Trace-Command
  • Invoke-Command


Measure-Object

Calcola le proprietà numeriche degli oggetti e i caratteri, le parole e le righe degli oggetti stringa, ad esempio i file di testo.

Sintassi

Measure-Object [-Average] [-Maximum] [-Minimum] [-Sum] [[-Property] <string[]>] [-InputObject <psobject>] [<CommonParameters>]

Measure-Object [-Character] [-IgnoreWhiteSpace] [-Line] [-Word] [[-Property] <string[]>] [-InputObject <psobject>] [<CommonParameters>]

Descrizione

Il cmdlet Measure-Object calcola i valori della proprietà di determinati tipi di oggetti. Measure-Object esegue tre tipi di misurazioni, a seconda dei parametri nel comando.

Il cmdlet Measure-Object esegue calcoli sui valori delle proprietà degli oggetti. Può contare gli oggetti e calcolare il valore minimo e massimo, la somma e la media dei valori numerici. Per gli oggetti di testo, può contare e calcolare il numero di righe, parole e caratteri.

Parametri

-Average

Visualizza il valore medio delle proprietà specificate.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Character

Conta il numero di caratteri inclusi nell'oggetto di input.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-IgnoreWhiteSpace

Ignora lo spazio nei conteggi di parole e caratteri. Per impostazione predefinita, lo spazio non viene ignorato.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica gli oggetti da misurare. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Line

Conta il numero di righe incluse nell'oggetto di input.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Maximum

Visualizza il valore massimo delle proprietà specificate.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Minimum

Visualizza il valore minimo delle proprietà specificate.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Property <string[]>

Specifica una o più proprietà numeriche da misurare. L'impostazione predefinita è la proprietà Count (Length) dell'oggetto.

Obbligatorio? | false
Posizione? | 1
Valore predefinito | Count
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Sum

Visualizza la somma dei valori delle proprietà specificate.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Word

Conta il numero di parole incluse nell'oggetto di input.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare oggetti a Measure-Object.
Output | GenericMeasureInfo o TextMeasureInfoObject

Esempio 1

C:\PS>get-childitem | measure-object

Descrizione
-----------
Con questo comando vengono contati i file e le cartelle presenti nella directory corrente.

Esempio 2

C:\PS>get-childitem | measure-object -property length -minimum -maximum -average

Descrizione
-----------
Con questo comando vengono visualizzati il valore minimo e massimo e la somma delle dimensioni di tutti i file inclusi nella directory corrente, nonché le dimensioni medie di un file incluso nella directory.

Esempio 3

C:\PS>get-content C:\test.txt | measure-object -character -line -word

Descrizione
-----------
Tramite questo comando verrà visualizzato il numero di caratteri, parole e righe inclusi nel file Text.txt.

Esempio 4

C:\PS>get-process | measure-object -property workingset -minimum -maximum -average

Descrizione
-----------
Con questo comando vengono visualizzate le dimensioni minime, massime e medie dei working set dei processi nel computer.

Esempio 5

C:\PS>import-csv d:\test\serviceyrs.csv | measure-object -property years -minimum -maximum -average

Descrizione
-----------
Questo comando calcola gli anni medi di servizio dei dipendenti di una società.

Il file ServiceYrs.csv è un file CSV che contiene il numero di dipendenti e gli anni di servizio di ciascun dipendente. La prima riga nella tabella è una riga di intestazione di "EmpNo, Years".

Quando si utilizza Import-Csv per importare il file, il risultato è un oggetto PSCustomObject con proprietà nota di EmpNo e Years. È possibile utilizzare Measure-Object per calcolare i valori di queste proprietà, come qualsiasi altra proprietà di un oggetto.

Esempio 6

C:\PS>get-childitem | measure-object -property psiscontainer -max -sum -min -average

Count    : 126
Average  : 0.0634920634920635
Sum      : 8
Maximum  : 1
Minimum  : 0
Property : PSIsContainer

Descrizione
-----------
In questo esempio viene illustrato che Measure-Object può misurare valori booleani. In questo caso, utilizza la proprietà booleana PSIsContainer per misurare l'incidenza delle cartelle (rispetto ai file) nella directory corrente.

Vedere anche

  • Compare-Object
  • ForEach-Object
  • Group-Object
  • New-Object
  • Select-Object
  • Sort-Object
  • Tee-Object
  • Where-Object


Move-Item

Sposta un elemento da una posizione a un'altra.

Sintassi

Move-Item [-LiteralPath] <string[]> [[-Destination] <string>] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Move-Item [-Path] <string[]> [[-Destination] <string>] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Move-Item sposta un elemento, incluse le proprietà, il contenuto e gli elementi figlio, da una posizione a un'altra. Le posizioni devono essere supportate dallo stesso provider. È possibile, ad esempio, spostare un file o una sottodirectory da una directory a un'altra oppure spostare una sottochiave del Registro di sistema da una chiave a un'altra. Quando si sposta un elemento, esso viene aggiunto alla nuova posizione ed eliminato da quella originale.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Destination <string>

Specifica il percorso in cui spostare gli elementi. Il valore predefinito è la directory corrente. I caratteri jolly sono consentiti, ma il risultato deve specificare un solo percorso.

Per rinominare l'elemento spostato, specificare un nuovo nome nel valore del parametro Destination.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di spostare un elemento che sovrascrive un elemento di sola lettura esistente. L'implementazione varia a seconda del provider. Per ulteriori informazioni, vedere about_Providers. Quando si utilizza il parametro Force, il cmdlet non può ignorare le limitazioni di sicurezza.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Sposta unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica il percorso corrente degli elementi. A differenza di Path, il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Passa un oggetto che rappresenta l'elemento alla pipeline. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso corrente degli elementi. Il valore predefinito è la directory corrente. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso a Move-Item.
Output | Nessuno o un oggetto che rappresenta l'elemento spostato. Quando si utilizza il parametro Passthru, con Move-Item viene generato un oggetto che rappresenta l'elemento spostato. Negli altri casi, il cmdlet non genera alcun output.

Note

Move-Item sposta i file tra le unità supportate dallo stesso provider, ma sposta unicamente le directory all'interno della stessa unità.

Poiché un comando Move-Item sposta le proprietà, il contenuto e gli elementi figlio di un elemento, per impostazione predefinita tutti gli spostamenti sono ricorsivi.

È inoltre possibile fare riferimento a Move-Item tramite i relativi alias predefiniti "move", "mv" e "mi". Per ulteriori informazioni, vedere about_Aliases.

Il cmdlet Move-Item è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PsProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>move-item -path C:\test.txt -destination E:\Temp\tst.txt

Descrizione
-----------
Con questo comando il file Test.txt viene spostato dall'unità C: alla directory E:\Temp e rinominato da "test.txt" a "tst.txt".

Esempio 2

C:\PS>move-item -path C:\Temp -destination C:\Logs

Descrizione
-----------
Con questo comando la directory C:\Temp e il relativo contenuto viene spostato nella directory C:\Logs. Nella directory Logs sono ora visualizzati la directory Temp e tutte le sottodirectory e i file che contiene.

Esempio 3

C:\PS>move-item -path .\*.txt -destination C:\Logs

Descrizione
-----------
Con questo comando vengono spostati nella directory C:\Logs tutti i file di testo (*.txt) nella directory corrente, rappresentata da un punto (.).

Esempio 4

C:\PS>get-childitem -path . -recurse -include *.txt | move-item -destination C:\TextFiles

Descrizione
-----------
Con questo comando vengono spostati nella directory C:\TextFiles tutti i file di testo dalla directory corrente e da tutte le sottodirectory, in modalità ricorsiva.

Viene utilizzato il cmdlet Get-ChildItem per ottenere tutti gli elementi figlio con estensione di file *.txt nella directory corrente, rappresentata dal punto (.), e nelle relative sottodirectory. Vengono utilizzati il parametro Recurse per rendere ricorsivo il recupero e il parametro Include per limitare il recupero ai file *.txt.

L'operatore pipeline (|) invia i risultati di questo comando a Move-Item, tramite il quale i file di testo vengono spostati nella directory TextFiles.

Se i file spostati in C:\Textfiles hanno lo stesso nome, viene visualizzato un errore e l'esecuzione di Move-Item prosegue, ma viene spostato solo un file per ogni nome in C:\Textfiles. Gli altri file rimangono nelle directory originali.

Se la directory Textfiles o qualsiasi altro elemento del percorso di destinazione non esiste, il comando ha esito negativo. La directory mancante non viene creata, anche se si utilizza il parametro Force. Tramite Move-Item il primo elemento viene spostato in un file denominato "Textfiles", quindi viene visualizzato un errore per segnalare che il file esiste già.

Per impostazione predefinita, inoltre, Get-ChildItem non sposta i file nascosti. Per spostare i file nascosti, utilizzare il parametro Force con Get-ChildItem.

Esempio 5

C:\PS>move-item hklm:\software\mycompany\* hklm:\software\mynewcompany

Descrizione
-----------
Con questo comando vengono spostate nella chiave MyNewCompany le chiavi del Registro di sistema con i relativi valori all'interno della chiave del Registro di sistema MyCompany in HKLM\Software. Il carattere jolly (*) indica che deve essere spostato il contenuto della chiave MyCompany, non la chiave stessa. In questo comando, i nomi dei parametri facoltativi Path e Destination vengono omessi.

Esempio 6

C:\PS>move-item -literalpath 'Logs[Sept`06]' -destination 'Logs[2006]'

Descrizione
-----------
Con questo comando la directory Logs[Sept`06] e il relativo contenuto viene spostata nella directory Logs[2006].

Anziché Path, viene utilizzato il parametro LiteralPath perché il nome della directory originale include i caratteri di parentesi quadra aperta e chiusa ([ e ]). Il percorso viene inoltre racchiuso tra virgolette (' '), per evitare che il simbolo "`" non venga interpretato in modo errato.

Il parametro Destination non richiede un percorso letterale, poiché anche la variabile Destination deve essere racchiusa tra virgolette in quanto contiene parentesi che potrebbero essere interpretate in modo errato.

Vedere anche

  • about_Providers
  • Clear-Item
  • Get-Item
  • Invoke-Item
  • Set-Item
  • New-Item
  • Remove-Item
  • Rename-Item
  • Copy-Item


Move-ItemProperty

Sposta una proprietà da una posizione a un'altra.

Sintassi

Move-ItemProperty [-LiteralPath] <string[]> [-Destination] <string> [-Name] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Move-ItemProperty [-Path] <string[]> [-Destination] <string> [-Name] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Move-ItemProperty sposta una proprietà di un elemento da un elemento a un altro. È possibile, ad esempio, spostare una voce del Registro di sistema da una chiave del Registro di sistema a un'altra. Quando si sposta la proprietà di un elemento, essa viene aggiunta alla nuova posizione ed eliminata da quella originale.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Destination <string>

Specifica il percorso di destinazione.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di spostare proprietà da o verso elementi altrimenti inaccessibili all'utente. L'implementazione varia a seconda del provider. Per ulteriori informazioni, vedere about_Providers.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Sposta unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica il percorso corrente della proprietà. A differenza di Path, il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Name <string[]>

Specifica il nome della proprietà da spostare.

Obbligatorio? | true
Posizione? | 3
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Passa un oggetto che rappresenta la proprietà dell'elemento. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso corrente della proprietà. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso a Move-ItemProperty.
Output | Nessuno o System.Management.Automation.PSCustomObject Quando si utilizza il parametro PassThru, Move-ItemProperty genera un oggetto PSCustomObject che rappresenta la proprietà dell'elemento spostato. Negli altri casi, il cmdlet non genera alcun output.

Note

I nomi dei parametri Path, Destination e Name sono facoltativi. Se si omettono i nomi dei parametri, i valori dei parametri senza nome devono essere riportati nell'ordine seguente: Path, Destination, Name. Se si includono i nomi dei parametri, i parametri possono essere riportati in qualsiasi ordine.

È inoltre possibile fare riferimento a Move-ItemProperty tramite il relativo alias predefinito "mp". Per ulteriori informazioni, vedere about_Aliases.

Il cmdlet Move-ItemProperty è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>move-itemproperty HKLM:\Software\MyCompany\MyApp -Name `
Version -Destination HKLM:\Software\MyCompany\NewApp

Descrizione
-----------
Con questo comando il valore del Registro di sistema "Version" e i relativi dati vengono spostati dalla sottochiave MyApp alla sottochiave NewApp della chiave del Registro di sistema HKLM\Software\MyCompany.

Vedere anche

  • about_Providers
  • Clear-ItemProperty
  • New-ItemProperty
  • Copy-ItemProperty
  • Rename-ItemProperty
  • Get-ItemProperty
  • Set-ItemProperty
  • Remove-ItemProperty


New-Alias

Crea un nuovo alias.

Sintassi

New-Alias [-Name] <string> [-Value] <string> [-Description <string>] [-Force] [-Option {<None> | <ReadOnly> | <Constant> | <Private> | <AllScope>}] [-PassThru] [-Scope <string>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet New-Alias crea un nuovo alias nella sessione corrente di Windows PowerShell. Gli alias creati tramite New-Alias non verranno salvati dopo l'uscita dalla sessione o la chiusura di Windows PowerShell. È possibile utilizzare il cmdlet Export-Alias per salvare in un file le informazioni sugli alias. È possibile utilizzare Import-Alias in un secondo momento per recuperare le informazioni salvate sugli alias.

Parametri

-Description <string>

Specifica una descrizione dell'alias. È possibile digitare qualsiasi stringa. Se la descrizione include spazi, racchiuderla tra virgolette.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Se impostato, è simile a Set-Alias se l'alias denominato esiste già.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string>

Specifica il nuovo alias. In un alias è possibile utilizzare qualsiasi carattere alfanumerico, tuttavia il primo carattere non può essere un numero.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Option <ScopedItemOptions>

Imposta una o più proprietà facoltative dell'alias. I valori validi sono:

-- None: non imposta alcuna opzione. (valore predefinito)

-- ReadOnly: gli alias non sono modificabili a meno che non si utilizzi il parametro Force.

-- Constant: l'alias non è modificabile anche se si utilizza il parametro Force.

-- Private: l'alias è disponibile solo nell'ambito specificato dal parametro Scope ed è invisibile in tutti gli altri ambiti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta il nuovo alias. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Scope <string>

Specifica l'ambito del nuovo alias. I valori validi sono "Global", "Local", "Script" oppure un numero relativo all'ambito corrente, ovvero da 0 al numero di ambiti, dove 0 corrisponde all'ambito corrente e 1 al relativo padre. Il valore predefinito è "Local". Per ulteriori informazioni, vedere about_Scopes.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Value <string>

Specifica il nome dell'elemento del cmdlet o del comando che viene convertito in forma di alias.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Nessuno o System.Management.Automation.AliasInfo Quando si utilizza il parametro PassThru, New-Alias genera un oggetto System.Management.Automation.AliasInfo che rappresenta il nuovo alias. Negli altri casi, il cmdlet non genera alcun output.

Note

Per creare un nuovo alias, utilizzare Set-Alias o New-Alias. Per modificare un alias, utilizzare Set-Alias. Per eliminare un alias, utilizzare Remove-Item.

Esempio 1

C:\PS>new-alias list get-childitem

Descrizione
-----------
Questo comando crea un alias denominato "list" per rappresentare il cmdlet Get-ChildItem.

Esempio 2

C:\PS>new-alias -name w -value get-wmiobject -description "quick wmi alias" -option ReadOnly

C:\PS> get-alias -name w | format-list *

Descrizione
-----------
Questo comando crea un alias denominato "w" per rappresentare il cmdlet Get-WMIObject. Per l'alias verrà creata una descrizione "quick wmi alias" che verrà impostata come di sola lettura. Nell'ultima riga del comando viene utilizzato Get-Alias per ottenere il nuovo alias che verrà reindirizzato a Format-List per visualizzare tutte le informazioni relative.

Vedere anche

  • Set-Alias
  • Get-Alias
  • Export-Alias
  • Import-Alias


New-Event

Crea un nuovo evento.

Sintassi

New-Event [-SourceIdentifier] <string> [[-Sender] <psobject>] [[-EventArguments] <PSObject[]>] [[-MessageData] <psobject>] [<CommonParameters>]

Descrizione

Il cmdlet New-Event crea un nuovo evento personalizzato.

È possibile utilizzare eventi personalizzati per informare gli utenti dei cambiamenti di stato nel programma e di qualsiasi modifica che il programma è in grado di rilevare, incluse le condizioni dell'hardware o del sistema, lo stato dell'applicazione, lo stato del disco, lo stato di rete o il completamento di un processo in background.

Gli eventi personalizzati vengono aggiunti automaticamente alla coda degli eventi nella sessione indipendentemente da quando sono stati generati; non è necessario sottoscriverli. Tuttavia, se si desidera inoltrare un evento alla sessione locale o specificare un'azione per rispondere all'evento, utilizzare il cmdlet Register-EngineEvent per sottoscrivere l'evento personalizzato.

Quando si sottoscrive un evento personalizzato, il sottoscrittore di eventi viene aggiunto alla sessione. Se si annulla la sottoscrizione di eventi tramite il cmdlet Unregister-Event, il sottoscrittore di eventi e l'evento personalizzato vengono eliminati dalla sessione. Se non si sottoscrive l'evento personalizzato, per eliminare l'evento è necessario modificare le condizioni del programma o chiudere la sessione di Windows PowerShell.

Parametri

-EventArguments <PSObject[]>

Specifica un oggetto che contiene opzioni per l'evento.

Obbligatorio? | false
Posizione? | 3
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-MessageData <psobject>

Specifica dati aggiuntivi associati all'evento. Il valore di questo parametro viene visualizzato nella proprietà MessageData dell'oggetto evento.

Obbligatorio? | false
Posizione? | 4
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Sender <psobject>

Specifica l'oggetto che genera l'evento. L'impostazione predefinita è il modulo di Windows PowerShell.

Obbligatorio? | false
Posizione? | 2
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SourceIdentifier <string>

Specifica un nome per il nuovo evento. Questo parametro è obbligatorio ed è necessario che sia univoco nella sessione.

Il valore di questo parametro viene visualizzato nella proprietà SourceIdentifier degli eventi.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.Management.Automation.PSEventArgs

Note

Il nuovo evento personalizzato, la sottoscrizione di eventi e la coda degli eventi esistono solo nella sessione corrente. Se si chiude la sessione corrente, la coda degli eventi viene eliminata e la sottoscrizione di eventi viene annullata.

Esempio 1

C:\PS>new-event -sourceidentifier Timer -sender windows.timer  -messagedata "Test"

Descrizione
-----------
Questo comando crea un nuovo evento nella coda degli eventi di Windows PowerShell. Utilizza un oggetto Windows.Timer per inviare l'evento.

Esempio 2

C:\PS>function Enable-ProcessCreationEvent
{
   $query = New-Object System.Management.WqlEventQuery "__InstanceCreationEvent", (New-Object TimeSpan 0,0,1), "TargetInstance isa 'Win32_Process'"
   $processWatcher = New-Object System.Management.ManagementEventWatcher $query
   $identifier = "WMI.ProcessCreated"

   Register-ObjectEvent $processWatcher "EventArrived" -SupportEvent $identifier -Action {
       [void] (New-Event -sourceID "PowerShell.ProcessCreated" -Sender $args[0] -EventArguments $args[1].SourceEventArgs.NewEvent.TargetInstance)
   }
}

Descrizione
-----------
Questa funzione di esempio utilizza il cmdlet New-Event per generare un evento in risposta a un altro evento. Il comando utilizza il cmdlet Register-ObjectEvent per sottoscrivere l'evento Strumentazione gestione Windows (WMI) generato quando viene creato un nuovo processo. Il comando utilizza il parametro Action del cmdlet per chiamare il cmdlet New-Event che crea il nuovo evento.

Poiché gli eventi generati da New-Event vengono aggiunti automaticamente alla coda degli eventi di Windows PowerShell, non è necessaria la registrazione di tale evento.

Vedere anche

  • Register-ObjectEvent
  • Register-EngineEvent
  • Register-WmiEvent
  • Unregister-Event
  • Get-Event
  • Remove-Event
  • Wait-Event


New-EventLog

Crea un nuovo registro eventi e una nuova origine evento in un computer locale o remoto.

Sintassi

New-EventLog [-LogName] <string> [-Source] <string[]> [[-ComputerName] <string[]>] [-CategoryResourceFile <string>] [-MessageResourceFile <string>] [-ParameterResourceFile <string>] [<CommonParameters>]

Descrizione

Questo cmdlet crea un nuovo registro eventi classico in un computer locale o remoto. Può inoltre registrare un'origine evento che scrive nel nuovo registro o in uno esistente.

I cmdlet che contengono il sostantivo EventLog (cmdlet EventLog) funzionano solo su registri eventi classici. Per ottenere eventi da registri che utilizzano la tecnologia Registro eventi di Windows in Windows Vista e nelle versioni successive di Windows, utilizzare Get-WinEvent.

Parametri

-CategoryResourceFile <string>

Specifica il percorso del file che contiene stringhe di categoria per gli eventi di origine. Questo file è anche noto come file di messaggi di categoria.

Il file deve essere presente nel computer in cui viene creato il registro eventi. Questo parametro non crea né sposta file.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string[]>

Crea i nuovi registri eventi nei computer specificati. Il valore predefinito è il computer locale.

Digitare il nome NetBIOS, un indirizzo IP (Internet Protocol) o un nome di dominio completo di un computer remoto. Per specificare il computer locale, digitare il nome del computer, un punto (.) o "localhost".

Questo parametro non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName di Get-EventLog anche se il computer non è configurato per l'esecuzione di comandi remoti.

Obbligatorio? | false
Posizione? | 3
Valore predefinito | .
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LogName <string>

Specifica il nome del registro eventi.

Se il registro non esiste, viene creato tramite New-EventLog che utilizza questo valore per le proprietà Log e LogDisplayName del nuovo registro eventi. Se il registro esiste, ne viene registrata una nuova origine tramite New-EventLog.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-MessageResourceFile <string>

Specifica il percorso del file che contiene stringhe di formattazione dei messaggi per gli eventi di origine. Questo file è anche noto come file di messaggi degli eventi.

Il file deve essere presente nel computer in cui viene creato il registro eventi. Questo parametro non crea né sposta file.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ParameterResourceFile <string>

Specifica il percorso del file che contiene le stringhe utilizzate per le sostituzioni dei parametri nelle descrizioni di evento. Questo file è anche noto come file di messaggi dei parametri.

Il file deve essere presente nel computer in cui viene creato il registro eventi. Questo parametro non crea né sposta file.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Source <string[]>

Specifica i nomi delle origini del registro eventi, ad esempio programmi applicativi che scrivono nel registro eventi. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.Diagnostics.EventLogEntry

Note

Per utilizzare New-EventLog in Windows Vista e nelle versioni successive di Windows, aprire Windows PowerShell con l'opzione "Esegui come amministratore".

Per creare un'origine evento in Windows Vista, Windows XP Professional o Windows Server 2003, è necessario essere membro del gruppo Administrators del computer.

Quando si creano un nuovo registro eventi e una nuova origine evento, la nuova origine per il nuovo registro viene registrata nel sistema, ma il registro viene creato solo quando ne viene scritta la prima voce.

Nel sistema operativo i registri eventi vengono archiviati come file. Quando si crea un nuovo registro eventi, il file associato viene archiviato nella directory %SystemRoot%\System32\Config del computer specificato. Il nome file è costituito dai primi otto caratteri della proprietà Log con estensione evt.

Esempio 1

C:\PS>new-eventlog -source TestApp -logname TestLog -MessageResourceFile C:\Test\TestApp.dll

Descrizione
-----------
Con questo comando viene creato il registro eventi TestLog nel computer locale e ne viene registrata una nuova origine.

Esempio 2

C:\PS>$file = "C:\Program Files\TestApps\NewTestApp.dll"

C:\PS> new-eventlog -computername Server01 -source NewTestApp -logname Application -MessageResourceFile $file -CategoryResourceFile $file

Descrizione
-----------
Con questo comando viene aggiunta una nuova origine evento, NewTestApp, al registro applicazioni nel computer remoto Server01.

Per questo comando è necessario che il file NewTestApp.dll si trovi nel computer Server01.

Vedere anche

  • Clear-EventLog
  • Get-EventLog
  • Limit-EventLog
  • New-EventLog
  • Remove-EventLog
  • Show-EventLog
  • Write-EventLog
  • Get-WinEvent


New-Item

Crea un nuovo elemento.

Sintassi

New-Item [-URI <Uri>] [-SDDL <string>] [-ExactMatch] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet New-Item crea un nuovo elemento e ne imposta il valore. I tipi di elementi che è possibile creare dipendono dal percorso dell'elemento. Ad esempio, nel file system New-Item viene utilizzato per creare file e cartelle. Nel Registro di sistema, New-Item crea chiavi e voci del Registro di sistema.

Nella directory Security, è possibile utilizzare il cmdlet New-Item per creare e configurare la sicurezza dei plug-in.

Parametri

-URI <Uri>

Identifica l'URI per il quale viene autorizzato l'accesso in base al valore del parametro Sddl.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SDDL <string>

Specifica la stringa SDDL (Security Descriptor Definition Language) per la voce di controllo di accesso. Vengono identificate le impostazioni di sicurezza

utilizzate per autorizzare l'accesso all'URI di risorsa specificato.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ExactMatch

Specifica come utilizzare le impostazioni di sicurezza specificate nel parametro Sddl. Se il parametro ExactMatch è impostato su

True, le impostazioni di sicurezza in Sddl vengono utilizzate solo per autorizzare i tentativi di accesso all'URI esattamente secondo quanto specificato dall'URI.

Se ExactMatch è impostato su False, le impostazioni di sicurezza in Sddl vengono utilizzate per autorizzare i tentativi di accesso agli URI che iniziano

con la stringa specificata nell'URI.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Object È possibile reindirizzare un valore per il nuovo elemento al cmdlet New-Item.
Output | Any

Note

Il cmdlet New-Item è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PsProvider". Per ulteriori informazioni, vedere About_Providers.

Esempio 1

C:\PS>New-Item -path WSMan:\localhost\Plugin\TestPlugin\Resources\Resource_5967683\Security -Sddl "O:NSG:BAD:P(A;;GA;;;BA)S:P(AU;FA;GA;;;WD)(AU;SA;GWGX;;;WD)"

Questo comando crea una voce di sicurezza nella directory Security della risorsa specifica Resource_5967683.

Vedere anche

  • about_Providers
  • Get-Item
  • Set-Item
  • Remove-Item
  • Clear-Item
  • Invoke-Item
  • Rename-Item
  • Move-Item
  • Copy-Item


New-ItemProperty

Crea una nuova proprietà per un elemento e ne imposta il valore. Ad esempio, è possibile utilizzare New-ItemProperty per creare e modificare valori e dati del Registro di sistema che sono proprietà di una chiave del Registro di sistema.

Sintassi

New-ItemProperty [-LiteralPath] <string[]> [-Name] <string> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PropertyType <string>] [-Value <Object>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

New-ItemProperty [-Path] <string[]> [-Name] <string> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PropertyType <string>] [-Value <Object>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet New-ItemProperty crea una nuova proprietà per un elemento specificato e ne imposta il valore. In genere, questo cmdlet viene utilizzato per creare nuovi valori del Registro di sistema, perché tali valori sono proprietà di un elemento chiave del Registro di sistema.

Questo cmdlet non consente di aggiungere proprietà a un oggetto. Per aggiungere una proprietà a un'istanza di un oggetto, utilizzare il cmdlet Add-Member. Per aggiungere una proprietà a tutti gli oggetti di un determinato tipo, modificare il file Types.ps1xml.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path.

La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di creare una proprietà su un oggetto altrimenti inaccessibile all'utente. L'implementazione varia a seconda del provider. Per ulteriori informazioni, vedere about_Providers.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica un percorso della proprietà dell'elemento. Il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Name <string>

Specifica un nome per la nuova proprietà. Se la proprietà è una voce del Registro di sistema, il parametro specifica il nome della voce.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso dell'elemento. Questo parametro identifica l'elemento al quale verrà aggiunta la nuova proprietà.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PropertyType <string>

Specifica il tipo di proprietà che verrà aggiunta.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Value <Object>

Specifica il valore della proprietà. Se la proprietà è una voce del Registro di sistema, il parametro specifica il valore della voce.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a New-ItemProperty.
Output | System.Management.Automation.PSCustomObject New-ItemProperty restituisce un oggetto personalizzato che contiene la nuova proprietà.

Note

Il cmdlet New-ItemProperty è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>new-itemproperty -path HKLM:\Software\MyCompany -name NoOfEmployees -value 822

C:\PS> get-itemproperty hklm:\software\mycompany

PSPath        : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\mycompany
PSParentPath  : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software
PSChildName   : mycompany
PSDrive       : HKLM
PSProvider    : Microsoft.PowerShell.Core\Registry
NoOfLocations : 2
NoOfEmployees : 822

Descrizione
-----------
Questo comando aggiunge una nuova voce del Registro di sistema, NoOfEmployees, alla chiave MyCompany dell'hive HKLM:\Software.

Con il primo comando viene utilizzato il parametro Path per specificare il percorso della chiave del Registro di sistema MyCompany. Viene utilizzato il parametro Name per specificare un nome per la voce e il parametro Value per specificarne il valore.

Nel secondo comando viene utilizzato il cmdlet Get-ItemProperty per vedere la nuova voce del Registro di sistema.

Esempio 2

C:\PS>get-item -path HKLM:\Software\MyCompany | new-Itemproperty -name NoOfLocations -value 3

Descrizione
-----------
Con questo comando viene aggiunta una nuova voce del Registro di sistema a una chiave del Registro di sistema. Per specificare la chiave, viene utilizzato un operatore pipeline (|) per inviare un oggetto che rappresenta la chiave al cmdlet New-ItemProperty.

Nella prima parte del comando viene utilizzato il cmdlet Get-Item per ottenere la chiave del Registro di sistema MyCompany. Con l'operatore pipeline (|) i risultati del comando vengono inviati al cmdlet New-ItemProperty che aggiunge la nuova voce del Registro di sistema, NoOfLocations, e il relativo valore 3 alla chiave MyCompany.

Il funzionamento di questo comando è garantito dalla funzionalità di associazione dei parametri di Windows PowerShell mediante cui il percorso dell'oggetto RegistryKey restituito da Get-Item viene associato al parametro LiteralPath di New-ItemProperty. Per ulteriori informazioni, vedere about_Pipelines.

Vedere anche

  • about_Providers
  • Clear-ItemProperty
  • Copy-ItemProperty
  • Move-ItemProperty
  • Rename-ItemProperty
  • Get-ItemProperty
  • Set-ItemProperty
  • Remove-ItemProperty


New-Module

Crea un nuovo modulo dinamico presente solo in memoria.

Sintassi

New-Module [-Name] <string> [-ScriptBlock] <scriptblock> [-ArgumentList <Object[]>] [-AsCustomObject] [-Cmdlet <string[]>] [-Function <string[]>] [-ReturnResult] [<CommonParameters>]

New-Module [-ScriptBlock] <scriptblock> [-ArgumentList <Object[]>] [-AsCustomObject] [-Cmdlet <string[]>] [-Function <string[]>] [-ReturnResult] [<CommonParameters>]

Descrizione

Il cmdlet New-Module crea un modulo dinamico da un blocco di script. I membri del modulo dinamico, ad esempio funzioni e variabili, sono immediatamente disponibili nella sessione e rimangono disponibili fino alla chiusura di quest'ultima.

Come nei moduli statici, per impostazione predefinita, i cmdlet e le funzioni di un modulo dinamico vengono esportati, ma non le variabili e gli alias. Tuttavia, è possibile utilizzare il cmdlet Export-ModuleMember e i parametri di New-Module per ignorare le impostazioni predefinite.

I moduli dinamici sono presenti solo nella memoria, non su disco. Come per tutti i moduli, i membri dei moduli dinamici vengono eseguiti in un ambito privato del modulo, ovvero un elemento figlio dell'ambito globale. Con Get-Module non è possibile ottenere un modulo dinamico, ma Get-Command consente di ottenere i membri esportati.

Per rendere disponibile a Get-Module un modulo dinamico, reindirizzare un comando New-Module a Import-Module o reindirizzare l'oggetto modulo restituito da New-Module a Import-Module. Questa azione consente di aggiungere il modulo dinamico all'elenco Get-Module, ma non di salvare il modulo su disco o di renderlo permanente.

Parametri

-ArgumentList <Object[]>

Specifica gli argomenti (valori di parametro) passati al blocco di script.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-AsCustomObject

Restituisce un oggetto personalizzato con membri che rappresentano i membri del modulo.

Quando si utilizza il parametro AsCustomObject, New-Module crea il modulo dinamico, importa i membri del modulo nella sessione corrente, quindi restituisce un oggetto PSCustomObject anziché PSModuleInfo. È possibile salvare l'oggetto personalizzato in una variabile e utilizzare la notazione con punto per richiamare i membri.

Se il modulo dispone di più membri con lo stesso nome, ad esempio una funzione e una variabile entrambi denominati "A", solo un membro con ogni nome è accessibile dall'oggetto personalizzato.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Cmdlet <string[]>

Esporta solo i cmdlet specificati dal modulo nella sessione corrente. Immettere un elenco di cmdlet delimitati da virgole. È consentito l'utilizzo di caratteri jolly. Per impostazione predefinita, vengono esportati tutti i cmdlet nel modulo.

Non è possibile definire i cmdlet in un blocco di script, ma un modulo dinamico può includere cmdlet se li importa da un modulo binario.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-Function <string[]>

Esporta solo le funzioni specificate dal modulo nella sessione corrente. Immettere un elenco di funzioni separate da virgole. È consentito l'utilizzo di caratteri jolly. Per impostazione predefinita, vengono esportate tutte le funzioni definite in un modulo.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-Name <string>

Specifica un nome per il nuovo modulo. È inoltre possibile reindirizzare il nome di un modulo a New-Module.

Il valore predefinito è un nome generato automaticamente che inizia con "__DynamicModule_" seguito da un GUID che specifica il percorso del modulo dinamico.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | "__DynamicModule_" + GUID
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-ReturnResult

Esegue il blocco di script e ne restituisce i risultati anziché restituire un oggetto modulo.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ScriptBlock <scriptblock>

Specifica il contenuto del modulo dinamico. Racchiudere il contenuto tra parentesi graffe ( { } ) per creare un blocco di script. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input

System.String

È inoltre possibile reindirizzare una stringa di nomi di modulo a New-Module.

Output

System.Management.Automation.PSModuleInfo, System.Management.Automation.PSCustomObject oppure Nessuno

Per impostazione predefinita, New-Module genera un oggetto PSModuleInfo. Se si utilizza il parametro AsCustomObject, viene generato un oggetto PSCustomObject. Se si utilizza il parametro ReturnResult, viene restituito il risultato della valutazione del blocco di script nel modulo dinamico.

Note

È inoltre possibile fare riferimento a New-Module tramite il relativo alias, "nmo". Per ulteriori informazioni, vedere about_Aliases.

Esempio 1

C:\PS>new-module -scriptblock {function Hello {"Hello!"}}

Name              : __DynamicModule_2ceb1d0a-990f-45e4-9fe4-89f0f6ead0e5
Path              : 2ceb1d0a-990f-45e4-9fe4-89f0f6ead0e5
Description       :
Guid              : 00000000-0000-0000-0000-000000000000
Version           : 0.0
ModuleBase        :
ModuleType        : Script
PrivateData       :
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Hello, Hello]}
ExportedVariables : {}
NestedModules     : {}

Descrizione
-----------
Questo comando consente di creare un nuovo modulo dinamico con una funzione denominata "Salve". Il comando restituisce un oggetto modulo che rappresenta il nuovo modulo dinamico.

Esempio 2

C:\PS>new-module -scriptblock {function Hello {"Hello!"}}

Name              : __DynamicModule_2ceb1d0a-990f-45e4-9fe4-89f0f6ead0e5
Path              : 2ceb1d0a-990f-45e4-9fe4-89f0f6ead0e5
Description       :
Guid              : 00000000-0000-0000-0000-000000000000
Version           : 0.0
ModuleBase        :
ModuleType        : Script
PrivateData       :
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Hello, Hello]}
ExportedVariables : {}
NestedModules     : {}

C:\PS> get-module
C:\PS>

C:\PS> get-command Hello

CommandType     Name   Definition
-----------     ----   ----------
Function        Hello  "Hello!"

Descrizione
-----------
In questo esempio viene illustrato che il cmdlet Get-Module non restituisce i moduli dinamici, mentre il cmdlet Get-Command restituisce i membri esportati da questi ultimi.

Esempio 3

C:\PS>New-Module -scriptblock {$SayHelloHelp="Type 'SayHello', a space, and a name."; function SayHello ($name) { "Hello, $name" }; Export-ModuleMember -function SayHello -Variable SayHelloHelp}

C:\PS> $SayHelloHelp
Type 'SayHello', a space, and a name.

C:\PS> SayHello Jeffrey
Hello, Jeffrey

Descrizione
-----------
Questo comando utilizza il cmdlet Export-ModuleMember per esportare una variabile nella sessione corrente. Senza il comando Export-ModuleMember, viene esportata solo la funzione.

L'output indica che la variabile e la funzione sono state esportate nella sessione.

Esempio 4

C:\PS>new-module -scriptblock {function Hello {"Hello!"}} -name GreetingModule | import-module

C:\PS> get-module

Name              : GreetingModule
Path              : d54dfdac-4531-4db2-9dec-0b4b9c57a1e5
Description       :
Guid              : 00000000-0000-0000-0000-000000000000
Version           : 0.0
ModuleBase        :
ModuleType        : Script
PrivateData       :
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Hello, Hello]}
ExportedVariables : {}
NestedModules     : {}

C:\PS> get-command hello

CommandType     Name                                                               Definition
-----------     ----                                                               ----------
Function        Hello                                                              "Hello!"

Descrizione
-----------
Con questo comando viene illustrato che è possibile rendere disponibile un modulo dinamico al cmdlet Get-Module reindirizzando il modulo dinamico al cmdlet Import-Module.

Il primo comando utilizza un operatore pipeline (|) per inviare l'oggetto modulo generato da New-Module al cmdlet Import-Module. Viene utilizzato il parametro Name di New-Module per assegnare un nome descrittivo al modulo. Poiché Import-Module non restituisce oggetti per impostazione predefinita, non viene generato alcun output.

Il secondo comando utilizza il cmdlet Get-Module per ottenere i moduli nella sessione. Il risultato dimostra che Get-Module è in grado di ottenere il nuovo modulo dinamico.

Il terzo comando utilizza il cmdlet Get-Command per ottenere la funzione Salve esportata dal modulo dinamico.

Esempio 5

C:\PS>$m = new-module -scriptblock {function Hello ($name) {"Hello, $name"}; function Goodbye ($name) {"Goodbye, $name"}} -AsCustomObject

C:\PS> $m

C:\PS> $m | get-member

   TypeName: System.Management.Automation.PSCustomObject

Name        MemberType   Definition
----        ----------   ----------
Equals      Method       bool Equals(System.Object obj)
GetHashCode Method       int GetHashCode()
GetType     Method       type GetType()
ToString    Method       string ToString()
Goodbye     ScriptMethod System.Object Goodbye();
Hello       ScriptMethod System.Object Hello();

PS C:\ps-test> $m.goodbye("Jane")
Goodbye, Jane

PS C:\ps-test> $m.hello("Manoj")
Hello, Manoj

PS C:\ps-test> goodbye Jane
Goodbye, Jane

PS C:\ps-test> hello Manoj
Hello, Manoj

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il parametro AsCustomObject di New-Module per generare un oggetto personalizzato con metodi script che rappresentano le funzioni esportate.

Il primo comando utilizza il cmdlet New-Module per generare un modulo dinamico con due funzioni, Salve e Saluti. Utilizza il parametro AsCustomObject per generare un oggetto personalizzato anziché l'oggetto PSModuleInfo generato da New-Module per impostazione predefinita. Il comando consente di salvare l'oggetto personalizzato nella variabile $m.

Il secondo comando tenta di visualizzare il valore della variabile $m. Non viene visualizzato alcun contenuto.

Il terzo comando utilizza un operatore pipeline (|) per inviare l'oggetto personalizzato al cmdlet Get-Member, che consente di visualizzarne le proprietà e i metodi. L'output indica che l'oggetto dispone di metodi script che rappresentano le funzioni Salve e Saluti.

Il quarto e il quinto comando utilizzano il formato del metodo script per chiamare le funzioni Salve e Saluti.

Il sesto e il settimo comando chiamano le funzioni specificando il nome della funzione e il valore di parametro.

Esempio 6

C:\PS>new-module -scriptblock {function SayHello {"Hello, World!"}; SayHello} -returnResult

Hello, World!

Descrizione
-----------
Questo comando utilizza il parametro ReturnResult per richiedere i risultati dell'esecuzione del blocco di script anziché richiedere un oggetto modulo.

Il blocco di script nel nuovo modulo definisce la funzione SayHello, quindi la chiama.

Vedere anche

  • Get-Module
  • Import-Module
  • Remove-Module
  • Export-ModuleMember
  • about_Modules


New-ModuleManifest

Crea un nuovo manifesto del modulo.

Sintassi

New-ModuleManifest [-Path] <string> -Author <string> -CompanyName <string> -Copyright <string> -Description <string> -FileList <string[]> -FormatsToProcess <string[]> -ModuleToProcess <string> -NestedModules <string[]> -RequiredAssemblies <string[]> -TypesToProcess <string[]> [-AliasesToExport <string[]>] [-ClrVersion <Version>] [-CmdletsToExport <string[]>] [-DotNetFrameworkVersion <Version>] [-FunctionsToExport <string[]>] [-Guid <Guid>] [-ModuleList <Object[]>] [-ModuleVersion <Version>] [-PassThru] [-PowerShellHostName <string>] [-PowerShellHostVersion <Version>] [-PowerShellVersion <Version>] [-PrivateData <Object>] [-ProcessorArchitecture {<None> | <MSIL> | <X86> | <IA64> | <Amd64>}] [-RequiredModules <Object[]>] [-ScriptsToProcess <string[]>] [-VariablesToExport <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet New-ModuleManifest consente di creare un nuovo file manifesto del modulo (con estensione psd1), definirne i valori e salvare il file nel percorso specificato.

Gli autori del modulo possono utilizzare questo cmdlet per creare un manifesto per il modulo. Un manifesto di modulo è un file con estensione psd1 che contiene una tabella hash. Le chiavi e i valori nella tabella hash descrivono il contenuto e gli attributi del modulo, definiscono i prerequisiti e determinano la modalità di elaborazione dei componenti. I manifesti non sono obbligatori per un modulo.

New-ModuleManifest consente di creare un manifesto che include tutte le chiavi manifesto di uso comune, in modo da poter utilizzare l'output predefinito come modello del manifesto. Per aggiungere o modificare i valori oppure per aggiungere chiavi di modulo che non vengono aggiunte da questo cmdlet, aprire il file risultante in un editor di testo.

Ogni parametro di questo cmdlet (eccetto Path e PassThru) consente di creare una chiave manifesto del modulo e il relativo valore. In un manifesto del modulo, è richiesta solo la chiave ModuleVersion. Tuttavia, molti altri parametri di questo cmdlet sono obbligatori. È pertanto possibile digitare un comando "New-ModuleManifest" senza parametri; i valori per altre chiavi di uso comune verranno richiesti dal cmdlet. Per lasciare il valore vuoto, premere INVIO.

Per una descrizione completa del formato, degli effetti e dei requisiti di un manifesto del modulo, vedere l'articolo relativo alla modalità di scrittura di un manifesto del modulo in MSDN Library all'indirizzo http://go.microsoft.com/fwlink/?LinkId=143613 (le informazioni potrebbero essere in lingua inglese).

Parametri

-AliasesToExport <string[]>

Specifica gli alias esportati dal modulo. È consentito l'utilizzo di caratteri jolly.

È possibile utilizzare questo parametro per limitare gli alias esportati dal modulo. È possibile rimuovere gli alias dall'elenco di alias esportati, ma non è possibile aggiungerli all'elenco.

Se si omette questo parametro, New-ModuleManifest crea una chiave AliasesToExport con un valore indicante tutti gli elementi (*), pertanto tutti gli alias esportati dal modulo vengono esportati dal manifesto.

Obbligatorio? | false
Posizione? | named
Valore predefinito | * (all)
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-Author <string>

Specifica l'autore del modulo.

Questo parametro è richiesto dal cmdlet, ma la chiave Author non è obbligatoria nel manifesto. Se si omette questo parametro e non si immette un valore quando richiesto, New-ModuleManifest crea una chiave Author con il nome dell'utente corrente.

Obbligatorio? | true
Posizione? | named
Valore predefinito | Name of the current user
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ClrVersion <Version>

Specifica la versione di Common Language Runtime (CLR) di Microsoft .NET Framework richiesta dal modulo.

Se si omette questo parametro, New-ModuleManifest crea una chiave CLRVersion con un valore di stringa vuota.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-CmdletsToExport <string[]>

Specifica i cmdlet esportati dal modulo. È consentito l'utilizzo di caratteri jolly.

È possibile utilizzare questo parametro per limitare i cmdlet esportati dal modulo. È possibile rimuovere i cmdlet dall'elenco di cmdlet esportati, ma non è possibile aggiungerli all'elenco.

Se si omette questo parametro, New-ModuleManifest crea una chiave CmdletsToExport con un valore indicante tutti gli elementi (*), pertanto tutti i cmdlet esportati dal modulo vengono esportati dal manifesto.

Obbligatorio? | false
Posizione? | named
Valore predefinito | * (all)
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-CompanyName <string>

Identifica la società o il fornitore che ha creato il modulo.

Questo parametro è richiesto dal cmdlet, ma la chiave CompanyName non è richiesta nel manifesto. Se si omette questo parametro e non si immette un valore quando richiesto, New-ModuleManifest crea una chiave CompanyName con valore "Unknown".

Obbligatorio? | true
Posizione? | named
Valore predefinito | "Unknown"
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Copyright <string>

Specifica un'informativa sul copyright per il modulo.

Questo parametro è richiesto dal cmdlet, ma la chiave Copyright non è richiesta nel manifesto. Se si omette questo parametro e non si immette un valore quando richiesto, New-ModuleManifest crea una chiave Copyright con valore "(c) <anno> <nomeutente>. Tutti i diritti riservati" dove <anno> è l'anno corrente e <nomeutente> è il valore della chiave Author (se specificato) o il nome dell'utente corrente.

Obbligatorio? | true
Posizione? | named
Valore predefinito | (c) <year> <username>. All rights reserved.
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Description <string>

Descrive il contenuto del modulo.

Questo parametro è richiesto dal cmdlet, ma la chiave Description non è richiesta nel manifesto. Se si omette questo parametro e non si immette un valore quando richiesto, New-ModuleManifest crea una chiave Description il cui valore è una stringa vuota.

Obbligatorio? | true
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-DotNetFrameworkVersion <Version>

Specifica la versione di Microsoft .NET Framework richiesta dal modulo.

Se si omette questo parametro, New-ModuleManifest crea una chiave DotNetFrameWorkVersion con un valore di stringa vuota.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-FileList <string[]>

Specifica tutti gli elementi inclusi nel modulo.

Questa chiave è progettata per essere utilizzata come inventario di un modulo. Questi file non vengono esportati automaticamente con il modulo.

Questo parametro è richiesto dal cmdlet, ma la chiave FileList non è richiesta nel manifesto. Se si omette questo parametro e non si immette un valore quando richiesto, New-ModuleManifest crea una chiave FileList il cui valore è una matrice vuota.

Obbligatorio? | true
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-FormatsToProcess <string[]>

Specifica i file di formattazione (con estensione ps1xml) da eseguire quando viene importato il modulo.

Quando si importa un modulo, Windows PowerShell esegue il cmdlet Update-FormatData con i file specificati. Poiché i file di formattazione non hanno ambito, hanno effetto su tutti gli stati della sessione.

Questo parametro è richiesto dal cmdlet, ma la chiave FormatsToProcess non è richiesta nel manifesto. Se si omette questo parametro e non si immette un valore quando richiesto, New-ModuleManifest crea una chiave FormatsToProcess il cui valore è una matrice vuota.

Obbligatorio? | true
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-FunctionsToExport <string[]>

Specifica le funzioni esportate dal modulo. È consentito l'utilizzo di caratteri jolly.

È possibile utilizzare questo parametro per limitare le funzioni esportate dal modulo. È possibile rimuovere le funzioni dall'elenco di alias esportati, ma non è possibile aggiungerle all'elenco.

Se si omette questo parametro, New-ModuleManifest crea una chiave FunctionsToExport con un valore indicante tutti gli elementi (*), pertanto tutte le funzioni esportate dal modulo vengono esportate dal manifesto.

Obbligatorio? | false
Posizione? | named
Valore predefinito | * (all)
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-Guid <Guid>

Specifica un identificatore univoco per il modulo. Il GUID può essere utilizzato per facilitare la distinzione tra moduli con lo stesso nome.

Se si omette questo parametro, New-ModuleManifest consente di creare una chiave GUID nel manifesto e di generare un GUID per il valore.

Per creare un nuovo GUID in Windows PowerShell, digitare "[guid]::NewGuid()".

Obbligatorio? | false
Posizione? | named
Valore predefinito | A GUID generated for the module
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ModuleList <Object[]>

Elenca tutti i moduli inclusi in questo modulo.

Immettere ogni nome di modulo come stringa o immettere una tabella hash con le chiavi ModuleName e GUID. La tabella hash può inoltre avere una chiave ModuleVersion facoltativa.

Questa chiave è progettata per essere utilizzata come inventario di un modulo. Questi moduli non vengono elaborati automaticamente.

Se si omette questo parametro, New-ModuleManifest crea una chiave ModuleList nel manifesto con un valore di matrice vuoto.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ModuleToProcess <string>

Specifica il file primario o radice del modulo. Quando il modulo viene importato, i membri esportati dal file di modulo radice vengono importati nello stato della sessione del chiamante. Immettere il nome file di un modulo di script (con estensione psm1) o di un modulo binario (con estensione dll).

Se un modulo dispone di un file di manifesto e nella chiave ModuleToProcess non è stato designato alcun file radice, il manifesto diventa il file primario per il modulo e il modulo diventa un "modulo di manifesto" (ModuleType = Manifest).

Per esportare membri da file con estensione psm1 o dll in un modulo che dispone di un manifesto, è necessario specificare i nomi di tali file nei valori delle chiavi ModuleToProcess o NestedModules nel manifesto. In caso contrario, i membri non vengono esportati.

Questo parametro è richiesto dal cmdlet, ma la chiave ModuleToProcess non è richiesta nel manifesto. Se si omette questo parametro e non si immette un valore quando richiesto, New-ModuleManifest crea una chiave ModuleToProcess il cui valore è una stringa vuota.

Obbligatorio? | true
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ModuleVersion <Version>

Specifica la versione del modulo.

Questo parametro non è richiesto dal cmdlet, ma una chiave ModuleVersion è richiesta nel manifesto. Se si omette questo parametro, New-ModuleManifest crea una chiave ModuleVersion con un valore pari a "1.0".

Obbligatorio? | false
Posizione? | named
Valore predefinito | 1.0
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-NestedModules <string[]>

Specifica moduli di script (con estensione psm1) e moduli binari (con estensione dll) importati nello stato della sessione del modulo. I file nella chiave NestedModules vengono eseguiti nell'ordine in cui sono elencati nel valore.

In genere, i moduli nidificati contengono comandi necessari al modulo radice per l'elaborazione interna. Per impostazione predefinita, i comandi nei moduli nidificati vengono esportati dallo stato della sessione del modulo nello stato della sessione del chiamante, ma il modulo radice può limitare i comandi che esporta (ad esempio utilizzando un comando Export-Module).

I moduli nidificati nello stato della sessione del modulo sono disponibili al modulo radice, ma non vengono restituiti da un comando Get-Module nello stato della sessione del chiamante.

Gli script (con estensione ps1) elencati nella chiave NestedModules vengono eseguiti nello stato della sessione del modulo, non nello stato della sessione del chiamante. Per eseguire uno script nello stato della sessione del chiamante, elencare il nome del file di script nel valore della chiave ScriptsToProcess nel manifesto.

Questo parametro è richiesto dal cmdlet, ma la chiave NestedModules non è richiesta nel manifesto. Se si omette questo parametro e non si immette un valore quando richiesto, New-ModuleManifest crea una chiave NestedModules il cui valore è una matrice vuota.

Obbligatorio? | true
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PassThru

Scrive il manifesto del modulo risultante nella console, oltre a creare un file con estensione psd1. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string>

Specifica il percorso e il nome file del nuovo manifesto di modulo. Immettere un percorso e un nome file con estensione psd1, ad esempio "$pshome\Modules\MyModule\MyModule.psd1". Questo parametro è obbligatorio.

Se si specifica il percorso di un file esistente, New-ModuleManifest sostituisce tale file senza alcun avviso, a meno che non disponga dell'attributo di sola lettura.

Il manifesto deve trovarsi nella directory del modulo e il nome file del manifesto deve corrispondere al nome della directory di modulo, con estensione psd1.

Nota: non è possibile utilizzare variabili, ad esempio $pshome or $home, in risposta a un prompt per un valore del parametro Path. Per utilizzare una variabile, includere il parametro Path nel comando.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PowerShellHostName <string>

Specifica il nome del programma host per Windows PowerShell richiesto dal modulo. Immettere il nome del programma host, ad esempio "Host di Windows PowerShell ISE" o "ConsoleHost." Non è consentito l'utilizzo di caratteri jolly.

Per trovare il nome di un programma host, digitare "$host.name" nel programma.

Se si omette questo parametro, New-ModuleManifest crea una chiave PowerShellHostName con un valore di stringa vuota.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PowerShellHostVersion <Version>

Specifica la versione minima del programma host per Windows PowerShell utilizzabile con il modulo. Immettere un numero di versione, ad esempio 1.1.

Se si omette questo parametro, New-ModuleManifest crea una chiave PowerShellHostName con un valore di stringa vuota.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PowerShellVersion <Version>

Specifica la versione minima di Windows PowerShell utilizzabile con questo modulo. Immettere 1.0 o 2.0. Non vengono imposti requisiti per versioni successive alla 2.0.

Se si omette questo parametro, New-ModuleManifest crea una chiave PowerShellVersion con un valore di stringa vuota.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PrivateData <Object>

Specifica i dati passati al modulo al momento dell'importazione.

Se si omette questo parametro, New-ModuleManifest crea una chiave PrivateData con un valore di stringa vuota.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ProcessorArchitecture <ProcessorArchitecture>

Specifica l'architettura del processore richiesta dal modulo. I valori validi sono x86, AMD64, IA64 e Nessuno (sconosciuto o non specificato).

Se si omette questo parametro, New-ModuleManifest crea una chiave ProcessorArchitecture con un valore di stringa vuota.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-RequiredAssemblies <string[]>

Specifica i file di assembly (con estensione dll) richiesti dal modulo. In Windows PowerShell gli assembly specificati vengono caricati prima di aggiornare tipi o formati, di importare moduli nidificati o di importare il file di modulo specificato nel valore della chiave ModuleToProcess.

Utilizzare questo parametro per elencare tutti gli assembly richiesti dal modulo, inclusi quelli che devono essere caricati per aggiornare file di formattazione o di tipo elencati nelle chiavi FormatsToProcess o TypesToProcess, sebbene tali assembly siano anche elencati come moduli binari nella chiave NestedModules.

Questo parametro è richiesto dal cmdlet, ma la chiave RequiredAssemblies non è richiesta nel manifesto. Se si omette questo parametro e non si immette un valore quando richiesto, New-ModuleManifest crea una chiave RequiredAssemblies il cui valore è una matrice vuota.

Obbligatorio? | true
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-RequiredModules <Object[]>

Specifica i moduli che devono essere nello stato di sessione globale. Se i moduli obbligatori non sono nello stato della sessione globale, i tentativi di importare questo modulo avranno esito negativo.

Immettere ogni nome di modulo come stringa o immettere una tabella hash con le chiavi ModuleName e GUID. La tabella hash può inoltre avere una chiave ModuleVersion facoltativa. Per ulteriori informazioni, vedere gli esempi.

Windows PowerShell non importa automaticamente i moduli obbligatori. Verifica solo che tali moduli siano presenti. Tuttavia, i moduli possono includere script (con estensione ps1) che importano i moduli obbligatori nello stato della sessione globale.

Se si omette questo parametro, New-ModuleManifest crea una chiave RequiredModules con un valore di matrice vuota.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ScriptsToProcess <string[]>

Specifica i file di script (con estensione ps1) da eseguire nello stato della sessione del chiamante quando viene importato il modulo. È possibile utilizzare questi script per preparare un ambiente, in modo analogo all'utilizzo di uno script di accesso.

Per specificare script da eseguire nello stato della sessione del modulo, utilizzare la chiave NestedModules.

Se si omette questo parametro, New-ModuleManifest crea una chiave ScriptsToProcess con un valore di matrice vuota.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-TypesToProcess <string[]>

Specifica i file di tipo (con estensione ps1xml) da eseguire quando viene importato il modulo.

Quando si importa il modulo, Windows PowerShell esegue il cmdlet Update-TypeData con i file specificati. Poiché i file di tipo non hanno ambito, hanno effetto su tutti gli stati della sessione.

Questo parametro è richiesto dal cmdlet, ma la chiave TypesToProcess non è richiesta nel manifesto. Se si omette questo parametro e non si immette un valore quando richiesto, New-ModuleManifest crea una chiave TypesToProcess il cui valore è una matrice vuota.

Obbligatorio? | true
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-VariablesToExport <string[]>

Specifica le variabili esportate dal modulo. È consentito l'utilizzo di caratteri jolly.

È possibile utilizzare questo parametro per limitare le variabili esportate dal modulo. È possibile rimuovere le variabili dall'elenco di variabili esportate, ma non è possibile aggiungerle all'elenco.

Se si omette questo parametro, New-ModuleManifest crea una chiave VariablesToExport con un valore indicante tutti gli elementi (*), pertanto tutte le variabili esportate dal modulo vengono esportate dal manifesto.

Obbligatorio? | false
Posizione? | named
Valore predefinito | * (all)
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Nessuno o System.String Per impostazione predefinita, New-ModuleManifest non genera alcun output. Tuttavia, se si utilizza il parametro PassThru, viene generato un oggetto System.String che rappresenta il manifesto del modulo.

Note

Generalmente i manifesti del modulo sono facoltativi. Tuttavia, un manifesto del modulo è obbligatorio per esportare un assembly installato nella Global Assembly Cache.

Per aggiungere o modificare file nella directory $pshome\Modules directory (%Windir%\System32\WindowsPowerShell\v1.0\Modules), avviare Windows PowerShell con l'opzione "Esegui come amministratore".

L'oggetto scheda di PowerShell rappresenta un ambiente di esecuzione di Windows PowerShell. Una sessione può avere uno o più stati della sessione. Per impostazione predefinita, una sessione ha solo uno stato della sessione globale, ma ogni modulo importato dispone di un proprio stato della sessione. Gli stati della sessione consentono l'esecuzione dei comandi in un modulo senza effetti sullo stato della sessione globale.

Lo stato della sessione del chiamante è lo stato della sessione nel quale viene importato un modulo. In genere, fa riferimento allo stato della sessione globale, ma quando un modulo importa moduli nidificati, il chiamante è il modulo e lo stato della sessione del chiamante è lo stato della sessione del modulo.

Esempio 1

C:\PS>New-ModuleManifest

Path: C:\Users\User01\Documents\WindowsPowerShell\Modules\Test-Module\Test-Module.psd1
NestedModules[0]: BackgroundModule.psm1
Author: Jinghao Liu
CompanyName: Fabrikam, Inc.
Copyright: Copyright © 2009 Liu Jinghao. All rights reserved.
ModuleToProcess: TestModule.psm1
Description: Cmdlets to find common errors in scripts.
TypesToProcess[0]: TestTypes.ps1xml
FormatsToProcess[0]: TestFormat.ps1xml
RequiredAssemblies[0]: Test.dll
FileList[0]: Test-Module.psd1
FileList[1]: Test-Module.psm1
FileList[2]: BackgroundModule.psm1
FileList[3]: TestTypes.ps1xml
FileList[4]: TestFormat.ps1xml
FileList[5]: Test.dll
FileList[6]: TestIcon.ico

Descrizione
-----------
Questo comando crea un nuovo manifesto del modulo. Il cmdlet richiede i parametri necessari, incluso il parametro Path, e crea un file manifesto nel percorso specificato.

Nell'output di questo comando sono indicate risposte di esempio ai prompt. Per utilizzare valori predefiniti, premere INVIO.

Il prompt effettivo e la gestione di frasi racchiuse o meno tra virgolette dipendono dal programma host in cui viene eseguito Windows PowerShell.

Esempio 2

C:\PS>New-ModuleManifest -PowerShellVersion 1.0 -AliasesToExport JKBC, DRC, TAC

Descrizione
-----------
Questo comando crea un nuovo manifesto del modulo. Il comando include parametri non necessari per il cmdlet (o che vengono richiesti). È possibile includere altri valori della chiave del manifesto al prompt dei comandi.

Esempio 3

C:\PS>New-ModuleManifest -RequiredModules FileTransfer,@{ModuleName="BackgroundModule";GUID="486569a2-2784-48bf-af15-70ba837a64d0";ModuleVersion="3.5"}

Descrizione
-----------
In questo esempio viene illustrato come utilizzare i formati di stringa e di tabella hash del valore del parametro RequiredModules. È possibile utilizzare stringhe e tabelle hash nello stesso comando.

Con questi comandi viene creato un manifesto per un modulo che richiede il modulo FileTransfer e un modulo fittizio denominato "BackgroundModule".

Vengono utilizzati un formato stringa per specificare il nome del modulo FileTransfer e il formato di tabella hash per specificare il nome, un GUID e una versione di BackgroundModule.

Vedere anche

  • Import-Module
  • Get-Module
  • New-Module
  • Remove-Module
  • Export-ModuleMember
  • Test-ModuleManifest
  • about_Modules


New-Object

Crea un'istanza di un oggetto Microsoft .NET Framework o COM.

Sintassi

New-Object -ComObject <string> [-Strict] [-Property <hashtable>] [<CommonParameters>]

New-Object [-TypeName] <string> [[-ArgumentList] <Object[]>] [-Property <hashtable>] [<CommonParameters>]

Descrizione

Il cmdlet New-Object crea un'istanza di un oggetto .NET Framework o COM.

È possibile specificare il tipo di una classe .NET Framework o un ProgID di un oggetto COM. Per impostazione predefinita, il nome completo di una classe .NET Framework viene digitato dall'utente, mentre il cmdlet restituisce un riferimento a un'istanza di tale classe. Per creare un'istanza di un oggetto COM, utilizzare il parametro ComObject e specificare come valore il ProgID dell'oggetto.

Parametri

-ArgumentList <Object[]>

Specifica un elenco di argomenti da passare al costruttore della classe .NET Framework. Utilizzare le virgole (,) per separare gli elementi dell'elenco. L'alias per ArgumentList è Args.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComObject <string>

Specifica il ProgID (Programmatic Identifier) dell'oggetto COM.

Obbligatorio? | true
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Property <hashtable>

Imposta i valori delle proprietà e richiama i metodi del nuovo oggetto.

Immettere una tabella hash in cui le chiavi sono i nomi di proprietà o metodi e i valori sono valori di proprietà o argomenti di metodo. New-Object crea l'oggetto, quindi imposta ogni valore di proprietà e richiama ogni metodo nell'ordine in cui si trova nella tabella hash.

Se il nuovo oggetto è derivato dalla classe PSObject e si specifica una proprietà che non esiste nell'oggetto, New-Object aggiunge la proprietà specificata all'oggetto come NoteProperty. Se l'oggetto non è un oggetto PSObject, il comando genera un errore non fatale.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Strict

Specifica che è necessario generare un errore se nell'oggetto COM che si tenta di creare viene utilizzato un assembly di interoperabilità. In tal modo è possibile distinguere gli oggetti COM effettivi dagli oggetti .NET Framework con COM Callable Wrapper.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-TypeName <string>

Specifica il nome completo della classe .NET Framework. Non è possibile specificare sia il parametro TypeName che il parametro ComObject.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Object New-Object restituisce l'oggetto creato.

Note

New-Object fornisce la funzionalità più comunemente utilizzata della funzione VBScript CreateObject. L'istruzione Set objShell = CreateObject("Shell.Application") di VBScript può infatti essere convertita in $objShell = new-object -comobject "Shell.Application" in Windows PowerShell.

New-Object può essere espanso sulla base delle funzionalità disponibili nell'ambiente Windows Script Host e consente di gestire facilmente oggetti .NET Framework dalla riga di comando e all'interno di script.

Esempio 1

C:\PS>new-object -typename System.Version -argumentlist "1.2.3.4"

Major  Minor  Build  Revision
-----  -----  -----  --------
1      2      3      4

Descrizione
-----------
Questo comando crea un oggetto System.Version, utilizzando la stringa "1.2.3.4" come costruttore.

Esempio 2

C:\PS>$ie = new-object -comobject InternetExplorer.Application -property @{navigate2="www.microsoft.com"; visible = $true}

Descrizione
-----------
Tramite questo comando verrà creata un'istanza dell'oggetto COM che rappresenta l'applicazione Internet Explorer. Il parametro Property verrà utilizzato per chiamare il metodo Navigate2 e per impostare la proprietà Visible dell'oggetto su $true per rendere visibile l'applicazione.

Questo comando equivale al seguente:

$ie = new-object -comobject InternetExplorer.Application
$ie.navigate2("www.microsoft.com")
$ie.visible = $true

Esempio 3

C:\PS>$a=new-object -comobject Word.Application -strict -property @{visible=$true}

New-Object : The object written to the pipeline is an instance of the type
"Microsoft.Office.Interop.Word.ApplicationClass" from the component's prima
ry interop assembly. If this type exposes different members than the IDispa
tch members, scripts written to work with this object might not work if the
 primary interop assembly is not installed.
At line:1 char:14
+ $a=New-Object  <<<< -COM Word.Application -Strict; $a.visible=$true

Descrizione
-----------
Con questo comando viene illustrato che se si specifica il parametro Strict, il cmdlet New-Object genera un errore non fatale quando l'oggetto COM creato utilizza un assembly di interoperabilità.

Esempio 4

C:\PS>$objshell = new-object -comobject "Shell.Application"

C:\PS> $objshell | get-member

C:\PS> $objshell.ToggleDesktop()

Descrizione
-----------
Nel comando viene utilizzato il parametro ComObject per creare un oggetto COM il cui ProgID è "Shell.Application". Consente di archiviare l'oggetto risultante nella variabile $objShell.

Con il secondo comando viene reindirizzata la variabile $objShell al cmdlet Get-Member che consente di visualizzare le proprietà e i metodi dell'oggetto COM.

Con il terzo comando viene chiamato il metodo ToggleDesktop dell'oggetto per ridurre le finestre aperte sul desktop.

Vedere anche

  • Compare-Object
  • Select-Object
  • Sort-Object
  • ForEach-Object
  • Group-Object
  • Measure-Object
  • Tee-Object
  • Where-Object


New-PSDrive

Crea un'unità di Windows PowerShell nella sessione corrente.

Sintassi

New-PSDrive [-Name] <string> [-PSProvider] <string> [-Root] <string> [-Credential <PSCredential>] [-Description <string>] [-Scope <string>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet New-PSDrive crea un'unità di Windows PowerShell che viene mappata o associata a un percorso in un archivio dati, ad esempio un'unità di rete, una directory del computer locale o una chiave del Registro di sistema.

È possibile utilizzare le unità di Windows PowerShell create per accedere ai dati nell'archivio dati associato, in modo analogo a qualsiasi unità mappata. È possibile modificare i percorsi nell'unità (tramite "Set-Location", "cd" o "chdir") e accedere al contenuto dell'unità (tramite "Get-Item", "Get-ChildItem" o "dir").

Tuttavia, le unità di Windows PowerShell sono note solo a Windows PowerShell. Non è possibile accedervi attraverso Esplora risorse, Strumentazione gestione Windows (WMI), Component Object Model (COM) o Microsoft .NET Framework o strumenti come Net Use.

Le unità di Windows PowerShell esistono solo nella sessione corrente di Windows PowerShell. Per rendere permanente l'unità, è possibile esportare la sessione alla quale è stata aggiunta o salvare un comando New-PSDrive nel profilo di Windows PowerShell.

Per eliminare un'unità creata da New-PSDrive, utilizzare il cmdlet Remove-PSDrive.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01". In alternativa, immettere un oggetto PSCredential, ad esempio quello generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Description <string>

Fornisce una breve descrizione di testo dell'unità. Digitare una stringa qualsiasi.

Per visualizzare le descrizioni di tutte le unità di Windows PowerShell del sistema, digitare "Get-PSDrive | nome formato, descrizione". Per visualizzare la descrizione di una determinata unità di Windows PowerShell, digitare "(get-psdrive <NomeUnità>).descrizione".

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Name <string>

Specifica un nome per la nuova unità. Per il nome è possibile utilizzare qualsiasi stringa valida. Non occorre utilizzare necessariamente le lettere delle unità. I nomi delle unità di Windows PowerShell rilevano la distinzione tra maiuscole e minuscole.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PSProvider <string>

Specifica il provider di Windows PowerShell che supporta unità di questo tipo.

Ad esempio, se l'unità di Windows PowerShell è associata a una condivisione di rete o una directory del file system, il provider di Windows PowerShell è "FileSystem". Se l'unità di Windows PowerShell è associata a una chiave del Registro di sistema, il provider è "Registry".

Per visualizzare un elenco dei provider nella sessione di Windows PowerShell, digitare "Get-PSProvider".

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Root <string>

Specifica il percorso dell'archivio dati al quale è mappata l'unità di Windows PowerShell.

Specificare ad esempio una condivisione di rete, come \\Server01\Public, una directory locale, come C:\Programmi, o una chiave del Registro di sistema, come HKLM:\Software\Microsoft.

Obbligatorio? | true
Posizione? | 3
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Scope <string>

Specifica un ambito per l'unità. I valori validi sono "Global", "Local", "Script" oppure un numero relativo all'ambito corrente, ovvero da 0 al numero di ambiti, dove 0 corrisponde all'ambito corrente e 1 al relativo padre. Il valore predefinito è "Local". Per ulteriori informazioni, vedere about_Scopes.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.Management.Automation.PSDriveInfo

Note

Il cmdlet New-PSDrive è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>new-psdrive -name P -psprovider FileSystem -root \\Server01\Public

Name       Provider      Root
----       --------      ----
P          FileSystem    \\Server01\Public

Descrizione
-----------
Con questo comando viene creata un'unità di Windows PowerShell che funziona come un'unità di rete mappata in Windows. Viene creata un'unità di Windows PowerShell denominata P: mappata alla condivisione di rete \\Server01\Public.

Vengono utilizzati il parametro Name per specificare un nome per l'unità, il parametro PSProvider per specificare il provider FileSystem di Windows PowerShell e il parametro Root per specificare la condivisione di rete.

Al completamento del comando, il contenuto della condivisione \\Server01\Public viene visualizzato nell'unità P:. Per visualizzarlo, digitare "dir p:".

Esempio 2

C:\PS>new-psdrive -name MyDocs -psprovider FileSystem -root "C:\Documents and Settings\User01\My Documents" -Description "Maps to my My Documents folder."

Name       Provider      Root
----       --------      ----
MyDocs     FileSystem    C:\Documents and Settings\User01\My Documents

Descrizione
-----------
Con questo comando viene creata un'unità di Windows PowerShell che consente di accedere rapidamente a una directory locale. Viene creata un'unità denominata MyDocs: mappata alla directory
"C:\Documents and Settings\User01\My Documents" del computer locale.

Vengono utilizzati il parametro Name per specificare un nome per l'unità, il parametro PSProvider per specificare il provider FileSystem di Windows PowerShell, il parametro Root per specificare il percorso della cartella My Documents e il parametro Description per creare una descrizione dell'unità.

Al completamento del comando, il contenuto della cartella My Documents viene visualizzato nell'unità MyDocs:. Per visualizzarlo, digitare "dir mydocs:".

Esempio 3

C:\PS>new-psdrive -name MyCompany -psprovider Registry -root HKLM:\Software\MyCompany

Name       Provider      Root
----       --------      ----
MyCompany  Registry      HKEY_LOCAL_MACHINE\Software\MyCo...

Descrizione
-----------
Con questo comando viene creata un'unità di Windows PowerShell che consente di accedere rapidamente a una chiave del Registro di sistema controllata spesso. Viene creata un'unità denominata MyCompany mappata alla chiave del Registro di sistema HKLM\Software\MyCompany.

Vengono utilizzati il parametro Name per specificare un nome per l'unità, il parametro PSProvider per specificare il provider Registry di Windows PowerShell e il parametro Root per specificare la chiave del Registro di sistema.

Al completamento del comando, il contenuto della chiave MyCompany viene visualizzato nell'unità MyCompany:. Per visualizzarlo, digitare "dir MyCompany:".

Esempio 4

C:\PS>new-psdrive -name PsDrive -psprovider FileSystem -root \\Server01\Public

C:\PS> $drive = new-object -com wscript.network
C:\PS> $drive.MapNetworkDrive("X:", "\\Server01\Public")

C PS:\> get-psdrive public, x

Name       Provider      Root
----       --------      ----
PsDrive    FileSystem    \\Server01\public
X          FileSystem    X:\

C:\PS>get-psdrive psdrive, x | get-member

   TypeName: System.Management.Automation.PSDriveInfo
Name                MemberType Definition
----                ---------- ----------
CompareTo           Method     System.Int32 CompareTo(PSDriveInfo drive),
Equals              Method     System.Boolean Equals(Object obj),
GetHashCode         Method     System.Int32 GetHashCode()
...

C:\PS> net use
Status       Local     Remote                    Network
---------------------------------------------------------------------------
             X:        \\server01\public         Microsoft Windows Network

C:\PS> get-wmiobject win32_logicaldisk | ft deviceid
deviceid
--------
C:
D:
X:

C:\PS> get-wmiobject win32_networkconnection
LocalName                     RemoteName                    ConnectionState               Status
---------                     ----------                    ---------------               ------
X:                            \\products\public             Disconnected                  Unavailable

Descrizione
-----------
In questo esempio viene illustrata la differenza tra un'unità di Windows e un'unità di Windows PowerShell mappate alla stessa condivisione di rete.

Nel primo comando viene utilizzato il cmdlet New-PSDrive per creare un'unità di Windows PowerShell denominata PSDrive: mappata alla condivisione di rete \\Server01\Public.

Nel secondo set di comandi viene utilizzato il cmdlet New-Object per creare un oggetto COM Wscript.Network, quindi viene utilizzato il metodo MapNetworkDrive per mappare la condivisione di rete \\Server01\Public all'unità X: nel computer locale.

È ora possibile esaminare le due unità. Mediante l'utilizzo di un comando Get-PSDrive le unità sembrano essere uguali, anche se il nome della condivisione di rete viene visualizzato solo nella radice dell'unità PSDrive:.

L'invio degli oggetti unità a Get-Member indica che hanno lo stesso tipo di oggetto, System.Management.Automation.PSDriveInfo.

Tuttavia, l'esecuzione di un comando net use, di un comando Get-WmiObject alla classe Win32_LogicalDisk e di un comando Get-WmiObject alla classe Win32_NetworkConnection rileva solo l'unità X: creata tramite l'oggetto Wscript.Network. Questa situazione è dovuta al fatto che le unità di Windows PowerShell sono note solo a Windows PowerShell.

Se si chiude la sessione di Windows PowerShell, quindi se ne apre una nuova, l'unità PSDrive: non è più presente mentre l'unità X: persiste.

Pertanto, per decidere quale metodo utilizzare per mappare le unità di rete, è opportuno considerare in che modo verrà utilizzata l'unità, se deve essere permanente e se è necessario che sia visibile ad altre funzionalità di Windows.

Vedere anche

  • about_Providers
  • Get-PSDrive
  • Remove-PSDrive


New-PSSession

Crea una connessione permanente a un computer locale o remoto.

Sintassi

New-PSSession [[-ComputerName] <string[]>] [-ApplicationName <string>] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-Name <string[]>] [-Port <int>] [-SessionOption <PSSessionOption>] [-UseSSL] [-ThrottleLimit <int>] [<CommonParameters>]

New-PSSession [[-Session] <PSSession[]>] [-Name <string[]>] [-ThrottleLimit <int>] [<CommonParameters>]

New-PSSession [-ConnectionURI] <Uri[]> [-AllowRedirection] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-Name <string[]>] [-SessionOption <PSSessionOption>] [-ThrottleLimit <int>] [<CommonParameters>]

Descrizione

Il cmdlet New-PSSession crea una sessione di Windows PowerShell (PSSession) in un computer locale o remoto. Quando si crea una sessione PSSession, Windows PowerShell stabilisce una connessione permanente al computer remoto.

Utilizzare una sessione PSSession per eseguire più comandi che condividono dati, ad esempio una funzione o il valore di una variabile. Per eseguire comandi in una sessione PSSession, utilizzare il cmdlet Invoke-Command. Per utilizzare la sessione PSSession per interagire direttamente con un computer remoto, utilizzare il cmdlet Enter-PSSession. Per ulteriori informazioni, vedere about_PSSessions.

È possibile eseguire comandi in un computer remoto senza creare una sessione PSSession tramite i parametri ComputerName di Enter-PSSession o Invoke-Command. Quando si utilizza il parametro ComputerName, in Windows PowerShell viene creata una connessione temporanea utilizzata per la sessione interattiva o per un singolo comando e quindi chiusa.

Parametri

-AllowRedirection

Consente il reindirizzamento di questa connessione a un URI alternativo.

Quando si utilizza il parametro ConnectionURI, la destinazione remota può restituire un'istruzione di reindirizzamento a un altro URI. Per impostazione predefinita in Windows PowerShell le connessioni non vengono reindirizzate, ma è possibile utilizzare il parametro AllowRedirection per consentire il reindirizzamento della connessione.

È inoltre possibile limitare il numero di volte in cui la connessione viene reindirizzata impostando la proprietà MaximumConnectionRedirectionCount della variabile di preferenza $PSSessionOption o la proprietà MaximumConnectionRedirectionCount del valore del parametro SessionOption.

Il valore predefinito è 5. Per ulteriori informazioni, vedere la descrizione del parametro SessionOption e New-PSSessionOption.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ApplicationName <string>

Specifica il segmento del nome dell'applicazione dell'URI di connessione. Utilizzare questo parametro per specificare il nome dell'applicazione quando non si utilizza il parametro ConnectionURI nel comando.

Il valore predefinito è il valore della variabile di preferenza $PSSessionApplicationName nel computer locale. Se questa variabile non viene definita, il valore predefinito è WSMAN. Questo valore è appropriato per la maggior parte degli utilizzi. Per ulteriori informazioni, vedere about_Preference_Variables.

Il servizio Gestione remota Windows utilizza il nome dell’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.

Obbligatorio? | false
Posizione? | named
Valore predefinito | WSMAN
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Authentication <AuthenticationMechanism>

Specifica il meccanismo utilizzato per autenticare le credenziali dell'utente. I valori validi sono "Default", "Basic", "Credssp", "Digest", "Kerberos", "Negotiate" e "NegotiateWithImplicitCredential". Il valore predefinito è "Default".

L'autenticazione CredSSP è disponibile unicamente in Windows Vista, Windows Server 2008 e versioni successive di Windows.

Per ulteriori informazioni sui valori di questo parametro, vedere la descrizione dell'enumerazione System.Management.Automation.Runspaces.AuthenticationMechanism in MSDN Library all'indirizzo http://go.microsoft.com/fwlink/?LinkId=144382 (le informazioni potrebbero essere in lingua inglese).

Attenzione: l'autenticazione CredSSP (Credential Security Service Provider), che prevede il passaggio delle credenziali dell'utente a un computer remoto per l'autenticazione, è progettata per i comandi che richiedono l'autenticazione su più di una risorsa, ad esempio l'accesso a una condivisione di rete remota. Questo meccanismo aumenta il rischio per la sicurezza dell'operazione remota. Se il computer remoto è compromesso, è possibile utilizzare le credenziali passate a tale computer per controllare la sessione di rete.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Default
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-CertificateThumbprint <string>

Specifica il certificato di chiave pubblica digitale (X509) di un account utente con autorizzazione per l'esecuzione di questa azione. Immettere l'identificazione digitale del certificato.

I certificati vengono utilizzati nell'autenticazione basata su certificati client. Possono essere mappati solo agli account utente locali; non funzionano con gli account di dominio.

Per ottenere un'identificazione digitale del certificato, utilizzare il comando Get-Item o Get-ChildItem nell'unità Cert: di Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string[]>

Crea una connessione permanente (PSSession) al computer specificato. Se si immettono più nomi di computer, New-PSSession crea più sessioni PSSession, una per ogni computer. Il valore predefinito è il computer locale.

Digitare il nome NetBIOS, un indirizzo IP o un nome di dominio completo di uno o più computer remoti. Per specificare il computer locale, digitare il nome del computer, "localhost" o un punto (.). Quando il computer fa parte di un dominio diverso da quello dell'utente, è obbligatorio utilizzare il nome di dominio completo. È inoltre possibile reindirizzare un nome di computer (tra virgolette) a New-PSSession.

Per utilizzare un indirizzo IP nel valore del parametro ComputerName, il comando deve includere il parametro Credential. È inoltre necessario configurare il computer per il trasporto HTTPS o includere l'indirizzo IP del computer remoto nell'elenco di host attendibili (TrustedHosts) di Gestione remota Windows nel computer locale. Per istruzioni relative all'aggiunta di un nome di computer all'elenco degli host attendibili (TrustedHosts), vedere "Come aggiungere un computer all'elenco di host attendibili" in about_Remote_Troubleshooting.

Nota: in Windows Vista e nelle versioni successive di Windows per includere il computer locale nel valore del parametro ComputerName, è necessario avviare Windows PowerShell con l'opzione "Esegui come amministratore".

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-ConfigurationName <string>

Specifica la configurazione di sessione utilizzata per la nuova sessione PSSession.

Immettere un nome di configurazione o l'URI di risorsa completo per una configurazione di sessione. Se si specifica unicamente il nome di configurazione, viene anteposto l'URI di schema seguente: http://schemas.microsoft.com/powershell.

La configurazione di sessione per una sessione si trova nel computer remoto. Se la configurazione di sessione specificata non esiste nel computer remoto, il comando ha esito negativo.

Il valore predefinito è il valore della variabile di preferenza $PSSessionConfigurationName nel computer locale. Se questa variabile di preferenza non è impostata, l'impostazione predefinita è Microsoft.PowerShell. Per ulteriori informazioni, vedere about_Preference_Variables.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-ConnectionURI <Uri[]>

Specifica un URI (Uniform Resource Identifier) che definisce l'endpoint della connessione. L'URI deve essere completo.

Il formato di questa stringa è il seguente:

<Trasporto>://<NomeComputer>:<Porta>/<NomeApplicazione>

Il valore predefinito è il seguente:

http://localhost:80/WSMAN

I valori validi per il segmento Transport dell'URI sono HTTP e HTTPS. Se non si specifica ConnectionURI, è possibile utilizzare i parametri UseSSL, ComputerName, Port e ApplicationName per specificare i valori URI.

Se il computer di destinazione reindirizza la connessione a un URI diverso, in Windows PowerShell viene impedito il reindirizzamento a meno che non si utilizzi il parametro AllowRedirection nel comando.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01", "Dominio01\Utente01" o "Utente@Dominio.com", oppure immettere un oggetto PSCredential, ad esempio uno restituito dal cmdlet Get-Credential.

Quando si digita un nome utente, viene richiesta una password.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Name <string[]>

Specifica un nome descrittivo per la sessione PSSession.

È possibile utilizzare il nome per fare riferimento alla sessione PSSession in caso di utilizzo di altri cmdlet, ad esempio Get-PSSession e Enter-PSSession. Non è obbligatorio che il nome sia univoco nel computer o nella sessione corrente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Port <int>

Specifica la porta di rete nel computer remoto utilizzata per questo comando. Il valore predefinito è la porta 80 (porta HTTP).

Prima di utilizzare una porta alternativa, è necessario configurare il listener WinRM nel computer remoto affinché resti in ascolto su tale porta. Utilizzare i comandi seguenti per configurare il listener:

1. winrm delete winrm/config/listener?Address=*+Transport=HTTP

2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port=&quot;&lt;numero-porta&gt;&quot;}

Non utilizzare il parametro Port a meno che non sia necessario. L'impostazione della porta nel comando si applica a tutti i computer e a tutte le sessioni in cui viene eseguito il comando. Un'impostazione di porta alternativa potrebbe impedire l'esecuzione del comando in tutti i computer.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 80
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Session <PSSession[]>

Utilizza la sessione PSSession specificata come modello per la nuova sessione PSSession. Questo parametro consente di creare nuove sessioni PSSession con le stesse proprietà delle sessioni PSSession specificate.

Immettere una variabile che contiene le sessioni PSSession o un comando che consente di creare o ottenere tali sessioni, ad esempio New-PSSession o Get-PSSession.

Le sessioni PSSession risultanti hanno lo stesso nome di computer, nome di applicazione, URI di connessione, porta, nome di configurazione, limite di velocità, timeout e valore SSL di quelle originali, ma presentano un nome descrittivo, un ID e un ID istanza (GUID) diversi.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-SessionOption <PSSessionOption>

Imposta opzioni avanzate per la sessione. Immettere un oggetto SessionOption creato utilizzando il cmdlet New-PSSessionOption.

I valori predefiniti delle opzioni sono determinati dal valore della variabile di preferenza $PSSessionOption, se impostato. In caso contrario nella sessione vengono utilizzate le impostazioni predefinite del sistema.

Per una descrizione delle opzioni di sessione, inclusi i valori predefiniti, vedere New-PSSessionOption. Per informazioni sulla variabile di preferenza $PSSessionOption, vedere about_Preference_Variables.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ThrottleLimit <int>

Specifica il numero massimo di connessioni simultanee che è possibile stabilire per eseguire questo comando. Se si omette questo parametro o si immette un valore pari a 0 (zero), viene utilizzato il valore predefinito 32.

Il limite di velocità si applica solo al comando corrente, non alla sessione o al computer.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 32
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseSSL

Utilizza il protocollo SSL (Secure Sockets Layer) per stabilire una connessione al computer remoto. Per impostazione predefinita, SSL non viene utilizzato.

WS-Management consente di crittografare tutto il contenuto di Windows PowerShell trasmesso in rete. UseSSL consente di inviare i dati con una protezione aggiuntiva mediante una connessione HTTPS anziché HTTP.

Se si utilizza questo parametro, ma SSL non è disponibile sulla porta utilizzata per il comando, il comando ha esito negativo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String, System.URI, System.Management.Automation.Runspaces.PSSession È possibile reindirizzare un oggetto ComputerName (stringa), ConnectionURI (URI) o Session (PSSession) a New-PSSession.
Output | System.Management.Automation.Runspaces.PSSession

Note

Questo cmdlet utilizza l'infrastruttura remota di Windows PowerShell. Per utilizzare questo cmdlet, il computer locale e qualsiasi computer remoto devono essere configurati per la comunicazione remota di Windows PowerShell. Per ulteriori informazioni, vedere about_Remote_Requirements.

In Windows Vista e nelle versioni successive di Windows per creare una sessione PSSession nel computer locale, è necessario avviare Windows PowerShell con l'opzione "Esegui come amministratore".

Al termine delle operazioni nella sessione PSSession, utilizzare il cmdlet Remove-PSSession per eliminare la sessione e rilasciare le risorse.

Esempio 1

C:\PS>$s = new-pssession

Descrizione
-----------
Questo comando crea una nuova sessione PSSession nel computer locale e la salva nella variabile $s.

Ora è possibile utilizzare questa sessione PSSession per eseguire comandi nel computer locale.

Esempio 2

C:\PS>$Server01 = new-pssession -ComputerName Server01

Descrizione
-----------
Questo comando crea una nuova sessione PSSession nel computer Server01 e la salva nella variabile $Server01.

Quando si creano più sessioni PSSession, assegnarle alle variabili con nomi descrittivi, al fine di gestirle meglio nei comandi successivi.

Esempio 3

C:\PS>$s1, $s2, $s3 = new-session -computername server1,server2,server3

Descrizione
-----------
Questo comando crea tre nuove sessioni PSSession, una in ogni computer specificato dal parametro ComputerName.

Viene utilizzato l'operatore di assegnazione (=) per assegnare le nuove sessioni PSSession a una matrice di variabili: $s1, $s2, $s3. PSSession Server01 viene assegnata a $s1, PSSession Server02 viene assegnata a $s2 e PSSession Server03 viene assegnata a $s3.

Quando si assegnano più oggetti a una matrice di variabili, in Windows PowerShell ciascun oggetto viene assegnato a una variabile nella matrice. Se sono presenti più oggetti che variabili, tutti gli oggetti rimanenti vengono assegnati all'ultima variabile. Se sono presenti più variabili che oggetti, le variabili rimanenti sono vuote (null).

Esempio 4

C:\PS>new-pssession -computername Server01 -port 8081 -useSSL -ConfigurationName E12

Descrizione
-----------
Questo comando crea una nuova sessione PSSession nel computer Server01 che si connette alla porta 8081 del server e utilizza il protocollo SSL. Nella nuova sessione PSSession viene utilizzata una configurazione di sessione alternativa denominata "E12".

Prima di impostare la porta, è necessario configurare il listener WinRM nel computer remoto affinché resti in ascolto sulla porta 8081. Per ulteriori informazioni, vedere la descrizione del parametro Port.

Esempio 5

C:\PS>new-pssession -session $s -credential domain01\user01

Descrizione
-----------
Questo comando crea una nuova sessione PSSession con le stesse proprietà di una sessione PSSession esistente. È possibile utilizzare questo formato di comando quando le risorse di una sessione PSSession esistente sono esaurite ed è necessaria una nuova sessione PSSession per scaricare alcune richieste.

Viene utilizzato il parametro Session di New-PSSession per specificare la sessione PSSession salvata nella variabile $s. Vengono utilizzate le credenziali dell'utente Domain1\Admin01 per completare il comando.

Esempio 6

C:\PS>$global:s = new-pssession -computername server1.domain44.corpnet.fabrikam.com -credential domain01\admin01

Descrizione
-----------
In questo esempio viene illustrato come creare una sessione PSSession con un ambito globale in un computer che fa parte di un dominio diverso.

Per impostazione predefinita, le sessioni PSSession create nella riga di comando vengono create con ambito locale, mentre le sessioni PSSession create in uno script dispongono dell'ambito dello script.

Per creare una sessione PSSession con ambito globale, creare una nuova sessione PSSession, quindi archiviarla in una variabile di cui viene eseguito il cast a un ambito globale. In questo caso, il cast della variabile $s viene eseguito a un ambito globale.

Viene utilizzato il parametro ComputerName per specificare il computer remoto. Poiché il computer fa parte di un dominio diverso rispetto all'account utente, il nome completo del computer viene specificato insieme alle credenziali dell'utente.

Esempio 7

C:\PS>$rs = get-content c:\test\servers.txt | new-PSsession -throttleLimit 50

Descrizione
-----------
Questo comando crea una sessione PSSession in ognuno dei 200 computer elencati nel file Servers.txt e archivia la sessione PSSession risultante nella variabile di $rs. Le sessioni PSSession dispongono di un limite di velocità di 50.

È possibile utilizzare questo formato di comando quando i nomi di computer vengono archiviati in un database, un foglio di calcolo, un file di testo o un altro formato convertibile in testo.

Esempio 8

C:\PS>$s = new-PSSession -URI http://Server01:91/NewSession -credential domain01\user01

Descrizione
-----------
Questo comando crea una sessione PSSession nel computer Server01 e la archivia nella variabile $s. Viene utilizzato il parametro URI per specificare il protocollo di trasporto, il computer remoto, la porta e una configurazione di sessione alternativa. Viene inoltre utilizzato il parametro Credential per specificare un account utente con autorizzazione per la creazione di una sessione nel computer remoto.

Esempio 9

C:\PS>$s = new-PSSession -computername (import-csv servers.csv) -credential domain01\admin01 -throttlelimit 16

C:\PS> invoke-command -session $s -scriptblock {get-process powershell} -AsJob

Descrizione
-----------
Questi comandi creano un gruppo di sessioni PSSession, quindi eseguono un processo in background in ognuna delle sessioni PSSession.

Il primo comando crea una nuova sessione PSSession in ognuno dei computer elencati nel file Servers.csv. Viene utilizzato il cmdlet New-PSSession per creare la sessione PSSession. Il valore del parametro ComputerName è un comando che utilizza il cmdlet Import-Csv per importare il file Servers.csv e leggerne il contenuto.

Viene utilizzato il parametro Credential per creare le sessioni PSSession con l'autorizzazione di un amministratore di dominio e il parametro ThrottleLimit per limitare il comando a 16 connessioni simultanee. Le sessioni PSSession vengono salvate nella variabile $s.

Il secondo comando utilizza il parametro AsJob di Invoke-Command per avviare un processo in background in cui viene eseguito un comando "Get-Process PowerShell" in ognuna delle sessioni PSSession di $s.

Per ulteriori informazioni sui processi in background, vedere about_Jobs e about_Remote_Jobs.

Esempio 10

C:\PS>new-PSSession -ConnectionURI https://management.exchangelabs.com/Management

Descrizione
-----------
Questo comando crea una nuova sessione PSSession che si connette a un computer specificato da un URI anziché da un nome di computer.

Esempio 11

C:\PS>$so = New-WSManSessionOption -SkipCACheck

PS C:\> new-pssession -ConnectionUri https://management.exchangelabs.com/Management -SessionOption $so -credential server01\admin01

Descrizione
-----------
In questo esempio viene illustrato come creare e utilizzare un parametro SessionOption.

Il primo comando utilizza il cmdlet New-WSManSessionOption per creare un'opzione di sessione. L'oggetto SessionOption risultante viene salvato nel parametro $so.

Nel secondo comando l'opzione viene utilizzata in una nuova sessione. Viene utilizzato il cmdlet New-PSSession per creare una nuova sessione. Il valore del parametro SessionOption è l'oggetto SessionOption presente nella variabile $so.

Vedere anche

  • about_PSSessions
  • about_Remote
  • Get-PSSession
  • Remove-PSSession
  • Enter-PSSession
  • Exit-PSSession
  • Invoke-Command


New-PSSessionOption

Crea un oggetto che contiene opzioni avanzate per una sessione PSSession.

Sintassi

New-PSSessionOption [-ApplicationArguments <PSPrimitiveDictionary>] [-CancelTimeOut <int>] [-Culture <CultureInfo>] [-IdleTimeout <int>] [-MaximumReceivedDataSizePerCommand <int>] [-MaximumReceivedObjectSize <int>] [-MaximumRedirection <int>] [-NoCompression] [-NoEncryption] [-NoMachineProfile] [-OpenTimeOut <int>] [-OperationTimeOut <int>] [-ProxyAccessType {<None> | <IEConfig> | <WinHttpConfig> | <AutoDetect> | <NoProxyServer>}] [-ProxyAuthentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-ProxyCredential <PSCredential>] [-SkipCACheck] [-SkipCNCheck] [-SkipRevocationCheck] [-UICulture <CultureInfo>] [-UseUTF16] [<CommonParameters>]

Descrizione

Il cmdlet New-PSSessionOption crea un oggetto che contiene opzioni avanzate per una sessione PSSession. È possibile utilizzare l'oggetto come valore del parametro SessionOption di cmdlet che creano una sessione PSSession, ad esempio New-PSSession, Enter-PSSession e Invoke-Command.

Senza parametri, New-PSSessionOption genera un oggetto che contiene i valori predefiniti per tutte le opzioni. Poiché è possibile modificare tutte le proprietà, è possibile utilizzare l'oggetto risultante come modello e creare oggetti opzione standard per l'organizzazione.

Parametri

-ApplicationArguments <PSPrimitiveDictionary>

Specifica una tabella hash inviata direttamente alla configurazione di sessione senza interpretazione. Questa tabella hash è disponibile alla configurazione di sessione come una proprietà della classe PSSenderInfo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-CancelTimeOut <int>

Determina per quanto tempo Windows PowerShell attende il completamento di un'operazione di annullamento (CTRL + C) prima di terminarla. Immettere un valore in millisecondi.

Il valore predefinito è 60000 (un minuto). Un valore pari a 0 (zero) corrisponde all'assenza di timeout, pertanto il comando continua all'infinito.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 60000
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Culture <CultureInfo>

Specifica le impostazioni cultura da utilizzare per la sessione PSSession. Immettere un nome di impostazioni cultura in formato <codicelingua2>-<codicepaese2>, ad esempio "ja-JP", una variabile che contiene un oggetto CultureInfo o un comando che ottiene un oggetto CultureInfo, ad esempio Get-Culture.

Il valore predefinito è $null e per la sessione PSSession vengono utilizzate le impostazioni cultura del sistema operativo al momento della creazione della sessione stessa.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Current culture
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-IdleTimeout <int>

Determina per quanto tempo rimane aperta la sessione PSSession se il computer remoto non riceve alcuna comunicazione dal computer locale, incluso il segnale di heartbeat. Alla scadenza dell'intervallo, la sessione PSSession viene chiusa.

Immettere un valore in millisecondi. Il valore predefinito è 240000 (4 minuti). Il valore minimo è 60000 (1 minuto).

Se entrambi i computer locale e remoto specificano un valore di timeout di inattività, la sessione PSSession utilizza il valore di timeout più breve. Nel computer locale è possibile impostare un valore di timeout di inattività tramite questo parametro o nella variabile di preferenza $PSSessionOption. Nel computer remoto è possibile specificare un valore di timeout di inattività nella configurazione di WS-Management (WSMAN:\localhost\shell\idletimeout).

Obbligatorio? | false
Posizione? | named
Valore predefinito | 240000
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-MaximumReceivedDataSizePerCommand <int>

Specifica il numero massimo di byte che il computer locale può ricevere dal computer remoto in un solo comando. Immettere un valore in byte. Per impostazione predefinita non vi è alcun limite nelle dimensioni dei dati.

Questa opzione ha lo scopo di proteggere le risorse nel computer client.

Obbligatorio? | false
Posizione? | named
Valore predefinito | No limit
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-MaximumReceivedObjectSize <int>

Specifica le dimensioni massime di un oggetto che il computer locale può ricevere dal computer remoto. Immettere un valore in byte. Per impostazione predefinita non vi è alcun limite nelle dimensioni dei dati.

Questa opzione ha lo scopo di proteggere le risorse nel computer client.

Obbligatorio? | false
Posizione? | named
Valore predefinito | No limit
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-MaximumRedirection <int>

Determina quante volte una connessione viene reindirizzata da Windows PowerShell a un URI alternativo prima che venga interrotta. Il valore predefinito è 5. Con un valore pari a 0 (zero) non viene effettuato alcun reindirizzamento.

Questa opzione viene utilizzata nella sessione PSSession solo quando nel comando che crea la sessione viene utilizzato il parametro AllowRedirection.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 5
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-NoCompression

Disattiva la compressione dei pacchetti nella sessione PSSession. Per la compressione vengono utilizzati più cicli del processore, ma la trasmissione è più veloce.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-NoEncryption

Disattiva la crittografia dei dati.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-NoMachineProfile

Impedisce che venga caricato il profilo utente Windows dell'utente. In tal modo le sessioni PSSession possono essere create più velocemente, ma le impostazioni del Registro di sistema specifiche dell'utente, elementi quali le variabili di ambiente e i certificati non saranno disponibili nella sessione PSSession.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-OpenTimeOut <int>

Determina per quanto tempo il computer client attende che venga stabilita la connessione della sessione. Al termine dell'intervallo, il comando con cui viene stabilita la connessione ha esito negativo. Immettere un valore in millisecondi.

Il valore predefinito è 180000 (3 minuti). Un valore pari a 0 (zero) corrisponde all'assenza di timeout, pertanto il comando continua all'infinito.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 180000
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-OperationTimeOut <int>

Determina il tempo massimo di esecuzione di qualsiasi operazione nella sessione PSSession. Al termine dell'intervallo, l'operazione ha esito negativo. Immettere un valore in millisecondi.

Il valore predefinito è 180000 (3 minuti). Un valore pari a 0 (zero) corrisponde all'assenza di timeout, pertanto l'operazione continua all'infinito.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 180000
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ProxyAccessType <ProxyAccessType>

Determina il meccanismo utilizzato per risolvere il nome host. I valori validi sono IEConfig, WinHttpConfig, AutoDetect, NoProxyServer e None. Il valore predefinito è None.

Per informazioni sui valori di questo parametro, vedere la descrizione dell'enumerazione System.Management.Automation.Remoting.ProxyAccessType in MSDN Library all'indirizzo http://go.microsoft.com/fwlink/?LinkId=144756 (le informazioni potrebbero essere in lingua inglese).

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ProxyAuthentication <AuthenticationMechanism>

Specifica il metodo di autenticazione utilizzato per la risoluzione proxy. I valori validi sono Basic, Digest e Negotiate. Il valore predefinito è Negotiate.

Per informazioni sui valori di questo parametro, vedere la descrizione dell'enumerazione System.Management.Automation.Runspaces.AuthenticationMechanism in MSDN Library all'indirizzo http://go.microsoft.com/fwlink/?LinkID=144382 (le informazioni potrebbero essere in lingua inglese).

Obbligatorio? | false
Posizione? | named
Valore predefinito | Negotiate
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ProxyCredential <PSCredential>

Specifica le credenziali da utilizzare per l'autenticazione proxy. Immettere una variabile che contiene un oggetto PSCredential o un comando che ottiene un oggetto PSCredential, ad esempio Get-Credential. Se questa opzione non viene impostata, non viene specificata alcuna credenziale.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SkipCACheck

Specifica che durante la connessione a HTTPS, il client non convalida il fatto che il certificato del server sia firmato da un'autorità di certificazione (CA) attendibile.

Utilizzare questa opzione solo quando il computer remoto è considerato attendibile mediante altri meccanismi, ad esempio quando il computer remoto fa parte di una rete fisicamente sicura e isolata o è elencato come host attendibile in una configurazione WinRM.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SkipCNCheck

Specifica che non è necessario che il nome comune del certificato del server corrisponda al nome host del server. Questa opzione è utilizzata solo in operazioni remote che utilizzano il protocollo HTTPS.

Utilizzare questa opzione solo per i computer attendibili.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SkipRevocationCheck

Non convalida lo stato della revoca del certificato server.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UICulture <CultureInfo>

Specifica le impostazioni cultura dell'interfaccia utente da utilizzare per la sessione PSSession.

Immettere un nome di impostazioni cultura in formato <codicelingua2>-<codicepaese2>, ad esempio "ja-JP", una variabile che contiene un oggetto CultureInfo o un comando che ottiene un oggetto CultureInfo, ad esempio Get-Culture.

Il valore predefinito è $null e per la sessione PSSession vengono utilizzate le impostazioni cultura dell'interfaccia utente impostate nel sistema operativo al momento della creazione della sessione stessa.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Current UI culture
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseUTF16

La richiesta viene codificata in formato UTF16 anziché in formato UTF8.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False (UTF8 encoding)
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.Management.Automation.Remoting.PSSessionOption

Note

Se il parametro SessionOption non viene utilizzato in un comando per creare una sessione PSSession, le opzioni della sessione sono determinate dai valori della proprietà della variabile di preferenza $PSSessionOption, se impostato. Per ulteriori informazioni sulla variabile di preferenza $PSSessionOption, vedere about_Preference_Variables.

Esempio 1

C:\PS>New-PSSessionOption

MaximumConnectionRedirectionCount : 5
NoCompression                     : False
NoMachineProfile                  : False
ProxyAccessType                   : IEConfig
ProxyAuthentication               : Negotiate
ProxyCredential                   :
SkipCACheck                       : False
SkipCNCheck                       : False
SkipRevocationCheck               : False
OperationTimeout                  : 00:03:00
NoEncryption                      : False
UseUTF16                          : False
Culture                           :
UICulture                         :
MaximumReceivedDataSizePerCommand :
MaximumReceivedObjectSize         :
ApplicationArguments              :
OpenTimeout                       : 00:03:00
CancelTimeout                     : 00:01:00
IdleTimeout                       : 00:04:00

Descrizione
-----------
Questo comando crea un oggetto opzione di sessione con tutti i valori predefiniti.

Esempio 2

C:\PS>$pso = new-pssessionoption -Culture "fr-fr" -MaximumReceivedObjectSize 10MB

C:\PS> new-pssession -computerName Server01 -SessionOption $pso

Descrizione
-----------
In questo esempio viene illustrato come utilizzare un oggetto opzione di sessione per configurare una sessione.

Con il primo comando un nuovo oggetto opzione di sessione viene creato e salvato nel valore della variabile $pso.

Nel secondo comando viene utilizzato il cmdlet New-PSSession per creare una sessione PSSession nel computer remoto Server01. L'oggetto opzione di sessione nel valore della variabile $pso viene utilizzato come valore del parametro SessionOption del comando.

Esempio 3

C:\PS>enter-pssession -computername Server01 -sessionOption (new-pssessionoption -noEncryption -noCompression)

Descrizione
-----------
In questo comando viene utilizzato il cmdlet Enter-PSSession per avviare una sessione interattiva con il computer Server01. Il valore del parametro SessionOption è un comando New-PSSessionOption con i parametri opzionali NoEncryption e NoCompression.

Il comando New-PSSessionOption è racchiuso tra parentesi per garantire che venga eseguito prima del comando Enter-PSSession.

Esempio 4

C:\PS>$a = new-pssessionoption

MaximumConnectionRedirectionCount : 5
NoCompression                     : False
NoMachineProfile                  : False
ProxyAccessType                   : IEConfig
ProxyAuthentication               : Negotiate
ProxyCredential                   :
SkipCACheck                       : False
SkipCNCheck                       : False
SkipRevocationCheck               : False
OperationTimeout                  : 00:03:00
NoEncryption                      : False
UseUTF16                          : False
Culture                           :
UICulture                         :
MaximumReceivedDataSizePerCommand :
MaximumReceivedObjectSize         :
ApplicationArguments              :
OpenTimeout                       : 00:03:00
CancelTimeout                     : 00:01:00
IdleTimeout                       : 00:04:00

C:\PS> $a.UICulture = (get-UICulture)
C:\PS> $a.OpenTimeout = (new-timespan -minutes 4)
C:\PS> $a.MaximumConnectionRedirectionCount = 1

C:\PS> $a

MaximumConnectionRedirectionCount : 1
NoCompression                     : False
NoMachineProfile                  : False
ProxyAccessType                   : IEConfig
ProxyAuthentication               : Negotiate
ProxyCredential                   :
SkipCACheck                       : False
SkipCNCheck                       : False
SkipRevocationCheck               : False
OperationTimeout                  : 00:03:00
NoEncryption                      : False
UseUTF16                          : False
Culture                           :
UICulture                         : en-US
MaximumReceivedDataSizePerCommand :
MaximumReceivedObjectSize         :
ApplicationArguments              :
OpenTimeout                       : 00:04:00
CancelTimeout                     : 00:01:00
IdleTimeout                       : 00:04:00

Descrizione
-----------
In questo esempio viene illustrato che è possibile modificare l'oggetto opzione di sessione. Tutte le proprietà hanno valori di lettura/scrittura.

Utilizzare questo metodo per creare un oggetto sessione standard per l'organizzazione, quindi creare versioni personalizzate di tale oggetto per utilizzi specifici.

Esempio 5

C:\PS>$PSSessionOption = New-PSSessionOption -OpenTimeOut 120000

Descrizione
-----------
Questo comando crea una variabile di preferenza $PSSessionOption.

Quando la variabile di preferenza $PSSessionOption è presente nella sessione, stabilisce valori predefiniti per le opzioni nelle sessioni PSSession create utilizzando i cmdlet New-PSSession, Enter-PSSession e Invoke-Command.

Per rendere disponibile in tutte le sessioni la variabile $PSSessionOption, aggiungerla alla sessione e al profilo di Windows PowerShell.

Per ulteriori informazioni sulla variabile di preferenza $PSSessionOption, vedere about_Preference_Variables. Per ulteriori informazioni sui profili, vedere about_Profiles.

Esempio 6

C:\PS>$skipCN = new-pssessionoption -SkipCNCheck

C:\PS> new-pssession -computername 171.09.21.207 -UseSSL -credential domain01\user01 -sessionOption $skipCN

Descrizione
-----------
In questo esempio viene illustrato come utilizzare un oggetto SessionOption per soddisfare i requisiti per la configurazione di una sessione remota.

Il primo comando utilizza il cmdlet New-PSSessionOption per creare un oggetto opzione di sessione con la proprietà SkipCNCheck. L'oggetto sessione risultante viene salvato nella variabile $skipCN.

Nel secondo comando viene utilizzato il cmdlet New-PSSession per creare una nuova sessione PSSession in un computer remoto. La variabile di controllo $skipCN viene utilizzata nel valore del parametro SessionOption.

Poiché il computer viene identificato in base all'indirizzo IP, il valore del parametro ComputerName non corrisponde ad alcun nome comune nel certificato utilizzato per Secure Sockets Layer (SSL). Di conseguenza, è obbligatoria l'opzione SkipCNCheck.

Vedere anche

  • Enter-PSSession
  • New-PSSession
  • Invoke-Command


New-Service

Crea un nuovo servizio Windows.

Sintassi

New-Service [-Name] <string> [-BinaryPathName] <string> [-Credential <PSCredential>] [-DependsOn <string[]>] [-Description <string>] [-DisplayName <string>] [-StartupType {<Automatic> | <Manual> | <Disabled>}] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Mediante il cmdlet New-Service viene creata una nuova voce per un servizio di Windows nel Registro di sistema e nel database del servizio. Per un nuovo servizio è necessario un file eseguibile da eseguire durante il servizio.

I parametri del cmdlet consentono di impostare il nome visualizzato, la descrizione, il tipo di avvio e le dipendenze del servizio.

Parametri

-BinaryPathName <string>

Specifica il percorso del file eseguibile per il servizio. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01". In alternativa, immettere un oggetto PSCredential, ad esempio uno del cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-DependsOn <string[]>

Specifica i nomi di altri servizi dai quali dipende il nuovo servizio. Per immettere più nomi di servizio, separarli con una virgola.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Description <string>

Specifica una descrizione del servizio.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-DisplayName <string>

Specifica un nome visualizzato per il servizio.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string>

Specifica il nome del servizio. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-StartupType <ServiceStartMode>

Imposta il tipo di avvio del servizio. "Automatic" è il valore predefinito.

I valori validi sono:

--Manual: il servizio viene avviato solo manualmente, da un utente (mediante Gestione controllo servizi) o da un'applicazione.

-- Automatic: il servizio deve essere avviato, o è stato avviato, dal sistema operativo all'avvio del sistema. Se un servizio avviato automaticamente dipende da un servizio avviato manualmente, anche quest'ultimo viene avviato automaticamente all'avvio del sistema.

-- Disabled: il servizio è disabilitato e non può essere avviato da un utente o un'applicazione.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Automatic
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.ServiceProcess.ServiceController New-Service restituisce un oggetto che rappresenta il nuovo servizio.

Note

Per eseguire questo cmdlet in Windows Vista e nelle versioni successive di Windows, avviare Windows PowerShell con l'opzione "Esegui come amministratore".

Esempio 1

C:\PS>new-service -name TestService -binaryPathName "C:\WINDOWS\System32\svchost.exe -k netsvcs"

Descrizione
-----------
Con questo comando viene creato un nuovo servizio denominato "TestService".

Esempio 2

C:\PS>new-service -name TestService -path "C:\WINDOWS\System32\svchost.exe -k netsvcs" -dependson NetLogon -displayName "Test Service" -StartupType Manual -Description "This is a test service."

Descrizione
-----------
Con questo comando viene creato un nuovo servizio denominato "TestService". Vengono utilizzati i parametri del cmdlet New-Service per specificare una descrizione, un tipo di avvio e un nome visualizzato per il nuovo servizio.

Per specificare il parametro BinaryPathName, viene utilizzato l'alias del parametro Path. È anche possibile utilizzare "-bpn".

Esempio 3

C:\PS>get-wmiobject win32_service -filter "name='testservice'"

ExitCode  : 0
Name      : testservice
ProcessId : 0
StartMode : Auto
State     : Stopped
Status    : OK

Descrizione
-----------
Viene utilizzato il cmdlet Get-WmiObject per ottenere l'oggetto Win32_Service per il nuovo servizio. Questo oggetto include la modalità di avvio e la descrizione del servizio.

Vedere anche

  • Get-Service
  • Start-Service
  • Stop-Service
  • Restart-Service
  • Resume-Service
  • Set-Service
  • Suspend-Service


New-TimeSpan

Crea un oggetto TimeSpan.

Sintassi

New-TimeSpan [[-Start] <DateTime>] [[-End] <DateTime>] [<CommonParameters>]

New-TimeSpan [-Days <int>] [-Hours <int>] [-Minutes <int>] [-Seconds <int>] [<CommonParameters>]

Descrizione

Il cmdlet New-TimeSpan crea un oggetto TimeSpan che rappresenta un intervallo di tempo. È possibile utilizzare tali oggetto per aggiungere o sottrarre tempo dagli oggetti DateTime.

Senza parametri, un comando New-Timespan restituisce un oggetto TimeSpan che rappresenta un intervallo di tempo pari a zero.

Parametri

-Days <int>

Indica i giorni nell'intervallo di tempo. L'impostazione predefinita è 0.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 0
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-End <DateTime>

Indica la fine di un intervallo di tempo. L'impostazione predefinita è rappresentata da data e ora correnti.

Obbligatorio? | false
Posizione? | 2
Valore predefinito | Current date and time
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Hours <int>

Indica le ore nell'intervallo di tempo. L'impostazione predefinita è zero.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 0
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Minutes <int>

Indica i minuti nell'intervallo di tempo. L'impostazione predefinita è 0.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 0
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Seconds <int>

Indica la durata dell'intervallo di tempo in secondi. L'impostazione predefinita è 0.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 0
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Start <DateTime>

Indica l'inizio di un intervallo di tempo. Immettere una stringa che rappresenta la data e l'ora, ad esempio 15/03/09 o un oggetto DateTime, ad esempio ottenuto da un comando Get-Date.

L'impostazione predefinita è rappresentata da data e ora correnti.

Obbligatorio? | false
Posizione? | 1
Valore predefinito | Current date and time
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.DateTime È possibile reindirizzare un oggetto DateTime che rappresenta l'ora di inizio a New-TimeSpan.
Output | System.Timespan New-TimeSpan restituisce un oggetto che rappresenta l'intervallo di tempo.

Esempio 1

C:\PS>$timespan = new-timespan -hour 1 -minute 25

Descrizione
-----------
Con questo comando verrà creato un oggetto TimeSpan con una durata di 1 ora e 25 minuti, che verrà archiviato in una variabile denominata $timespan. Verrà quindi visualizzata una rappresentazione dell'oggetto TimeSpan.

Esempio 2

C:\PS>new-timespan -end (get-date -year 2010 -month 1 -day 1)

Descrizione
-----------
In questo esempio viene creato un nuovo oggetto TimeSpan che rappresenta l'intervallo tra l'ora di esecuzione del comando e il 1 gennaio 2010.

Questo comando non richiede il parametro Start, perché il valore predefinito del parametro Start è rappresentato dalla data e dall'ora correnti.

Esempio 3

C:\PS>$90days = new-timespan -days 90

C:\PS> (get-date) + $90days

Descrizione
-----------
Questi comandi restituiscono la data di 90 giorni successiva alla data corrente.

Vedere anche

  • Set-Date
  • Get-Date


New-Variable

Crea una nuova variabile.

Sintassi

New-Variable [-Name] <string> [[-Value] <Object>] [-Description <string>] [-Force] [-Option {<None> | <ReadOnly> | <Constant> | <Private> | <AllScope>}] [-PassThru] [-Scope <string>] [-Visibility {<Public> | <Private>}] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet New-Variable crea una nuova variabile in Windows PowerShell. È possibile assegnare un valore alla variabile durante la creazione oppure assegnare o modificare il valore dopo la creazione.

È possibile utilizzare i parametri di New-Variable per impostare le proprietà della variabile, ad esempio quelle che creano variabili di sola lettura o costanti, impostare l'ambito di una variabile e determinare se le variabili sono pubbliche o private.

In genere, si crea una nuova variabile digitando il nome della variabile e il relativo valore, ad esempio "$var = 3", ma è possibile utilizzare il cmdlet New-Variable per utilizzarne i parametri.

Parametri

-Description <string>

Specifica una descrizione della variabile.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente di creare una nuova variabile con lo stesso nome di una variabile di sola lettura esistente.

Per impostazione predefinita, è possibile sovrascrivere una variabile, a meno che la variabile non disponga di un valore dell'opzione ReadOnly o Constant. Per ulteriori informazioni, vedere il parametro Option.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string>

Specifica un nome per la nuova variabile.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Option <ScopedItemOptions>

Imposta il valore della proprietà Options della nuova variabile.

I valori validi sono:

-- None: non imposta alcuna opzione. "None" rappresenta il valore predefinito.

-- ReadOnly: non è possibile modificare il valore della variabile, a meno che non si utilizzi il parametro Force. È possibile utilizzare Remove-Variable per eliminare la variabile.

-- Constant: la variabile non può essere eliminata e non è possibile modificarne le proprietà. Il valore "Constant" è disponibile solo quando si crea un alias. Non è possibile modificare in "Constant" l'opzione di una variabile esistente.

-- Private: la variabile è disponibile solo nell'ambito specificato dal parametro Scope Viene ereditata da ambiti figlio. Questo valore non è correlato al valore "Private" del parametro Visibility.

--AllScope: la variabile viene copiata in qualsiasi nuovo ambito creato.

Per visualizzare la proprietà Options delle variabili, digitare "Get-Variable | Format-Table -property name, options -autosize".

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta la nuova variabile. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Scope <string>

Determina l'ambito della nuova variabile. I valori validi sono "Global", "Local", "Script" oppure un numero relativo all'ambito corrente, ovvero da 0 al numero di ambiti, dove 0 corrisponde all'ambito corrente e 1 al relativo padre. Il valore predefinito è "Local". Per ulteriori informazioni, vedere about_Scopes.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Value <Object>

Specifica il valore iniziale della variabile.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Visibility <SessionStateEntryVisibility>

Determina se la variabile è visibile all'esterno della sessione in cui è stata creata. Questo parametro viene progettato per l'utilizzo in script e comandi che verranno forniti ad altri utenti.

I valori validi sono:

-- Public: la variabile è visibile. L'impostazione predefinita è "Public".

-- Private: la variabile non è visibile.

Quando una variabile è privata, non viene visualizzata in elenchi di variabili, ad esempio quelli restituiti da Get-Variable o in visualizzazioni dell'unità Variable:. I comandi per leggere o modificare il valore di una variabile privata restituiscono un errore. L'utente può tuttavia eseguire comandi che utilizzano una variabile privata se i comandi sono stati scritti nella sessione in cui è stata definita la variabile.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Public
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Object È possibile reindirizzare un valore a New-Variable.
Output | Nessuno o System.Management.Automation.PSVariable Quando si utilizza il parametro PassThru, New-Variable genera un oggetto System.Management.Automation.PSVariable che rappresenta la nuova variabile. Negli altri casi, il cmdlet non genera alcun output.

Esempio 1

C:\PS>new-variable days

Descrizione
-----------
Con questo comando verrà creata una nuova variabile denominata "days", cui non verrà assegnato nessun valore subito dopo il comando.

Esempio 2

C:\PS>new-variable zipcode -value 98033

Descrizione
-----------
Tramite questo comando verrà creata una variabile denominata "zipcode" cui verrà assegnato il valore "98033".

Esempio 3

C:\PS>new-variable -name max -value 256 -option readonly

new-variable -name max -value 1024

new-variable -name max -value 1024 -force

C:\PS> new-variable -name max -value 256 -option readonly

C:\PS> new-variable -name max -value 1024
New-Variable : A variable with name 'max' already exists.
At line:1 char:13
+ new-variable <<<<  -name max -value 1024

C:\PS> new-variable -name max -value 1024 -force

Descrizione
-----------
In questo esempio viene illustrato come utilizzare l'opzione ReadOnly di New-Variable per proteggere una variabile dalla sovrascrittura.

Il primo comando crea una nuova variabile denominata Max e imposta il valore su "256". Viene utilizzato il parametro Option con un valore di ReadOnly.

Il secondo comando tenta di creare una seconda variabile con lo stesso nome. Questo comando restituisce un errore, perché la variabile è impostata in sola lettura.

Nel terzo comando viene utilizzato il parametro Force per eseguire l'override della protezione di sola lettura nella variabile. In questo caso, il comando per creare una nuova variabile con lo stesso nome avrà esito positivo.

Esempio 4

C:\PS>new-variable -name counter -visibility private

#Effect of private variable in a module.

C:\PS> get-variable c*

Name                           Value
----                           -----
Culture                        en-US
ConsoleFileName
ConfirmPreference              High
CommandLineParameters          {}

C:\PS> $counter
"Cannot access the variable '$counter' because it is a private variable"

C:\PS> Get-Counter
Name         Value
----         -----
Counter1     3.1415
...

Descrizione
-----------
Con questo comando viene illustrato il comportamento di una variabile privata in un modulo. Il modulo contiene il cmdlet Get-Counter che dispone di una variabile privata denominata "Counter". Viene utilizzato il parametro Visibility con il valore "Private" per creare la variabile.

Nell'output dell'esempio viene illustrato il comportamento di una variabile privata. L'utente che ha caricato il modulo non può visualizzare né modificare il valore della variabile Counter, ma è possibile leggere e modificare questa variabile mediante i comandi nel modulo.

Vedere anche

  • Get-Variable
  • Set-Variable
  • Remove-Variable
  • Clear-Variable


New-WebServiceProxy

Crea un oggetto proxy del servizio Web che consente di utilizzare e gestire il servizio Web in Windows PowerShell.

Sintassi

New-WebServiceProxy [-URI] <Uri> [[-Classe] <string>] [[-Spazio dei nomi] <string>] [<CommonParameters>]

New-WebServiceProxy [-URI] <Uri> [[-Classe] <string>] [[-Spazio dei nomi] <string>] [-Credential <PSCredential>] [<CommonParameters>]

New-WebServiceProxy [-URI] <Uri> [[-Classe] <string>] [[-Spazio dei nomi] <string>] [-UseDefaultCredential] [<CommonParameters>]

Descrizione

Il cmdlet New-WebServiceProxy consente di utilizzare un servizio Web in Windows PowerShell. Viene stabilita la connessione a un servizio Web e viene creato un oggetto proxy del servizio Web in Windows PowerShell. È possibile utilizzare l'oggetto proxy per gestire il servizio Web.

Un servizio Web è un programma basato su XML che consente lo scambio di dati su una rete, in particolare su Internet. Microsoft .NET Framework fornisce oggetti proxy per servizi Web che rappresentano il servizio Web come oggetto .NET Framework.

Parametri

-Classe <string>

Specifica un nome per la classe proxy creata dal cmdlet per il servizio Web. Il valore di questo parametro viene utilizzato con il parametro Namespace per fornire un nome completo per la classe. Il valore predefinito viene generato dall'URI.

Obbligatorio? | false
Posizione? | 2
Valore predefinito | Generated from the URI
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente. Si tratta di un'alternativa all'utilizzo del parametro UseDefaultCredential.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01". In alternativa, immettere un oggetto PSCredential, ad esempio quello generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Spazio dei nomi <string>

Specifica uno spazio dei nomi per la nuova classe.

Il valore di questo parametro viene utilizzato con il valore del parametro Class per generare un nome completo per la classe. Il valore predefinito è Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes più un tipo generato dall'URI.

È possibile impostare il valore del parametro Namespace in modo da poter accedere a più servizi Web con lo stesso nome.

Obbligatorio? | false
Posizione? | 3
Valore predefinito | Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-URI <Uri>

Specifica l'URI del servizio Web. Immettere un URI o il percorso e il nome di un file che contiene una descrizione del servizio.

È necessario che l'URI faccia riferimento a una pagina asmx o a una pagina che restituisce una descrizione del servizio. Per restituire una descrizione di un servizio Web creato tramite ASP.NET, aggiungere "?WSDL" all'URL del servizio Web (ad esempio http://www.contoso.com/MyWebService.asmx?WSDL).

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseDefaultCredential

Imposta su True il parametro UseDefaultCredential nell'oggetto proxy risultante. Si tratta di un'alternativa all'utilizzo del parametro Credential.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Questo cmdlet non accetta input dalla pipeline.
Output | Oggetto proxy del servizio Web Lo spazio dei nomi e la classe dell'oggetto sono determinati dai parametri del comando. Il valore predefinito viene generato dall'URI (Uniform Resource Identifier) di input.

Note

New-WebServiceProxy utilizza la classe System.Net.WebClient per caricare il servizio Web specificato.

Esempio 1

C:\PS>$zip = New-WebServiceProxy -uri http://www.webservicex.net/uszip.asmx?WSDL

Descrizione
-----------
In questo comando viene utilizzato il comando New-WebServiceProxy per creare un proxy .NET Framework del servizio Web US Zip in Windows PowerShell.

Esempio 2

C:\PS>$URI = "http://www.webservicex.net/uszip.asmx?WSDL"

C:\PS> $zip = New-WebServiceProxy -uri $URI -namespace WebServiceProxy -class ZipClass

Descrizione
-----------
In questo comando viene utilizzato il cmdlet New-WebServiceProxy per creare il proxy .NET Framework del servizio Web US Zip.

Con il primo comando l'URI del servizio Web viene archiviato nella variabile $URI.

Con il secondo comando viene creato il proxy del servizio Web. Vengono utilizzati il parametro URI per specificare l'URI e i parametri Namespace e Class per specificare lo spazio dei nomi e la classe dell'oggetto.

Esempio 3

C:\PS>$zip | get-member -type method

   TypeName: WebServiceProxy.USZip

Name                      MemberType Definition
----                      ---------- ----------
Abort                     Method     System.Void Abort(
BeginGetInfoByAreaCode    Method     System.IAsyncResul
BeginGetInfoByCity        Method     System.IAsyncResul
BeginGetInfoByState       Method     System.IAsyncResul
BeginGetInfoByZIP         Method     System.IAsyncResul
CreateObjRef              Method     System.Runtime.Rem
Discover                  Method     System.Void Discov
Dispose                   Method     System.Void Dispos
EndGetInfoByAreaCode      Method     System.Xml.XmlNode
EndGetInfoByCity          Method     System.Xml.XmlNode
EndGetInfoByState         Method     System.Xml.XmlNode
EndGetInfoByZIP           Method     System.Xml.XmlNode
Equals                    Method     System.Boolean Equ
GetHashCode               Method     System.Int32 GetHa
GetInfoByAreaCode         Method     System.Xml.XmlNode
GetInfoByCity             Method     System.Xml.XmlNode
GetInfoByState            Method     System.Xml.XmlNode
GetInfoByZIP              Method     System.Xml.XmlNode
GetLifetimeService        Method     System.Object GetL
GetType                   Method     System.Type GetTyp
InitializeLifetimeService Method     System.Object Init
ToString                  Method     System.String ToSt

Descrizione
-----------
In questo comando viene utilizzato il cmdlet Get-Member per visualizzare i metodi dell'oggetto proxy del servizio Web nella variabile $zip. Questi metodi verranno utilizzati nell'esempio seguente.

Si noti che TypeName dell'oggetto proxy, WebServiceProxy, riflette lo spazio dei nomi e i nomi delle classi specificati nell'esempio precedente.

Esempio 4

C:\PS>$zip.getinfobyzip(20500).table

CITY      : Washington
STATE     : DC
ZIP       : 20500
AREA_CODE : 202
TIME_ZONE : E

Descrizione
-----------
In questo comando viene utilizzato il proxy del servizio Web archiviato nella variabile Zip. Vengono utilizzati il metodo GetInfoByZip del proxy e la proprietà Table.

Vedere anche

  • New-Service


New-WSManInstance

Crea una nuova istanza di una risorsa di gestione.

Sintassi

New-WSManInstance [-ApplicationName <string>] [-ComputerName <string>] [-Credential <PSCredential>] [-Port <int>] [-UseSSL] [-SelectorSet] <hashtable> -ResourceURI <Uri> [-AuthenticationMechanism <AuthenticationMechanism>] [-SessionOption <hashtable>] [-ValueSet <hashtable>] [<CommonParameters>]

New-WSManInstance [-ConnectionURI <Uri>] [-SelectorSet] <hashtable> -ResourceURI <Uri> [-AuthenticationMechanism <AuthenticationMechanism>] [-SessionOption <hashtable>] [-ValueSet <hashtable>] [<CommonParameters>]

Descrizione

Tramite il cmdlet New-WSManInstance viene creata una nuova istanza di una risorsa di gestione. La nuova istanza della risorsa di gestione viene creata utilizzando un URI di risorsa e un set di valori o un file di input.

Per creare l'istanza della risorsa di gestione, questo cmdlet utilizza il livello di trasporto o la connessione di Gestione remota Windows.

Parametri

-ApplicationName <string>

Specifica il nome dell'applicazione nella connessione. Il valore predefinito del parametro ApplicationName è "WSMAN". L'identificatore completo dell'endpoint remoto ha il formato seguente:

<trasporto>://<server>:<porta>/<NomeApplicazione>

Ad esempio:

http://server01:8080/WSMAN

Tramite Internet Information Services (IIS), che ospita la sessione, le richieste con questo endpoint vengono inoltrate all'applicazione specificata. L'impostazione predefinita "WSMAN" è appropriata per la maggior parte degli utilizzi. Questo parametro è progettato per essere utilizzato quando più computer stabiliscono connessioni remote a un computer in cui è in esecuzione Windows PowerShell. In questo caso, IIS ospita Gestione remota Windows (WS-Management) per motivi di efficienza.

Obbligatorio? | false
Posizione? | named
Valore predefinito | wsman
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-AuthenticationMechanism <AuthenticationMechanism>

Specifica il meccanismo di autenticazione da utilizzare nel server. I valori possibili sono:

- Basic: Basic è uno schema in cui il nome utente e la password vengono inviati come testo non crittografato al server o al proxy.

- Default: utilizzare il metodo di autenticazione implementato dal protocollo WS-Management. Si tratta dell'impostazione predefinita.

- Digest: Digest è uno schema basato su una richiesta di verifica e relativa risposta che utilizza una stringa di dati specificata dal server per la richiesta di verifica.

- Kerberos: il server e il computer client si autenticano reciprocamente utilizzando certificati Kerberos.

- Negotiate: Negotiate è uno schema basato su una richiesta di verifica e relativa risposta che negozia con il server o il proxy per determinare lo schema da utilizzare per l'autenticazione. Ad esempio, questo valore di parametro consente la negoziazione per determinare se viene utilizzato il protocollo Kerberos o NTLM.

- CredSSP: utilizzare l'autenticazione CredSSP (Credential Security Service Provider) che consente all'utente di delegare le credenziali. Questa opzione è destinata ai comandi che vengono eseguiti in un computer remoto, ma raccolgono dati o eseguono ulteriori comandi in altri computer remoti.

Attenzione: CredSSP (Credential Security Service Provider) delega le credenziali dell'utente dal computer locale a un computer remoto. Questa procedura aumenta il rischio per la sicurezza dell'operazione remota. Se il computer remoto è compromesso, quando le credenziali vengono passate a tale computer è possibile utilizzarle per controllare la sessione di rete.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string>

Specifica il computer in cui si desidera eseguire l'operazione di gestione. Il valore può essere un nome di dominio completo, un nome NetBIOS o un indirizzo IP. Utilizzare il nome del computer locale, localhost o un punto (.) per specificare il computer locale. Il valore predefinito è il computer locale. Quando il computer remoto si trova in un dominio diverso da quello dell'utente, è necessario utilizzare un nome di dominio completo. È possibile reindirizzare un valore per questo parametro al cmdlet.

Obbligatorio? | false
Posizione? | named
Valore predefinito | localhost
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ConnectionURI <Uri>

Specifica l'endpoint di connessione. Il formato di questa stringa è:

<Trasporto>://<Server>:<Porta>/<NomeApplicazione>.

La seguente stringa rappresenta un valore formattato correttamente per questo parametro:

http://Server01:8080/WSMAN

L'URI deve essere completo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente. Digitare un nome utente, ad esempio "User01", "Domain01\User01" o "User@Domain.com". In alternativa, immettere un oggetto PSCredential, ad esempio quello restituito dal cmdlet Get-Credential. Quando si digita un nome utente, viene richiesta una password.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-File <File>

Specifica il percorso di un file utilizzato per creare una risorsa di gestione. La risorsa di gestione viene specificata tramite i parametri ResourceURI e SelectorSet. Ad esempio, il comando seguente utilizza il parametro File:

invoke-wsmanaction -action stopservice -resourceuri wmicimv2/Win32_Service -SelectorSet @{Name="spooler"} -File c:\input.xml -authentication default

Questo comando chiama il metodo StopService [descrittore] nel servizio spooler mediante input da un file. Il file Input.xml contiene quanto segue:

<p:StopService_INPUT xmlns:p="http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service"/>

Obbligatorio? |
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-OptionSet <hashtable>

Passa un set di opzioni a un servizio per modificare o perfezionare la natura della richiesta. Si tratta di opzioni simili a quelle utilizzate nelle shell della riga di comando perché specifiche del servizio. È possibile specificare qualsiasi numero di opzioni.

Nell'esempio seguente viene illustrata la sintassi che passa i valori 1, 2 e 3 per i parametri a, b e c:

-OptionSet @{a=1;b=2;c=3}

Obbligatorio? |
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Port <int>

Specifica la porta da utilizzare per la connessione del client al servizio Gestione remota Windows. Quando il trasporto è HTTP, la porta predefinita è 80. Quando il trasporto è HTTPS, la porta predefinita è 443. Quando si utilizza HTTPS come trasporto, il valore del parametro ComputerName deve corrispondere al nome comune del certificato del server. Tuttavia, se il parametro SkipCNCheck viene specificato come parte del parametro SessionOption, il nome comune del certificato del server non deve corrispondere al nome host del server. Il parametro SkipCNCheck deve essere utilizzato solo per computer attendibili.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ResourceURI <Uri>

Contiene l'URI (Uniform Resource Identifier) dell'istanza o della classe di risorse. L'URI viene utilizzato per identificare un tipo specifico di risorsa, ad esempio dischi o processi, in un computer.

Un URI è composto da un prefisso e da un percorso a una risorsa. Ad esempio:

http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk

http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_NumericSensor

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SelectorSet <hashtable>

Specifica un set di coppie di valori utilizzate per selezionare particolari istanze di risorse di gestione. Il parametro SelectorSet viene utilizzato quando esiste più di un'istanza della risorsa. Il valore del parametro SelectorSet deve essere una tabella hash.

Nell'esempio seguente viene illustrato come immettere un valore per questo parametro.

-SelectorSet @{Name="WinRM";ID="yyy"}

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-SessionOption <hashtable>

Definisce un set di opzioni estese per la sessione WS-Management. Immettere un oggetto SessionOption creato utilizzando il cmdlet New-WSManSessionOption. Per ulteriori informazioni sulle opzioni disponibili, vedere New-WSManSessionOption.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseSSL

Specifica che deve essere utilizzato il protocollo SSL (Secure Sockets Layer) per stabilire una connessione al computer remoto. Per impostazione predefinita SSL non viene utilizzato.

In WS-Management viene crittografato tutto il contenuto di Windows PowerShell trasmesso in rete. Il parametro UseSSL consente di specificare la protezione aggiuntiva derivante dall'utilizzo di HTTPS anziché HTTP. Se si specifica questo parametro ma SSL non è disponibile sulla porta utilizzata per la connessione, il comando ha esito negativo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ValueSet <hashtable>

Specifica una tabella hash che consente di modificare una risorsa di gestione. La risorsa di gestione viene specificata tramite i parametri ResourceURI e SelectorSet. Il valore del parametro ValueSet deve essere una tabella hash.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Questo cmdlet non accetta alcun input.
Output | Nessuno Questo cmdlet non genera alcun output.

Note

Il cmdlet di Strumentazione gestione Windows (WMI) Set-WmiInstance è simile. Set-WmiInstance utilizza il livello di trasporto o la connessione DCOM per creare o aggiornare le istanze WMI.

Esempio 1

C:\PS>New-WSManInstance winrm/config/Listener -SelectorSet @{Transport=HTTPS} -ValueSet @{Hostname="HOST";CertificateThumbprint="XXXXXXXXXX"}

Descrizione
-----------
Questo comando crea un'istanza del listener HTTPS di WS-Management su tutti gli indirizzi IP.

Vedere anche

  • Connect-WSMan
  • Disable-WSManCredSSP
  • Disconnect-WSMan
  • Enable-WSManCredSSP
  • Get-WSManCredSSP
  • Get-WSManInstance
  • Invoke-WSManAction
  • New-WSManSessionOption
  • Remove-WSManInstance
  • Set-WSManInstance
  • Set-WSManQuickConfig
  • Test-WSMan


New-WSManSessionOption

Crea una tabella hash delle opzioni di sessione WS-Management da utilizzare come parametri di input per i cmdlet WS-Management seguenti: Get-WSManInstance Set-WSManInstance Invoke-WSManAction Connect-WSMan

Sintassi

New-WSManSessionOption [-NoCompression <switch>] [-NoProxy <switch>] [-ProxyAuthentication <string>] [-ProxyPassword <string>] [-ProxyUserName <string>] [-SkipCACheck <switch>] [-SkipCNCheck <switch>] [-SkipRevocation <switch>] [-SPNPort <int>] [-Timeout <int>] [-UnEncrypted <switch>] [-UseIEProxyconfig <switch>] [-UseProxyAutoDetection <switch>] [-UseWinHTTPProxyConfig <switch>] [-UTF16 <switch>] [<CommonParameters>]

Descrizione

Crea una tabella hash dell'opzione di sessione WSMan che può essere passata nei cmdlet WSMan:

Get-WSManInstance

Set-WSManInstance

Invoke-WSManAction

Connect-WSMan

Parametri

-NoCompression <switch>

Disattiva la compressione dei pacchetti nella sessione. La compressione è abilitata per impostazione predefinita e i pacchetti inviati tra il client e il server sono compressi. Per la compressione vengono utilizzati più cicli del processore, ma la trasmissione è più veloce.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-NoProxy <switch>

Non viene utilizzato un server proxy. Tutti i nomi host saranno risolti localmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ProxyAuthentication <string>

Specifica il metodo di autenticazione da utilizzare nel proxy. I valori possibili sono:

- Basic: Basic è uno schema in cui il nome utente e la password vengono inviati come testo non crittografato al server o al proxy.

- Digest: Digest è uno schema basato su una richiesta di verifica e relativa risposta che utilizza una stringa di dati specificata dal server per la richiesta di verifica.

- Negotiate (predefinito): Negotiate è uno schema basato su una richiesta di verifica e relativa risposta che negozia con il server o il proxy per determinare lo schema da utilizzare per l'autenticazione. Il protocollo Kerberos e NTLM rappresentano alcuni esempi.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Negotiate
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ProxyPassword <string>

Specifica una password da utilizzare per l'autenticazione proxy.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ProxyUserName <string>

Specifica un nome utente da utilizzare per l'autenticazione proxy.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SkipCACheck <switch>

Specifica che durante la connessione mediante HTTPS, il client non convalida il fatto che il certificato del server sia firmato da un'autorità di certificazione (CA) attendibile. Utilizzare questa opzione solo quando il computer remoto è considerato attendibile mediante altri mezzi, ad esempio se il computer remoto fa parte di una rete fisicamente sicura e isolata o se è elencato come host attendibile nella configurazione WS-Management.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SkipCNCheck <switch>

Specifica che non è necessario che il nome comune del certificato del server corrisponda al nome host del server. Questa opzione viene utilizzata solo in operazioni remote mediante HTTPS. È necessario utilizzare l'opzione solo su computer attendibili.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SkipRevocation <switch>

Lo stato della revoca del certificato del server non viene convalidato.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SPNPort <int>

Specifica un numero di porta da aggiungere al nome dell'entità servizio <SPN> di connessione del server remoto. Quando il meccanismo di autenticazione è Kerberos o Negotiate, viene utilizzato un nome SPN.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Timeout <int>

Definisce il timeout in millisecondi per l'operazione WS-Management.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UnEncrypted <switch>

Non viene utilizzata la crittografia durante l'esecuzione di operazioni remote su HTTP.

Nota: il traffico non crittografato non è consentito per impostazione predefinita e deve essere abilitato nella configurazione locale.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseIEProxyconfig <switch>

Viene utilizzata la configurazione proxy di Internet Explorer per l'utente corrente. Questa è l'impostazione predefinita.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseProxyAutoDetection <switch>

Viene forzato il rilevamento automatico del proxy.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseWinHTTPProxyConfig <switch>

Vengono utilizzate le impostazioni proxy configurate per WinHTTP.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UTF16 <switch>

La richiesta viene codificata in formato UTF16 anziché in formato UTF8. La codifica predefinita è UTF8.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input |
Output | SessionOption

Vedere anche

  • Connect-WSMan
  • Disable-WSManCredSSP
  • Disconnect-WSMan
  • Enable-WSManCredSSP
  • Get-WSManCredSSP
  • Get-WSManInstance
  • Invoke-WSManAction
  • New-WSManInstance
  • Remove-WSManInstance
  • Set-WSManInstance
  • Set-WSManQuickConfig
  • Test-WSMan


Out-Default

Invia l'output al formattatore e al cmdlet di output predefiniti.

Sintassi

Out-Default [-InputObject <psobject>] [<CommonParameters>]

Descrizione

Il cmdlet Out-Default invia l'output al formattatore e al cmdlet di output predefiniti. Questo cmdlet non ha effetto sulla formattazione o l'output di comandi di Windows PowerShell. Si tratta di un segnaposto che consente di scrivere un cmdlet o una funzione Out-Default personalizzata.

Parametri

-InputObject <psobject>

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input

Output


Out-File

Invia l'output a un file.

Sintassi

Out-File [-FilePath] <string> [[-Encoding] <string>] [-Append] [-Force] [-InputObject <psobject>] [-NoClobber] [-Width <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Out-File invia l'output a un file. È possibile utilizzare questo cmdlet anziché l'operatore di reindirizzamento (>) quando è necessario utilizzarne i parametri.

Parametri

-Append

Aggiunge l'output alla fine di un file esistente, anziché sostituire il contenuto esistente del file.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Encoding <string>

Specifica il tipo di codifica dei caratteri utilizzata nel file. I valori validi sono "Unicode", "UTF7", "UTF8", "UTF32", "ASCII", "BigEndianUnicode", "Default" e "OEM". Il valore predefinito è "Unicode".

Con "Default" verrà utilizzata la codifica della tabella codici ANSI corrente del sistema.

Con "OEM" verrà utilizzato l'identificatore della tabella codici corrente del produttore dell'hardware originale per il sistema operativo.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-FilePath <string>

Specifica il percorso del file di output.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di sovrascrivere un file di sola lettura esistente. Quando si utilizza il parametro Force, il cmdlet non può ignorare le limitazioni di sicurezza.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica gli oggetti da scrivere nel file. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-NoClobber

Impedisce che venga sovrascritto, ovvero sostituito, il contenuto di un file esistente. Per impostazione predefinita, se nel percorso specificato è presente un file, Out-File lo sovrascrive senza visualizzare alcun avviso. Se vengono utilizzati sia Append che NoClobber, l'output verrà accodato al file esistente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Width <int>

Specifica il numero di caratteri di ogni riga di output. Eventuali caratteri aggiuntivi vengono troncati e non portati a capo. Se si omette questo parametro, la larghezza verrà determinata dalle caratteristiche dell'host. Il valore predefinito per la console di Windows PowerShell è 80 (caratteri).

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare qualsiasi oggetto a Out-File.
Output | Nessuno Out-File non genera alcun output.

Note

I cmdlet di tipo Out non consentono di formattare gli oggetti ma solo di eseguirne il rendering e di inviarli alla destinazione di visualizzazione specificata. Un oggetto non formattato inviato a un cmdlet di tipo Out verrà inviato a un cmdlet di formattazione prima di eseguirne il rendering.

Con i cmdlet di tipo Out non sono disponibili parametri per nomi o percorsi di file. Per inviare i dati a un cmdlet che contiene il verbo Out (cmdlet Out), utilizzare un operatore pipeline (|) per inviare l'output di un comando di Windows PowerShell al cmdlet. È inoltre possibile archiviare i dati in una variabile e utilizzare il parametro InputObject per passare i dati al cmdlet. Per informazioni, vedere gli esempi.

Out-File invia i dati ma non crea oggetti di output. Se si reindirizza l'output di Out-File a Get-Member, Get-Member segnalerà che non sono stati specificati oggetti.

Esempio 1

C:\PS>get-process | out-file -filepath C:\Test1\process.txt

Descrizione
-----------
Tramite questo comando un elenco dei processi disponibili nel computer verrà inviato al file Process.txt. Se il file non esiste, Out-File lo crea automaticamente. Poiché il nome del parametro FilePath è facoltativo, è possibile ometterlo e inviare il comando equivalente "get-process | outfile C:\Test1\process.txt".

Esempio 2

C:\PS>get-process | out-file C:\Test1\process.txt -noclobber

Out-File : File C:\Test1\process.txt already exists and NoClobber was specified.
At line:1 char:23
+ get-process | out-file  <<<< process.txt -noclobber

Descrizione
-----------
Anche tramite questo comando un elenco dei processi verrà inviato al file Process.txt, tuttavia verrà utilizzato il parametro NoClobber, che impedisce la sovrascrittura di un file esistente. Nell'output sarà incluso il messaggio di errore che verrà visualizzato quando si utilizza NoClobber con un file esistente.

Esempio 3

C:\PS>$a = get-process

C:\PS> out-file -filepath C:\Test1\process.txt -inputobject $a -encoding ASCII -width 50

Descrizione
-----------
Tramite questi comandi un elenco dei processi disponibili nel computer verrà inviato al file Process.txt. Il testo viene codificato in formato ASCII in modo da poter essere letto da programmi di ricerca come Findstr e Grep. Per impostazione predefinita, Out-File utilizza il formato Unicode.

Tramite il primo comando verrà ottenuto l'elenco dei processi disponibili nel computer che verranno quindi archiviati nella variabile $a. Nel secondo comando verrà utilizzato il cmdlet Out-File per inviare l'elenco al file Process.txt.

Verrà utilizzato il parametro InputObject per specificare che l'input è disponibile nella variabile $a. Verranno quindi utilizzati il parametro Encoding per convertire l'output in formato ASCII e il parametro Width per limitare ciascuna riga del file a 50 caratteri. Poiché le righe dell'ouput vengono troncate a 50 caratteri, la colonna all'estrema destra della tabella dei processi verrà omessa.

Esempio 4

C:\PS>set-location hklm:\software

c:\PS>get-acl mycompany\mykey | out-file -filepath c:\ps\acl.txt

c:\PS>get-acl mycompany\mykey | out-file -filepath filesystem::acl.txt

Descrizione
-----------
Con questi comandi viene illustrato l'utilizzo del cmdlet Out-File quando non viene utilizzata un'unità FileSystem.

Tramite il primo comando la posizione corrente verrà impostata sulla chiave del Registro di sistema HKLM:\Software.

Il secondo e il terzo comando hanno lo stesso effetto. Viene utilizzato il cmdlet Get-Acl per ottenere il descrittore di sicurezza della sottochiave del Registro di sistema MyKey (HKLM\Software\MyCompany\MyKey). Un operatore pipeline passa il risultato al cmdlet Out-File, che lo invia al file Acl.txt.

Poiché Out-File non è supportato dal provider del Registro di sistema di Windows PowerShell, è necessario specificare il nome dell'unità del file system, ad esempio "c:", oppure il nome del provider seguito per due volte dai due punti, ad esempio "FileSystem::", nel valore del parametro FilePath. Questi metodi verranno illustrati nel secondo e nel terzo comando.

Vedere anche

  • Out-String
  • Out-Null
  • Out-Host
  • Out-Printer
  • Out-Default
  • Tee-Object


Out-GridView

Invia l'output a una tabella interattiva in una finestra separata.

Sintassi

Out-GridView [-InputObject <psobject>] [-Title <string>] [<CommonParameters>]

Descrizione

Il cmdlet Out-GridView invia l'output da un comando a una finestra di visualizzazione griglia in cui l'output viene visualizzato in una tabella interattiva. Questa funzionalità richiede Microsoft .NET Framework 3.5 con Service Pack 1.

Per esaminare i dati, è possibile utilizzare le seguenti funzionalità della tabella:

-- Nascondere, visualizzare e riordinare colonne: per nascondere, visualizzare o riordinare una colonna, fare clic con il pulsante destro del mouse su un'intestazione di colonna, quindi scegliere "Seleziona colonne".

-- Ordinare. Per ordinare i dati, fare clic su un'intestazione di colonna. Fare nuovamente clic per passare dall'ordine crescente a quello decrescente.

-- Filtro rapido. Utilizzare la casella "Filtro" nella parte superiore della finestra per cercare il testo nella tabella. È possibile cercare il testo in una particolare colonna, cercare valori letterali e più parole.

-- Filtro dei criteri. Utilizzare il menu a discesa "Aggiungi criteri" per creare regole per filtrare i dati. È molto utile per i set di dati di grandi dimensioni, ad esempio i registri eventi.

-- Copia e incolla. Per copiare righe di dati da Out-GridView, premere CTRL+C (copia). È possibile incollare i dati in qualsiasi programma di foglio di calcolo o testo.

Per istruzioni sull'utilizzo di queste funzionalità, digitare "Get-Help out-gridview -full" e vedere "Modalità di utilizzo delle funzionalità della finestra di visualizzazione griglia" nella sezione NOTE.

Parametri

-InputObject <psobject>

Accetta input per Out-GridView.

Quando si utilizza il parametro InputObject per inviare una raccolta (più di uno) di oggetti a Out-GridView, Out-GridView considera la raccolta come un oggetto raccolta e visualizza una riga che lo rappresenta. Per visualizzare ciascun oggetto nella raccolta, utilizzare un operatore pipeline (|) per inviare oggetti a Out-GridView.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Title <string>

Specifica il testo visualizzato nella barra del titolo della finestra Out-GridView.

Per impostazione predefinita, nella barra del titolo viene visualizzato il comando che richiama Out-GridView.

Obbligatorio? | false
Posizione? | named
Valore predefinito | The current command
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile inviare qualsiasi oggetto a Out-GridView.
Output | Nessuno Out-GridView non restituisce alcun oggetto.

Note

NOTE PER OUT-GRIDVIEW

----------------------

È possibile scaricare Microsoft .NET Framework 3.5 con Service Pack 1 dall'Area download Microsoft.

Poiché questo cmdlet richiede un'interfaccia utente, non funziona nelle installazioni Server Core di Windows Server.

Non è possibile utilizzare un comando remoto per aprire una finestra di visualizzazione griglia in un computer remoto.

Impossibile preformattare l'output dei comandi inviato, ad esempio utilizzando i cmdlet Format-Table o Format-Wide. Per selezionare le proprietà, utilizzare il cmdlet Select-Object.

È possibile che l'output deserializzato dei comandi remoti non sia formattato correttamente nella finestra di visualizzazione griglia.

TASTI DI SCELTA RAPIDA PER OUT-GRIDVIEW

-----------------------------------

Tramite i tasti di scelta rapida seguenti, è possibile eseguire rapidamente molte attività.

Utilizzare questa chiave: Per eseguire questa azione:

------------- ----------------------------------------------------------------

TAB Sposta il cursore dalla casella Filtro al menu Aggiungi criteri nella tabella e viceversa.

FRECCIA SU Spostarsi nella riga superiore. Sposta il cursore nelle intestazioni di colonna.

FRECCIA GIÙ Spostarsi nella riga inferiore.

FRECCIA SINISTRA Nella riga dell'intestazione di colonna, spostarsi nella colonna a sinistra.

FRECCIA DESTRA Nella riga dell'intestazione di colonna, spostarsi nella colonna a destra.

TASTO MENU DI SCELTA RAPIDA: nella riga dell'intestazione di colonna, visualizza l'opzione "Seleziona colonne".

INVIO o BARRA SPAZIATRICE Nella riga dell'intestazione di colonna, ordinare i dati della colonna (attivare A-Z, Z-A).

MODALITÀ DI UTILIZZO DELLE FUNZIONALITÀ DELLA FINESTRA DI VISUALIZZAZIONE GRIGLIA

----------------------------------------

Negli argomenti seguenti viene illustrato come utilizzare le funzionalità della finestra visualizzata da Out-GridView.

Come nascondere, mostrare e riordinare colonne

--------------------------------------

Per nascondere o mostrare una colonna:

1. Fare clic con il pulsante destro del mouse su qualsiasi intestazione di colonna e scegliere "Seleziona colonne".

2. Nella finestra di dialogo "Seleziona colonne", utilizzare i tasti di direzione per spostare le colonne tra le caselle "Colonne selezionate" e "Colonne disponibili". Solo le colonne presenti nella casella "Colonne selezionate" vengono visualizzate nella finestra di visualizzazione griglia.

Per riordinare le colonne:

--Trascinare la colonna nella posizione desiderata.

oppure

1. Fare clic con il pulsante destro del mouse su qualsiasi intestazione di colonna e scegliere "Seleziona colonne".

2. Nella finestra di dialogo "Seleziona colonne", utilizzare i pulsanti "Sposta in alto" e "Sposta in basso" per riordinare le colonne. Nella finestra di visualizzazione griglia le colonne nella parte superiore dell'elenco sono visualizzate a sinistra delle colonne nella parte inferiore dell'elenco.

Modalità di ordinamento dei dati della tabella

----------------------

-- Per ordinare i dati, fare clic su un'intestazione di colonna.

-- Per modificare l'ordinamento, fare nuovamente clic sull'intestazione di colonna. Ogni volta che si fa clic sulla stessa intestazione, l'ordinamento cambia da crescente a decrescente. L'ordine corrente è indicato da un triangolo nell'intestazione di colonna.

Modalità di selezione dei dati della tabella

------------------------

-- Per selezionare una riga, fare clic sulla riga o utilizzare la freccia su o la freccia giù per passare alla riga.

-- Per selezionare tutte le righe (eccetto la riga dell'intestazione), premere CTRL+A.

-- Per selezionare righe consecutive, premere e tenere premuto il tasto MAIUSC mentre si fa clic sulle righe o mentre si utilizzano i tasti di direzione.

-- Per selezionare righe non consecutive, premere il tasto CTRL e fare clic per aggiungere una riga alla selezione.

Non è possibile selezionare colonne e l'intera riga dell'intestazione di colonna.

Modalità di copia di righe

----------------------

-- Per copiare una o più righe dalla tabella, selezionare le righe, quindi premere CTRL+C.

È possibile incollare i dati in qualsiasi programma di foglio di calcolo o testo. Non è possibile copiare colonne o parti di righe e la riga dell'intestazione di colonna.

Modalità di ricerca nella tabella (Filtro rapido)

---------------------------------

Utilizzare la casella "Filtro" per cercare dati nella tabella. Quando si digita nella casella, solo gli elementi che includono il testo digitato vengono visualizzati nella tabella.

-- Cerca testo. Per cercare testo nella tabella, digitare il testo da trovare nella casella "Filtro".

-- Cerca più parole. Per cercare più parole nella tabella, digitare le parole separate da spazi. Out-GridView visualizzerà le righe che includono tutte le parole (AND logico).

-- Cerca frasi letterali. Per cercare frasi che includono spazi o caratteri speciali, racchiudere la frase tra virgolette. Out-GridView visualizzerà le righe che includono una corrispondenza esatta per la frase.

-- Cerca in colonne. Per cercare testo in una o più colonne, utilizzare il formato seguente:

<colonna>:<testo> [<colonna>:<testo>] ...

Ad esempio, per trovare "Net" nella colonna DisplayName, nella casella "Filtro" digitare:

displayname:net

Per trovare righe con "Net" nelle colonne DisplayName e Name, nella casella "Filtro" digitare:

displayname:net name:net

-- Disattiva ricerca. Per visualizzare nuovamente l'intera tabella, fare clic sul pulsante con la X rossa nell'angolo superiore destro della casella "Filtro" o eliminare il testo dalla casella.

Utilizzo di criteri per filtrare la tabella

--------------------------------

È possibile utilizzare regole, o criteri, per determinare quali elementi vengono visualizzati nella tabella. Gli elementi vengono visualizzati solo quando soddisfano tutti i criteri stabiliti. I criteri disponibili sono determinati dalle proprietà degli oggetti visualizzati nella finestra di visualizzazione griglia e dai tipi .NET Framework di tali proprietà.

Ciascun criterio ha il formato seguente:

<colonna> <operatore> <valore>

I criteri per proprietà diverse sono connessi da AND. I criteri per la stessa proprietà sono connessi da OR. Non è possibile modificare i connettori logici.

I criteri hanno effetto solo sulla visualizzazione. Non elimina elementi dalla tabella.

Modalità di aggiunta di criteri

---------------------------

1. Per visualizzare il pulsante di menu "Aggiungi criteri", fare clic sul pulsante "Espandi" nell'angolo superiore destro della finestra.

2. Fare clic sul pulsante "Aggiungi criteri".

3. Fare clic per selezionare le colonne (proprietà). È possibile selezionare una o più proprietà.

4. Al termine della selezione delle proprietà, fare clic sul pulsante Aggiungi.

5. Per annullare le aggiunte, fare clic su Annulla.

6. Per aggiungere più criteri, fare nuovamente clic sul pulsante Aggiungi criteri.

Modalità di modifica di un criterio

--------------------

-- Per modificare un operatore, fare clic sul valore dell'operatore blu, quindi fare clic per selezionare un operatore

diverso dall'elenco a discesa.

-- Per immettere o modificare un valore, digitare il valore nella relativa casella. Se si immette un valore non valido, viene visualizzata un'icona circolare con una X. Per rimuoverla, modificare il valore.

-- Per creare un'istruzione OR, aggiungere un criterio con la stessa proprietà.

Modalità di eliminazione di criteri

-------------------------

-- Per eliminare criteri selezionati, fare clic sulla X rossa accanto a ciascun criterio.

-- Per eliminare tutti i criteri, fare clic sul pulsante "Cancella tutto".

Esempio 1

C:\PS>get-process | out-gridview

Descrizione
-----------
Questo comando ottiene i processi in esecuzione nel computer locale e li invia a una finestra di visualizzazione griglia.

Esempio 2

C:\PS>$p = get-process

C:\PS> $p | out-gridview

Descrizione
-----------
Questo comando ottiene inoltre i processi in esecuzione nel computer locale e li invia a una finestra di visualizzazione griglia.

Il primo comando utilizza il comando Get-Process per ottenere i processi nel computer, quindi salva gli oggetti processo nella variabile $p.

Nel secondo comando viene utilizzato un operatore pipeline per inviare la variabile $p a Out-GridView.

Esempio 3

C:\PS>get-process | select-object -property name, workingset, peakworkingset | sort-object -property workingset -desc | out-gridview

Descrizione
-----------
Questo comando visualizza una tabella formattata in una finestra di visualizzazione griglia.

Utilizza il cmdlet Get-Process per ottenere i processi disponibili nel computer.

Utilizza quindi un operatore pipeline (|) per inviare gli oggetti processo al cmdlet Select-Object. Il comando utilizza il parametro Property di Select-Object per selezionare le proprietà Name, WorkingSet e PeakWorkingSet da visualizzare nella tabella.

Un altro operatore pipeline invia gli oggetti filtrati al cmdlet Sort-Object che li ordina in modo decrescente in base al valore della proprietà WorkingSet.

La parte finale del comando utilizza un operatore pipeline (|) per inviare la tabella formattata a Out-GridView.

È ora possibile utilizzare le funzionalità della visualizzazione griglia per cercare, ordinare e filtrare i dati.

Esempio 4

C:\PS>($a = get-childitem -path $pshome -recurse) | out-gridview

Descrizione
-----------
Questo comando salva l'output in una variabile e lo invia a Out-GridView.

Il comando utilizza il cmdlet Get-ChildItem per ottenere i file nella directory di installazione e nelle relative sottodirectory di Windows PowerShell. Il percorso alla directory di installazione viene salvato nella variabile automatica $pshome.

Il comando utilizza l'operatore di assegnazione (=) per salvare l'output nella variabile $a e l'operatore pipeline (|) per inviare l'output a Out-GridView.
Le parentesi nel comando stabiliscono l'ordine delle operazioni. L'output dal comando Get-ChildItem viene salvato nella variabile $a prima dell'invio a Out-GridView.

Esempio 5

C:\PS>get-process -computername Server01| ogv -title "Processes - Server01"

Descrizione
-----------
Con questo comando vengono visualizzati i processi in esecuzione nel computer Server01 in una finestra di visualizzazione griglia.

Nel comando viene utilizzato "ogv" che è l'alias predefinito per il cmdlet Out-GridView; viene inoltre utilizzato il parametro Title per specificare il titolo della finestra.

Esempio 6

C:\PS>invoke-command -ComputerName S1, S2, S3 -scriptblock {get-culture} | out-gridview

Descrizione
-----------
In questo esempio viene illustrato il formato corretto per l'invio dei dati raccolti dai computer remoti al cmdlet Out-GridView.

Nel comando viene utilizzato il cmdlet Invoke-Command per eseguire un comando Get-Culture in tre computer remoti. Per inviare i dati restituiti al cmdlet Out-GridView, viene utilizzato un operatore pipeline.

Si noti che il blocco di script che contiene i comandi eseguiti in modalità remota non include il comando Out-GridView. Se così fosse, il comando non sarebbe in grado di aprire una finestra di visualizzazione griglia in ogni computer remoto.


Out-Host

Invia l'output alla riga di comando.

Sintassi

Out-Host [-InputObject <psobject>] [-Paging] [<CommonParameters>]

Descrizione

Il cmdlet Out-Host invia l'output all'host di Windows PowerShell per la visualizzazione. L'host visualizza l'output sulla riga di comando. Poiché Out-Host rappresenta il valore predefinito, non è necessario specificarlo, a meno che non si desideri utilizzarne i parametri per modificarne la visualizzazione.

Parametri

-InputObject <psobject>

Specifica gli oggetti scritti nella console. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Paging

Visualizza una pagina di output alla volta e attende l'input dell'utente prima di visualizzare le pagine rimanenti, in modo analogo al normale comando "more". Per impostazione predefinita, tutto l'output viene visualizzato in una singola pagina. Le dimensioni della pagina verranno determinate dalle caratteristiche dell'host.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare qualsiasi oggetto a Out-Host.
Output | Nessuno Out-Host non genera alcun output. Tuttavia, l'host potrebbe visualizzare gli oggetti inviati da Out-Host.

Note

È inoltre possibile fare riferimento a Out-Host tramite il relativo alias predefinito "oh". Per ulteriori informazioni, vedere about_Aliases.

I cmdlet che contengono il verbo Out (cmdlet Out) non consentono di formattare gli oggetti ma solo di eseguirne il rendering e di inviarli alla destinazione di visualizzazione specificata. Un oggetto non formattato inviato a un cmdlet di tipo Out verrà inviato a un cmdlet di formattazione prima di eseguirne il rendering.

Con i cmdlet di tipo Out non sono disponibili parametri per nomi o percorsi di file. Per inviare i dati a un cmdlet Out, utilizzare un operatore pipeline (|) per inviare l'output di un comando di Windows PowerShell al cmdlet. È inoltre possibile archiviare i dati in una variabile e utilizzare il parametro InputObject per passare i dati al cmdlet. Per informazioni, vedere gli esempi.

Out-Host invia i dati ma non crea oggetti di output. Se si reindirizza l'output di Out-Host a Get-Member, Get-Member segnalerà che non sono stati specificati oggetti.

Esempio 1

C:\PS>get-process | out-host -paging

Descrizione
-----------
Tramite questo comando le informazioni sui processi disponibili nel sistema verranno visualizzate una pagina per volta. Verrà utilizzato il comando Get-Process per ottenere tutti i processi nel sistema. Verrà quindi utilizzato l'operatore pipeline (|) per inviare i risultati a Out-Host, che li visualizzerà nella console. Tramite il parametro Paging verrà visualizzata una pagina di dati per volta.

Lo stesso formato di comando viene utilizzato per la funzione Help integrata in Windows PowerShell. Tale funzione consente di ottenere dati da Get-Help e successivamente di utilizzare il parametro Paging di Out-Host per visualizzare i dati una pagina alla volta tramite questo formato di comando: get-help $args[0] | out-host -paging).

Esempio 2

C:\PS>$a = get-history

C:\PS>out-host -InputObject $a

Descrizione
-----------
Tramite questi comandi la cronologia della sessione verrà visualizzata sulla riga di comando. Nel primo comando verrà utilizzato il cmdlet Get-History per ottenere la cronologia della sessione, che verrà quindi archiviata nella variabile $a. Nel secondo comando verrà utilizzato Out-Host per visualizzare il contenuto della variabile $a. Verrà quindi utilizzato il parametro InputObject per specificare la variabile per Out-Host.

Vedere anche

  • Out-Printer
  • Out-Null
  • Out-File
  • Out-String
  • Out-Default
  • Write-Host


Out-Null

Elimina l'output anziché inviarlo alla console.

Sintassi

Out-Null [-InputObject <psobject>] [<CommonParameters>]

Descrizione

Il cmdlet Out-Null consente di inviare l'output a NULL, eliminandolo di fatto.

Parametri

-InputObject <psobject>

Specifica l'oggetto inviato a Null (eliminato). Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare qualsiasi oggetto a Out-Null.
Output | Nessuno Out-Null non genera alcun output.

Note

I cmdlet che contengono il verbo Out (cmdlet Out) non dispongono di parametri per nomi o percorsi di file. Per inviare i dati a un cmdlet Out, utilizzare un operatore pipeline (|) per inviare l'output di un comando di Windows PowerShell al cmdlet. È inoltre possibile archiviare i dati in una variabile e utilizzare il parametro InputObject per passare i dati al cmdlet. Per ulteriori informazioni, vedere gli esempi.

Out-Null non restituisce alcun oggetto di output. Se si reindirizza l'output di Out-Null a Get-Member, Get-Member segnalerà che non sono stati specificati oggetti.

Esempio 1

C:\PS>get-childitem | out-null

Descrizione
-----------
Tramite questo comando verranno ottenuti gli elementi inclusi nella directory locale, che verranno quindi eliminati anziché essere passati attraverso la pipeline o visualizzati sulla riga di comando. Risulta utile per eliminare l'output non necessario.

Vedere anche

  • Out-Printer
  • Out-Host
  • Out-File
  • Out-String
  • Out-Default


Out-Printer

Invia l'output a una stampante.

Sintassi

Out-Printer [[-Name] <string>] [-InputObject <psobject>] [<CommonParameters>]

Descrizione

Il cmdlet Out-Printer consente di inviare l'output alla stampante predefinita o a una stampante alternativa, se ne è stata specificata una.

Parametri

-InputObject <psobject>

Specifica gli oggetti da inviare alla stampante. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Name <string>

Specifica la stampante alternativa. Il nome del parametro ("Name") è facoltativo.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare qualsiasi oggetto a Out-Printer.
Output | Nessuno Out-Printer non restituisce alcun oggetto.

Note

È inoltre possibile fare riferimento a Out-Printer tramite il relativo alias predefinito "lp". Per ulteriori informazioni, vedere about_Aliases.

I cmdlet che contengono il verbo Out (cmdlet Out) non consentono di formattare gli oggetti ma solo di eseguirne il rendering e di inviarli alla destinazione di visualizzazione specificata. Un oggetto non formattato inviato a un cmdlet di tipo Out verrà inviato a un cmdlet di formattazione prima di eseguirne il rendering.

Con i cmdlet di tipo Out non sono disponibili parametri per nomi o percorsi di file. Per inviare i dati a un cmdlet Out, utilizzare un operatore pipeline (|) per inviare l'output di un comando di Windows PowerShell al cmdlet. È inoltre possibile archiviare i dati in una variabile e utilizzare il parametro InputObject per passare i dati al cmdlet. Per ulteriori informazioni, vedere gli esempi.

Out-Printer invia i dati ma non crea oggetti di output. Se si reindirizza l'output di Out-Printer a Get-Member, Get-Member segnalerà che non sono stati specificati oggetti.

Esempio 1

C:\PS>get-content $pshome\about_signing.help.txt | Out-Printer

Descrizione
-----------
Tramite questo comando il contenuto dell'argomento della Guida about_Signing verrà stampato sulla stampante predefinita. Nell'esempio verrà illustrato come stampare un file anche se non si specifica un parametro Path per Out-Printer.

Nel comando viene utilizzato il cmdlet Get-Content per ottenere il contenuto dell'argomento della Guida. Il percorso include $pshome, una variabile predefinita in cui è archiviata la directory di installazione di Windows PowerShell. Verrà utilizzato un operatore pipeline (|) per passare i risultati a Out-Printer, che li invierà alla stampante predefinita.

Esempio 2

C:\PS>"Hello, World" | out-printer -name "\\Server01\Prt-6B Color"

Descrizione
-----------
Con questo comando viene stampato il testo "Hello, World" sulla stampante "Prt-6B Color" disponibile su Server01. Per specificare la stampante alternativa, verrà utilizzato il parametro Name. Il nome del parametro è facoltativo, pertanto può essere omesso.

Esempio 3

C:\PS>$h = get-help -full get-wmiobject

C:\PS> out-printer -inputobject $h

Descrizione
-----------
Tramite questi comandi verrà stampata la versione completa dell'argomento della Guida relativo a Get-WmiObject. Nel primo comando verrà utilizzato il cmdlet Get-Help per ottenere la versione completa dell'argomento della Guida relativo a Get-WmiObject che verrà quindi archiviata nella variabile $h. Tramite il secondo comando il contenuto verrà inviato alla stampante predefinita. Verrà utilizzato il parametro InputObject per passare il valore della variabile $h a Out-Printer.

Vedere anche

  • Out-Host
  • Out-Null
  • Out-String
  • Out-File
  • Out-Default


Out-String

Invia gli oggetti all'host come serie di stringhe.

Sintassi

Out-String [-InputObject <psobject>] [-Stream] [-Width <int>] [<CommonParameters>]

Descrizione

Il cmdlet Out-String consente di convertire gli oggetti gestiti da Windows PowerShell in una matrice di stringhe. Per impostazione predefinita, Out-String accumula le stringhe e le restituisce in un'unica stringa. È tuttavia possibile utilizzare il parametro stream per indicare a Out-String di restituire una stringa alla volta. Questo cmdlet consente di gestire e modificare l'output delle stringhe in modo simile alle shell tradizionali, in cui tuttavia la modifica degli oggetti risulta meno efficiente.

Parametri

-InputObject <psobject>

Specifica gli oggetti da scrivere in una stringa. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Stream

Invia separatamente le stringhe per ciascun oggetto. Per impostazione predefinita, le stringhe relative a ciascun oggetto vengono accumulate e inviate in un'unica stringa.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Width <int>

Specifica il numero di caratteri di ogni riga di output. Eventuali caratteri aggiuntivi vengono troncati e non portati a capo. Se si omette questo parametro, la larghezza verrà determinata dalle caratteristiche dell'host. Il valore predefinito per l'host di PowerShell.exe è 80 (caratteri).

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare oggetti a Out-String.
Output | System.String Out-String restituisce la stringa creata dall'oggetto di input.

Note

I cmdlet che contengono il verbo Out (cmdlet Out) non consentono di formattare gli oggetti ma solo di eseguirne il rendering e di inviarli alla destinazione di visualizzazione specificata. Un oggetto non formattato inviato a un cmdlet di tipo Out verrà inviato a un cmdlet di formattazione prima di eseguirne il rendering.

Con i cmdlet di tipo Out non sono disponibili parametri per nomi o percorsi di file. Per inviare i dati a un cmdlet Out, utilizzare un operatore pipeline (|) per inviare l'output di un comando di Windows PowerShell al cmdlet. È inoltre possibile archiviare i dati in una variabile e utilizzare il parametro InputObject per passare i dati al cmdlet. Per ulteriori informazioni, vedere gli esempi.

Esempio 1

C:\PS>get-content C:\test1\testfile2.txt | out-string

Descrizione
-----------
Tramite questo comando il contenuto del file Testfile2.txt verrà inviato alla console come singola stringa. Verrà utilizzato il cmdlet Get-Content per ottenere il contenuto del file. Verrà quindi utilizzato l'operatore pipeline (|) per inviare il contenuto a Out-String, che lo invierà alla console come una singola stringa.

Esempio 2

C:\PS>$c = get-culture | select-object *

C:\PS> out-string -inputobject $c -width 100

Descrizione
-----------
Tramite questi comandi verranno ottenute le impostazioni internazionali per l'utente corrente. I dati ottenuti verranno quindi convertiti in stringhe. Nel primo comando verrà utilizzato il cmdlet Get-Culture per ottenere le impostazioni internazionali. Verrà quindi utilizzato l'operatore pipeline (|) per inviare il risultato al cmdlet Select-Object, che selezionerà tutte le proprietà (*) dell'oggetto impostazioni cultura recuperato da Get-Culture. I risultati verranno infine archiviati nella variabile $c.

Nel secondo comando verrà utilizzato Out-String per convertire l'oggetto CultureInfo in una serie di stringhe, una per ciascuna proprietà. Verrà utilizzato il parametro InputObject per passare la variabile $c a Out-String. Il parametro width è impostato su 100 caratteri per riga per evitare il troncamento.

Esempio 3

C:\PS>get-alias | out-string -stream | select-string "Get-Command"

Descrizione
-----------
Tramite questo comando verranno visualizzati gli alias che includono la frase "Get-Command". Verrà utilizzato il cmdlet Get-Alias per ottenere un set di oggetti AliasInfo, uno per ciascun alias della sessione corrente. In questo esempio viene illustrata la differenza tra la gestione di oggetti e la gestione di stringhe.

Verrà quindi utilizzato l'operatore pipeline (|) per inviare l'output di Get-Alias a Out-String, che convertirà gli oggetti in una serie di stringhe. Per inviare ciascuna stringa singolarmente, anziché concatenarle in una singola stringa, verrà utilizzato il parametro Stream. Verrà quindi utilizzato un altro operatore pipeline per inviare le stringhe a Select-String, che selezionerà quelle che includono la frase "Get-Command" in qualsiasi posizione.

Se si omette il parametro Stream, verranno visualizzati tutti gli alias, perchè Select-String troverà "Get-Command" nella singola stringa restituita da Out-String e il formattatore visualizzerà le stringhe come tabella.

Vedere anche

  • Out-File
  • Out-Null
  • Out-Host
  • Out-Printer
  • Out-Default


Pop-Location

Modifica il percorso corrente nel percorso aggiunto più recentemente allo stack tramite un'operazione Push. È possibile prelevare il percorso dallo stack predefinito o da uno stack creato utilizzando il cmdlet Push-Location.

Sintassi

Pop-Location [-PassThru] [-StackName <string>] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Pop-Location imposta il percorso corrente sul percorso aggiunto più recentemente allo stack tramite il cmdlet Push-Location. È possibile prelevare un percorso dallo stack predefinito o da uno stack creato utilizzando il comando Push-Location.

Parametri

-PassThru

Passa un oggetto che rappresenta il percorso alla pipeline. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-StackName <string>

Specifica uno stack alternativo. Con Pop-Location viene prelevato il percorso aggiunto più recentemente dallo stack. Questo stack diventa lo stack corrente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a Pop-Location.
Output | Nessuno o System.Management.Automation.PathInfo Quando si utilizza il parametro PassThru, Pop-Location genera un oggetto System.Management.Automation.PathInfo che rappresenta il percorso. Negli altri casi, il cmdlet non genera alcun output.

Note

È inoltre possibile fare riferimento a Pop-Location tramite il relativo alias predefinito "popd". Per ulteriori informazioni, vedere about_Aliases.

Il cmdlet Pop-Location è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>pop-location

Descrizione
-----------
Con questo comando viene modificato il percorso nel percorso aggiunto più recentemente allo stack corrente.

Esempio 2

C:\PS>pop-location -stackname Stack2

Descrizione
-----------
Con questo comando viene modificato il percorso nel percorso aggiunto più recentemente allo stack Stack2.

Esempio 3

C:\PS>pushd HKLM:\Software\Microsoft\PowerShell

pushd Cert:\LocalMachine\TrustedPublisher

popd

popd

PS C:\> push-location HKLM:\Software\Microsoft\PowerShell

PS HKLM:\Software\Microsoft\PowerShell> push-location Cert:\LocalMachine\TrustedPublisher

PS cert:\LocalMachine\TrustedPublisher> popd

PS HKLM:\Software\Microsoft\PowerShell> popd

PS C:\ps-test>

Descrizione
-----------
Questi comandi utilizzano i cmdlet Push-Location e Pop-Location per spostarsi tra i percorsi supportati dai diversi provider di Windows PowerShell. I comandi utilizzano l'alias "pushd" per Push-Location e l'alias "popd" per Pop-Location.

Il primo comando aggiunge il percorso del file system corrente allo stack e passa all'unità HKLM supportata dal provider Registry di Windows PowerShell. Il secondo comando aggiunge il percorso del Registro di sistema allo stack e passa a un percorso supportato dal provider Certificate di Windows PowerShell.

Gli ultimi due comandi prelevano tali percorsi dallo stack. Il primo comando "popd" torna all'unità Registry:, mentre il secondo torna all'unità del file system.

Vedere anche

  • about_Providers
  • Push-Location
  • Set-Location
  • Get-Location


Push-Location

Aggiunge il percorso corrente all'inizio di un elenco di percorsi (stack).

Sintassi

Push-Location [[-LiteralPath] <string>] [-PassThru] [-StackName <string>] [-UseTransaction] [<CommonParameters>]

Push-Location [[-Path] <string>] [-PassThru] [-StackName <string>] [-UseTransaction] [<CommonParameters>]

Descrizione

Con il cmdlet Push-Location il percorso corrente viene aggiunto (push) all'inizio di un elenco di percorsi, denominato stack. È possibile effettuare il push del percorso corrente in uno stack predefinito o in uno stack creato dall'utente. Se si specifica un percorso, Push-Location aggiunge il percorso corrente allo stack, quindi modifica il percorso corrente nel percorso specificato. Non è possibile aggiungere un percorso allo stack, se non è il percorso corrente.

Parametri

-LiteralPath <string>

Specifica il nuovo percorso. A differenza del parametro Path, il valore del parametro LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Passa un oggetto che rappresenta il percorso alla pipeline. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string>

Modifica il percorso nel percorso specificato dopo avere aggiunto il percorso corrente in cima allo stack. Immettere un percorso di un qualsiasi provider che supporta questo cmdlet. È consentito l'utilizzo di caratteri jolly. Il nome del parametro ("Path") è facoltativo.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-StackName <string>

Specifica il nome di uno stack. Il percorso corrente viene aggiunto a questo stack, il quale diventa lo stack corrente. Se lo stack non esiste, verrà creato automaticamente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso (ma non un percorso letterale) a Push-Location.
Output | Nessuno o System.Management.Automation.PathInfo Quando si utilizza il parametro PassThru, Push-Location genera un oggetto System.Management.Automation.PathInfo che rappresenta il percorso. Negli altri casi, il cmdlet non genera alcun output.

Note

È inoltre possibile fare riferimento a Push-Location tramite il relativo alias predefinito "pushd". Per ulteriori informazioni, vedere about_Aliases.

Uno stack è una struttura di dati LIFO (last-in first-out). È simile a un elenco verticale in cui solo l'elemento superiore è accessibile. È possibile aggiungere (push) elementi solo all'inizio dello stack e recuperare (pop) elementi solo dall'inizio dello stack. Per raggiungere gli elementi inferiori, è necessario recuperare tutti gli elementi che li precedono.

Il cmdlet Push-Location è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>push-location C:\Windows

Descrizione
-----------
Con questo comando il percorso corrente viene aggiunto allo stack predefinito, quindi viene modificato in C:\Windows.

Esempio 2

C:\PS>push-location HKLM:\Software\Policies -stackname RegFunction

Descrizione
-----------
Con questo comando il percorso corrente viene aggiunto allo stack RegFunction, quindi viene modificato in HKLM:\Software\Policies. In questo modo, viene illustrato che è possibile utilizzare Push-Location con il provider Registry di Windows PowerShell.

Esempio 3

C:\PS>push-location

Descrizione
-----------
Con questo comando il percorso corrente viene aggiunto allo stack predefinito.

Esempio 4

C:\PS>push-location ~ -stackname Stack2

Descrizione
-----------
Con questo comando il percorso corrente viene aggiunto a un nuovo stack denominato Stack2, quindi viene modificato nella home directory (%USERPROFILE%) che nel comando è rappresentata dal simbolo tilde (~) o $home. Stack2 diventa lo stack corrente.

Vedere anche

  • about_Providers
  • Pop-Location
  • Set-Location
  • Get-Location


Read-Host

Legge una riga di input dalla console.

Sintassi

Read-Host [[-Prompt] <Object>] [-AsSecureString] [<CommonParameters>]

Descrizione

Il cmdlet Read-Host legge una riga di input dalla console. Può essere utilizzato per richiedere l'input a un utente. Poiché è possibile salvare l'input come stringa sicura, è possibile utilizzare questo cmdlet per richiedere dati sicuri agli utenti, ad esempio la password, nonché dati condivisi.

Parametri

-AsSecureString

Visualizza degli asterischi (*) al posto dei caratteri che l'utente digita come input.

Quando si utilizza questo parametro, l'output del cmdlet Read-Host è un oggetto SecureString (System.Security.SecureString).

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Prompt <Object>

Specifica il testo del prompt. Digitare una stringa. Se la stringa include spazi, è necessario racchiuderla tra virgolette doppie. Ad esempio, "Digitare un valore intero: ".

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.String o System.Security.SecureString Se viene utilizzato il parametro AsSecureString, Read-Host restituisce SecureString. In caso contrario, restituisce una stringa.

Esempio 1

C:\PS>$age = read-host "Please enter your age:"

Descrizione
-----------
Con questo comando viene visualizzata la stringa "Please enter your age:" come richiesta. Quando si immette un valore e si preme INVIO, il valore viene archiviato nella variabile $age.

Esempio 2

C:\PS>$pwd_secure_string = read-host "Enter a Password:" -assecurestring

Descrizione
-----------
Con questo comando viene visualizzata la stringa "Enter a Password:" come richiesta. Durante l'immissione di un valore, sulla console vengono visualizzati degli asterischi (*) al posto dell'input. Quando si preme INVIO, il valore viene archiviato come oggetto SecureString nella variabile $pwd_secure_string.

Vedere anche

  • Get-Host
  • Out-Host
  • Write-Host
  • ConvertFrom-SecureString


Receive-Job

Ottiene i risultati dei processi in background di Windows PowerShell nella sessione corrente.

Sintassi

Receive-Job [-Job] <Job[]> [[-ComputerName] <string[]>] [-Keep] [-NoRecurse] [<CommonParameters>]

Receive-Job [[-InstanceId] <Guid[]>] [-Keep] [-NoRecurse] [<CommonParameters>]

Receive-Job [-Job] <Job[]> [[-Location] <string[]>] [-Keep] [-NoRecurse] [<CommonParameters>]

Receive-Job [[-Name] <string[]>] [-Keep] [-NoRecurse] [<CommonParameters>]

Receive-Job [-Job] <Job[]> [[-Session] <PSSession[]>] [-Keep] [-NoRecurse] [<CommonParameters>]

Receive-Job [-Id] <Int32[]> [-Keep] [-NoRecurse] [<CommonParameters>]

Descrizione

Il cmdlet Receive-Job ottiene i risultati dei processi in background di Windows PowerShell. Utilizzare Receive-Job per ottenere i risultati dei processi avviati tramite il cmdlet Start-Job o il parametro AsJob di qualsiasi cmdlet. È possibile ottenere i risultati di tutti i processi o identificare i processi tramite il nome, l'ID, l'ID istanza, il nome del computer, il percorso, la sessione o inviando un oggetto processo.

Quando si avvia un processo in background di Windows PowerShell, il processo viene avviato, ma i risultati non vengono visualizzati immediatamente. Il comando restituisce invece un oggetto che rappresenta il processo in background. L'oggetto processo contiene informazioni utili sul processo, ma non contiene i risultati. Questo metodo consente di continuare a lavorare nella sessione mentre il processo è in esecuzione. Per ulteriori informazioni sui processi in background di Windows PowerShell, vedere about_Jobs.

Per ottenere i risultati del comando, utilizzare il cmdlet Receive-Job. Tramite Receive-Job si ottengono i risultati generati nel momento in cui viene inviato il comando Receive-Job. Se i risultati non sono ancora completi, è possibile eseguire comandi Receive-Job aggiuntivi per ottenere i risultati restanti.

Per impostazione predefinita, i risultati del processo vengono eliminati dal sistema al momento della loro ricezione, ma è possibile utilizzare il parametro Keep per salvare i risultati in modo da poterli ricevere nuovamente. Per eliminare i risultati del processo, riceverli nuovamente (senza parametro Keep), chiudere la sessione oppure utilizzare il cmdlet Remove-Job per eliminare il processo dalla sessione.

Parametri

-ComputerName <string[]>

Ottiene i risultati dei processi eseguiti nei computer specificati. Immettere i nomi dei computer. Il valore predefinito è impostato su tutti i processi della sessione corrente.

Questo parametro consente di eseguire la selezione tra i risultati dei processi archiviati nel computer locale. Non ottiene dati dai computer remoti. Per ottenere i risultati dei processi archiviati nei computer remoti, utilizzare il cmdlet Invoke-Command per eseguire un comando Receive-Job in modalità remota.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Id <Int32[]>

Ottiene i risultati dei processi con gli ID specificati. Il valore predefinito è impostato su tutti i processi della sessione corrente.

L'ID è un valore intero che identifica in modo univoco il processo all'interno della sessione corrente. È più facile da ricordare e digitare rispetto all'ID istanza, ma è univoco solo nella sessione corrente. È possibile digitare uno o più ID (separati da virgole). Per trovare l'ID di un processo, digitare "Get-Job" senza parametri.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-InstanceId <Guid[]>

Ottiene i risultati dei processi con gli ID istanza specificati. Il valore predefinito è impostato su tutti i processi della sessione corrente.

Un ID istanza è un GUID che identifica in modo univoco il processo nel computer. Per trovare l'ID istanza di un processo, utilizzare il cmdlet Get-Job.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Job <Job[]>

Specifica il processo per il quale vengono recuperati i risultati. Questo parametro è obbligatorio in un comando Receive-Job. Immettere una variabile che contiene il processo o un comando che consenta di ottenerlo. È inoltre possibile reindirizzare un oggetto processo a Receive-Job.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Keep

Salva i risultati del processo nel sistema, anche dopo che sono stati ricevuti dall'utente. Per impostazione predefinita i risultati del processo vengono eliminati una volta recuperati.

Per eliminare questi risultati, utilizzare Receive-Job per riceverli nuovamente senza il parametro Keep, chiudere la sessione oppure utilizzare il cmdlet Remove-Job per eliminare il processo dalla sessione.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Location <string[]>

Ottiene solo i risultati dei processi con il percorso specificato. Il valore predefinito è impostato su tutti i processi della sessione corrente.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Name <string[]>

Ottiene i risultati dei processi con il nome descrittivo specificato. Il valore predefinito è impostato su tutti i processi della sessione corrente.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-NoRecurse

Ottiene i risultati solo dal processo specificato. Per impostazione predefinita Receive-Job ottiene anche i risultati di tutti i processi figlio del processo specificato.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Session <PSSession[]>

Ottiene i risultati dei processi eseguiti nella sessione di Windows Powershell specificata (PSSession). Immettere una variabile che contiene la sessione PSSession o un comando che consenta di ottenere tale sessione, ad esempio Get-PSSession. Il valore predefinito è impostato su tutti i processi della sessione corrente.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.Job È possibile reindirizzare gli oggetti processo a Receive-Job.
Output | PSObject Receive-Job restituisce i risultati dei comandi nel processo.

Esempio 1

C:\PS>$job = start-job -scriptblock {get-process}

C:\PS> receive-job -job $job

Descrizione
-----------
In questi comandi viene utilizzato il parametro Job per ottenere i risultati di un determinato processo. Il primo comando utilizza il cmdlet Start-Job per avviare un processo in cui viene eseguito un comando "Get-Process". Viene utilizzato l'operatore di assegnazione (=) per salvare l'oggetto processo risultante nella variabile $job.

Il secondo comando utilizza il cmdlet Receive-Job per ottenere i risultati del processo. Viene utilizzato il parametro Job per specificare il processo.

Esempio 2

C:\PS>$job = start-job -scriptblock {get-process}

C:\PS> $job | receive-job

Descrizione
-----------
Questo esempio corrisponde all'Esempio 2, con l'eccezione che nel comando viene utilizzato un operatore pipeline (|) per inviare l'oggetto processo a Receive-Job. Di conseguenza, per il comando non è necessario un parametro Job per specificare il processo.

Esempio 3

C:\PS>$j = invoke-command -computername Server01, Server02, Server03 -scriptblock {get-service} -AsJob

C:\PS> $j.childjobs

Id   Name     State      HasMoreData   Location       Command
--   ----     -----      -----------   --------       -------
2    Job2     Completed  True          Server01       get-service
3    Job3     Completed  True          Server02       get-service
4    Job4     Completed  True          Server03       get-service

C:\PS> receive-job -name Job3  -keep

Status  Name        DisplayName                        PSComputerName
------  ----------- -----------                        --------------
Running AeLookupSvc Application Experience             Server02
Stopped ALG         Application Layer Gateway Service  Server02
Running Appinfo     Application Information            Server02
Running AppMgmt     Application Management             Server02

Descrizione
-----------
In questi comandi viene utilizzato il parametro Name di Receive-Job per ottenere i risultati di uno dei diversi processi in background eseguiti nei computer remoti.

Il primo comando utilizza il cmdlet Invoke-Command per avviare un processo in background che esegue un comando Get-Service in tre computer remoti. Viene utilizzato il parametro AsJob per eseguire il comando come processo in background. L'oggetto processo risultante viene salvato nella variabile $j.

Quando si utilizza il parametro AsJob di Invoke-Command per avviare un processo, l'oggetto processo viene creato nel computer locale, anche se il processo viene eseguito nei computer remoti. Di conseguenza, vengono utilizzati comandi locali per gestire il processo.

Inoltre, quando si utilizza AsJob, in Windows PowerShell viene restituito un oggetto processo che contiene un processo figlio per ogni processo avviato. In questo caso, l'oggetto processo contiene tre processi figlio, uno per ogni processo in ciascun computer remoto.

Il secondo comando utilizza il metodo con punto per visualizzare il valore della proprietà ChildJobs dell'oggetto processo in $j. Si noti che tramite il comando sono stati creati tre processi figlio, uno per ogni processo su ciascun computer remoto.

Il terzo comando utilizza il cmdlet Receive-Job per ottenere i risultati del processo figlio Job3 eseguito sul computer Server02. Vengono utilizzati il parametro Name per specificare il nome del processo figlio e il parametro Keep per salvare i risultati del processo anche dopo la ricezione.

Esempio 4

C:\PS>$s = new-pssession -computername Server01, Server02, Server03

C:\PS> $j = invoke-command -session $s -scriptblock {start-job -scriptblock {get-eventlog -logname system}}

C:\PS> $j

Id   Name     State      HasMoreData   Location   Command
--   ----     -----      -----------   --------   -------
1    Job1     Completed  True          Localhost  get-eventlog system
2    Job2     Completed  True          Localhost  get-eventlog system
3    Job3     Completed  True          Localhost  get-eventlog system

C:\PS> $results = invoke-command -session $s -scriptblock {param($j) receive-job -job $j} -ArgumentList $j

Descrizione
-----------
In questo esempio viene illustrato come ottenere i risultati dei processi in background eseguiti in tre computer remoti.

Il primo comando utilizza il cmdlet New-PSSession per creare tre sessioni PSSession, una in ognuno dei server specificati nel comando. Le sessioni PSSession vengono quindi salvate nella variabile $s.

Il secondo comando utilizza il cmdlet Invoke-Command per eseguire un comando Start-Job in ognuna delle sessioni PSSession della variabile $s. Nel processo viene eseguito un comando Get-Eventlog che consente di ottenere gli eventi presenti nel registro eventi di sistema. I risultati vengono salvati nella variabile $j.

Poiché viene utilizzato Invoke-Command per eseguire il comando Start-Job, in realtà vengono avviati tre processi indipendente in ciascun computer. Di conseguenza, vengono restituiti tre oggetti processo che rappresentano i tre processi eseguiti in locale in tre computer diversi.

Il terzo comando visualizza i tre oggetti processo in $j.

Con il quarto comando si utilizza Invoke-Command per eseguire un comando Receive-Job in ognuna delle sessioni PSSession in $s e per salvare i risultati nella variabile $results.

Poiché $j è una variabile locale, il blocco di script utilizza la parola chiave "param" per dichiarare le variabili nel comando e il parametro ArgumentList per fornire il valore di $j.

Vedere anche

  • about_Jobs
  • about_Job_Details
  • about_Remote_Jobs
  • Start-Job
  • Get-Job
  • Wait-Job
  • Stop-Job
  • Remove-Job
  • Invoke-Command


Register-EngineEvent

Sottoscrive eventi generati dal modulo di Windows PowerShell e dal cmdlet New-Event.

Sintassi

Register-EngineEvent [-SourceIdentifier] <string> [[-Azione] <scriptblock>] [-Forward] [-MessageData <psobject>] [-SupportEvent] [<CommonParameters>]

Descrizione

Il cmdlet Register-EngineEvent sottoscrive eventi generati dal modulo di Windows PowerShell e dal cmdlet New-Event. Utilizzare il parametro SourceIdentifier per specificare l'evento.

È possibile utilizzare questo cmdlet per sottoscrivere l'evento del modulo "Exiting" e gli eventi generati dal cmdlet New-Event. Questi eventi vengono aggiunti automaticamente alla coda degli eventi nella sessione senza sottoscrizione. La sottoscrizione consente tuttavia di inoltrare gli eventi, specificare un'azione per rispondere agli eventi e annullare la sottoscrizione.

Quando viene generato, l'evento sottoscritto viene aggiunto alla coda degli eventi nella sessione. Per ottenere eventi nella coda degli eventi, utilizzare il cmdlet Get-Event.

Quando si sottoscrive un evento, viene aggiunto un sottoscrittore di eventi alla sessione. Per ottenere i sottoscrittori di eventi nella sessione, utilizzare il cmdlet Get-EventSubscriber. Per annullare la sottoscrizione, utilizzare il cmdlet Unregister-Event che elimina il sottoscrittore di eventi dalla sessione.

Parametri

-Azione <scriptblock>

Specifica i comandi per la gestione degli eventi. I comandi in Action vengono eseguiti quando viene generato un evento, anziché inviare l'evento alla coda degli eventi. Racchiudere i comandi tra parentesi graffe ( { } ) per creare un blocco di script.

Il valore del parametro Action può includere le variabili automatiche $Event, $EventSubscriber, $Sender, $SourceEventArgs e $SourceArgs che forniscono informazioni sull'evento al blocco di script di Action. Per ulteriori informazioni, vedere about_Automatic_Variables.

Quando si specifica un'azione, Register-EngineEvent restituisce un oggetto processo evento che rappresenta tale azione. È possibile utilizzare i cmdlet Job per gestire il processo evento.

Obbligatorio? | false
Posizione? | 102
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Forward

Invia gli eventi per questa sottoscrizione alla sessione nel computer locale. Utilizzare questo parametro durante la registrazione di eventi in un computer remoto o in una sessione remota.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-MessageData <psobject>

Specifica dati aggiuntivi associati all'evento. Il valore di questo parametro viene visualizzato nella proprietà MessageData dell'oggetto evento.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SourceIdentifier <string>

Specifica l'identificatore di origine dell'evento sottoscritto. È necessario che l'identificatore di origine sia univoco nella sessione corrente. Questo parametro è obbligatorio.

Il valore di questo parametro viene visualizzato nel valore della proprietà SourceIdentifier dell'oggetto sottoscrittore e di tutti gli oggetti evento associati a questa sottoscrizione.

Obbligatorio? | true
Posizione? | 101
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SupportEvent

Nasconde la sottoscrizione di eventi. Utilizzare questo parametro quando la sottoscrizione corrente fa parte di un meccanismo di registrazione eventi più complesso e non deve essere individuata separatamente.

Per visualizzare o annullare una sottoscrizione creata con il parametro SupportEvent, utilizzare il parametro Force dei cmdlet Get-EventSubscriber e Unregister-Event.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a Register-EngineEvent.
Output | Nessuno o System.Management.Automation.PSEventJob Se si utilizza il parametro Action, Register-EngineEvent restituisce un oggetto System.Management.Automation.PSEventJob. In caso contrario, non genera alcun output.

Note

Gli eventi, le sottoscrizioni di eventi e la coda degli eventi esistono solo nella sessione corrente. Se si chiude la sessione corrente, la coda degli eventi viene eliminata e la sottoscrizione di eventi viene annullata.

Esempio 1

C:\PS>$s = new-pssession -computername Server01, Server02

C:\PS> invoke-command -session $s { Register-EngineEvent -sourceIdentifier ([System.Management.Automation.PsEngineEvent]::Exiting) -forward }

Descrizione
-----------
In questo comando viene effettuata la registrazione di un evento del modulo di Windows PowerShell in due computer remoti.

Nel primo comando viene creato PSSession in ciascun computer remoto.

Nel secondo comando viene utilizzato il cmdlet Invoke-Command per eseguire il comando Register-EngineEvent nelle sessioni remote.

Il comando Register-EngineEvent utilizza il parametro SourceIdentifier per identificare l'evento. Utilizza il parametro Forward per inoltrare gli eventi dalla sessione remota alla sessione locale.

Esempio 2

C:\PS>$j = register-engineEvent -sourceIdentifier PowerShell.ProcessCreated -action { $processName | add-content processLog.txt }

C:\PS> get-event

C:\PS> $results = $j | receive-job

C:\PS> unregister-event PowerShell.ProcessCreated

Descrizione
-----------
In questo comando viene illustrato come utilizzare i cmdlet Job per gestire l'oggetto processo evento restituito da Register-EngineEvent quando si utilizza il parametro Action.

Un processo evento viene gestito proprio come qualsiasi altro processo di Windows PowerShell. Per ulteriori informazioni, vedere about_jobs. In questo esempio, il cmdlet Receive-Job viene utilizzato per ottenere i risultati del processo.

Per eliminare il processo dalla sessione, utilizzare Remove-Job. Per annullare la sottoscrizione dell'evento, utilizzare il cmdlet Unregister-Event. Per eliminare gli eventi nella coda degli eventi, utilizzare Remove-Event.

Vedere anche

  • Register-ObjectEvent
  • Register-WmiEvent
  • Unregister-Event
  • Get-Event
  • New-Event
  • Remove-Event
  • Wait-Event
  • Get-Job
  • Receive-Job
  • Remove-Job
  • Wait-Job


Register-ObjectEvent

Sottoscrive gli eventi generati da un oggetto Microsoft .NET Framework.

Sintassi

Register-ObjectEvent [-InputObject] <psobject> [-EventName] <string> [[-SourceIdentifier] <string>] [[-Azione] <scriptblock>] [-Forward] [-MessageData <psobject>] [-SupportEvent] [<CommonParameters>]

Descrizione

Il cmdlet Register-ObjectEvent sottoscrive eventi generati da oggetti .NET Framework nel computer locale o in un computer remoto.

Quando viene generato, l'evento sottoscritto viene aggiunto alla coda degli eventi nella sessione. Per ottenere eventi nella coda degli eventi, utilizzare il cmdlet Get-Event.

È possibile utilizzare i parametri di Register-ObjectEvent per specificare i valori delle proprietà degli eventi che agevolano l'individuazione dell'evento nella coda. È inoltre possibile utilizzare anche il parametro Action per specificare le azioni da eseguire quando viene generato un evento sottoscritto e il parametro Forward per inviare eventi remoti alla coda degli eventi nella sessione locale.

Quando si sottoscrive un evento, un sottoscrittore di eventi viene aggiunto alla sessione. Per ottenere i sottoscrittori di eventi nella sessione, utilizzare il cmdlet Get-EventSubscriber. Per annullare la sottoscrizione, utilizzare il cmdlet Unregister-Event che elimina il sottoscrittore di eventi dalla sessione.

Parametri

-Azione <scriptblock>

Specifica i comandi per la gestione degli eventi. I comandi in Action vengono eseguiti quando viene generato un evento, anziché inviare l'evento alla coda degli eventi. Racchiudere i comandi tra parentesi graffe ( { } ) per creare un blocco di script.

Il valore del parametro Action può includere le variabili automatiche $Event, $EventSubscriber, $Sender, $SourceEventArgs e $SourceArgs che forniscono informazioni sull'evento al blocco di script di Action. Per ulteriori informazioni, vedere about_Automatic_Variables.

Quando si specifica un'azione, Register-ObjectEvent restituisce un oggetto processo evento che rappresenta tale azione. È possibile utilizzare i cmdlet Job per gestire il processo evento.

Obbligatorio? | false
Posizione? | 102
Valore predefinito | None.
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-EventName <string>

Specifica l'evento sottoscritto. Immettere il nome dell'evento. Questo parametro è obbligatorio.

Il valore di questo parametro non è un nome che si seleziona per la sottoscrizione di eventi, ma il nome di un evento esposto dall'oggetto .NET Framework. Ad esempio, la classe ManagementEventWatcher dispone di eventi denominati "EventArrived" e "Stopped". Per trovare il nome di un evento, utilizzare il cmdlet Get-Member.

Obbligatorio? | true
Posizione? | 2
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Forward

Invia eventi per questa sottoscrizione a una sessione remota. Utilizzare questo parametro durante la registrazione di eventi in un computer remoto o in una sessione remota.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica l'oggetto .NET Framework che genera gli eventi. Immettere una variabile che contiene l'oggetto oppure digitare un comando o un'espressione che consente di ottenere l'oggetto. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-MessageData <psobject>

Specifica qualsiasi dato aggiuntivo associato a questa sottoscrizione di evento. Il valore di questo parametro viene visualizzato nella proprietà MessageData di tutti gli eventi associati a questa sottoscrizione.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SourceIdentifier <string>

Specifica un nome selezionato per la sottoscrizione. Il nome selezionato deve essere univoco nella sessione corrente. Il valore predefinito è il GUID assegnato da Windows PowerShell.

Il valore di questo parametro viene visualizzato nel valore della proprietà SourceIdentifier dell'oggetto sottoscrittore e di tutti gli oggetti evento associati a questa sottoscrizione.

Obbligatorio? | false
Posizione? | 101
Valore predefinito | GUID
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SupportEvent

Nasconde la sottoscrizione di eventi. Utilizzare questo parametro quando la sottoscrizione corrente fa parte di un meccanismo di registrazione eventi più complesso e non deve essere individuata separatamente.

Per visualizzare o annullare una sottoscrizione creata con il parametro SupportEvent, utilizzare il parametro Force dei cmdlet Get-EventSubscriber e Unregister-Event.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a Register-ObjectEvent.
Output | Nessuno Questo cmdlet non genera alcun output.

Note

Gli eventi, le sottoscrizioni di eventi e la coda degli eventi esistono solo nella sessione corrente. Se si chiude la sessione corrente, la coda degli eventi viene eliminata e la sottoscrizione di eventi viene annullata.

Esempio 1

C:\PS>$query = New-Object System.Management.WqlEventQuery "__InstanceCreationEvent", (New-Object TimeSpan 0,0,1), "TargetInstance isa 'Win32_Process'"

C:\PS> $processWatcher = New-Object System.Management.ManagementEventWatcher $query

C:\PS> register-objectEvent -inputObject $processWatcher -eventName "EventArrived"

Descrizione
-----------
In questo esempio vengono sottoscritti gli eventi generati all'avvio di un nuovo processo.

Il comando utilizza l'oggetto ManagementEventWatcher per ottenere eventi EventArrived. Un oggetto query specifica che gli eventi sono eventi di creazione di istanze per la classe Win32_Process.

Esempio 2

C:\PS>$query = New-Object System.Management.WqlEventQuery "__InstanceCreationEvent", (New-Object TimeSpan 0,0,1), "TargetInstance isa 'Win32_Process'"

C:\PS> $processWatcher = New-Object System.Management.ManagementEventWatcher $query

C:\PS> $action = { New-Event "PowerShell.ProcessCreated" -Sender $sender -EventArguments $SourceEventArgs.NewEvent.TargetInstance }

C:\PS> register-objectEvent -inputObject $processWatcher -eventName "EventArrived" -action $action

Id    Name            State      HasMoreData     Location             Command
--    ----            -----      -----------     --------             -------
2     422cfe5a-65e... Running    True                                 New-Event "PowerShe...

Descrizione
-----------
In questo esempio viene illustrato come specificare un'azione per rispondere a un evento. Quando si specifica un'azione, gli eventi generati non vengono aggiunti alla coda eventi. Al contrario, l'azione risponde all'evento.

In questo esempio, quando viene generato un evento di creazione di istanze che indica l'avvio di un nuovo processo, viene generato un nuovo evento ProcessCreated.

L'azione utilizza le variabili automatiche $Sender e $SourceEventArgs compilate solo per le azioni dell'evento.

Il comando Register-ObjectEvent restituisce un oggetto processo che rappresenta l'azione e viene eseguito come un processo in background. È possibile utilizzare i cmdlet Job, ad esempio Get-Job e Receive-Job, per gestire il processo in background.

Per ulteriori informazioni, vedere about_Jobs.

Esempio 3

C:\PS>$s = new-pssession -computername Server01, Server02

C:\PS> invoke-command -session $s -filepath ProcessCreationEvent.ps1

C:\PS> invoke-command -session $s { get-event }

# ProcessCreationEvent.ps1

function Enable-ProcessCreationEvent
{
   $query = New-Object System.Management.WqlEventQuery "__InstanceCreationEvent", `
       (New-Object TimeSpan 0,0,1), `
       "TargetInstance isa 'Win32_Process'"
   $processWatcher = New-Object System.Management.ManagementEventWatcher $query

   $identifier = "WMI.ProcessCreated"
   Register-ObjectEvent -input $processWatcher -eventName "EventArrived" `
      -sourceIdentifier $identifier -messageData "Test" -forward
   }
}

EnableProcessCreationEvent

Descrizione
-----------
In questo esempio viene illustrato come sottoscrivere eventi oggetto in computer remoti.

Il primo comando crea sessioni PSSession nei due computer remoti e le salva nella variabile $s.

Nel secondo comando viene utilizzato il parametro FilePath del cmdlet Invoke-Command per eseguire lo script ProcessCreationEvent.ps1 in ciascuna sessione PSSession in $s.

Lo script include un comando Register-ObjectEvent che sottoscrive eventi di creazione di istanze nell'oggetto Win32_Process tramite l'oggetto ManagementEventWatcher e il relativo evento EventArrived.

Esempio 4

C:\PS>$timer  = New-Object Timers.Timer

C:\PS> $timer.Interval = 500

C:\PS> $job = Register-ObjectEvent -inputObject $timer -eventName Elapsed -sourceIdentifier Timer.Random -Action {$random = Get-Random -Min 0 -Max 100}

C:\PS> $job.gettype().fullname
System.Management.Automation.PSEventJob

C:\PS> $job | format-list -property *

State         : Running
Module        : __DynamicModule_6b5cbe82-d634-41d1-ae5e-ad7fe8d57fe0
StatusMessage :
HasMoreData   : True
Location      :
Command       : $random = Get-Random -Min 0 -Max 100
JobStateInfo  : Running
Finished      : System.Threading.ManualResetEvent
InstanceId    : 88944290-133d-4b44-8752-f901bd8012e2
Id            : 1
Name          : Timer.Random
ChildJobs     : {}
...

C:\PS> $timer.Enabled = $true

C:\PS> & $job.module {$random}
60

C:\PS> & $job.module {$random}
47

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il modulo dinamico nell'oggetto PSEventJob creato quando si include un'azione in una registrazione eventi.

Nel primo comando viene utilizzato il cmdlet New-Object per creare un oggetto timer. Nel secondo comando viene impostato l'intervallo del timer su 500 (millisecondi).

Nel terzo comando viene utilizzato il cmdlet Register-ObjectEvent per registrare l'evento Elapsed dell'oggetto timer. Il comando include un'azione che gestisce l'evento. Quando l'intervallo del timer è trascorso, viene generato un evento e vengono eseguiti i comandi nell'azione. In questo caso, il cmdlet Get-Random genera un numero casuale compreso tra 0 e 100 e lo salva nella variabile $random.

Quando si utilizza un parametro Action in un comando Register-ObjectEvent, il comando restituisce un oggetto PSEventJob che rappresenta l'azione. Il comando consente di salvare l'oggetto processo nella variabile $job.

L'oggetto PSEventJob restituito dal cmdlet Register-ObjectEvent è anche disponibile nella proprietà Action del sottoscrittore di eventi. Per ulteriori informazioni, vedere Get-EventSubscriber.

Nel quarto comando viene illustrato che la variabile $job contiene un oggetto PSEventJob. Nel quinto comando viene utilizzato il cmdlet Format-List per visualizzare in un elenco tutte le proprietà dell'oggetto PSEventJob.

PSEventJob dispone di una proprietà Module in cui è contenuto un modulo di script dinamico che implementa l'azione.

Nel sesto comando viene attivato il timer.

Nei comandi rimanenti viene utilizzano l'operatore di chiamata (&) per richiamare il comando nel modulo e visualizzare il valore della variabile $random. È possibile utilizzare l'operatore di chiamata per richiamare qualsiasi comando in un modulo, inclusi i comandi non esportati. In questo caso, nei comandi viene visualizzato il numero casuale che viene generato quando si verifica l'evento Elapsed.

Per ulteriori informazioni sui moduli, vedere about_Modules.

Vedere anche

  • Register-EngineEvent
  • Register-WmiEvent
  • Unregister-Event
  • Get-Event
  • New-Event
  • Remove-Event
  • Wait-Event


Register-PSSessionConfiguration

Crea e registra una nuova configurazione di sessione.

Sintassi

Register-PSSessionConfiguration [-AssemblyName] <string> [-ConfigurationTypeName] <string> [-ApplicationBase <string>] [-Name] <string> [-Force] [-MaximumReceivedDataSizePerCommandMB <double>] [-MaximumReceivedObjectSizeMB <double>] [-NoServiceRestart] [-ProcessorArchitecture <string>] [-SecurityDescriptorSDDL <string>] [-ShowSecurityDescriptorUI] [-StartupScript <string>] [-ThreadApartmentState {<STA> | <MTA> | <Unknown>}] [-ThreadOptions {<Default> | <UseNewThread> | <ReuseThread> | <UseCurrentThread>}] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Register-PSSessionConfiguration crea e registra una nuova configurazione di sessione nel computer locale. Si tratta di un cmdlet avanzato progettato per essere utilizzato da amministratori di sistema per gestire le configurazioni di sessione personalizzate degli utenti.

Ogni sessione remota di Windows PowerShell utilizza una configurazione di sessione. Quando gli utenti creano una sessione per la connessione al computer, possono selezionare una configurazione o utilizzare le configurazioni predefinite registrate quando si abilita la comunicazione remota di Windows PowerShell. Gli utenti possono inoltre impostare la variabile di preferenza $PSSessionConfigurationName che specifica una configurazione predefinita per le sessioni create nella sessione corrente.

La configurazione di sessione configura l'ambiente per la sessione. È possibile definire la configurazione con un assembly che implementa una nuova classe di configurazione e con uno script in esecuzione nella sessione. La configurazione determina i comandi disponibili nella sessione e può includere impostazioni per la protezione del computer, ad esempio quelle che limitano la quantità di dati che la sessione può ricevere in modalità remota in un solo oggetto o comando. È inoltre possibile specificare un descrittore di sicurezza che determina le autorizzazioni richieste per utilizzare la configurazione.

Parametri

-ApplicationBase <string>

Specifica il percorso del file di assembly (*.dll) specificato nel valore del parametro AssemblyName. Utilizzare questo parametro quando il valore del parametro AssemblyName non include un percorso. Il valore predefinito è la directory corrente.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Current directory
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-AssemblyName <string>

Specifica il nome di un file di assembly (*.dll) in cui è definito il tipo di configurazione. È possibile specificare il percorso del file con estensione dll in questo parametro o nel valore del parametro ApplicationBase.

Questo parametro è obbligatorio quando viene specificato il parametro ConfigurationTypeName.

Obbligatorio? | true
Posizione? | 2
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ConfigurationTypeName <string>

Specifica il nome completo del tipo Microsoft .NET Framework utilizzato per questa configurazione. Il tipo specificato deve implementare la classe System.Management.Automation.Remoting.PSSessionConfiguration.

Per specificare il file di assembly (con estensione dll) che implementa il tipo di configurazione, utilizzare i parametri AssemblyName e AssemblyBase.

La creazione di un tipo consente di controllare più aspetti della configurazione di sessione, ad esempio l'attivazione o la disattivazione dell'esposizione di certi parametri dei cmdlet o l'impostazione dei limiti delle dimensioni di dati e oggetti che gli utenti non possono ignorare.

Se si omette questo parametro, la classe DefaultRemotePowerShellConfiguration viene utilizzata per la configurazione di sessione.

Obbligatorio? | true
Posizione? | 3
Valore predefinito | System.Management.Automation.Remoting.PSSessionConfiguration
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Elimina tutti i prompt degli utenti e riavvia il servizio Gestione remota Windows senza richieste. Con il riavvio del servizio la modifica della configurazione diventa effettiva.

Per impedire un riavvio ed eliminare il prompt di riavvio, utilizzare il parametro NoServiceRestart.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-MaximumReceivedDataSizePerCommandMB <double>

Limita la quantità di dati che è possibile inviare a questo computer in qualsiasi singolo comando remoto. Immettere le dimensioni dei dati in megabyte (MB). L'impostazione predefinita è 50 MB.

Se viene stabilito un limite per le dimensioni dei dati nel tipo di configurazione specificato nel parametro ConfigurationTypeName, viene utilizzato il limite nel tipo di configurazione e il valore di questo parametro viene ignorato.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 50
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-MaximumReceivedObjectSizeMB <double>

Limita la quantità di dati che è possibile inviare a questo computer in qualsiasi singolo oggetto. Immettere le dimensioni dei dati in megabyte (MB). L'impostazione predefinita è 10 MB.

Se viene stabilito un limite per le dimensioni di un oggetto nel tipo di configurazione specificato nel parametro ConfigurationTypeName, viene utilizzato il limite nel tipo di configurazione e il valore di questo parametro viene ignorato.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 10
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string>

Specifica un nome per la configurazione di sessione. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-NoServiceRestart

Non riavvia il servizio Gestione remota Windows ed elimina il prompt per riavviare il servizio.

Per impostazione predefinita, quando si immette un comando Register-PSSessionConfiguration, viene richiesto di riavviare il servizio Gestione remota Windows per rendere effettiva la nuova configurazione di sessione. Finché il servizio Gestione remota Windows non viene riavviato, la nuova configurazione di sessione non è effettiva.

Per riavviare il servizio Gestione remota Windows senza visualizzare alcun prompt, utilizzare il parametro Force. Per riavviare manualmente il servizio Gestione remota Windows, utilizzare il cmdlet Restart-Service.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ProcessorArchitecture <string>

Specifica un'architettura del processore per la configurazione. Questo valore determina se viene avviata una versione a 32 o 64 bit del processo che ospita Windows PowerShell quando viene utilizzata la configurazione. I valori validi sono x86, AMD64 e IA64.

L'impostazione predefinita è determinata dall'architettura del processore del computer che ospita la configurazione di sessione.

Obbligatorio? | false
Posizione? | named
Valore predefinito | The processor architecture of the host computer.
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SecurityDescriptorSDDL <string>

Specifica una stringa SDDL (Security Descriptor Definition Language) per la configurazione.

Questa stringa determina le autorizzazioni necessarie per utilizzare la nuova configurazione di sessione. Per utilizzare una configurazione di sessione in una sessione, gli utenti devono disporre almeno dell'autorizzazione "Execute(Invoke)" per la configurazione.

Se il descrittore di sicurezza è complesso, si consideri l'utilizzo del parametro ShowSecurityDescriptorUI al posto di questo parametro. Non è possibile utilizzare entrambi i parametri nello stesso comando.

Se si omette questo parametro, la radice SDDL per il servizio Gestione remota Windows viene utilizzata per questa configurazione. Per visualizzare o modificare la radice SDDL, utilizzare il provider WS-Management. Ad esempio "Get-Item wsman:\localhost\service\rootSDDL". Per ulteriori informazioni sul provider WS-Management, digitare "Get-Help wsman".

Obbligatorio? | false
Posizione? | named
Valore predefinito | The value of the root SDDL
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ShowSecurityDescriptorUI

Visualizza una finestra delle proprietà che consente di creare l'SDDL per la configurazione di sessione. La finestra delle proprietà viene visualizzata dopo l'immissione del comando Register-PSSessionConfiguration, dopodiché viene riavviato il servizio Gestione remota Windows.

Durante l'impostazione delle autorizzazioni per la configurazione, ricordare che gli utenti devono disporre almeno dell'autorizzazione "Execute(Invoke)" per utilizzare la configurazione di sessione in una sessione.

Non è possibile utilizzare questo parametro e il parametro SecurityDescriptorSDDL nello stesso comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-StartupScript <string>

Specifica il percorso completo di uno script di Windows PowerShell. Lo script specificato viene eseguito nella nuova sessione che utilizza la configurazione di sessione.

È possibile utilizzare lo script per configurare ulteriormente la sessione. Se lo script genera un errore (anche un errore non fatale), la sessione non viene creata e il comando New-PSSession dell'utente ha esito negativo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ThreadApartmentState <ApartmentState>

Determina lo stato dell'apartment dei thread nella sessione. I valori validi sono STA, MTA e Unknown. Il valore predefinito è Unknown.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Unknown
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ThreadOptions <PSThreadOptions>

Definisce la modalità di creazione e utilizzo dei thread quando viene eseguito un comando nella sessione. I valori validi sono Default, ReuseThread, UseCurrentThread e UseNewThread. Il valore predefinito è UseCurrentThread.

Obbligatorio? | false
Posizione? | named
Valore predefinito | UseCurrentThread
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Microsoft.WSMan.Management.WSManConfigContainerElement

Note

Per eseguire questo cmdlet in Windows Vista, Windows Server 2008 e nelle versioni successive di Windows, è necessario avviare Windows PowerShell con l'opzione "Esegui come amministratore".

Questo cmdlet genera un XML che rappresenta una configurazione del plug-in di WS-Management e invia l'XML a WS-Management che registra il plug-in nel computer locale ("new-item wsman:\localhost\plugin").

Esempio 1

C:\PS>register-pssessionConfiguration -name NewShell -applicationBase c:\MyShells\ -assemblyName MyShell.dll -configurationTypeName MyClass

Descrizione
-----------
Questo comando registra la configurazione di sessione NewShell. Utilizza i parametri ApplicationName e ApplicationBase per specificare il percorso del file MyShell.dll che specifica i cmdlet e i provider nella configurazione di sessione. Utilizza inoltre il parametro ConfigurationTypeName per specificare una nuova classe che configuri ulteriormente la sessione.

Per utilizzare questa configurazione, gli utenti dovrebbero digitare "new-pssession -configurationname newshell".

Esempio 2

C:\PS>register-pssessionConfiguration -name MaintenanceShell -startupScript c:\ps-test\Maintenance.ps1

Descrizione
-----------
Questo comando registra la configurazione MaintenanceShell nel computer locale. Viene utilizzato il parametro StartupScript per specificare lo script Maintenance.ps1.

Quando un utente utilizza un comando New-PSSession e seleziona la configurazione MaintenanceShell, viene eseguito lo script Maintenance.ps1 nella nuova sessione. Lo script può configurare la sessione, includendo l'importazione di moduli, l'aggiunta di snap-in di Windows PowerShell e l'impostazione dei criteri di esecuzione per la sessione. Se lo script genera errori, inclusi quelli non fatali, il comando New-PSSession ha esito negativo.

Esempio 3

C:\PS>$sddl = "O:NSG:BAD:P(A;;GA;;;BA)S:P(AU;FA;GA;;;WD)(AU;FA;SA;GWGX;;WD)"

C:\PS> register-pssessionconfiguration -name AdminShell -securityDescriptorSDDL $sddl -maximumReceivedObjectSizeMB 20 -startupScript c:\scripts\AdminShell.ps1

Descrizione
-----------
In questo esempio viene effettuata la registrazione della configurazione di sessione AdminShell.

Il primo comando consente di salvare un SDDL personalizzato nella variabile $sddl.

Con il secondo comando si registra la nuova shell. Con il comando si utilizza il parametro SecurityDescritorSDDL per specificare l'SDDL nel valore della variabile $sddl e il parametro MaximumReceivedObjectSizeMB per aumentare il limite relativo alle dimensioni dell'oggetto. Viene inoltre utilizzato il parametro StartupScript per specificare uno script che configuri la sessione.

In alternativa all'utilizzo del parametro SecurityDescriptorSDDL, è possibile utilizzare il parametro ShowSecurityDescriptorUI che visualizza una finestra delle proprietà utilizzabile per impostare le autorizzazioni per la configurazione di sessione. Quando si fa clic su "OK" nella finestra delle proprietà, lo strumento genera un SDDL per la configurazione di sessione.

Esempio 4

C:\PS>$s = register-pssessionConfiguration -name MaintenanceShell -startupScript c:\ps-test\Maintenance.ps1

C:\PS> $s

   WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin

Name                      Type                 Keys
----                      ----                 ----
MaintenanceShell          Container            {Name=MaintenanceShell}

C:\PS> $s.getType().fullname
TypeName: Microsoft.WSMan.Management.WSManConfigContainerElement

C:\PS> $s | format-list -property *

PSPath            : Microsoft.WSMan.Management\WSMan::localhost\Plugin\MaintenanceShell
PSParentPath      : Microsoft.WSMan.Management\WSMan::localhost\Plugin
PSChildName       : MaintenanceShell
PSDrive           : WSMan
PSProvider        : Microsoft.WSMan.Management\WSMan
PSIsContainer     : True
Keys              : {Name=MaintenanceShell}
Name              : MaintenanceShell
TypeNameOfElement : Container

C:\PS> dir wsman:\localhost\plugin

Name                      Type                 Keys
----                      ----                 ----
MaintenanceShell          Container            {Name=MaintenanceShell}
microsoft.powershell      Container            {Name=microsoft.powershell}
microsoft.powershell32    Container            {Name=microsoft.powershell32}

Descrizione
-----------
In questo esempio viene indicato che un comando Register-PSSessionConfiguration restituisce WSManConfigContainerElement. Viene inoltre illustrato come trovare gli elementi del contenitore nell'unità WSMan:.

Con il primo comando si utilizza il cmdlet Register-PSSessionConfiguration per registrare la configurazione MaintenanceShell. Viene salvato l'oggetto restituito dal cmdlet nella variabile $s.

Con il secondo comando viene visualizzato il contenuto della variabile $s.

Con il terzo comando si utilizza il metodo GetType e la relativa proprietà FullName per visualizzare il nome del tipo dell'oggetto restituito da Register-PSSessionConfiguration.

Con il quarto comando si utilizza il cmdlet Format-List per visualizzare tutte le proprietà dell'oggetto restituito da Register-PSSessionConfiguration in un elenco. La proprietà PSPath mostra che l'oggetto viene archiviato in una directory dell'unità WSMan:.

Con il quinto comando si utilizza il cmdlet Get-ChildItem per visualizzare gli elementi nel percorso WSMan:\LocalHost\PlugIn. Sono incluse la nuova configurazione MaintenanceShell e le due configurazioni predefinite fornite con Windows PowerShell.

Esempio 5

C:\PS>register-pssessionconfiguration -name WithProfile -startupScript add-profile.ps1

# Add-Profile.ps1

. c:\users\admin01\documents\windowspowershell\profile.ps1

Descrizione
-----------
Con questo comando viene creata e registrata la configurazione di sessione WithProfile nel computer locale. Con il comando si utilizza il parametro StartupScript per indicare a Windows PowerShell di eseguire lo script specificato in qualsiasi sessione che utilizza la configurazione di sessione.

Viene inoltre visualizzato il contenuto dello script specificato, Add-Profile.ps1. Lo script contiene un singolo comando che utilizza il dot sourcing per eseguire il profilo CurrentUserAllHosts dell'utente nell'ambito corrente della sessione.

Per ulteriori informazioni sui profili, vedere about_Profiles. Per ulteriori informazioni sul dot sourcing, vedere about_Scopes.

Vedere anche

  • about_Session_Configurations
  • Disable-PSSessionConfiguration
  • Enable-PSSessionConfiguration
  • Get-PSSessionConfiguration
  • Set-PSSessionConfiguration
  • Unregister-PSSessionConfiguration
  • WSMan Provider


Register-WmiEvent

Sottoscrive un evento di Strumentazione gestione Windows (WMI).

Sintassi

Register-WmiEvent [-Classe] <string> [[-SourceIdentifier] <string>] [[-Azione] <scriptblock>] [-ComputerName <string>] [-Credential <PSCredential>] [-Forward] [-MessageData <psobject>] [-Spazio dei nomi <string>] [-SupportEvent] [-Timeout <Int64>] [<CommonParameters>]

Register-WmiEvent [-Query] <string> [[-SourceIdentifier] <string>] [[-Azione] <scriptblock>] [-ComputerName <string>] [-Credential <PSCredential>] [-Forward] [-MessageData <psobject>] [-Spazio dei nomi <string>] [-SupportEvent] [-Timeout <Int64>] [<CommonParameters>]

Descrizione

Il cmdlet Register-WmiEvent sottoscrive eventi WMI nel computer locale o in un computer remoto.

Quando l'evento WMI sottoscritto viene generato, viene aggiunto alla coda degli eventi nella sessione locale, anche se si verifica in un computer remoto. Per ottenere eventi nella coda degli eventi, utilizzare il cmdlet Get-Event.

È possibile utilizzare i parametri di Register-WmiEvent per sottoscrivere eventi nei computer remoti e specificare valori delle proprietà degli eventi che agevolano l'individuazione dell'evento nella coda. È anche possibile utilizzare il parametro Action per specificare azioni da eseguire quando viene generato un evento sottoscritto.

Quando si sottoscrive un evento, un sottoscrittore di eventi viene aggiunto alla sessione. Per ottenere i sottoscrittori di eventi nella sessione, utilizzare il cmdlet Get-EventSubscriber. Per annullare la sottoscrizione, utilizzare il cmdlet Unregister-Event che elimina il sottoscrittore di eventi dalla sessione.

Parametri

-Azione <scriptblock>

Specifica comandi che gestiscono gli eventi. I comandi nel parametro Action vengono eseguiti quando viene generato un evento, anziché inviare l'evento alla coda degli eventi. Racchiudere i comandi tra parentesi graffe ( { } ) per creare un blocco di script.

Il valore del parametro Action può includere le variabili automatiche $Event, $EventSubscriber, $Sender, $SourceEventArgs e $SourceArgs che forniscono informazioni sull'evento al blocco di script di Action. Per ulteriori informazioni, vedere about_Automatic_Variables.

Quando si specifica un'azione, Register-WmiEvent restituisce un oggetto processo evento che rappresenta tale azione. È possibile utilizzare i cmdlet che contengono il sostantivo Job (cmdlet Job) per gestire il processo evento.

Obbligatorio? | false
Posizione? | 102
Valore predefinito | The event is added to the event queue.
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Classe <string>

Specifica l'evento sottoscritto. Immettere la classe WMI che genera gli eventi. È richiesto un parametro Class o Query in ogni comando.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string>

Specifica un computer remoto. Il valore predefinito è il computer locale. Immettere un nome NetBIOS, un indirizzo IP o un nome di dominio completo.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Local computer
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01". In alternativa, immettere un oggetto PSCredential, ad esempio uno del cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Obbligatorio? | false
Posizione? | named
Valore predefinito | The credentials of the current user
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Forward

Invia gli eventi per questa sottoscrizione alla sessione nel computer locale. Utilizzare questo parametro durante la registrazione di eventi in un computer remoto o in una sessione remota.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-MessageData <psobject>

Specifica qualsiasi dato aggiuntivo associato a questa sottoscrizione di evento. Il valore di questo parametro viene visualizzato nella proprietà MessageData di tutti gli eventi associati a questa sottoscrizione.

Obbligatorio? | false
Posizione? | named
Valore predefinito | None. The MessageData property is NULL.
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Spazio dei nomi <string>

Specifica lo spazio dei nomi della classe WMI.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Query <string>

Specifica una query WQL (WMI Query Language) che identifica la classe dell'evento WMI, ad esempio "select * from __InstanceDeletionEvent".

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SourceIdentifier <string>

Specifica un nome selezionato per la sottoscrizione. Il nome selezionato deve essere univoco nella sessione corrente. Il valore predefinito è il GUID assegnato da Windows PowerShell.

Il valore di questo parametro viene visualizzato nel valore della proprietà SourceIdentifier dell'oggetto sottoscrittore e di tutti gli oggetti evento associati a questa sottoscrizione.

Obbligatorio? | false
Posizione? | 101
Valore predefinito | GUID
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SupportEvent

Nasconde la sottoscrizione di eventi. Utilizzare questo parametro quando la sottoscrizione corrente fa parte di un meccanismo di registrazione eventi più complesso e non deve essere individuata separatamente.

Per visualizzare o annullare una sottoscrizione creata con il parametro SupportEvent, utilizzare il parametro Force dei cmdlet Get-EventSubscriber e Unregister-Event.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Timeout <Int64>

Determina il tempo di attesa da parte di Windows PowerShell per il completamento del comando.

Il valore predefinito 0 (zero) indica che non è impostato alcun timeout e determina un'attesa illimitata di Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 0
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a Register-WmiEvent.
Output | Nessuno Questo cmdlet non genera alcun output.

Note

Per utilizzare questo cmdlet in Windows Vista o in una versione successiva di Windows, avviare Windows PowerShell con l'opzione "Esegui come amministratore".

Gli eventi, le sottoscrizioni di eventi e la coda degli eventi esistono solo nella sessione corrente. Se si chiude la sessione corrente, la coda degli eventi viene eliminata e la sottoscrizione di eventi viene annullata.

Esempio 1

C:\PS>register-wmiEvent -class 'Win32_ProcessStartTrace' -sourceIdentifier "ProcessStarted"

Descrizione
-----------
Con questo comando si sottoscrivono gli eventi generati dalla classe Win32_ProcessStartTrace. Con questa classe viene generato un evento a ogni avvio di un processo.

Esempio 2

C:\PS>register-wmiEvent -query "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'" -sourceIdentifier "WMIProcess" -messageData "Test 01" -timeout 500

Descrizione
-----------
In questo comando viene utilizzata una query per sottoscrivere eventi di creazione di istanze Win32_process.

Esempio 3

C:\PS>$action = { get-history | where { $_.commandline -like "*start-process*" } | export-cliXml "commandHistory.clixml" }

C:\PS> register-wmiEvent -class 'Win32_ProcessStartTrace' -sourceIdentifier "ProcessStarted" -action $action

Id    Name            State      HasMoreData   Location  Command
--    ----            -----      -----------   --------  -------
1     ProcessStarted  NotStarted False                   get-history | where {...

Descrizione
-----------
In questo esempio viene illustrato come utilizzare un'azione per rispondere a un evento. In questo caso, all'avvio di un processo qualsiasi comando Start-Process della sessione corrente viene scritto in un file XML.

Quando si utilizza il parametro Action, Register-WmiEvent restituisce un processo in background che rappresenta l'azione dell'evento. È possibile utilizzare i cmdlet Job, ad esempio Get-Job e Receive-Job, per gestire il processo evento.

Per ulteriori informazioni, vedere about_Jobs.

Esempio 4

C:\PS>register-wmiEvent -class 'Win32_ProcessStartTrace' -sourceIdentifier "Start" -computername Server01

C:\PS> get-event -sourceIdentifier "Start"

Descrizione
-----------
In questo esempio viene effettuata la registrazione di eventi nel computer remoto Server01.

WMI restituisce gli eventi al computer locale e li archivia nella coda degli eventi della sessione corrente. Per recuperare gli eventi, eseguire un comando Get-Event locale.

Vedere anche

  • Register-ObjectEvent
  • Register-EngineEvent
  • Unregister-Event
  • Get-Event
  • New-Event
  • Remove-Event
  • Wait-Event


Remove-Computer

Rimuove il computer locale da un gruppo di lavoro o un dominio.

Sintassi

Remove-Computer [[-Credential] <PSCredential>] [-Force] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Remove-Computer rimuove il computer locale dal relativo gruppo di lavoro o dominio corrente.

Quando si rimuove un computer da un dominio, Remove-Computer disabilita anche l'account di dominio del computer.

Quando il computer fa parte di un dominio, è necessario specificare le credenziali, anche se si tratta delle credenziali dell'utente corrente, e riavviare il computer per rendere effettiva la modifica.

Per ottenere i risultati del comando, utilizzare i parametri Verbose e PassThru.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Per rimuovere un computer da un dominio, è necessario utilizzare il parametro Credential, anche quando si utilizzano le credenziali dell'utente corrente.

Obbligatorio? | false
Posizione? | 2
Valore predefinito | The credentials of the current user
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PassThru

Restituisce i risultati del comando. Negli altri casi, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet
Output | Microsoft.PowerShell.Commands.ComputerChangeInfo Quando si utilizza il parametro PassThru, Remove-Computer restituisce un oggetto ComputerChangeInfo. Negli altri casi, il cmdlet non genera alcun output.

Esempio 1

C:\PS>remove-computer

Descrizione
-----------
Con questo comando il computer viene rimosso da un gruppo di lavoro.

Esempio 2

C:\PS>remove-computer -credential domain01\admin01 -passthru -verbose; restart-computer

Descrizione
-----------
Con questi comandi il computer locale viene rimosso dal dominio al quale è associato.

Con il primo comando il computer viene rimosso dal dominio. Viene utilizzato il parametro Credential per specificare le credenziali di un amministratore di dominio. Vengono utilizzati il parametro PassThru e il parametro comune Verbose per visualizzare informazioni sull'esito positivo o negativo del comando.

Nel secondo comando viene utilizzato il cmdlet Restart-Computer per il riavvio il computer, necessario per completare l'operazione di rimozione.

Il punto e virgola (;) separa i due comandi.

Vedere anche

  • Add-Computer
  • Checkpoint-Computer
  • Remove-Computer
  • Restart-Computer
  • Restore-Computer
  • Stop-Computer
  • Test-Connection


Remove-Event

Elimina eventi dalla coda degli eventi.

Sintassi

Remove-Event [-EventIdentifier] <int> [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-Event [-SourceIdentifier] <string> [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Remove-Event elimina eventi dalla coda degli eventi nella sessione corrente.

Questo cmdlet elimina solo gli eventi attualmente presenti nella coda. Per annullare la registrazione di eventi o la sottoscrizione, utilizzare il cmdlet Unregister-Event.

Parametri

-EventIdentifier <int>

Elimina solo l'evento con l'identificatore evento specificato. Un parametro EventIdentifier o SourceIdentifier è obbligatorio in ogni comando.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-SourceIdentifier <string>

Elimina solo gli eventi con l'identificatore di origine specificato. Non è consentito l'utilizzo di caratteri jolly. Un parametro EventIdentifier o SourceIdentifier è obbligatorio in ogni comando.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSEventArgs È possibile reindirizzare eventi da Get-Event a Remove-Event.
Output | Nessuno Il cmdlet non genera alcun output.

Note

Gli eventi, le sottoscrizioni di eventi e la coda degli eventi esistono solo nella sessione corrente. Se si chiude la sessione corrente, la coda degli eventi viene eliminata e la sottoscrizione di eventi viene annullata.

Esempio 1

C:\PS>remove-event -sourceIdentifier "ProcessStarted"

Descrizione
-----------
Questo comando elimina gli eventi con un identificatore di origine "Process Started" dalla coda degli eventi.

Esempio 2

C:\PS>remove-event -eventIdentifier 30

Descrizione
-----------
Questo comando elimina l'evento con un ID evento pari a 30 dalla coda degli eventi.

Esempio 3

C:\PS>get-event | remove-event

Descrizione
-----------
Questo comando elimina tutti gli eventi dalla coda degli eventi.

Vedere anche

  • Register-ObjectEvent
  • Register-EngineEvent
  • Register-WmiEvent
  • Unregister-Event
  • Get-Event
  • New-Event
  • Remove-Event
  • Wait-Event


Remove-EventLog

Elimina un registro eventi o annulla la registrazione di un'origine evento.

Sintassi

Remove-EventLog [-LogName] <string[]> [[-ComputerName] <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-EventLog [[-ComputerName] <string[]>] [-Source <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Con il cmdlet Remove-EventLog viene eliminato un file del registro eventi da un computer locale o remoto e viene annullata la registrazione di tutte le relative origini eventi per il registro. È inoltre possibile utilizzare questo cmdlet per annullare la registrazione delle origini eventi senza eliminare i registri eventi.

I cmdlet che contengono il sostantivo EventLog (cmdlet EventLog) funzionano solo su registri eventi classici. Per ottenere eventi da registri che utilizzano la tecnologia Registro eventi di Windows in Windows Vista e nelle versioni successive di Windows, utilizzare Get-WinEvent.

Parametri

-ComputerName <string[]>

Specifica un computer remoto. Il valore predefinito è il computer locale.

Digitare il nome NetBIOS, un indirizzo IP (Internet Protocol) o un nome di dominio completo di un computer remoto. Per specificare il computer locale, digitare il nome del computer, un punto (.) o "localhost".

Questo parametro non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName di Remove-EventLog anche se il computer non è configurato per l'esecuzione di comandi remoti.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LogName <string[]>

Specifica i registri eventi. Immettere il nome del registro, ovvero il valore della proprietà Log non di LogDisplayName, di uno o più registri eventi separati da virgole. Non è consentito l'utilizzo di caratteri jolly. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Source <string[]>

Annulla la registrazione delle origini eventi specificate. Immettere i nomi di origine, non il nome dell'eseguibile, separati da virgole.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Nessuno Questo cmdlet non restituisce alcun output.

Note

Per utilizzare Remove-EventLog in Windows Vista e nelle versioni successive di Windows, avviare Windows PowerShell con l'opzione "Esegui come amministratore".

Se si rimuove e successivamente si ricrea un registro eventi, non sarà più possibile registrare le stesse origini eventi. Le applicazioni che hanno utilizzato le origini eventi per scrivere voci nel registro originale non saranno in grado di scrivere nel nuovo registro.

Quando si annulla la registrazione di un'origine evento per un determinato registro, potrebbe non essere possibile scrivere voci in altri registri eventi mediante tale origine evento.

Esempio 1

C:\PS>remove-eventlog -logname MyLog

Descrizione
-----------
Con questo comando il registro eventi MyLog viene eliminato dal computer locale e viene annullata la registrazione delle relative origini eventi.

Esempio 2

C:\PS>remove-eventlog -logname MyLog, TestLog -computername Server01, Server02, localhost

Descrizione
-----------
Con questo comando i registri eventi MyLog e TestLog vengono eliminati dal computer locale ("localhost") e dai computer remoti Server01 e Server02. Viene inoltre annullata la registrazione delle origini eventi per tali registri.

Esempio 3

C:\PS>remove-eventlog -source MyApp

Descrizione
-----------
Con questo comando l'origine evento MyApp viene eliminata dai registri nel computer locale. Al completamento del comando, il programma MyApp non sarà in grado di scrivere in alcun registro eventi.

Esempio 4

C:\PS>get-eventlog -list

  Max(K) Retain OverflowAction        Entries Log
  ------ ------ --------------        ------- ---
  15,168      0 OverwriteAsNeeded      22,923 Application
  15,168      0 OverwriteAsNeeded          53 DFS Replication
     512      7 OverwriteOlder              0 Directory Service
  15,168      7 OverwriteOlder              0 Hardware Events
     512      7 OverwriteOlder              0 Internet Explorer
  20,480      0 OverwriteAsNeeded           0 Key Management Service
  30,016      0 OverwriteAsNeeded      50,060 Security
  15,168      0 OverwriteAsNeeded      27,592 System
  15,360      0 OverwriteAsNeeded      18,355 Windows PowerShell
  15,168      7 OverwriteAsNeeded          12 ZapLog

C:\PS> remove-eventlog -logname ZapLog

C:\PS> get-eventlog -list

  Max(K) Retain OverflowAction        Entries Log
  ------ ------ --------------        ------- ---
  15,168      0 OverwriteAsNeeded      22,923 Application
  15,168      0 OverwriteAsNeeded          53 DFS Replication
     512      7 OverwriteOlder              0 Directory Service
  15,168      7 OverwriteOlder              0 Hardware Events
     512      7 OverwriteOlder              0 Internet Explorer
  20,480      0 OverwriteAsNeeded           0 Key Management Service
  30,016      0 OverwriteAsNeeded      50,060 Security
  15,168      0 OverwriteAsNeeded      27,592 System
  15,360      0 OverwriteAsNeeded      18,355 Windows PowerShell

Descrizione
-----------
Con questi comandi viene illustrato come elencare i registri eventi in un computer e verificare che un comando Remove-EventLog abbia esito positivo.

Con il primo comando vengono elencati i registri eventi nel computer locale.

Con il secondo comando viene eliminato il registro eventi ZapLog.

Con il terzo comando vengono nuovamente elencati i registri eventi. Il registro eventi ZapLog non è più visualizzato nell'elenco.

Esempio 5

C:\PS>get-wmiobject win32_nteventlogfile -filter "logfilename='TestLog'" | foreach {$_.sources}

MyApp
TestApp

C:\PS> remove-eventlog -source MyApp

C:\PS> get-wmiobject win32_nteventlogfile -filter "logfilename='TestLog'} | foreach {$_.sources}
TestApp

Descrizione
-----------
Con questi comandi viene utilizzato il cmdlet Get-WmiObject per elencare le origini eventi nel computer locale. È possibile eseguire questi comandi per verificare se un'origine evento è stata correttamente eliminata tramite un comando.

Con il primo comando si ottengono le origini eventi del registro eventi TestLog nel computer locale. MyApp è una delle origini.

Con il secondo comando viene utilizzato il parametro Source di Remove-EventLog per eliminare l'origine evento MyApp.

Il terzo comando è identico al primo. Consente di verificare che l'origine evento MyApp sia stata eliminata.

Vedere anche

  • Clear-EventLog
  • Get-EventLog
  • Limit-EventLog
  • New-EventLog
  • Remove-EventLog
  • Show-EventLog
  • Write-EventLog
  • Get-WinEvent


Remove-Item

Elimina gli elementi specificati.

Sintassi

Remove-Item [-LiteralPath] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-Recurse] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Remove-Item [-Path] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-Recurse] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Remove-Item elimina uno o più elementi. Poiché è supportato da molti provider, può eliminare diversi tipi di elementi, inclusi file, directory, chiavi del Registro di sistema, variabili, alias e funzioni.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di rimuovere elementi che non possono essere modificati in altro modo, ad esempio file nascosti o di sola lettura, alias di sola lettura o variabili. Il cmdlet non può rimuovere gli alias o le variabile costanti. L'implementazione varia a seconda del provider. Per ulteriori informazioni, vedere about_Providers. Quando si utilizza il parametro Force, il cmdlet non può ignorare le limitazioni di sicurezza.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Elimina unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica un percorso degli elementi da rimuovere. A differenza di Path, il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Path <string[]>

Specifica un percorso degli elementi da rimuovere. È consentito l'utilizzo di caratteri jolly. Il nome del parametro ("-Path") è facoltativo.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Recurse

Elimina gli elementi nei percorsi specificati e in tutti gli elementi figlio dei percorsi.

Il parametro Recurse di questo cmdlet non funziona correttamente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso (ma non un percorso letterale) a Remove-Item.
Output | Nessuno Questo cmdlet non restituisce alcun output.

Note

È inoltre possibile fare riferimento a Remove-Item tramite uno o più dei relativi alias predefiniti "del", "erase", "rmdir", "rd", "ri" o "rm". Per ulteriori informazioni, vedere about_Aliases.

Il cmdlet Remove-Item è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PsProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>remove-item C:\Test\*.*

Descrizione
-----------
Con questo comando vengono eliminati dalla directory C:\Test tutti i file il cui nome contiene un punto (.). Poiché nel comando viene specificato un punto, non vengono eliminate le directory o i file senza estensione.

Esempio 2

C:\PS>remove-item * -include *.doc -exclude *1*

Descrizione
-----------
Con questo comando vengono eliminati dalla directory corrente tutti i file con estensione doc e il cui nome non contiene 1. Il carattere jolly (*) viene utilizzato per specificare il contenuto della directory corrente. Vengono utilizzati i parametri Include ed Exclude per specificare i file da eliminare.

Esempio 3

C:\PS>remove-item -path C:\Test\hidden-RO-file.txt -force

Descrizione
-----------
Con questo comando viene eliminato un file nascosto e di sola lettura. Viene utilizzato il parametro Path per specificare il file. Il parametro Force viene utilizzato per concedere l'autorizzazione a eliminare il file. Senza tale parametro, non è possibile eliminare i file di sola lettura o nascosti.

Esempio 4

C:\PS>get-childitem * -include *.csv -recurse | remove-item

Descrizione
-----------
Con questo comando vengono eliminati tutti i file CSV nella directory corrente e in tutte le sottodirectory, in modalità ricorsiva.

Poiché il parametro Recurse di questo cmdlet non funziona, viene utilizzato il cmdlet Get-Childitem per ottenere i file desiderati e l'operatore pipeline per passarli al cmdlet Remove-Item.

Nel comando Get-ChildItem, il parametro Path ha un valore di *, che rappresenta il contenuto della directory corrente. Viene utilizzato il parametro Include per specificare il tipo di file CSV e il parametro Recurse per rendere ricorsivo il recupero.

Se si tenta di specificare il tipo di file nel percorso, ad esempio "-path *.csv", il cmdlet interpreta l'oggetto della ricerca come file senza elementi figlio e il parametro Recurse ha esito negativo.

Esempio 5

C:\PS>remove-item hklm:\software\mycompany\OldApp -recurse

Descrizione
-----------
Con questo comando viene eliminata la chiave del Registro di sistema OldApp e tutte le sottochiavi e i valori relativi. Viene utilizzato il cmdlet Remove-Item per rimuovere la chiave. Il percorso è specificato, ma il nome del parametro facoltativo (Path) è omesso.

Con il parametro Recurse viene eliminato tutto il contenuto della chiave OldApp in modo ricorsivo. Se la chiave contiene sottochiavi e si omette il parametro Recurse, viene richiesto di confermare l'eliminazione del contenuto della chiave.

Vedere anche

  • about_Providers
  • Clear-Item
  • Copy-Item
  • Get-Item
  • Invoke-Item
  • Move-Item
  • New-Item
  • Remove-ItemProperty
  • Rename-Item
  • Set-Item


Remove-ItemProperty

Elimina la proprietà e il relativo valore da un elemento.

Sintassi

Remove-ItemProperty [-LiteralPath] <string[]> [-Name] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Remove-ItemProperty [-Path] <string[]> [-Name] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Remove-ItemProperty elimina una proprietà e il relativo valore da un elemento. È possibile utilizzare questo cmdlet per eliminare i valori del Registro di sistema e i dati in essi archiviati.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di rimuovere una proprietà di un oggetto altrimenti inaccessibile dall'utente. L'implementazione varia a seconda del provider. Per ulteriori informazioni, vedere about_Providers.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Elimina unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica un percorso della proprietà dell'elemento. Il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Name <string[]>

Specifica i nomi delle proprietà da recuperare.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso dell'elemento di cui vengono rimosse le proprietà. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso (ma non un percorso letterale) a Remove-ItemProperty.
Output | Nessuno Questo cmdlet non restituisce alcun output.

Note

È inoltre possibile fare riferimento a Remove-ItemProperty tramite il relativo alias predefinito "rp". Per ulteriori informazioni, vedere about_Alias.

Nel provider Registry di Windows PowerShell, i valori del Registro di sistema sono considerati proprietà di una chiave o sottochiave del Registro di sistema. È possibile utilizzare i cmdlet ItemProperty per gestire tali valori.

Il cmdlet Remove-ItemProperty è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>remove-itemproperty -path HKLM:\Software\SmpApplication -name SmpProperty

Descrizione
-----------
Con questo comando viene eliminato il valore del Registro di sistema SmpProperty con i relativi dati dalla sottochiave SmpApplication della chiave del Registro di sistema HKEY_LOCAL_MACHINE\Software.

Poiché è stato generato da un'unità (C:\PS>) del file system, il comando include il percorso completo della sottochiave SmpApplication, contenente l'unità, HKLM: e la chiave Software.

Viene utilizzato il parametro Name per identificare il valore del Registro di sistema che viene eliminato.

Esempio 2

C:\PS>set-location HKCU:\Software\MyCompany\MyApp

PS HKCU:\Software\MyCompany\MyApp> remove-itemproperty -path . -Name Options -confirm

Descrizione
-----------
Con questi comandi viene eliminato il valore Options del Registro di sistema con i relativi dati dalla sottochiave MyApp di HKEY_CURRENT_USER\Software\MyCompany.

Con il primo comando viene utilizzato il cmdlet Set-Location per impostare come percorso corrente l'unità HKEY_CURRENT_USER (HKCU:) e la sottochiave Software\MyCompany\MyApp.

Il secondo comando utilizza il cmdlet Remove-Item per rimuovere il valore Options del Registro di sistema con i relativi dati dalla sottochiave MyApp. Poiché il parametro Path è obbligatorio, il comando utilizza un punto (.) per indicare il percorso corrente. Viene utilizzato il parametro Name per specificare quale valore del Registro di sistema eliminare. Viene utilizzato il parametro Confirm per richiedere la conferma prima di eliminare il valore.

Esempio 3

C:\PS>get-item -path HKLM:\Software\MyCompany | remove-itemproperty -name NoOfEmployees

Descrizione
-----------
Con questo comando vengono eliminati il valore del Registro di sistema NoOfEmployees e i relativi dati dalla chiave del Registro di sistema HKLM\Software\MyCompany.

Viene utilizzato il cmdlet Get-Item per ottenere un elemento che rappresenta la chiave del Registro di sistema. Viene utilizzato un operatore pipeline (|) per inviare l'oggetto al cmdlet Remove-ItemProperty. Viene quindi utilizzato il parametro Name di Remove-ItemProperty per specificare il nome del valore del Registro di sistema.

Vedere anche

  • about_Providers
  • Clear-ItemProperty
  • Copy-ItemProperty
  • Get-ItemProperty
  • Move-ItemProperty
  • New-ItemProperty
  • Remove-Item
  • Rename-ItemProperty
  • Set-ItemProperty


Remove-Job

Elimina un processo in background di Windows PowerShell.

Sintassi

Remove-Job [-Id] <Int32[]> [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-Job [-Command <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-Job [[-InstanceId] <Guid[]>] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-Job [-Job] <Job[]> [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-Job [[-Name] <string[]>] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-Job [-State {<NotStarted> | <Running> | <Completed> | <Failed> | <Stopped> | <Blocked>}] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Remove-Job consente di eliminare i processi in background di Windows PowerShell avviati tramite Start-Job o il parametro AsJob di qualsiasi cmdlet.

È possibile utilizzare questo cmdlet per eliminare tutti i processi o alcuni processi selezionati in base al nome, all'ID, all'ID istanza, al comando, allo stato o passando un oggetto processo a Remove-Job. Senza parametri o valori di parametro, Remove-Job non ha alcun effetto.

Prima di eliminare un processo in esecuzione, utilizzare il cmdlet Stop-Job per arrestare il processo. Se si tenta di eliminare un processo in esecuzione, il comando ha esito negativo. È possibile utilizzare il parametro Force di Remove-Job per eliminare un processo in esecuzione.

Se non si elimina un processo in background, quest'ultimo rimane nella cache del processo globale fino alla chiusura della sessione in cui è stato creato.

Parametri

-Command <string[]>

Rimuove i processi che includono le parole specificate nel comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Force

Elimina il processo anche se lo stato è "Running". Senza il parametro Force Remove-Job non eliminerà un processo in esecuzione.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Id <Int32[]>

Elimina i processi in background con gli ID specificati.

L'ID è un valore intero che identifica in modo univoco il processo all'interno della sessione corrente. È più facile da ricordare e digitare rispetto all'ID istanza, ma è univoco solo nella sessione corrente. È possibile digitare uno o più ID (separati da virgole). Per trovare l'ID di un processo, digitare "Get-Job" senza parametri.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-InstanceId <Guid[]>

Elimina i processi con gli ID istanza specificati.

Un ID istanza è un GUID che identifica in modo univoco il processo nel computer. Per trovare l'ID istanza di un processo, utilizzare Get-Job o visualizzare l'oggetto processo.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Job <Job[]>

Specifica i processi da eliminare. Immettere una variabile che contiene i processi o un comando che consenta di ottenerli. È inoltre possibile utilizzare un operatore pipeline per inviare processi al cmdlet Remove-Job.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Name <string[]>

Elimina solo i processi con i nomi descrittivi specificati. È consentito l'utilizzo di caratteri jolly.

Poiché non è garantito che il nome descrittivo sia univoco, anche all'interno della sessione, utilizzare i parametri WhatIf e Confirm in caso di eliminazione dei processi in base al nome.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | true

-State <JobState>

Elimina solo i processi con lo stato specificato. I valori validi sono NotStarted, Running, Completed, Stopped, Failed e Blocked. Per eliminare i processi che presentano uno stato Running, utilizzare il parametro Force.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.Job È possibile reindirizzare un oggetto processo a Remove-Job.
Output | Nessuno Questo cmdlet non genera alcun output.

Esempio 1

C:\PS>$batch = get-job -name BatchJob

C:\PS> $batch | remove-job

Descrizione
-----------
Questi comandi eliminano un processo in background denominato BatchJob dalla sessione corrente. Il primo comando utilizza il cmdlet Get-Job per ottenere un oggetto che rappresenta il processo, quindi salva il processo nella variabile $batch. Il secondo comando utilizza un operatore pipeline (|) per inviare il processo al cmdlet Remove-Job.

Questo comando equivale all'utilizzo del parametro Job di Remove-Job, ad esempio, "remove-job -job $batch".

Esempio 2

C:\PS>get-job | remove-job

Descrizione
-----------
Questo comando elimina tutti i processi nella sessione corrente.

Esempio 3

C:\PS>remove-job -state NotStarted

Descrizione
-----------
Questo comando elimina tutti i processi della sessione corrente che non sono ancora stati avviati.

Esempio 4

C:\PS>remove-job -name *batch -force

Descrizione
-----------
Questo comando elimina tutti i processi con nomi descrittivi che terminano con "batch" dalla sessione corrente, compresi i processi in esecuzione.

Utilizza il parametro Name di Remove-Job per specificare un modello di nome processo e il parametro Force per assicurarsi che tutti i processi vengano rimossi, anche quelli che potrebbero essere in corso.

Esempio 5

C:\PS>$j = invoke-command -computername Server01 -scriptblock {get-process} -asJob

C:\PS> $j | remove-job

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il cmdlet Remove-Job per rimuovere un processo avviato in un computer remoto tramite il parametro AsJob del cmdlet Invoke-Command.

Nel primo comando viene utilizzato il cmdlet Invoke-Command per eseguire un processo nel computer Server01. Viene utilizzato il parametro AsJob per eseguire il comando come processo in background e viene salvato l'oggetto processo risultante nella variabile $j.

Poiché il comando ha utilizzato il parametro AsJob, l'oggetto processo viene creato nel computer locale, anche se il processo viene eseguito in un computer remoto. Di conseguenza, vengono utilizzati comandi locali per gestire il processo.

Nel secondo comando viene utilizzato il cmdlet Remove-Job per rimuovere il processo. Viene utilizzato un operatore pipeline (|) per inviare il processo in $j a Remove-Job. Si noti che si tratta di un comando locale. Non è necessario un comando remoto per rimuovere un processo avviato tramite il parametro AsJob.

Esempio 6

C:\PS>$s = new-pssession -computername Server01

C:\PS> invoke-command -session $s -scriptblock {start-job -scriptblock {get-process} -name MyJob}

C:\PS> invoke-command -session $s -scriptblock {remove-job -name MyJob}

Descrizione
-----------
In questo esempio viene illustrato come rimuovere un processo avviato tramite Invoke-Command per eseguire un comando Start-Job. In questo caso, l'oggetto processo viene creato nel computer locale, in modo da poter utilizzare i comandi remoti per gestire il processo.

Nel primo comando viene utilizzato il cmdlet New-PSSession per creare una sessione PSSession (una connessione permanente) al computer Server01. Una connessione permanente è necessaria quando si esegue un comando Start-Job in modalità remota. La sessione PSSession viene salvata nella variabile $s.

Nel secondo comando viene utilizzato il cmdlet Invoke-Command per eseguire un comando Start-Job nella sessione PSSession in $s. Il processo esegue un comando Get-Process. Viene utilizzato il parametro Name di Start-Job per specificare un nome descrittivo per il processo.

Nel terzo comando viene utilizzato il cmdlet Invoke-Command per eseguire un comando Remove-Job nella sessione PSSession in $s. Il comando utilizza il parametro Name di Remove-Job per identificare il processo da eliminare.

Esempio 7

C:\PS>$j = start-job -script {get-process powershell}

C:\PS> $j | format-list -property *

C:\PS> remove-job -instanceID dce2ee73-f8c9-483e-bdd7-a549d8687eed

C:\PS> $j = start-job -script {get-process powershell}

C:\PS> $j | format-list -property *

HasMoreData   : False
StatusMessage :
Location      : localhost
Command       : get-process powershell
JobStateInfo  : Failed
Finished      : System.Threading.ManualResetEvent
InstanceId    : dce2ee73-f8c9-483e-bdd7-a549d8687eed
Id            : 1
Name          : Job1
ChildJobs     : {Job2}
Output        : {}
Error         : {}
Progress      : {}
Verbose       : {}
Debug         : {}
Warning       : {}
StateChanged  :

C:\PS> remove-job -instanceID dce2ee73-f8c9-483e-bdd7-a549d8687eed

Descrizione
-----------
In questo esempio viene illustrato come rimuovere un processo in base al relativo ID istanza.

Con il primo comando si utilizza il cmdlet Start-Job per avviare un processo in background. L'oggetto processo risultante viene salvato nella variabile $j.

Nel secondo comando viene utilizzato un operatore pipeline (|) per inviare l'oggetto processo in $j al comando Format-List. Il comando Format-List utilizza il parametro Property con un valore indicante tutti gli elementi (*) per visualizzare tutte le proprietà dell'oggetto processo in un elenco.

Nella visualizzazione dell'oggetto processo vengono indicati i valori delle proprietà ID e InstanceID, insieme alle altre proprietà dell'oggetto.

Il terzo comando utilizza un comando Remove-Job per rimuovere il processo dalla sessione corrente. Per generare il comando, è possibile copiare e incollare il valore InstanceID dalla visualizzazione dell'oggetto.

Per copiare un valore nella console di Windows PowerShell, utilizzare il mouse per selezionare il valore, quindi premere Invio per copiarlo. Per incollare un valore, fare clic con il pulsante destro del mouse su di esso.

Vedere anche

  • about_Jobs
  • about_Job_Details
  • about_Remote_Jobs
  • Start-Job
  • Get-Job
  • Receive-Job
  • Wait-Job
  • Stop-Job
  • Invoke-Command


Remove-Module

Rimuove i moduli dalla sessione corrente.

Sintassi

Remove-Module [-ModuleInfo] <PSModuleInfo[]> [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-Module [-Name] <string[]> [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Remove-Module rimuove i membri di un modulo dalla sessione corrente.

Se il modulo include un assembly (.dll), tutti i membri implementati dall'assembly vengono rimossi, ma l'assembly non viene scaricato.

Parametri

-Force

Rimuove i moduli anche quando la modalità di accesso è in sola lettura.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ModuleInfo <PSModuleInfo[]>

Specifica gli oggetti del modulo da rimuovere. Immettere una variabile che contiene un oggetto modulo (PSModuleInfo) o un comando che ottiene un oggetto modulo, ad esempio un comando Get-Module. È inoltre possibile reindirizzare oggetti modulo a Remove-Module.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Name <string[]>

Specifica i nomi dei moduli da rimuovere. È consentito l'utilizzo di caratteri jolly. È anche possibile reindirizzare stringhe di nomi a Remove-Module.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | true

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String, System.Management.Automation.PSModuleInfo È anche possibile reindirizzare nomi di moduli (stringhe) e oggetti modulo a Remove-Module.
Output | Nessuno Remove-Module non genera alcun output.

Note

È anche possibile fare riferimento a Remove-Module tramite il relativo alias, "rmo". Per ulteriori informazioni, vedere about_Aliases.

Esempio 1

C:\PS>remove-module -name BitsTransfer

Descrizione
-----------
Questo comando rimuove il modulo BitsTransfer dalla sessione corrente.

Esempio 2

C:\PS>get-module | remove-module

Descrizione
-----------
Questo comando rimuove tutti i moduli dalla sessione corrente.

Esempio 3

C:\PS>"FileTransfer", "PSDiagnostics" | remove-module -verbose

VERBOSE: Performing operation "Remove-Module" on Target "filetransfer (Path: 'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\f
iletransfer\filetransfer.psd1')".
VERBOSE: Performing operation "Remove-Module" on Target "Microsoft.BackgroundIntelligentTransfer.Management (Path: 'C:\Windows\
assembly\GAC_MSIL\Microsoft.BackgroundIntelligentTransfer.Management\1.0.0.0__31bf3856ad364e35\Microsoft.BackgroundIntelligentTransfe
r.Management.dll')".
VERBOSE: Performing operation "Remove-Module" on Target "psdiagnostics (Path: 'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
psdiagnostics\psdiagnostics.psd1')".
VERBOSE: Removing imported function 'Start-Trace'.
VERBOSE: Removing imported function 'Stop-Trace'.
VERBOSE: Removing imported function 'Enable-WSManTrace'.
VERBOSE: Removing imported function 'Disable-WSManTrace'.
VERBOSE: Removing imported function 'Enable-PSWSManCombinedTrace'.
VERBOSE: Removing imported function 'Disable-PSWSManCombinedTrace'.
VERBOSE: Removing imported function 'Set-LogProperties'.
VERBOSE: Removing imported function 'Get-LogProperties'.
VERBOSE: Removing imported function 'Enable-PSTrace'.
VERBOSE: Removing imported function 'Disable-PSTrace'.
VERBOSE: Performing operation "Remove-Module" on Target "PSDiagnostics (Path: 'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
psdiagnostics\PSDiagnostics.psm1')".

Descrizione
-----------
Questo comando rimuove i moduli FileTransfer e PSDiagnostics dalla sessione corrente.

Nel comando viene utilizzato un operatore pipeline (|) per inviare i nomi dei moduli a Remove-Module. Viene utilizzato il parametro comune Verbose per ottenere informazioni dettagliate sui membri rimossi.

Nei messaggi Verbose vengono indicati gli elementi rimossi. I messaggi differiscono perché il modulo BitsTransfer include un assembly che implementa i cmdlet e un modulo nidificato con il relativo assembly. Il modulo PSDiagnostics include un file script del modulo (.psm1) che esporta funzioni.

Esempio 4

C:\PS>$a = get-module BitsTransfer

C:\PS> remove-module -moduleInfo $a

Descrizione
-----------
Questo comando utilizza il parametro ModuleInfo per rimuovere il modulo BitsTransfer.

Vedere anche

  • Get-Module
  • Import-Module
  • about_Modules


Remove-PSBreakpoint

Elimina i punti di interruzione dalla console corrente.

Sintassi

Remove-PSBreakpoint [-Id] <Int32[]> [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-PSBreakpoint [-Breakpoint] <Breakpoint[]> [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Remove-PSBreakpoint elimina un punto di interruzione. Immettere un oggetto punto di interruzione o l'ID di un punto di interruzione.

Quando si rimuove un punto di interruzione, l'oggetto punto di interruzione non sarà più disponibile né funzionale. Se un oggetto punto di interruzione è stato salvato in una variabile, il riferimento esisterà ancora, ma il punto di interruzione non funzionerà.

Remove-PSBreakpoint è uno dei diversi cmdlet progettati per il debug degli script di Windows PowerShell. Per ulteriori informazioni sul debugger di Windows PowerShell, vedere about_Debuggers.

Parametri

-Breakpoint <Breakpoint[]>

Specifica i punti di interruzione da eliminare. Immettere una variabile che contiene oggetti punto di interruzione o un comando che consente di ottenere oggetti punto di interruzione, ad esempio Get-PSBreakpoint. È inoltre possibile reindirizzare gli oggetti punto di interruzione a Remove-PSBreakpoint.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Id <Int32[]>

Elimina i punti di interruzione con gli ID specificati.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.Breakpoint È inoltre possibile reindirizzare oggetti punto di interruzione a Remove-PSBreakpoint.
Output | Nessuno Il cmdlet non genera alcun output.

Esempio 1

C:\PS>get-breakpoint | remove-breakpoint

Descrizione
-----------
Questo comando elimina tutti i punti di interruzione nella console corrente.

Esempio 2

C:\PS>$b = set-psbreakpoint -script sample.ps1 -variable Name

C:\PS> $b | remove-psbreakpoint

Descrizione
-----------
Questo comando elimina un punto di interruzione.

Nel primo comando viene utilizzato il cmdlet Set-PSBreakpoint per creare un punto di interruzione nella variabile Name dello script Sample.ps1. L'oggetto punto di interruzione viene quindi salvato nella variabile $b.

Nel secondo comando viene utilizzato il cmdlet Remove-PSBreakpoint per eliminare il nuovo punto di interruzione. Viene utilizzato un operatore pipeline (|) per inviare l'oggetto punto di interruzione nella variabile $b al cmdlet Remove-PSBreakpoint.

Il risultato di questo comando è il fatto che, se si esegue lo script, l'esecuzione prosegue fino al completamento senza arrestarsi. Inoltre, il cmdlet Get-PSBreakpoint non restituisce questo punto di interruzione.

Esempio 3

C:\PS>remove-psbreakpoint -id 2

Descrizione
-----------
Questo comando elimina il punto di interruzione con ID 2.

Esempio 4

C:\PS>function del-psb { get-psbreakpoint | remove-psbreakpoint }

Descrizione
-----------
Questa semplice funzione elimina tutti i punti di interruzione nella console corrente. Viene utilizzato il cmdlet Get-PSBreakpoint per ottenere i punti di interruzione. Viene quindi utilizzato un operatore pipeline (|) per inviare i punti di interruzione al cmdlet Remove-PSBreakpoint che li eliminerà.

È pertanto possibile digitare "psb-del" anziché il comando più lungo.

Per salvare la funzione, aggiungerla al profilo di Windows PowerShell.

Vedere anche

  • about_Debuggers
  • Set-PSBreakpoint
  • Get-PSBreakpoint
  • Enable-PSBreakpoint
  • Disable-PSBreakpoint
  • Get-PSCallStack


Remove-PSDrive

Rimuove un'unità di Windows PowerShell dal relativo percorso.

Sintassi

Remove-PSDrive [-LiteralName] <string[]> [-Force] [-PSProvider <string[]>] [-Scope <string>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Remove-PSDrive [-Name] <string[]> [-Force] [-PSProvider <string[]>] [-Scope <string>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Remove-PSDrive elimina le unità di Windows PowerShell create tramite New-PSDrive.

Con Remove-PSDrive non è possibile eliminare le unità di Windows o le unità di rete mappate create utilizzando altri metodi; non è inoltre possibile eliminare l'unità di lavoro corrente.

Parametri

-Force

Consente al cmdlet di rimuovere l'unità di Windows PowerShell corrente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralName <string[]>

Specifica il nome dell'unità di Windows PowerShell.

Il valore di LiteralName viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il nome include caratteri di escape, è necessario racchiuderlo tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Name <string[]>

Specifica i nomi delle unità di Windows PowerShell da rimuovere. Non digitare i due punti (:) dopo il nome dell'unità.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PSProvider <string[]>

Rimuove tutte le unità di Windows PowerShell associate al provider di Windows PowerShell specificato.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Scope <string>

Accetta un indice che identifica l'ambito dal quale viene rimossa l'unità.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSDriveInfo È possibile reindirizzare un oggetto unità a Remove-PSDrive.
Output | Nessuno Questo cmdlet non restituisce alcun output.

Note

Il cmdlet Remove-PSDrive è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>remove-psdrive -name smp

Descrizione
-----------
Con questo comando viene rimossa un'unità di Windows PowerShell denominata "smp".

Vedere anche

  • about_Providers
  • Get-PSDrive
  • New-PSDrive


Remove-PSSession

Chiude una o più sessioni di Windows PowerShell (PSSession).

Sintassi

Remove-PSSession [[-ComputerName] <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-PSSession [-Id] <Int32[]> [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-PSSession [-InstanceId <Guid[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-PSSession [-Name <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-PSSession [-Session] <PSSession[]> [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Remove-PSSession chiude le sessioni di Windows PowerShell (PSSession) nella sessione corrente. Arresta qualsiasi comando in esecuzione nelle sessioni PSSession, termina la sessione PSSession e rilascia le risorse utilizzate da quest'ultima. Se la sessione PSSession è connessa a un computer remoto, Remove-PSSession chiude anche la connessione tra i computer locali e remoti.

Per rimuovere una sessione PSSession, immettere Name, ComputerName, ID o InstanceID della sessione.

Se la sessione PSSession è stata salvata in una variabile, l'oggetto sessione rimane nella variabile, ma lo stato della sessione PSSession è "Closed".

Parametri

-ComputerName <string[]>

Chiude le sessioni PSSession connesse ai computer specificati. È consentito l'utilizzo di caratteri jolly.

Digitare il nome NetBIOS, un indirizzo IP o un nome di dominio completo di uno o più computer remoti. Per specificare il computer locale, digitare il nome del computer, "localhost" o un punto (.).

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | true

-Id <Int32[]>

Chiude le sessioni PSSession con gli ID specificati. Digitare uno o più ID (separati da virgole) o utilizzare l'operatore intervallo (..) per specificare un intervallo di ID

Un ID è un valore intero che identifica in modo univoco la sessione PSSession nella sessione corrente. È più facile da ricordare e digitare rispetto all'ID istanza, ma è univoco solo nella sessione corrente. Per trovare l'ID di una sessione PSSession, utilizzare Get-PSSession senza parametri.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-InstanceId <Guid[]>

Chiude le sessioni PSSession con gli ID istanza specificati.

L'ID istanza è un GUID che identifica in modo univoco una sessione PSSession nella sessione corrente. InstanceID è univoco, anche quando si dispone di più sessioni in esecuzione in un unico computer.

InstanceID viene archiviato nella proprietà InstanceID dell'oggetto che rappresenta una sessione PSSession. Per trovare l'ID istanza delle sessioni PSSession nella sessione corrente, digitare "Get-PSSession | Format-Table Name, ComputerName, InstanceId".

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Name <string[]>

Chiude le sessioni PSSession con i nomi descrittivi specificati. È consentito l'utilizzo di caratteri jolly.

Poiché il nome descrittivo di una sessione PSSession potrebbe non essere univoco, quando si utilizza il parametro Name si consideri anche l'utilizzo del parametro WhatIf o Confirm nel comando Remove-PSSession.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | true

-Session <PSSession[]>

Specifica gli oggetti sessione delle sessioni PSSession da chiudere. Immettere una variabile che contiene le sessioni PSSession o un comando che consente di creare o ottenere tali sessioni, ad esempio New-PSSession o Get-PSSession. È inoltre possibile reindirizzare uno o più oggetti sessione a Remove-PSSession.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.Runspaces.PSSession È possibile reindirizzare un oggetto sessione a Remove-PSSession.
Output | Nessuno Remove-PSSession non restituisce alcun oggetto.

Note

Il parametro ID è obbligatorio. Non è possibile digitare "remove-pssession" senza parametri. Per eliminare tutte le sessioni PSSession nella sessione corrente, digitare "Get-PSSession | remove-pssession".

Una sessione PSSession utilizza una connessione permanente a un computer remoto. Creare una sessione PSSession per eseguire una serie di comandi che condividono dati. Per ulteriori informazioni, vedere about_PSSessions.

Le sessioni PSSession sono specifiche della sessione corrente. Quando si termina una sessione, le sessioni PSSession create al suo interno vengono chiuse forzatamente.

Esempio 1

C:\PS>remove-pssession -id 1, 2

Descrizione
-----------
Questo comando rimuove le sessioni PSSession con ID 1 e 2.

Esempio 2

C:\PS>get-pssession | remove-pssession

C:\PS> remove-pssession -session (get-pssession)

C:\PS> $s = get-pssession
C:\PS> remove-pssession -session $s".

Descrizione
-----------
Questi comandi rimuovono tutte le sessioni PSSession nella sessione corrente. Anche se i tre formati di comando appaiono diversi, hanno lo stesso effetto.

Esempio 3

C:\PS>$r = get-pssession -computername Serv*

$r | remove-pssession

Descrizione
-----------
Questi comandi chiudono le sessioni PSSession connesse a computer i cui nomi iniziano con "Serv".

Esempio 4

C:\PS>get-pssession | where {$_.port -eq 90} | remove-pssession

Descrizione
-----------
Questo comando chiude le sessioni PSSession connesse alla porta 90. È possibile utilizzare questo formato di comando per identificare le sessioni PSSession in base a proprietà diverse da ComputerName, Nome, InstanceID e ID.

Esempio 5

C:\PS>get-pssession | ft computername, instanceID  -auto

ComputerName InstanceId
------------ ----------------
Server01     875d231b-2788-4f36-9f67-2e50d63bb82a
localhost    c065ffa0-02c4-406e-84a3-dacb0d677868
Server02     4699cdbc-61d5-4e0d-b916-84f82ebede1f
Server03     4e5a3245-4c63-43e4-88d0-a7798bfc2414
TX-TEST-01   fc4e9dfa-f246-452d-9fa3-1adbdd64ae85

C:\PS> remove-pssession -InstanceID fc4e9dfa-f246-452d-9fa3-1adbdd64ae85

Descrizione
-----------
In questi comandi viene illustrato come chiudere una sessione PSSession in base al relativo ID istanza (RemoteRunspaceID).

Il primo comando utilizza il cmdlet Get-PSsession per ottenere le sessioni PSSession della sessione corrente. Viene utilizzato un operatore pipeline (|) per inviare le sessioni PSSession al cmdlet Format-Table (alias: ft) che consente di formattare le proprietà ComputerName e InstanceID in una tabella. Il parametro AutoSize ("auto") comprime le colonne per la visualizzazione.

Dalla visualizzazione risultante, l'amministratore può identificare la sessione PSSession da chiudere e copiare e incollare il parametro InstanceID di tale sessione nel secondo comando.

Il secondo comando utilizza il cmdlet Remove-PSSession per rimuovere la sessione PSSession con l'ID istanza specificato.

Esempio 6

C:\PS>function EndPSS { get-pssession | remove-pssession }

Descrizione
-----------
Questa funzione elimina tutte le sessioni PSSession nella sessione corrente. Dopo aver aggiunto questa funzione al profilo di Windows Powershell, per eliminare tutte le sessioni sarà sufficiente digitare "endpss".

Vedere anche

  • about_PSSessions
  • about_Remote
  • New-PSSession
  • Get-PSSession
  • Enter-PSSession
  • Exit-PSSession
  • Invoke-Command


Remove-PSSnapin

Rimuove gli snap-in di Windows PowerShell dalla sessione corrente.

Sintassi

Remove-PSSnapin [-Name] <string[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Remove-PSSnapin rimuove uno snap-in di Windows PowerShell dalla sessione corrente. È possibile utilizzare questo comando per rimuovere gli snap-in aggiunti a Windows PowerShell, ma non quelli installati con Windows PowerShell.

In seguito alla rimozione dalla sessione corrente, lo snap-in verrà comunque caricato, ma i cmdlet e i provider presenti in esso non saranno più disponibili nella sessione.

Parametri

-Name <string[]>

Specifica i nomi degli snap-in di Windows PowerShell da rimuovere dalla sessione corrente. Il nome del parametro ("Name") è facoltativo e i caratteri jolly (*) sono consentiti nel valore.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | true

-PassThru

Restituisce un oggetto che rappresenta lo snap-in. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSSnapInInfo È possibile reindirizzare un oggetto snap-in a Remove-PSSnapin.
Output | Nessuno o System.Management.Automation.PSSnapInInfo Per impostazione predefinita, Remove-PsSnapin non genera alcun output. Tuttavia, se si utilizza il parametro PassThru, viene generato un oggetto System.Management.Automation.PSSnapInInfo che rappresenta lo snap-in.

Note

È inoltre possibile fare riferimento a Remove-PSSnapin tramite il relativo alias predefinito "rsnp". Per ulteriori informazioni, vedere about_Aliases.

Remove-PSSnapin non verifica la versione di Windows PowerShell prima di rimuovere uno snap-in dalla sessione. Se uno snap-in non può essere rimosso, viene visualizzato un avviso e il comando ha esito negativo.

Remove-PSSnapin influisce solo sulla sessione corrente. Se è stato aggiunto un comando Add-PSSnapin al profilo di Windows PowerShell, è necessario eliminare il comando per rimuovere lo snap-in dalle sessioni future. Per istruzioni, vedere about_Profiles.

Esempio 1

C:\PS>remove-pssnapin -name Microsoft.Exchange

Descrizione
-----------
Con questo comando viene rimosso lo snap-in Microsoft.Exchange dalla sessione corrente. Al completamento del comando, i cmdlet e i provider supportati dallo snap-in non saranno più disponibili nella sessione.

Esempio 2

C:\PS>get-PSSnapIn smp* | remove-PSSnapIn

Descrizione
-----------
Questo comando rimuove dalla sessione corrente gli snap-in di Windows PowerShell i cui nomi iniziano con "smp".

Nel comando viene utilizzato il cmdlet Get-PSSnapin per ottenere gli oggetti che rappresentano gli snap-in. L'operatore pipeline (|) invia i risultati al cmdlet Remove-PSSnapin, che li rimuove dalla sessione. I provider e i cmdlet supportati dallo snap-in non saranno più disponibili nella sessione.

Quando si reindirizzano oggetti a Remove-PSSnapin, i nomi degli oggetti vengono associati al parametro Name, che accetta dalla pipeline gli oggetti che dispongono di una proprietà Name.

Esempio 3

C:\PS>remove-pssnapin -name *event*

Descrizione
-----------
Questo comando rimuove tutti gli snap-in di Windows PowerShell i cui nomi includono "event". Questo comando specifica il nome del parametro "Name", ma è possibile omettere tale nome in quanto facoltativo.

Vedere anche

  • Add-PSSnapin
  • Get-PSSnapin
  • about_Profiles


Remove-Variable

Elimina una variabile e il relativo valore.

Sintassi

Remove-Variable [-Name] <string[]> [-Exclude <string[]>] [-Force] [-Include <string[]>] [-Scope <string>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Remove-Variable elimina una variabile e il relativo valore dall'ambito in cui è definito, ad esempio la sessione corrente. Non è possibile utilizzare questo cmdlet per eliminare variabili impostate come costanti o di proprietà del sistema.

Parametri

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Name. Immettere un criterio o un elemento del nome, ad esempio "s*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di rimuovere una variabile anche se è di sola lettura. Anche se si utilizza il parametro Force, il cmdlet non può rimuovere una costante.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Elimina unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Name. Immettere un criterio o un elemento del nome, ad esempio "s*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string[]>

Specifica il nome della variabile da rimuovere. Il nome del parametro ("Name") è facoltativo.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Scope <string>

Specifica l'ambito in cui l'alias è considerato valido. I valori validi sono "Global", "Local", "Script" oppure un numero relativo all'ambito corrente, ovvero da 0 al numero di ambiti, dove 0 corrisponde all'ambito corrente e 1 al relativo padre. Il valore predefinito è "Local". Per ulteriori informazioni, vedere about_Scopes.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSVariable È possibile reindirizzare un oggetto variabile a Remove-Variable.
Output | Nessuno Questo cmdlet non restituisce alcun output.

Note

Le modifiche influiscono solo sull'ambito corrente, ad esempio una sessione. Per eliminare una variabile da tutte le sessioni, aggiungere il comando Remove-Variable al profilo di Windows PowerShell.

È inoltre possibile fare riferimento a RemoveVariable tramite il relativo alias predefinito "rv". Per ulteriori informazioni, vedere about_Aliases.

Esempio 1

C:\PS>remove-variable Smp

Descrizione
-----------
Questo comando elimina la variabile $Smp.

Vedere anche

  • Set-Variable
  • Get-Variable
  • Clear-Variable
  • New-Variable
  • about_Profiles


Remove-WmiObject

Elimina un'istanza di una classe di Strumentazione gestione Windows (WMI) esistente.

Sintassi

Remove-WmiObject [-Classe] <string> [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-WmiObject [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-WmiObject -InputObject <ManagementObject> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-WmiObject -Path <string> [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-WmiObject [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-WmiObject [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Remove-WmiObject consente di eliminare una classe WMI esistente.

Parametri

-AsJob

Esegue il comando come processo in background. Utilizzare questo parametro per eseguire comandi il cui completamento richiede molto tempo.

Esegue il comando come processo in background. Utilizzare questo parametro per eseguire comandi il cui completamento richiede molto tempo.

Quando si utilizza il parametro AsJob, il comando restituisce un oggetto che rappresenta il processo in background, quindi visualizza il prompt dei comandi. È possibile continuare a utilizzare la sessione fino al completamento del processo. Se Remove-WmiObject viene utilizzato per un computer remoto, il processo viene creato nel computer locale e i risultati dei computer remoti vengono automaticamente restituiti nel computer locale. Per gestire il processo, utilizzare i cmdlet che contengono il nome Job (cmdlet Job). Per ottenere i risultati del processo, utilizzare il cmdlet Receive-Job.

Nota: per utilizzare questo parametro con computer remoti, è necessario configurare i computer locale e remoto per la comunicazione remota. È inoltre necessario avviare Windows PowerShell utilizzando l'opzione "Esegui come amministratore" di Windows Vista e delle versioni successive di Windows. Per ulteriori informazioni, vedere about_Remote_Requirements.

Per ulteriori informazioni sui processi in background di Windows PowerShell, vedere about_Jobs e about_Remote_Jobs.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Authentication <AuthenticationLevel>

Specifica il livello di autenticazione da utilizzare con la connessione WMI. I valori validi sono:

-1: Unchanged

0: Default

1: None (non viene eseguita alcuna autenticazione).

2: Connect (l'autenticazione viene eseguita solo quando il client stabilisce una relazione con l'applicazione).

3: Call (l'autenticazione viene eseguita solo all'inizio di ogni chiamata quando l'applicazione riceve la richiesta).

4: Packet (l'autenticazione viene eseguita su tutti i dati ricevuti dal client).

5: PacketIntegrity (tutti i dati trasferiti tra il client e l'applicazione vengono autenticati e verificati).

6: PacketPrivacy (vengono utilizzate le proprietà degli altri livelli di autenticazione e tutti i dati vengono crittografati).

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Authority <string>

Specifica l'autorità da utilizzare per autenticare la connessione WMI. È possibile specificare l'autenticazione NTLM o Kerberos standard. Per utilizzare NTLM, impostare l'impostazione authority su "ntlmdomain:<NomeDominio>", dove <NomeDominio> identifica un nome di dominio NTLM valido. Per utilizzare Kerberos, specificare "kerberos:<NomeDominio>\<NomeServer>". Non è possibile includere l'impostazione authority quando ci si connette al computer locale.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Classe <string>

Specifica il nome di una classe WMI che si desidera eliminare.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string[]>

Specifica il computer in cui si desidera eseguire l'operazione di gestione. Il valore può essere un nome di dominio completo, un nome NetBIOS o un indirizzo IP. Utilizzare il nome del computer locale, localhost o un punto (.) per specificare il computer locale. Il valore predefinito è il computer locale. Quando il computer remoto si trova in un dominio diverso da quello dell'utente, è necessario utilizzare un nome di dominio completo. È possibile impostare il valore di questo parametro reindirizzando il valore al parametro.

Questo parametro non si basa sulla comunicazione remota di Windows PowerShell che utilizza WS-Management. È possibile utilizzare il parametro ComputerName di Get-WmiObject anche se il computer non è configurato per l'esecuzione di comandi remoti di WS-Management.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente. Digitare un nome utente, ad esempio "Utente01", "Dominio01\Utente01" o "Utente@Contoso.com". In alternativa, immettere un oggetto PSCredential, ad esempio quello restituito dal cmdlet Get-Credential. Quando si digita un nome utente, viene richiesta una password.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-EnableAllPrivileges

Abilita tutti i privilegi dell'utente corrente prima che il comando effettui la chiamata WMI.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Impersonation <ImpersonationLevel>

Specifica il livello di rappresentazione da utilizzare. I valori validi sono:

0: Default (legge il Registro di sistema locale per il livello di rappresentazione predefinito, in genere impostato su "3: Impersonate").

1: Anonymous (nasconde le credenziali del chiamante).

2: Identify (consente agli oggetti di eseguire query delle credenziali del chiamante).

3: Impersonate (consente agli oggetti di utilizzare le credenziali del chiamante).

4: Delegate (consente agli oggetti di permettere ad altri oggetti di utilizzare le credenziali del chiamante).

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <ManagementObject>

Specifica un oggetto ManagementObject da utilizzare come input. Quando si utilizza questo parametro, tutti gli altri parametri vengono ignorati.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Locale <string>

Specifica le impostazioni locali preferite per gli oggetti WMI. Il parametro Locale viene specificato come matrice nel formato MS_<LCID> nell'ordine preferito.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Spazio dei nomi <string>

Quando viene utilizzato con il parametro Class, questo parametro specifica lo spazio dei nomi dell'archivio WMI in cui si trova la classe a cui si fa riferimento.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string>

Specifica il percorso dell'oggetto WMI di una classe o di un'istanza di una classe WMI da eliminare.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ThrottleLimit <int>

Consente all'utente di specificare un valore di limitazione per il numero di operazioni WMI (Strumentazione gestione Windows) che è possibile eseguire contemporaneamente. Questo parametro viene utilizzato insieme al parametro AsJob. Il limite di velocità si applica solo al comando corrente, non alla sessione o al computer.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.ManagementObject È possibile reindirizzare un oggetto di gestione a Remove-WmiObject.
Output | Nessuno o System.Management.Automation.RemotingJob Quando si utilizza il parametro AsJob, il cmdlet restituisce un oggetto processo. In caso contrario, non genera alcun output.

Esempio 1

C:\PS>notepad
C:\PS> $np = get-wmiobject -query "select * from win32_process where name='notepad.exe'"
C:\PS> $np | remove-wmiobject

Descrizione
-----------
Con questo comando vengono chiuse tutte le istanze di Notepad.exe.

Con il primo comando viene avviata un'istanza del Blocco note.

Con il secondo comando viene utilizzato il cmdlet Get-WmiObject per recuperare le istanze di Win32_Process che corrispondono a Notepad.exe e per archiviarle nella variabile di $np.

Nel terzo comando viene passato l'oggetto della variabile $np al cmdlet Remove-WmiObject, che elimina tutte le istanze di Notepad.exe.

Esempio 2

C:\PS>$a = Get-WMIObject -query "Select * From Win32_Directory Where Name ='C:\\Test'"
C:\PS> $a | Remove-WMIObject

Descrizione
-----------
Con questo comando viene eliminata la directory C:\Test.

Nel primo comando viene utilizzato il cmdlet Get-WMIObject per eseguire una query per la directory C:\Test, quindi viene archiviato l'oggetto nella variabile $a.

Nel secondo comando viene reindirizzata la variabile $a a Remove-WMIObject, che procede all'eliminazione della directory.

Vedere anche

  • Get-WmiObject
  • Invoke-WmiMethod
  • Set-WmiInstance
  • Get-WSManInstance
  • Invoke-WSManAction
  • New-WSManInstance
  • Remove-WSManInstance


Remove-WSManInstance

Elimina un'istanza di risorsa di gestione.

Sintassi

Remove-WSManInstance [-ApplicationName <string>] [-ComputerName <string>] [-Port <int>] [-UseSSL] [[-SelectorSet] <hashtable>] [-AuthenticationMechanism <AuthenticationMechanism>] [-Credential <PSCredential>] [-OptionSet <hashtable>] [-ResourceURI <Uri>] [-SessionOption <hashtable>] [<CommonParameters>]

Remove-WSManInstance [-ConnectionURI <Uri>] [[-SelectorSet] <hashtable>] [-AuthenticationMechanism <AuthenticationMechanism>] [-Credential <PSCredential>] [-OptionSet <hashtable>] [-ResourceURI <Uri>] [-SessionOption <hashtable>] [<CommonParameters>]

Descrizione

Il cmdlet Remove-WSManInstance elimina l'istanza di una risorsa di gestione specificata nei parametri ResourceURI e SelectorSet.

Per eliminare l'istanza della risorsa di gestione, questo cmdlet utilizza il livello di trasporto o la connessione di Gestione remota Windows.

Parametri

-ApplicationName <string>

Specifica il nome dell'applicazione nella connessione. Il valore predefinito del parametro ApplicationName è "WSMAN". L'identificatore completo dell'endpoint remoto ha il formato seguente:

<trasporto>://<server>:<porta>/<NomeApplicazione>

Ad esempio:

http://server01:8080/WSMAN

Tramite Internet Information Services (IIS), che ospita la sessione, le richieste con questo endpoint vengono inoltrate all'applicazione specificata. L'impostazione predefinita "WSMAN" è appropriata per la maggior parte degli utilizzi. Questo parametro è progettato per essere utilizzato quando più computer stabiliscono connessioni remote a un computer in cui è in esecuzione Windows PowerShell. In questo caso, IIS ospita Gestione remota Windows (WS-Management) per motivi di efficienza.

Obbligatorio? | false
Posizione? | named
Valore predefinito | wsman
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-AuthenticationMechanism <AuthenticationMechanism>

Specifica il meccanismo di autenticazione da utilizzare nel server. I valori possibili sono:

- Basic: Basic è uno schema in cui il nome utente e la password vengono inviati come testo non crittografato al server o al proxy.

- Default: utilizzare il metodo di autenticazione implementato dal protocollo WS-Management. Si tratta dell'impostazione predefinita.

- Digest: Digest è uno schema basato su una richiesta di verifica e relativa risposta che utilizza una stringa di dati specificata dal server per la richiesta di verifica.

- Kerberos: il server e il computer client si autenticano reciprocamente utilizzando certificati Kerberos.

- Negotiate: Negotiate è uno schema basato su una richiesta di verifica e relativa risposta che negozia con il server o il proxy per determinare lo schema da utilizzare per l'autenticazione. Ad esempio, questo valore di parametro consente la negoziazione per determinare se viene utilizzato il protocollo Kerberos o NTLM.

- CredSSP: utilizzare l'autenticazione CredSSP (Credential Security Service Provider) che consente all'utente di delegare le credenziali. Questa opzione è destinata ai comandi che vengono eseguiti in un computer remoto, ma raccolgono dati o eseguono ulteriori comandi in altri computer remoti.

Attenzione: CredSSP (Credential Security Service Provider) delega le credenziali dell'utente dal computer locale a un computer remoto. Questa procedura aumenta il rischio per la sicurezza dell'operazione remota. Se il computer remoto è compromesso, quando le credenziali vengono passate a tale computer è possibile utilizzarle per controllare la sessione di rete.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string>

Specifica il computer in cui si desidera eseguire l'operazione di gestione. Il valore può essere un nome di dominio completo, un nome NetBIOS o un indirizzo IP. Utilizzare il nome del computer locale, localhost o un punto (.) per specificare il computer locale. Il valore predefinito è il computer locale. Quando il computer remoto si trova in un dominio diverso da quello dell'utente, è necessario utilizzare un nome di dominio completo. È possibile reindirizzare un valore per questo parametro al cmdlet.

Obbligatorio? | false
Posizione? | named
Valore predefinito | localhost
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ConnectionURI <Uri>

Specifica l'endpoint di connessione. Il formato di questa stringa è:

<Trasporto>://<Server>:<Porta>/<NomeApplicazione>.

La seguente stringa rappresenta un valore formattato correttamente per questo parametro:

http://Server01:8080/WSMAN

L'URI deve essere completo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente. Digitare un nome utente, ad esempio "User01", "Domain01\User01" o "User@Domain.com". In alternativa, immettere un oggetto PSCredential, ad esempio quello restituito dal cmdlet Get-Credential. Quando si digita un nome utente, viene richiesta una password.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-OptionSet <hashtable>

Passa un set di opzioni a un servizio per modificare o perfezionare la natura della richiesta. Si tratta di opzioni simili a quelle utilizzate nelle shell della riga di comando perché specifiche del servizio. È possibile specificare qualsiasi numero di opzioni.

Nell'esempio seguente viene illustrata la sintassi che passa i valori 1, 2 e 3 per i parametri a, b e c:

-OptionSet @{a=1;b=2;c=3}

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Port <int>

Specifica la porta da utilizzare per la connessione del client al servizio Gestione remota Windows. Quando il trasporto è HTTP, la porta predefinita è 80. Quando il trasporto è HTTPS, la porta predefinita è 443. Quando si utilizza HTTPS come trasporto, il valore del parametro ComputerName deve corrispondere al nome comune del certificato del server. Tuttavia, se il parametro SkipCNCheck viene specificato come parte del parametro SessionOption, il nome comune del certificato del server non deve corrispondere al nome host del server. Il parametro SkipCNCheck deve essere utilizzato solo per computer attendibili.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ResourceURI <Uri>

Contiene l'URI (Uniform Resource Identifier) dell'istanza o della classe di risorse. L'URI viene utilizzato per identificare un tipo specifico di risorsa, ad esempio dischi o processi, in un computer.

Un URI è composto da un prefisso e da un percorso a una risorsa. Ad esempio:

http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk

http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_NumericSensor

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SelectorSet <hashtable>

Specifica un set di coppie di valori utilizzate per selezionare particolari istanze di risorse di gestione. Il parametro SelectorSet viene utilizzato quando esiste più di un'istanza della risorsa. Il valore del parametro SelectorSet deve essere una tabella hash.

Nell'esempio seguente viene illustrato come immettere un valore per questo parametro.

-SelectorSet @{Name="WinRM";ID="yyy"}

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-SessionOption <hashtable>

Definisce un set di opzioni estese per la sessione WS-Management. Immettere un oggetto SessionOption creato utilizzando il cmdlet New-WSManSessionOption. Per ulteriori informazioni sulle opzioni disponibili, vedere New-WSManSessionOption.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseSSL

Specifica che deve essere utilizzato il protocollo SSL (Secure Sockets Layer) per stabilire una connessione al computer remoto. Per impostazione predefinita SSL non viene utilizzato.

In WS-Management viene crittografato tutto il contenuto di Windows PowerShell trasmesso in rete. Il parametro UseSSL consente di specificare la protezione aggiuntiva derivante dall'utilizzo di HTTPS anziché HTTP. Se si specifica questo parametro ma SSL non è disponibile sulla porta utilizzata per la connessione, il comando ha esito negativo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Questo cmdlet non accetta alcun input.
Output | Nessuno Questo cmdlet non genera alcun output.

Note

Il cmdlet di Strumentazione gestione Windows (WMI) Remove-WmiObject è simile. Remove-WmiObject utilizza il livello di trasporto o la connessione DCOM per creare o aggiornare le istanze WMI.

Esempio 1

C:\PS>Remove-WSManInstance winrm/config/Listener -SelectorSet Address=test.fabrikam.com;Transport=http

Descrizione
-----------
Elimina il listener HTTP di WS-Management in un computer.

Vedere anche

  • Connect-WSMan
  • Disable-WSManCredSSP
  • Disconnect-WSMan
  • Enable-WSManCredSSP
  • Get-WSManCredSSP
  • Get-WSManInstance
  • Invoke-WSManAction
  • New-WSManInstance
  • New-WSManSessionOption
  • Set-WSManInstance
  • Set-WSManQuickConfig
  • Test-WSMan
  • Remove-WmiObject


Rename-Item

Rinomina un elemento in uno spazio dei nomi di provider di Windows PowerShell.

Sintassi

Rename-Item [-Path] <string> [-NewName] <string> [-Credential <PSCredential>] [-Force] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Con il cmdlet Rename-Item viene modificato il nome di un elemento specificato. Questo cmdlet non ha effetto sul contenuto dell'elemento da rinominare.

Non è possibile utilizzare Rename-Item per spostare un elemento, ad esempio specificando un percorso con il nuovo nome. Per spostare e rinominare un elemento, utilizzare il cmdlet Move-Item.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di rinominare elementi che non possono essere modificati in altro modo, ad esempio file nascosti o di sola lettura, alias di sola lettura o variabili. Il cmdlet non può cambiare gli alias o le variabile costanti. L'implementazione varia a seconda del provider. Per ulteriori informazioni, vedere about_Providers. Quando si utilizza il parametro Force, il cmdlet non può ignorare le limitazioni di sicurezza.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-NewName <string>

Specifica il nuovo nome dell'elemento. Immettere solo un nome, non un percorso e un nome. Se si immette un percorso diverso da quello specificato nel parametro Path, Rename-Item genera un errore. Per rinominare e spostare un elemento, utilizzare il cmdlet Move-Item.

Non è possibile utilizzare i caratteri jolly nel valore di NewName. Per specificare un nome per più file, utilizzare l'operatore Replace in un'espressione regolare. Per ulteriori informazioni sull'operatore Replace, digitare "Get-Help about_Comparison_Operators". Per una dimostrazione, vedere gli esempi.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Passa un oggetto che rappresenta l'elemento alla pipeline. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string>

Specifica il percorso dell'elemento da rinominare.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso a Rename-Item.
Output | Nessuno o un oggetto che rappresenta l'elemento rinominato. Quando si utilizza il parametro Passthru, con Rename-Item viene generato un oggetto che rappresenta l'elemento rinominato. Negli altri casi, il cmdlet non genera alcun output.

Note

Il cmdlet Rename-Item è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PsProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>rename-item -path c:\logfiles\daily_file.txt -newname monday_file.txt

Descrizione
-----------
Con questo comando il file daily_file.txt viene rinominato in monday_file.txt.

Esempio 2

C:\PS>rename-item -path project.txt -newname d:\archive\old-project.txt

Rename-Item : Cannot rename because the target specified represents a path or device name.
At line:1 char:12
+ rename-item <<<<  -path project.txt -newname d:\archive\old-project.txt
    + CategoryInfo          : InvalidArgument: (:) [Rename-Item], PSArgumentException
    + FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.RenameItemCommand

C:\PS> move-item -path project.txt -destination d:\archive\old-project.txt
# Command succeeds

Descrizione
-----------
In questo esempio viene illustrato che non è possibile utilizzare il cmdlet Rename-Item sia per rinominare sia per spostare un elemento. In particolare, non è possibile fornire un percorso per il valore del parametro NewName, a meno che il percorso non sia identico a quello specificato nel parametro Path. In caso contrario, è consentito solo un nuovo nome.

Con il primo comando viene utilizzato il cmdlet Rename-Item per rinominare il file project.txt nella directory corrente in old-project.txt nella directory D:\Archive. Il risultato è l'errore visualizzato nell'output.

Con il secondo comando viene illustrata la modalità corretta per spostare e rinominare un file mediante il cmdlet Move-Item. Il cmdlet Move-Item consente di specificare sia un nuovo percorso sia un nuovo nome nel valore del parametro Destination.

Esempio 3

C:\PS>rename-item HKLM:\Software\MyCompany\Advertising -NewName Marketing

Descrizione
-----------
In questo comando viene utilizzato il cmdlet Rename-Item per rinominare una chiave del Registro di sistema da Advertising a Marketing. Al completamento del comando, la chiave viene rinominata, ma le voci del Registro di sistema nella chiave rimangono invariate.

Esempio 4

C:\PS>get-childItem *.txt | rename-item -newname { $_.name -replace '\.txt','.log' }

Descrizione
-----------
In questo esempio viene illustrato come utilizzare l'operatore Replace per rinominare più file, anche se il parametro NewName non accetta caratteri jolly.

Con questo comando tutti i file con estensione txt nella directory corrente verranno rinominati in log.

Viene utilizzato il cmdlet Get-ChildItem per ottenere tutti i file nella directory corrente con estensione txt. Quindi, viene utilizzato l'operatore pipeline (|) per inviare i file risultanti al cmdlet Rename-Item.

Nel comando Rename-Item, il valore del parametro NewName è un blocco di script eseguito prima dell'invio del valore al parametro NewName.

Nel blocco di script, la variabile automatica $_ rappresenta ogni oggetto file inviato al comando tramite la pipeline. Nel comando viene utilizzato il formato del punto (.) per ottenere la proprietà Name di ogni oggetto file. L'operatore Replace sostituisce l'estensione del nome file ".txt" di ogni file con ".log".

Poiché l'operatore Replace funziona con le espressioni regolari, il punto che precede "txt" viene interpretato come una corrispondenza a qualsiasi carattere. Per assicurarsi che corrisponda unicamente a un punto (.), viene utilizzato il carattere di escape della barra rovesciata (\). Il carattere barra rovesciata non è richiesto in ".log" perché è una stringa e non un'espressione regolare.

Vedere anche

  • about_Providers
  • Clear-Item
  • Invoke-Item
  • Move-Item
  • Rename-ItemProperty
  • Set-Item
  • New-Item
  • Remove-Item
  • Get-Item
  • Copy-Item


Rename-ItemProperty

Rinomina una proprietà di un elemento.

Sintassi

Rename-ItemProperty [-LiteralPath] <string> [-Name] <string> [-NewName] <string> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Rename-ItemProperty [-Path] <string> [-Name] <string> [-NewName] <string> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Con il cmdlet Rename-ItemProperty viene modificato il nome di una proprietà dell'elemento specificato. Il valore della proprietà non viene modificato. Ad esempio, è possibile utilizzare Rename-ItemProperty per modificare il nome di una voce del Registro di sistema.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di rinominare una proprietà di un oggetto altrimenti inaccessibile dall'utente. L'implementazione varia a seconda del provider. Per ulteriori informazioni, vedere about_Providers.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Specifica solo gli elementi sui quali il cmdlet può eseguire operazioni, escludendo tutti gli altri.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralPath <string>

Specifica un percorso della proprietà dell'elemento. Il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Name <string>

Specifica il nome corrente della proprietà da rinominare.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-NewName <string>

Specifica il nuovo nome della proprietà.

Obbligatorio? | true
Posizione? | 3
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta la proprietà dell'elemento. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string>

Specifica il percorso dell'elemento da rinominare.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso (ma non un percorso letterale) a Rename-ItemProperty.
Output | Nessuno o System.Management.Automation.PSCustomObject Quando si utilizza il parametro PassThru, Rename-ItemProperty genera un oggetto PSCustomObject che rappresenta la proprietà dell'elemento rinominato. Negli altri casi, il cmdlet non genera alcun output.

Note

Il cmdlet Remove-ItemProperty è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>rename-itemproperty -path HKLM:\Software\SmpApplication -name config -newname oldconfig

Descrizione
-----------
Con questo comando la voce config del Registro di sistema contenuta nella chiave HKEY_LOCAL_MACHINE\Software\SmpApplication viene rinominata in oldconfig.

Vedere anche

  • about_Providers
  • Rename-Item
  • Clear-ItemProperty
  • Copy-ItemProperty
  • Get-ItemProperty
  • Move-ItemProperty
  • New-ItemProperty
  • Remove-ItemProperty
  • Set-ItemProperty


Reset-ComputerMachinePassword

Reimposta la password dell'account del computer.

Sintassi

Reset-ComputerMachinePassword [-Server <string>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Reset-ComputerMachinePassword modifica la password dell'account del computer utilizzata per l'autenticazione nei controller del dominio. È possibile utilizzarlo per reimpostare la password del computer locale.

Parametri

-Server <string>

Specifica il nome di un controller di dominio da utilizzare per l'impostazione della password dell'account del computer.

Questo parametro è facoltativo. Se viene omesso, un controller di dominio viene scelto per eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Nessuno Questo cmdlet non genera alcun output.

Esempio 1

C:\PS>Reset-ComputerMachinePassword

Descrizione
-----------
Con questo comando viene reimpostata la password per il computer locale. Il comando viene eseguito con le credenziali dell'utente corrente.

Esempio 2

C:\PS>Reset-ComputerMachinePassword -server DC01

Descrizione
-----------
Con questo comando viene reimpostata la password del computer locale utilizzando il controller di dominio DC01.

Esempio 3

C:\PS>invoke-command -computername Server01 -scriptblock {reset-computermachinepassword}

Descrizione
-----------
In questo comando viene utilizzato il cmdlet Invoke-Command per eseguire un comando Reset-ComputerMachinePassword nel computer remoto Server01.

Per ulteriori informazioni sui comandi remoti in Windows PowerShell, vedere about_Remote e Invoke-Command.


Resolve-Path

Risolve i caratteri jolly in un percorso e ne visualizza il contenuto.

Sintassi

Resolve-Path [-LiteralPath] <string[]> [-Credential <PSCredential>] [-Relative] [-UseTransaction] [<CommonParameters>]

Resolve-Path [-Path] <string[]> [-Credential <PSCredential>] [-Relative] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Resolve-Path interpreta i caratteri jolly in un percorso e visualizza gli elementi e i contenitori nella posizione specificata dal percorso, ad esempio file e cartelle oppure chiavi e sottochiavi del Registro di sistema.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01". In alternativa, immettere un oggetto PSCredential, ad esempio quello generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica il percorso da risolvere. Il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso di Windows PowerShell da risolvere. Questo parametro è obbligatorio. È inoltre possibile reindirizzare una stringa di percorso a Resolve-Path.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Relative

Restituisce un percorso relativo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso a Resolve-Path.
Output | System.String Resolve-Path restituisce una stringa che contiene il percorso risolto.

Note

I cmdlet che contengono il sostantivo Path (cmdlet Path) modificano i nomi dei percorsi e restituiscono i nomi in un formato conciso che può essere interpretato da tutti i provider di Windows PowerShell. Sono progettati per essere utilizzati in programmi e script in cui si intende visualizzare un nome di percorso, completo o parziale, in un determinato formato. Utilizzare questi cmdlet in modo analogo a Dirname, Normpath, Realpath, Join o altri modificatori di percorso.

È possibile utilizzare i cmdlet Path con diversi provider, inclusi FileSystem, Registry e Certificate.

Il cmdlet Resolve-Path è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>resolve-path ~

C:\Users\User01

Descrizione
-----------
Con questo comando è possibile risolvere il percorso rappresentato dal carattere tilde (~) che indica il percorso della home directory.

Esempio 2

C:\PS>resolve-path windows

C:\Windows

Descrizione
-----------
Quando viene eseguito dalla radice dell'unità C:, questo comando restituisce il percorso alla directory Windows nell'unità C:.

Esempio 3

C:\PS>"C:\windows\*" | resolve-path

Descrizione
-----------
Questo comando restituisce tutte le directory nella directory C:\Windows. Nel comando viene utilizzato un operatore (|) pipeline per inviare una stringa di percorso a Resolve-Path.

Esempio 4

C:\PS>resolve-path \\Server01\public

Descrizione
-----------
In questo comando viene risolto un percorso UNC (Universal Naming Convention) e vengono restituite le condivisioni del percorso.

Esempio 5

C:\PS>resolve-path c:\prog* -relative

..\Program Files
..\Program Files (x86)
..\programs.txt

Descrizione
-----------
Questo comando restituisce percorsi relativi per le directory nella radice dell'unità C:.

Esempio 6

C:\PS>resolve-path -literalPath test[xml]

Descrizione
-----------
In questo comando viene risolto il percorso alla sottodirectory Test[xml] della directory corrente. Viene utilizzato il parametro LiteralPath per indicare che le parentesi non sono caratteri per espressioni regolari.

Vedere anche

  • about_Providers
  • Test-Path
  • Split-Path
  • Convert-Path
  • Join-Path


Restart-Computer

Riavvia il sistema operativo nei computer locali e remoti.

Sintassi

Restart-Computer [[-ComputerName] <string[]>] [[-Credential] <PSCredential>] [-AsJob] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Force] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Restart-Computer riavvia il sistema operativo nei computer locali e remoti.

È possibile utilizzare i parametri di Restart-Computer per eseguire le operazioni di riavvio come processo in background, per specificare i livelli di autenticazione e le credenziali alternative, per limitare le operazioni eseguite contemporaneamente e per forzare un riavvio immediato.

Per questo cmdlet non è richiesta la comunicazione remota di Windows PowerShell a meno che non si utilizzi il parametro AsJob.

Parametri

-AsJob

Esegue il comando come processo in background.

Nota: per utilizzare questo parametro, è necessario che il computer locale e quello remoto siano configurati per la comunicazione remota e, in Windows Vista e nelle versioni successive di Windows, è necessario aprire Windows PowerShell con l'opzione "Esegui come amministratore". Per ulteriori informazioni, vedere about_Remote_Requirements.

Quando si utilizza il parametro AsJob, il comando restituisce immediatamente un oggetto che rappresenta il processo in background. È possibile continuare a utilizzare la sessione durante il completamento del processo. Il processo viene creato nel computer locale e i risultati dei computer remoti vengono automaticamente restituiti nel computer locale. Per gestire il processo, utilizzare i cmdlet Job. Per ottenere i risultati del processo, utilizzare il cmdlet Receive-Job.

Per ulteriori informazioni sui processi in background di Windows PowerShell, vedere about_Jobs e about_Remote_Jobs.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Authentication <AuthenticationLevel>

Specifica il livello di autenticazione utilizzato per la connessione WMI. Restart-Computer utilizza WMI. Il valore predefinito è Packet.

I valori validi sono:

Unchanged: il livello di autenticazione è lo stesso del comando precedente.

Default: autenticazione Windows

None: nessuna autenticazione COM

Connect: autenticazione COM a livello di connessione

Call: autenticazione COM a livello di chiamata

Packet: autenticazione COM a livello di pacchetto

PacketIntegrity: autenticazione COM a livello di integrità del pacchetto

PacketPrivacy: autenticazione COM a livello di privacy del pacchetto

Obbligatorio? | false
Posizione? | named
Valore predefinito | 4
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string[]>

Specifica uno o più computer remoti. Il valore predefinito è il computer locale.

Digitare il nome NETBIOS, un indirizzo IP o un nome di dominio completo di un computer remoto. Per specificare il computer locale, digitare il nome del computer, un punto (.) o "localhost".

Questo parametro non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName anche se il computer non è configurato per l'esecuzione di comandi remoti.

Obbligatorio? | false
Posizione? | 1
Valore predefinito | .
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno ottenuto dal cmdlet Get-Credential.

Obbligatorio? | false
Posizione? | 2
Valore predefinito | Current user
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Forza un riavvio immediato dei computer.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Impersonation <ImpersonationLevel>

Specifica il livello di rappresentazione da utilizzare per le chiamate WMI. Restart-Computer utilizza WMI. Il valore predefinito è "Impersonate".

I valori validi sono:

Default: rappresentazione predefinita.

Anonymous: nasconde l'identità del chiamante.

Identify: consente agli oggetti di eseguire query delle credenziali del chiamante.

Impersonate: consente agli oggetti di utilizzare le credenziali del chiamante.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Impersonate
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ThrottleLimit <int>

Specifica il numero massimo di connessioni simultanee che è possibile stabilire per eseguire questo comando. Se si omette questo parametro o si immette un valore pari a 0, viene utilizzato il valore predefinito 32.

Il limite di velocità si applica solo al comando corrente, non alla sessione o al computer.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 32
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Nessuno o System.Management.Automation.RemotingJob Quando si utilizza il parametro AsJob, il cmdlet restituisce un oggetto processo. In caso contrario, non genera alcun output.

Note

Questo cmdlet utilizza il metodo Win32Shutdown della classe WMI WIN32_OperatingSystem.

Esempio 1

C:\PS>restart-computer

Descrizione
-----------
Con questo comando viene riavviato il computer locale.

Esempio 2

C:\PS>restart-computer -computername Server01, Server02, localhost

Descrizione
-----------
Con questo comando vengono riavviati due computer remoti, Server01 e Server02, e il computer locale, identificato come "localhost".

Esempio 3

C:\PS>$j = restart-computer -computername Server01, Server02 -asjob

C:\PS> $results = $j | receive-job

C:\PS> $results

Descrizione
-----------
Con questi comandi viene eseguito un comando Restart-Computer come processo in background nei due computer remoti, quindi si ottengono i risultati.

Nel primo comando viene utilizzato il parametro AsJob per eseguire il comando come processo in background. L'oggetto processo risultante viene salvato nella variabile $j.

Nel secondo comando viene utilizzato un operatore pipeline per inviare l'oggetto processo in $j al cmdlet Receive-Job, tramite cui vengono ottenuti i risultati del processo. I risultati vengono salvati nella variabile $results.

Nel terzo comando vengono visualizzati i risultati salvati nella variabile $results.

Poiché il parametro AsJob crea il processo nel computer locale e restituisce automaticamente i risultati al computer locale, è possibile eseguire il comando Receive-Job come comando locale.

Esempio 4

C:\PS>restart-computer -comp Server01 -impersonation anonymous -authentication PacketIntegrity

Descrizione
-----------
Con questo comando viene riavviato il computer remoto Server01. Vengono utilizzate la rappresentazione personalizzata e le impostazioni di autenticazione.

Esempio 5

C:\PS>$s = get-content domain01.txt

C:\PS> $c = get-credential domain01\admin01

C:\PS> restart-computer -computername $s -force -throttlelimit 10 -credential $c

Descrizione
-----------
Questi comandi forzano un riavvio immediato in tutti i computer di Dominio01.

Il primo comando ottiene un elenco di computer nel dominio che viene salvato nella variabile $s.

Il secondo comando ottiene le credenziali di un amministratore di dominio che vengono salvate nella variabile $c.

Il terzo comando riavvia i computer. Vengono utilizzati il parametro ComputerName per inviare l'elenco di computer nella variabile $s, il parametro Force per forzare un riavvio immediato e il parametro Credential per inviare le credenziali salvate nella variabile $c. Viene inoltre utilizzato il parametro ThrottleLimit per limitare il comando a 10 connessioni simultanee.

Vedere anche

  • Add-Computer
  • Checkpoint-Computer
  • Remove-Computer
  • Restore-Computer
  • Stop-Computer
  • Test-Connection


Restart-Service

Arresta e avvia uno o più servizi.

Sintassi

Restart-Service [-Name] <string[]> [-Exclude <string[]>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Restart-Service -DisplayName <string[]> [-Exclude <string[]>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Restart-Service [-InputObject <ServiceController[]>] [-Exclude <string[]>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Restart-Service invia un messaggio di arresto e uno di avvio al controller dei servizi di Windows per un servizio specificato. Se un servizio era già stato arrestato, viene avviato senza la notifica di un errore. È possibile specificare i servizi in base al relativo nome o nome visualizzato oppure utilizzare il parametro InputObject per passare un oggetto che rappresenta ogni servizio che si desidera riavviare.

Parametri

-DisplayName <string[]>

Specifica i nomi visualizzati dei servizi da riavviare. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette i servizi specificati. Il valore di questo parametro qualifica il parametro Name. Immettere un criterio o un elemento del nome, ad esempio "s*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Ignora le restrizioni che impediscono la corretta esecuzione del comando, purché le modifiche non abbiano effetti negativi sulla sicurezza. Force, ad esempio, arresterà e riavvierà un servizio da cui dipendono altri servizi.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Riavvia unicamente i servizi specificati. Il valore di questo parametro qualifica il parametro Name. Immettere un criterio o un elemento del nome, ad esempio "s*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <ServiceController[]>

Specifica gli oggetti ServiceController che rappresentano i servizi da riavviare. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Name <string[]>

Specifica i nomi dei servizi da riavviare.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta il servizio. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.ServiceProcess.ServiceController, System.String È possibile reindirizzare un oggetto o una stringa che contiene un nome servizio a Restart-Service.
Output | Nessuno o System.ServiceProcess.ServiceController Quando si utilizza il parametro PassThru, Restart-Service genera un oggetto System.ServiceProcess.ServiceController che rappresenta il servizio riavviato. Negli altri casi, il cmdlet non genera alcun output.

Note

Restart-Service consente di controllare i servizi solo se l'utente corrente dispone delle autorizzazioni necessarie. Se un comando non viene eseguito correttamente, è possibile che l'utente non disponga delle autorizzazioni necessarie.

Per trovare i nomi dei servizi e i nomi visualizzati dei servizi nel sistema, digitare "Get-Service". I nomi dei servizi vengono visualizzati nella colonna Name e i nomi visualizzati vengono elencati nella colonna DisplayName.

Esempio 1

C:\PS>restart-service wmi

Descrizione
-----------
Tramite questo comando viene riavviato il servizio Strumentazione gestione Windows (WMI) nel computer locale.

Esempio 2

C:\PS>restart-service -displayname net* -exclude "net logon"

Descrizione
-----------
Tramite questo comando vengono riavviati i servizi il cui nome visualizzato inizia con "Net", ad eccezione del servizio "Net Logon".

Esempio 3

C:\PS>get-service net* | where-object {$_.Status -eq "Stopped"} | restart-service

Descrizione
-----------
Tramite questo comando vengono avviati tutti i servizi di rete arrestati nel computer.

Viene utilizzato il cmdlet Get-Service per ottenere gli oggetti che rappresentano i servizi i cui nomi iniziano con "net". Il nome del parametro facoltativo Name viene omesso. L'operatore pipeline (|) invia l'oggetto servizi al cmdlet Where-Object che seleziona solo i servizi con lo stato "stopped". Un altro operatore pipeline invia i servizi selezionati a Restart-Service. Il parametro WhatIf viene in pratica utilizzato per stabilire gli effetti prodotti dal comando prima di utilizzarlo.

Vedere anche

  • Start-Service
  • Stop-Service
  • Suspend-Service
  • Resume-Service
  • New-Service
  • Get-Service
  • Set-Service


Restore-Computer

Avvia un ripristino di sistema nel computer locale.

Sintassi

Restore-Computer [-RestorePoint] <int> [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Restore-Computer ripristina il computer locale al punto di ripristino di sistema specificato.

Un comando Restore-Computer riavvia il computer. Il ripristino viene completato durante l'operazione di riavvio.

Parametri

-RestorePoint <int>

Specifica il numero di sequenza del punto di ripristino. Per trovare il numero di sequenza, utilizzare Get-ComputerRestorePoint. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Nessuno Questo cmdlet non genera alcun output.

Note

Per eseguire un comando Restore-Computer in Windows Vista e nelle versioni successive di Windows, aprire Windows PowerShell con l'opzione "Esegui come amministratore".

Questo cmdlet utilizza la classe SystemRestore di Strumentazione gestione Windows (WMI).

Esempio 1

C:\PS>restore-computer -RestorePoint 253

Descrizione
-----------
Questo comando ripristina il computer locale al punto di ripristino con il numero di sequenza 253.

Poiché il parametro RestorePoint è posizionale, è possibile omettere il nome del parametro.

Esempio 2

C:\PS>restore-computer 255 -confirm

Confirm
Are you sure you want to perform this action?
Performing operation "Restore-Computer" .
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):

Descrizione
-----------
Questo comando ripristina il computer locale al punto di ripristino con il numero di sequenza 255. Utilizza il parametro Confirm per richiedere la conferma prima dell'effettiva esecuzione dell'operazione.

Esempio 3

C:\PS>Get-ComputerRestorePoint

C:\PS> Restore-Computer -RestorePoint 255

C:\PS> Get-ComputerRestorePoint -LastStatus

Descrizione
-----------
Questi comandi eseguono un ripristino di sistema, quindi ne verificano lo stato.

Il primo comando utilizza il cmdlet Get-ComputerRestorePoint per ottenere i punti di ripristino nel computer locale.

Il secondo comando utilizza Restore-Computer per ripristinare il computer al punto di ripristino con il numero di sequenza 255.

Il terzo comando utilizza il parametro LastStatus del cmdlet Get-ComputerRestorePoint per verificare lo stato dell'operazione di ripristino. Poiché il comando Restore-Computer forza un riavvio, questo comando verrebbe immesso al riavvio del computer.

Vedere anche

  • Get-ComputerRestorePoint
  • Enable-ComputerRestore
  • Disable-ComputerRestore
  • Restart-Computer


Resume-Service

Riprende uno o più servizi sospesi.

Sintassi

Resume-Service [-Name] <string[]> [-Exclude <string[]>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Resume-Service -DisplayName <string[]> [-Exclude <string[]>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Resume-Service [-InputObject <ServiceController[]>] [-Exclude <string[]>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Per ogni servizio specificato, il cmdlet Resume-Service invia un messaggio di ripresa al controller dei servizi di Windows. Se sono stati sospesi, verranno ripresi. Se sono attualmente in esecuzione, il messaggio viene ignorato. È possibile specificare i servizi in base al relativo nome o nome visualizzato oppure utilizzare il parametro InputObject per passare un oggetto servizio che rappresenta i servizi che si desidera riprendere.

Parametri

-DisplayName <string[]>

Specifica i nomi visualizzati dei servizi da riprendere. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette i servizi specificati. Il valore di questo parametro qualifica il parametro Name. Immettere un criterio o un elemento del nome, ad esempio "s*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Riprende unicamente i servizi specificati. Il valore di questo parametro qualifica il parametro Name. Immettere un criterio o un elemento del nome, ad esempio "s*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <ServiceController[]>

Specifica gli oggetti ServiceController che rappresentano i servizi da riprendere. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Name <string[]>

Specifica i nomi dei servizi da riprendere.

Il nome del parametro è facoltativo. È possibile utilizzare "-Name" o il relativo alias, "-ServiceName", oppure omettere il nome del parametro.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta il servizio. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.ServiceProcess.ServiceController o System.String. È possibile reindirizzare un oggetto o una stringa che contiene un nome servizio a Resume-Service.
Output | Nessuno o System.ServiceProcess.ServiceController Quando si utilizza il parametro PassThru, Resume-Service genera un oggetto System.ServiceProcess.ServiceController che rappresenta il servizio ripreso. Negli altri casi, il cmdlet non genera alcun output.

Note

Lo stato dei servizi sospesi è "Paused". Quando i servizi vengono ripresi, il loro stato diventa "Running".

Resume-Service consente di controllare i servizi solo se l'utente corrente dispone delle autorizzazioni necessarie. Se un comando non viene eseguito correttamente, è possibile che l'utente non disponga delle autorizzazioni necessarie.

Per trovare i nomi dei servizi e i nomi visualizzati dei servizi nel sistema, digitare "Get-Service". I nomi dei servizi vengono visualizzati nella colonna Name e i nomi visualizzati vengono elencati nella colonna DisplayName.

Esempio 1

C:\PS>resume-service sens

Descrizione
-----------
Tramite questo comando viene ripreso il Servizio di notifica eventi di sistema (il nome del servizio è rappresentato da "sens") nel computer locale. Il parametro Name viene utilizzato per specificare il nome del servizio, ma il nome del parametro viene omesso perché è facoltativo.

Esempio 2

C:\PS>get-service | where-object {$_.Status -eq "Paused"} | resume-service

Descrizione
-----------
Tramite questo comando vengono ripresi tutti i servizi sospesi nel computer. Tramite il primo comando si ottengono tutti i servizi nel computer. I risultati vengono passati dall'operatore pipeline (|) al cmdlet Where-Object, il quale seleziona i servizi la cui proprietà Status equivale a "Paused". L'operatore pipeline successivo invia i risultati al cmdlet Resume-Service, il quale riprende i servizi sospesi.

Il parametro WhatIf viene in pratica utilizzato per determinare gli effetti prodotti dal comando prima di eseguirlo senza WhatIf.

Vedere anche

  • Get-Service
  • Start-Service
  • Stop-Service
  • Restart-Service
  • Suspend-Service
  • Set-Service
  • New-Service


Select-Object

Seleziona le proprietà specificate di un oggetto o di un set di oggetti. Può inoltre essere utilizzato per selezionare oggetti univoci da una matrice di oggetti o un numero specificato di oggetti dall'inizio o dalla fine di una matrice di oggetti.

Sintassi

Select-Object [[-Property] <Object[]>] [-ExcludeProperty <string[]>] [-ExpandProperty <string>] [-First <int>] [-InputObject <psobject>] [-Last <int>] [-Skip <int>] [-Unique] [<CommonParameters>]

Select-Object [-Index <Int32[]>] [-InputObject <psobject>] [-Unique] [<CommonParameters>]

Descrizione

Il cmdlet Select-Object ottiene solo le proprietà specificate di un oggetto o un set di oggetti. Può inoltre essere utilizzato per selezionare oggetti univoci da una matrice di oggetti o un numero specificato di oggetti dall'inizio o dalla fine di una matrice di oggetti.

Se si utilizza Select-Object per selezionare proprietà specificate, il valore di tali proprietà verrà copiato dagli oggetti di input e verranno creati nuovi oggetti caratterizzati dalle proprietà specificate e dai valori copiati.

Utilizzare il parametro Property per specificare le proprietà da selezionare. In alternativa, utilizzare i parametri First, Last, Unique, Skip e Index per selezionare oggetti specifici da una matrice di oggetti di input. Per opzioni più specifiche di filtro degli oggetti, utilizzare il cmdlet Where-Object.

Parametri

-ExcludeProperty <string[]>

Rimuove le proprietà specificate dalla selezione. È consentito l'utilizzo di caratteri jolly. Questo parametro è valido solo quando il comando include anche il parametro Property.

Il valore del parametro Property può essere una proprietà calcolata, ovvero una tabella hash che specifica un nome e calcola un valore per la visualizzazione della proprietà. Le chiavi valide sono le seguenti:

-- Name o Label <stringa>

-- Expression <stringa> o <blocco di script>

Per ulteriori informazioni, vedere gli esempi.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-ExpandProperty <string>

Specifica una proprietà da selezionare e indica che è necessario effettuare un tentativo di espansione della proprietà. Nel nome della proprietà sono consentiti caratteri jolly.

Ad esempio, se la proprietà specificata è una matrice, ogni valore della matrice viene incluso nell'output. Se la proprietà contiene un oggetto, le proprietà di tale oggetto vengono visualizzate nell'output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-First <int>

Specifica il numero di oggetti da selezionare dall'inizio di una matrice di oggetti di input.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Index <Int32[]>

Seleziona oggetti da una matrice in base ai relativi valori di indice. Immettere gli indici in un elenco separato da virgole.

Gli indici di una matrice iniziano da 0, che rappresenta il primo valore e (n-1) rappresenta l'ultimo valore.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica gli oggetti da inviare al cmdlet attraverso la pipeline. Questo parametro consente di reindirizzare oggetti a Select-Object.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Last <int>

Specifica il numero di oggetti da selezionare dalla fine di una matrice di oggetti di input.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Property <Object[]>

Specifica le proprietà da selezionare. È consentito l'utilizzo di caratteri jolly.

Il valore del parametro Property può essere una nuova proprietà calcolata. Per creare una proprietà calcolata, utilizzare una tabella hash. Le chiavi valide sono le seguenti:

-- Name (o Label) <stringa>

-- Expression <stringa> o <blocco di script>

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-Skip <int>

Ignora (non seleziona) il numero specificato di elementi. Per impostazione predefinita, il parametro Skip esegue il conteggio dall'inizio della matrice o dell'elenco di oggetti, ma se viene utilizzato il parametro Last, il conteggio viene eseguito dalla fine dell'elenco o della matrice.

A differenza del parametro Index che avvia il conteggio da 0, il parametro Skip lo avvia da 1.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Unique

Specifica che se un subset di oggetti di input è caratterizzato da proprietà e valori identici, verrà selezionato un unico membro del subset.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare qualsiasi oggetto a Select-Object.
Output | System.Management.Automation.PSObject

Note

È inoltre possibile fare riferimento a Select-Object tramite il relativo alias predefinito "select". Per ulteriori informazioni, vedere about_Aliases.

Esempio 1

C:\PS>get-process | select-object ProcessName,Id,WS

Descrizione
-----------
Tramite questo comando verrà visualizzato un elenco di processi di cui verranno visualizzate solo le proprietà relative al nome, all'ID e al working set (WS).

Esempio 2

C:\PS>get-process | select-object processname -expandproperty modules |
format-list

ProcessName       : 00THotkey
Size              : 256
Company           : TOSHIBA Corporation
FileVersion       : 1, 0, 0, 27
ProductVersion    : 6, 2, 0, 0
Description       : THotkey
Product           : TOSHIBA THotkey
ModuleName        : 00THotkey.exe
FileName          : C:\WINDOWS\system32\00THotkey.exe
BaseAddress       : 4194304

Descrizione
-----------
Tramite questo comando verranno visualizzate informazioni su tutti moduli utilizzati dai processi in esecuzione in un computer. Per visualizzare i dettagli inclusi nella proprietà relativa ai moduli verrà utilizzato il parametro ExpandProperty.

Esempio 3

C:\PS>get-process | sort-object -property WS | select-object -Last 5

Handles  NPM(K)    PM(K)      WS(K) VS(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
   2866     320    33432      45764   203   222.41   1292 svchost
    577      17    23676      50516   265    50.58   4388 WINWORD
    826      11    75448      76712   188    19.77   3780 Ps
   1367      14    73152      88736   216    61.69    676 Ps
   1612      44    66080      92780   380   900.59   6132 INFOPATH

Descrizione
-----------
Tramite questo comando verranno visualizzati i cinque processi in cui viene utilizzata la maggior parte della memoria. Verranno utilizzati il cmdlet Sort-Object per ordinare i processi in base all'utilizzo della memoria (working set) e il cmdlet Select-Object per selezionare solo gli ultimi cinque membri della matrice di oggetti risultante.

Esempio 4

C:\PS>get-process | select-object -property ProcessName,@{Name="Start Day"; Expression = {$_.StartTime.DayOfWeek}}

ProcessName  StartDay
----         --------
alg          Wednesday
ati2evxx     Wednesday
ati2evxx     Thursday
...

Descrizione
-----------
Tramite questo comando verranno visualizzati il nome e il giorno di avvio dei processi in esecuzione in un computer.

I valori del parametro Property sono ProcessName e una proprietà calcolata denominata "Start Day". La proprietà "Start Day" viene aggiunta tramite una tabella hash con le chiavi Name ed Expression.

Esempio 5

C:\PS>"a","b","c","a","a","a" | select-object -unique

a
b
c

Descrizione
-----------
Tramite questo comando verranno visualizzati i caratteri univoci di una matrice di caratteri.

Esempio 6

C:\PS>$a = get-eventlog -log "Windows PowerShell"

C:\PS> $a | select-object -index 0, ($a.count - 1)

Descrizione
-----------
Questi comandi ottengono il primo (il più recente) e l'ultimo (il meno recente) evento nel registro eventi di Windows Powershell.

Nel primo comando viene utilizzato il cmdlet Get-EventLog per ottenere tutti gli eventi nel registro di Windows Powershell. Gli oggetti vengono salvati nella variabile $a.

Nel secondo comando viene utilizzato un operatore pipeline (|) per inviare gli eventi in $a al cmdlet Select-Object. Il comando Select-Object utilizza il parametro Index per selezionare gli elementi in base al numero di indice. L'indice per il primo evento è 0, mentre quello per l'ultimo evento è il numero di elementi in $a meno 1.

Esempio 7

C:\PS>new-pssession -computername (get-content servers.txt | select-object -skip 1)

Descrizione
-----------
Con questo comando viene creata una nuova sessione PSSession in ognuno dei computer elencati nei file Servers.txt, eccetto il primo.

Viene utilizzato il cmdlet Select-Object per selezionare tutti i computer tranne il primo in un elenco di nomi di computer. L'elenco di computer risultante viene impostato come valore del parametro ComputerName del cmdlet New-PSSession.

Vedere anche

  • Where-Object
  • Group-Object
  • Sort-Object


Select-String

Trova il testo in stringhe e file.

Sintassi

Select-String [-Path] <string[]> [-Pattern] <string[]> [-AllMatches] [-CaseSensitive] [-Context <Int32[]>] [-Encoding <string>] [-Exclude <string[]>] [-Include <string[]>] [-List] [-NotMatch] [-Quiet] [-SimpleMatch] [<CommonParameters>]

Select-String -InputObject <psobject> [-Pattern] <string[]> [-AllMatches] [-CaseSensitive] [-Context <Int32[]>] [-Encoding <string>] [-Exclude <string[]>] [-Include <string[]>] [-List] [-NotMatch] [-Quiet] [-SimpleMatch] [<CommonParameters>]

Descrizione

Il cmdlet Select-String cerca testo e modelli di testo in file e stringhe di input. È possibile utilizzarlo come Grep in UNIX e Findstr in Windows.

Select-String si basa su righe di testo. Per impostazione predefinita, Select-String trova la prima corrispondenza in ogni riga e, per ogni corrispondenza, visualizza il nome file, il numero di riga e tutto il testo nella riga contenente la corrispondenza.

Tuttavia, è possibile impostarlo per rilevare più corrispondenze per riga, visualizzare il testo prima e dopo la corrispondenza o visualizzare solo un valore booleano (true o false) che indichi se è stata trovata una corrispondenza.

Select-String utilizza la corrispondenza di espressioni regolari, ma può inoltre utilizzare una corrispondenza semplice che cerca l'input per il testo specificato.

Select-String può visualizzare tutte le corrispondenze di testo o interrompersi dopo la prima corrispondenza in ogni file di input. Può inoltre visualizzare tutto il testo che non corrisponde al modello specificato.

È inoltre possibile specificare che Select-String preveda una determinata codifica dei caratteri, ad esempio durante la ricerca di file con testo Unicode.

Parametri

-AllMatches

Cerca più di una corrispondenza in ciascuna riga di testo. Senza questo parametro, Select-String trova solo la prima corrispondenza in ciascuna riga di testo.

Quando Select-String trova più di una corrispondenza in una riga di testo, continua a generare un solo oggetto MatchInfo per la riga, ma la proprietà Matches dell'oggetto contiene tutte le corrispondenze.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-CaseSensitive

Utilizza la distinzione tra maiuscole e minuscole per le corrispondenze. Per impostazione predefinita, per le corrispondenze non viene fatta distinzione tra maiuscole e minuscole.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Context <Int32[]>

Acquisisce il numero specificato di righe prima e dopo la riga con la corrispondenza. Consente di visualizzare la corrispondenza nel contesto.

Se si immette un numero come valore di questo parametro, tale numero determina il numero di righe acquisite prima e dopo la corrispondenza. Se si immettono due numeri come valore, il primo numero determina il numero di righe prima della corrispondenza e il secondo il numero di righe dopo la corrispondenza.

Nella visualizzazione predefinita, le righe con una corrispondenza vengono indicate da una parentesi uncinata chiusa (ASCII 62) nella prima colonna della visualizzazione. Le righe non contrassegnate rappresentano il contesto.

Questo parametro non modifica il numero di oggetti generati da Select-String. Select-String genera un oggetto MatchInfo (Microsoft.PowerShell.Commands.MatchInfo) per ciascuna corrispondenza. Il contesto viene archiviato come matrice di stringhe nella proprietà Context dell'oggetto.

Quando si reindirizza l'output di un comando Select-String a un altro comando Select-String, il comando ricevente cerca solo il testo nella riga corrispondente (valore della proprietà Line dell'oggetto MatchInfo), non il testo nelle righe del contesto. Di conseguenza, il parametro Context non è valido nel comando Select-String ricevente.

Quando il contesto include una corrispondenza, l'oggetto MatchInfo per ogni corrispondenza include tutte le righe del contesto, ma le righe sovrapposte vengono visualizzate solo una volta nella visualizzazione.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Encoding <string>

Specifica la codifica dei caratteri che Select-String deve presupporre durante la ricerca del file. L'impostazione predefinita è UTF8.

I valori validi sono "UTF7", "UTF8", "UTF32", "ASCII", "Unicode", "BigEndianUnicode", "Default" e "OEM". "Default" è la codifica della tabella codici ANSI corrente del sistema. "OEM" è l'identificatore della tabella codici corrente del produttore dell'hardware originale per il sistema operativo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Exclude <string[]>

Esclude gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Include solo gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica il testo da cercare. Immettere una variabile che contiene il testo oppure digitare un comando o un'espressione che consente di ottenere il testo.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-List

Restituisce solo la prima corrispondenza in ogni file di input. Per impostazione predefinita, Select-String restituisce un oggetto MatchInfo per ogni corrispondenza trovata.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-NotMatch

Trova il testo che non corrisponde al modello specificato.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso dei file da cercare. È consentito l'utilizzo di caratteri jolly. La posizione predefinita è la directory locale.

Specificare i file nella directory, ad esempio "log1.txt", "*.doc" o "*.*". Se si specifica solo una directory, il comando ha esito negativo.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Pattern <string[]>

Specifica il testo da trovare. Digitare una stringa o un'espressione regolare. Se si digita una stringa, utilizzare il parametro SimpleMatch.

Per ulteriori informazioni sulle espressioni regolari, vedere about_Regular_Expressions.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Quiet

Restituisce un valore booleano (true o false) anziché un oggetto MatchInfo. Il valore è "true" se viene trovato il modello; in caso contrario è "false".

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SimpleMatch

Utilizza una corrispondenza semplice, anziché una corrispondenza tra espressioni regolari. In una corrispondenza semplice, Select-String cerca l'input per il testo nel parametro Pattern. Il valore del parametro Pattern non viene interpretato come un'istruzione di espressione regolare.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare qualsiasi oggetto che dispone di un metodo ToString a Select-String.
Output | Microsoft.PowerShell.Commands.MatchInfo o System.Boolean Per impostazione predefinita, l'output è un set di oggetti MatchInfo, uno per ogni corrispondenza trovata. Se si utilizza il parametro Quiet, l'output è un valore booleano che indica se è stato trovato il modello.

Note

Select-String è come il comando Grep in UNIX e il comando FindStr in Windows.

Per utilizzare Select-String, digitare il testo che si desidera trovare come valore del parametro Pattern.

Per specificare il testo da cercare, eseguire le seguenti operazioni:

-- Digitare il testo in una stringa tra virgolette e reindirizzarlo a Select-String.

-- Archiviare una stringa di testo in una variabile e specificare la variabile come valore del parametro InputObject.

-- Se il testo viene archiviato in alcuni file, utilizzare il parametro Path per specificare il percorso dei file.

Per impostazione predefinita, Select-String interpreta il valore del parametro Pattern come espressione regolare. (Per ulteriori informazioni, vedere about_Regular_Expressions). Tuttavia, è possibile utilizzare il parametro SimpleMatch per eseguire l'override della corrispondenza tra espressioni regolari. Il parametro SimpleMatch trova le istanze del valore del parametro Pattern nell'input.

L'output predefinito di Select-String è un oggetto MatchInfo che include informazioni dettagliate sulle corrispondenze. Le informazioni si trovano nell'oggetto e sono utili quando si cerca testo nei file, poiché gli oggetti MatchInfo dispongono di proprietà come Filename e Line. Quando l'input non proviene dal file, il valore di questi parametri è "InputStream".

Se le informazioni nell'oggetto MatchInfo non sono necessarie, utilizzare il parametro Quiet che restituisce un valore booleano (true o false) per indicare se è stata trovata o meno una corrispondenza, anziché un oggetto MatchInfo.

In caso di corrispondenza di frasi, Select-String utilizza quella correntemente impostata per il sistema. Per trovare le impostazioni cultura correnti, utilizzare il cmdlet Get-Culture.

Per trovare le proprietà di un oggetto MatchInfo, digitare:

select-string -path test.txt -pattern "test" | Get-Member | Format-List -property *

Esempio 1

C:\PS>"Hello","HELLO" | select-string -pattern "HELLO" -casesensitive

Descrizione
-----------
Questo comando cerca una corrispondenza con distinzione tra maiuscole e minuscole del testo reindirizzato al comando Select-String.

Di conseguenza, Select-String trova solo "HELLO", perché "Hello" non corrisponde.

Poiché ciascuna delle stringhe tra virgolette viene trattata come riga, senza il parametro CaseSensitive, Select-String riconoscerebbe entrambe le stringhe come corrispondenze.

Esempio 2

C:\PS>select-string -path *.xml -pattern "the the"

Descrizione
-----------
In questo comando vengono cercati tutti i file della directory corrente con estensione xml e vengono visualizzate le righe di tali file che includono la stringa "the the".

Esempio 3

C:\PS>select-string -path $pshome\en-US\*.txt -pattern "@"

Descrizione
-----------
Questo comando cerca i file della Guida dedicati ai concetti di Windows PowerShell (about_*.txt) per informazioni sull'utilizzo del simbolo della a commerciale (@).

Per indicare il percorso, questo comando utilizza il valore della variabile $pshome, in cui viene archiviato il percorso della directory di installazione di Windows PowerShell. In questo esempio, il comando cerca la sottodirectory en-US che contiene i file della Guida in lingua inglese (Stati Uniti) per Windows PowerShell.

Esempio 4

C:\PS>function search-help
{
    $pshelp = "$pshome\es\about_*.txt", "$pshome\en-US\*dll-help.xml"
    select-string -path $pshelp -pattern $args[0]
}

Descrizione
-----------
Questa funzione semplice utilizza il cmdlet Select-String per cercare una determinata stringa nei file della Guida di Windows PowerShell. In questo esempio, la funzione cerca i file in lingua inglese (Stati Uniti) nella sottodirectory "en-US".

Per utilizzare la funzione per trovare una stringa, ad esempio "psdrive", digitare "search-help psdrive".

Per utilizzare questa funzione in qualsiasi console di Windows PowerShell, modificare il percorso affinché punti ai file della Guida di Windows PowerShell nel sistema, quindi incollare la funzione nel profilo di Windows Powershell.

Esempio 5

C:\PS>$events = get-eventlog -logname application -newest 100

C:\PS> $events | select-string -inputobject {$_.message} -pattern "failed"

Descrizione
-----------
In questo esempio viene cercata la stringa "failed" nei 100 eventi più recenti del registro applicazioni del Visualizzatore eventi.

Il primo comando utilizza il cmdlet Get-EventLog per ottenere i 100 eventi più recenti dal registro eventi dell'applicazione. Archivia quindi gli eventi nella variabile $events.

Nel secondo comando viene utilizzato un operatore pipeline (|) per inviare gli oggetti nella variabile $events a Select-String. Viene utilizzato il parametro InputObject per rappresentare l'input dalla variabile $events. Il valore del parametro InputObject è la proprietà Message di ogni oggetto che passa tramite la pipeline. L'oggetto corrente viene rappresentato dal simbolo $_.

Man mano che gli eventi arrivano nella pipeline, Select-String cerca la stringa "failed" nel valore della proprietà Message, quindi visualizza qualsiasi riga che contenga una corrispondenza.

Esempio 6

C:\PS>get-childitem c:\windows\system32\* -include *.txt -recurse |
select-string -pattern "Microsoft" -casesensitive

Descrizione
-----------
In questo comando viene cercata la stringa "Microsoft" in tutti i file presenti nelle sottodirectory di C:\Windows\System32 con estensione txt. Il parametro CaseSensitive indica che la lettera "M" di "Microsoft" deve essere maiuscola, mentre gli altri caratteri devono essere minuscoli affinché Select-String individui una corrispondenza.

Esempio 7

C:\PS>select-string -path process.txt -pattern idle, svchost -notmatch

Descrizione
-----------
Questo comando trova nel file Process.txt righe di testo che non includono le parole "idle" o "svchost".

Esempio 8

C:\PS>$f = select-string -path audit.log -pattern "logon failed" -context 2, 3

C:\PS> $f.count

C:\PS> ($f)[0].context | format-list

Descrizione
-----------
Il primo comando cerca la frase "logon failed" nel file Audit.Log. Viene utilizzato il parametro Context per acquisire le 2 righe che precedono e le 3 righe che seguono la corrispondenza.

Nel secondo comando viene utilizzata la proprietà Count delle matrici di oggetti per visualizzare il numero di corrispondenze trovate, in questo caso 2.

Il terzo comando visualizza le righe archiviate nella proprietà Context del primo oggetto MatchInfo. Viene utilizzata una notazione di matrice per indicare la prima corrispondenza (corrispondenza 0 in una matrice in base zero) e viene utilizzato il cmdlet Format-List per visualizzare il valore della proprietà Context come elenco.

L'output è costituito da due oggetti MatchInfo, uno per ciascuna corrispondenza trovata. Le righe del contesto vengono archiviate nella proprietà Context dell'oggetto MatchInfo.

Esempio 9

C:\PS>$a = get-childitem $pshome\en-us\about*.help.txt | select-string -pattern transcript

C:\PS> $b = get-childitem $pshome\en-us\about*.help.txt | select-string -pattern transcript -allmatches

C:\PS> $a
C:\Windows\system32\WindowsPowerShell\v1.0\en-us\about_Pssnapins.help.txt:39:       Start-Transcript and Stop-Transcript.

C:\PS> $b
C:\Windows\system32\WindowsPowerShell\v1.0\en-us\about_Pssnapins.help.txt:39:       Start-Transcript and Stop-Transcript.

C:\PS>> $a.matches
Groups   : {Transcript}
Success  : True
Captures : {Transcript}
Index    : 13
Length   : 10
Value    : Transcript

C:\PS> $b.matches
Groups   : {Transcript}
Success  : True
Captures : {Transcript}
Index    : 13
Length   : 10
Value    : Transcript

Groups   : {Transcript}
Success  : True
Captures : {Transcript}
Index    : 33
Length   : 10
Value    : Transcript

Descrizione
-----------
In questo esempio viene illustrato l'effetto del parametro AllMatches di Select-String. AllMatches trova tutte le corrispondenze del criterio in una riga anziché trovare solo la prima corrispondenza in ciascuna riga.

Nel primo comando dell'esempio vengono cercate le istanze della parola "transcript" nei file della Guida dedicati ai concetti di Windows PowerShell (Guida "about"). Il secondo comando è identico, con l'eccezione che utilizza il parametro AllMatches.

L'output del primo comando viene salvato nella variabile $a. L'output del secondo comando viene salvato nella variabile $b.

Quando viene visualizzato il valore delle variabili, la visualizzazione predefinita è identica, come illustrato nell'output di esempio.

Tuttavia, con il quinto e il sesto comando viene visualizzato il valore della proprietà Matches di ciascun oggetto. La proprietà Matches del primo comando contiene solo una corrispondenza (ovvero un oggetto System.Text.RegularExpressions.Match), mentre quella del secondo comando contiene oggetti per entrambe le corrispondenze nella riga.

Vedere anche

  • about_Comparison_Operators
  • about_Regular_Expressions


Select-XML

Trova il testo in un documento o una stringa XML.

Sintassi

Select-XML -Content <string[]> [-Xpath] <string> [-Spazio dei nomi <hashtable>] [<CommonParameters>]

Select-XML [-Path] <string[]> [-Xpath] <string> [-Spazio dei nomi <hashtable>] [<CommonParameters>]

Select-XML [-Xml] <XmlNode[]> [-Xpath] <string> [-Spazio dei nomi <hashtable>] [<CommonParameters>]

Descrizione

Il cmdlet Select-XML consente di utilizzare query XPath per cercare testo in documenti e stringhe XML. Immettere una query XPath e utilizzare il parametro Content, Path o Xml per specificare l'XML da cercare.

Parametri

-Content <string[]>

Specifica una stringa che contiene l'XML in cui eseguire la ricerca. È inoltre possibile reindirizzare stringhe a Select-XML.

Obbligatorio? | true
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Spazio dei nomi <hashtable>

Specifica una tabella hash degli spazi dei nomi utilizzati nell'XML. Utilizzare il formato @{<nomeSpaziodeinomi> = <valoreSpaziodeinomi>}.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso e i nomi dei file XML in cui eseguire la ricerca. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | true
Posizione? | 2
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | true

-Xml <XmlNode[]>

Specifica uno o più nodi XML. Un parametro Path o XML è obbligatorio in ogni comando.

Un documento XML verrà elaborato come raccolta di nodi XML. Se si reindirizza un documento XML a Select-XML, la ricerca viene eseguita separatamente in ogni nodo del documento quando passa attraverso la pipeline.

Obbligatorio? | true
Posizione? | 2
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Xpath <string>

Specifica una query di ricerca XPath. Il linguaggio di query rileva la distinzione tra maiuscole e minuscole. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String or System.Xml.XmlNode È possibile reindirizzare un percorso o un nodo XML a Select-XML.
Output | System.Xml.XmlElement o System.Xml.XmlText

Note

XPath è un linguaggio standard progettato per identificare parti di un documento XML. Per ulteriori informazioni sul linguaggio XPath, vedere la sessione relativa ai filtri di selezione dell'argomento sulla selezione di eventi in MSDN Library all'indirizzo http://go.microsoft.com/fwlink/?LinkId=143608 (le informazioni potrebbero essere in lingua inglese). Vedere inoltre Riferimento XPath in MSDN Library all'indirizzo http://go.microsoft.com/fwlink/?LinkId=143609 (le informazioni potrebbero essere in lingua inglese).

Esempio 1

C:\PS>$path = "$env:windir\System32\WindowsPowerShell\v1.0\Types.ps1xml"

C:\PS> select-xml -path $path -xpath "/Types/Type/Members/AliasProperty"

Descrizione
-----------
In questo esempio vengono cercati gli elementi figlio del nodo AliasProperty nel file Types.ps1xml.

Esempio 2

C:\PS>select-xml -path test*.xml, help.xml -xpath "/Tests/Test[1]/Name"

Descrizione
-----------
Questo comando utilizza Select-XML per la ricerca in diversi file XML.

Esempio 3

C:\PS>[xml]$Types = get-content "$env:windir\System32\WindowsPowerShell\v1.0\Types.ps1xml"

C:\PS> select-xml -xml $Types -xpath "//MethodName"

Descrizione
-----------
In questo esempio viene illustrato come reindirizzare un documento XML a Search-Path.

Esempio 4

C:\PS>$namespace = @{command="http://schemas.microsoft.com/maml/dev/command/2004/10"; maml="http://schemas.microsoft.com/maml/2004/10"; dev="http://schemas.microsoft.com/maml/dev/2004/10"}

C:\PS> $path = "$env:windir\System32\WindowsPowerShell\V1.0\en-us\*dll-Help.xml"

C:\PS> select-xml -path $path -namespace $namespace -xpath "//command:name"

Text                      Node      Path
----                      ----      ----
Add-Computer              name      C:\Windows\System32\WindowsPowerShell\V...
Add-Content               name      C:\Windows\System32\WindowsPowerShell\V...
Checkpoint-Computer       name      C:\Windows\System32\WindowsPowerShell\V...
Clear-Content             name      C:\Windows\System32\WindowsPowerShell\V...
Clear-EventLog            name      C:\Windows\System32\WindowsPowerShell\V...
...

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il cmdlet Select-XML per eseguire la ricerca nei file della Guida del cmdlet basato su XML di Windows PowerShell.

Il primo comando crea una tabella hash che rappresenta lo spazio dei nomi XML e lo salva nella variabile $namespace.

Il secondo comando salva il percorso dei file della Guida nella variabile $path.

Il terzo comando utilizza Select-Xml per cercare i nomi dei cmdlet nell'XML rilevando i tag Command:Name in qualsiasi punto nei file.

Esempio 5

C:\PS>select-xml -content $xml -xpath "//edition"

C:\PS> $xml = @"
<?xml version="1.0" encoding="utf-8"?>
 <Book>
   <projects>
     <project name="Book1" date="2009-01-20">
       <editions>
          <edition language="English">En.Book1.com</edition>
          <edition language="German">Ge.Book1.Com</edition>
          <edition language="French">Fr.Book1.com</edition>
          <edition language="Polish">Pl.Book1.com</edition>
       </editions>
     </project>
   </projects>
 </Book>
"@

C:\PS> select-xml -content $xml -xpath "//edition"

Text            Node          Path
----            ----          ----
En.Book1.com    edition       InputStream
Ge.Book1.Com    edition       InputStream
Fr.Book1.com    edition       InputStream
Pl.Book1.com    edition       InputStream

C:\PS> $xml | select-xml -xpath "//edition"

Text            Node          Path
----            ----          ----
En.Book1.com    edition       InputStream
Ge.Book1.Com    edition       InputStream
Fr.Book1.com    edition       InputStream
Pl.Book1.com    edition       InputStream

Descrizione
-----------
In questo esempio viene utilizzato il parametro Content di Select-XML per cercare contenuto XML in una stringa here.

Nel primo comando la stringa here viene salvata nella variabile $xml.

Nel secondo comando viene utilizzato il parametro Content per specificare l'XML nella variabile $xml.

Il terzo comando equivale al secondo. Viene utilizzato un operatore pipeline (|) per inviare l'XML nella variabile $xml al cmdlet Select-XML.

Per ulteriori informazioni sulle stringhe here, digitare about_Quoting_Rules.

Vedere anche

  • ConvertTo-XML


Send-MailMessage

Invia un messaggio di posta elettronica.

Sintassi

Send-MailMessage [-To] <string[]> [-Subject] <string> -From <string> [[-Body] <string>] [[-SmtpServer] <string>] [-Attachments <string[]>] [-Bcc <string[]>] [-BodyAsHtml] [-Cc <string[]>] [-Credential <PSCredential>] [-DeliveryNotificationOption {<None> | <OnSuccess> | <OnFailure> | <Delay> | <Never>}] [-Encoding <Encoding>] [-Priority {<Normal> | <Low> | <High>}] [-UseSsl] [<CommonParameters>]

Descrizione

Il cmdlet Send-MailMessage invia un messaggio di posta elettronica da Windows PowerShell.

Parametri

-Attachments <string[]>

Specifica il percorso e i nomi dei file da allegare al messaggio di posta elettronica. È possibile utilizzare questo parametro o reindirizzare i percorsi e i nomi file a Send-MailMessage.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Bcc <string[]>

Specifica gli indirizzi di posta elettronica che ricevono una copia del messaggio ma non sono elencati come destinatari del messaggio. Immettere i nomi (facoltativo) e gli indirizzi di posta elettronica, ad esempio "Nome <qualcuno@esempio.com>".

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Body <string>

Specifica il corpo (contenuto) del messaggio di posta elettronica.

Obbligatorio? | false
Posizione? | 3
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-BodyAsHtml

Indica che il valore del parametro Body contiene HTML.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Cc <string[]>

Specifica gli indirizzi di posta elettronica a cui viene inviata una copia per conoscenza (Cc) del messaggio di posta elettronica. Immettere i nomi (facoltativo) e gli indirizzi di posta elettronica, ad esempio "Nome <qualcuno@esempio.com>".

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01". In alternativa, immettere un oggetto PSCredential, ad esempio uno del cmdlet Get-Credential.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Current user
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-DeliveryNotificationOption <DeliveryNotificationOptions>

Specifica le opzioni di notifica di recapito per il messaggio di posta elettronica. È possibile specificare più valori. "None" è il valore predefinito. L'alias per questo parametro è "dno".

Le notifiche di recapito vengono inviate in un messaggio di posta elettronica all'indirizzo specificato nel valore del parametro To.

I valori validi sono:

-- None: nessuna notifica.

-- OnSuccess: la notifica viene inviata se la consegna ha avuto esito positivo.

-- OnFailure: la notifica viene inviata se la consegna ha avuto esito negativo.

-- Delay: la notifica viene inviata se la consegna è ritardata.

-- Never: la notifica non viene mai inviata.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Encoding <Encoding>

Specifica la codifica utilizzata per il corpo e l'oggetto del messaggio. I valori validi sono ASCII, UTF8, UTF7, UTF32, Unicode, BigEndianUnicode, Default e OEM. Il valore predefinito è ASCII.

Obbligatorio? | false
Posizione? | named
Valore predefinito | ASCII
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-From <string>

Specifica l'indirizzo da cui viene inviata la posta elettronica. Immettere un nome (facoltativo) e un indirizzo di posta elettronica, ad esempio "Nome <qualcuno@esempio.com>". Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Priority <MailPriority>

Specifica la priorità del messaggio di posta elettronica. I valori validi sono Normal, High e Low. Normal è il valore predefinito.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Normal.
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SmtpServer <string>

Specifica il nome del server SMTP che invia il messaggio di posta elettronica.

Il valore predefinito è il valore della variabile di preferenza $PSEmailServer. Se la variabile non è impostata e questo parametro viene omesso, il comando ha esito negativo.

Obbligatorio? | false
Posizione? | 4
Valore predefinito | $PSEmailServer
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Subject <string>

Specifica l'oggetto del messaggio di posta elettronica. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 2
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-To <string[]>

Specifica gli indirizzi a cui viene inviata la posta elettronica. Immettere i nomi (facoltativo) e gli indirizzi di posta elettronica, ad esempio "Nome <qualcuno@esempio.com>". Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseSsl

Utilizza il protocollo SSL (Secure Sockets Layer) per stabilire una connessione al computer remoto e inviare il messaggio. Per impostazione predefinita SSL non viene utilizzato.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare il percorso e i nomi dei file allegati a Send-MailMessage.
Output | Nessuno Questo cmdlet non genera alcun output.

Esempio 1

C:\PS>send-mailmessage -to "User01 <user01@example.com>" -from "User02 <user02@example.com>" -subject "Test mail"

Descrizione
-----------
Questo comando invia un messaggio di posta elettronica da Utente01 a Utente02.

Il messaggio ha un oggetto, obbligatorio, ma non ha un corpo, facoltativo. Inoltre, poiché il parametro SmtpServer non è specificato, Send-MailMessage utilizza il valore della variabile di preferenza $PSEmailServer per il server SMTP.

Esempio 2

C:\PS>send-mailmessage -from "User01 <user01@example.com>" -to "User02 <user02@example.com>", "User03 <user03@example.com>" -subject "Sending the Attachment" -body "Forgot to send the attachment. Sending now." -Attachment "data.csv" -priority High -dno onSuccess, onFailure -smtpServer smtp.fabrikam.com

Descrizione
-----------
Questo comando invia un messaggio di posta elettronica con un allegato da User01 a due altri utenti.

Specifica il valore di priorità "High" e richiede una notifica di recapito tramite posta elettronica quando il recapito ha esito positivo o negativo.

Esempio 3

C:\PS>send-mailmessage -to "User01 <user01@example.com>" -from "ITGroup <itdept@example.com>" -cc "User02 <user02@example.com>" -bcc ITMgr <itmgr@example.com> -subject "Don't forget today's meeting!" -credential domain01\admin01 -useSSL

Descrizione
-----------
Questo comando invia un messaggio di posta elettronica da Utente01 alla lista di distribuzione ITGroup con una copia (Cc) a Utente02 e una copia per conoscenza nascosta (Ccn) al responsabile IT (ITMgr).

Utilizza le credenziali di un amministratore di dominio e il parametro UseSSL.


Set-Acl

Modifica il descrittore di sicurezza di una risorsa specificata, ad esempio un file o una chiave del Registro di sistema.

Sintassi

Set-Acl [-Path] <string[]> [-AclObject] <ObjectSecurity> [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Set-Acl modifica il descrittore di sicurezza di una risorsa specificata, ad esempio un file o una chiave del Registro di sistema, in base ai valori di un descrittore di sicurezza fornito dall'utente.

Per utilizzare Set-Acl, utilizzare il parametro Path per identificare la risorsa di cui si desidera modificare il descrittore di sicurezza e il parametro AclObject per fornire un descrittore di sicurezza che dispone dei valori da applicare. Set-Acl utilizza il valore del parametro AclObject come modello e modifica i valori del descrittore di sicurezza della risorsa in base ai valori del parametro AclObject.

Parametri

-AclObject <ObjectSecurity>

Specifica un ACL con i valori della proprietà desiderati. Set-Acl modifica l'ACL della risorsa specificata dal parametro Path in base ai valori dell'oggetto sicurezza specificato.

È possibile salvare l'output di un comando Get-Acl in una variabile, quindi utilizzare il parametro AclObject per passare la variabile oppure digitare un comando Get-Acl.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Modifica unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta il descrittore di sicurezza. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string[]>

Identifica la risorsa di cui si desidera modificare il descrittore di sicurezza. Immettere il percorso della risorsa, ad esempio il percorso di un file o di una chiave del Registro di sistema. È consentito l'utilizzo di caratteri jolly.

Se si passa a Set-Acl un oggetto sicurezza, utilizzando il parametro AclObject o passando un oggetto da Get-Acl a Set-Acl, e si omette il parametro Path (nome e valore), Set-Acl utilizza il percorso incluso nell'oggetto sicurezza.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Security.AccessControl.ObjectSecurity È possibile reindirizzare un descrittore di sicurezza a Set-Acl.
Output | Nessuno o oggetto sicurezza Per impostazione predefinita, Set-Acl non genera alcun output. Tuttavia, se si utilizza il parametro -Passthru, viene generato un oggetto di sicurezza. Il tipo dell'oggetto sicurezza dipende dal tipo della risorsa.

Note

Il cmdlet Set-Acl è supportato dai provider FileSystem e Registry di Windows PowerShell e può pertanto essere utilizzato per modificare i descrittori di sicurezza di file, directory e chiavi del Registro di sistema.

Se per un parametro vengono specificati più valori, utilizzare virgole per separarli. Ad esempio, "<nome-parametro> <valore1>, <valore2>".

Esempio 1

C:\PS>$DogACL = get-acl c:\dog.txt

C:\PS>set-acl -path C:\cat.txt -AclObject $DogACL

Descrizione
-----------
Tramite questi comandi vengono copiati i valori dal descrittore di sicurezza del file Dog.txt a quello del file Cat.txt. Al termine dell'esecuzione del comando, i descrittori di sicurezza dei file Dog.txt e Cat.txt sono identici.

Con il primo comando viene utilizzato il cmdlet Get-Acl per ottenere il descrittore di sicurezza del file Dog.txt. L'operatore di assegnazione (=) consente di archiviare il descrittore di sicurezza nel valore della variabile $DogACL.

Con il secondo comando viene utilizzato Set-Acl per modificare i valori dell'elenco di controllo di accesso di Cat.txt in base ai valori presenti in $DogACL.

Il valore del parametro Path rappresenta il percorso del file Cat.txt. Il valore del parametro AclObject rappresenta l'ACL da utilizzare come modello, ovvero, in questo caso, l'ACL di Dog.txt salvato nella variabile $DogACL.

Esempio 2

C:\PS>get-acl c:\dog.txt | set-acl -path C:\cat.txt

Descrizione
-----------
Questo comando è molto simile a quello dell'esempio precedente, ad eccezione del fatto che viene utilizzato un operatore pipeline per inviare il descrittore di sicurezza recuperato da un comando Get-Acl a un comando Set-Acl.

Con il primo comando viene utilizzato il cmdlet Get-Acl per ottenere il descrittore di sicurezza del file Dog.txt. L'operatore pipeline (|) consente di passare un oggetto che rappresenta il descrittore di sicurezza di Dog.txt al comando Set-Acl.

Il secondo comando utilizza il cmdlet Set-Acl per applicare il descrittore di sicurezza di Dog.txt a Cat.txt. Al termine dell'esecuzione del comando, gli ACL dei file Dog.txt e Cat.txt sono identici.

Esempio 3

C:\PS>$newACL = get-acl file0.txt

C:\PS>get-childitem c:\temp -recurse -include *.txt -force | set-acl -aclobject $newacl

Descrizione
-----------
Tramite questi comandi vengono applicati i descrittori di sicurezza inclusi nel file File0.txt a tutti i file di testo nella directory C:\Temp e in tutte le sottodirectory.

Il primo comando consente di ottenere il descrittore di sicurezza del file File0.txt nella directory corrente. Nel comando viene utilizzato l'operatore di assegnazione (=) per archiviare il descrittore nella variabile $newACL.

Con il primo comando nella pipeline viene utilizzato il cmdlet Get-ChildItem per ottenere tutti i file di testo presenti nella directory C:\Temp. Il parametro Recurse consente di estendere il comando a tutte le sottodirectory di C:\temp. Il parametro Include consente di limitare i file recuperati a quelli con estensione txt. Il parametro Force consente di ottenere i file nascosti, che altrimenti verrebbero esclusi. Non è possibile utilizzare "c:\temp\*.txt", in quanto il parametro Recurse funziona solo con le directory e non con i file.

L'operatore pipeline (|) consente di inviare gli oggetti che rappresentano i file recuperati al comando Set-Acl, tramite il quale il descrittore di sicurezza incluso nel parametro AclObject viene applicato a tutti i file nella pipeline.

È consigliabile utilizzare il parametro Whatif con tutti i comandi Set-Acl che possono riguardare più di una risorsa. In questo caso, il secondo comando della pipeline sarebbe "set-acl -aclobject $newacl -whatif". Tramite questo comando vengono elencati i file interessati dal comando. Dopo avere recuperato il risultato, è possibile eseguire di nuovo il comando senza il parametro Whatif.

Vedere anche

  • Get-Acl


Set-Alias

Crea o modifica un alias (nome alternativo) di un cmdlet o di un altro elemento di comando nella sessione corrente di Windows PowerShell.

Sintassi

Set-Alias [-Name] <string> [-Value] <string> [-Description <string>] [-Force] [-Option {<None> | <ReadOnly> | <Constant> | <Private> | <AllScope>}] [-PassThru] [-Scope <string>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Set-Alias consente di creare o modificare un alias, ovvero un nome alternativo, per un cmdlet o un elemento di comando, ad esempio una funzione, uno script, un file o un altro file eseguibile. È inoltre possibile utilizzare Set-Alias per riassegnare un alias corrente a un nuovo comando oppure modificare una qualsiasi delle proprietà di un alias, ad esempio la descrizione. A meno che l'alias non venga aggiunto al profilo di Windows PowerShell, le modifiche apportate a un alias andranno perse quando si esce dalla sessione o si chiude Windows PowerShell.

Parametri

-Description <string>

Specifica una descrizione dell'alias. È possibile digitare qualsiasi stringa. Se la descrizione include spazi, racchiuderla tra virgolette.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di impostare un alias di sola lettura. Utilizzare il parametro Option per creare un alias di sola lettura. Il parametro Force non può impostare un alias costante.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string>

Specifica il nuovo alias. In un alias è possibile utilizzare qualsiasi carattere alfanumerico, tuttavia il primo carattere non può essere un numero.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Option <ScopedItemOptions>

Imposta il valore della proprietà Options dell'alias.

I valori validi sono:

-- None: non imposta alcuna opzione. (valore predefinito)

-- ReadOnly: non è possibile modificare le proprietà dell'alias, a meno che non si utilizzi il parametro Force. È possibile utilizzare Remove-Item per eliminare l'alias.

-- Constant: non è possibile eliminare l'alias o modificarne le proprietà. Il valore Constant è disponibile solo quando si crea un alias. Non è possibile modificare in Constant l'opzione di un alias esistente.

-- Private: l'alias è disponibile solo nell'ambito specificato dal parametro Scope ed è invisibile in tutti gli altri ambiti.

-- AllScope: l'alias viene copiato in qualsiasi nuovo ambito creato.

Per visualizzare la proprietà Options degli alias, digitare "Get-Alias | Format-Table -property Name, Definition, Options -autosize".

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta l'alias. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Scope <string>

Specifica l'ambito in cui l'alias è considerato valido. I valori validi sono "Global", "Local", "Script" oppure un numero relativo all'ambito corrente, ovvero da 0 al numero di ambiti, dove 0 corrisponde all'ambito corrente e 1 al relativo padre. Il valore predefinito è "Local". Per ulteriori informazioni, vedere about_Scopes.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Value <string>

Specifica il nome dell'elemento del cmdlet o del comando che viene convertito in forma di alias.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Nessuno o System.Management.Automation.AliasInfo Quando si utilizza il parametro PassThru, Set-Alias genera un oggetto System.Management.Automation.AliasInfo che rappresenta l'alias. Negli altri casi, il cmdlet non genera alcun output.

Note

Un alias è un nome alternativo di un cmdlet o un elemento di comando. Per eseguire il cmdlet, è possibile utilizzare il relativo nome completo o qualsiasi alias valido. Per ulteriori informazioni, vedere about_Aliases.

Per creare un nuovo alias, utilizzare Set-Alias o New-Alias. Per eliminare un alias, utilizzare Remove-Item.

A un cmdlet possono essere associati più alias, tuttavia un alias può essere associato a un solo cmdlet alla volta. Se si utilizza set-alias per associare l'alias a un cmdlet diverso, l'alias non sarà più associato al cmdlet originale.

È possibile creare un alias per un cmdlet, ma non per un comando con parametri e valori. È ad esempio possibile creare un alias per Set-Location, ma non per "Set-Location C:\Windows\System32". Per creare un alias per il comando, creare una funzione che includa il comando, quindi creare un alias per la funzione.

Per salvare gli alias di una sessione e utilizzarli in una sessione diversa, aggiungere il comando set-alias al profilo di Windows PowerShell. Per impostazione predefinita, i profili non esistono. Per creare un profilo nel percorso archiviato nella variabile $profile, digitare "New-Item -type file -force $profile". Per vedere il valore della variabile $profile, digitare $profile.

È inoltre possibile salvare gli alias utilizzando Export-Alias per copiare gli alias della sessione in un file, quindi utilizzare Import-Alias per aggiungerli all'elenco degli alias di una nuova sessione.

È inoltre possibile fare riferimento a Set-Alias tramite il relativo alias predefinito "sal". Per ulteriori informazioni, vedere about_Aliases.

Esempio 1

C:\PS>set-alias -name list -value get-childitem

Descrizione
-----------
Con questo comando viene creato l'alias "list" per il cmdlet Get-ChildItem. Dopo aver creato l'alias, sarà possibile utilizzare "list" anziché "Get-ChildItem" sulla riga di comando e negli script.

Esempio 2

C:\PS>set-alias list get-location

Descrizione
-----------
Con questo comando l'alias "list" verrà associato al cmdlet Get-Location. Se "list" è l'alias di un altro cmdlet, l'associazione verrà modificata in modo che sia l'alias solo di Get-Location.

In questo comando verrà utilizzato lo stesso formato del comando illustrato nell'esempio precedente, tuttavia verranno omessi i nomi dei parametri facoltativi -Name e -Value. Quando si omettono i nomi dei parametri, i valori di tali parametri devono essere riportati nel comando nell'ordine specificato di seguito. In questo caso, il valore di -Name ("list") deve essere il primo parametro, mentre il valore di -Value ("get-location") il secondo parametro.

Esempio 3

C:\PS>set-alias scrub remove-item -option readonly -passthru | format-list

Descrizione
-----------
Con questo comando l'alias "scrub" verrà associato al cmdlet Remove-Item. Verrà utilizzata l'opzione "ReadOnly" per impedire che l'alias venga eliminato o assegnato a un altro cmdlet.

Il parametro PassThru indicherà a Windows PowerShell di passare al cmdlet Format-List attraverso la pipeline un oggetto che rappresenta il nuovo alias. Se il parametro PassThru venisse omesso, il cmdlet non restituirebbe alcun output da visualizzare in un elenco o in altro modo.

Esempio 4

C:\PS>Set-Alias np c:\windows\notepad.exe

Descrizione
-----------
Tramite questo comando l'alias "np" verrà associato al file eseguibile di Blocco note. Dopo il completamento del comando, per aprire Blocco note dalla riga di comando di Windows PowerShell sarà sufficiente digitare "np".

In questo esempio verrà dimostrato che è possibile creare alias per file eseguibili ed elementi diversi dai cmdlet.

Per rendere il comando più generico, è possibile utilizzare la variabile di ambiente "Windir" (${env:windir}) per rappresentare la directory C\Windows. La versione generica del comando è "set-alias np ${env:windir}\notepad.exe".

Esempio 5

C:\PS>function CD32 {set-location c:\windows\system32}

C:\PS>set-alias go cd32

Descrizione
-----------
Tramite questi comandi verrà illustrato come assegnare un alias a un comando con parametri o persino a una pipeline composta da molti comandi.

È possibile creare un alias per un cmdlet, ma non per un comando costituito da un cmdlet e dai relativi parametri. Se tuttavia si inserisce il comando in una funzione o in uno script, sarà possibile creare un nome di funzione o script utile e quindi uno o più alias per tale funzione o script.

In questo esempio l'utente desidera creare un alias per il comando "set-location c:\windows\system32", in cui "set-location" è un cmdlet e "C:\Windows\System32" è il valore del parametro Path.

A tale scopo, con il primo comando viene creata una funzione denominata "CD32" che include il comando Set-Location.

Tramite il secondo comando viene creato l'alias "go" per la funzione CD32. Quindi, per eseguire il comando Set-Location, l'utente potrà digitare "CD32" o "go".

Vedere anche

  • Get-Alias
  • New-Alias
  • Export-Alias
  • Import-Alias


Set-AuthenticodeSignature

Aggiunge una firma Authenticode a uno script o un altro file di Windows PowerShell.

Sintassi

Set-AuthenticodeSignature [-FilePath] <string[]> [-Certificate] <X509Certificate2> [-Force] [-HashAlgorithm <string>] [-IncludeChain <string>] [-TimestampServer <string>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Set-AuthenticodeSignature aggiunge una firma Authenticode a qualsiasi file che supporti SIP (Subject Interface Package).

In un file script di Windows PowerShell la firma corrisponde a un blocco di testo che indica la fine delle istruzioni eseguite nello script. Se quando viene eseguito questo cmdlet nel file è presente una firma, tale firma viene rimossa.

Parametri

-Certificate <X509Certificate2>

Specifica il certificato che verrà utilizzato per firmare lo script o il file. Immettere una variabile in cui è archiviato un oggetto che rappresenta il certificato o un'espressione che consente di ottenere il certificato.

Per trovare un certificato, utilizzare Get-PfxCertificate o il cmdlet Get-ChildItem nell'unità del certificato (Cert:). Se il certificato non è valido o non dispone di autorità di firma del codice, il comando ha esito negativo.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-FilePath <string[]>

Specifica il percorso di un file che deve essere firmato.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di aggiungere una firma a un file di sola lettura. Quando si utilizza il parametro Force, il cmdlet non può ignorare le limitazioni di sicurezza.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-HashAlgorithm <string>

Specifica l'algoritmo di hash che Windows utilizza per calcolare la firma digitale per il file. L'impostazione predefinita è SHA1, ovvero l'algoritmo di hash predefinito di Windows.

File firmati con un algoritmo di hash diverso potrebbero non essere riconosciuti in altri sistemi.

Obbligatorio? | false
Posizione? | named
Valore predefinito | SHA1
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-IncludeChain <string>

Determina quali certificati della catena di attendibilità dei certificati sono inclusi nella firma digitale. Il valore predefinito è "NotRoot".

I valori validi sono:

-- Signer: include solo il certificato del firmatario.

-- NotRoot: include tutti i certificati della catena, ad eccezione dell'autorità radice.

--All: include tutti i certificati della catena di certificati.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-TimestampServer <string>

Utilizza il server di timestamp specificato per aggiungere un timestamp alla firma. Digitare l'URL del server di timestamp sotto forma di stringa.

Il timestamp rappresenta l'ora esatta in cui il certificato è stato aggiunto al file. Un timestamp impedisce l'esito negativo dello script in caso di scadenza del certificato, poiché utenti e programmi sono in grado di verificare che il certificato fosse valido al momento della firma.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene il percorso a Set-AuthenticodeSignature.
Output | System.Management.Automation.Signature

Esempio 1

C:\PS>$cert=Get-ChildItem -Path cert:\CurrentUser\my -CodeSigningCert

C:\PS>Set-AuthenticodeSignature -FilePath PsTestInternet2.ps1 -certificate $cert

Descrizione
-----------
Tramite questi comandi viene recuperato un certificato per la firma del codice dal provider di certificati di Windows PowerShell e tale certificato viene utilizzato per firmare uno script di Windows PowerShell.

Nel primo comando vengono utilizzati il cmdlet Get-ChildItem e il provider di certificati di Windows PowerShell per ottenere i certificati nella sottodirectory Cert:\CurrentUser\My dell'archivio certificati. L'unità Cert: è l'unità esposta dal provider di certificati. Il parametro CodeSigningCert, supportato solo dal provider di certificati, consente di limitare i certificati recuperati esclusivamente a quelli con autorità di firma del codice. Tramite il comando il risultato viene archiviato nella variabile $cert.

Con il secondo comando viene utilizzato il cmdlet Set-AuthenticodeSignature per firmare lo script PSTestInternet2.ps1. Vengono utilizzati il parametro FilePath per specificare il nome dello script e il parametro Certificate per specificare che il certificato è archiviato nella variabile $cert.

Esempio 2

C:\PS>$cert = Get-PfxCertificate C:\Test\Mysign.pfx

C:\PS>Set-AuthenticodeSignature -Filepath ServerProps.ps1 -Cert $cert

Descrizione
-----------
Questi comandi utilizzano il cmdlet Get-PfxCertificate per trovare un certificato di firma del codice. Lo utilizzano per firmare uno script di Windows PowerShell.

Con il primo comando viene utilizzato il cmdlet Get-PfxCertificate per trovare il certificato C:\Test\MySign.pfx, che viene quindi archiviato nella variabile $cert.

Con il secondo comando viene utilizzato Set-AuthenticodeSignature per firmare lo script. Il parametro FilePath di Set-AuthenticodeSignature specifica il percorso del file di script che deve essere firmato e il parametro Cert passa la variabile $cert contenente il certificato a Set-AuthenticodeSignature.

Se il file del certificato è protetto da password, in Windows PowerShell viene richiesto di immettere la password.

Esempio 3

C:\PS>Set-AuthenticodeSignature -filepath c:\scripts\Remodel.ps1 -certificate $cert -IncludeChain All -TimeStampServer "http://timestamp.fabrikam.com/scripts/timstamper.dll"

Descrizione
-----------
Con questo comando viene aggiunta una firma digitale che include l'autorità radice nella catena di attendibilità ed è firmata da un server di timestamp di terze parti.

Vengono utilizzati il parametro FilePath per specificare lo script da firmare e il parametro Certificate per specificare il certificato salvato nella variabile $cert. Viene utilizzato il parametro IncludeChain per includere tutte le firme nella catena di attendibilità (compresa l'autorità radice). Viene inoltre utilizzato il parametro TimeStampServer per aggiungere un timestamp alla firma. In questo modo è possibile impedire l'esito negativo dello script al momento della scadenza del certificato.

Vedere anche

  • about_Signing
  • about_Execution_Policies
  • Get-AuthenticodeSignature
  • Get-PfxCertificate
  • Get-ExecutionPolicy
  • Set-ExecutionPolicy


Set-Content

Scrive o sostituisce il contenuto di un elemento con nuovo contenuto.

Sintassi

Set-Content [-LiteralPath] <string[]> [-Value] <Object[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Set-Content [-Path] <string[]> [-Value] <Object[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Set-Content è un cmdlet di elaborazione stringhe che scrive o sostituisce il contenuto dell'elemento specificato, ad esempio un file. Mentre il cmdlet Add-Content aggiunge contenuto a un file, Set-Content sostituisce il contenuto esistente. È possibile digitare il contenuto nel comando oppure inviarlo attraverso la pipeline a Set-Content.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di impostare il contenuto di un file anche se il file è di sola lettura. L'implementazione varia a seconda del provider. Per ulteriori informazioni, vedere about_Providers. Quando si utilizza il parametro Force, il cmdlet non può ignorare le limitazioni di sicurezza.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Modifica unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica il percorso dell'elemento che riceverà il contenuto. A differenza di Path, il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta il contenuto. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso dell'elemento che riceverà il contenuto. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Value <Object[]>

Specifica il nuovo contenuto dell'elemento.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Object È possibile reindirizzare un oggetto che contiene il nuovo valore per l'elemento a Set-Content.
Output | Nessuno o System.String Quando si utilizza il parametro Passthru, con Set-Content viene generato un oggetto System.String che rappresenta il contenuto. Negli altri casi, il cmdlet non genera alcun output.

Note

È inoltre possibile fare riferimento a Set-Content tramite il relativo alias predefinito "sc". Per ulteriori informazioni, vedere about_Aliases.

Set-Content è progettato per l'elaborazione di stringhe. Se si reindirizzano a Set-Content oggetti non corrispondenti a stringhe, tali oggetti vengono convertiti in stringhe prima di essere scritti. Per scrivere oggetti su file, utilizzare Out-File.

Il cmdlet Set-Content è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PsProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>set-content -path C:\Test1\test*.txt -value "Hello, World"

Descrizione
-----------
Tramite questo comando viene sostituito il contenuto di tutti i file nella directory Test1 i cui nomi iniziano con "test" con "Hello, World". In questo esempio viene illustrato come specificare il contenuto digitandolo nel comando.

Esempio 2

C:\PS>get-date | set-content C:\Test1\date.csv

Descrizione
-----------
Tramite questo comando viene creato un file di lunghezza variabile con valori delimitati da virgole (csv) che contiene solo la data e l'ora correnti. Viene utilizzato il cmdlet Get-Date per ottenere la data e l'ora di sistema correnti. Il risultato viene passato dall'operatore pipeline a Set-Content, il quale crea il file e scrive il contenuto.

Se la directory Test1 non esiste, il comando ha esito negativo, ma se il file non esiste, verrà creato dal comando.

Esempio 3

C:\PS>(get-content Notice.txt) | foreach-object {$_ -replace "Warning", "Caution"} | set-content Notice.txt

Descrizione
-----------
Tramite questo comando vengono sostituite tutte le istanze di "Warning" con "Caution" nel file Notice.txt.

Viene utilizzato il cmdlet Get-Content per ottenere il contenuto di Notice.txt. I risultati vengono inviati dall'operatore pipeline al cmdlet ForEach-Object, il quale applica l'espressione a ogni riga di contenuto in Get-Content. Nell'espressione vengono utilizzati il simbolo "$_" per fare riferimento all'elemento corrente e il parametro Replace per specificare il testo da sostituire.

Il contenuto modificato viene inviato da un altro operatore pipeline a Set-Content, il quale sostituisce il testo di Notice.txt con nuovo contenuto.

Le parentesi tra cui è racchiuso il comando Get-Content assicurano che l'operazione Get venga completata prima dell'inizio dell'operazione Set. Senza tali parentesi, il comando avrà esito negativo perché le due funzioni tenteranno di accedere allo stesso file.

Vedere anche

  • about_Providers
  • Add-Content
  • Get-Content
  • Clear-Content


Set-Date

Cambia l'ora del sistema del computer in un'ora specificata dall'utente.

Sintassi

Set-Date [-Adjust] <TimeSpan> [-DisplayHint {<Date> | <Time> | <DateTime>}] [-Confirm] [-WhatIf] [<CommonParameters>]

Set-Date [-Data] <DateTime> [-DisplayHint {<Date> | <Time> | <DateTime>}] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Set-Date consente di cambiare la data e l'ora del sistema del computer in una data e un'ora specificata dall'utente. È possibile specificare una nuova data e/o ora digitando una stringa oppure passando un oggetto DateTime o TimeSpan a Set-Date. Per specificare una nuova data o ora, utilizzare il parametro Date. Per specificare un intervallo di modifica, utilizzare il parametro Adjust.

Parametri

-Adjust <TimeSpan>

Aggiunge o sottrae il valore specificato dalla data e dall'ora corrente. È possibile digitare un nuovo orario nel formato di data e ora standard per le impostazioni internazionali in uso oppure utilizzare il parametro Adjust per passare un oggetto TimeSpan da New-TimeSpan a Set-Date.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Data <DateTime>

Cambia la data e l'ora nei valori specificati. È possibile digitare una nuova data nel formato breve e un'ora nel formato standard per le impostazioni internazionali in uso. In alternativa, è possibile passare un oggetto Date-Time da Get-Date.

Se si specifica una data, ma non un'ora, Set-Date imposta l'ora sulla mezzanotte della data specificata. Se si specifica solo l'ora, la data non verrà modificata.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-DisplayHint <DisplayHintType>

Determina gli elementi della data e dell'ora che vengono visualizzati.

I valori validi sono:

-- date: visualizza solo la data

-- time: visualizza solo l'ora

-- datetime: visualizza la data e l'ora

Questo parametro interessa solo la visualizzazione. Non influisce sull'oggetto DateTime recuperato da Get-Date.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.DateTime È possibile reindirizzare una data a Set-Date.
Output | System.DateTime Set-Date restituisce un oggetto che rappresenta la data impostata.

Note

Utilizzare questo cmdlet con cautela. La modifica della data e dell'ora potrebbe impedire al computer di ricevere eventi e aggiornamenti a livello di sistema che vengono attivati in base a una data o a un'ora specifica. Utilizzare i parametri -WhatIf e -Confirm per evitare errori.

È possibile utilizzare metodi .NET standard con oggetti DateTime e TimeSpan utilizzati con Set-Date, ad esempio AddDays, AddMonths e FromFileTime. Per ulteriori informazioni, vedere "DateTime Methods" e "TimeSpan Methods."

Esempio 1

C:\PS>Set-Date -Date (Get-Date).AddDays(3)

Descrizione
-----------
Tramite questo comando verranno aggiunti tre giorni alla data del sistema corrente. La modifica non influirà sull'ora. Verrà utilizzato il parametro Date per specificare la data. Verrà quindi utilizzato il cmdlet Get-Date per ottenere la data e l'ora correnti e verrà applicato il metodo AddDays di .NET per gli oggetti DateTime il cui valore è 3 (giorni).

Esempio 2

C:\PS>set-date -adjust -0:10:0 -displayHint time

Descrizione
-----------
Tramite questo comando l'ora corrente del sistema verrà riportata indietro di 10 minuti. Verrà utilizzato il parametro Adjust per specificare un intervallo di modifica e la variazione dell'ora (meno 10 minuti) nel formato dell'ora standard per le impostazioni internazionali. Il parametro DisplayHint indicherà a Windows PowerShell di visualizzare solo l'ora, ma non influirà sull'oggetto DateTime restituito da Set-Date.

Esempio 3

C:\PS>$t = get-date

C:\PS>set-date -date $t

Descrizione
-----------
Tramite questi comandi la data e l'ora del sistema del computer verranno modificate in quelle salvate nella variabile $t. Tramite il primo comando la data verrà ottenuta e archiviata in $t. Nel secondo comando verrà utilizzato il parametro Date per passare al cmdlet Set-Date l'oggetto DateTime archiviato in $t.

Esempio 4

C:\PS>$90mins = new-timespan -minutes 90

C:\PS>set-date -adjust $90mins

Descrizione
-----------
Tramite questi comandi l'ora del sistema del computer locale verrà spostata in avanti di 90 minuti. Nel primo comando verrà utilizzato il cmdlet New-Timespan per creare un oggetto TimeSpan con un intervallo di 90 minuti. L'oggetto TimeSpan verrà quindi salvato nella variabile $90mins. Nel secondo comando verrà utilizzato il parametro Adjust di Set-Date per regolare la data in base al valore dell'oggetto TimeSpan archiviato nella variabile $90mins.

Vedere anche

  • Get-Date
  • New-TimeSpan


Set-ExecutionPolicy

Modifica le preferenze utente per quanto riguarda il criterio di esecuzione di Windows PowerShell.

Sintassi

Set-ExecutionPolicy [-ExecutionPolicy] {<Unrestricted> | <RemoteSigned> | <AllSigned> | <Restricted> | <Default> | <Bypass> | <Undefined>} [[-Scope] {<Process> | <CurrentUser> | <LocalMachine> | <UserPolicy> | <MachinePolicy>}] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Set-ExecutionPolicy modifica le preferenze utente per quanto riguarda il criterio di esecuzione di Windows PowerShell.

Per eseguire questo comando in Windows Vista, Windows Server 2008 e versioni successive di Windows, è necessario avviare Windows PowerShell con l'opzione "Esegui come amministratore", anche se l'utente è un membro del gruppo Administrators nel computer.

Il criterio di esecuzione fa parte della strategia di sicurezza di Windows PowerShell. Esso determina se è possibile caricare file di configurazione, incluso il profilo di Windows PowerShell, ed eseguire script, nonché determina quali script, se presenti, devono essere firmati digitalmente per poter essere eseguiti.

Per ulteriori informazioni, vedere about_Execution_Policies.

Parametri

-ExecutionPolicy <ExecutionPolicy>

Specifica un nuovo criterio di esecuzione per la shell. Il nome del parametro ("Name") è facoltativo.

I valori validi sono:

-- Restricted: non consente di caricare file di configurazione o eseguire script. "Restricted" rappresenta il valore predefinito.

-- AllSigned: richiede che tutti gli script e i file di configurazione siano firmati da un autore attendibile, inclusi gli script creati nel computer locale.

-- RemoteSigned: richiede che tutti gli script e i file di configurazione scaricati da Internet siano firmati da un autore attendibile.

-- Unrestricted: consente di caricare tutti i file di configurazione e di eseguire tutti gli script. Se si esegue uno script non firmato che è stato scaricato da Internet, prima dell'esecuzione viene richiesta l'autorizzazione dell'utente.

-- Bypass: nessun elemento viene bloccato e non sono presenti avvisi o prompt.

-- Undefined: rimuove i criteri di esecuzione attualmente assegnati dall'ambito corrente. Questo parametro non rimuove i criteri di esecuzione impostati in un ambito di Criteri di gruppo.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Force

Elimina tutti i prompt. Per impostazione predefinita, Set-ExecutionPolicy visualizza un avviso ogni volta che si modificano i criteri di esecuzione.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Scope <ExecutionPolicyScope>

Specifica l'ambito dei criteri di esecuzione. L'impostazione predefinita è LocalMachine.

I valori validi sono:

-- Processo: i criteri di esecuzione influiscono solo sul processo corrente di Windows PowerShell.

-- CurrentUser: i criteri di esecuzione influiscono solo sull'utente corrente.

-- LocalMachine: i criteri di esecuzione influiscono su tutti gli utenti del computer.

Per rimuovere criteri di esecuzione da un determinato ambito, impostare i criteri di esecuzione relativi su Undefined.

Obbligatorio? | false
Posizione? | 2
Valore predefinito | LocalMachine
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Microsoft.PowerShell.ExecutionPolicy, System.String È possibile reindirizzare un oggetto criteri di esecuzione o una stringa che contiene il nome dei criteri di esecuzione su Set-ExecutionPolicy.
Output | Nessuno Questo cmdlet non restituisce alcun output.

Note

Quando si utilizza Set-ExecutionPolicy, le nuove preferenze utente vengono scritte nel Registro di sistema e rimangono invariate finché l'utente non le modifica.

Se, tuttavia, i Criteri di gruppo relativi all'attivazione dell'esecuzione degli script sono attivati per il computer o per l'utente, le preferenze utente vengono scritte nel Registro di sistema ma non vengono applicate e in Windows PowerShell viene visualizzato un messaggio che illustra il conflitto. Non è possibile utilizzare Set-ExecutionPolicy per sostituire un criterio di gruppo, anche se le preferenze utente sono più restrittive del criterio.

Esempio 1

C:\PS>set-executionpolicy remotesigned

Descrizione
-----------
Tramite questo comando le preferenze utente per il criterio di esecuzione della shell vengono impostate su RemoteSigned.

Esempio 2

C:\PS>Set-ExecutionPolicy Restricted

Set-ExecutionPolicy : Windows PowerShell updated your local preference successfully, but the setting is overridden by the group policy applied to your system. Due to the override, your shell will retain its current effective execution policy of "AllSigned". Contact your group policy administrator for more information.
At line:1 char:20
+ set-executionpolicy  <<<< restricted

Descrizione
-----------
Questo comando tenta di impostare il criterio di esecuzione della shell su "Restricted". L'impostazione "Restricted" viene scritta nel Registro di sistema ma, poiché entra in conflitto con un criterio di gruppo, non viene applicata, anche se è più restrittiva del criterio.

Esempio 3

C:\PS>invoke-command -computername Server01 -scriptblock {get-executionpolicy} | set-executionpolicy -force

Descrizione
-----------
Questo comando ottiene il criterio di esecuzione da un computer remoto e applica tale criterio al computer locale.

Il comando utilizza il cmdlet Invoke-Command per inviare il comando al computer remoto. Poiché è possibile reindirizzare un oggetto ExecutionPolicy (Microsoft.PowerShell.ExecutionPolicy) a Set-ExecutionPolicy, il comando Set-ExecutionPolicy non richiede un parametro ExecutionPolicy.

Il comando non dispone di un parametro Force che elimina il prompt dell'utente.

Esempio 4

C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy AllSigned -force

C:\PS> get-executionpolicy -list

        Scope   ExecutionPolicy
        -----   ---------------
MachinePolicy         Undefined
   UserPolicy         Undefined
      Process         Undefined
  CurrentUser         AllSigned
 LocalMachine      RemoteSigned

C:\PS> get-executionpolicy
AllSigned

Descrizione
-----------
In questo esempio viene illustrato come impostare criteri di esecuzione per un determinato ambito.

Con il primo comando viene utilizzato il cmdlet Set-ExecutionPolicy per impostare criteri di esecuzione di AllSigned per l'utente corrente. Viene utilizzato il parametro Force per eliminare i prompt dell'utente.

Con il secondo comando viene utilizzato il parametro List di Get-ExecutionPolicy per ottenere i criteri di esecuzione impostati in ogni ambito. I risultati mostrano che i criteri di esecuzione impostati per l'utente corrente sono diversi dai criteri di esecuzione impostati per tutti gli utenti del computer.

Con il terzo comando viene utilizzato il cmdlet Get-ExecutionPolicy senza parametri per ottenere i criteri di esecuzione effettivi per l'utente corrente nel computer locale. I risultati confermano che i criteri di esecuzione impostati per l'utente corrente hanno la precedenza su quelli impostati per tutti gli utenti.

Esempio 5

C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy Undefined

Descrizione
-----------
Con questo comando viene utilizzato il valore Undefined dei criteri di esecuzione per rimuovere effettivamente i criteri di esecuzione impostati per l'ambito dell'utente corrente. Di conseguenza, i criteri di esecuzione impostati in Criteri di gruppo o nell'ambito LocalMachine (tutti gli utenti) sono effettivi.

Se i criteri di esecuzione vengono impostati in tutti gli ambiti su Undefined e Criteri di gruppo non è impostato, i criteri di esecuzione predefiniti, Restricted, sono effettivi per tutti gli utenti del computer.

Vedere anche

  • Get-ExecutionPolicy
  • Set-AuthenticodeSignature
  • Get-AuthenticodeSignature
  • about_Execution_Policies
  • about_Signing


Set-Item

Modifica il valore di un elemento nel valore specificato nel comando.

Sintassi

Set-Item [-LiteralPath] <string[]> [[-Value] <Object>] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Set-Item [-Path] <string[]> [[-Value] <Object>] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Tramite il cmdlet Set-Item viene modificato il valore di un elemento, ad esempio una variabile o una chiave del Registro di sistema, nel valore specificato nel comando.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di impostare elementi che non possono essere modificati in altro modo, ad esempio alias di sola lettura o variabili. Il cmdlet non può cambiare gli alias o le variabile costanti. L'implementazione varia a seconda del provider. Per ulteriori informazioni, vedere about_Providers. Quando si utilizza il parametro Force, il cmdlet non può ignorare le limitazioni di sicurezza.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Modifica unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica un percorso dei nuovi elementi. A differenza di Path, il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Passa un oggetto che rappresenta l'elemento alla pipeline. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string[]>

Specifica un percorso dei nuovi elementi. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Value <Object>

Specifica un nuovo valore per l'elemento.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Object È possibile reindirizzare un oggetto che rappresenta il nuovo valore dell'elemento a Set-Item.
Output | Nessuno o un oggetto che rappresenta l'elemento nuovo o modificato. Quando si utilizza il parametro Passthru, con Set-Item viene generato un oggetto che rappresenta l'elemento. Negli altri casi, il cmdlet non genera alcun output.

Note

È inoltre possibile fare riferimento a Set-Item tramite il relativo alias predefinito "si". Per ulteriori informazioni, vedere about_Aliases.

Il cmdlet Set-Item non è supportato dal provider FileSystem di Windows PowerShell. Per modificare i valori di elementi nel file system, utilizzare Set-Content.

Nelle unità Registry, HKLM: e HKCU:, tramite Set-Item vengono modificati i dati nel valore (predefinito) di una chiave del Registro di sistema. Per creare e modificare i nomi delle chiavi del Registro di sistema, utilizzare New-Item e Rename-Item. È possibile utilizzare New-ItemProperty, Set-ItemProperty e Rename-ItemProperty per modificare nomi e dati nei valori del Registro di sistema.

Il cmdlet Set-Item è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PsProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>set-item -path alias:np -value c:\windows\notepad.exe

Descrizione
-----------
Tramite questo comando viene creato un alias di "np" per Blocco note.

Esempio 2

C:\PS>set-item -path env:UserRole -value Administrator

Descrizione
-----------
Questo comando utilizza il cmdlet Set-Item per modificare il valore della variabile di ambiente "UserRole" in "Administrator".

Esempio 3

C:\PS>set-item -path function:prompt -value {'PS '+ $(Get-Date -format t) + " " + $(Get-Location) + '> '}

Descrizione
-----------
Tramite questo comando viene utilizzato il cmdlet Set-Item per modificare la funzione "prompt" affinché le informazioni relative a data e ora vengano visualizzate prima del percorso.

Esempio 4

C:\PS>set-item -path function:prompt -options "AllScope,ReadOnly"

Descrizione
-----------
Tramite questo comando vengono impostate le opzioni AllScope e ReadOnly per la funzione "prompt". Viene utilizzato il parametro dinamico Options del cmdlet Set-Item. Il parametro Options è disponibile in Set-Item solo se utilizzato con il provider Alias o Function.

Vedere anche

  • about_Providers
  • Get-Item
  • New-Item
  • Remove-Item
  • Clear-Item
  • Invoke-Item
  • Rename-Item
  • Move-Item
  • Copy-Item


Set-ItemProperty

Crea o modifica il valore di una proprietà di un elemento.

Sintassi

Set-ItemProperty [-LiteralPath] <string[]> -InputObject <psobject> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Set-ItemProperty [-Path] <string[]> -InputObject <psobject> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Set-ItemProperty [-LiteralPath] <string[]> [-Name] <string> [-Value] <Object> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Set-ItemProperty [-Path] <string[]> [-Name] <string> [-Value] <Object> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Set-ItemProperty modifica il valore della proprietà dell'elemento specificato. È possibile utilizzare il cmdlet per stabilire o modificare le proprietà degli elementi. Ad esempio, è possibile utilizzare Set-ItemProperty per impostare il valore della proprietà IsReadOnly di un oggetto file su true.

È inoltre possibile utilizzare Set-ItemProperty per creare e modificare dati e valori del Registro di sistema. Ad esempio, è possibile aggiungere una nuova voce del Registro di sistema a una chiave e stabilirne o modificarne il valore.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Exclude <string[]>

Specifica gli elementi su cui il cmdlet non agirà e include tutti gli altri.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di impostare una proprietà su elementi altrimenti inaccessibili dall'utente. L'implementazione varia a seconda del provider. Per ulteriori informazioni, vedere about_Providers.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Specifica solo gli elementi sui quali il cmdlet può eseguire operazioni, escludendo tutti gli altri.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica l'oggetto che dispone delle proprietà che si desidera modificare. Immettere una variabile che contiene l'oggetto oppure un comando che consente di ottenere l'oggetto.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica un percorso della proprietà dell'elemento. Il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Name <string>

Specifica il nome della proprietà.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta la proprietà dell'elemento. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string[]>

Specifica il percorso degli elementi con la proprietà da impostare.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Value <Object>

Specifica il valore della proprietà.

Obbligatorio? | true
Posizione? | 3
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare oggetti a Set-ItemProperty.
Output | Nessuno o System.Management.Automation.PSCustomObject Quando si utilizza il parametro PassThru, Set-ItemProperty genera un oggetto PSCustomObject che rappresenta l'elemento modificato e il nuovo valore della proprietà. Negli altri casi, il cmdlet non genera alcun output.

Note

Il cmdlet Set-ItemProperty è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>set-itemproperty -path c:\GroupFiles\final.doc -name IsReadOnly -value $true

Descrizione
-----------
Questo comando imposta il valore della proprietà IsReadOnly del file final.doc su true.

Nel comando viene utilizzato il cmdlet Set-ItemProperty per modificare il valore della proprietà del file final.doc. Viene utilizzato il parametro Path per specificare il file. Vengono utilizzati il parametro Name per specificare il nome della proprietà e il parametro Value per il nuovo valore.

La variabile automatica $true rappresenta il valore TRUE. Per ulteriori informazioni, vedere about_Automatic_Variables.

Il file è un oggetto System.IO.FileInfo e IsReadOnly è solo una delle relative proprietà. Per visualizzare tutte le proprietà e i metodi di un oggetto FileInfo, reindirizzare il file al cmdlet Get-Member. Ad esempio, "final.doc | get-member".

Esempio 2

C:\PS>set-itemproperty -path HKLM:\Software\MyCompany -name NoOfEmployees -value 823

C:\PS>get-itemproperty -path HKLM:\Software\MyCompany

PSPath        : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\mycompany
PSParentPath  : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software
PSChildName   : mycompany
PSDrive       : HKLM
PSProvider    : Microsoft.PowerShell.Core\Registry
NoOfLocations : 2
NoOfEmployees : 823

C:\PS>set-itemproperty -path HKLM:\Software\MyCompany -name NoOfEmployees -value 824
C:\PS>get-itemproperty -path HKLM:\Software\MyCompany

PSPath        : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\mycompany
PSParentPath  : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software
PSChildName   : mycompany
PSDrive       : HKLM
PSProvider    : Microsoft.PowerShell.Core\Registry
NoOfLocations : 2
NoOfEmployees : 824

Descrizione
-----------
In questo esempio viene illustrato come utilizzare Set-ItemProperty per creare una nuova voce del Registro di sistema e assegnare un valore alla voce. Viene creata la voce NoOfEmployees nella chiave MyCompany in HKLM\Software e il valore viene impostato su 823.

Poiché le voci del Registro di sistema sono considerate proprietà delle chiavi del Registro di sistema (che sono elementi), viene utilizzato Set-ItemProperty per creare le voci del Registro di sistema e per stabilire e modificare i valori.

Nel primo comando viene utilizzato il cmdlet Set-ItemProperty per creare la voce del Registro di sistema. Viene utilizzato il parametro Path per specificare il percorso nell'unità HKLM: e la chiave Software\MyCompany. Vengono utilizzati il parametro Name per specificare il nome della voce e il parametro Value per specificare un valore.

Nel secondo comando viene utilizzato il cmdlet Get-ItemProperty per vedere la nuova voce del Registro di sistema. Se si utilizzano i cmdlet Get-Item o Get-ChildItem, le voci non vengono visualizzate, perché sono proprietà di una chiave, non elementi o elementi figlio.

Il terzo comando modifica il valore della voce NoOfEmployees in 824.

È inoltre possibile utilizzare il cmdlet New-ItemProperty per creare la voce del Registro di sistema e il relativo valore, quindi utilizzare Set-ItemProperty per modificare il valore.

Per ulteriori informazioni sull'unità HKLM:, digitare "get-help get-psdrive". Per ulteriori informazioni sull'utilizzo di Windows PowerShell per la gestione del Registro di sistema, digitare "get-help registry".

Esempio 3

C:\PS>get-childitem weekly.txt | set-itemproperty -name IsReadOnly -value $true

Descrizione
-----------
Questi comandi illustrano come utilizzare un operatore pipeline (|) per inviare un elemento a Set-ItemProperty.

Nella prima parte del comando viene utilizzato il cmdlet Get-ChildItem per ottenere un oggetto che rappresenta il file Weekly.txt. Viene utilizzato un operatore pipeline per inviare l'oggetto file a Set-ItemProperty. Il comando Set-ItemProperty utilizza i parametri Name e Value per specificare la proprietà e il nuovo valore.

Questo comando equivale all'utilizzo del parametro InputObject per specificare l'oggetto ottenuto da Get-ChildItem.

Vedere anche

  • about_Providers
  • Get-ItemProperty
  • New-ItemProperty
  • Clear-ItemProperty
  • Remove-ItemProperty
  • Rename-ItemProperty
  • Move-ItemProperty
  • Copy-ItemProperty


Set-Location

Imposta il percorso di lavoro corrente su un percorso specificato.

Sintassi

Set-Location [-LiteralPath] <string> [-PassThru] [-UseTransaction] [<CommonParameters>]

Set-Location [[-Path] <string>] [-PassThru] [-UseTransaction] [<CommonParameters>]

Set-Location [-StackName <string>] [-PassThru] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Set-Location imposta il percorso di lavoro corrente su un percorso specificato. Può trattarsi di una directory, di una sottodirectory, di un percorso del Registro di sistema o di un altro stack di percorsi.

Parametri

-LiteralPath <string>

Specifica un nuovo percorso. Il valore del parametro LiteralPath viene utilizzato esattamente come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Passa un oggetto che rappresenta il percorso alla pipeline. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string>

Questo parametro viene utilizzato per impostare il percorso su un nuovo percorso di lavoro.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-StackName <string>

Nome dello stack sui cui viene impostato il percorso.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso (ma non un percorso letterale) a Set-Location.
Output | Nessuno o System.Management.Automation.PathInfo Quando si utilizza il parametro PassThru, Set-Location genera un oggetto System.Management.Automation.PathInfo che rappresenta il percorso. Negli altri casi, il cmdlet non genera alcun output.

Note

Il cmdlet Set-Location è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>set-location HKLM:

Descrizione
-----------
Il percorso corrente viene impostato su quello specificato, in questo caso il provider HKLM.

Esempio 2

C:\PS>set-location env: -passthru

Path
----
Env:\

Descrizione
-----------
Il percorso corrente viene impostato su quello specificato, in questo caso il provider di variabili di ambiente.

Esempio 3

C:\PS>set-location C:

Descrizione
-----------
Il percorso corrente viene impostato su quello specificato, in questo caso l'unità C: nel provider File System.

Vedere anche

  • about_Providers
  • Get-Location
  • Pop-Location
  • Push-Location


Set-PSBreakpoint

Imposta un punto di interruzione su una riga, un comando o una variabile.

Sintassi

Set-PSBreakpoint -Command <string[]> [[-Script] <string[]>] [-Azione <scriptblock>] [<CommonParameters>]

Set-PSBreakpoint [-Script] <string[]> [-Line] <Int32[]> [[-Column] <int>] [-Azione <scriptblock>] [<CommonParameters>]

Set-PSBreakpoint -Variable <string[]> [[-Script] <string[]>] [-Mode {<Read> | <Write> | <ReadWrite>}] [-Azione <scriptblock>] [<CommonParameters>]

Descrizione

Il cmdlet Set-PSBreakpoint imposta un punto d'interruzione in uno script o in qualsiasi comando in esecuzione nella sessione corrente. È possibile utilizzare Set-PSBreakpoint per impostare un punto d'interruzione prima dell'esecuzione di uno script o di un comando oppure durante il debug, se arrestato in corrispondenza di un altro punto d'interruzione.

Nota: Set-PSBreakpoint non può impostare un punto d'interruzione in un computer remoto. Per eseguire il debug di uno script in un computer remoto, copiare lo script nel computer locale, quindi eseguirne il debug a livello locale.

Ciascun comando Set-PSBreakpoint crea uno dei tre tipi di punto d'interruzione che seguono:

-- Punto di interruzione riga: imposta i punti d'interruzione su determinate coordinate di riga e colonna.

-- Punto di interruzione comando: imposta i punti d'interruzione su comandi e funzioni.

-- Punto di interruzione variabile: imposta i punti d'interruzione sulle variabili.

È possibile impostare un punto d'interruzione su più righe, comandi o variabili in un solo comando Set-PSBreakpoint, ma ciascun comando Set-PSBreakpoint imposta un solo tipo di punto d'interruzione.

In un punto d'interruzione, Windows PowerShell interrompe temporaneamente l'esecuzione e fornisce il controllo al debugger. Il prompt dei comandi viene modificato in "DBG>" e un set di comandi del debugger diventa disponibile. Tuttavia, è possibile utilizzare il parametro Action per specificare una risposta alternativa, ad esempio le condizioni per il punto d'interruzione o le istruzioni per eseguire attività aggiuntive come la registrazione o la diagnostica.

Il cmdlet Set-PSBreakpoint è uno dei diversi cmdlet progettati per il debug degli script di Windows PowerShell. Per ulteriori informazioni sul debugger di Windows PowerShell, vedere about_Debuggers.

Parametri

-Azione <scriptblock>

Specifica i comandi in esecuzione in ciascun punto d'interruzione anziché interromperli. Immettere un blocco di script che contiene i comandi. È possibile utilizzare questo parametro per impostare punti d'interruzione condizionali o eseguire altre attività come la verifica o la registrazione.

Se viene omesso questo parametro o non viene specificata alcuna azione, l'esecuzione viene arrestata al punto d'interruzione e viene avviato il debugger.

Quando viene utilizzato il parametro Action, il blocco di script di Action viene eseguito in ciascun punto d'interruzione. L'esecuzione non viene arrestata a meno che il blocco di script non includa la parola chiave Break. Se si utilizza la parola chiave Continue nel blocco di script, l'esecuzione viene ripresa fino al punto d'interruzione successivo.

Per ulteriori informazioni, vedere about_Script_Blocks, about_Break e about_Continue.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Column <int>

Specifica il numero della colonna nel file script in cui viene interrotta l'esecuzione. Immettere un solo numero di colonna. Il valore predefinito è la colonna 1.

Il valore di Column viene utilizzato con il valore del parametro Line per specificare il punto d'interruzione. Se nel parametro Line vengono specificate più righe, nel parametro Column viene impostato un punto d'interruzione sulla colonna specificata in ciascuna delle righe specificate. Windows PowerShell interrompe l'esecuzione prima dell'istruzione o dell'espressione che include il carattere nella posizione di riga e colonna specificata.

Le colonne vengono contate dal margine superiore sinistro partendo dalla colonna 1 (non 0). Se si specifica una colonna che non esiste nello script, non viene dichiarato un errore, ma il punto di interruzione non viene mai eseguito.

Obbligatorio? | false
Posizione? | 3
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Command <string[]>

Imposta un punto di interruzione comando. Immettere nomi di comando, ad esempio "Get-Process" o nomi di funzione. È consentito l'utilizzo di caratteri jolly.

L'esecuzione viene interrotta prima dell'esecuzione di ogni istanza di ciascun comando. Se il comando è una funzione, l'esecuzione viene interrotta ogni volta che viene chiamata la funzione e a ogni sezione BEGIN, PROCESS ed END.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-Line <Int32[]>

Imposta un punto di interruzione riga in uno script. Immettere uno o più numeri di riga, separati da virgole. Windows PowerShell si arresta immediatamente prima dell'esecuzione dell'istruzione che inizia su ciascuna delle righe specificate.

Le righe vengono contate dal margine superiore sinistro del file di script partendo dalla riga 1 (non 0). Se si specifica una riga vuota, l'esecuzione viene interrotta prima della riga non vuota successiva. Se la riga non è compresa nell'intervallo, il punto d'interruzione non verrà mai eseguito.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Mode <VariableAccessMode>

Determina la modalità di accesso che attiva i punti di interruzione variabile. Il valore predefinito è Write.

Questo parametro è valido solo quando il parametro Variable viene utilizzato nel comando. La modalità si applica a tutti i set di punti d'interruzione nel comando.

I valori validi sono:

-- Write: arresta immediatamente l'esecuzione prima che un nuovo valore venga scritto nella variabile.

-- Read: arresta l'esecuzione quando viene letta la variabile, ovvero quando si accede al relativo valore, da assegnare, visualizzare o utilizzare. In modalità di lettura, l'esecuzione non viene interrotta quando viene modificato il valore delle variabili.

-- ReadWrite: arresta l'esecuzione quando la variabile viene letta o scritta.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Script <string[]>

Imposta un punto d'interruzione in ciascun file di script specificato. Immettere i percorsi e i nomi di uno o più file di script. Se i file si trovano nella directory corrente, è possibile omettere il percorso. È consentito l'utilizzo di caratteri jolly.

Per impostazione predefinita, punti di interruzione variabile e punti di interruzione comando vengono impostati su qualsiasi comando in esecuzione nella sessione corrente. Questo parametro è obbligatorio solo durante l'impostazione di un punto di interruzione riga.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-Variable <string[]>

Imposta un punto di interruzione variabile. Immettere un elenco di variabili separate da virgole senza simboli di dollaro ($).

Utilizzare i parametri Mode per determinare la modalità di accesso che attiva i punti di interruzione. La modalità predefinita Write arresta l'esecuzione immediatamente prima che un nuovo valore venga scritto nella variabile.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a Set-PSBreakpoint.
Output | Oggetto punto di interruzione (System.Management.Automation.LineBreakpoint, System.Management.Automation.VariableBreakpoint, System.Management.Automation.CommandBreakpoint) Set-PSBreakpoint restituisce un oggetto che rappresenta ogni punto d'interruzione impostato.

Note

Set-PSBreakpoint non può impostare un punto d'interruzione in un computer remoto. Per eseguire il debug di uno script in un computer remoto, copiare lo script nel computer locale, quindi eseguirne il debug a livello locale.

Quando si imposta un punto d'interruzione su più di una riga, un comando o una variabile, Set-PSBreakpoint genera un oggetto punto di interruzione per ogni voce.

Quando si imposta un punto d'interruzione su una funzione o una variabile al prompt dei comandi, è possibile impostare il punto d'interruzione prima o dopo la creazione della funzione o della variabile.

Esempio 1

C:\PS>set-psbreakpoint -script sample.ps1 -line 5

Column     : 0
Line       : 5
Action     :
Enabled    : True
HitCount   : 0
Id         : 0
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Descrizione
-----------
Questo comando imposta un punto d'interruzione sulla riga 5 nello script Sample.ps1. Di conseguenza, durante l'esecuzione dello script, questa viene interrotta immediatamente prima dell'esecuzione della riga 5.

Quando si imposta un nuovo punto d'interruzione per numero di riga, il cmdlet Set-PSBreakpoint genera un oggetto punto di interruzione riga (System.Management.Automation.LineBreakpoint) che include l'ID del punto d'interruzione e il numero di passaggi, come illustrato nell'output di esempio seguente.

Esempio 2

C:\PS>set-psbreakpoint -command Increment -script sample.ps1

Command    : Increment
Action     :
Enabled    : True
HitCount   : 0
Id         : 1
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Descrizione
-----------
Questo comando crea un punto di interruzione comando nella funzione Increment nel cmdlet Sample.ps1. Lo script interrompe l'esecuzione subito prima di ogni chiamata alla funzione specificata.

Il risultato sarà un oggetto punto di interruzione comando. Prima dell'esecuzione dello script, il valore della proprietà HitCount è 0.

Esempio 3

C:\PS>set-psbreakpoint -script sample.ps1 -variable Server -Mode ReadWrite

Descrizione
-----------
Questo comando imposta un punto d'interruzione sulla variabile Server nello script Sample.ps1. Utilizza il parametro Mode con un valore di ReadWrite per interrompere l'esecuzione quando il valore della variabile viene letto e subito prima che il valore venga modificato.

Esempio 4

C:\PS>set-psbreakpoint -script Sample.ps1 -command "write*"

Descrizione
-----------
Questo comando imposta un punto d'interruzione su ogni comando nello script Sample.ps1 che inizia con "write", ad esempio "write-host".

Esempio 5

C:\PS>set-psbreakpoint -script test.ps1 -command DiskTest `
  -action { (if $disk -gt 2) { break } }

Descrizione
-----------
Questo comando interrompe l'esecuzione alla funzione DiskTest nello script Test.ps1 solo quando il valore della variabile $disk è maggiore di 2.

Utilizza il cmdlet Set-PSBreakpoint per impostare un punto di interruzione comando sulla funzione DiskTest. Il valore dell'azione è un blocco di script che verifica il valore della variabile $disk nella funzione.

L'azione utilizza la parola chiave BREAK per interrompere l'esecuzione se la condizione viene soddisfatta. L'alternativa (impostazione predefinita) è CONTINUE.

Esempio 6

C:\PS>set-psbreakpoint -command checkpoint-computer

Id       : 0
Command  : checkpoint-computer
Enabled  : True
HitCount : 0
Action   :

C:\PS> function CheckLog {
>> get-eventlog -log Application |
>> where {($_.source -like "TestApp") -and ($_.Message -like "*failed*")}
>>}
>>
C:\PS> Checklog
DEBUG: Hit breakpoint(s)
DEBUG:  Function breakpoint on 'prompt:Checklog'
C:\PS>>>

Descrizione
-----------
Questo comando imposta un punto d'interruzione sulla funzione CheckLog. Poiché il comando non specifica uno script, il punto d'interruzione viene impostato su qualsiasi attività in esecuzione nella sessione corrente. Il debugger viene interrotto quando la funzione viene chiamata, non quando viene dichiarata.

Esempio 7

C:\PS>set-psbreakpoint -script sample.ps1 -line 1, 14, 19 -column 2 -action {&(log.ps1)}

Column     : 2
Line       : 1
Action     :
Enabled    : True
HitCount   : 0
Id         : 6
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Column     : 2
Line       : 14
Action     :
Enabled    : True
HitCount   : 0
Id         : 7
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Column     : 2
Line       : 19
Action     :
Enabled    : True
HitCount   : 0
Id         : 8
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Descrizione
-----------
Questo comando imposta tre punti d'interruzione riga nello script Sample.ps1. Imposta un punto d'interruzione alla colonna 2 su ciascuna riga specificata nello script. L'azione specificata nel parametro Action si applica a tutti i punti d'interruzione.

Vedere anche

  • about_Debuggers
  • Get-PSBreakpoint
  • Enable-PSBreakpoint
  • Disable-PSBreakpoint
  • Remove-PSBreakpoint
  • Get-PSCallStack


Set-PSDebug

Attiva e disattiva le funzionalità di debug degli script, imposta il livello di traccia e attiva e disattiva la modalità ridotta.

Sintassi

Set-PSDebug [-Off] [<CommonParameters>]

Set-PSDebug [-Step] [-Strict] [-Trace <int>] [<CommonParameters>]

Descrizione

Il cmdlet Set-PSDebug attiva e disattiva le funzionalità di debug degli script, imposta il livello di traccia e attiva e disattiva la modalità ridotta.

Quando il parametro Trace è impostato su 1, ogni riga di script viene tracciata come se fosse eseguita. Quando il parametro è impostato su 2, vengono tracciate anche le assegnazioni delle variabili e le chiamate a funzioni e script. Se viene specificato il parametro Step, l'utente viene avvisato prima dell'esecuzione di ogni riga di script.

Parametri

-Off

Disattiva tutte le funzionalità di debug degli script.

Nota: con un comando "Set-StrictMode -off" si disabilita la verifica impostata da un comando "set-psdebug -strict". Per ulteriori informazioni, vedere Set-StrictMode.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Step

Attiva il debug passo a passo degli script. Prima dell'esecuzione di ogni riga, all'utente viene richiesto se interrompere, continuare o attivare un nuovo livello di interprete per controllare lo stato dello script.

Nota: se si specifica il parametro Step, viene automaticamente impostato un livello di traccia 1.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Strict

Specifica che l'interprete deve generare un'eccezione se viene fatto riferimento a una variabile prima dell'assegnazione di un valore alla variabile.

Nota: con un comando "Set-StrictMode -off" si disabilita la verifica impostata da un comando "set-psdebug -strict". Per ulteriori informazioni, vedere Set-StrictMode.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Trace <int>

Specifica il livello di traccia:

0: disattiva la traccia degli script.

1: traccia le righe script mentre vengono eseguite.

2: traccia le righe script, le assegnazioni delle variabili, le chiamate a funzioni e gli script.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Nessuno Questo cmdlet non restituisce alcun output.

Esempio 1

C:\PS>set-psdebug -trace 2; foreach ($i in 1..3) {$i}

DEBUG:    1+ Set-PsDebug -trace 2; foreach ($i in 1..3) {$i}
DEBUG:    1+ Set-PsDebug -trace 2; foreach ($i in 1..3) {$i}
1
DEBUG:    1+ Set-PsDebug -trace 2; foreach ($i in 1..3) {$i}
2
DEBUG:    1+ Set-PsDebug -trace 2; foreach ($i in 1..3) {$i}
3

Descrizione
-----------
Con questo comando si imposta il livello di traccia 2, quindi si esegue uno script che visualizza i numeri 1, 2 e 3.

Esempio 2

C:\PS>set-psdebug -step; foreach ($i in 1..3) {$i}

DEBUG:    1+ Set-PsDebug -step; foreach ($i in 1..3) {$i}
Continue with this operation?
   1+ Set-PsDebug -step; foreach ($i in 1..3) {$i}
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):a
DEBUG:    1+ Set-PsDebug -step; foreach ($i in 1..3) {$i}
1
2
3

Descrizione
-----------
Tramite questo comando viene attivato il debug passo a passo, quindi
viene eseguito uno script che visualizza i numeri 1, 2 e 3.

Esempio 3

C:\PS>set-psdebug -off; foreach ($i in 1..3) {$i}

1
2
3

Descrizione
-----------
Con questo comando si disattivano tutte le funzionalità di debug, quindi si esegue uno script che visualizza i numeri 1, 2 e 3.

Esempio 4

C:\PS>set-psdebug -strict; $NewVar

The variable $NewVar cannot be retrieved because it has not been set yet.
At line:1 char:28
+ Set-PsDebug -strict;$NewVar <<<<

Descrizione
-----------
Tramite questo comando viene attivata la modalità ridotta per l'interprete e viene eseguito un tentativo di accesso a una variabile non ancora impostata.

Vedere anche

  • about_Debuggers
  • Debug-Process
  • Set-PSBreakpoint
  • Set-StrictMode
  • Write-Debug


Set-PSSessionConfiguration

Modifica le proprietà di una configurazione di sessione registrata.

Sintassi

Set-PSSessionConfiguration [-AssemblyName] <string> [-ConfigurationTypeName] <string> [-Name] <string> [-ApplicationBase <string>] [-Force] [-MaximumReceivedDataSizePerCommandMB <double>] [-MaximumReceivedObjectSizeMB <double>] [-NoServiceRestart] [-SecurityDescriptorSDDL <string>] [-ShowSecurityDescriptorUI] [-StartupScript <string>] [-ThreadApartmentState {<STA> | <MTA> | <Unknown>}] [-ThreadOptions {<Default> | <UseNewThread> | <ReuseThread> | <UseCurrentThread>}] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Set-PSSessionConfiguration modifica le proprietà delle configurazioni di sessione registrate nel computer locale. Si tratta di un cmdlet avanzato progettato per essere utilizzato da amministratori di sistema per gestire le configurazioni di sessione personalizzate degli utenti.

Utilizzare il parametro Name per identificare la configurazione che si desidera modificare. Utilizzare gli altri parametri per specificare nuovi valori per le proprietà della configurazione di sessione. Per eliminare il valore di una proprietà dalla configurazione (e utilizzare il valore predefinito), immettere una stringa vuota ("") o un valore $null per il parametro corrispondente.

Per visualizzare le proprietà di una configurazione di sessione, utilizzare il cmdlet Get-PSSessionConfiguration o il provider WS-Management. Per ulteriori informazioni sul provider WS-Management, digitare "Get-Help wsman".

Parametri

-ApplicationBase <string>

Modifica il percorso del file di assembly (*.dll) specificato nel valore del parametro AssemblyName.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-AssemblyName <string>

Specifica un file di assembly diverso per la configurazione. Immettere il percorso (facoltativo) e il nome di un file di assembly (con estensione dll) che definisce il tipo di configurazione.

Se si immette solo il nome, è possibile immettere il percorso nel valore del parametro ApplicationBase.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ConfigurationTypeName <string>

Specifica un tipo di configurazione diverso per la configurazione. Il tipo specificato deve implementare la classe System.Management.Automation.Remoting.PSSessionConfiguration.

Se si immette "$null" o una stringa vuota, la classe DefaultRemotePowerShellConfiguration viene utilizzata per la configurazione di sessione.

Obbligatorio? | true
Posizione? | 3
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Elimina tutti i prompt dell'utente e riavvia il servizio Gestione remota Windows senza richieste. Con il riavvio del servizio la modifica della configurazione diventa effettiva.

Per impedire un riavvio ed eliminare il prompt di riavvio, utilizzare il parametro NoServiceRestart.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-MaximumReceivedDataSizePerCommandMB <double>

Modifica il limite sulla quantità di dati che è possibile inviare a questo computer in qualsiasi singolo comando remoto. Immettere le dimensioni dei dati in megabyte (MB). L'impostazione predefinita è 50 MB.

Se viene stabilito un limite nelle dimensioni dei dati nel tipo di configurazione specificato nel parametro ConfigurationTypeName, viene utilizzato il limite nel tipo di configurazione e il valore di questo parametro viene ignorato.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 50
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-MaximumReceivedObjectSizeMB <double>

Modifica il limite sulla quantità di dati che è possibile inviare a questo computer in qualsiasi singolo oggetto. Immettere le dimensioni dei dati in megabyte (MB). L'impostazione predefinita è 10 MB.

Se viene stabilito un limite per le dimensioni di un oggetto nel tipo di configurazione specificato nel parametro ConfigurationTypeName, viene utilizzato il limite nel tipo di configurazione e il valore di questo parametro viene ignorato.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 10
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string>

Specifica il nome della configurazione di sessione che si desidera modificare.

Non è possibile utilizzare questo parametro per modificare il nome della configurazione di sessione.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-NoServiceRestart

Non riavvia il servizio Gestione remota Windows ed elimina il prompt per riavviare il servizio.

Per impostazione predefinita, quando si immette un comando Set-PSSessionConfiguration, viene richiesto di riavviare il servizio Gestione remota Windows per rendere effettiva la nuova configurazione di sessione. Finché il servizio Gestione remota Windows non viene riavviato, la nuova configurazione di sessione non è effettiva.

Per riavviare il servizio Gestione remota Windows senza visualizzare alcun prompt, utilizzare il parametro Force. Per riavviare manualmente il servizio Gestione remota Windows, utilizzare il cmdlet Restart-Service.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SecurityDescriptorSDDL <string>

Specifica una stringa SDDL (Security Descriptor Definition Language) diversa per la configurazione.

Questa stringa determina le autorizzazioni necessarie per utilizzare la nuova configurazione di sessione. Per utilizzare una configurazione di sessione in una sessione, gli utenti devono disporre almeno dell'autorizzazione "Execute(Invoke)" per la configurazione.

Per utilizzare il descrittore di sicurezza predefinito per la configurazione, immettere una stringa vuota ("") o un valore $null. L'impostazione predefinita è la radice SDDL nell'unità WSMAN:.

Se il descrittore di sicurezza è complesso, si consideri l'utilizzo del parametro ShowSecurityDescriptorUI al posto di questo. Non è possibile utilizzare entrambi i parametri nello stesso comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ShowSecurityDescriptorUI

Visualizza una finestra delle proprietà che consente di creare un nuovo SDDL per la configurazione di sessione. La finestra delle proprietà viene visualizzata dopo l'immissione del comando Set-PSSessionConfiguration, quindi viene riavviato il servizio Gestione remota Windows.

Durante l'impostazione delle autorizzazioni per la configurazione, ricordare che gli utenti devono disporre almeno dell'autorizzazione "Execute(Invoke)" per utilizzare la configurazione di sessione in una sessione.

Non è possibile utilizzare questo parametro e il parametro SecurityDescriptorSDDL nello stesso comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-StartupScript <string>

Aggiunge o modifica lo script di avvio per la configurazione. Immettere il percorso completo di uno script di Windows PowerShell. Lo script specificato viene eseguito nella nuova sessione che utilizza la configurazione di sessione.

Per eliminare uno script di avvio da una configurazione di sessione, immettere una stringa vuota ("") o un valore $null.

È possibile utilizzare uno script di avvio per configurare ulteriormente la sessione dell'utente. Se lo script genera un errore (anche un errore non fatale), non viene creata la sessione e il comando New-PSSession dell'utente ha esito negativo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ThreadApartmentState <ApartmentState>

Modifica l'impostazione dello stato dell'apartment per i thread nella sessione. I valori validi sono STA, MTA e Unknown. Il valore predefinito è Unknown.

Obbligatorio? | false
Posizione? | named
Valore predefinito | ApartmentState.Unknown
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ThreadOptions <PSThreadOptions>

Modifica l'impostazione delle opzioni dei thread nella configurazione. Questa impostazione definisce la modalità di creazione e utilizzo dei thread quando viene eseguito un comando nella sessione. I valori validi sono Default, ReuseThread, UseCurrentThread e UseNewThread. Il valore predefinito è UseCurrentThread.

Obbligatorio? | false
Posizione? | named
Valore predefinito | PSThreadOptions.UserCurrentThread
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Microsoft.WSMan.Management.WSManConfigLeafElement

Note

Per eseguire questo cmdlet in Windows Vista, Windows Server 2008 e nelle versioni successive di Windows, è necessario aprire Windows PowerShell con l'opzione "Esegui come amministratore".

Il cmdlet Set-PSSessionConfiguration non modifica il nome di configurazione e il provider WS-Management non supporta il cmdlet Rename-Item. Per modificare il nome di una configurazione, utilizzare il cmdlet Unregister-PSSessionConfiguration per eliminare la configurazione, quindi il cmdlet Register-PSSessionConfiguration per creare e registrare una nuova configurazione di sessione.

È possibile utilizzare il cmdlet Set-PSSessionConfiguration per modificare le configurazioni di sessione Microsoft.PowerShell e Microsoft.PowerShell32 predefinite. Non sono protette. Per tornare alla versione originale della configurazione di sessione predefinita, utilizzare il cmdlet Unregister-PSSessionConfiguration per eliminare la configurazione di sessione predefinita, quindi il cmdlet Enable-PSRemoting per ripristinarla.

Esempio 1

C:\PS>set-pssessionconfiguration -name MaintenanceShell -threadApartmentState STA

Descrizione
-----------
Con questo comando lo stato dell'apartment del thread nella configurazione MaintenanceShell viene impostato su STA. La modifica è effettiva quando si riavvia il servizio Gestione remota Windows.

Esempio 2

C:\PS>register-pssessionconfiguration -name AdminShell -assemblyName c:\shells\AdminShell.dll -configurationType AdminClass

C:\PS> set-pssessionconfiguration -name AdminShell -startupScript AdminConfig.ps1

C:\PS> set-pssessionconfiguration -name AdminShell -startupScript $null

Descrizione
-----------
In questo esempio viene illustrato come creare e modificare una configurazione di sessione.

Nel primo comando viene utilizzato il cmdlet Register-PSSessionConfiguration per creare la configurazione AdminShell.

Nel secondo comando viene utilizzato il cmdlet Set-PSSessionConfiguration per aggiungere lo script AdminConfig.ps1 alla configurazione. La modifica è effettiva quando si riavvia il servizio Gestione remota Windows.

Con il terzo comando viene rimosso lo script AdminConfig.ps1 dalla configurazione. Viene utilizzato il cmdlet Set-PSSessionConfiguration con un valore $null per il parametro StartupScript.

Esempio 3

C:\PS>Set-PSSessionConfiguration -name foo -MaximumReceivedObjectSizeMB 20

   WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin\foo\InitializationParameters

ParamName                       ParamValue
---------                       ----------
psmaximumreceivedobjectsizemb   20

"Restart WinRM service"
WinRM service need to be restarted to make the changes effective. Do you want to run the command "restart-service winrm"?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y

Descrizione
-----------
In questo esempio viene mostrato l'output di esempio per il cmdlet Set-PSSessionConfiguration.

Il comando Set-PSSessionConfiguration in questo esempio consente di aumentare il valore della proprietà MaximumReceivedObjectSizeMB a 20.

Il comando Set-PSSessionConfiguration restituisce un oggetto Microsoft.WSMan.Management.WSManConfigLeafElement che indica il nome del parametro e il nuovo valore.

Inoltre richiede all'utente di riavviare il servizio Gestione remota Windows. La modifica Set-PSSessionConfiguration non è effettiva finché il servizio Gestione remota Windows non viene riavviato.

Esempio 4

C:\PS>set-pssessionconfiguration -name MaintenanceShell -startupScript c:\ps-test\Maintenance.ps1

   WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin\MaintenanceShell\InitializationParameters

ParamName            ParamValue
---------            ----------
startupscript        c:\ps-test\Mainte...

"Restart WinRM service"
WinRM service need to be restarted to make the changes effective. Do you want to run the command "restart-service winrm"?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y

C:\PS> get-pssessionConfiguration maintenanceshell | format-list -property *

xmlns            : http://schemas.microsoft.com/wbem/wsman/1/config/PluginConfiguration
Name             : MaintenanceShell
Filename         : %windir%\system32\pwrshplugin.dll
SDKVersion       : 1
XmlRenderingType : text
lang             : en-US
PSVersion        : 2.0
startupscript    : c:\ps-test\Maintenance.ps1
ResourceUri      : http://schemas.microsoft.com/powershell/MaintenanceShell
SupportsOptions  : true
ExactMatch       : true
Capability       : {Shell}
Permission       :

C:\PS> dir wsman:\localhost\plugin\MaintenanceShell\InitializationParameters

ParamName     ParamValue
---------     ----------
PSVersion     2.0
startupscript c:\ps-test\Maintenance.ps1

Descrizione
-----------
Con questo comando vengono illustrati modi diversi per la visualizzazione dei risultati di un comando Set-PSSessionConfiguration.

Con il primo comando si utilizza il cmdlet Set-PSSessionConfiguration per modificare lo script di avvio nella configurazione MaintenanceShell in Sample.ps1. L'output di questo comando mostra la modifica e richiede all'utente di riavviare il servizio Gestione remota Windows. La risposta è "y" (sì).

Con il secondo comando si utilizza il cmdlet Get-PSSessionConfiguration per ottenere la configurazione di sessione MaintenanceShell. Con il comando si utilizza un operatore pipeline (|) per inviare i risultati del comando al cmdlet Format-List, in cui vengono visualizzate tutte le proprietà dell'oggetto configurazione di sessione in un elenco.

Con il terzo comando si utilizza il provider WS-Management per visualizzare i parametri di inizializzazione per la configurazione MaintenanceShell. Con il comando si utilizza il cmdlet Get-ChildItem (alias = dir) per ottenere gli elementi figlio nel nodo InitializationParameters per il plug-in MaintenanceShell.

Per ulteriori informazioni sul provider WS-Management, digitare "get-help wsman".

Vedere anche

  • about_Session_Configurations
  • Disable-PSSessionConfiguration
  • Enable-PSSessionConfiguration
  • Get-PSSessionConfiguration
  • Register-PSSessionConfiguration
  • Unregister-PSSessionConfiguration
  • WSMan Provider


Set-Service

Avvia, arresta e sospende un servizio e ne modifica le proprietà.

Sintassi

Set-Service [-Name] <string> [-Description <string>] [-DisplayName <string>] [-PassThru] [-StartupType {<Automatic> | <Manual> | <Disabled>}] [-Status <string>] [-ComputerName <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Set-Service [-Description <string>] [-DisplayName <string>] [-InputObject <ServiceController>] [-PassThru] [-StartupType {<Automatic> | <Manual> | <Disabled>}] [-Status <string>] [-ComputerName <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Set-Service modifica le proprietà di un servizio locale o remoto, tra cui lo stato, la descrizione, il nome visualizzato e la modalità di avvio. È possibile utilizzare questo cmdlet per avviare, arrestare o sospendere un servizio. Per identificare il servizio, immetterne il nome, inviare un oggetto servizio o reindirizzare un nome di servizio o un oggetto servizio a Set-Service.

Parametri

-ComputerName <string[]>

Specifica uno o più computer. Il valore predefinito è il computer locale.

Digitare il nome NetBIOS, un indirizzo IP o un nome di dominio completo di un computer remoto. Per specificare il computer locale, digitare il nome del computer, un punto (.) o "localhost".

Questo parametro non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName di Set-Service anche se il computer non è configurato per l'esecuzione di comandi remoti.

Obbligatorio? | false
Posizione? | named
Valore predefinito | local computer
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Description <string>

Specifica una nuova descrizione per il servizio.

La descrizione del servizio viene visualizzato in Servizi in Gestione computer. La descrizione non è una proprietà dell'oggetto ServiceController ottenuto da Get-Service. Per visualizzare la descrizione del servizio, utilizzare Get-WmiObject per ottenere un oggetto Win32_Service che rappresenta il servizio.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-DisplayName <string>

Specifica un nuovo nome visualizzato per il servizio.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <ServiceController>

Specifica un oggetto ServiceController che rappresenta il servizio da modificare. Immettere una variabile che contiene l'oggetto o digitare un comando o un'espressione che ottiene l'oggetto, ad esempio un comando Get-Service. È inoltre possibile reindirizzare un oggetto servizio a Set-Service.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Name <string>

Specifica il nome del servizio da modificare. Non è consentito l'utilizzo di caratteri jolly. È inoltre possibile reindirizzare il nome di un servizio a Set-Service.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Restituisce oggetti che rappresentano i servizi modificati. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-StartupType <ServiceStartMode>

Modifica la modalità di avvio del servizio. I valori validi per StartupType sono i seguenti:

-- Automatic: viene avviato all'avvio del sistema.

-- Manual: viene avviato solo se avviato da un utente o un programma.

-- Disabled: non può essere avviato.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Status <string>

Avvia, arresta o sospende i servizi. I valori validi sono:

-- Running: avvia il servizio.

-- Stopped: arresta il servizio.

-- Paused: sospende il servizio.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.ServiceProcess.ServiceController, System.String È possibile reindirizzare un oggetto servizio o una stringa che contiene un nome servizio a Set-Service.
Output | Nessuno Questo cmdlet non restituisce alcun oggetto.

Note

Per utilizzare Set-Service in Windows Vista e nelle versioni successive di Windows, avviare Windows PowerShell con l'opzione "Esegui come amministratore".

Set-Service consente di controllare i servizi solo se l'utente corrente dispone delle autorizzazioni necessarie. Se un comando non viene eseguito correttamente, è possibile che l'utente non disponga delle autorizzazioni necessarie.

Per trovare i nomi dei servizi e i nomi visualizzati dei servizi nel sistema, digitare "Get-Service". I nomi dei servizi vengono visualizzati nella colonna Name e i nomi visualizzati vengono elencati nella colonna DisplayName.

Esempio 1

C:\PS>set-service -name lanmanworkstation -DisplayName "LanMan Workstation"

Descrizione
-----------
Tramite questo comando viene modificato il nome visualizzato del servizio lanmanworkstation in "LanMan Workstation". (Il nome predefinito è "Workstation").

Esempio 2

C:\PS>get-wmiobject win32_service -filter "name = 'SysmonLog'"

ExitCode  : 0
Name      : SysmonLog
ProcessId : 0
StartMode : Manual
State     : Stopped
Status    : OK

C:\PS> set-service sysmonlog -startuptype automatic

C:\PS> get-wmiobject win32_service -filter "name = 'SysmonLog'"

ExitCode  : 0
Name      : SysmonLog
ProcessId : 0
StartMode : Auto
State     : Stopped
Status    : OK

C:\PS> get-wmiobject win32_service | format-table Name, StartMode -auto

Name                                  StartMode
----                                  ---------
AdtAgent                              Auto
Alerter                               Disabled
ALG                                   Manual
AppMgmt                               Manual
...

Descrizione
-----------
Questi comandi ottengono il tipo di avvio del servizio Avvisi e registri di prestazioni (SysmonLog), impostano la modalità di avvio su Automatic e visualizzano il risultato della modifica.

Questi comandi utilizzano il cmdlet Get-WmiObject per ottenere l'oggetto Win32_Service per il servizio, perché l'oggetto ServiceController restituito da Get-Service non include la modalità di avvio.

Tramite il primo comando viene utilizzato il cmdlet Get-WmiObject per ottenere l'oggetto di Strumentazione gestione Windows (WMI) che rappresenta il servizio SysmonLog. L'output predefinito di questo comando visualizza la modalità di avvio del servizio.

Tramite il secondo comando viene utilizzato Set-Service per modificare la modalità di avvio su automatic. Viene quindi ripetuto il primo comando per visualizzare la modifica.

Con il comando finale viene visualizzata la modalità di avvio di tutti i servizi nel computer.

Esempio 3

C:\PS>set-service -name Schedule -computername S1 -description "Configures and schedules tasks."

C:\PS> get-wmiobject win32_service -computername s1 | where-object {$_.Name -eq "Schedule"} | format-list Name, Description

Descrizione
-----------
Questi comandi modificano la descrizione del servizio Utilità di pianificazione nel computer remoto S1, quindi visualizzano il risultato.

Questi comandi utilizzano il cmdlet Get-WmiObject per ottenere l'oggetto Win32_Service per il servizio, perché l'oggetto ServiceController restituito da Get-Service non include la descrizione del servizio.

Tramite il primo comando viene utilizzato un comando Set-Service per modificare la descrizione. Il servizio viene identificato tramite il relativo nome, ovvero "Schedule".

Tramite il secondo comando viene utilizzato il cmdlet Get-WmiObject per ottenere un'istanza della classe WMI Win32_Service che rappresenta il servizio Utilità di pianificazione. Tramite il primo elemento del comando si ottengono tutte le istanze della classe Win32_service.

Il risultato viene passato dall'operatore pipeline (|) al cmdlet Where-Object, il quale seleziona le istanze con un valore "Schedule" nella proprietà Name.

Il risultato viene inviato da un altro operatore pipeline al cmdlet Format-List, il quale formatta l'output come elenco con le sole proprietà Name e Description.

Esempio 4

C:\PS>set-service winrm -status Running -passthru -computername Server02

Descrizione
-----------
Questo comando avvia il servizio WinRM nel computer Server02. In questo comando vengono utilizzati il parametro Status per specificare lo stato desiderato ("running") e il parametro PassThru per indicare a Set-Service di restituire un oggetto che rappresenta il servizio WinRM.

Esempio 5

C:\PS>get-service schedule -computername S1, S2 | set-service -status paused

Descrizione
-----------
Questo comando sospende il servizio di pianificazione (Schedule) nei computer remoti S1 e S2. Utilizza il cmdlet Get-Service per ottenere il servizio. Un operatore pipeline (|) invia il servizio al cmdlet Set-Service che modifica lo stato in "Paused".

Esempio 6

C:\PS>$s = get-service schedule

C:\PS> set-service -inputobject $s -status stopped

Descrizione
-----------
Questi comandi arrestano il servizio di pianificazione (Schedule) nel computer locale.

Nel primo comando viene utilizzato il cmdlet Get-Service per ottenere il servizio di pianificazione (Schedule). Il servizio viene salvato nella variabile $s.

Nel secondo comando viene utilizzato il cmdlet Set-Service per modificare lo stato del servizio di pianificazione (Schedule) in "Stopped". Vengono utilizzati il parametro InputObject per inviare il servizio archiviato nella variabile $s e il parametro Status per specificare lo stato desiderato.

Vedere anche

  • Get-Service
  • Start-Service
  • Stop-Service
  • Restart-Service
  • Resume-Service
  • Suspend-Service
  • New-Service


Set-StrictMode

Stabilisce e applica regole di codifica in espressioni, script e blocchi di script.

Sintassi

Set-StrictMode -Off [<CommonParameters>]

Set-StrictMode -Version <Version> [<CommonParameters>]

Descrizione

Il cmdlet Set-StrictMode configura e attiva/disattiva la modalità ridotta per l'ambito corrente (e tutti gli ambiti figlio). Quando è impostata la modalità ridotta, Windows PowerShell genera un errore fatale quando il contenuto di un'espressione, di uno script o di un blocco di script viola le regole di codifica della procedura ottimale di base.

Utilizzare il parametro Version per determinare le regole di codifica applicate.

A differenza del cmdlet Set-PSDebug, Set-StrictMode influisce solo sull'ambito corrente e sugli ambiti figlio, pertanto è possibile utilizzarlo in uno script o una funzionare senza influire sull'ambito globale.

Quando Set-StrictMode è disabilitato, si presuppone che le variabili non inizializzate (Version 1) dispongano di un valore 0 (zero) o $null, a seconda del tipo. I riferimenti a proprietà inesistenti restituiscono $null e i risultati della sintassi di funzioni non valida variano in base all'errore. Le variabili senza nome non sono permesse.

Parametri

-Off

Disattiva la modalità ridotta. Questo parametro disattiva anche "Set-PSDebug -Strict".

Obbligatorio? | true
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Version <Version>

Specifica le condizioni che provocano un errore in modalità ridotta. Questo parametro è obbligatorio.

I valori validi sono: "1.0", "2.0" e "Latest". Nell'elenco seguente viene illustrato l'effetto di ogni valore.

1.0

-- Proibisce riferimenti alle variabili non inizializzate, ad eccezione di quelle nelle stringhe.

2.0

-- Proibisce riferimenti alle variabili non inizializzate (comprese le variabili non inizializzate nelle stringhe).

-- Proibisce riferimenti a proprietà inesistenti di un oggetto.

-- Proibisce chiamate di funzione che utilizzano la sintassi per i metodi di chiamata.

-- Proibisce una variabile senza un nome (${}).

Latest:

--Seleziona la versione più recente (più ridotta) tra quelle disponibili. Utilizzare questo valore per accertarsi che gli script utilizzino la versione più ridotta tra quelle disponibili, anche quando vengono aggiunte nuove versioni a Windows PowerShell.

Obbligatorio? | true
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Nessuno Questo cmdlet non restituisce alcun output.

Note

Set-StrictMode è simile al parametro Strict di Set-PSDebug. "Set-Strictmode -version 1" equivale a "Set-PSDebug -strict", con l'eccezione che Set-PSDebug è valido in tutti gli ambiti. Set-StrictMode è valido solo nell'ambito in cui viene impostato e nei relativi ambiti figlio. Per ulteriori informazioni sugli ambiti in Windows PowerShell, vedere about_Scopes.

Esempio 1

C:\PS>set-strictmode -version 1.0

C:\PS> $a -gt 5
False
The variable $a cannot be retrieved because it has not been set yet.
At line:1 char:3
+ $a <<<<  -gt 5
    + CategoryInfo          : InvalidOperation: (a:Token) [], RuntimeException
    + FullyQualifiedErrorId : VariableIsUndefined

Descrizione
-----------
Con questo comando la modalità ridotta viene attivata e impostata sulla versione 1.0. Di conseguenza, i tentativi di riferimento a variabili non inizializzate avranno esito negativo.

Nell'output di esempio viene illustrato l'effetto della modalità ridotta in versione 1.0.

Esempio 2

C:\PS># set-strictmode -version 2.0

# Strict mode is off by default.

C:\PS> function add ($a, $b) {$a + $b}
C:\PS> add 3 4
7
C:\PS> add(3,4)
3
4

C:\PS> set-strictmode -version 2.0

C:\PS> add(3,4)

The function or command was called like a method. Parameters should be separated by spaces, as described in 'Get-Help about_Parameter.'
At line:1 char:4
+ add <<<< (3,4)
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : StrictModeFunctionCallWithParens

C:\PS> set-strictmode -off

C:\PS> $string = "This is a string".
C:\PS> $string.Month
C:\PS>

C:\PS> set-strictmode -version 2.0

C:\PS> $string = "This is a string".
C:\PS> $string.Month
Property 'month' cannot be found on this object; make sure it exists.
At line:1 char:9
+ $string. <<<< month
    + CategoryInfo          : InvalidOperation: (.:OperatorToken) [], RuntimeException
    + FullyQualifiedErrorId : PropertyNotFoundStrict

Descrizione
-----------
Con questo comando la modalità ridotta viene attivata e impostata sulla versione 2.0. Di conseguenza, in Windows PowerShell viene generato un errore se si utilizza la sintassi di metodo (parentesi e virgole) per una chiamata di funzione o si fa riferimento a variabili non inizializzate o proprietà inesistenti.

Nell'output di esempio viene illustrato l'effetto della modalità ridotta in versione 2.0.

Senza la modalità ridotta in versione 2.0, il valore "(3,4)" viene interpretato come un solo oggetto matrice al quale non viene aggiunto nessun elemento. Con la modalità ridotta versione 2.0, viene interpretato correttamente come sintassi errata per l'invio di due valori.

Senza la versione 2.0, il riferimento alla proprietà Month inesistente di una stringa restituisce solo null. Con la versione 2.0, viene interpretato correttamente come un errore di riferimento.

Vedere anche

  • about_Debuggers
  • about_Scopes
  • Set-PSDebug


Set-TraceSource

Configura, avvia e arresta un'analisi dei componenti di Windows PowerShell.

Sintassi

Set-TraceSource [[-Option] {<None> | <Constructor> | <Dispose> | <Finalizer> | <Method> | <Property> | <Delegates> | <Events> | <Exception> | <Lock> | <Error> | <Errors> | <Warning> | <Verbose> | <WriteLine> | <Data> | <Scope> | <ExecutionFlow> | <Assert> | <All>}] [-Debugger] [-FilePath <string>] [-Force] [-ListenerOption {<None> | <LogicalOperationStack> | <DateTime> | <Timestamp> | <ProcessId> | <ThreadId> | <Callstack>}] [-PassThru] [-PSHost] [-Name] <string[]> [<CommonParameters>]

Set-TraceSource [-RemoveListener <string[]>] [-Name] <string[]> [<CommonParameters>]

Set-TraceSource [-RemoveFileListener <string[]>] [-Name] <string[]> [<CommonParameters>]

Descrizione

Il cmdlet Set-TraceSource consente di configurare, avviare e arrestare un'analisi di un componente di Windows PowerShell. Può essere utilizzato per specificare i componenti da analizzare e la destinazione dell'output di analisi.

Parametri

-Debugger

Invia l'output di analisi al debugger. È possibile visualizzare l'output in qualsiasi debugger in modalità utente o kernel oppure in Microsoft Visual Studio. Questo parametro consente inoltre di selezionare il listener di analisi predefinito.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-FilePath <string>

Invia l'output di analisi al file specificato. Questo parametro consente inoltre di selezionare il listener di analisi dei file. Se viene utilizzato questo parametro per avviare l'analisi, utilizzare il parametro RemoveFileListener per arrestarla.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di sovrascrivere un file di sola lettura. Utilizzare con il parametro FilePath.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ListenerOption <TraceOptions>

Aggiunge dati facoltativi al prefisso di ogni messaggio di analisi nell'output. I valori validi sono "None", "LogicalOperationStack", "DateTime", "Timestamp", "ProcessId", "ThreadId" e "Callstack". "None" rappresenta il valore predefinito.

Per specificare più opzioni, utilizzare virgole ma non spazi per separarle e racchiuderle tra virgolette, ad esempio "ProcessID,ThreadID".

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string[]>

Determina i componenti analizzati. Immettere il nome dell'origine di analisi di ciascun componente. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Option <PSTraceSourceOptions>

Determina il tipo di eventi analizzati.

I valori validi sono: "None", "Constructor", "Dispose", "Finalizer", "Method", "Property", "Delegates", "Events", "Exception", "Lock", "Error", "Errors", "Warning", "Verbose", "WriteLine", "Data", "Scope", "ExecutionFlow", "Assert" e "All". Il valore predefinito è "All".

I valori seguenti sono combinazioni di altri valori:

-- ExecutionFlow: Constructor, Dispose, Finalizer, Method, Delegates, Events e Scope

-- Data: Constructor, Dispose, Finalizer, Property, Verbose e WriteLine

-- Errors: Error ed Exception.

Per specificare più opzioni, utilizzare virgole ma non spazi per separarle e racchiuderle tra virgolette, ad esempio "Constructor,Dispose".

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta la sessione di analisi. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PSHost

Invia l'output di analisi all'host di Windows PowerShell. Questo parametro consente inoltre di selezionare il listener di analisi PSHost.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-RemoveFileListener <string[]>

Arresta l'analisi rimuovendo il listener di analisi dei file associato al file specificato. Immettere il percorso e il nome del file di output dell'analisi.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-RemoveListener <string[]>

Arresta l'analisi rimuovendo il listener di analisi.

Di seguito sono riportati i valori utilizzabili con RemoveListener:

--Per rimuovere PSHost (console), digitare "Host".

--Per rimuovere Debugger, digitare "Debug".

--Per rimuovere tutti i listener di analisi, digitare "*".

Per rimuovere il listener di analisi dei file, utilizzare il parametro RemoveFileListener.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un nome a Set-TraceSource.
Output | Nessuno o System.Management.Automation.PSTraceSource Quando si utilizza il parametro PassThru, Set-TraceSource genera un oggetto System.Management.Automation.PSTraceSource che rappresenta la sessione di analisi. Negli altri casi, il cmdlet non genera alcun output.

Note

L'analisi viene utilizzata dagli sviluppatori per eseguire il debug dei programmi e ridefinirli. Durante l'analisi il programma genera messaggi dettagliati sui singoli passaggi della relativa elaborazione interna.

I cmdlet di analisi di Windows PowerShell sono progettati specificamente per gli sviluppatori di Windows PowerShell, ma possono essere utilizzati da tutti gli utenti. Consentono infatti di monitorare quasi tutti gli aspetti della funzionalità di Windows PowerShell.

L'"origine di analisi" è rappresentata dalla parte di ciascun componente di Windows PowerShell che gestisce l'analisi e genera i relativi messaggi per il componente. Per analizzare un componente, è necessario identificarne l'origine di analisi.

Il "listener di analisi" riceve l'output dell'analisi e lo visualizza all'utente. È possibile scegliere di inviare i dati di analisi a un debugger in modalità utente o kernel, alla console, a un file oppure a un listener personalizzato derivato dalla classe System.Diagnostics.TraceListener.

Per avviare un'analisi, utilizzare il parametro Name per specificare un'origine di analisi, ovvero il componente da analizzare, nonché i parametri FilePath, Debugger o PSHost per specificare un listener, ovvero una destinazione per l'output. Utilizzare il parametro Options per determinare i tipi di eventi analizzati e il parametro ListenerOptions per configurare l'output di analisi.

Per modificare la configurazione di un'analisi, immettere un comando Set-TraceSource come se si intendesse avviare un'analisi. In Windows PowerShell verrà riconosciuto che l'analisi dell'origine di analisi è già in corso. L'analisi verrà quindi arrestata per consentire l'aggiunta della nuova configurazione e quindi avviata o riavviata.

Per arrestare un'analisi, utilizzare il parametro RemoveListener. Per arrestare un'analisi che utilizza un listener di file, ovvero un'analisi avviata tramite il parametro -FilePath, utilizzare il parametro RemoveFileListener. Quando si rimuove il listener, l'analisi verrà arrestata.

Per determinare i componenti che verranno analizzati, utilizzare Get-TraceSource. Le origini di analisi di ciascun modulo vengono caricate automaticamente quando il componente è in uso e vengono visualizzate nell'output di Get-TraceSource.

Esempio 1

C:\PS>Set-TraceSource -Name Parameterbinding -Option ExecutionFlow -PSHost '
-ListenerOption "ProcessID,TimeStamp"

Descrizione
-----------
Tramite questo comando verrà avviata l'analisi per il componente ParameterBinding di Windows PowerShell. Verranno utilizzati il parametro Name per specificare l'origine di analisi, il parametro Option per selezionare gli eventi di analisi ExecutionFlow e il parametro PSHost per selezionare il listener host di Windows PowerShell host, che invia l'output alla console. Verrà infine utilizzato il parametro ListenerOption per aggiungere i valori "ProcessID" e "TimeStamp" al prefisso del messaggio di analisi.

Esempio 2

C:\PS>set-tracesource -name ParameterBinding -RemoveListener Host

Descrizione
-----------
Tramite questo comando verrà arrestata l'analisi per il componente ParameterBinding di Windows PowerShell. Verranno utilizzati il parametro Name per identificare il componente di cui è in corso l'analisi e il parametro RemoveListener per identificare il listener di analisi.

Vedere anche

  • Get-TraceSource
  • Trace-Command
  • Set-PSDebug


Set-Variable

Imposta il valore di una variabile. Crea la variabile se non ne esiste una con il nome richiesto.

Sintassi

Set-Variable [-Name] <string[]> [[-Value] <Object>] [-Description <string>] [-Exclude <string[]>] [-Force] [-Include <string[]>] [-Option {<None> | <ReadOnly> | <Constant> | <Private> | <AllScope>}] [-PassThru] [-Scope <string>] [-Visibility {<Public> | <Private>}] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Set-Variable assegna un valore a una variabile specificata oppure modifica il valore corrente. Se la variabile non esiste, viene creata dal cmdlet.

Parametri

-Description <string>

Specifica la descrizione della variabile.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente di creare una variabile con lo stesso nome di una variabile di sola lettura esistente o di modificare il valore di una variabile di sola lettura.

Per impostazione predefinita, è possibile sovrascrivere una variabile, a meno che la variabile non disponga di un valore dell'opzione "ReadOnly" o "Constant". Per ulteriori informazioni, vedere il parametro Option.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Modifica unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Name. Immettere un nome o un modello di nome, ad esempio "c*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string[]>

Specifica il nome della variabile.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Option <ScopedItemOptions>

Modifica il valore della proprietà Options della variabile. I valori validi sono:

-- None: non imposta alcuna opzione. "None" rappresenta il valore predefinito.

-- ReadOnly: non è possibile modificare le proprietà della variabile, a meno che non si utilizzi il parametro Force. È possibile utilizzare Remove-Variable per eliminare la variabile.

-- Constant: la variabile non può essere eliminata e non è possibile modificarne le proprietà. Il valore "Constant" è disponibile solo quando si crea un alias. Non è possibile modificare in "Constant" l'opzione di una variabile esistente.

-- Private: la variabile è disponibile solo nell'ambito specificato dal parametro Scope Viene ereditata da ambiti figlio.

--AllScope: la variabile viene copiata in qualsiasi nuovo ambito creato.

Per visualizzare la proprietà Options delle variabili, digitare "Get-Variable | Format-Table -property name, options -autosize".

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta la nuova variabile. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Scope <string>

Determina l'ambito della variabile. I valori validi sono "Global", "Local", "Script" oppure un numero relativo all'ambito corrente, ovvero da 0 al numero di ambiti, dove 0 corrisponde all'ambito corrente e 1 al relativo padre. Il valore predefinito è "Local". Per ulteriori informazioni, vedere about_Scopes.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Value <Object>

Specifica il valore della variabile.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Visibility <SessionStateEntryVisibility>

Determina se la variabile è visibile all'esterno della sessione in cui è stata creata. Questo parametro viene progettato per l'utilizzo in script e comandi che verranno forniti ad altri utenti.

I valori validi sono:

-- Public: la variabile è visibile. L'impostazione predefinita è "Public".

-- Private: la variabile non è visibile.

Quando una variabile è privata, non viene visualizzata in elenchi di variabili, ad esempio quelli restituiti da Get-Variable o in visualizzazioni dell'unità Variable:. I comandi per leggere o modificare il valore di una variabile privata restituiscono un errore. L'utente può tuttavia eseguire comandi che utilizzano una variabile privata se i comandi sono stati scritti nella sessione in cui è stata definita la variabile.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Public
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Object È possibile reindirizzare un oggetto che rappresenta il valore della variabile a Set-Variable.
Output | Nessuno o System.Management.Automation.PSVariable Quando si utilizza il parametro PassThru, Set-Variable genera un oggetto System.Management.Automation.PSVariable che rappresenta la variabile nuova o modificata. Negli altri casi, il cmdlet non genera alcun output.

Esempio 1

C:\PS>set-variable -name desc -value "A description"

C:\PS>get-variable -name desc

Descrizione
-----------
Questi comandi impostano il valore della variabile "desc" su "A description" e ottengono quindi il valore della variabile.

Esempio 2

C:\PS>set-variable -name processes -value (Get-Process) -option constant -scope global -description "All processes" -passthru | format-list -property *

Descrizione
-----------
Con questo comando verrà creata una variabile globale di sola lettura che include tutti i processi disponibili nel sistema e verranno quindi visualizzate tutte le proprietà della variabile.

Per creare la variabile verrà utilizzato il cmdlet Set-Variable. Verranno quindi utilizzati il parametro PassThru per creare un oggetto che rappresenta la nuova variabile e l'operatore pipeline (|) per passare l'oggetto al cmdlet Format-List. Verrà infine utilizzato il parametro Property di Format-List con il valore all (*) per visualizzare tutte le proprietà della variabile appena creata.

Il valore "(Get-Process)" è racchiuso tra parentesi per indicare che verrà eseguito prima dell'archiviazione nella variabile. In caso contrario, la variabile includerà le parole "Get-Process".

Esempio 3

C:\PS># set-variable -name counter -visibility private

C:\PS> new-variable -name counter -visibility public -value 26

C:\PS> $counter
26

C:\PS> get-variable c*

Name Value
---- -----
Culture en-US
ConsoleFileName
ConfirmPreference High
CommandLineParameters {}
Counter 26

C:\PS> set-variable -name counter -visibility private

C:\PS> get-variable c*

Name Value
---- -----
Culture en-US
ConsoleFileName
ConfirmPreference High
CommandLineParameters {}

C:\PS> $counter
"Cannot access the variable '$counter' because it is a private variable"

C:\PS> .\use-counter.ps1
Commands completed successfully.

Descrizione
-----------
In questo comando viene illustrato come impostare la visibilità di una variabile su "Private". Questa variabile può essere letta e modificata dagli script che dispongono delle autorizzazioni necessarie, ma non è visibile all'utente.

Nell'output di esempio viene illustrata la differenza nel comportamento delle variabili pubbliche e private.

Vedere anche

  • Get-Variable
  • New-Variable
  • Remove-Variable
  • Clear-Variable


Set-WmiInstance

Crea o aggiorna un'istanza di una classe di Strumentazione gestione Windows (WMI) esistente.

Sintassi

Set-WmiInstance [-Classe] <string> [[-Arguments] <hashtable>] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-AsJob] [-PutType {<None> | <UpdateOnly> | <CreateOnly> | <UpdateOrCreate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Set-WmiInstance [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-AsJob] [-PutType {<None> | <UpdateOnly> | <CreateOnly> | <UpdateOrCreate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Set-WmiInstance -InputObject <ManagementObject> [-Arguments <hashtable>] [-AsJob] [-PutType {<None> | <UpdateOnly> | <CreateOnly> | <UpdateOrCreate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Set-WmiInstance -Path <string> [-Arguments <hashtable>] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-AsJob] [-PutType {<None> | <UpdateOnly> | <CreateOnly> | <UpdateOrCreate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Set-WmiInstance [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-AsJob] [-PutType {<None> | <UpdateOnly> | <CreateOnly> | <UpdateOrCreate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Set-WmiInstance [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-AsJob] [-PutType {<None> | <UpdateOnly> | <CreateOnly> | <UpdateOrCreate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Set-WmiInstance consente di creare o aggiornare un'istanza di una classe WMI esistente. L'istanza creata o aggiornata viene scritta nell'archivio WMI.

Parametri

-Arguments <hashtable>

Specifica il nome della proprietà da modificare e il nuovo valore di tale proprietà. Il nome e il valore devono essere in una coppia nome-valore. La coppia nome-valore viene passata sulla riga di comando come una tabella hash. Ad esempio:

-argument @{Setting1=1; Setting2=5; Setting3="test"}.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-AsJob

Esegue il comando come processo in background. Utilizzare questo parametro per eseguire comandi il cui completamento richiede molto tempo.

Quando si utilizza il parametro AsJob, il comando restituisce un oggetto che rappresenta il processo in background, quindi visualizza il prompt dei comandi. È possibile continuare a utilizzare la sessione fino al completamento del processo. Se Set-WmiObject viene utilizzato per un computer remoto, il processo viene creato nel computer locale e i risultati dei computer remoti vengono automaticamente restituiti nel computer locale. Per gestire il processo, utilizzare i cmdlet che contengono il nome Job (cmdlet Job). Per ottenere i risultati del processo, utilizzare il cmdlet Receive-Job.

Nota: per utilizzare questo parametro con computer remoti, è necessario configurare i computer locale e remoto per la comunicazione remota. È inoltre necessario avviare Windows PowerShell utilizzando l'opzione "Esegui come amministratore" di Windows Vista e delle versioni successive di Windows. Per ulteriori informazioni, vedere about_Remote_Requirements.

Per ulteriori informazioni sui processi in background di Windows PowerShell, vedere about_Jobs e about_Remote_Jobs.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Authentication <AuthenticationLevel>

Specifica il livello di autenticazione da utilizzare con la connessione WMI. I valori validi sono:

-1: Unchanged

0: Default

1: None (non viene eseguita alcuna autenticazione).

2: Connect (l'autenticazione viene eseguita solo quando il client stabilisce una relazione con l'applicazione).

3: Call (l'autenticazione viene eseguita solo all'inizio di ogni chiamata quando l'applicazione riceve la richiesta).

4: Packet (l'autenticazione viene eseguita su tutti i dati ricevuti dal client).

5: PacketIntegrity (tutti i dati trasferiti tra il client e l'applicazione vengono autenticati e verificati).

6: PacketPrivacy (vengono utilizzate le proprietà degli altri livelli di autenticazione e tutti i dati vengono crittografati).

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Authority <string>

Specifica l'autorità da utilizzare per autenticare la connessione WMI. È possibile specificare l'autenticazione NTLM o Kerberos standard. Per utilizzare NTLM, impostare l'autorità su ntlmdomain:<NomeDominio>, dove <NomeDominio> identifica un nome di dominio NTLM valido. Per utilizzare Kerberos, specificare kerberos:<NomeDominio>\<NomeServer>". Non è possibile includere l'impostazione authority quando ci si connette al computer locale.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Classe <string>

Specifica il nome di una classe WMI.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string[]>

Specifica il computer in cui si desidera eseguire l'operazione di gestione. Il valore può essere un nome di dominio completo, un nome NetBIOS o un indirizzo IP. Utilizzare il nome del computer locale, localhost o un punto (.) per specificare il computer locale. Il valore predefinito è il computer locale. Quando il computer remoto si trova in un dominio diverso da quello dell'utente, è necessario utilizzare un nome di dominio completo. È possibile impostare il valore di questo parametro reindirizzando il valore al parametro.

Questo parametro non si basa sulla comunicazione remota di Windows PowerShell che utilizza WS-Management. È possibile utilizzare il parametro ComputerName di Get-WmiObject anche se il computer non è configurato per l'esecuzione di comandi remoti di WS-Management.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente. Digitare un nome utente, ad esempio "Utente01", "Dominio01\Utente01" o Utente@Contoso.com. In alternativa, immettere un oggetto PSCredential, ad esempio quello restituito dal cmdlet Get-Credential. Quando si digita un nome utente, viene richiesta una password.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-EnableAllPrivileges

Abilita tutti i privilegi dell'utente corrente prima che il comando effettui la chiamata WMI.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Impersonation <ImpersonationLevel>

Specifica il livello di rappresentazione da utilizzare. I valori validi sono:

0: Default (legge il Registro di sistema locale per il livello di rappresentazione predefinito, in genere impostato su "3: Impersonate").

1: Anonymous (nasconde le credenziali del chiamante).

2: Identify (consente agli oggetti di eseguire query delle credenziali del chiamante).

3: Impersonate (consente agli oggetti di utilizzare le credenziali del chiamante).

4: Delegate (consente agli oggetti di permettere ad altri oggetti di utilizzare le credenziali del chiamante).

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <ManagementObject>

Specifica un oggetto ManagementObject da utilizzare come input. Quando viene utilizzato questo parametro, tutti gli altri parametri tranne Arguments vengono ignorati.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Locale <string>

Specifica le impostazioni locali preferite per gli oggetti WMI. Il parametro Locale viene specificato in una matrice nel formato MS_<LCID> nell'ordine preferito.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Spazio dei nomi <string>

Quando viene utilizzato con il parametro Class, questo parametro specifica lo spazio dei nomi dell'archivio WMI in cui si trova la classe a cui si fa riferimento.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string>

Specifica il percorso di un oggetto WMI all'istanza che si desidera creare o aggiornare.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PutType <PutType>

Indica se l'istanza WMI deve essere creata o aggiornata. I valori validi sono:

UpdateOnly: aggiorna un'istanza WMI esistente.

CreateOnly: crea una nuova istanza WMI.

UpdateOrCreate: aggiorna l'istanza WMI se esiste, in caso contrario crea una nuova istanza.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ThrottleLimit <int>

Consente all'utente di specificare un valore di limitazione per il numero di operazioni WMI (Strumentazione gestione Windows) che è possibile eseguire contemporaneamente. Questo parametro viene utilizzato insieme al parametro AsJob. Il limite di velocità si applica solo al comando corrente, non alla sessione o al computer.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Questo cmdlet non accetta alcun input.
Output | Nessuno Questo cmdlet non genera alcun output.

Esempio 1

C:\PS>Set-WMIInstance -class Win32_WMISetting -argument @{LoggingLevel=2}

__GENUS                        : 2
__CLASS                        : Win32_WMISetting
__SUPERCLASS                   : CIM_Setting
__DYNASTY                      : CIM_Setting
__RELPATH                      : Win32_WMISetting=@
__PROPERTY_COUNT               : 27
__DERIVATION                   : {CIM_Setting}
__SERVER                       : SYSTEM01
__NAMESPACE                    : root\cimv2
__PATH                         : \\SYSTEM01\root\cimv2:Win32_WMISetting=@
ASPScriptDefaultNamespace      : \\root\cimv2
ASPScriptEnabled               : False
AutorecoverMofs                : {%windir%\system32\wbem\cimwin32.mof, %windir%\system32\wbem\ncprov.mof, %windir%\syst
                                 em32\wbem\wmipcima.mof, %windir%\system32\wbem\secrcw32.mof...}
AutoStartWin9X                 :
BackupInterval                 :
BackupLastTime                 :
BuildVersion                   : 6001.18000
Caption                        :
DatabaseDirectory              : C:\Windows\system32\wbem\repository
DatabaseMaxSize                :
Description                    :
EnableAnonWin9xConnections     :
EnableEvents                   : False
EnableStartupHeapPreallocation : False
HighThresholdOnClientObjects   :
HighThresholdOnEvents          : 20000000
InstallationDirectory          : C:\Windows\system32\wbem
LastStartupHeapPreallocation   :
LoggingDirectory               : C:\Windows\system32\wbem\Logs\
LoggingLevel                   : 2
LowThresholdOnClientObjects    :
LowThresholdOnEvents           : 10000000
MaxLogFileSize                 : 65536
MaxWaitOnClientObjects         :
MaxWaitOnEvents                : 2000
MofSelfInstallDirectory        :
SettingID                      :

Descrizione
-----------
Con questo comando viene impostato il livello di registrazione WMI su 2. Il comando passa la proprietà da impostare e il valore (considerati congiuntamente una coppia di valori) nel parametro dell'argomento. Il parametro accetta una tabella hash definita dalla costruzione @{property = value}. Le informazioni sulla classe restituite riflettono il nuovo valore.

Esempio 2

C:\PS>set-wmiinstance -class win32_environment -argument @{Name="testvar";VariableValue="testvalue";UserName="<SYSTEM>"}

__GENUS          : 2
__CLASS          : Win32_Environment
__SUPERCLASS     : CIM_SystemResource
__DYNASTY        : CIM_ManagedSystemElement
__RELPATH        : Win32_Environment.Name="testvar",UserName="<SYSTEM>"
__PROPERTY_COUNT : 8
__DERIVATION     : {CIM_SystemResource, CIM_LogicalElement, CIM_ManagedSystemElement}
__SERVER         : SYSTEM01
__NAMESPACE      : root\cimv2
__PATH           : \\SYSTEM01\root\cimv2:Win32_Environment.Name="testvar",UserName="<SYSTEM>"
Caption          : <SYSTEM>\testvar
Description      : <SYSTEM>\testvar
InstallDate      :
Name             : testvar
Status           : OK
SystemVariable   : True
UserName         : <SYSTEM>
VariableValue    : testvalue

Descrizione
-----------
Con questo comando viene creata la variabile di ambiente testvar che dispone del valore "testvalue." Questa operazione viene eseguita creando una nuova istanza della classe WMI Win32_Environment. Si noti che questa operazione richiede credenziali appropriate e che potrebbe essere necessario riavviare Windows PowerShell per visualizzare la nuova variabile di ambiente.

Esempio 3

C:\PS>Set-WMIInstance -class Win32_WMISetting -argument @{LoggingLevel=2} -computername system01, system02, system03

__GENUS                        : 2
__CLASS                        : Win32_WMISetting
__SUPERCLASS                   : CIM_Setting
__DYNASTY                      : CIM_Setting
__RELPATH                      : Win32_WMISetting=@
__PROPERTY_COUNT               : 27
__DERIVATION                   : {CIM_Setting}
__SERVER                       : SYSTEM01
__NAMESPACE                    : root\cimv2
__PATH                         : \\SYSTEM01\root\cimv2:Win32_WMISetting=@
ASPScriptDefaultNamespace      : \\root\cimv2
ASPScriptEnabled               : False
AutorecoverMofs                : {%windir%\system32\wbem\cimwin32.mof, %windir%\system32\wbem\ncprov.mof, %windir%\syst
                                 em32\wbem\wmipcima.mof, %windir%\system32\wbem\secrcw32.mof...}
AutoStartWin9X                 :
BackupInterval                 :
BackupLastTime                 :
BuildVersion                   : 6001.18000
Caption                        :
DatabaseDirectory              : C:\Windows\system32\wbem\repository
DatabaseMaxSize                :
Description                    :
EnableAnonWin9xConnections     :
EnableEvents                   : False
EnableStartupHeapPreallocation : False
HighThresholdOnClientObjects   :
HighThresholdOnEvents          : 20000000
InstallationDirectory          : C:\Windows\system32\wbem
LastStartupHeapPreallocation   :
LoggingDirectory               : C:\Windows\system32\wbem\Logs\
LoggingLevel                   : 2
LowThresholdOnClientObjects    :
LowThresholdOnEvents           : 10000000
MaxLogFileSize                 : 65536
MaxWaitOnClientObjects         :
MaxWaitOnEvents                : 2000
MofSelfInstallDirectory        :
SettingID                      :

...

Descrizione
-----------
Con questo comando viene impostato il livello di registrazione WMI su 2. Il comando passa la proprietà da impostare e il valore (considerati congiuntamente una coppia di valori) nel parametro dell'argomento. Il parametro accetta una tabella hash definita dalla costruzione @{property = value}. Le informazioni sulla classe restituite riflettono il nuovo valore.

Vedere anche

  • Get-WmiObject
  • Invoke-WmiMethod
  • Remove-WmiObject
  • Get-WSManInstance
  • Invoke-WSManAction
  • New-WSManInstance
  • Remove-WSManInstance


Set-WSManInstance

Modifica le informazioni di gestione relative a una risorsa.

Sintassi

Set-WSManInstance [-ApplicationName <string>] [-ComputerName <string>] [-Fragment <string>] [-Port <int>] [-UseSSL] -ResourceURI <Uri> [[-SelectorSet] <hashtable>] [-Authentication <AuthenticationMechanism>] [-Credential <PSCredential>] [-Dialect <Uri>] [-FilePath <File>] [-SessionOption <hashtable>] [-ValueSet <hashtable>] [<CommonParameters>]

Set-WSManInstance [-ConnectionURI <Uri>] [-Fragment <string>] -ResourceURI <Uri> [[-SelectorSet] <hashtable>] [-Authentication <AuthenticationMechanism>] [-Credential <PSCredential>] [-Dialect <Uri>] [-FilePath <File>] [-SessionOption <hashtable>] [-ValueSet <hashtable>] [<CommonParameters>]

Descrizione

Il cmdlet Set-WSManInstance consente di modificare le informazioni di gestione relative a una risorsa.

Questo cmdlet utilizza il livello di trasporto o la connessione di Gestione remota Windows per modificare le informazioni.

Parametri

-ApplicationName <string>

Specifica il nome dell'applicazione nella connessione. Il valore predefinito del parametro ApplicationName è "WSMAN". L'identificatore completo dell'endpoint remoto ha il formato seguente:

<trasporto>://<server>:<porta>/<NomeApplicazione>

Ad esempio:

http://server01:8080/WSMAN

Tramite Internet Information Services (IIS), che ospita la sessione, le richieste con questo endpoint vengono inoltrate all'applicazione specificata. L'impostazione predefinita "WSMAN" è appropriata per la maggior parte degli utilizzi. Questo parametro è progettato per essere utilizzato quando più computer stabiliscono connessioni remote a un computer in cui è in esecuzione Windows PowerShell. In questo caso, IIS ospita Gestione remota Windows (WS-Management) per motivi di efficienza.

Obbligatorio? | false
Posizione? | named
Valore predefinito | wsman
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Authentication <AuthenticationMechanism>

Specifica il meccanismo di autenticazione da utilizzare nel server. I valori possibili sono:

- Basic: Basic è uno schema in cui il nome utente e la password vengono inviati come testo non crittografato al server o al proxy.

- Default: utilizzare il metodo di autenticazione implementato dal protocollo WS-Management. Si tratta dell'impostazione predefinita.

- Digest: Digest è uno schema basato su una richiesta di verifica e relativa risposta che utilizza una stringa di dati specificata dal server per la richiesta di verifica.

- Kerberos: il server e il computer client si autenticano reciprocamente utilizzando certificati Kerberos.

- Negotiate: Negotiate è uno schema basato su una richiesta di verifica e relativa risposta che negozia con il server o il proxy per determinare lo schema da utilizzare per l'autenticazione. Ad esempio, questo valore di parametro consente la negoziazione per determinare se viene utilizzato il protocollo Kerberos o NTLM.

- CredSSP: utilizzare l'autenticazione CredSSP (Credential Security Service Provider) che consente all'utente di delegare le credenziali. Questa opzione è destinata ai comandi che vengono eseguiti in un computer remoto, ma raccolgono dati o eseguono ulteriori comandi in altri computer remoti.

Attenzione: CredSSP (Credential Security Service Provider) delega le credenziali dell'utente dal computer locale a un computer remoto. Questa procedura aumenta il rischio per la sicurezza dell'operazione remota. Se il computer remoto è compromesso, quando le credenziali vengono passate a tale computer è possibile utilizzarle per controllare la sessione di rete.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string>

Specifica il computer in cui si desidera eseguire l'operazione di gestione. Il valore può essere un nome di dominio completo, un nome NetBIOS o un indirizzo IP. Utilizzare il nome del computer locale, localhost o un punto (.) per specificare il computer locale. Il valore predefinito è il computer locale. Quando il computer remoto si trova in un dominio diverso da quello dell'utente, è necessario utilizzare un nome di dominio completo. È possibile reindirizzare un valore per questo parametro al cmdlet.

Obbligatorio? | false
Posizione? | named
Valore predefinito | localhost
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ConnectionURI <Uri>

Specifica l'endpoint di connessione. Il formato di questa stringa è:

<Trasporto>://<Server>:<Porta>/<NomeApplicazione>.

La seguente stringa rappresenta un valore formattato correttamente per questo parametro:

http://Server01:8080/WSMAN

L'URI deve essere completo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente. Digitare un nome utente, ad esempio "User01", "Domain01\User01" o "User@Domain.com". In alternativa, immettere un oggetto PSCredential, ad esempio quello restituito dal cmdlet Get-Credential. Quando si digita un nome utente, viene richiesta una password.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Dialect <Uri>

Specifica il dialetto da utilizzare nel predicato del filtro. Può trattarsi di qualsiasi dialetto supportato dal servizio remoto. I seguenti alias possono essere utilizzati per l'URI del dialetto:

- WQL: http://schemas.microsoft.com/wbem/wsman/1/WQL

- Selector: http://schemas.microsoft.com/wbem/wsman/1/wsman/SelectorFilter

- Association: http://schemas.dmtf.org/wbem/wsman/1/cimbinding/associationFilter

Obbligatorio? | false
Posizione? | named
Valore predefinito | http://schemas.microsoft.com/wbem/wsman/1/WQL
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-FilePath <File>

Specifica il percorso di un file utilizzato per aggiornare una risorsa di gestione. La risorsa di gestione viene specificata tramite i parametri ResourceURI e SelectorSet. Ad esempio, il comando seguente utilizza il parametro FilePath:

invoke-wsmanaction -action stopservice -resourceuri wmicimv2/Win32_Service -SelectorSet @{Name="spooler"} -FilePath:c:\input.xml -authentication default

Questo comando chiama il metodo StopService nel servizio spooler mediante input da un file. Il file Input.xml contiene quanto segue:

<p:StopService_INPUT xmlns:p="http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service"/>

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Fragment <string>

Specifica una sezione nell'istanza da aggiornare o da recuperare per l'operazione specificata. Ad esempio, per ottenere lo stato di un servizio spooler, specificare "-Fragment Status".

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-OptionSet <hashtable>

Passa un set di opzioni a un servizio per modificare o perfezionare la natura della richiesta. Si tratta di opzioni simili a quelle utilizzate nelle shell della riga di comando perché specifiche del servizio. È possibile specificare qualsiasi numero di opzioni.

Nell'esempio seguente viene illustrata la sintassi che passa i valori 1, 2 e 3 per i parametri a, b e c:

-OptionSet @{a=1;b=2;c=3}

Obbligatorio? |
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Port <int>

Specifica la porta da utilizzare per la connessione del client al servizio Gestione remota Windows. Quando il trasporto è HTTP, la porta predefinita è 80. Quando il trasporto è HTTPS, la porta predefinita è 443. Quando si utilizza HTTPS come trasporto, il valore del parametro ComputerName deve corrispondere al nome comune del certificato del server. Tuttavia, se il parametro SkipCNCheck viene specificato come parte del parametro SessionOption, il nome comune del certificato del server non deve corrispondere al nome host del server. Il parametro SkipCNCheck deve essere utilizzato solo per computer attendibili.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ResourceURI <Uri>

Contiene l'URI (Uniform Resource Identifier) dell'istanza o della classe di risorse. L'URI viene utilizzato per identificare un tipo specifico di risorsa, ad esempio dischi o processi, in un computer.

Un URI è composto da un prefisso e da un percorso a una risorsa. Ad esempio:

http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk

http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_NumericSensor

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SelectorSet <hashtable>

Specifica un set di coppie di valori utilizzate per selezionare particolari istanze di risorse di gestione. Il parametro SelectorSet viene utilizzato quando esiste più di un'istanza della risorsa. Il valore del parametro SelectorSet deve essere una tabella hash. Nell'esempio seguente viene illustrato come immettere un valore per questo parametro.

-SelectorSet @{Name="WinRM";ID="yyy"}

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-SessionOption <hashtable>

Definisce un set di opzioni estese per la sessione WS-Management. Immettere un oggetto SessionOption creato utilizzando il cmdlet New-WSManSessionOption. Per ulteriori informazioni sulle opzioni disponibili, vedere New-WSManSessionOption.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseSSL

Specifica che deve essere utilizzato il protocollo SSL (Secure Sockets Layer) per stabilire una connessione al computer remoto. Per impostazione predefinita SSL non viene utilizzato.

In WS-Management viene crittografato tutto il contenuto di Windows PowerShell trasmesso in rete. Il parametro UseSSL consente di specificare la protezione aggiuntiva derivante dall'utilizzo di HTTPS anziché HTTP. Se si specifica questo parametro ma SSL non è disponibile sulla porta utilizzata per la connessione, il comando ha esito negativo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ValueSet <hashtable>

Specifica una tabella hash che consente di modificare una risorsa di gestione. La risorsa di gestione viene specificata tramite i parametri ResourceURI e SelectorSet. Il valore del parametro ValueSet deve essere una tabella hash.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Questo cmdlet non accetta alcun input.
Output | Nessuno Questo cmdlet non genera alcun output.

Esempio 1

C:\PS>set-wsmaninstance -resourceuri winrm/config/listener -selectorset @{address="*";transport="https"} -valueset @{Enabled="false"}

cfg                   : http://schemas.microsoft.com/wbem/wsman/1/config/listener
xsi                   : http://www.w3.org/2001/XMLSchema-instance
lang                  : en-US
Address               : *
Transport             : HTTPS
Port                  : 443
Hostname              :
Enabled               : false
URLPrefix             : wsman
CertificateThumbprint :
ListeningOn           : {127.0.0.1, 172.30.168.171, ::1, 2001:4898:0:fff:0:5efe:172.30.168.171...}

Descrizione
-----------
Questo comando disattiva il listener HTTPS nel computer locale.

Importante: il parametro ValueSet applica la distinzione tra maiuscole e minuscole in caso di corrispondenza delle proprietà specificate.

Utilizzando ad esempio il comando precedente,

-ValueSet @{enabled="False"} avrà esito negativo;

-ValueSet @{Enabled="False"} avrà esito positivo.

Esempio 2

C:\PS>set-wsmaninstance -resourceuri winrm/config -ValueSet @{MaxEnvelopeSizekb = "200"}

cfg                 : http://schemas.microsoft.com/wbem/wsman/1/config
lang                : en-US
MaxEnvelopeSizekb   : 200
MaxTimeoutms        : 60000
MaxBatchItems       : 32000
MaxProviderRequests : 4294967295
Client              : Client
Service             : Service
Winrs               : Winrs

Descrizione
-----------
Questo comando imposta il valore MaxEnvelopeSizekb su 200 nel computer locale.

Importante: il parametro ValueSet applica la distinzione tra maiuscole e minuscole in caso di corrispondenza delle proprietà specificate.

Utilizzando ad esempio il comando precedente,

-ValueSet @ {MaxEnvelopeSizeKB ="200"} avrà esito negativo;

-ValueSet @{MaxEnvelopeSizekb ="200"} avrà esito positivo.

Esempio 3

C:\PS>set-wsmaninstance -resourceuri winrm/config/listener -computername SERVER02 -selectorset @{address="*";transport="https"} -valueset @{Enabled="false"}

cfg                   : http://schemas.microsoft.com/wbem/wsman/1/config/listener
xsi                   : http://www.w3.org/2001/XMLSchema-instance
lang                  : en-US
Address               : *
Transport             : HTTPS
Port                  : 443
Hostname              :
Enabled               : false
URLPrefix             : wsman
CertificateThumbprint :
ListeningOn           : {127.0.0.1, 172.30.168.172, ::1, 2001:4898:0:fff:0:5efe:172.30.168.172...}

Descrizione
-----------
Questo comando disattiva il listener HTTPS nel computer remoto SERVER02.

Importante: il parametro ValueSet applica la distinzione tra maiuscole e minuscole in caso di corrispondenza delle proprietà specificate.

Utilizzando ad esempio il comando precedente,

-ValueSet @{enabled="False"} avrà esito negativo;

-ValueSet @{Enabled="False"} avrà esito positivo.

Vedere anche

  • Connect-WSMan
  • Disable-WSManCredSSP
  • Disconnect-WSMan
  • Enable-WSManCredSSP
  • Get-WSManCredSSP
  • Get-WSManInstance
  • Invoke-WSManAction
  • New-WSManInstance
  • New-WSManSessionOption
  • Remove-WSManInstance
  • Set-WSManQuickConfig
  • Test-WSMan


Set-WSManQuickConfig

Configura il computer locale per la gestione remota.

Sintassi

Set-WSManQuickConfig [-UseSSL] [<CommonParameters>]

Descrizione

Il cmdlet Set-WSManQuickConfig configura il computer affinché riceva i comandi remoti di Windows PowerShell inviati mediante la tecnologia di Gestione remota Windows (WS-Management).

Il cmdlet effettua le azioni seguenti:

1. Controlla se il servizio Gestione remota Windows è in esecuzione. Se il servizio Gestione remota Windows non è in esecuzione, viene avviato.

2. Imposta il tipo di avvio del servizio Gestione remota Windows su Automatic.

3. Crea un listener per accettare le richieste su qualsiasi indirizzo IP. Per impostazione predefinita il trasporto viene eseguito su HTTP.

4. Abilita un'eccezione del firewall per il traffico di Gestione remota Windows.

Per eseguire questo cmdlet in Windows Vista, Windows Server 2008 e nelle versioni successive di Windows, è necessario avviare Windows PowerShell con l'opzione "Esegui come amministratore".

Parametri

-UseSSL

Specifica che deve essere utilizzato il protocollo SSL (Secure Sockets Layer) per stabilire una connessione al computer remoto e inviare il messaggio. Per impostazione predefinita SSL non viene utilizzato.

WS-Management consente di crittografare tutto il contenuto di Windows PowerShell trasmesso in rete. Il parametro UseSSL consente di specificare che deve essere utilizzata la protezione aggiuntiva derivante dall'utilizzo di HTTPS anziché HTTP. Se si specifica questo parametro ma SSL non è disponibile sulla porta utilizzata per la connessione, il comando ha esito negativo.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Questo cmdlet non accetta alcun input.
Output | Nessuno Questo cmdlet non genera alcun output.

Esempio 1

C:\PS>Set-WSManQuickConfig

Descrizione
-----------
Questo comando imposta la configurazione richiesta per abilitare la gestione remota del computer locale. Per impostazione predefinita, questo comando crea un listener di WS-Management su HTTP.

Esempio 2

C:\PS>Set-WSManQuickConfig -UseSSL

Descrizione
-----------
Questo comando imposta la configurazione richiesta per abilitare la gestione remota del computer locale. Il parametro UseSSL fa sì che il comando crei un listener di WS-Management su HTTPS.

Vedere anche

  • Connect-WSMan
  • Disable-WSManCredSSP
  • Disconnect-WSMan
  • Enable-PSRemoting
  • Enable-WSManCredSSP
  • Get-WSManCredSSP
  • Get-WSManInstance
  • Invoke-WSManAction
  • New-PSSession
  • New-WSManInstance
  • New-WSManSessionOption
  • Test-WSMan


Show-EventLog

Visualizza i registri eventi del computer locale o di un computer remoto in Visualizzatore eventi.

Sintassi

Show-EventLog [[-ComputerName] <string>] [<CommonParameters>]

Descrizione

Il cmdlet Show-EventLog apre il Visualizzatore eventi nel computer locale in cui visualizza tutti i registri eventi classici nel computer locale o in un computer remoto.

Per aprire il Visualizzatore eventi in Windows Vista e versioni successive di Windows, l'utente corrente deve essere membro del gruppo Administrators nel computer locale.

I cmdlet che contengono il sostantivo EventLog (cmdlet EventLog) funzionano solo su registri eventi classici. Per ottenere eventi da registri che utilizzano la tecnologia Registro eventi di Windows in Windows Vista e nelle versioni successive di Windows, utilizzare Get-WinEvent.

Parametri

-ComputerName <string>

Specifica un computer remoto. Show-EventLog visualizza i registri eventi dal computer specificato nel Visualizzatore eventi nel computer locale. Il valore predefinito è il computer locale.

Digitare il nome NetBIOS, un indirizzo IP (Internet Protocol) o un nome di dominio completo di un computer remoto.

Questo parametro non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName di Get-EventLog anche se il computer non è configurato per l'esecuzione di comandi remoti.

Obbligatorio? | false
Posizione? | 1
Valore predefinito | .
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Nessuno Questo cmdlet non genera alcun output.

Note

Il prompt dei comandi di Windows PowerShell viene visualizzato all'apertura del Visualizzatore eventi. È possibile lavorare nella sessione corrente con il Visualizzatore eventi aperto.

Poiché questo cmdlet richiede un'interfaccia utente, non funziona nelle installazioni Server Core di Windows Server.

Esempio 1

C:\PS>show-eventlog

Descrizione
-----------
Questo comando apre il Visualizzatore eventi in cui visualizza i registri eventi classici nel computer locale.

Esempio 2

C:\PS>show-eventlog -computername Server01

Descrizione
-----------
Questo comando apre il Visualizzatore eventi in cui visualizza i registri eventi classici nel computer Server01.

Vedere anche

  • Clear-EventLog
  • Get-EventLog
  • Limit-EventLog
  • New-EventLog
  • Remove-EventLog
  • Write-EventLog
  • Get-WinEvent


Sort-Object

Ordina gli oggetti in base ai valori delle proprietà.

Sintassi

Sort-Object [[-Property] <Object[]>] [-CaseSensitive] [-Culture <string>] [-Descending] [-InputObject <psobject>] [-Unique] [<CommonParameters>]

Descrizione

Il cmdlet Sort-Object applica agli oggetti un ordine crescente o decrescente in base ai valori delle proprietà dell'oggetto.

È possibile specificare una o più proprietà (per un ordinamento a più chiavi) e selezionare un ordinamento con o senza distinzione tra maiuscole e minuscole. È inoltre possibile indicare a Sort-Object di visualizzare solo gli oggetti con un valore univoco per una particolare proprietà.

Parametri

-CaseSensitive

Indica che per l'ordinamento verrà fatta distinzione tra maiuscole e minuscole. Per impostazione predefinita, per l'ordinamento non viene fatta distinzione tra maiuscole e minuscole.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Culture <string>

Specifica la configurazione relativa alla lingua da utilizzare durante l'ordinamento.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Descending

Ordina gli oggetti in ordine decrescente. L'impostazione predefinita è l'ordine crescente.

Il parametro Descending si applica a tutte le proprietà. Per applicare ad alcune proprietà

l'ordine crescente e ad altre quello decrescente, è necessario specificare i relativi valori mediante una tabella hash. Per informazioni dettagliate, vedere gli esempi.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica gli oggetti da ordinare.

Quando si utilizza il parametro InputObject per inviare una raccolta di elementi, Sort-Object riceve un oggetto che rappresenta la raccolta. Poiché non è possibile ordinare un solo oggetto, Sort-Object restituisce invariata l'intera raccolta.

Per ordinare gli oggetti, reindirizzarli a Sort-Object.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Property <Object[]>

Specifica le proprietà da utilizzare durante l'ordinamento. Gli oggetti vengono ordinati in base ai valori di queste proprietà. Immettere i nomi delle proprietà. È consentito l'utilizzo di caratteri jolly.

Se si specificano più proprietà, gli oggetti verranno innanzitutto ordinati in base alla prima proprietà. Se più oggetti hanno lo stesso valore per la prima proprietà, vengono ordinati in base alla seconda proprietà. Il processo continuerà fino a quando non saranno più disponibili proprietà specificate o gruppi di oggetti.

Se non si specificano le proprietà, il cmdlet esegue l'ordinamento in base alle proprietà predefinite per il tipo di oggetto.

Il valore del parametro Property può essere una nuova proprietà calcolata. Per creare una proprietà calcolata, utilizzare una tabella hash. Le chiavi valide sono le seguenti:

-- Expression <stringa> o <blocco di script>

-- Ascending <booleano>

-- Descending <booleano>

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | true

-Unique

Elimina i duplicati e restituisce solo i membri univoci della raccolta. È possibile utilizzare questo parametro anziché il cmdlet Get-Unique.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare gli oggetti da ordinare a Sort-Object.
Output | System.Management.Automation.PSObject Sort-Object restituisce gli oggetti ordinati.

Note

Sort-Object ordina gli oggetti in base alle proprietà specificate o alle proprietà di ordinamento predefinite per gli oggetti di tale tipo.

Se una delle proprietà specificate non è disponibile per un oggetto, il valore della proprietà per tale oggetto verrà interpretato dal cmdlet come NULL e inserito alla fine dell'ordinamento.

Durante l'ordinamento di oggetti, Sort-Object utilizza il metodo Compare per ciascuna proprietà. Se una proprietà non implementa IComparable, il cmdlet convertirà il valore della proprietà in una stringa e utilizzerà il metodo Compare per System.String.

Il cmdlet Sort-Object applica agli oggetti un ordine crescente o decrescente in base ai valori delle proprietà dell'oggetto.

Se si ordina una proprietà il cui valore è un'enumerazione, Sort-Object applica l'ordine numerico ai valori di enumerazione, non ai nomi dei membri di enumerazione. Ad esempio, se si ordinano servizi in base allo stato, i servizi con lo stato "Stopped" vengono visualizzati prima dei servizi con lo stato "Running", perché il valore di Status è un'enumerazione ServiceControllerStatus in cui "Stopped" dispone del valore 1 e "Running" del valore 4.

Esempio 1

C:\PS>get-childitem | sort-object

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---         9/13/2005   4:24 PM          0 0
-a---          9/6/2005   4:19 PM         12 a.csv
-a---         9/21/2005   3:49 PM        529 a.Ps
-a---         8/22/2005   4:14 PM         22 a.pl
-a---         9/27/2005  10:33 AM         24 a.txt
-a---         9/15/2005  10:31 AM        398 a.vbs
-a---         7/21/2005  12:39 PM      37066 a.xml
-a---         8/28/2005  11:30 PM       5412 a.xslt
-a---        10/25/2005   1:59 PM        125 AdamTravel.txt
-a---         7/21/2005   9:49 AM         59 add2Num.Ps
-a---         8/29/2005   5:42 PM       7111 add-content.xml
-a---         9/21/2005  12:46 PM       8771 aliens.Ps
-a---         8/10/2005   2:10 PM        798 array.xml
-a---          8/4/2004   5:00 AM        110 AUTORUN.INF
-a---          9/6/2005   4:20 PM        245 b.csv
...

Descrizione
-----------
Questo comando ordina i file e le sottodirectory incluse nella directory corrente. Poiché non è specificata alcuna proprietà, i file e le directory vengono disposti in ordine alfabetico crescente in base alla proprietà di ordinamento predefinita, Name.

Esempio 2

C:\PS>get-childitem | sort-object -property length

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---         12/3/2006   5:35 PM          2 pref.txt
-a---          9/6/2006   3:33 PM         15 count.txt
-a---         7/26/2006  10:01 AM         30 filenoext
-a---         8/18/2006   9:02 AM         52 temp.ps1
-a---         8/18/2006   9:02 AM         52 temp.msh
-a---          9/6/2006   3:33 PM         56 fivewords.txt
-a---         7/26/2006   9:28 AM         80 date.csv
-a---         7/29/2006   7:15 PM         84 test2.txt
-a---         7/29/2006   7:15 PM         84 test.ps1

Descrizione
-----------
Tramite questo comando verranno visualizzati in file inclusi nella directory corrente in ordine crescente in base alla dimensione del file.

Esempio 3

C:\PS>get-process | sort-object -property WS | select-object -last 5

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
   1105      25    44236      18932   197    93.81   2032 iexplore
   2526      66    37668      36836   221   393.27    868 svchost
    974      19    22844      45928   371    88.39   3952 WINWORD
   1371      22    42192      61872   323    75.75   1584 INFOPATH
   2145      58    93088      70680   619   396.69   3908 OUTLOOK

Descrizione
-----------
Questo comando visualizza i cinque processi nel computer con il maggiore utilizzo di memoria in base alle dimensioni dei relativi working set.

Il comando utilizza il cmdlet Get-Process per ottenere un elenco di processi. Utilizza un operatore pipeline (|) per inviare i risultati al cmdlet Sort-Object che ordina gli oggetti in base all'ordine del working set.

Un altro operatore pipeline invia i risultati a Select-Object che visualizza solo gli ultimi cinque elementi nell'elenco.

Esempio 4

C:\PS>get-history | sort-object -descending

Id CommandLine
-- -----------
51 get-history | sort -descending
50 get-history | sort -descending
49 get-history | sort -descending
48 get-history | sort -descending
47 get-history | sort -descending
46 get-history | sort -descending
45 get-history | sort -descending
44 cd $pshome
43 get-childitem | sort-object
42 gci *.txt

Descrizione
-----------
Tramite questo comando gli oggetti HistoryInfo verranno ordinati utilizzando la proprietà Id come chiave predefinita.

Esempio 5

C:\PS>C:\PS> get-service | sort-object -property `
@{Expression="Status";Descending=$true}, `
@{Expression="DisplayName";Descending=$false}

Status   Name               DisplayName
------   ----               -----------
Running  ALG                Application Layer Gateway Service
Running  Ati HotKey Poller  Ati HotKey Poller
Running  wuauserv           Automatic Updates
Running  BITS               Background Intelligent Transfer Ser...
Running  Client for NFS     Client for NFS
...
Stopped  clr_optimizatio... .NET Runtime Optimization Service v...
Stopped  Alerter            Alerter
Stopped  AppMgmt            Application Management
Stopped  aspnet_state       ASP.NET State Service
Stopped  ATI Smart          ATI Smart
Stopped  ClipSrv            ClipBook

Descrizione
-----------
Questo comando visualizza i servizi nel computer in ordine decrescente per Status e crescente per DisplayName.

Il comando utilizza il cmdlet Get-Service per ottenere i servizi disponibili nel computer. Utilizza un operatore pipeline (|) per inviare i servizi al cmdlet Sort-Object.

Per applicare a una proprietà l'ordine crescente e a un'altra l'ordine decrescente, il comando utilizza una tabella hash per il valore del parametro Property. La tabella hash utilizza una chiave Expression per specificare il nome della proprietà e una chiave Ascending o Descending per specificare l'ordinamento.

La visualizzazione risultante, che dispone i valori di Status in ordine decrescente, elenca le proprietà con il valore di Status "Running" prima di quelle con il valore "Stopped". Se si applica l'ordine crescente, "Stopped" viene visualizzato prima di "Running", perché Status è una proprietà enumerata in cui il valore "Stopped" (1) è minore del valore "Running" (4).

Esempio 6

C:\PS>get-childitem *.txt | sort-object -property @{Expression={$_.LastWriteTime - $_.CreationTime}; Ascending=$false} | Format-Table LastWriteTime, CreationTime

LastWriteTime                           CreationTime
-------------                           ------------
2/21/2006 10:22:20 AM                   10/3/2005 4:19:40 PM
2/27/2006 8:14:24 AM                    2/23/2006 10:41:08 PM
2/24/2006 1:26:19 PM                    2/23/2006 11:23:36 PM
1/5/2006 12:01:35 PM                    1/5/2006 11:35:30 AM
2/24/2006 9:25:40 AM                    2/24/2006 9:22:24 AM
2/24/2006 9:40:01 AM                    2/24/2006 9:39:41 AM
2/21/2006 10:21:30 AM                   2/21/2006 10:21:30 AM

Descrizione
-----------
Tramite questo comando i file di testo verranno ordinati in ordine decrescente in base all'intervallo di tempo tra CreationTime e LastWriteTime.

Esempio 7

C:\PS>get-content servers.txt

localhost
test01
server01
server02
localhost
server01

C:\PS> get-content servers.txt | sort-object -unique
localhost
server01
server02
test01

Descrizione
-----------
Questi comandi ordinano i nomi dei server in un file di testo. Il secondo comando utilizza il cmdlet Sort-Object con il parametro Unique per restituire un elenco ordinato senza duplicati.

Vedere anche

  • Group-Object


Split-Path

Restituisce la parte specificata di un percorso.

Sintassi

Split-Path [-IsAbsolute] [-Path] <string[]> [-Credential <PSCredential>] [-LiteralPath <string[]>] [-Resolve] [-UseTransaction] [<CommonParameters>]

Split-Path [-Leaf] [-Path] <string[]> [-Credential <PSCredential>] [-LiteralPath <string[]>] [-Resolve] [-UseTransaction] [<CommonParameters>]

Split-Path [-NoQualifier] [-Path] <string[]> [-Credential <PSCredential>] [-LiteralPath <string[]>] [-Resolve] [-UseTransaction] [<CommonParameters>]

Split-Path [-Parent] [-Path] <string[]> [-Credential <PSCredential>] [-LiteralPath <string[]>] [-Resolve] [-UseTransaction] [<CommonParameters>]

Split-Path [-Qualifier] [-Path] <string[]> [-Credential <PSCredential>] [-LiteralPath <string[]>] [-Resolve] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Split-Path restituisce solo la parte specificata di un percorso, ad esempio la directory padre, una directory figlio o un nome file. Può inoltre visualizzare gli elementi a cui il percorso diviso fa riferimento e indicare se il percorso è relativo o assoluto.

È possibile utilizzare questo cmdlet per visualizzare o inviare solo una parte selezionata di un percorso.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01". In alternativa, immettere un oggetto PSCredential, ad esempio quello generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-IsAbsolute

Restituisce TRUE se il percorso è assoluto e FALSE se è relativo. Un percorso assoluto presenta una lunghezza maggiore di zero e non contiene un punto (. ) per indicare il percorso corrente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Leaf

Restituisce solo l'ultimo elemento o contenitore nel percorso. Nel percorso "C:\Test\Logs\Pass1.log", ad esempio, restituisce solo "Pass1.log".

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica i percorsi da dividere. A differenza di Path, il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-NoQualifier

Restituisce il percorso senza il qualificatore. Per il provider FileSystem o Registry, il qualificatore è l'unità del percorso del provider, ad esempio C: o HKCU:. Nel percorso "C:\Test\Logs\Pass1.log", ad esempio, restituisce solo "\Test\Logs\Pass1.log".

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Parent

Restituisce solo i contenitori padre dell'elemento o del contenitore specificato dal percorso. Nel percorso "C:\Test\Logs\Pass1.log", ad esempio, restituisce "C:\Test\Logs". Parent è il parametro predefinito per la divisione del percorso.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Path <string[]>

Specifica i percorsi da dividere. È consentito l'utilizzo di caratteri jolly. Se il percorso include spazi, è necessario racchiuderlo tra virgolette doppie. È inoltre possibile reindirizzare un percorso a Split-Path.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Qualifier

Restituisce solo il qualificatore del percorso specificato. Per il provider FileSystem o Registry, il qualificatore è l'unità del percorso del provider, ad esempio C: o HKCU:.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Resolve

Visualizza gli elementi cui fa riferimento il percorso diviso risultante anziché visualizzare gli elementi del percorso.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso a Split-Path.
Output | System.String Con il cmdlet Split-Path vengono restituite stringhe di testo. Quando si utilizza il parametro Resolve, Split-Path restituisce una stringa che descrive il percorso degli elementi; non restituisce oggetti che rappresentano gli elementi, ad esempio un oggetto FileInfo o RegistryKey.

Note

I parametri di divisione del percorso (Qualifier, Parent, Leaf e NoQualifier) sono esclusivi. È possibile utilizzarne uno solo in ogni comando.

I cmdlet che contengono il sostantivo Path (cmdlet Path) modificano i nomi dei percorsi e restituiscono i nomi in un formato conciso che può essere interpretato da tutti i provider di Windows PowerShell. Sono progettati per essere utilizzati in programmi e script in cui si intende visualizzare un nome di percorso, completo o parziale, in un determinato formato. Utilizzare questi cmdlet in modo analogo a Dirname, Normpath, Realpath, Join o altri modificatori di percorso.

È possibile utilizzare i cmdlet Path con diversi provider, inclusi FileSystem, Registry e Certificate.

Il cmdlet Split-Path è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>split-path "HKCU:\Software\Microsoft" -qualifier

HKCU:

Descrizione
-----------
Tramite questo comando viene restituito solo il qualificatore (unità) del percorso.

Esempio 2

C:\PS>split-path "C:\Test\Logs\*.log" -leaf -resolve

Pass1.log
Pass2.log
...

Descrizione
-----------
Questo comando visualizza i file a cui il percorso diviso fa riferimento. Poiché questo percorso è diviso sull'ultimo elemento (foglia), vengono visualizzati solo i nomi file dei percorsi.

Il parametro Resolve indica a Split-Path di visualizzare gli elementi a cui il percorso diviso fa riferimento anziché visualizzare il percorso diviso.

Come tutti i comandi Split-Path, questo comando restituisce stringhe. Non restituisce oggetti FileInfo che rappresentano i file.

Esempio 3

C:\PS>split-path "C:\WINDOWS\system32\WindowsPowerShell\V1.0\about_*.txt"

C:\WINDOWS\system32\WindowsPowerShell\V1.0

Descrizione
-----------
Tramite questo comando vengono restituiti solo i contenitori padre del percorso. Poiché non include alcun parametro per specificare la divisione, Split-Path utilizza la posizione di divisione predefinita, ovvero Parent.

Esempio 4

C:\PS>split-path ".\My Pictures\*.jpg" -IsAbsolute

False

Descrizione
-----------
Questo comando determina se il percorso è relativo o assoluto. In questo caso, poiché il percorso è relativo alla directory corrente rappresentata da un punto (.), restituisce FALSE ($false).

Esempio 5

C:\PS>set-location (split-path $profile)

PS C:\Documents and Settings\juneb\My Documents\WindowsPowerShell>

Descrizione
-----------
Questo comando consente di spostarsi sulla directory che contiene il profilo di Windows PowerShell.
Il comando tra parentesi utilizza il cmdlet Split-Path per restituire solo l'elemento padre del percorso archiviato nella variabile $Profile incorporata. Parent è il parametro predefinito per la divisione della posizione, pertanto è possibile ometterlo dal comando. Le parentesi indicano a Windows PowerShell di eseguire prima il comando. Si tratta di un modo pratico per spostarsi su una directory con un percorso lungo.

Esempio 6

C:\PS>'C:\Documents and Settings\User01\My Documents\My Pictures' | split-path

C:\Documents and Settings\User01\My Documents

Descrizione
-----------
Questo comando utilizza un operatore pipeline (|) per inviare un percorso al cmdlet Split-Path. Il percorso è racchiuso tra virgolette per indicare che si tratta di un solo token.

Vedere anche

  • about_Providers
  • Test-Path
  • Convert-Path
  • Resolve-Path
  • Join-Path


Start-Job

Avvia un processo in background di Windows PowerShell.

Sintassi

Start-Job [-ScriptBlock] <scriptblock> [[-InitializationScript] <scriptblock>] [-ArgumentList <Object[]>] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-Credential <PSCredential>] [-InputObject <psobject>] [-Name <string>] [-RunAs32] [<CommonParameters>]

Start-Job [[-FilePath] <string>] [[-InitializationScript] <scriptblock>] [-ArgumentList <Object[]>] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-Credential <PSCredential>] [-InputObject <psobject>] [-Name <string>] [-RunAs32] [<CommonParameters>]

Descrizione

Il cmdlet Start-Job avvia un processo in background di Windows PowerShell nel computer locale.

In un processo in background di Windows PowerShell viene eseguito un comando "in background" senza interagire con la sessione corrente. Quando si avvia un processo in background, viene immediatamente restituito un oggetto processo, anche se il completamento del processo richiede un tempo prolungato. Durante l'esecuzione del processo, è possibile continuare a lavorare nella sessione senza interruzione.

L'oggetto processo contiene informazioni utili sul processo, ma non contiene i relativi risultati. Al termine del processo, utilizzare il cmdlet Receive-Job per ottenere i risultati del processo. Per ulteriori informazioni sui processi in background, vedere about_Jobs.

Per eseguire un processo in background in un computer remoto, utilizzare il parametro AsJob, disponibile in molti cmdlet, oppure utilizzare il cmdlet Invoke-Command per eseguire un comando Start-Job nel computer remoto. Per ulteriori informazioni, vedere about_Remote_Jobs.

Parametri

-ArgumentList <Object[]>

Specifica gli argomenti (valori del parametro) per lo script specificato dal parametro FilePath.

Poiché tutti i valori che seguono il nome del parametro ArgumentList vengono interpretati come valori di ArgumentList, il parametro ArgumentList deve essere l'ultimo parametro nel comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Authentication <AuthenticationMechanism>

Specifica il meccanismo utilizzato per autenticare le credenziali dell'utente. I valori validi sono Default, Basic, Credssp, Digest, Kerberos, Negotiate e NegotiateWithImplicitCredential. Il valore predefinito è Default.

L'autenticazione CredSSP è disponibile unicamente in Windows Vista, Windows Server 2008 e nelle versioni successive di Windows.

Per informazioni sui valori di questo parametro, vedere la descrizione dell'enumerazione System.Management.Automation.Runspaces.AuthenticationMechanism in MSDN.

ATTENZIONE: l'autenticazione CredSSP (Credential Security Service Provider), che prevede il passaggio delle credenziali dell'utente a un computer remoto per l'autenticazione, è progettata per i comandi che richiedono l'autenticazione su più di una risorsa, ad esempio l'accesso a una condivisione di rete remota. Questo meccanismo aumenta il rischio per la sicurezza dell'operazione remota. Se il computer remoto è compromesso, è possibile utilizzare le credenziali passate a tale computer per controllare la sessione di rete.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno ottenuto dal cmdlet Get-Credential.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Current user
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-FilePath <string>

Esegue lo script locale specificato come processo in background. Immettere il percorso e il nome file dello script o reindirizzare un percorso di script a Start-Job. Lo script deve trovarsi nel computer locale o in una directory accessibile dal computer locale.

Quando si utilizza questo parametro, in Windows PowerShell il contenuto del file di script specificato viene convertito in un blocco di script, che viene successivamente eseguito come processo in background.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InitializationScript <scriptblock>

Specifica i comandi da eseguire prima dell'inizio del processo. Racchiudere i comandi tra parentesi graffe ( { } ) per creare un blocco di script.

Utilizzare questo parametro per preparare la sessione in cui viene eseguito il processo. Ad esempio, è possibile utilizzarlo per aggiungere funzioni, snap-in e moduli alla sessione.

Obbligatorio? | false
Posizione? | 2
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica l'input del comando. Immettere una variabile che contiene gli oggetti oppure digitare un comando o un'espressione che consente di generare gli oggetti.

Nel valore del parametro ScriptBlock, utilizzare la variabile automatica $input per rappresentare gli oggetti di input.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Name <string>

Specifica un nome descrittivo per il nuovo processo. È possibile utilizzare il nome per identificare il processo tra altri cmdlet Job, ad esempio Stop-Job.

Il nome descrittivo predefinito è Job#, dove "#" è un numero ordinale incrementato per ogni processo.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Job<number>
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-RunAs32

Esegue il processo in un processo a 32 bit.

Utilizzare questo parametro per forzare il processo in un processo a 32 bit in un sistema operativo a 64 bit.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ScriptBlock <scriptblock>

Specifica i comandi da eseguire nel processo in background. Racchiudere i comandi tra parentesi graffe ( { } ) per creare un blocco di script. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare un percorso di file a Start-Job.
Output | System.Management.Automation.RemotingJob Start-Job restituisce un oggetto che rappresenta il processo avviato.

Note

Per essere eseguito in background, Start-Job viene eseguito nella propria sessione all'interno della sessione corrente. Quando si utilizza il cmdlet Invoke-Command per eseguire un comando Start-Job in una sessione in un computer remoto, Start-Job viene eseguito in una sessione all'interno della sessione remota.

Esempio 1

C:\PS>start-job -scriptblock {get-process}

C:\PS> start-job -command "get-process"

Id    Name  State    HasMoreData  Location   Command
---   ----  -----    -----------  --------   -------
1     Job1  Running  True         localhost  get-process

Descrizione
-----------
Questo comando avvia un processo in background in cui viene eseguito un comando Get-Process. Il comando restituisce un oggetto processo con le informazioni sul processo. Il prompt dei comandi viene visualizzato immediatamente, in modo che sia possibile proseguire il lavoro nella sessione mentre il processo è in esecuzione in background.

Esempio 2

C:\PS>$jobWRM = invoke-command -computerName (get-content servers.txt) -scriptblock {get-service winrm} -jobname WinRM -throttlelimit 16 -AsJob

Descrizione
-----------
Questo comando utilizza il cmdlet Invoke-Command e il parametro AsJob per avviare un processo in background che esegue un comando "winrm get-service" in numerosi computer. Poiché il comando è in esecuzione in un server con traffico di rete sostanziale, il comando utilizza il parametro ThrottleLimit di Invoke-Command per limitare il numero di comandi simultanei a 16.

Viene utilizzato il parametro ComputerName per specificare i computer in cui viene eseguito il processo. Il valore del parametro ComputerName è un comando Get-Content che ottiene il testo nel file Servers.txt, un file di nomi di computer in un dominio.

Viene utilizzato il parametro ScriptBlock per specificare il comando e il parametro JobName per specificare un nome descrittivo per il processo.

Esempio 3

C:\PS>$j = start-job -scriptblock {get-eventlog -log system} -credential domain01\user01

C:\PS> $j | format-list -property *

HasMoreData   : True
StatusMessage :
Location      : localhost
Command       : get-eventlog -log system
JobStateInfo  : Running
Finished      : System.Threading.ManualResetEvent
InstanceId    : 2d9d775f-63e0-4d48-b4bc-c05d0e177f34
Id            : 1
Name          : Job1
ChildJobs     : {Job2}
Output        : {}
Error         : {}
Progress      : {}
Verbose       : {}
Debug         : {}
Warning       : {}
StateChanged  :

C:\PS> $j.JobStateInfo.state
Completed

C:\PS> $results = receive-job -job $j

C:\PS> $results
Index Time          Type        Source                EventID Message
----- ----          ----        ------                ------- -------
84366 Feb 18 19:20  Information Service Control M...     7036 The description...
84365 Feb 18 19:16  Information Service Control M...     7036 The description...
84364 Feb 18 19:10  Information Service Control M...     7036 The description...
...

Descrizione
-----------
Questi comandi gestiscono un processo in background che ottiene tutti gli eventi dal registro di sistema in Visualizzatore eventi. Il processo viene eseguito nel computer locale.

Il primo comando utilizza il cmdlet Start-Job per avviare il processo. Viene utilizzato il parametro Credential per specificare l'account utente di un utente che dispone dell'autorizzazione per eseguire il processo nel computer. Successivamente il comando salva l'oggetto processo restituito da Start-Job nella variabile $j.

A questo punto, è possibile riprendere le altre attività mentre il processo viene completato.

Il secondo comando utilizza un operatore pipeline (|) per passare l'oggetto processo in $j al cmdlet Format-List. Il comando Format-List utilizza il parametro Property con un valore indicante tutti gli elementi (*) per visualizzare tutte le proprietà dell'oggetto processo in un elenco.

Nel terzo comando viene visualizzato il valore della proprietà JobStateInfo. Tale proprietà contiene lo stato del processo.

Nel quarto comando viene utilizzato il cmdlet Receive-Job per ottenere i risultati del processo. I risultati vengono archiviati nella variabile $results.

Nel comando finale viene visualizzato il contenuto della variabile $results.

Esempio 4

C:\PS>start-job -filepath c:\scripts\sample.ps1

Descrizione
-----------
Questo comando esegue lo script Sample.ps1 come processo in background.

Esempio 5

C:\PS>start-job -name WinRm -scriptblock {get-process winrm}

Descrizione
-----------
Questo comando esegue un processo in background che ottiene il processo WinRM nel computer locale. Viene utilizzato il parametro ScriptBlock per specificare il comando che viene eseguito nel processo in background. Viene utilizzato il parametro Name per specificare un nome descrittivo per il nuovo processo.

Esempio 6

C:\PS>start-job -name GetMappingFiles -initializationScript {import-module MapFunctions} -scriptblock {Get-Map -name * | set-content D:\Maps.tif} -runAs32

Descrizione
-----------
Con questo comando viene avviato un processo che raccoglie una grande quantità di dati e li salva in un file con estensione tif. Nel comando viene utilizzato il parametro InitializationScript per eseguire un blocco di script che importa un modulo obbligatorio. Viene inoltre utilizzato il parametro RunAs32 per eseguire il processo in un processo a 32 bit anche se il computer dispone di un sistema operativo a 64 bit.

Vedere anche

  • about_Jobs
  • about_Job_Details
  • about_Remote_Jobs
  • Get-Job
  • Receive-Job
  • Wait-Job
  • Stop-Job
  • Remove-Job
  • Invoke-Command


Start-Process

Avvia uno o più processi nel computer locale.

Sintassi

Start-Process [-FilePath] <string> [[-ArgumentList] <string[]>] [-Credential <PSCredential>] [-LoadUserProfile] [-NoNewWindow] [-PassThru] [-RedirectStandardError <string>] [-RedirectStandardInput <string>] [-RedirectStandardOutput <string>] [-UseNewEnvironment] [-Wait] [-WorkingDirectory <string>] [<CommonParameters>]

Start-Process [-FilePath] <string> [[-ArgumentList] <string[]>] [-PassThru] [-Verb <string>] [-Wait] [-WindowStyle {<Normal> | <Hidden> | <Minimized> | <Maximized>}] [-WorkingDirectory <string>] [<CommonParameters>]

Descrizione

Avvia uno o più processi nel computer locale. Per specificare il programma in esecuzione nel processo, immettere un file eseguibile, un file script o un file che può essere aperto tramite un programma nel computer. Se si specifica un file non eseguibile, Start-Process avvia il programma associato al file, in modo analogo al cmdlet Invoke-Item.

È possibile utilizzare i parametri di Start-Process per specificare opzioni, ad esempio il caricamento di un profilo utente, l'avvio del processo in una nuova finestra o l'utilizzo di credenziali alternative.

Parametri

-ArgumentList <string[]>

Specifica i parametri o i valori dei parametri da utilizzare durante l'avvio del processo. Il nome del parametro ("Arguments") è facoltativo.

Obbligatorio? | false
Posizione? | 2
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno ottenuto dal cmdlet Get-Credential. Per impostazione predefinita, il cmdlet utilizza le credenziali dell'utente corrente.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Current user.
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-FilePath <string>

Specifica il percorso (facoltativo) e il nome file del programma in esecuzione nel processo. Immettere il nome di un file eseguibile o di un documento, ad esempio un file con estensione txt o doc, associato a un programma nel computer. Questo parametro è obbligatorio.

Se si specifica solo un nome file, utilizzare il parametro WorkingDirectory per specificare il percorso.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LoadUserProfile

Carica il profilo utente di Windows archiviato nella chiave del Registro di sistema HKEY_USERS per l'utente corrente. Il valore predefinito è FALSE.

Questo parametro non ha effetto sui profili di Windows PowerShell. (Vedere about_Profiles.)

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-NoNewWindow

Impedisce l'esecuzione del processo in una nuova finestra. Per impostazione predefinita, il processo viene eseguito in una nuova finestra.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto processo per ogni processo avviato dal cmdlet. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-RedirectStandardError <string>

Invia qualsiasi errore generato dal processo a un file specificato. Immettere il percorso e il nome file. Per impostazione predefinita, gli errori vengono visualizzati nella console.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Errors are displayed in the console
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-RedirectStandardInput <string>

Legge l'input dal file specificato. Immettere il percorso e il nome del file di input. Per impostazione predefinita, il processo ottiene l'input dalla tastiera.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Keyboard
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-RedirectStandardOutput <string>

Invia l'output generato dal processo a un file specificato. Immettere il percorso e il nome file. Per impostazione predefinita, l'output viene visualizzato nella console.

Obbligatorio? | false
Posizione? | named
Valore predefinito | FALSE
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseNewEnvironment

Utilizzare le nuove variabili di ambiente specificate per il processo. Per impostazione predefinita, il processo avviato viene eseguito con le variabili di ambiente specificate per il computer e l'utente.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Verb <string>

Specifica un verbo da utilizzare durante l'avvio del processo, ad esempio Edit, Open o Print.

Ogni tipo di file dispone di un set di verbi da utilizzare. Per trovare i verbi che è possibile utilizzare con il processo, utilizzare la proprietà Verbs dell'oggetto.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Wait

Attende il completamento del processo specificato prima di accettare altro input. Questo parametro elimina il prompt dei comandi o mantiene la finestra fino al completamento del processo.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WindowStyle <ProcessWindowStyle>

Specifica lo stato delle finestre utilizzate per il processo. I valori validi sono Normal, Hidden, Minimized e Maximized. Il valore predefinito è Normal.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Normal
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WorkingDirectory <string>

Specifica la posizione del file eseguibile o del documento in esecuzione nel processo. Il valore predefinito è la directory corrente.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Current directory
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a Start-Process.
Output | Nessuno o System.Diagnostics.Process Quando si utilizza il parametro PassThru, Start-Process genera System.Diagnostics.Process. Negli altri casi, il cmdlet non restituisce alcun output.

Note

Questo cmdlet viene implementato tramite il metodo Start della classe System.Diagnostics,Process. Per ulteriori informazioni su questo metodo, vedere l'argomento relativo al metodo Process.Start in MSDN (Microsoft Developer Network) Library all'indirizzo http://go.microsoft.com/fwlink/?LinkId=143602 (le informazioni potrebbero essere in lingua inglese).

Esempio 1

C:\PS>start-process sort.exe

Descrizione
-----------
Questo comando avvia un processo che utilizza il file Sort.exe nella directory corrente. Il comando utilizza tutti i valori predefiniti, tra cui lo stile della finestra predefinito, la directory di lavoro e le credenziali.

Esempio 2

C:\PS>start-process myfile.txt -workingdirectory "C:\PS-Test" -verb Print

Descrizione
-----------
Questo comando avvia un processo che stampa il file C:\PS-Test\MyFile.txt.

Esempio 3

C:\PS>start-process Sort.exe -RedirectStandardInput Testsort.txt -RedirectStandardOutput Sorted.txt -RedirectStandardError SortError.txt -UseNewEnvironment

Descrizione
-----------
Questo comando avvia un processo che ordina gli elementi nel file Testsort.txt e restituisce gli elementi ordinati nei file Sorted.txt. Qualsiasi errore viene scritto nel file SortError.txt.

Il parametro UseNewEnvironment specifica che il processo viene eseguito con le proprie variabili di ambiente.

Esempio 4

C:\PS>start-process notepad -wait -windowstyle Maximized

Descrizione
-----------
Questo comando avvia il processo Blocco note. Ingrandisce la finestra e la conserva fino al completamento del processo.

Vedere anche

  • Start-Service
  • Get-Process
  • Stop-Process
  • Wait-Process
  • Debug-Process


Start-Service

Avvia uno o più servizi arrestati.

Sintassi

Start-Service [-Name] <string[]> [-Exclude <string[]>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Start-Service -DisplayName <string[]> [-Exclude <string[]>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Start-Service [-InputObject <ServiceController[]>] [-Exclude <string[]>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Start-Service invia un messaggio di avvio al controller dei servizi di Windows per ognuno dei servizi specificati. Se un servizio è già in esecuzione, il messaggio viene ignorato senza errore. È possibile specificare i servizi in base al relativo nome o nome visualizzato oppure utilizzare il parametro InputObject per fornire un oggetto servizio che rappresenta i servizi che si desidera avviare.

Parametri

-DisplayName <string[]>

Specifica i nomi visualizzati dei servizi da avviare. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette i servizi specificati. Il valore di questo parametro qualifica il parametro Name. Immettere un criterio o un elemento del nome, ad esempio "s*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Avvia unicamente i servizi specificati. Il valore di questo parametro qualifica il parametro Name. Immettere un criterio o un elemento del nome, ad esempio "s*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <ServiceController[]>

Specifica gli oggetti ServiceController che rappresentano i servizi da avviare. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Name <string[]>

Specifica i nomi dei servizi da avviare.

Il nome del parametro è facoltativo. È possibile utilizzare "-Name" o il relativo alias, "-ServiceName", oppure omettere il nome del parametro.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta il servizio. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.ServiceProcess.ServiceController, System.String È possibile reindirizzare oggetti che rappresentano i servizi o stringhe che contengono i nomi del servizi a Start-Service.
Output | Nessuno o System.ServiceProcess.ServiceController Quando si utilizza il parametro PassThru, Start-Service genera un oggetto System.ServiceProcess.ServiceController che rappresenta il servizio. Negli altri casi, il cmdlet non genera alcun output.

Note

È inoltre possibile fare riferimento a Start-Service tramite il relativo alias predefinito "sasv". Per ulteriori informazioni, vedere about_Aliases.

Start-Service consente di controllare i servizi solo se l'utente corrente dispone delle autorizzazioni necessarie. Se un comando non viene eseguito correttamente, è possibile che l'utente non disponga delle autorizzazioni necessarie.

Per trovare i nomi dei servizi e i nomi visualizzati dei servizi nel sistema, digitare "Get-Service". I nomi dei servizi vengono visualizzati nella colonna Name e i nomi visualizzati vengono elencati nella colonna DisplayName.

È possibile avviare solo i servizi che presentano un tipo di avvio "Manual" o "Automatic". Non è possibile avviare i servizi con un tipo di avvio "Disabled". Se un comando Start-Service ha esito negativo e viene visualizzato il messaggio "Impossibile avviare il servizio <nome-servizio> sul computer," utilizzare un comando Get-WmiObject per trovare il tipo di avvio del servizio e, se necessario, utilizzare un comando Set-Service per modificare il tipo di avvio del servizio.

Alcuni servizi, ad esempio Avvisi e registri di prestazioni (SysmonLog), si arrestano automaticamente se non devono eseguire operazioni. Quando in Windows PowerShell viene avviato un servizio che si arresta immediatamente, viene visualizzato il messaggio seguente: "Avvio del servizio <nome-visualizzato> non riuscito".

Esempio 1

C:\PS>start-service -name eventlog

Descrizione
-----------
Tramite questo comando viene avviato il servizio EventLog nel computer locale. Viene utilizzato il parametro Name per identificare il servizio in base al relativo nome.

Esempio 2

C:\PS>start-service -displayname *remote* -whatif

Descrizione
-----------
Questo comando indica le conseguenze dell'avvio dei servizi con un nome visualizzato che include "remote". Viene utilizzato il parametro DisplayName per specificare i servizi tramite il relativo nome visualizzato anziché il nome del servizio. Inoltre, anziché eseguire direttamente il comando, viene utilizzato il parametro WhatIf per indicare le conseguenze dell'esecuzione del comando.

Esempio 3

C:\PS>$s = get-service wmi

C:\PS>start-service -InputObject $s -passthru | format-list >> services.txt

Descrizione
-----------
Tramite questi comandi viene avviato il servizio Strumentazione gestione Windows (WMI) nel computer e viene aggiunto un record dell'azione al file services.txt. Tramite il primo comando viene utilizzato il cmdlet Get-Service per ottenere un oggetto che rappresenta il servizio WMI e archiviarlo nella variabile $s.

Tramite il secondo comando viene utilizzato il cmdlet Start-Service per avviare il servizio WMI. Il servizio viene identificato utilizzando il parametro InputObject per passare la variabile $s contenente l'oggetto servizio WMI a Start-Service. Successivamente viene utilizzato il parametro PassThru per creare un oggetto che rappresenta l'avvio del servizio. Senza questo parametro, Start-Service non crea alcun output.

L'oggetto creato da Start-Service viene passato dall'operatore pipeline (|) al cmdlet Format-List, il quale formatta l'oggetto come un elenco delle relative proprietà. L'operatore di reindirizzamento e aggiunta (>>) reindirizza l'output al file services.txt, dove viene aggiunto alla fine del contenuto esistente.

Esempio 4

C:\PS># start-service

Descrizione
-----------
Questa serie di comandi illustra come avviare un servizio quando il tipo di avvio del servizio è "Disabled". Il primo comando, che utilizza il cmdlet Start-Service per avviare il servizio Telnet (tlntsvr), ha esito negativo.

C:\PS>start-service tlntsvr

Start-Service: Impossibile avviare il servizio 'Telnet (TlntSvr)' a causa del seguente errore: Impossibile avviare il servizio TlntSvr sul computer.
At line:1 char:14
+ start-service  <<<< tlntsvr

Tramite il secondo comando viene utilizzato il cmdlet Get-WmiObject per ottenere il servizio Tlntsvr. Tramite questo comando viene recuperato un oggetto con la proprietà del tipo di avvio nel campo StartMode. La visualizzazione risultante rivela che il tipo di avvio del servizio Tlntsvr è "Disabled".

C:\PS> get-wmiobject win32_service | where-object {$_.Name -eq "tlntsvr"}

ExitCode  : 0
Name      : TlntSvr
ProcessId : 0
StartMode : Disabled
State     : Stopped
Status    : OK

Tramite il comando successivo viene utilizzato il cmdlet Set-Service per modificare il tipo di avvio del servizio Tlntsvr su "Manual".

C:\PS> set-service tlntsvr -startuptype manual

A questo punto, è possibile inviare nuovamente il comando Start-Service. Questa volta il comando avrà esito positivo.

C:\PS> start-service tlntsvr

Per accertare il corretto funzionamento del comando, utilizzare Get-Service.

Vedere anche

  • Get-Service
  • Suspend-Service
  • Stop-Service
  • Restart-Service
  • Resume-Service
  • Set-Service
  • New-Service


Start-Sleep

Sospende l'attività in uno script o in una sessione per il periodo di tempo specificato.

Sintassi

Start-Sleep -Milliseconds <int> [<CommonParameters>]

Start-Sleep [-Seconds] <int> [<CommonParameters>]

Descrizione

Il cmdlet Start-Sleep sospende l'attività in uno script o in una sessione per il periodo di tempo specificato. È possibile utilizzarlo per le molte attività, ad esempio l'attesa del completamento di un'operazione o la sospensione prima di ripetere un'operazione.

Parametri

-Milliseconds <int>

Specifica l'intervallo di sospensione della risorsa espresso in millisecondi. Il parametro può essere abbreviato in "-m".

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Seconds <int>

Specifica l'intervallo di sospensione della risorsa espresso in secondi. È possibile omettere il nome del parametro ("Seconds") oppure abbreviarlo in "-s".

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Int32 È possibile reindirizzare il numero di secondi a Start-Sleep.
Output | Nessuno Questo cmdlet non restituisce alcun output.

Note

È inoltre possibile fare riferimento a Start-Sleep tramite il relativo alias predefinito "sleep". Per ulteriori informazioni, vedere about_Aliases.

Esempio 1

C:\PS>Start-Sleep -s 15

Descrizione
-----------
Questo comando sospende tutti i comandi nella sessione per 15 secondi.

Esempio 2

C:\PS>Start-Sleep -m 500

Descrizione
-----------
Questo comando sospende tutti i comandi nella sessione per mezzo secondo (500 millisecondi).


Start-Transaction

Avvia una transazione.

Sintassi

Start-Transaction [-Independent] [-RollbackPreference {<Error> | <TerminatingError> | <Never>}] [-Timeout <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Start-Transaction avvia una transazione che è una serie di comandi gestiti come un'unità. È possibile completare (eseguire il commit) o annullare completamente (eseguire il rollback) una transazione, in modo che i dati modificati dalla transazione vengano ripristinati allo stato originale. Poiché i comandi in una transazione vengono gestiti come un'unità, viene eseguito il commit o il rollback di tutti i comandi.

Per impostazione predefinita, il rollback delle transazioni viene eseguito automaticamente se un qualsiasi comando nella transazione genera un errore, ma è possibile utilizzare il parametro RollbackPreference per modificare questo comportamento.

È necessario che i cmdlet utilizzati in una transazione siano progettati per supportare le transazioni. I cmdlet che supportano le transazioni hanno di un parametro UseTransaction. Per eseguire le transazioni in un provider, è necessario che il provider supporti le transazioni. Il provider Registro di sistema di Windows PowerShell in Windows Vista e versioni successive di Windows supporta le transazioni. È inoltre possibile utilizzare la classe Microsoft.PowerShell.Commands.Management.TransactedString per includere espressioni nelle transazioni in qualsiasi versione di Windows che supporti Windows PowerShell. Anche altri provider di Windows PowerShell supportano le transazioni.

Può essere attiva una sola transazione alla volta. Se si avvia una nuova transazione indipendente mentre è in corso una transazione, non ancora completata né annullata, la nuova transazione diventa attiva ed è necessario eseguirne il commit o il rollback prima di apportare modifiche alla transazione originale.

Il cmdlet Start-Transaction fa parte di un set di cmdlet che supportano la funzionalità delle transazioni in Windows PowerShell. Per ulteriori informazioni, vedere about_Transactions.

Parametri

-Independent

Avvia una transazione indipendente da qualsiasi transazione in corso. Per impostazione predefinita, se si utilizza Start-Transaction mentre è in corso un'altra transazione, viene aggiunto un nuovo sottoscrittore alla transazione in corso. Questo parametro ha effetto solo quando una transazione è già in corso nella sessione.

Per impostazione predefinita, se si utilizza Start-Transaction mentre è in corso una transazione, l'oggetto transazione esistente viene riutilizzato e il conteggio dei sottoscrittori incrementato. L'effetto è analogo all'unione della transazione originale. Un comando Undo-Transaction esegue il rollback dell'intera transazione. Per completare la transazione, è necessario immettere un comando Complete-Transaction per ciascun sottoscrittore. Poiché la maggior parte delle transazioni in corso contemporaneamente è correlata, l'impostazione predefinita è sufficiente per la maggior parte degli utilizzi.

Se si utilizza il parametro Independent, viene creata una nuova transazione che può essere completata o annullata senza influire su quella originale. Tuttavia, poiché può essere attiva una sola transazione alla volta, è necessario completare o eseguire il rollback della nuova transazione prima di riprendere l'utilizzo di quella originale.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Reuse the original transaction object.
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-RollbackPreference <RollbackSeverity>

Specifica le condizioni in base alle quali viene eseguito automaticamente il rollback di una transazione. Il valore predefinito è "Error".

I valori validi sono:

-- Error: il rollback della transazione viene eseguito automaticamente se si verifica un errore fatale o non fatale. "Error" è il valore predefinito.

-- Terminating error: il rollback della transazione viene eseguito automaticamente se si verifica un errore fatale.

-- Never: il rollback della transazione non viene mai eseguito automaticamente.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Error
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Timeout <int>

Specifica il tempo massimo di attività della transazione in minuti. Allo scadere del timeout viene eseguito automaticamente il rollback della transazione.

Per impostazione predefinita, non esiste alcun timeout per le transazioni avviate dalla riga di comando. Quando le transazioni vengono avviate da uno script, il timeout predefinito è 30 minuti.

Obbligatorio? | false
Posizione? | named
Valore predefinito | No timeout (infinite)
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Nessuno Questo cmdlet non genera alcun output.

Esempio 1

C:\PS>cd hkcu:\software

PS HKCU:\software> start-transaction

PS HKCU:\software> new-item MyCompany -UseTransaction

PS HKCU:\software> new-itemproperty MyCompany -name MyKey -value 123 -UseTransaction

PS HKCU:\software> undo-transaction

Descrizione
-----------
Questi comandi avviano ed eseguono il rollback di una transazione. Poiché viene eseguito il rollback della transazione, non viene apportata alcuna modifica al Registro di sistema.

Esempio 2

C:\PS>cd hkcu:\software

PS HKCU:\software> start-transaction

PS HKCU:\software> new-item MyCompany -UseTransaction

PS HKCU:\software> new-itemproperty MyCompany -name MyKey -value 123 -UseTransaction

PS HKCU:\software> complete-transaction

Descrizione
-----------
Questi comandi avviano e completano una transazione. Non viene apportata alcuna modifica al Registro di sistema fino all'utilizzo del comando Complete-Transaction.

Esempio 3

C:\PS>cd HKCU:\software
PS HKCU:\software> start-transaction
PS HKCU:\software> new-item -path NoPath -name MyCompany -UseTransaction
PS HKCU:\software> new-item -path . -name MyCompany -UseTransaction

PS HKCU:\software> start-transaction -RollbackPreference never
PS HKCU:\software> new-item -path NoPath -name MyCompany -UseTransaction
PS HKCU:\software> new-item -path . -name MyCompany -UseTransaction

# Start-Transaction (-rollbackpreference error)

PS HKCU:\software> start-transaction
PS HKCU:\software> new-item -path NoPath -Name MyCompany -UseTransaction
New-Item : The registry key at the specified path does not exist.
At line:1 char:9
+ new-item <<<<  -path NoPath -Name MyCompany -UseTransaction

PS HKCU:\software> new-item -path . -name MyCompany -UseTransaction
New-Item : Cannot use transaction. The transaction has been rolled back or has timed out.
At line:1 char:9
+ new-item <<<<  -path . -name MyCompany -UseTransaction

# Start-Transaction (-rollbackpreference never)
PS HKCU:\software> start-transaction -RollbackPreference never
PS HKCU:\software> new-item -path NoPath -name MyCompany -UseTransaction
New-Item : The registry key at the specified path does not exist.
At line:1 char:9
+ new-item <<<<  -path NoPath -name MyCompany -UseTransaction

PS HKCU:\software> new-item -path . -name MyCompany -UseTransaction
  Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
  0   0 MyCompany                      {}

PS HKCU:\Software> complete-transaction
# Succeeds

Descrizione
-----------
In questo esempio viene illustrato l'effetto della modifica del valore del parametro RollbackPreference.

Nel primo set di comandi, il comando Start-Transaction non utilizza il parametro RollbackPreference. Di conseguenza, viene utilizzato il valore predefinito ("Error"). Quando si verifica un errore in un comando di una transazione (il percorso specificato non esiste), viene eseguito automaticamente il rollback della transazione.

Nel secondo set di comandi, il comando Start-Transaction utilizza il parametro RollbackPreference con il valore "Never". Di conseguenza, quando si verifica un errore in un comando di una transazione, la transazione è ancora attiva e può essere completata correttamente.

Poiché è necessario eseguire la maggior parte delle transazioni senza errore, in genere si utilizza preferibilmente il valore predefinito del parametro RollbackPreference.

Esempio 4

C:\PS>cd HKCU:\software

PS HKCU:\software> start-transaction
PS HKCU:\software> new-item MyCompany -UseTransaction

PS HKCU:\software> start-transaction
PS HKCU:\software> get-transaction
PS HKCU:\software> new-item MyCompany2 -UseTransaction

PS HKCU:\software> complete-transaction
PS HKCU:\software> complete-transaction

PS HKCU:\Software> Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                2                 Active

Descrizione
-----------
In questo esempio viene illustrato l'effetto dell'utilizzo del comando Start-Transaction mentre è in corso una transazione. L'effetto è analogo all'unione della transazione in corso.

Sebbene si tratti di un comando semplificato, in genere questo scenario si verifica quando la transazione riguarda l'esecuzione di uno script che include una transazione completa.

Il primo comando Start-Transaction avvia la transazione. Il primo comando New-Item fa parte della transazione.

Il secondo comando Start-Transaction aggiunge un nuovo sottoscrittore alla transazione. Il comando Get-Transaction restituisce una transazione con un conteggio dei sottoscrittori pari a 2. Il secondo comando New-Item fa parte della stessa transazione.

Non viene apportata alcuna modifica al Registro di sistema finché non viene completata l'intera transazione. Per completare la transazione, è necessario immettere due comandi Complete-Transaction, uno per ciascun sottoscrittore. Se si eseguisse il rollback della transazione in qualsiasi punto, verrebbe eseguito il rollback dell'intera transazione per entrambi i sottoscrittori.

Esempio 5

C:\PS>cd HKCU:\software
PS HKCU:\software> start-transaction
PS HKCU:\software> new-item MyCompany -UseTransaction

PS HKCU:\software> start-transaction -independent
PS HKCU:\software> get-transaction
PS HKCU:\software> undo-transaction

PS HKCU:\software> new-itemproperty -path MyCompany -name MyKey -value 123 -UseTransaction
PS HKCU:\software> complete-transaction
PS HKCU:\software> dir my*

PS HKCU:\Software> get-transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                1                 Active

PS HKCU:\software> undo-transaction
PS HKCU:\software> new-itemproperty -path MyCompany -name MyKey -value 123 -UseTransaction

MyKey
-----
123

PS HKCU:\software> complete-transaction
PS HKCU:\software> dir my*

   Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
  0   1 MyCompany                      {MyKey}

Descrizione
-----------
In questo esempio viene illustrato l'effetto dell'utilizzo del parametro Independent di Start-Transaction per avviare una transazione mentre ne è in corso un'altra. In questo caso, il rollback della nuova transazione viene eseguito senza effetti sulla transazione originale.

Sebbene le transazioni siano logicamente indipendenti, è necessario eseguire il rollback o il commit della transazione più recente prima di riprendere l'utilizzo della transazione originale, poiché può essere attiva una sola transazione alla volta.

Il primo set di comandi avvia una transazione. Il comando New-Item fa parte della prima transazione.

Nel secondo set di comandi, il comando Start-Transaction utilizza il parametro Independent. Il comando Get-Transaction che segue illustra l'oggetto transazione per la transazione attiva (la più recente). Il conteggio dei sottoscrittori è uguale a 1, il che dimostra che le transazioni non sono correlate.

Quando viene eseguito il rollback della transazione attiva tramite un comando Undo-Transaction, la transazione originale diventa nuovamente attiva.

Il comando New-ItemProperty, che fa parte della transazione originale, viene completato correttamente ed è possibile completare la transazione originale tramite il comando Complete-Transaction. Di conseguenza, viene modificato il Registro di sistema.

Esempio 6

C:\PS>cd hkcu:\software

PS HKCU:\software> start-transaction
PS HKCU:\software> new-item MyCompany1 -UseTransaction
PS HKCU:\software> new-item MyCompany2
PS HKCU:\software> new-item MyCompany3 -UseTransaction

PS HKCU:\software> dir my*

PS HKCU:\software> complete-transaction
PS HKCU:\software> dir my*

PS HKCU:\Software> dir my*

   Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
  0   0 MyCompany2                     {}

PS HKCU:\Software> complete-transaction

PS HKCU:\Software> dir my*

   Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
  0   0 MyCompany1                     {}
  0   0 MyCompany2                     {}
  0   0 MyCompany3                     {}

Descrizione
-----------
In questo esempio viene illustrato che i comandi inviati mentre è in corso una transazione possono essere inclusi o meno nella transazione. Solo i comandi che utilizzano il parametro UseTransaction fanno parte della transazione.

Il primo e il terzo comando New-Item utilizzano il parametro UseTransaction. Questi comandi fanno parte della transazione. Poiché il secondo comando New-Item non utilizza il parametro UseTransaction, non fa parte della transazione.

Con il primo comando "dir" viene illustrato l'effetto. Il secondo comando New-Item è stato completato immediatamente, ma il primo e il terzo comando New-Item non diventano effettivi finché non viene eseguito il commit della transazione.

Il comando Complete-Transaction esegue il commit della transazione. Di conseguenza, con il secondo comando "dir" viene illustrato che tutti i nuovi elementi vengono aggiunti al Registro di sistema.

Esempio 7

C:\PS>start-transaction -timeout 2

# Wait two minutes...

C:\PS> get-transaction

C:\PS> new-item HKCU:\Software\MyCompany -UseTransaction

C:\PS> start-transaction -timeout 2

# Wait two minutes...

C:\PS>> get-transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   -----------
Error                1                 RolledBack

C:\PS> new-item HKCU:\Software\MyCompany -UseTransaction
New-Item : Cannot use transaction. The transaction has been rolled back or has timed out.
At line:1 char:9
+ new-item <<<<  MyCompany -UseTransaction

Descrizione
-----------
Questo comando utilizza il parametro Timeout di Start-Transaction per avviare una transazione che deve essere completata in due minuti. Se la transazione non è completa allo scadere del timeout, viene automaticamente eseguito il rollback.

Allo scadere del timeout, non si riceve una notifica, ma la proprietà Status dell'oggetto transazione viene impostata su RolledBack e i comandi che utilizzano il parametro UseTransaction hanno esito negativo.

Vedere anche

  • about_Transactions
  • Get-Transaction
  • Complete-Transaction
  • Undo-Transaction
  • Use-Transaction


Start-Transcript

Crea un record di una sessione completa di Windows PowerShell, o di parte di essa, in un file di testo.

Sintassi

Start-Transcript [[-Path] <string>] [-Append] [-Force] [-NoClobber] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Start-Transcript crea un record di una sessione completa di Windows PowerShell, o di parte di essa, in un file di testo. La trascrizione include tutti i comandi digitati dall'utente e l'output visualizzato nella console.

Parametri

-Append

Aggiunge la nuova trascrizione alla fine del file esistente. Il parametro Path consente di specificare il file.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di aggiungere la trascrizione a un file di sola lettura esistente. In caso di utilizzo in un file di sola lettura, il cmdlet modifica l'autorizzazione del file in lettura-scrittura. Quando si utilizza il parametro Force, il cmdlet non può ignorare le limitazioni di sicurezza.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-NoClobber

Impedisce che venga sovrascritto, ovvero sostituito, il contenuto di un file esistente. Per impostazione predefinita, se nel percorso specificato è presente un file di trascrizione, Start-Transcript lo sovrascrive senza visualizzare alcun avviso.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Path <string>

Specifica un percorso per il file della trascrizione. Immettere un percorso di un file con estensione txt. Non è consentito l'utilizzo di caratteri jolly.

Se non si specifica un percorso, Start-Transcript utilizza quello presente nel valore della variabile globale $Transcript. Se questa variabile non è stata creata, Start-Transcript archivia le trascrizioni nella directory $Home\Documenti come file \PowerShell_transcript.<time-stamp>.txt.

Se una delle directory incluse nel percorso non esiste, il comando ha esito negativo.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare oggetti a questo cmdlet.
Output | System.String Start-Transcript restituisce una stringa che contiene un messaggio di conferma e il percorso del file di output.

Note

Per interrompere una transazione, utilizzare il cmdlet Stop-Transcript.

Per registrare un'intera sessione, aggiungere il comando Start-Transcript al proprio profilo. Per ulteriori informazioni, vedere about_Profiles.

Esempio 1

C:\PS>start-transcript

Descrizione
-----------
Tramite questo comando viene avviata una trascrizione nel percorso di file predefinito.

Esempio 2

C:\PS>start-transcript -path c:\transcripts\transcript0.txt -noclobber

Descrizione
-----------
Tramite questo comando viene avviata una trascrizione nel file Transcript0.txt in C:\transcripts. Il parametro NoClobber impedisce che i file esistenti vengano sovrascritti. Se il file Transcript0.txt esiste già, il comando ha esito negativo.

Vedere anche

  • Stop-Transcript


Stop-Computer

Arresta (spegne) i computer locali e remoti.

Sintassi

Stop-Computer [[-ComputerName] <string[]>] [[-Credential] <PSCredential>] [-AsJob] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Force] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Stop-Computer arresta i computer in modalità remota. Può inoltre arrestare il computer locale.

È possibile utilizzare i parametri di Stop-Computer per eseguire le operazioni di arresto come processo in background, per specificare i livelli di autenticazione e le credenziali alternative, per limitare le connessioni simultanee create per eseguire il comando e per forzare un arresto immediato.

Per questo cmdlet non è richiesta la comunicazione remota di Windows PowerShell a meno che non si utilizzi il parametro AsJob.

Parametri

-AsJob

Esegue il comando come processo in background.

Nota: per utilizzare questo parametro, è necessario che il computer locale e quello remoto siano configurati per la comunicazione remota e, in Windows Vista e nelle versioni successive di Windows, è necessario aprire Windows PowerShell con l'opzione "Esegui come amministratore". Per ulteriori informazioni, vedere about_Remote_Requirements.

Quando si utilizza il parametro AsJob, il comando restituisce immediatamente un oggetto che rappresenta il processo in background. È possibile continuare a utilizzare la sessione durante il completamento del processo. Il processo viene creato nel computer locale e i risultati dei computer remoti vengono automaticamente restituiti nel computer locale. Per gestire il processo, utilizzare i cmdlet Job. Per ottenere i risultati del processo, utilizzare il cmdlet Receive-Job.

Per ulteriori informazioni sui processi in background di Windows PowerShell, vedere about_Jobs e about_Remote_Jobs.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Authentication <AuthenticationLevel>

Specifica il livello di autenticazione utilizzato per la connessione WMI. (Stop-Computer utilizza WMI). Il valore predefinito è Packet.

I valori validi sono:

Unchanged: il livello di autenticazione è lo stesso del comando precedente.

Default: autenticazione Windows.

None: nessuna autenticazione COM.

Connect: autenticazione COM a livello di connessione.

Call: autenticazione COM a livello di chiamata.

Packet: autenticazione COM a livello di pacchetto

PacketIntegrity: autenticazione COM a livello di integrità del pacchetto.

PacketPrivacy: autenticazione COM a livello di privacy del pacchetto

Obbligatorio? | false
Posizione? | named
Valore predefinito | 4
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string[]>

Arresta i computer specificati. Il valore predefinito è il computer locale.

Digitare il nome NETBIOS, l'indirizzo IP o il nome di dominio completo di uno o più computer in un elenco separato da virgole. Per specificare il computer locale, digitare il nome del computer o "localhost".

Questo parametro non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName anche se il computer non è configurato per l'esecuzione di comandi remoti.

Obbligatorio? | false
Posizione? | 1
Valore predefinito | .
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno ottenuto dal cmdlet Get-Credential.

Obbligatorio? | false
Posizione? | 2
Valore predefinito | Current user
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Forza un arresto immediato dei computer.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Impersonation <ImpersonationLevel>

Specifica il livello di rappresentazione da utilizzare per le chiamate WMI. Stop-Computer utilizza WMI. Il valore predefinito è "Impersonate".

I valori validi sono:

Default: rappresentazione predefinita.

Anonymous: nasconde l'identità del chiamante.

Identify: consente agli oggetti di eseguire query delle credenziali del chiamante.

Impersonate: consente agli oggetti di utilizzare le credenziali del chiamante.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Impersonate
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ThrottleLimit <int>

Specifica il numero massimo di connessioni simultanee che è possibile stabilire per eseguire questo comando. Se si omette questo parametro o si immette un valore pari a 0, viene utilizzato il valore predefinito 32.

Il limite di velocità si applica solo al comando corrente, non alla sessione o al computer.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 32
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Nessuno o System.Management.Automation.RemotingJob Quando si utilizza il parametro AsJob, il cmdlet restituisce un oggetto processo (System.Management.Automation.RemotingJob). In caso contrario, non genera alcun output.

Note

Questo cmdlet utilizza il metodo Win32Shutdown della classe WMI Win32_OperatingSystem.

Esempio 1

C:\PS>stop-computer

Descrizione
-----------
Questo comando arresta il computer locale.

Esempio 2

C:\PS>stop-computer -computername Server01, Server02, localhost

Descrizione
-----------
Questo comando arresta due computer remoti, Server01 e Server02, e il computer locale identificato come "localhost".

Esempio 3

C:\PS>$j = stop-computer -computername Server01, Server02 -asjob

C:\PS> $results = $j | receive-job

C:\PS> $results

Descrizione
-----------
Con questi comandi viene eseguito un comando Stop-Computer come processo in background nei due computer remoti, quindi si ottengono i risultati.

Nel primo comando viene utilizzato il parametro AsJob per eseguire il comando come processo in background. L'oggetto processo risultante viene salvato nella variabile $j.

Nel secondo comando viene utilizzato un operatore pipeline per inviare l'oggetto processo in $j al cmdlet Receive-Job, tramite cui vengono ottenuti i risultati del processo. I risultati vengono salvati nella variabile $results.

Nel terzo comando vengono visualizzati i risultati salvati nella variabile $results.

Poiché il parametro AsJob crea il processo nel computer locale e restituisce automaticamente i risultati al computer locale, è possibile eseguire il comando Receive-Job come comando locale.

Esempio 4

C:\PS>stop-computer -comp Server01 -impersonation anonymous -authentication PacketIntegrity

Descrizione
-----------
Con questo comando viene riavviato il computer remoto Server01. Vengono utilizzate la rappresentazione personalizzata e le impostazioni di autenticazione.

Esempio 5

C:\PS>$s = get-content domain01.txt

C:\PS> $c = get-credential domain01\admin01

C:\PS> stop-computer -computername $s -force -throttlelimit 10 -credential $c

Descrizione
-----------
Questi comandi forzano un arresto immediato di tutti i computer di Dominio01.

Il primo comando ottiene un elenco di computer nel dominio che viene salvato nella variabile $s.

Il secondo comando ottiene le credenziali di un amministratore di dominio che vengono salvate nella variabile $c.

Il terzo comando arresta i computer. Vengono utilizzati il parametro ComputerName per inviare l'elenco di computer nella variabile $s, il parametro Force per forzare un arresto immediato e il parametro Credential per inviare le credenziali salvate nella variabile $c. Viene inoltre utilizzato il parametro ThrottleLimit per limitare il comando a 10 connessioni simultanee.

Vedere anche

  • Add-Computer
  • Checkpoint-Computer
  • Remove-Computer
  • Restart-Computer
  • Restore-Computer
  • Test-Connection


Stop-Job

Interrompe un processo in background di Windows PowerShell.

Sintassi

Stop-Job [[-InstanceId] <Guid[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Stop-Job [-Job] <Job[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Stop-Job [[-Name] <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Stop-Job [-Id] <Int32[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Stop-Job [-State {<NotStarted> | <Running> | <Completed> | <Failed> | <Stopped> | <Blocked>}] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Stop-Job arresta i processi in background di Windows PowerShell in corso. È possibile utilizzare questo cmdlet per interrompere tutti i processi o quelli selezionati in base al nome, all'ID, all'ID istanza, allo stato o passando un oggetto processo a Stop-Job.

È possibile utilizzare Stop-Job per interrompere i processi avviati tramite Start-Job o tramite il parametro AsJob di Invoke-Command. Quando si arresta un processo in background, in Windows PowerShell vengono completate tutte le attività in sospeso nella coda di quel processo, quindi viene terminato il processo. Nessuna nuova attività è stata aggiunta alla coda dopo l'invio di questo comando.

Questo cmdlet non elimina i processi in background. Per eliminare un processo, utilizzare Remove-Job.

Parametri

-Id <Int32[]>

Interrompe i processi con gli ID specificati. Il valore predefinito è impostato su tutti i processi della sessione corrente.

L'ID è un valore intero che identifica in modo univoco il processo all'interno della sessione corrente. È più facile da ricordare e digitare rispetto all'ID istanza, ma è univoco solo nella sessione corrente. È possibile digitare uno o più ID (separati da virgole). Per trovare l'ID di un processo, digitare "Get-Job" senza parametri.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-InstanceId <Guid[]>

Interrompe solo i processi con gli ID istanza specificati. Il valore predefinito è impostato su tutti i processi.

Un ID istanza è un GUID che identifica in modo univoco il processo nel computer. Per trovare l'ID istanza di un processo, utilizzare Get-Job.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Job <Job[]>

Specifica i processi da interrompere. Immettere una variabile che contiene i processi o un comando che consenta di ottenerli. È anche possibile utilizzare un operatore pipeline per inviare i processi al cmdlet Stop-Job. Per impostazione predefinita, Stop-Job elimina tutti i processi avviati nella sessione corrente.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Name <string[]>

Interrompe solo i processi con i nomi descrittivi specificati. Immettere i nomi dei processi in un elenco separato da virgole oppure utilizzare caratteri jolly (*) per immettere un modello di nome di processo. Per impostazione predefinita, Stop-Job interrompe tutti i processi creati nella sessione corrente.

Poiché non è garantito che il nome descrittivo sia univoco, utilizzare i parametri WhatIf e Confirm in caso di interruzione dei processi per nome.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | true

-PassThru

Restituisce un oggetto che rappresenta il nuovo processo in background. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-State <JobState>

Interrompe solo i processi nello stato specificato. I valori validi sono NotStarted, Running, Completed, Stopped, Failed e Blocked.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.RemotingJob È possibile reindirizzare un oggetto processo a Stop-Job.
Output | Nessuno o System.Management.Automation.RemotingJob Quando si utilizza il parametro PassThru, Stop-Job restituisce un oggetto processo. Negli altri casi, il cmdlet non genera alcun output.

Esempio 1

C:\PS>$s = new-pssession -computername Server01 -credential domain01\admin02

C:\PS> $j = invoke-command -session $s -scriptblock {start-job -scriptblock {get-eventlog system}}

C:\PS> invoke-command -session $s -scriptblock {param($j) stop-job -job $j} -ArgumentList $j

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il cmdlet Stop-Job per interrompere un processo in esecuzione in un computer remoto.

Poiché il processo è stato avviato tramite Invoke-Command per eseguire un comando Start-Job in modalità remota, l'oggetto processo viene archiviato nel computer remoto ed è necessario utilizzare un altro comando Invoke-Command per eseguire un comando Stop-Job in modalità remota. Per ulteriori informazioni sui processi in background remoti, vedere about_Remote_Jobs.

Il primo comando crea una sessione di Windows PowerShell (PSSession) nel computer Server01 e salva l'oggetto sessione nella variabile $s. Vengono utilizzate le credenziali di un amministratore di dominio.

Nel secondo comando viene utilizzato il cmdlet Invoke-Command per eseguire un comando Start-Job nella sessione. Il comando nel processo ottiene tutti gli eventi del registro eventi del sistema. L'oggetto processo risultante viene archiviato nella variabile $j.

Il terzo comando interrompe il processo. Viene utilizzato il cmdlet Invoke-Command per eseguire un comando Stop-Job nella sessione PSSession in Server01. Poiché gli oggetti processo vengono archiviati in $j, una variabile nel computer locale, il comando utilizza la parola chiave "param" per dichiarare le variabili locali nel comando e il parametro ArgumentList per fornire valori per le variabili.

Al termine dell'esecuzione del comando, il processo viene arrestato e la sessione PSSession in $s è disponibile per l'uso.

Esempio 2

C:\PS>stop-job -state failed

Descrizione
-----------
Questo comando interrompe tutti i processi con un valore di stato "Failed".

Esempio 3

C:\PS>stop-job -name job1

Descrizione
-----------
Questo comando interrompe il processo in background Job1.

Esempio 4

C:\PS>stop-job -id 1, 3, 4

Descrizione
-----------
Questo comando interrompe tre processi. Tali processi vengono identificati tramite i relativi ID.

Esempio 5

C:\PS>get-job | stop-job

Descrizione
-----------
Questo comando interrompe tutti i processi in background nella sessione corrente.

Esempio 6

C:\PS>stop-job -state blocked

Descrizione
-----------
Questo comando interrompe tutti i processi con stato "Blocked".

Esempio 7

C:\PS>get-job | format-table ID, Name, Command, @{Label="State";Expression={$_.jobstateinfo.state}}, I
nstanceID -auto

Id Name Command                 State  InstanceId
-- ---- -------                 -----  ----------
 1 Job1 start-service schedule Running 05abb67a-2932-4bd5-b331-c0254b8d9146
 3 Job3 start-service schedule Running c03cbd45-19f3-4558-ba94-ebe41b68ad03
 5 Job5 get-service s*         Blocked e3bbfed1-9c53-401a-a2c3-a8db34336adf

C:\PS> stop-job -instanceid e3bbfed1-9c53-401a-a2c3-a8db34336adf

Descrizione
-----------
Questi comandi indicano come interrompere un processo in base al relativo ID istanza.

Il primo comando utilizza un cmdlet Get-Job per ottenere i processi nella sessione corrente. Viene utilizzato un operatore pipeline (|) per inviare i processi comando Format-Table tramite cui viene visualizzata una tabella delle proprietà specificate di ciascun processo. La tabella include l'ID istanza di ogni processo. Viene utilizzata una proprietà calcolata per visualizzare lo stato del processo.

Il secondo comando utilizza un comando Stop-Job con il parametro InstanceID per interrompere un processo selezionato.

Esempio 8

C:\PS>$j = invoke-command -computername Server01 -scriptblock {get-eventlog system} -asjob

C:\PS> $j | stop-job -passthru

Id    Name    State      HasMoreData     Location         Command
--    ----    ----      -----------     --------          -------
5     Job5    Stopped    True            judithh-tablet   get-eventlog system

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il cmdlet Stop-Job per interrompere un processo in esecuzione in un computer remoto.

Poiché il processo è stato avviato tramite il parametro AsJob di Invoke-Command, l'oggetto processo si trova nel computer locale, anche se il processo viene eseguito nel computer remoto. Di conseguenza, è possibile utilizzare un comando Stop-Job locale per interrompere il processo.

Nel primo comando viene utilizzato il cmdlet Invoke-Command per avviare un processo in background nel computer Server01. Viene utilizzato il parametro AsJob per eseguire il comando remoto come processo in background.

Questo comando restituisce un oggetto processo, lo stesso oggetto processo restituito da Start-Job. Il comando consente di salvare l'oggetto processo nella variabile $j.

Il secondo comando utilizza un operatore pipeline per inviare il processo nella variabile $j a Stop-Job. Il comando utilizza il parametro PassThru per indicare a Stop-Job di restituire un oggetto processo. La visualizzazione dell'oggetto processo conferma che lo stato del processo è "Stopped".

Per ulteriori informazioni sui processi in background remoti, vedere about_Remote_Jobs.

Vedere anche

  • about_Jobs
  • about_Job_Details
  • about_Remote_Jobs
  • Start-Job
  • Get-Job
  • Receive-Job
  • Wait-Job
  • Remove-Job
  • Invoke-Command


Stop-Process

Arresta uno o più processi in esecuzione.

Sintassi

Stop-Process [-Id] <Int32[]> [-Force] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Stop-Process -InputObject <Process[]> [-Force] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Stop-Process -Name <string[]> [-Force] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Tramite il cmdlet Stop-Process viene arrestato uno o più processi in esecuzione. È possibile specificare un processo tramite il nome del processo o l'ID processo (PID) oppure passare un oggetto processo a Stop-Process. Stop-Process può essere utilizzato solo con processi in esecuzione sul computer locale.

In Windows Vista e nelle versioni successive di Windows, per arrestare un processo non appartenente all'utente corrente, è necessario avviare Windows PowerShell con l'opzione "Esegui come amministratore". Viene inoltre richiesta una conferma a meno che non si utilizzi il parametro Force.

Parametri

-Force

Arresta i processi specificati senza richiedere una conferma. Per impostazione predefinita, Stop-Process richiede una conferma prima di arrestare qualsiasi processo non appartenente all'utente corrente.

Per trovare il proprietario di un processo, utilizzare il cmdlet Get-WmiMethod per ottenere un oggetto Win32_Process che rappresenta il processo, quindi utilizzare il metodo GetOwner dell'oggetto.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Id <Int32[]>

Specifica gli ID dei processi da arrestare. Per specificare più ID, separarli tramite virgole Per trovare il PID di un processo, digitare "Get-Process". Il nome del parametro ("Id") è facoltativo.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-InputObject <Process[]>

Arresta i processi rappresentati dagli oggetti processo specificati. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Name <string[]>

Specifica i nomi dei processi da arrestare. È possibile digitare più nomi di processo, separati da virgole, oppure utilizzare caratteri jolly.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta il processo. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Diagnostics.Process È possibile reindirizzare un oggetto processo a Stop-Process.
Output | Nessuno o System.Diagnostics.Process Quando si utilizza il parametro PassThru, Stop-Process restituisce un oggetto System.Diagnostics.Process che rappresenta il processo arrestato. Negli altri casi, il cmdlet non genera alcun output.

Note

È inoltre possibile fare riferimento a Stop-Process tramite i relativi alias predefiniti "kill" e "spps". Per ulteriori informazioni, vedere about_Aliases.

È inoltre possibile utilizzare le proprietà e i metodi dell'oggetto Win32_Process di Strumentazione gestione Windows (WMI) in Windows PowerShell. Per ulteriori informazioni, vedere Get-WmiObject e l'SDK di WMI.

Quando si arresta un processo, tenere presente che questa operazione può causare l'arresto del processo e dei servizi che ne dipendono. In casi estremi, l'arresto di un processo può comportare l'arresto di Windows.

Esempio 1

C:\PS>stop-process -name notepad

Descrizione
-----------
Tramite questo comando vengono arrestate tutte le istanze del processo Blocco note nel computer. Ogni istanza del Blocco note viene eseguita nel proprio processo. Il parametro Name viene utilizzato per specificare i processi, che hanno tutti lo stesso nome. Se si utilizzasse il parametro ID per arrestare gli stessi processi, sarebbe necessario elencare gli ID processo di ogni istanza del Blocco note.

Esempio 2

C:\PS>stop-process -id 3952 -confirm -passthru

Confirm
Are you sure you want to perform this action?
Performing operation "Stop-Process" on Target "notepad (3952)".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):y
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
     41       2      996       3212    31            3952 notepad

Descrizione
-----------
Tramite questo comando viene arrestata un'istanza specifica del processo Blocco note. Viene utilizzato l'ID processo, 3952, per identificare il processo. Il parametro Confirm reindirizza Windows PowerShell a richiedere la conferma dell'utente prima dell'arresto del processo. Poiché il prompt include il nome del processo, nonché il relativo ID, questa è la procedura ottimale. Il parametro PassThru passa l'oggetto processo al formattatore per la visualizzazione. Senza questo parametro, la visualizzazione non sarebbe possibile dopo un comando Stop-Process.

Esempio 3

C:\PS>calc

c:\PS>$p = get-process calc

c:\PS>stop-process -inputobject $p

c:\PS>get-process | where-object {$_.HasExited}

Descrizione
-----------
Tramite questa serie di comandi viene avviato e arrestato il processo Calc e vengono rilevati i processi che sono stati arrestati.

Tramite il primo comando ("calc") viene avviata un'istanza della calcolatrice. Tramite il secondo comando ("$p = get-process calc") viene utilizzato il cmdlet Get-Process per ottenere un oggetto che rappresenta il processo Calc e archiviarlo nella variabile $p. Tramite il terzo comando ("stop-process -inputobject $p") viene utilizzato il cmdlet Stop-Process per arrestare il processo Calc. Viene utilizzato il parametro InputObject per passare l'oggetto a Stop-Process.

Tramite l'ultimo comando si ottengono tutti i processi che erano in esecuzione nel computer, ma che sono stati arrestati. Viene utilizzato il cmdlet Get-Process per ottenere tutti i processi nel computer. I risultati vengono passati dall'operatore pipeline (|) al cmdlet Where-Object, il quale seleziona solo quelli in cui il valore della proprietà HasExited è TRUE. HasExited è solo una proprietà degli oggetti processo. Per trovare tutte le proprietà, digitare "get-process | get-member".

Esempio 4

C:\PS>get-process lsass | stop-process

Stop-Process : Cannot stop process 'lsass (596)' because of the following error: Access is denied
At line:1 char:34
+ get-process lsass  | stop-process <<<<

[ADMIN]: C:\PS> get-process lsass | stop-process
Warning!
Are you sure you want to perform this action?
Performing operation 'Stop-Process' on Target 'lsass(596)'
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):

[ADMIN]: C:\PS> get-process lsass | stop-process -force
[ADMIN]: C:\PS>

Descrizione
-----------
Con questi comandi viene illustrato l'effetto dell'utilizzo del parametro Force per arrestare un processo che non appartiene all'utente.

Nel primo comando viene utilizzato il cmdlet Get-Process per ottenere il processo Lsass. Un operatore pipeline invia il processo al cmdlet Stop-Process per arrestarlo. Come illustrato nell'output di esempio, il primo comando ha esito negativo con messaggio "Accesso negato", perché questo processo può essere arrestato solo da un membro del gruppo Administrators del computer.

Quando Windows PowerShell viene aperto con l'opzione "Esegui come amministratore" e il comando viene ripetuto, viene chiesta la conferma.

Il secondo comando utilizza il parametro Force per eliminare il prompt. Di conseguenza, il processo viene arrestato senza conferma.

Vedere anche

  • Get-Process
  • Start-Process
  • Stop-Process
  • Wait-Process
  • Debug-Process


Stop-Service

Arresta uno o più servizi in esecuzione.

Sintassi

Stop-Service [-Name] <string[]> [-Exclude <string[]>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Stop-Service -DisplayName <string[]> [-Exclude <string[]>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Stop-Service [-InputObject <ServiceController[]>] [-Exclude <string[]>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Stop-Service invia un messaggio di arresto al controller dei servizi di Windows per ognuno dei servizi specificati. È possibile specificare i servizi in base al relativo nome o nome visualizzato oppure utilizzare il parametro InputObject per passare un oggetto servizio che rappresenta i servizi che si desidera arrestare.

Parametri

-DisplayName <string[]>

Specifica i nomi visualizzati dei servizi da arrestare. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette i servizi specificati. Il valore di questo parametro qualifica il parametro Name. Immettere un criterio o un elemento del nome, ad esempio "s*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di arrestare un servizio anche se tale servizio dispone di servizi dipendenti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Arresta unicamente i servizi specificati. Il valore di questo parametro qualifica il parametro Name. Immettere un criterio o un elemento del nome, ad esempio "s*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <ServiceController[]>

Specifica gli oggetti ServiceController che rappresentano i servizi da arrestare. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Name <string[]>

Specifica i nomi dei servizi da arrestare. È consentito l'utilizzo di caratteri jolly.

Il nome del parametro è facoltativo. È possibile utilizzare "Name" o il relativo alias, "ServiceName", oppure omettere il nome del parametro.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta il servizio. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.ServiceProcess.ServiceController o System.String. È possibile reindirizzare un oggetto servizio o una stringa che contiene il nome di un servizio a Stop-Service.
Output | Nessuno o System.ServiceProcess.ServiceController Quando si utilizza il parametro PassThru, Stop-Service genera un oggetto System.ServiceProcess.ServiceController che rappresenta il servizio. Negli altri casi, il cmdlet non genera alcun output.

Note

È inoltre possibile fare riferimento a Stop-Service tramite il relativo alias predefinito "spsv". Per ulteriori informazioni, vedere about_Aliases.

Stop-Service consente di controllare i servizi solo se l'utente corrente dispone delle autorizzazioni necessarie. Se un comando non viene eseguito correttamente, è possibile che l'utente non disponga delle autorizzazioni necessarie.

Per trovare i nomi dei servizi e i nomi visualizzati dei servizi nel sistema, digitare "Get-Service". I nomi dei servizi vengono visualizzati nella colonna Name e i nomi visualizzati vengono elencati nella colonna DisplayName.

Esempio 1

C:\PS>stop-service sysmonlog

Descrizione
-----------
Tramite questo comando viene arrestato il servizio Avvisi e registri di prestazioni (SysmonLog) nel computer locale.

Esempio 2

C:\PS>get-service -displayname telnet | stop-service

Descrizione
-----------
Tramite questo comando viene arrestato il servizio Telnet nel computer locale. Viene utilizzato il cmdlet Get-Service per ottenere un oggetto che rappresenta il servizio Telnet. L'oggetto viene indirizzato dall'operatore pipeline (|) al cmdlet Stop-Service, il quale arresta il servizio.

Esempio 3

C:\PS>get-service iisadmin | format-list -property name, dependentservices

C:PS>stop-service iisadmin -force -confirm

Descrizione
-----------
Tramite il comando Stop-Service viene arrestato il servizio IISAdmin nel computer locale. Poiché l'arresto di questo servizio comporta l'arresto dei servizi che dipendono dal servizio IISAdmin, è preferibile anteporre al comando Stop-Service un comando che elenchi i servizi che dipendono dal servizio IISAdmin.

Tramite il primo comando vengono elencati i servizi che dipendono da IISAdmin. Viene utilizzato il cmdlet Get-Service per ottenere un oggetto che rappresenta il servizio IISAdmin. Il risultato viene passato dall'operatore pipeline (|) al cmdlet Format-List. Tramite il comando viene utilizzato il parametro Property di Format-List per elencare unicamente le proprietà Name e DependentServices del servizio.

Tramite il secondo comando viene arrestato il servizio IISAdmin. Il parametro Force è necessario per arrestare un servizio da cui dipendono altri servizi. Viene utilizzato il parametro Confirm di questo comando per richiedere all'utente la conferma prima di arrestare ogni servizio.

Vedere anche

  • Get-Service
  • Suspend-Service
  • Start-Service
  • Restart-Service
  • Resume-Service
  • Set-Service
  • New-Service


Stop-Transcript

Interrompe una trascrizione.

Sintassi

Stop-Transcript [<CommonParameters>]

Descrizione

Il cmdlet Stop-Transcript interrompe una trascrizione avviata tramite il cmdlet Start-Transcript. È inoltre possibile interrompere una trascrizione interrompendo la sessione.

Parametri

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.String Stop-Transcript restituisce una stringa che contiene un messaggio di stato e il percorso del file di output.

Note

Se non è stata avviata una trascrizione, il comando ha esito negativo.

Esempio 1

C:\PS>stop-transcript

Descrizione
-----------
Tramite questo comando vengono interrotte tutte le trascrizioni in esecuzione.

Vedere anche

  • Start-Transcript


Suspend-Service

Sospende uno o più servizi in esecuzione.

Sintassi

Suspend-Service [-Name] <string[]> [-Exclude <string[]>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Suspend-Service -DisplayName <string[]> [-Exclude <string[]>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Suspend-Service [-InputObject <ServiceController[]>] [-Exclude <string[]>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Per ogni servizio specificato, il cmdlet Suspend-Service invia un messaggio di sospensione al controller dei servizi di Windows. Durante la sospensione, il servizio è ancora in esecuzione ma la sua azione è interrotta finché non viene ripresa, ad esempio tramite Resume-Service. È possibile specificare i servizi in base al relativo nome o nome visualizzato oppure utilizzare il parametro InputObject per passare un oggetto servizio che rappresenta i servizi da sospendere.

Parametri

-DisplayName <string[]>

Specifica i nomi visualizzati dei servizi da sospendere. È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette i servizi specificati. Il valore di questo parametro qualifica il parametro Name. Immettere un criterio o un elemento del nome, ad esempio "s*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Sospende unicamente i servizi specificati. Il valore di questo parametro qualifica il parametro Name. Immettere un criterio o un elemento del nome, ad esempio "s*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <ServiceController[]>

Specifica gli oggetti ServiceController che rappresentano i servizi da sospendere. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Name <string[]>

Specifica i nomi dei servizi da sospendere. È consentito l'utilizzo di caratteri jolly.

Il nome del parametro è facoltativo. È possibile utilizzare "Name" o il relativo alias, "ServiceName", oppure omettere il nome del parametro.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-PassThru

Restituisce un oggetto che rappresenta il servizio. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.ServiceProcess.ServiceController o System.String. È possibile reindirizzare un oggetto o una stringa che contiene un nome servizio a Suspend-Service.
Output | Nessuno o System.ServiceProcess.ServiceController Quando si utilizza il parametro PassThru, Suspend-Service genera un oggetto System.ServiceProcess.ServiceController che rappresenta il servizio. Negli altri casi, il cmdlet non genera alcun output.

Note

Suspend-Service consente di controllare i servizi solo se l'utente corrente dispone delle autorizzazioni necessarie. Se un comando non viene eseguito correttamente, è possibile che l'utente non disponga delle autorizzazioni necessarie.

Inoltre, Suspend-Service può sospendere unicamente i servizi che possono essere sospesi e ripresi. Per stabilire se un determinato servizio può essere sospeso, utilizzare il cmdlet Get-Service con la proprietà CanPauseAndContinue. Ad esempio, "Get-Service wmi | Format-List name, canpauseandcontinue". Per trovare tutti i servizi del computer che è possibile sospendere, digitare "Get-Service | Where-Object {$_.canpauseandcontinue -eq "True"}".

Per trovare i nomi dei servizi e i nomi visualizzati dei servizi nel sistema, digitare "Get-Service". I nomi dei servizi vengono visualizzati nella colonna Name e i nomi visualizzati vengono elencati nella colonna DisplayName.

Esempio 1

C:\PS>suspend-service -displayname "Telnet"

Descrizione
-----------
Tramite questo comando viene sospeso il servizio Telnet (Tlntsvr) nel computer locale.

Esempio 2

C:\PS>suspend-service -name lanman* -whatif

Descrizione
-----------
Questo comando indica quali azioni verrebbero eseguite in caso di sospensione di servizi con il nome che inizia per "lanman". Per sospendere i servizi, eseguire nuovamente il comando senza il parametro WhatIf.

Esempio 3

C:\PS>get-service schedule | suspend-service

Descrizione
-----------
Tramite questo comando viene utilizzato il cmdlet Get-Service per ottenere un oggetto che rappresenta il servizio Utilità di pianificazione (Schedule) nel computer. Il risultato viene passato dall'operatore pipeline (|) al cmdlet Suspend-Service, il quale sospende il servizio.

Esempio 4

C:\PS>get-service | where-object {$_.canpauseandcontinue -eq "True"} | suspend-service -confirm

Descrizione
-----------
Tramite questo comando vengono sospesi tutti i servizi nel computer che è possibile sospendere. Viene utilizzato il cmdlet Get-Service per ottenere gli oggetti che rappresentano i servizi nel computer. I risultati vengono passati dall'operatore pipeline (|) al cmdlet Where-Object, il quale seleziona solo i servizi per i quali il valore della proprietà CanPauseAndContinue è "True". I risultati vengono passati al cmdlet Suspend-Service da un altro operatore pipeline (|). Viene utilizzato il parametro Confirm per richiedere all'utente la conferma prima di sospendere ogni servizio.

Vedere anche

  • Get-Service
  • Start-Service
  • Stop-Service
  • Restart-Service
  • Resume-Service
  • Set-Service
  • New-Service


Tee-Object

Salva l'output dei comandi in un file o in una variabile e lo visualizza nella console.

Sintassi

Tee-Object [-FilePath] <string> [-InputObject <psobject>] [<CommonParameters>]

Tee-Object -Variable <string> [-InputObject <psobject>] [<CommonParameters>]

Descrizione

Il cmdlet Tee-Object invia l'output di un comando in due direzioni (come la lettera "T"). Archivia l'output in un file o in una variabile e lo invia inoltre lungo la pipeline. Se Tee-Object è l'ultimo comando nella pipeline, l'output dei comandi viene visualizzato nella console.

Parametri

-FilePath <string>

Specifica il file in cui il cmdlet archivia l'oggetto. Accetta caratteri jolly che vengono risolti in un singolo file.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica l'oggetto inviato come input al cmdlet. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Variable <string>

Assegna alla variabile specificata un riferimento agli oggetti di input.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare oggetti da reindirizzare a Tee-Object.
Output | System.Management.Automation.PSObject Tee-Object restituisce l'oggetto reindirizzato.

Note

È inoltre possibile utilizzare il cmdlet Out-File o l'operatore di reindirizzamento, entrambi salvano l'output in un file, ma non lo inviano lungo la pipeline.

Tee-Object utilizza la codifica Unicode quando scrive nei file. Di conseguenza, l'output potrebbe non essere formattato correttamente nei file con una codifica diversa. Per specificare la codifica, utilizzare il cmdlet Out-File.

Esempio 1

C:\PS>get-process | tee-object -filepath C:\Test1\testfile2.txt

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)    Id ProcessName
-------  ------    -----      ----- -----   ------    -- -----------
   83       4     2300       4520    39     0.30    4032 00THotkey
  272       6     1400       3944    34     0.06    3088 alg
   81       3      804       3284    21     2.45     148 ApntEx
   81       4     2008       5808    38     0.75    3684 Apoint
...

Descrizione
-----------
Tramite questo comando verrà ottenuto un elenco dei processi in esecuzione nel computer. Il risultato verrà inviato a un file. Poiché non viene specificato un secondo percorso, il risultato verrà visualizzato nella console.

Esempio 2

C:\PS>get-process notepad | tee-object -variable proc | select-object processname,handles

ProcessName                              Handles
-----------                              -------
notepad                                  43
notepad                                  37
notepad                                  38
notepad                                  38

Descrizione
-----------
Con questo comando verrà ottenuto un elenco dei processi in esecuzione nel computer. Il risultato verrà inviato a una variabile denominata "proc". Gli oggetti risultanti verranno quindi reindirizzati a Select-Object, che selezionerà le proprietà ProcessName e Handles. Si noti che la variabile $proc include le informazioni predefinite restituite da Get-Process.

Vedere anche

  • about_Redirection
  • Select-Object


Test-ComputerSecureChannel

Verifica e ripristina il canale sicuro tra il computer locale e il relativo dominio.

Sintassi

Test-ComputerSecureChannel [-Repair] [-Server <string>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Test-ComputerSecureChannel verifica che il canale sicuro tra il computer locale e il relativo dominio funzioni correttamente controllando lo stato delle relazioni di trust. Se una connessione non riesce, è possibile utilizzare il parametro Repair per tentare di ripristinarla.

Test-ComputerSecureChannel restituisce "True" se il canale sicuro funziona correttamente; in caso contrario "False". Questo risultato consente di utilizzare il cmdlet nelle istruzioni condizionali di funzioni e script. Per ottenere risultati di test più dettagliati, utilizzare il parametro Verbose.

Questo cmdlet funziona in modo analogo a NetDom.exe. Sia NetDom che Test-ComputerSecureChannel utilizzano il servizio Accesso rete per eseguire le azioni.

Parametri

-Repair

Rimuove e crea nuovamente il canale sicuro stabilito dal servizio Accesso rete. Utilizzare questo parametro per tentare di ripristinare una connessione che non ha superato il test (ha restituito "False").

Per utilizzare questo parametro, l'utente corrente deve essere membro del gruppo Administrators nel computer locale.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Server <string>

Utilizza il controller di dominio specificato per eseguire il comando. Se questo parametro viene omesso, Test-ComputerSecureChannel seleziona un controller di dominio predefinito per l'operazione.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.Boolean Il cmdlet restituisce "True" quando la connessione funziona correttamente e "False" in caso contrario.

Note

Per eseguire un comando Test-ComputerSecureChannel in Windows Vista e nelle versioni successive di Windows, aprire Windows PowerShell con l'opzione "Esegui come amministratore".

Test-ComputerSecureChannel viene implementato tramite la funzione I_NetLogonControl2 che controlla vari aspetti del servizio Accesso rete.

Esempio 1

C:\PS>test-computersecurechannel

True

Descrizione
-----------
Questo comando verifica il canale sicuro tra il computer locale e il dominio a cui è stato aggiunto.

Esempio 2

C:\PS>test-computersecurechannel -server DCName.fabrikam.com

True

Descrizione
-----------
Questo comando specifica un controller di dominio preferito per il test.

Esempio 3

C:\PS>Test-ComputerSecureChannel -repair

True

Descrizione
-----------
Questo comando reimposta il canale sicuro tra il computer locale e il relativo dominio.

Esempio 4

C:\PS>test-computerSecureChannel -verbose

VERBOSE: Performing operation "Test-ComputerSecureChannel" on Target "SERVER01".
True
VERBOSE: "The secure channel between 'SERVER01' and 'net.fabrikam.com' is alive and working correctly."

Descrizione
-----------
Questo comando utilizza il parametro comune Verbose per richiedere messaggi dettagliati sull'operazione. Per ulteriori informazioni sul parametro Verbose, vedere about_CommonParameters.

Esempio 5

C:\PS>set-alias tcsc test-computersecurechannel

if (!(tcsc))
     {write-host "Connection failed. Reconnect and retry."}
else { &(.\get-servers.ps1) }

Descrizione
-----------
In questo esempio viene illustrato come utilizzare Test-ComputerSecureChannel per verificare una connessione prima di eseguire uno script che richiede la connessione.

Il primo comando utilizza il cmdlet Set-Alias per creare un alias per il nome del cmdlet. Ciò consente di risparmiare spazio ed evita gli errori di battitura.

L'istruzione If verifica il valore restituito da Test-ComputerSecureChannel prima dell'esecuzione di uno script.

Vedere anche

  • Checkpoint-Computer
  • Restart-Computer
  • Stop-Computer
  • Reset-ComputerMachinePassword


Test-Connection

Invia pacchetti di richieste echo ICMP ("ping") a uno o più computer.

Sintassi

Test-Connection [-ComputerName] <string[]> [[-Source] <string[]>] [-AsJob] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-BufferSize <int>] [-Count <int>] [-Credential <PSCredential>] [-Delay <int>] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Quiet] [-ThrottleLimit <int>] [-TimeToLive <int>] [<CommonParameters>]

Descrizione

Il cmdlet Test-Connection invia pacchetti di richieste echo ICMP (Internet Control Message Protocol), ovvero ping, a uno o più computer remoti e restituisce le risposte di tipo risposta echo. È possibile utilizzare questo cmdlet per determinare se è possibile contattare un determinato computer attraverso una rete IP (Internet Protocol).

È possibile utilizzare i parametri di Test-Connection per specificare sia i computer mittenti che quelli riceventi, per eseguire il comando come processo in background, per impostare un timeout e un numero di ping e per configurare la connessione e l'autenticazione.

A differenza del comando "ping" tradizionale, Test-Connection restituisce un oggetto Win32_PingStatus che è possibile esaminare in Windows PowerShell, ma è possibile utilizzare il parametro Quiet per forzarlo a restituire solo un valore booleano.

Parametri

-AsJob

Esegue il comando come processo in background.

Nota: per utilizzare questo parametro, è necessario che il computer locale e quello remoto siano configurati per la comunicazione remota e, in Windows Vista e nelle versioni successive di Windows, è necessario aprire Windows PowerShell con l'opzione "Esegui come amministratore". Per ulteriori informazioni, vedere about_Remote_Requirements.

Quando si utilizza il parametro AsJob, il comando restituisce immediatamente un oggetto che rappresenta il processo in background. È possibile continuare a utilizzare la sessione durante il completamento del processo. Il processo viene creato nel computer locale e i risultati dei computer remoti vengono automaticamente restituiti nel computer locale. Per ottenere i risultati del processo, utilizzare il cmdlet Receive-Job.

Per ulteriori informazioni sui processi in background di Windows PowerShell, vedere about_Jobs e about_Remote_Jobs.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Authentication <AuthenticationLevel>

Specifica il livello di autenticazione utilizzato per la connessione WMI. Test-Connection utilizza WMI.

I valori validi sono:

Unchanged: il livello di autenticazione è lo stesso del comando precedente.

Default: autenticazione Windows.

None: nessuna autenticazione COM.

Connect: autenticazione COM a livello di connessione.

Call: autenticazione COM a livello di chiamata.

Packet: autenticazione COM a livello di pacchetto

PacketIntegrity: autenticazione COM a livello di integrità del pacchetto.

PacketPrivacy: autenticazione COM a livello di privacy del pacchetto

Obbligatorio? | false
Posizione? | named
Valore predefinito | 4
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-BufferSize <int>

Specifica le dimensioni in byte del buffer inviato con questo comando. Il valore predefinito è 32.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 32
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string[]>

Specifica i computer per cui effettuare il ping. Digitare i nomi dei computer o gli indirizzi IP in formato IPv4 o IPv6. Non è consentito l'utilizzo di caratteri jolly. Questo parametro è obbligatorio.

Questo parametro non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName anche se il computer non è configurato per l'esecuzione di comandi remoti.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Count <int>

Specifica il numero di richieste echo da inviare. Il valore predefinito è 4.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 4
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno ottenuto dal cmdlet Get-Credential.

Obbligatorio? | false
Posizione? | named
Valore predefinito | Current user
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Delay <int>

Specifica l'intervallo tra ping, in secondi.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 1 (second)
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Impersonation <ImpersonationLevel>

Specifica il livello di rappresentazione da utilizzare per le chiamate WMI. Test-Connection utilizza WMI. Il valore predefinito è "Impersonate".

I valori validi sono:

Default: rappresentazione predefinita.

Anonymous: nasconde l'identità del chiamante.

Identify: consente agli oggetti di eseguire query delle credenziali del chiamante.

Impersonate: consente agli oggetti di utilizzare le credenziali del chiamante.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 3
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Quiet

Elimina tutti gli errori e restituisce $True se alcuni ping hanno avuto esito positivo e $False se hanno avuto tutti esito negativo.

Obbligatorio? | false
Posizione? | named
Valore predefinito | False
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Source <string[]>

Specifica i nomi dei computer da cui ha origine il ping. Immettere un elenco di nomi di computer separati da virgole. Il valore predefinito è il computer locale.

Obbligatorio? | false
Posizione? | 2
Valore predefinito | Local computer
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ThrottleLimit <int>

Specifica il numero massimo di connessioni simultanee che è possibile stabilire per eseguire questo comando. Se si omette questo parametro o si immette un valore pari a 0, viene utilizzato il valore predefinito 32.

Il limite di velocità si applica solo al comando corrente, non alla sessione o al computer.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 32
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-TimeToLive <int>

Specifica il tempo massimo di attività, in secondi, di ciascun pacchetto di richieste echo (ping). Il valore predefinito è 80 secondi. L'alias del parametro TimeToLive è TTL.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 80
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input

Nessuno

Non è possibile reindirizzare l'input a questo cmdlet.

Output

System.Management.ManagementObject#root\cimv2\Win32_PingStatus, System.Management.Automation.RemotingJob, System.Boolean

Quando si utilizza il parametro AsJob, il cmdlet restituisce un oggetto processo. Quando si utilizza il parametro Quiet, restituisce un valore booleano. In caso contrario, questo cmdlet restituisce un oggetto Win32_PingStatus per ogni ping.

Note

Questo cmdlet utilizza la classe Win32_PingStatus. Un comando "get-wmiojbect win32_pingstatus" equivale a un comando Test-Connection.

Esempio 1

C:\PS>test-connection server01

Source        Destination     IPV4Address     IPV6Address  Bytes    Time(ms)
------        -----------     -----------     -----------  -----    --------
ADMIN1        Server01        157.59.137.44                32       0
ADMIN1        Server01        157.59.137.44                32       0
ADMIN1        Server01        157.59.137.44                32       0
ADMIN1        Server01        157.59.137.44                32       1

Descrizione
-----------
Questo comando invia i pacchetti di richieste echo (ping) dal computer locale al computer Server01. Questo comando utilizza il parametro ComputerName per specificare il computer Server01, ma omette il nome del parametro facoltativo.

Esempio 2

C:\PS>test-connection -computername server01, server02, server12 -credential domain01\user01

Descrizione
-----------
Questo comando invia ping dal computer locale a diversi computer remoti. Viene utilizzato il parametro Credential per specificare un account utente che dispone dell'autorizzazione per effettuare il ping di tutti i computer remoti.

Esempio 3

C:\PS>test-connection -source Server02, Server 12, localhost -computername Server01

Descrizione
-----------
Questo comando invia ping da computer di origine diversi a un solo computer remoto, Server01. Utilizzare questo formato di comando per verificare la latenza delle connessioni da più punti.

Esempio 4

C:\PS>test-connection -computername Server01 -count 3 -delay 2 -TTL 256 -buffersize 256 -throttle 32

Descrizione
-----------
Questo comando invia tre ping dal computer locale al computer Server01. Vengono utilizzati i parametri di Test-Connection per personalizzare il comando.

Utilizzare questo formato di comando quando si prevede che la risposta del ping impieghi più tempo del solito, a causa di un elevato numero di hop o di una condizione di rete a traffico intenso.

Esempio 5

C:\PS>$job = test-connection -computername (get-content servers.txt) -asjob

C:\PS> if ($job.jobstateinfo.state -ne "Running") {$results = receive-job $job}

Descrizione
-----------
In questo esempio viene illustrato come eseguire un comando Test-Connection come processo in background di Windows PowerShell.

Il primo comando utilizza il cmdlet Test-Connection per effettuare il ping di molti computer in un'organizzazione. Il valore del parametro ComputerName è un comando Get-Content che legge un elenco di nomi di computer dal file Servers.txt. Viene utilizzato il parametro AsJob per eseguire il comando come processo in background.

Il secondo comando verifica che il processo non sia ancora in esecuzione e, se non lo è, utilizza un comando Receive-Job per ottenere i risultati e archiviarli nella variabile $results.

Esempio 6

C:\PS>test-connection Server55 -credential domain55\user01 -impersonation Identify

Descrizione
-----------
Questo comando utilizza il cmdlet Test-Connection per effettuare il ping di un computer remoto. Il comando utilizza il parametro Credential per specificare un account utente con l'autorizzazione per effettuare il ping del computer remoto e il parametro Impersonation per modificare il livello di rappresentazione in "Identify".

Esempio 7

C:\PS>if (test-connection -computername Server01 -quiet) {new-pssession Server01}

Descrizione
-----------
Con questo comando viene creata una sessione PSSession in Server01 solo se almeno uno dei ping inviati al computer ha avuto esito positivo.

Il comando utilizza il cmdlet Test-Connection per effettuare il ping del computer Server01. Il comando utilizza il parametro Quiet che restituisce un valore booleano anziché un oggetto Win32_PingStatus. Il valore è $True se uno dei quattro ping ha esito positivo; in caso contrario, false.

Se il comando Test-Connection restituisce un valore $True, il comando utilizza il cmdlet New-PSSession per creare la sessione PSSession.

Vedere anche

  • Add-Computer
  • Restart-Computer
  • Stop-Computer


Test-ModuleManifest

Verifica che un file manifesto del modulo descriva in modo accurato il contenuto di un modulo.

Sintassi

Test-ModuleManifest [-Path] <string> [<CommonParameters>]

Descrizione

Il cmdlet Test-ModuleManifest verifica che i file elencati nel file manifesto del modulo (.psd1) siano effettivamente presenti nei percorsi specificati.

Questo cmdlet è progettato per facilitare la verifica dei file manifesto da parte degli autori dei moduli. Inoltre, gli utenti del modulo possono utilizzare questo cmdlet in script e comandi per rilevare errori prima di eseguire script che dipendono dal modulo.

Il cmdlet Test-ModuleManifest restituisce un oggetto che rappresenta il modulo (lo stesso tipo di oggetto restituito da Get-Module). Se un file non è presente nei percorsi specificati nel manifesto, il cmdlet genera un errore per ogni file mancante.

Parametri

-Path <string>

Specifica il percorso del file manifesto del modulo. Immettere un percorso (facoltativo) e il nome del file manifesto del modulo con estensione psd1. Il percorso predefinito è la directory corrente. Questo parametro è obbligatorio. Il nome del parametro ("Path") è facoltativo. È inoltre possibile reindirizzare un percorso a Test-ModuleManifest.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare il percorso di un manifesto del modulo a Test-ModuleManifest.
Output | System.Management.Automation.PSModuleInfo Test-ModuleManifest restituisce un oggetto PSModuleInfo che rappresenta il modulo. Restituisce questo oggetto anche se nel manifesto sono presenti errori.

Esempio 1

C:\PS>test-ModuleManifest -path $pshome\Modules\TestModule.psd1

Descrizione
-----------
Questo comando verifica il manifesto del modulo TestModule.psd1.

Esempio 2

C:\PS>"$pshome\Modules\TestModule.psd1" | test-modulemanifest

Test-ModuleManifest : The specified type data file 'C:\Windows\System32\Wi
ndowsPowerShell\v1.0\Modules\TestModule\TestTypes.ps1xml' could not be pro
cessed because the file was not found. Please correct the path and try aga
in.
At line:1 char:34
+ "$pshome\Modules\TestModule.psd1" | test-modulemanifest <<<<
    + CategoryInfo          : ResourceUnavailable: (C:\Windows\System32\Win
dowsPowerShell\v1.0\Modules\TestModule\TestTypes.ps1xml:String) [Test-Modul
eManifest], FileNotFoundException
    + FullyQualifiedErrorId : Modules_TypeDataFileNotFound,Microsoft.
PowerShell.Commands.TestModuleManifestCommandName

Name              : TestModule
Path              : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Test
Module\TestModule.psd1
Description       :
Guid              : 6f0f1387-cd25-4902-b7b4-22cff6aefa7b
Version           : 1.0
ModuleBase        : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Test
Module
ModuleType        : Manifest
PrivateData       :
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {}
ExportedVariables : {}
NestedModules     : {}

Descrizione
-----------
In questo comando viene utilizzato un operatore pipeline (|) per inviare una stringa di percorso a Test-ModuleManifest.

L'output del comando indica che il test ha avuto esito negativo, poiché non è stato trovato il file TestTypes.ps1xml, elencato nel manifesto.

Esempio 3

C:\PS>function Bool-ModuleManifest ($path)
    {$a = dir $path | test-modulemanifest -erroraction SilentlyContinue; $?}

Descrizione
-----------
Questa funzione è analoga a Test-ModuleManifest, ma restituisce un valore booleano; "True" se il manifesto ha superato il test e "False" in caso contrario.

La funzione utilizza il cmdlet Get-ChildItem (alias = dir) per ottenere il manifesto del modulo specificato dalla variabile $path. Viene utilizzato un operatore pipeline (|) per passare l'oggetto file al cmdlet Test-ModuleManifest.

Il comando Test-ModuleManifest utilizza il parametro comune ErrorAction con un valore di SilentlyContinue per eliminare la visualizzazione di qualsiasi errore generato dal comando. Salva anche l'oggetto PSModuleInfo restituito da Test-ModuleManifest nella variabile $a, di conseguenza l'oggetto non viene visualizzato.

Successivamente, in un comando separato (il punto e virgola [;] è il separatore dei comandi), viene visualizzato il valore della variabile automatica $? che restituisce "True" se il comando precedente non ha generato errori e "False" in caso contrario.

È possibile utilizzare questa funzione nelle istruzioni condizionali, ad esempio quelle che potrebbero precedere un comando Import-Module o un comando che utilizza il modulo.

Vedere anche

  • Import-Module
  • Get-Module
  • New-Module
  • Remove-Module
  • Export-ModuleMember
  • New-ModuleManifest
  • about_Modules


Test-Path

Determina se esistono o meno tutti gli elementi di un percorso.

Sintassi

Test-Path [-LiteralPath] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-IsValid] [-PathType {<Any> | <Container> | <Leaf>}] [-UseTransaction] [<CommonParameters>]

Test-Path [-Path] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-IsValid] [-PathType {<Any> | <Container> | <Leaf>}] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Test-Path determina se esistono o meno tutti gli elementi del percorso. Restituisce "TRUE" ($true) se tutti gli elementi esistono e "FALSE" ($false) se alcuni sono mancanti. Può inoltre indicare se la sintassi del percorso è valida e se il percorso porta a un contenitore o a un elemento terminale (leaf).

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01". In alternativa, immettere un oggetto PSCredential, ad esempio quello generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Include <string[]>

Sottopone a test solo i percorsi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-IsValid

Determina se la sintassi del percorso è corretta, indipendentemente dal fatto che gli elementi del percorso esistano o meno. Questo parametro restituisce TRUE se la sintassi del percorso è valida, FALSE se non lo è.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LiteralPath <string[]>

Specifica un percorso da sottoporre a test. A differenza di Path, il valore del parametro LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Path <string[]>

Specifica un percorso da sottoporre a test. È consentito l'utilizzo di caratteri jolly. Se il percorso include spazi, è necessario racchiuderlo tra virgolette doppie. Il nome del parametro ("Path") è facoltativo.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-PathType <TestPathType>

Indica se l'elemento finale nel percorso è di un determinato tipo. Questo parametro restituisce TRUE se l'elemento è del tipo specificato e FALSE se non lo è.

I valori validi sono:

-- Container: elemento che contiene altri elementi, ad esempio una directory o una chiave del Registro di sistema.

-- Leaf: elemento che non contiene altri elementi, ad esempio un file.

-- Any: contenitore o foglia. Indica se l'elemento finale nel percorso è di un determinato tipo. Restituisce TRUE se l'elemento è del tipo specificato e FALSE se non lo è.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso (ma non un percorso letterale) a Test-Path.
Output | System.Boolean Il cmdlet restituisce "True" quando il percorso esiste e "False" in caso contrario.

Note

I cmdlet che contengono il sostantivo Path (cmdlet Path) modificano i nomi dei percorsi e restituiscono i nomi in un formato conciso che può essere interpretato da tutti i provider di Windows PowerShell. Sono progettati per essere utilizzati in programmi e script in cui si intende visualizzare un nome di percorso, completo o parziale, in un determinato formato. Utilizzare questi cmdlet in modo analogo a Dirname, Normpath, Realpath, Join o altri modificatori di percorso.

È possibile utilizzare i cmdlet Path con diversi provider, inclusi FileSystem, Registry e Certificate.

Il cmdlet Test-Path è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>test-path -path "C:\Documents and Settings\NicoleH"

Descrizione
-----------
Questo comando comunica se esistono tutti gli elementi nel percorso, ovvero le directory C:, Documents and Settings e NicoleH. Se alcuni sono mancanti, il cmdlet restituisce FALSE. In caso contrario, restituisce TRUE.

Esempio 2

C:\PS>test-path -path $profile

C:\PS>test-path -path $profile -IsValid

Descrizione
-----------
Tramite questi comandi viene sottoposto a test il percorso del profilo di Windows PowerShell.

Il primo comando determina se esistono o meno tutti gli elementi del percorso. Il secondo comando determina se la sintassi del percorso è corretta. In questo caso, il percorso è FALSE, ma la sintassi è corretta (TRUE). Questi comandi utilizzano $profile, la variabile automatica che fa riferimento al percorso del profilo, anche se il profilo non esiste.

Per ulteriori informazioni sulle variabili automatiche, vedere about_Automatic_Variables.

Esempio 3

C:\PS>test-path -path "C:\CAD\Commercial Buildings\*" -exclude *.dwg

Descrizione
-----------
Questo comando indica se nella directory Commercial Buildings sono presenti file con estensione diversa da dwg.

Il comando utilizza il parametro Path per specificare il percorso. Poiché include uno spazio, il percorso viene racchiuso tra virgolette. L'asterisco al termine del percorso indica il contenuto della directory Commercial Building. Con percorsi lunghi come questo, digitare le prime lettere del percorso, quindi utilizzare il tasto TAB per completare il percorso.

Il comando utilizza il parametro Exclude per specificare i file che verranno omessi dalla valutazione.

In questo caso, poiché la directory contiene solo file con estensione dwg, il risultato sarà FALSE.

Esempio 4

C:\PS>test-path -path $profile -pathtype leaf

Descrizione
-----------
Questo comando indica se il percorso archiviato nella variabile $profile porta a un file. In questo caso, poiché il profilo di Windows PowerShell è un file con estensione ps1, il cmdlet restituirà TRUE.

Esempio 5

C:\PS>test-path -path HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell

TRUE

C:\PS> test-path -path HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell\ExecutionPolicy
FALSE

Descrizione
-----------
Questi comandi utilizzano il cmdlet Test-Path con il provider del Registro di sistema di Windows PowerShell.

Il primo comando verifica se il percorso della chiave del Registro di sistema Microsoft.PowerShell è corretto nel sistema. Se Windows PowerShell viene installato correttamente, il cmdlet restituisce TRUE.

Test-Path non funziona correttamente con tutti i provider di Windows PowerShell. Ad esempio, è possibile utilizzare Test-Path per verificare il percorso di una chiave del Registro di sistema, ma se lo si utilizza per verificare il percorso di una voce del Registro di sistema, restituirà sempre FALSE, anche se la voce del Registro di sistema è presente.

Vedere anche

  • about_Providers
  • Convert-Path
  • Split-Path
  • Resolve-Path
  • Join-Path


Test-WSMan

Verifica se il servizio WinRM è in esecuzione in un computer locale o remoto.

Sintassi

Test-WSMan [[-ComputerName] <string>] [-Authentication <Authentication>] [-Credential <PSCredential>] [<CommonParameters>]

Descrizione

Il cmdlet Test-WSMan invia una richiesta di identificazione che determina se il servizio Gestione remota Windows è eseguito in un computer locale o remoto. Se il servizio è in esecuzione nel computer sottoposto a test, tramite il cmdlet vengono visualizzate le seguenti informazioni sul servizio: schema di identità di WS-Management, versione del protocollo, fornitore del prodotto e versione di prodotto del servizio testato.

Parametri

-Authentication <Authentication>

Specifica il meccanismo di autenticazione da utilizzare nel server. I valori possibili sono:

- Basic: Basic è uno schema in cui il nome utente e la password vengono inviati come testo non crittografato al server o al proxy.

- Default: utilizzare il metodo di autenticazione implementato dal protocollo WS-Management.

- Digest: Digest è uno schema basato su una richiesta di verifica e relativa risposta che utilizza una stringa di dati specificata dal server per la richiesta di verifica.

- Kerberos: il server e il computer client si autenticano reciprocamente utilizzando certificati Kerberos.

- Negotiate: Negotiate è uno schema basato su una richiesta di verifica e relativa risposta che negozia con il server o il proxy per determinare lo schema da utilizzare per l'autenticazione. Ad esempio, questo valore di parametro consente la negoziazione per determinare se viene utilizzato il protocollo Kerberos o NTLM.

- CredSSP: utilizzare l'autenticazione CredSSP (Credential Security Service Provider) che consente all'utente di delegare le credenziali. Questa opzione è destinata ai comandi che vengono eseguiti in un computer remoto, ma raccolgono dati o eseguono ulteriori comandi in altri computer remoti.

Attenzione: CredSSP (Credential Security Service Provider) delega le credenziali dell'utente dal computer locale a un computer remoto. Questa procedura aumenta il rischio per la sicurezza dell'operazione remota. Se il computer remoto è compromesso, quando le credenziali vengono passate a tale computer è possibile utilizzarle per controllare la sessione di rete.

Importante: se non viene specificato il parametro Authentication, la richiesta Test-WSMan sarà inviata al computer remoto in modo anonimo, ovvero senza utilizzare l'autenticazione. Se la richiesta Test-WSMan viene effettuata in modo anonimo, non restituisce le informazioni specifiche della versione del sistema operativo. Tramite Test-WSMan vengono invece visualizzati valori null per la versione del sistema operativo e il livello di Service Pack (SO: 0.0.0 SP: 0.0).

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string>

Specifica il computer in cui si desidera eseguire l'operazione di gestione. Il valore può essere un nome di dominio completo, un nome NetBIOS o un indirizzo IP. Utilizzare il nome del computer locale, localhost o un punto (.) per specificare il computer locale. Il valore predefinito è il computer locale. Quando il computer remoto si trova in un dominio diverso da quello dell'utente, è necessario utilizzare un nome di dominio completo.

Obbligatorio? | false
Posizione? | 1
Valore predefinito | localhost
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente. Digitare un nome utente, ad esempio "User01", "Domain01\User01" o User@Domain.com. In alternativa, immettere un oggetto PSCredential, ad esempio quello restituito dal cmdlet Get-Credential. Quando si digita un nome utente, viene richiesta una password.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Questo cmdlet non accetta alcun input.
Output | Nessuno Questo cmdlet non genera alcun oggetto di output.

Note

Per impostazione predefinita, il cmdlet Test-WSMan sottopone a query il servizio Gestione remota Windows senza utilizzare l'autenticazione e non restituisce le informazioni specifiche della versione del sistema operativo. Vengono invece visualizzati valori null per la versione del sistema operativo e il livello di Service Pack (SO: 0.0.0 SP: 0.0).

Esempio 1

C:\PS>test-wsman

wsmid           : http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd
ProtocolVersion : http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd
ProductVendor   : Microsoft Corporation
ProductVersion  : OS: 0.0.0 SP: 0.0 Stack: 2.0

Descrizione
-----------
Questo comando consente di determinare se il servizio Gestione remota Windows è in esecuzione in un computer locale o remoto.

Esempio 2

C:\PS>test-wsman -computername server01

wsmid           : http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd
ProtocolVersion : http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd
ProductVendor   : Microsoft Corporation
ProductVersion  : OS: 0.0.0 SP: 0.0 Stack: 2.0

Descrizione
-----------
Questo comando consente di determinare se il servizio Gestione remota Windows è in esecuzione nel computer denominato server01.

Esempio 3

C:\PS>test-wsman -authentication default

wsmid           : http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd
ProtocolVersion : http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd
ProductVendor   : Microsoft Corporation
ProductVersion  : OS: 6.0.6001 SP: 1.0 Stack: 2.0

Descrizione
-----------
Questo comando consente di verificare se il servizio Gestione remota Windows (WS-Management) è in esecuzione nel computer locale mediante il parametro Authentication.

L'utilizzo del parametro Authentication consente al cmdlet Test-WSMan di restituire la versione del sistema operativo.

Esempio 4

C:\PS>test-wsman -computername server01 -authentication default

wsmid           : http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd
ProtocolVersion : http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd
ProductVendor   : Microsoft Corporation
ProductVersion  : OS: 6.1.7021 SP: 0.0 Stack: 2.0

Descrizione
-----------
Questo comando consente di verificare se il servizio Gestione remota Windows (WS-Management) è in esecuzione nel computer denominato server01 mediante il parametro Authentication.

L'utilizzo del parametro Authentication consente al cmdlet Test-WSMan di restituire la versione del sistema operativo.

Vedere anche

  • Connect-WSMan
  • Disable-WSManCredSSP
  • Disconnect-WSMan
  • Enable-WSManCredSSP
  • Get-WSManCredSSP
  • Get-WSManInstance
  • Invoke-WSManAction
  • New-WSManInstance
  • New-WSManSessionOption
  • Remove-WSManInstance
  • Set-WSManInstance
  • Set-WSManQuickConfig


Trace-Command

Configura e avvia un'analisi dell'espressione o del comando specificato.

Sintassi

Trace-Command [-Command] <string> [-ArgumentList <Object[]>] [-Name] <string[]> [[-Option] {<None> | <Constructor> | <Dispose> | <Finalizer> | <Method> | <Property> | <Delegates> | <Events> | <Exception> | <Lock> | <Error> | <Errors> | <Warning> | <Verbose> | <WriteLine> | <Data> | <Scope> | <ExecutionFlow> | <Assert> | <All>}] [-Debugger] [-FilePath <string>] [-Force] [-InputObject <psobject>] [-ListenerOption {<None> | <LogicalOperationStack> | <DateTime> | <Timestamp> | <ProcessId> | <ThreadId> | <Callstack>}] [-PSHost] [<CommonParameters>]

Trace-Command [-Espressione] <scriptblock> [-Name] <string[]> [[-Option] {<None> | <Constructor> | <Dispose> | <Finalizer> | <Method> | <Property> | <Delegates> | <Events> | <Exception> | <Lock> | <Error> | <Errors> | <Warning> | <Verbose> | <WriteLine> | <Data> | <Scope> | <ExecutionFlow> | <Assert> | <All>}] [-Debugger] [-FilePath <string>] [-Force] [-InputObject <psobject>] [-ListenerOption {<None> | <LogicalOperationStack> | <DateTime> | <Timestamp> | <ProcessId> | <ThreadId> | <Callstack>}] [-PSHost] [<CommonParameters>]

Descrizione

Il cmdlet Trace-Command consente di configurare e avviare un'analisi dell'espressione o del comando specificato. Il funzionamento è analogo a quello di Set-TraceSource, ma si applica solo al comando specificato.

Parametri

-ArgumentList <Object[]>

Specifica i parametri e i valori dei parametri per il comando da analizzare. L'alias per ArgumentList è Args. Questa funzionalità è particolarmente utile per il debug dei parametri dinamici.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Command <string>

Specifica un comando che viene elaborato durante l'analisi.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Debugger

Invia l'output di analisi al debugger. È possibile visualizzare l'output in qualsiasi debugger in modalità utente o kernel oppure in Visual Studio. Questo parametro consente inoltre di selezionare il listener di analisi predefinito.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Espressione <scriptblock>

Specifica l'espressione che viene elaborata durante l'analisi. Racchiudere l'espressione tra parentesi graffe ({}).

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-FilePath <string>

Invia l'output di analisi al file specificato. Questo parametro consente inoltre di selezionare il listener di analisi dei file.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Force

Consente al cmdlet di aggiungere informazioni di analisi a un file di sola lettura. Utilizzato con il parametro FilePath. Quando si utilizza il parametro Force, il cmdlet non può ignorare le limitazioni di sicurezza.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Fornisce l'input all'espressione che viene elaborata durante l'analisi.

È possibile immettere una variabile che rappresenta l'input accettato dall'espressione oppure passare un oggetto attraverso la pipeline.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-ListenerOption <TraceOptions>

Aggiunge dati facoltativi al prefisso di ogni messaggio di analisi nell'output. I valori validi sono None, LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId e Callstack. "None" rappresenta il valore predefinito.

Per specificare più opzioni, utilizzare virgole ma non spazi per separarle e racchiuderle tra virgolette, ad esempio "ProcessID,ThreadID".

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string[]>

Determina i componenti di Windows PowerShell analizzati. Immettere il nome dell'origine di analisi di ciascun componente. È consentito l'utilizzo di caratteri jolly. Per trovare le origini di analisi disponibili nel computer, digitare "Get-TraceSource".

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Option <PSTraceSourceOptions>

Determina il tipo di eventi analizzati.

I valori validi sono None, Constructor, Dispose, Finalizer, Method, Property, Delegates, Events, Exception, Lock, Error, Errors, Warning, Verbose, WriteLine, Data, Scope, ExecutionFlow, Assert e All. Il valore predefinito è "All".

I valori seguenti sono combinazioni di altri valori:

-- ExecutionFlow: Constructor, Dispose, Finalizer, Method, Delegates, Events e Scope

-- Data: Constructor, Dispose, Finalizer, Property, Verbose e WriteLine

-- Errors: Error ed Exception.

Per specificare più opzioni, utilizzare virgole ma non spazi per separarle e racchiuderle tra virgolette, ad esempio "Constructor,Dispose".

Obbligatorio? | false
Posizione? | 3
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PSHost

Invia l'output di analisi all'host di Windows PowerShell. Questo parametro consente inoltre di selezionare il listener di analisi PSHost.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare oggetti che rappresentano input dell'espressione a Trace-Command.
Output | System.Management.Automation.PSObject Restituisce l'analisi del comando nel flusso di debug.

Note

L'analisi viene utilizzata dagli sviluppatori per eseguire il debug dei programmi e ridefinirli. Durante l'analisi il programma genera messaggi dettagliati sui singoli passaggi della relativa elaborazione interna.

I cmdlet di analisi di Windows PowerShell sono progettati specificamente per gli sviluppatori di Windows PowerShell, ma possono essere utilizzati da tutti gli utenti. Consentono infatti di monitorare quasi tutti gli aspetti della funzionalità della shell.

Per trovare i componenti di Windows PowerShell abilitati per l'analisi, digitare "Get-Help Get-TraceSource".

L'"origine di analisi" è rappresentata dalla parte di ciascun componente di Windows PowerShell che gestisce l'analisi e genera i relativi messaggi per il componente. Per analizzare un componente, è necessario identificarne l'origine di analisi.

Il "listener di analisi" riceve l'output dell'analisi e lo visualizza all'utente. È possibile scegliere di inviare i dati di analisi a un debugger in modalità utente o kernel, all'host o alla console, a un file oppure a un listener personalizzato derivato dalla classe System.Diagnostics.TraceListener.

Quando si utilizza il set di parametri Command, il comando verrà elaborato come se fosse incluso in una pipeline. Ad esempio, l'individuazione del comando non verrà ripetuta per ogni oggetto in ingresso.

I nomi dei parametri Name, Expression, Option e Command sono facoltativi. Se si omettono i nomi dei parametri, i valori dei parametri senza nome devono essere riportati nell'ordine seguente: Name, Expression, Option oppure Name, Command, -Option. Se si includono i nomi dei parametri, i parametri possono essere riportati in qualsiasi ordine.

Esempio 1

C:\PS>trace-command -name metadata,parameterbinding,cmdlet -expression {get-process notepad} -pshost

Descrizione
-----------
Tramite questo comando verrà avviata un'analisi dell'elaborazione dei metadati, del binding dei parametri e della creazione e distruzione dei cmdlet dell'espressione "get-process notepad". Verranno utilizzati il parametro Name per specificare le origini di analisi, il parametro Expression per specificare il comando e il parametro PSHost per inviare l'output alla console. Poiché non viene specificata nessuna opzione per l'analisi o il listener, verranno utilizzate le impostazioni predefinite, ovvero "All" per le opzioni di analisi e "None" per le opzioni del listener.

Esempio 2

C:\PS>trace-command -name commandprocessor,pipelineprocessor -command get-alias -argumentlist "ghy" -option executionflow -listenerOption "timestamp,callstack" -filepath c:\test\debug.txt

Descrizione
-----------
Tramite questo comando verrà avviata un'analisi dei processori dei comandi e della pipeline durante l'elaborazione del comando "get-alias cd".

Verranno utilizzati il parametro Name per specificare le origini di analisi, il parametro Command per specificare il comando, il parametro ArgumentList per specificare i parametri del comando Get-Alias, il parametro Option per specificare le opzioni di analisi e il parametro ListenerOption per specificare i campi nel prefisso del messaggio di analisi. Verrà infine utilizzato il parametro FilePath per inviare l'output al file C:\Test\Debug.txt.

Esempio 3

C:\PS>$a = "i*"

C:\PS> trace-command parameterbinding {get-alias $input} -pshost -inputobject $a

Descrizione
-----------
Tramite questi comandi verranno analizzate le azioni delle operazioni ParameterBinding di Windows PowerShell durante l'elaborazione di un'espressione Get-Alias il cui input deriva dalla pipeline.

In Trace-Command verrà utilizzato il parametro InputObject per passare un oggetto all'espressione che viene elaborata durante l'analisi.

Tramite il primo comando la stringa "i*" verrà archiviata nella variabile $a. Nel secondo comando verrà utilizzato il cmdlet Trace-Command con l'origine di analisi ParameterBinding. Verrà quindi utilizzato il parametro PSHost per inviare l'output alla console.

L'espressione di cui è in corso l'elaborazione è "get-alias $input", in cui la variabile $input è associata al parametro InputObject. Tramite il parametro InputObject la variabile $a verrà passata all'espressione. Il comando di cui è in corso l'elaborazione durante l'analisi è di fatto "get-alias -inputobject $a" o "$a | get-alias".

Vedere anche

  • Get-TraceSource
  • Set-TraceSource


Undo-Transaction

Esegue il rollback della transazione attiva.

Sintassi

Undo-Transaction [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Undo-Transaction esegue il rollback della transazione attiva. Quando si esegue il rollback di una transazione, le modifiche apportate dai comandi nella transazione vengono ignorate e i dati vengono ripristinati nella forma originale.

Se la transazione include più sottoscrittori, un comando Undo-Transaction esegue il rollback dell'intera transazione per tutti i sottoscrittori.

Per impostazione predefinita, il rollback delle transazioni viene eseguito automaticamente se un comando qualsiasi nella transazione genera un errore. È tuttavia possibile avviare le transazioni con una preferenza di rollback diversa ed è possibile utilizzare questo cmdlet per eseguire il rollback della transazione attiva in qualsiasi momento.

Il cmdlet Undo-Transaction fa parte di un set di cmdlet che supportano la funzionalità delle transazioni in Windows PowerShell. Per ulteriori informazioni, vedere about_Transactions.

Parametri

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Nessuno Questo cmdlet non restituisce alcun output.

Note

Non è possibile eseguire il rollback di una transazione di cui è stato eseguito il commit.

Non è possibile eseguire il rollback di transazioni diverse da quella attiva. Per eseguire il rollback di una transazione diversa e indipendente, è necessario eseguire innanzitutto il commit o il rollback della transazione attiva.

Con il rollback la transazione viene terminata. Per utilizzare nuovamente una transazione, è necessario avviarne una nuova.

Esempio 1

C:\PS>undo-transaction

Descrizione
-----------
Questo comando esegue il rollback della transazione corrente (attiva).

Esempio 2

C:\PS>cd hkcu:\software

PS HKCU:\Software> start-transaction
PS HKCU:\Software> new-item MyCompany -usetransaction
PS HKCU:\Software> undo-transaction

Descrizione
-----------
Questo comando avvia una transazione, quindi ne esegue il rollback. Di conseguenza, non viene apportata alcuna modifica al Registro di sistema.

Esempio 3

C:\PS>cd hkcu:\software

PS HKCU:\Software> start-transaction
PS HKCU:\Software> new-item MyCompany -usetransaction
PS HKCU:\Software> get-transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   -----
Error                1                 Active

PS HKCU:\Software> start-transaction
PS HKCU:\Software> get-transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   -----
Error                2                 Active

PS HKCU:\Software> undo-transaction
PS HKCU:\Software> get-transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   -----
Error                0                 RolledBack

Descrizione
-----------
In questo esempio viene illustrato che quando un sottoscrittore esegue il rollback di una transazione, viene eseguito il rollback dell'intera transazione per tutti i sottoscrittori.

Il primo comando modifica la posizione nella chiave del Registro di sistema HKCU:\Software.

Il secondo comando avvia una transazione.

Il terzo comando utilizza il cmdlet New-Item per creare una nuova chiave del Registro di sistema. Viene utilizzato il parametro UseTransaction per includere la modifica nella transazione.

Il quarto comando utilizza il cmdlet Get-Transaction per ottenere la transazione attiva. Si noti che lo stato è Active e il conteggio dei sottoscrittori è pari a 1.

Il quinto comando utilizza nuovamente il comando Start-Transaction. In genere,
l'avvio di una transazione mentre è in corso un'altra transazione si verifica quando uno script utilizzato dalla transazione principale include la propria transazione completa. Questo esempio viene presentato in modo interattivo per consentirne l'analisi in fasi.

Quando si immette un comando Start-Transaction mentre è in corso un'altra transazione, i comandi vengono aggiunti alla transazione esistente come un nuovo "sottoscrittore" e il conteggio dei sottoscrittori viene incrementato.

Il sesto comando utilizza il cmdlet Get-Transaction per ottenere la transazione attiva. Si noti che il conteggio dei sottoscrittori è pari a 2.

Il settimo comando utilizza il cmdlet Undo-Transaction per eseguire il rollback della transazione. Non viene restituito alcun oggetto.

Il comando finale è un comando Get-Transaction che ottiene la transazione attiva o, in questo caso, l'ultima transazione attiva. I risultati evidenziano che viene eseguito il rollback della transazione e che il conteggio dei sottoscrittori è pari a 0, indicando che il rollback della transazione è stato eseguito per tutti i sottoscrittori.

Vedere anche

  • about_Transactions
  • about_Providers
  • Start-Transaction
  • Get-Transaction
  • Complete-Transaction
  • Use-Transaction


Unregister-Event

Annulla la sottoscrizione di un evento.

Sintassi

Unregister-Event [-SubscriptionId] <int> [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Unregister-Event [-SourceIdentifier] <string> [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Unregister-Event annulla la sottoscrizione di un evento creata tramite i cmdlet Register-EngineEvent, Register-ObjectEvent o Register-WmiEvent.

Quando la sottoscrizione di un evento viene annullata, il sottoscrittore di eventi verrà eliminato dalla sessione e gli eventi sottoscritti non saranno più aggiunti alla coda degli eventi. Quando si annulla una sottoscrizione di un evento creata tramite il cmdlet New-Event, anche il nuovo evento verrà eliminato dalla sessione.

Unregister-Event non elimina eventi dalla coda degli eventi. Per eliminare gli eventi, utilizzare il cmdlet Remove-Event.

Parametri

-Force

Annulla tutte le sottoscrizioni di eventi, incluse le sottoscrizioni nascoste mediante il parametro SupportEvent di Register-ObjectEvent, Register-WmiEvent e Register-EngineEvent.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SourceIdentifier <string>

Annulla le sottoscrizioni di eventi che dispongono dell'identificatore di origine specificato.

È necessario che sia incluso un parametro SourceIdentifier o SubscriptionId in ogni comando.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-SubscriptionId <int>

Annulla le sottoscrizioni di eventi che dispongono dell'identificatore di sottoscrizione specificato.

È necessario che sia incluso un parametro SourceIdentifier o SubscriptionId in ogni comando.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSEventSubscriber È possibile reindirizzare l'output da Get-EventSubscriber a Unregister-Event.
Output | Nessuno Questo cmdlet non restituisce alcun output.

Note

Gli eventi, le sottoscrizioni di eventi e la coda degli eventi esistono solo nella sessione corrente. Se si chiude la sessione corrente, la coda degli eventi viene eliminata e la sottoscrizione di eventi viene annullata.

Unregister-Event non può eliminare eventi creati tramite il cmdlet New-Event a meno che l'evento non sia stato sottoscritto tramite il cmdlet Register-EngineEvent. Per eliminare un evento personalizzato dalla sessione, è necessario rimuoverlo a livello di codice o chiudere la sessione.

Esempio 1

C:\PS>unregister-event -sourceIdentifier ProcessStarted

Descrizione
-----------
Questo comando annulla la sottoscrizione dell'evento che dispone di un identificatore di origine "ProcessStarted".

Per trovare l'identificatore di origine di un evento, utilizzare il cmdlet Get-Event. Per trovare l'identificatore di origine della sottoscrizione di un evento, utilizzare il cmdlet Get-EventSubscriber.

Esempio 2

C:\PS>unregister-event -subscriptionId 2

Descrizione
-----------
Questo comando annulla la sottoscrizione dell'evento che dispone di un identificatore di sottoscrizione di 2.

Per trovare l'identificatore di sottoscrizione della sottoscrizione di un evento, utilizzare il cmdlet Get-EventSubscriber.

Esempio 3

C:\PS>get-eventsubscriber -force | unregister-event -force

Descrizione
-----------
Questo comando annulla tutte le sottoscrizioni di eventi nella sessione.

Il comando utilizza il cmdlet Get-EventSubscriber per ottenere tutti gli oggetti sottoscrittore di eventi nella sessione, inclusi i sottoscrittori nascosti tramite il parametro SupportEvent dei cmdlet di registrazione eventi.

Viene utilizzato un operatore pipeline (|) per inviare gli oggetti sottoscrittore a Unregister-Event che li elimina dalla sessione. Per completare l'attività, è inoltre richiesto il parametro Force in Unregister-Event.

Vedere anche

  • Register-ObjectEvent
  • Register-EngineEvent
  • Register-WmiEvent
  • Unregister-Event
  • Get-Event
  • New-Event
  • Remove-Event
  • Wait-Event
  • Get-EventSubscriber


Unregister-PSSessionConfiguration

Elimina le configurazioni di sessione registrate dal computer.

Sintassi

Unregister-PSSessionConfiguration [-Name] <string> [-Force] [-NoServiceRestart] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Unregister-PSSessionConfiguration elimina le configurazioni di sessione registrate dal computer. Si tratta di un cmdlet avanzato progettato per essere utilizzato da amministratori di sistema per gestire le configurazioni di sessione personalizzate degli utenti.

Se si eliminano accidentalmente le configurazioni di sessione Microsoft.PowerShell o Microsoft.PowerShell32 predefinite, utilizzare il cmdlet Enable-PSRemoting per ripristinarle.

Parametri

-Force

Elimina tutti i prompt dell'utente e riavvia il servizio Gestione remota Windows senza richieste. Con il riavvio del servizio la modifica della configurazione diventa effettiva.

Per impedire un riavvio ed eliminare il prompt di riavvio, utilizzare il parametro NoServiceRestart.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Name <string>

Specifica i nomi delle configurazioni di sessione da eliminare. Immettere uno o più nomi di configurazione. È consentito l'utilizzo di caratteri jolly. Questo parametro è obbligatorio.

È inoltre possibile reindirizzare un oggetto configurazione di sessione a Unregister-PSSessionConfiguration.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-NoServiceRestart

Non riavvia il servizio Gestione remota Windows ed elimina il prompt per riavviare il servizio.

Per impostazione predefinita, quando si immette un comando Unregister-PSSessionConfiguration, viene richiesto di riavviare il servizio Gestione remota Windows per rendere effettiva la modifica. Finché il servizio Gestione remota Windows non viene riavviato, gli utenti possono ancora utilizzare la configurazione di sessione non registrata, anche se non viene trovata da Get-PSSessionConfiguration.

Per riavviare il servizio Gestione remota Windows senza visualizzare alcun prompt, utilizzare il parametro Force. Per riavviare manualmente il servizio Gestione remota Windows, utilizzare il cmdlet Restart-Service.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Microsoft.PowerShell.Commands.PSSessionConfigurationCommands#PSSessionConfiguration È possibile reindirizzare un oggetto configurazione di sessione da Get-PSSessionConfiguration a Unregister-PSSessionConfiguration.
Output | Nessuno Questo cmdlet non restituisce alcun oggetto.

Note

Per eseguire questo cmdlet in Windows Vista, Windows Server 2008 e nelle versioni successive di Windows, è necessario avviare Windows PowerShell con l'opzione "Esegui come amministratore".

Esempio 1

C:\PS>unregister-pssessionconfiguration -name MaintenanceShell

Descrizione
-----------
Questo comando elimina la configurazione di sessione MaintenanceShell dal computer.

Esempio 2

C:\PS>unregister-pssessionconfiguration -maintenanceShell -force

Descrizione
-----------
Questo comando elimina la configurazione di sessione MaintenanceShell dal computer. Il comando utilizza il parametro Force per eliminare tutti i messaggi dell'utente e riavviare il servizio Gestione remota Windows senza chiedere conferma.

Esempio 3

C:\PS>unregister-pssessionconfiguration -name *

C:\PS> get-pssessionconfiguration -name * | unregister-pssessionconfiguration

Descrizione
-----------
Questi comandi eliminano tutte le configurazioni di sessione nel computer. I comandi hanno lo stesso effetto pertanto sono intercambiabili.

Esempio 4

C:\PS>unregister-pssessionconfiguration -name maintenanceShell -noServiceRestart

C:\PS> get-pssessionconfiguration -name maintenanceShell

Get-PSSessionConfiguration -name maintenanceShell : No Session Configuration matches criteria "maintenanceShell".
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException

C:\PS> new-pssession -configurationName MaintenanceShell

 Id Name      ComputerName    State    Configuration         Availability
 -- ----      ------------    -----    -------------         ------------
  1 Session1  localhost       Opened   MaintenanceShell      Available

C:\PS> restart-service winrm

C:\PS> new-pssession -configurationName MaintenanceShell
[localhost] Connecting to remote server failed with the following error message : The WS-Management service cannot process the request. The resource
URI (http://schemas.microsoft.com/powershell/MaintenanceShell) was not found in the WS-Management catalog. The catalog contains the metadata that describes resour
ces, or logical endpoints. For more information, see the about_Remote_Troubleshooting Help topic.
    + CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportException
    + FullyQualifiedErrorId : PSSessionOpenFailed

Descrizione
-----------
In questo esempio viene illustrato l'effetto dell'utilizzo del parametro NoServiceRestart di Unregister-PSSessionConfiguration. Questo parametro ha lo scopo di evitare il riavvio di un servizio, il che potrebbe danneggiare le sessioni nel computer.

Con il primo comando si utilizza il cmdlet Unregister-PSSessionConfiguration per eliminare la configurazione di sessione MaintenanceShell. Tuttavia, poiché il comando utilizza il parametro NoServiceRestart, il servizio Gestione remota Windows non viene riavviato e la modifica non è ancora pienamente effettiva.

Il secondo comando utilizza il cmdlet Get-PSSessionConfiguration per ottenere la sessione MaintenanceShell. Poiché la sessione è stata rimossa dalla tabella delle risorse di WS-Management, Get-PSSession non può restituirla.

Con il terzo comando si utilizza il cmdlet New-PSSession per creare una sessione nel computer locale che utilizzi la configurazione MaintenanceShell. Il comando ha esito positivo.

Nel quarto comando viene utilizzato il cmdlet Restart-Service per riavviare il servizio Gestione remota Windows.

Con il quinto comando viene nuovamente utilizzato il cmdlet New-PSSession per creare una sessione che utilizzi la configurazione MaintenanceShell. In questo caso, la sessione ha esito negativo perché la configurazione MaintenanceShell è stata eliminata.

Vedere anche

  • about_Session_Configurations
  • Disable-PSSessionConfiguration
  • Enable-PSSessionConfiguration
  • Get-PSSessionConfiguration
  • Register-PSSessionConfiguration
  • Set-PSSessionConfiguration
  • WSMan Provider


Update-FormatData

Aggiorna i dati di formattazione della sessione corrente.

Sintassi

Update-FormatData [[-AppendPath] <string[]>] [-PrependPath <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Update-FormatData ricarica i dati di formattazione dai file di formattazione nella sessione corrente. Questo cmdlet consente di aggiornare i dati di formattazione senza riavviare Windows PowerShell.

Senza parametri, Update-FormatData ricarica i file di formattazione precedentemente caricati. È possibile utilizzare i parametri di Update-FormatData per aggiungere i nuovi file di formattazione alla sessione.

I file di formattazione sono file di testo in formato XML con estensione ps1xml. I dati di formattazione nei file definiscono la visualizzazione degli oggetti Microsoft .NET Framework nella sessione.

All'avvio di Windows PowerShell, i dati relativi al formato vengono caricati dai file di formattazione della directory di installazione di Windows PowerShell ($pshome) nella sessione. È possibile utilizzare Update-FormatData per ricaricare i dati di formattazione nella sessione corrente senza riavviare Windows PowerShell. Ciò si rivela utile quando è stato aggiunto o modificato un file di formattazione, ma non si desidera interrompere la sessione.

Per ulteriori informazioni sui file di formattazione in Windows PowerShell, vedere about_Format.ps1xml.

Parametri

-AppendPath <string[]>

Aggiunge i file di formattazione specificati alla sessione. I file vengono caricati dopo il caricamento dei file di formattazione predefiniti da parte di Windows PowerShell.

In caso di formattazione di oggetti .NET, viene utilizzata la prima definizione di formattazione trovata per ogni tipo .NET. Se si utilizza il parametro AppendPath, Windows PowerShell esegue la ricerca dei dati presenti nei file predefiniti prima di rilevare i dati di formattazione aggiunti.

Utilizzare questo parametro per aggiungere un file che consente di formattare un oggetto .NET al quale non viene fatto riferimento nei file di formattazione predefiniti.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-PrependPath <string[]>

Aggiunge i file di formattazione specificati alla sessione. I file vengono caricati prima del caricamento dei file di formattazione predefiniti da parte di Windows PowerShell.

In caso di formattazione di oggetti .NET, viene utilizzata la prima definizione di formattazione trovata per ogni tipo .NET. Se si utilizza il parametro AppendPath, Windows PowerShell esegue la ricerca dei dati presenti nei file aggiunti prima di rilevare i dati di formattazione presenti nei file predefiniti.

Utilizzare questo parametro per aggiungere un file che consente di formattare un oggetto .NET al quale viene fatto riferimento anche nei file di formattazione predefiniti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso aggiunto a Update-FormatData.
Output | Nessuno Il cmdlet non restituisce alcun output.

Note

Update-FormatData aggiorna anche i dati di formattazione per i comandi nella sessione importati dai moduli. Se viene modificato il file di formattazione di un modulo, è possibile eseguire un comando Update-FormatData per aggiornare i dati di formattazione per i comandi importati. Non è necessario importare nuovamente il modulo.

Esempio 1

C:\PS>update-formatdata

Descrizione
-----------
Questo comando ricarica i file di formattazione precedentemente caricati.

Esempio 2

C:\PS>update-formatdata -appendpath trace.format.ps1xml, log.format.ps1xml

Descrizione
-----------
Questo comando ricarica i file di formattazione nella sessione, inclusi due nuovi file, Trace.format.ps1xml e Log.format.ps1xml.

Poiché il comando utilizza il parametro AppendPath, i dati di formattazione presenti nei nuovi file vengono caricati dopo i dati di formattazione presenti nei file predefiniti.

Viene utilizzato il parametro AppendPath poiché i nuovi file contengono dati di formattazione per oggetti a cui non viene fatto riferimento nei file predefiniti.

Esempio 3

C:\PS>update-formatdata -prependPath c:\test\NewFiles.format.ps1xml

# Edit the NewFiles.format.ps1 file.

C:\PS> update-formatdata

Descrizione
-----------
In questo esempio viene illustrato come ricaricare un file di formattazione dopo averlo modificato.

Con il primo comando viene aggiunto il file NewFiles.format.ps1xml alla sessione. Viene utilizzato il parametro PrependPath poiché il file contiene dati di formattazione per oggetti a cui non viene fatto riferimento nei file predefiniti.

Dopo aver aggiunto il file NewFiles.format.ps1xml e averlo verificato in questa sessione, l'autore modifica il file.

Nel secondo comando viene utilizzato il cmdlet Update-FormatData per ricaricare i file di formattazione. Poiché il file NewFiles.format.ps1xml è stato caricato precedentemente, Update-FormatData lo ricarica automaticamente senza utilizzare parametri.


Update-List

Aggiunge e rimuove elementi dal valore di una proprietà che contiene una raccolta di oggetti.

Sintassi

Update-List [-Add <Object[]>] [-Remove <Object[]>] [[-Property] <string>] [-InputObject <psobject>] [<CommonParameters>]

Update-List -Replace <Object[]> [[-Property] <string>] [-InputObject <psobject>] [<CommonParameters>]

Descrizione

Il cmdlet Update-List aggiunge e rimuove elementi dal valore di una proprietà di un oggetto, quindi restituisce l'oggetto aggiornato. Questo cmdlet è destinato alle proprietà che contengono raccolte di oggetti.

I parametri Add e Remove aggiungono e rimuovono elementi singoli dalla raccolta. Il parametro Replace sostituisce l'intera raccolta.

Se non si specifica una proprietà nel comando, Update-List restituisce un oggetto che descrive l'aggiornamento anziché aggiornare l'oggetto. È possibile inviare l'oggetto aggiornamento ai cmdlet che modificano gli oggetti, ad esempio i cmdlet Set-*.

Questo cmdlet funziona solo quando la proprietà aggiornata supporta l'interfaccia IList utilizzata da Update-List. È inoltre necessario che qualsiasi cmdlet Set-* che accetta un aggiornamento supporti l'interfaccia IList. I cmdlet principali installati con Windows PowerShell non supportano questa interfaccia. Per determinare se un cmdlet supporta Update-List, vedere l'argomento della Guida relativo ai cmdlet.

Parametri

-Add <Object[]>

Specifica i valori delle proprietà da aggiungere alla raccolta. Immettere i valori nell'ordine in cui devono essere visualizzati nella raccolta.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica gli oggetti da aggiornare. È inoltre possibile reindirizzare l'oggetto da aggiornare a Update-List.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Property <string>

Identifica la proprietà che contiene la raccolta aggiornata. Se si omette questo parametro, Update-List restituisce un oggetto che rappresenta la modifica anziché modificare l'oggetto.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Remove <Object[]>

Specifica i valori delle proprietà da rimuovere dalla raccolta.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Replace <Object[]>

Specifica una nuova raccolta. Questo parametro sostituisce tutti gli elementi nella raccolta originale con gli elementi specificati da questo parametro.

Obbligatorio? | true
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare gli oggetti da aggiornare a Update-List.
Output | Oggetti o System.Management.Automation.PSListModifier Update-List restituisce un oggetto aggiornato o un oggetto che rappresenta l'azione di aggiornamento.

Esempio 1

C:\PS>get-mailbox | update-list -Property aliases -Add "A","B" -Remove "X","Y" | set-mailbox

Descrizione
-----------
Questo comando aggiunge A e B e rimuove X e Y dalla proprietà Aliases di una cassetta postale.

Il comando utilizza il cmdlet Get-MailBox di Microsoft Exchange Server per ottenere la cassetta postale. Un operatore pipeline invia l'oggetto cassetta postale al cmdlet Update-List.

Il comando Update-List utilizza il parametro Property per indicare che la proprietà Aliases della cassetta postale viene aggiornata e i parametri Add e Remove per specificare gli elementi aggiunti e quelli rimossi dalla raccolta. La proprietà Aliases rispetta le condizioni di Update-List, perché archivia una raccolta di oggetti Microsoft .NET Framework che dispongono dei metodi Add e Remove.

Il cmdlet Update-List restituisce la cassetta postale aggiornata che viene reindirizzata al cmdlet Set-MailBox, il quale modifica la cassetta postale.

Per ulteriori informazioni su Get-Mailbox, vedere http://go.microsoft.com/fwlink/?LinkId=111536.

Esempio 2

C:\PS>$m = get-mailbox

C:\PS> update-list -InputObject $m -Property aliases -Add "A","B" -Remove "X", "Y" | set-mailbox

Descrizione
-----------
Questo comando aggiunge A e B al valore della proprietà Aliases di una cassetta postale e rimuove X e Y. Il comando ha lo stesso effetto del comando precedente, sebbene abbia un formato leggermente diverso.

Il comando utilizza il cmdlet Get-MailBox per ottenere la cassetta postale e la salva nella variabile $m. Questo comando utilizza il parametro InputObject di Update-List per specificare la cassetta postale. Il valore di InputObject è la cassetta postale nella variabile $m. Utilizza il parametro Property per specificare la proprietà Aliases e i parametri Add e Remove per specificare gli elementi aggiunti e quelli rimossi dal valore di Aliases.

Il comando utilizza un operatore pipeline (|) per inviare l'oggetto cassetta postale aggiornato al cmdlet Set-Mailbox, il quale modifica la cassetta postale.

Esempio 3

C:\PS>get-mailbox | set-mailbox -alias (update-list -Add "A", "B" -Remove "X","Y")

Descrizione
-----------
Questo comando aggiunge A e B al valore della proprietà Aliases di una cassetta postale e rimuove X e Y. Il comando ha lo stesso effetto dei due comandi precedenti, ma utilizza una procedura diversa per eseguire l'attività.

Anziché aggiornare la proprietà Aliases della cassetta postale prima di inviarla a Set-Mailbox, questo comando utilizza Update-List per creare un oggetto che rappresenta la modifica, quindi invia la modifica al parametro Alias di Set-Mailbox.

Il comando utilizza il cmdlet Get-MailBox per ottenere la cassetta postale. Un operatore pipeline invia l'oggetto cassetta postale al cmdlet Set-Mailbox che modifica le cassette postali.

Questo comando utilizza il parametro Alias di Set-Mailbox per modificare la proprietà Aliases dell'oggetto cassetta postale. Il valore del parametro Alias è un comando Update-List che crea un oggetto che rappresenta l'aggiornamento. Il comando Update-List è racchiuso tra parentesi per garantire che venga eseguito prima che il valore del parametro Alias venga valutato. Quando il comando Set-Mailbox viene completato, la cassetta postale viene modificata.

Esempio 4

C:\PS>update-list -InputObject $a -Property aliases -replace "A", "B" | set-mailbox

Descrizione
-----------
Questo comando utilizza l'operatore Replace di Update-List per sostituire la raccolta nella proprietà Aliases dell'oggetto in $a con una nuova raccolta.

Questo comando utilizza il parametro InputObject che, in questo caso, equivale all'utilizzo di un operatore pipeline per passare $a a Update-List.

Vedere anche

  • Select-Object


Update-TypeData

Aggiorna la configurazione dei tipi estesi ricaricando in memoria i file *.types.ps1xml.

Sintassi

Update-TypeData [[-AppendPath] <string[]>] [-PrependPath <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Update-TypeData aggiorna la configurazione dei tipi estesi ricaricando in memoria i file *.types.ps1xml. Le informazioni sui tipi estesi vengono in genere caricate quando in Windows PowerShell sono necessarie le informazioni sui tipi in esse contenute. È possibile utilizzare il cmdlet Update-TypeData per precaricare tutte le informazioni sui tipi. È particolarmente utile quando durante si sviluppano nuovi tipi e si desidera caricarli a scopo di test.

Per ulteriori informazioni sui file *types.ps1xml in Windows PowerShell, vedere about_Types.ps1xml.

Parametri

-AppendPath <string[]>

Specifica il percorso dei file con estensione ps1xml facoltativi che verranno inclusi nell'elenco di file caricati. Tali file verranno elaborati dopo il caricamento dei file predefiniti.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-PrependPath <string[]>

Specifica il percorso dei file con estensione ps1xml facoltativi che verranno inclusi nell'elenco di file caricati. Questi file verranno tuttavia elaborati nell'ordine in cui sono specificati e prima del caricamento di quelli predefiniti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un percorso aggiunto a Update-TypeData.
Output | Nessuno Questo cmdlet non restituisce alcun output.

Esempio 1

C:\PS>update-typedata

Descrizione
-----------
In questo esempio la configurazione dei tipi estesi verrà aggiornata dai file *.types.ps1xml.

Esempio 2

C:\PS>update-typedata -prependpath typesA.types.Ps1xml, typesB.types.Ps1xml

Descrizione
-----------
In questo esempio la configurazione dei tipi estesi verrà aggiornata dai file *.types.ps1xml, elaborando per primi i file typesA e typesB.


Use-Transaction

Aggiunge il blocco di script alla transazione attiva.

Sintassi

Use-Transaction [-TransactedScript] <scriptblock> [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet Use-Transaction aggiunge un blocco di script a una transazione attiva. Consente di eseguire scripting sottoposto a transazione utilizzando oggetti Microsoft .NET Framework abilitati per la transazione. Il blocco di script può contenere solo oggetti .NET Framework abilitati per la transazione, ad esempio istanze della classe Microsoft.PowerShell.Commands.Management.TransactedString.

Il parametro UseTransaction, facoltativo per la maggior parte dei cmdlet, è obbligatorio quando si utilizza questo cmdlet.

Il cmdlet Use-Transaction fa parte di un set di cmdlet che supportano la funzionalità delle transazioni in Windows PowerShell. Per ulteriori informazioni, vedere about_Transactions.

Parametri

-TransactedScript <scriptblock>

Specifica il blocco di script che viene eseguito nella transazione. Immettere qualsiasi blocco di script valido racchiuso tra parentesi ({}). Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | PSObject Use-Transaction restituisce il risultato della transazione.

Note

Il parametro Use-Transaction include il comando nella transazione attiva. Poiché il cmdlet Use-Transaction viene sempre utilizzato nelle transazioni, questo parametro è obbligatorio per rendere effettivo qualsiasi comando Use-Transaction.

Esempio 1

C:\PS>start-transaction

C:\PS> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString

C:\PS> $transactedString.Append("Hello")
C:\PS> use-transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction

C:\PS> $transactedString.ToString()
Hello

C:\PS> use-transaction -transactedScript { $transactedString.ToString() } -UseTransaction
Hello, World

C:\PS> complete-transaction
C:\PS> $transactedString.ToString()
Hello, World

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il cmdlet Use-Transaction per eseguire uno script su un oggetto .NET Framework abilitato per la transazione. In questo caso, l'oggetto è un oggetto TransactedString.

Il primo comando utilizza il cmdlet Start-Transaction per avviare una transazione.

Il secondo comando utilizza il comando New-Object per creare un oggetto TransactedString e archivia l'oggetto nella variabile $TransactedString.

Il terzo e il quarto comando utilizzano entrambi il metodo Append dell'oggetto TransactedString per aggiungere testo al valore di $TransactedString. Un comando fa parte della transazione, l'altro no.

Nel terzo comando viene utilizzato il metodo Append della stringa sottoposta a transazione per aggiungere "Hello" al valore di $TransactedString. Poiché il comando non fa parte della transazione, la modifica viene applicata immediatamente.

Nel quarto comando viene utilizzato il cmdlet Use-Transaction per aggiungere testo alla stringa all'interno della transazione. Il comando utilizza il metodo Append per aggiungere ", World" al valore di $TransactedString. Il comando viene racchiuso tra parentesi graffe ({}) per renderlo un blocco di script. Il parametro UseTransaction è obbligatorio in questo comando.

Il quinto e il sesto comando utilizzano entrambi il metodo ToString dell'oggetto TransactedString per visualizzare il valore di TransactedString come stringa. Anche in questo caso, un comando fa parte della transazione, l'altro no.

Il quinto comando utilizza il metodo ToString per visualizzare il valore corrente della variabile $TransactedString. Poiché non fa parte della transazione, visualizza solo lo stato corrente della stringa.

Nel sesto comando viene utilizzato il cmdlet Use-Transaction per eseguire lo stesso comando all'interno della transazione. Poiché il comando fa parte della transazione, visualizza il valore corrente della stringa all'interno della transazione, in modo analogo a un'anteprima delle modifiche apportate alla transazione.

Il settimo comando utilizza il cmdlet Complete-Transaction per eseguire il commit della transazione.

Il comando finale utilizza il metodo ToString per visualizzare il valore risultante della variabile come stringa.

Esempio 2

C:\PS>start-transaction

C:\PS> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString

C:\PS> $transactedString.Append("Hello")
C:\PS> use-transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction

C:\PS> undo-transaction

C:\PS> $transactedString.ToString()
Hello

Descrizione
-----------
In questo esempio viene illustrato l'effetto del rollback di una transazione che include i comandi Use-Transaction. Come tutti i comandi in una transazione, quando viene eseguito il rollback della transazione, le modifiche sottoposte a transazione vengono ignorate e i dati restano invariati.

Il primo comando utilizza il cmdlet Start-Transaction per avviare una transazione.

Il secondo comando utilizza il comando New-Object per creare un oggetto TransactedString. Archivia l'oggetto nella variabile $TransactedString.

Nel terzo comando, che non fa parte della transazione, viene utilizzato il metodo Append per aggiungere "Hello" al valore di $TransactedString.

Nel quarto comando viene utilizzato il cmdlet Use-Transaction per eseguire un altro comando che utilizza il metodo Append all'interno della transazione. Il comando utilizza il metodo Append per aggiungere ", World" al valore di $TransactedString.

Il quinto comando utilizza il cmdlet Undo-Transaction per eseguire il rollback della transazione. Di conseguenza, vengono invertiti tutti i comandi eseguiti all'interno della transazione.

Il comando finale utilizza il metodo ToString per visualizzare il valore risultante di $TransactedString come stringa. I risultati illustrano che solo le modifiche apportate al di fuori della transazione sono state applicate all'oggetto.

Vedere anche

  • about_Transactions
  • Start-Transaction
  • Get-Transaction
  • Complete-Transaction
  • Undo-Transaction


Wait-Event

Attende finché non viene generato un determinato evento prima di continuare l'esecuzione.

Sintassi

Wait-Event [[-SourceIdentifier] <string>] [-Timeout <int>] [<CommonParameters>]

Descrizione

Il cmdlet Wait-Event sospende l'esecuzione di uno script o una funzione finché non viene generato un determinato evento. L'esecuzione viene ripresa quando viene rilevato l'evento. Per annullare l'attesa, premere CTRL+C.

Questa funzionalità fornisce un'alternativa al polling per un evento. Consente inoltre di determinare la risposta a un evento in due modi diversi: utilizzando il parametro Action della sottoscrizione dell'evento e attendendo un evento da restituire, per poi rispondere con un'azione.

Parametri

-SourceIdentifier <string>

Attende solo gli eventi con l'identificatore di origine specificato. Per impostazione predefinita, Wait-Events attende un evento qualsiasi.

Obbligatorio? | false
Posizione? | 1
Valore predefinito | All events
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Timeout <int>

Determina il tempo massimo, in secondi, per cui Wait-Event attende che l'evento si verifichi. Con l'impostazione predefinita, -1, l'attesa è illimitata. Il calcolo del tempo inizia quando si invia il comando Wait-Event.

Se il periodo di tempo specificato viene superato, l'attesa si conclude e viene visualizzato il prompt dei comandi anche se l'evento non è stato generato. Non viene visualizzato alcun messaggio di errore.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String
Output | System.String

Note

Gli eventi, le sottoscrizioni di eventi e la coda degli eventi esistono solo nella sessione corrente. Se si chiude la sessione corrente, la coda degli eventi viene eliminata e la sottoscrizione di eventi viene annullata.

Esempio 1

C:\PS>wait-event

Descrizione
-----------
Questo comando attende il prossimo evento generato.

Esempio 2

C:\PS>wait-event -sourceIdentifier "ProcessStarted"

Descrizione
-----------
Questo comando attende il prossimo evento generato che dispone di un identificatore di origine "ProcessStarted".

Esempio 3

C:\PS>$timer.Interval = 2000
C:\PS> $timer.Autoreset = $false
C:\PS> $timer.Enabled = $true; Wait-Event Timer.Elapsed

# After 2 seconds

EventIdentifier  : 12
Sender           : System.Timers.Timer
SourceEventArgs  : System.Timers.ElapsedEventArgs
SourceArgs       : {System.Timers.Timer, System.Timers.ElapsedEventArgs}
SourceIdentifier : Timer.Elapsed
TimeGenerated    : 6/10/2008 3:24:18 PM
MessageData      :
ForwardEvent     : False

Descrizione
-----------
Questo comando utilizza il cmdlet Wait-Event per attendere un evento di un timer impostato per 2000 millisecondi.

Esempio 4

C:\PS>wait-event -sourceIdentifier "ProcessStarted" -timeout 90

Descrizione
-----------
Questo comando attende per un massimo di 90 secondi il successivo evento generato che dispone di un identificatore di origine "ProcessStarted". Se il tempo specificato viene superato, l'attesa termina.

Vedere anche

  • Register-ObjectEvent
  • Register-EngineEvent
  • Register-WmiEvent
  • Unregister-Event
  • Get-Event
  • New-Event
  • Remove-Event
  • Wait-Event
  • Get-EventSubscriber


Wait-Job

Elimina il prompt dei comandi finché non vengono completati i processi in background di Windows PowerShell in esecuzione nella sessione.

Sintassi

Wait-Job [[-InstanceId] <Guid[]>] [-Any] [-Timeout <int>] [<CommonParameters>]

Wait-Job [-Job] <Job[]> [-Any] [-Timeout <int>] [<CommonParameters>]

Wait-Job [[-Name] <string[]>] [-Any] [-Timeout <int>] [<CommonParameters>]

Wait-Job [-Id] <Int32[]> [-Any] [-Timeout <int>] [<CommonParameters>]

Wait-Job [-State {<NotStarted> | <Running> | <Completed> | <Failed> | <Stopped> | <Blocked>}] [-Any] [-Timeout <int>] [<CommonParameters>]

Descrizione

Il cmdlet Wait-Job attende il completamento dei processi in background di Windows PowerShell prima di visualizzare il prompt dei comandi. È possibile attendere fino al completamento di ogni singolo processo in background o di tutti i processi e impostare un tempo di attesa massimo per il processo.

È possibile utilizzare Wait-Job per ottenere processi in background avviati tramite Start-Job o tramite il parametro AsJob di Invoke-Command.

Quando i comandi nel processo sono completi, Wait-Job visualizza il prompt dei comandi e restituisce un oggetto processo che può essere reindirizzato a un altro comando.

Parametri

-Any

Visualizza il prompt dei comandi e restituisce l'oggetto processo al termine di un processo. Per impostazione predefinita Wait-Job attende il completamento di tutti i processi specificati prima di visualizzare il prompt.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Id <Int32[]>

Attende i processi con gli ID specificati.

L'ID è un valore intero che identifica in modo univoco il processo all'interno della sessione corrente. È più facile da ricordare e digitare rispetto all'ID istanza, ma è univoco solo nella sessione corrente. È possibile digitare uno o più ID (separati da virgole). Per trovare l'ID di un processo, digitare "Get-Job" senza parametri.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-InstanceId <Guid[]>

Attende i processi con gli ID istanza specificati. Il valore predefinito è impostato su tutti i processi.

Un ID istanza è un GUID che identifica in modo univoco il processo nel computer. Per trovare l'ID istanza di un processo, utilizzare Get-Job.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Job <Job[]>

Attende i processi specificati. Immettere una variabile che contiene gli oggetti processo oppure un comando che consente di ottenere tali oggetti. È anche possibile utilizzare un operatore pipeline per inviare gli oggetti processo al cmdlet Wait-Job. Per impostazione predefinita, Wait-Job attende tutti i processi creati nella sessione corrente.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue, ByPropertyName)
Accettare caratteri jolly? | false

-Name <string[]>

Attende i processi con i nomi descrittivi specificati.

Obbligatorio? | false
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-State <JobState>

Attende i processi nello stato specificato. I valori validi sono NotStarted, Running, Completed, Stopped, Failed e Blocked.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Timeout <int>

Determina il tempo di attesa massimo per ogni processo in background, in secondi. Il valore predefinito -1 attende il completamento del processo, indipendentemente dalla durata dell'esecuzione. Il calcolo del tempo inizia quando si invia il comando Wait-Job e non il comando Start-Job.

Se il periodo di tempo viene superato, l'attesa si conclude e viene visualizzato il prompt dei comandi anche se il processo è ancora in esecuzione. Non viene visualizzato alcun messaggio di errore.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.RemotingJob È possibile reindirizzare un oggetto processo a Wait-Job.
Output | System.Management.Automation.RemotingJob Wait-Job restituisce oggetti processo che rappresentano i processi completati. Se l'attesa termina a causa del superamento del valore del parametro Timeout, Wait-Job non restituisce oggetti.

Esempio 1

C:\PS>get-job | wait-job

Descrizione
-----------
Questo comando attende il completamento di tutti i processi in background in esecuzione nella sessione.

Esempio 2

C:\PS>$s = new-pssession server01, server02, server03

C:\PS> invoke-command -session $s -scriptblock {start-job -name Date1 -scriptblock {get-date}}

C:\PS> $done = invoke-command -session $s -command {wait-job -name Date1}

C:\PS> $done.count
3

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il cmdlet Wait-Job con processi avviati nei computer remoti tramite il cmdlet Start-Job. I comandi Start-Job e Wait-Job vengono inviati al computer remoto tramite il cmdlet Invoke-Command.

In questo esempio viene utilizzato Wait-Job per determinare se un comando Get-Date in esecuzione come processo in background in tre computer diversi è stato completato.

Il primo comando crea una sessione di Windows PowerShell (PSSession) in ognuno dei tre computer remoti e la salva nella variabile $s.

Il secondo comando utilizza il cmdlet Invoke-Command per eseguire un comando Start-Job in ognuna delle tre sessioni in $s. Tutti i processi sono denominati Date1.

Il terzo comando utilizza il cmdlet Invoke-Command per eseguire un comando Wait-Job. Questo comando attende il completamento dei processi Date1 in ogni computer. Archivia l'insieme risultante di oggetti processo (matrice) nella variabile $done.

Il quarto comando utilizza la proprietà Count della matrice di oggetti processo nell variabile $done per determinare quanti processi sono stati completati.

Esempio 3

C:\PS>$s = new-pssession (get-content machines.txt)

C:\PS> $c = 'get-eventlog -log system | where {$_.EntryType -eq "error" -and $_.Source -eq "LSASRV"} | out-file errors.txt'

C:\PS> invoke-command -session $s -scriptblock {param($c)start-job -scriptblock {$c}} -ArgumentList $c

C:\PS> invoke-command -session $s -scriptblock {wait-job -any}

Descrizione
-----------
In questo esempio viene utilizzato il parametro Any di Wait-Job per determinare quando viene completato il primo di numerosi processi in background in esecuzione nella sessione corrente. Viene inoltre illustrato come utilizzare il cmdlet Wait-Job per attendere il completamento dei processi remoti.

Il primo comando crea una sessione PSSession in ognuno dei computer elencati nel file Machines.txt e archivia le sessioni nella variabile $s. Il comando utilizza il cmdlet Get-Content per ottenere il contenuto del file. Il comando Get-Content è racchiuso tra parentesi per garantire che venga eseguito prima del comando New-PSSession.

Il secondo comando archivia una stringa del comando Get-EventLog (tra virgolette) nella variabile $c.

Nel terzo comando viene utilizzato il cmdlet Invoke-Command per eseguire un comando Start-Job in ognuna delle sessioni di $s. Il comando Start-Job avvia un processo in background in cui viene eseguito il comando in $c.

Poiché la variabile $c si trova nel computer locale, il comando utilizza la parola chiave "param" per dichiarare le variabili locali nel comando e il parametro ArgumentList per fornire i valori per tali variabili.

Nel quarto comando viene utilizzato il cmdlet Invoke-Command per eseguire un comando Wait-Job nelle sessioni. Viene utilizzato il cmdlet Wait-Job per attendere il completamento del primo processo nei computer remoti.

Esempio 4

C:\PS>$s = new-pssession Server01, Server02, Server03

C:\PS> $jobs = invoke-command -session $s -scriptblock {start-job -script {get-date}}

C:\PS> $done = invoke-command -session $s -scriptblock {wait-job -timeout 30}

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il parametro Timeout di Wait-Job per impostare un tempo di attesa massimo per i processi in esecuzione in computer remoti.

Il primo comando crea una sessione PSSession in ognuno dei tre computer remoti (Server01, Server02 e Server03) e salva le sessioni nella variabile $s.

Nel secondo comando viene utilizzato il cmdlet Invoke-Command per eseguire un comando Start-Job in ognuna delle sessioni PSSession di $s. Il comando consente di salvare gli oggetti processo risultanti nella variabile $jobs.

Nel terzo comando viene utilizzato il cmdlet Invoke-Command per eseguire un comando Wait-Job in ognuna delle sessioni PSSession di $s. Il comando Wait-Job stabilisce se tutti i comandi sono stati completati entro 30 secondi. Utilizza il parametro Timeout con un valore di 30 (secondi) per stabilire il tempo di attesa massimo e salva i risultati del comando nella variabile $done.

In questo caso, dopo 30 secondi, solo il comando nel computer Server02 è stato completato. Wait-Job interrompe l'attesa, visualizza il prompt dei comandi e restituisce l'oggetto che rappresenta il processo completato.

La variabile $done contiene un oggetto processo che rappresenta il processo in esecuzione in Server02.

Esempio 5

C:\PS>wait-job -id 1,2,5 -any

Descrizione
-----------
Questo comando identifica tre processi tramite i relativi ID e attese il completamento di uno di essi. Al termine del primo processo, viene visualizzato il prompt dei comandi.

Esempio 6

C:\PS>wait-job -name DailyLog -timeout 120

Descrizione
-----------
Questo comando attende 120 secondi (due minuti) per il completamento del processo DailyLog. Se il processo non viene completato nei due minuti successivi, viene comunque visualizzato il prompt dei comandi e il processo continua ad essere eseguito in background.

Esempio 7

C:\PS>wait-job -name Job3

Descrizione
-----------
Questo comando Wait-Job utilizza il nome del processo per identificare il processo da attendere.

Esempio 8

C:\PS>C:\PS> $j = start-job -script {get-childitem *.ps1| where {$_lastwritetime -gt ((get-date) - (new-timespan -days 7))}}

C:\PS> $j | wait-job

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il cmdlet Wait-Job con processi avviati nel computer locale tramite il cmdlet Start-Job.

Questi comandi avviano un processo che ottiene i file script di Windows PowerShell aggiunti o aggiornati nell'ultima settimana.

Nel primo comando viene utilizzato il cmdlet Start-Job per avviare un processo in background nel computer locale. Il processo esegue un comando Get-ChildItem che ottiene tutti i file con estensione ".ps1" aggiunti o aggiornati nell'ultima settimana.

Il terzo comando utilizza il cmdlet Wait-Job per attendere il completamento del processo. Al termine del processo, viene visualizzato l'oggetto processo che contiene informazioni sul processo.

Esempio 9

C:\PS>$s = new-pssession Server01, Server02, Server03

C:\PS> $j = invoke-command -session $s -scriptblock {get-process} -asjob

C:\PS> $j | wait-job

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il cmdlet Wait-Job con processi avviati nei computer remoti tramite il parametro AsJob del cmdlet Invoke-Command. Quando si utilizza AsJob, il processo viene creato nel computer locale e i risultati vengono automaticamente restituiti in tale computer, anche se il processo viene eseguito nei computer remoti.

In questo esempio viene utilizzato Wait-Job per determinare se un comando Get-Process in esecuzione nelle sessioni in tre computer remoti è stato completato.

Il primo comando crea sessioni PSSession nei tre computer e le salva nella variabile $s.

Il secondo comando utilizza il cmdlet Invoke-Command per eseguire un comando Get-Process in ognuna delle tre sessioni PSSession in $s. Viene utilizzato il parametro AsJob per eseguire il comando in modo asincrono come processo in background. Il comando restituisce un oggetto processo, esattamente come i processi avviati tramite Start-Job e tale oggetto processo viene archiviato nella variabile $j.

Il terzo comando utilizza un operatore pipeline (|) per inviare l'oggetto processo in $j al cmdlet Wait-Job. Si noti che in questo caso non è richiesto un comando Invoke-Command, poiché il processo si trova nel computer locale.

Esempio 10

C:\PS>get-job

Id   Name     State      HasMoreData     Location             Command
--   ----     -----      -----------     --------             -------
1    Job1     Completed  True            localhost,server01.. get-service
4    Job4     Completed  True            localhost            dir | where

C:\PS> wait-job -id 1

Descrizione
-----------
Questo comando attende il processo con un valore ID pari a 1.

Vedere anche

  • about_Jobs
  • about_Job_Details
  • about_Remote_Jobs
  • Start-Job
  • Get-Job
  • Receive-Job
  • Stop-Job
  • Remove-Job
  • Invoke-Command


Wait-Process

Attende l'arresto dei processi prima di accettare altro input.

Sintassi

Wait-Process [-Id] <Int32[]> [[-Timeout] <int>] [<CommonParameters>]

Wait-Process -InputObject <Process[]> [[-Timeout] <int>] [<CommonParameters>]

Wait-Process [-Name] <string[]> [[-Timeout] <int>] [<CommonParameters>]

Descrizione

Il cmdlet Wait-Process attende l'arresto di uno o più processi in esecuzione prima di accettare input. Nella console di Windows PowerShell, questo cmdlet elimina il prompt dei comandi finché i processi non sono stati arrestati. È possibile specificare un processo in base al nome o all'ID processo (PID) oppure reindirizzare un oggetto processo a Wait-Process.

Wait-Process funziona solo in processi in esecuzione nel computer locale.

Parametri

-Id <Int32[]>

Specifica gli ID dei processi. Per specificare più ID, separarli tramite virgole Per trovare il PID di un processo, digitare "Get-Process". Il nome del parametro ("Id") è facoltativo.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-InputObject <Process[]>

Specifica i processi inviando oggetti processo. Immettere una variabile che contiene gli oggetti processo o digitare un comando o un'espressione che ottiene gli oggetti processo, ad esempio un comando Get-Process.

Obbligatorio? | true
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Name <string[]>

Specifica i nomi dei processi. Per specificare più nomi, separarli tramite virgole

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByPropertyName)
Accettare caratteri jolly? | false

-Timeout <int>

Determina il tempo massimo, in secondi, per cui Wait-Process attende l'arresto dei processi specificati. Quando scade questo intervallo, il comando visualizza un errore non fatale che elenca i processi ancora in esecuzione e termina l'attesa.

Obbligatorio? | false
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Diagnostics.Process È possibile reindirizzare un oggetto processo a Wait-Process.
Output | Nessuno Questo cmdlet non genera alcun output.

Note

Questo cmdlet utilizza il metodo WaitForExit della classe System.Diagnostics.Process. Per ulteriori informazioni su questo metodo, vedere Microsoft .NET Framework SDK.

Esempio 1

C:\PS>$nid = (get-process notepad).id

C:\PS> stop-process -id $nid

C:\PS> wait-process -id $nid

Descrizione
-----------
Questi comandi arrestano il processo Blocco note, quindi attendono l'arresto del processo prima di procedere con il comando successivo.

Nel primo comando viene utilizzato il cmdlet Get-Process per ottenere l'ID del processo Blocco Note. L'ID viene salvato nella variabile $nid.

Il secondo comando utilizza il cmdlet Stop-Process per arrestare il processo con l'ID salvato in $nid.

Il terzo comando utilizza il cmdlet Wait-Process per attendere l'arresto del processo Blocco Note. Viene utilizzato il parametro ID di Wait-Process per identificare il processo.

Esempio 2

C:\PS>$p = get-process notepad

C:\PS> wait-process -id $p.id

C:\PS> wait-process -name notepad

C:\PS> wait-process -inputobject $p

Descrizione
-----------
Questi comandi illustrano tre metodi diversi per specificare un processo al cmdlet Wait-Process. Nel primo comando è possibile ottenere un processo Blocco Note e salvarlo nella variabile $p.

Il secondo comando utilizza il parametro ID, il terzo il parametro Name e il quarto il parametro InputObject.

Questi comandi hanno gli stessi risultati pertanto sono intercambiabili.

Esempio 3

C:\PS>wait-process -name outlook, winword -timeout 30

Descrizione
-----------
Questo comando attende 30 secondi per l'arresto dei processi di Outlook e Winword. Se non vengono arrestati entrambi i processi, il cmdlet visualizza un errore non fatale e il prompt dei comandi.

Vedere anche

  • Get-Process
  • Start-Process
  • Stop-Process
  • Wait-Process
  • Debug-Process


Where-Object

Crea un filtro che determina gli oggetti che verranno passati attraverso una pipeline di comandi.

Sintassi

Where-Object [-FilterScript] <scriptblock> [-InputObject <psobject>] [<CommonParameters>]

Descrizione

Il cmdlet Where-Object seleziona oggetti dal set di oggetti che gli sono stati passati. Utilizza un blocco di script come filtro e lo valuta per ciascun oggetto. Se il risultato della valutazione è True, l'oggetto viene restituito. Se il risultato della valutazione non è True, l'oggetto viene ignorato.

Parametri

-FilterScript <scriptblock>

Specifica il blocco di script utilizzato per filtrare gli oggetti. Racchiudere il blocco di script tra parentesi graffe ({}).

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-InputObject <psobject>

Specifica gli oggetti da filtrare. È inoltre possibile reindirizzare gli oggetti a Where-Object.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare gli oggetti da filtrare a Where-Object.
Output |

Esempio 1

C:\PS>get-service | where-object {$_.Status -eq "Stopped"}

Descrizione
-----------
Tramite questo comando viene ottenuto un elenco di tutti i servizi attualmente arrestati. Il simbolo "$" rappresenta ciascun oggetto passato al cmdlet Where-Object.

Esempio 2

C:\PS>get-process | where-object {$_.workingset -gt 25000*1024}

Descrizione
-----------
Con questo comando vengono elencati i processi il cui working set è maggiore di 25.000 kilobyte (KB). Poiché il valore della proprietà WorkingSet è archiviato in byte, il valore 25.000 viene moltiplicato per 1.024.

Esempio 3

C:\PS>get-process | where-object { $_.ProcessName -match "^p.*" }

Descrizione
-----------
Con questo comando si ottengono i processi con una proprietà ProcessName che inizia con la lettera "p". L'operatore match consente di utilizzare espressioni regolari all'interno di una clausola Where.

Esempio 4

C:\PS>get-process -name svchost | where-object {$True}

Descrizione
-----------
Con questo comando vengono elencati tutti i processi denominati "svchost".

Il cmdlet Where-Object valuta il blocco di script, che in genere include un riferimento all'oggetto presente nella pipeline ($_), quindi esegue il cast dei risultati in un tipo booleano: True o False. Se il risultato è True, l'oggetto viene restituito. In caso contrario, viene ignorato.

In questo caso, poiché il blocco di script restituisce True, vengono restituiti tutti gli oggetti.


Write-Debug

Scrive un messaggio di debug nella console.

Sintassi

Write-Debug [-Message] <string> [<CommonParameters>]

Descrizione

Il cmdlet Write-Debug scrive messaggi di debug nella console di uno script o di un comando.

Per impostazione predefinita, i messaggi di debug non vengono visualizzati nella console, ma è possibile visualizzarli tramite il parametro Debug o la variabile $DebugPreference.

Parametri

-Message <string>

Specifica il messaggio di debug da inviare alla console.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un messaggio di debug a Write-Debug.
Output | Nessuno Write-Debug scrive solo nel flusso di debug. Non restituisce alcun output.

Esempio 1

C:\PS>Write-Debug "Cannot open file."

Descrizione
-----------
Questo comando scrive un messaggio di debug. Poiché il valore di $DebugPreference è "SilentlyContinue", il messaggio non viene visualizzato nella console.

Esempio 2

C:\PS>$DebugPreference

SilentlyContinue

C:\PS> Write-Debug "Cannot open file."
C:\PS>

C:\PS> Write-Debug "Cannot open file." -debug
DEBUG: Cannot open file.

Descrizione
-----------
In questo esempio viene illustrato come utilizzare il parametro comune Debug per eseguire l'override del valore della variabile $DebugPreference per un determinato comando.

Il primo comando visualizza il valore della variabile $DebugPreference, ovvero "SilentlyContinue", l'impostazione predefinita.

Il secondo comando scrive un messaggio di debug ma, a causa del valore di $DebugPreference, il messaggio non viene visualizzato.

Il terzo comando scrive un messaggio di debug. Utilizza il parametro comune Debug per eseguire l'override del valore di $DebugPreference e per visualizzare i messaggi di debug risultanti da questo comando.

Di conseguenza, anche se il valore di $DebugPreference è "SilentlyContinue", il messaggio di debug viene visualizzato.

Per ulteriori informazioni sul parametro comune Debug, vedere about_CommonParameters.

Esempio 3

C:\PS>$DebugPreference

SilentlyContinue

C:\PS> Write-Debug "Cannot open file."
C:\PS>

C:\PS> $DebugPreference = "Continue"

C:\PS> Write-Debug "Cannot open file."
DEBUG: Cannot open file.

Descrizione
-----------
In questo comando viene illustrato l'effetto della modifica del valore della variabile $DebugPreference nella visualizzazione dei messaggi di debug.

Il primo comando visualizza il valore della variabile $DebugPreference, ovvero "SilentlyContinue", l'impostazione predefinita.

Il secondo comando scrive un messaggio di debug, ma a causa del valore di $DebugPreference il messaggio non viene visualizzato.

Il terzo comando assegna il valore "Continue" alla variabile $DebugPreference.

Il quarto comando scrive un messaggio di debug visualizzato nella console.

Per ulteriori informazioni su $DebugPreference, vedere about_Preference_Variables.

Vedere anche

  • Write-Verbose
  • Write-Error
  • Write-Host
  • Write-Progress
  • Write-Output
  • Write-Warning


Write-Error

Scrive un oggetto nel flusso di errore.

Sintassi

Write-Error -ErrorRecord <ErrorRecord> [-CategoryActivity <string>] [-CategoryReason <string>] [-CategoryTargetName <string>] [-CategoryTargetType <string>] [-RecommendedAction <string>] [<CommonParameters>]

Write-Error [-Message] <string> [-Category {<NotSpecified> | <OpenError> | <CloseError> | <DeviceError> | <DeadlockDetected> | <InvalidArgument> | <InvalidData> | <InvalidOperation> | <InvalidResult> | <InvalidType> | <MetadataError> | <NotImplemented> | <NotInstalled> | <ObjectNotFound> | <OperationStopped> | <OperationTimeout> | <SyntaxError> | <ParserError> | <PermissionDenied> | <ResourceBusy> | <ResourceExists> | <ResourceUnavailable> | <ReadError> | <WriteError> | <FromStdErr> | <SecurityError>}] [-ErrorId <string>] [-TargetObject <Object>] [-CategoryActivity <string>] [-CategoryReason <string>] [-CategoryTargetName <string>] [-CategoryTargetType <string>] [-RecommendedAction <string>] [<CommonParameters>]

Write-Error -Exception <Exception> [-Category {<NotSpecified> | <OpenError> | <CloseError> | <DeviceError> | <DeadlockDetected> | <InvalidArgument> | <InvalidData> | <InvalidOperation> | <InvalidResult> | <InvalidType> | <MetadataError> | <NotImplemented> | <NotInstalled> | <ObjectNotFound> | <OperationStopped> | <OperationTimeout> | <SyntaxError> | <ParserError> | <PermissionDenied> | <ResourceBusy> | <ResourceExists> | <ResourceUnavailable> | <ReadError> | <WriteError> | <FromStdErr> | <SecurityError>}] [-ErrorId <string>] [-Message <string>] [-TargetObject <Object>] [-CategoryActivity <string>] [-CategoryReason <string>] [-CategoryTargetName <string>] [-CategoryTargetType <string>] [-RecommendedAction <string>] [<CommonParameters>]

Descrizione

Il cmdlet Write-Error scrive un errore nel flusso di errore di Windows PowerShell. Per impostazione predefinita, gli errori vengono inviati al programma host per essere visualizzati, insieme all'output.

È possibile scrivere un errore inviando una stringa del messaggio di errore, un oggetto ErrorRecord o un oggetto Exception. Utilizzare gli altri parametri di Write-Error per compilare il record di errore.

Parametri

-Category <ErrorCategory>

Specifica la categoria dell'errore. Il valore predefinito è NotSpecified.

Per informazioni sulle categorie di errori, vedere l'argomento relativo all'enumerazione ErrorCategory in MSDN (Microsoft Developer Network) Library all'indirizzo http://go.microsoft.com/fwlink/?LinkId=143600 (le informazioni potrebbero essere in lingua inglese).

Obbligatorio? | false
Posizione? | named
Valore predefinito | NotSpecified
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-CategoryActivity <string>

Descrive l'azione che ha provocato l'errore.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-CategoryReason <string>

Spiega la modalità e i motivi per cui l'attività ha provocato l'errore.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-CategoryTargetName <string>

Specifica il nome dell'oggetto elaborato quando si è verificato l'errore.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-CategoryTargetType <string>

Specifica il tipo .NET dell'oggetto elaborato quando si è verificato l'errore.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ErrorId <string>

Specifica una stringa ID per identificare l'errore. La stringa deve essere univoca per l'errore.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ErrorRecord <ErrorRecord>

Specifica un oggetto record di errore che include proprietà che descrivono l'errore.

Per ottenere un oggetto record di errore, utilizzare il cmdlet New-Object o ottenere un oggetto record di errore dalla matrice nella variabile automatica $Error.

Obbligatorio? | true
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Exception <Exception>

Specifica un'eccezione che rappresenta l'errore.

È possibile utilizzare un'eccezione anziché specificare il testo del messaggio o un record dell'eccezione.

Obbligatorio? | true
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Message <string>

Specifica il testo del messaggio dell'errore. Se il testo include spazi o caratteri speciali, è necessario racchiuderlo tra virgolette. È inoltre possibile reindirizzare una stringa di messaggio a Write-Error.

Obbligatorio? | true
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-RecommendedAction <string>

Descrive l'azione che l'utente deve intraprendere per risolvere o evitare l'errore.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-TargetObject <Object>

Specifica l'oggetto elaborato quando si è verificato l'errore. Immettere l'oggetto (ad esempio una stringa), una variabile che contiene l'oggetto o un comando che ottiene l'oggetto.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene un messaggio di errore a Write-Error.
Output | Oggetto Error Write-Error scrive solo nel flusso di errore. Non restituisce alcun oggetto.

Esempio 1

C:\PS>get-childitem | foreach-object { if ($_.gettype().tostring() -eq "Microsoft.Win32.RegistryKey") {write-error "Out-of-band object" -errorID B1 -targetobject $_ } else {$_ } }

Descrizione
-----------
Questo comando scrive un errore quando il cmdlet Get-ChildItem restituisce un oggetto Microsoft.Win32.RegistryKey, ad esempio gli oggetti nelle unità HKLM: o HKCU del provider Registry di Windows PowerShell.

Esempio 2

C:\PS>write-error  "Access denied."

Descrizione
-----------
Questo comando scrive un errore "Accesso negato". Il comando utilizza il parametro Message per specificare il messaggio, ma omette il nome del parametro Message facoltativo.

Esempio 3

C:\PS>write-error -message "Error: Too many input values." -category InvalidArgument

Descrizione
-----------
Questo comando scrive un errore e specifica una categoria di errore.

Vedere anche

  • Write-Debug
  • Write-Verbose
  • Write-Output
  • Write-Host
  • Write-Progress
  • Write-Warning


Write-EventLog

Scrive un evento in un registro eventi.

Sintassi

Write-EventLog [-LogName] <string> [-Source] <string> [-EventID] <int> [-Message] <string> [[-EntryType] {<Error> | <Warning> | <Information> | <SuccessAudit> | <FailureAudit>}] [-Category <Int16>] [-ComputerName <string>] [-RawData <Byte[]>] [<CommonParameters>]

Descrizione

Il cmdlet Write-EventLog scrive un evento in un registro eventi.

Per scrivere un evento in un registro eventi, è necessario che quest'ultimo esista nel computer e che l'origine venga registrata per il registro eventi.

I cmdlet che contengono il sostantivo EventLog (cmdlet EventLog) funzionano solo su registri eventi classici. Per ottenere eventi da registri che utilizzano la tecnologia Registro eventi di Windows in Windows Vista e nelle versioni successive di Windows, utilizzare Get-WinEvent.

Parametri

-Category <Int16>

Specifica una categoria di attività per l'evento. Immettere un valore intero associato alle stringhe nel file di messaggi delle categorie per il registro eventi.

Obbligatorio? | false
Posizione? | named
Valore predefinito | 1
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ComputerName <string>

Specifica un computer remoto. Il valore predefinito è il computer locale.

Digitare il nome NetBIOS, un indirizzo IP (Internet Protocol) o un nome di dominio completo di un computer remoto.

Questo parametro non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName di Get-EventLog anche se il computer non è configurato per l'esecuzione di comandi remoti.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-EntryType <EventLogEntryType>

Specifica il tipo di voce dell'evento. I valori validi sono Error, Warning, Information, SuccessAudit e FailureAudit. Il valore predefinito è Information.

Per una descrizione dei valori, vedere System.Diagnostics.EventLogEntryType in MSDN (Microsoft Developer Network) Library all'indirizzo http://go.microsoft.com/fwlink/?LinkId=143599 (le informazioni potrebbero essere in lingua inglese).

Obbligatorio? | false
Posizione? | 4
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-EventID <int>

Specifica l'identificatore evento. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 3
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-LogName <string>

Specifica il nome del registro in cui viene scritto l'evento. Immettere il nome del registro (il valore della proprietà Log, non LogDisplayName). Non è consentito l'utilizzo di caratteri jolly. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Message <string>

Specifica il messaggio dell'evento. Questo parametro è obbligatorio.

Obbligatorio? | true
Posizione? | 5
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-RawData <Byte[]>

Specifica i dati binari associati all'evento, in byte.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Source <string>

Specifica l'origine evento che è in genere il nome dell'applicazione che scrive l'evento nel registro.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | System.Diagnostics.EventLogEntry Write-EventLog restituisce oggetti che rappresentano gli eventi nei registri.

Note

Per utilizzare Write-EventLog in Windows Vista e nelle versioni successive di Windows, avviare Windows PowerShell con l'opzione "Esegui come amministratore".

Esempio 1

C:\PS>write-eventlog -logname Application -source MyApp -eventID 3001 -entrytype Information -message "MyApp added a user-requested feature to the display." -category 1 -rawdata 10,20

Descrizione
-----------
In questo comando viene scritto un evento dall'origine MyApp nel registro eventi dell'applicazione.

Esempio 2

C:\PS>write-eventlog -computername Server01 -logname Application -source MyApp -eventID 3001 -message "MyApp added a user-requested feature to the display."

Descrizione
-----------
In questo comando viene scritto un evento dall'origine MyApp nel registro eventi dell'applicazione nel computer remoto Server01.

Vedere anche

  • Clear-EventLog
  • Get-EventLog
  • Limit-EventLog
  • New-EventLog
  • Remove-EventLog
  • Show-EventLog
  • Write-EventLog
  • Get-WinEvent


Write-Host

Scrive l'output personalizzato in un host.

Sintassi

Write-Host [[-Object] <Object>] [-BackgroundColor {<Black> | <DarkBlue> | <DarkGreen> | <DarkCyan> | <DarkRed> | <DarkMagenta> | <DarkYellow> | <Gray> | <DarkGray> | <Blue> | <Green> | <Cyan> | <Red> | <Magenta> | <Yellow> | <White>}] [-ForegroundColor {<Black> | <DarkBlue> | <DarkGreen> | <DarkCyan> | <DarkRed> | <DarkMagenta> | <DarkYellow> | <Gray> | <DarkGray> | <Blue> | <Green> | <Cyan> | <Red> | <Magenta> | <Yellow> | <White>}] [-NoNewline] [-Separator <Object>] [<CommonParameters>]

Descrizione

Il cmdlet Write-Host personalizza l'output. È possibile specificare il colore del testo utilizzando il parametro ForegroundColor, nonché il colore di sfondo utilizzando il parametro BackgroundColor. Il parametro Separator consente di specificare una stringa da utilizzare per separare gli oggetti visualizzati. Il risultato dipende dal programma che ospita Windows PowerShell.

Parametri

-BackgroundColor <ConsoleColor>

Specifica il colore di sfondo. Non esiste alcuna impostazione predefinita.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ForegroundColor <ConsoleColor>

Specifica il colore del testo. Non esiste alcuna impostazione predefinita.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-NoNewline

Specifica che il contenuto visualizzato nella console non termina con un carattere di avanzamento riga.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Object <Object>

Oggetti da visualizzare nella console.

Obbligatorio? | false
Posizione? | 1
Valore predefinito | nessuno
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

-Separator <Object>

Stringa da utilizzare per separare gli oggetti visualizzati nella console.

Obbligatorio? | false
Posizione? | named
Valore predefinito | nessuno
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Object È possibile reindirizzare gli oggetti da scrivere all'host.
Output | Nessuno Write-Host invia gli oggetti all'host. Non restituisce alcun oggetto. Tuttavia, l'host potrebbe visualizzare gli oggetti inviati da Write-Host.

Esempio 1

C:\PS>write-host "no newline test " -nonewline

no newline test C:\PS>

Descrizione
-----------
Questo comando visualizza l'input nella console, tuttavia per la presenza del parametro NoNewline l'output sarà seguito direttamente dal prompt.

Esempio 2

C:\PS>write-host (2,4,6,8,10,12) -Separator ", +2= "

2, +2= 4, +2= 6, +2= 8, +2= 10, +2= 12

Descrizione
-----------
Tramite questo comando verranno visualizzati i numeri pari compresi tra 2 e 12. Verrà utilizzato il parametro Separator per aggiungere la stringa , +2= (virgola, spazio, +, 2, =, spazio).

Esempio 3

C:\PS>write-host (2,4,6,8,10,12) -Separator ", -> " -foregroundcolor DarkGreen -backgroundcolor white

Descrizione
-----------
Questo comando visualizza i numeri pari compresi tra 2 e 12. Utilizza il parametro ForegroundColor per visualizzare il testo in verde scuro e il parametro BackgroundColor per visualizzare uno sfondo bianco.

Esempio 4

C:\PS>write-host "Red on white text." -ForegroundColor red -BackgroundColor white

Red on white text.

Descrizione
-----------
Questo comando visualizza la stringa "Testo rosso su bianco". Il testo è rosso, come definito dal parametro ForegroundColor. Lo sfondo è bianco, come definito dal parametro BackgroundColor.

Vedere anche

  • Write-Verbose
  • Write-Error
  • Write-Progress
  • Write-Debug
  • Write-Output
  • Write-Warning
  • Out-Host


Write-Output

Invia gli oggetti specificati al comando successivo nella pipeline. Se si tratta dell'ultimo comando nella pipeline, gli oggetti vengono visualizzati nella console.

Sintassi

Write-Output [-InputObject] <PSObject[]> [<CommonParameters>]

Descrizione

Il cmdlet Write-Output invia l'oggetto specificato al comando successivo lungo la pipeline. Se si tratta dell'ultimo comando nella pipeline, l'oggetto viene visualizzato nella console.

Write-Output invia oggetti lungo la pipeline primaria, anche nota come "flusso di output" o "pipeline delle operazioni eseguite". Per inviare oggetti errore lungo la pipeline degli errori, utilizzare Write-Error.

Questo cmdlet viene in genere utilizzato negli script per visualizzare stringhe e altri oggetti nella console. Tuttavia, poiché il comportamento predefinito è la visualizzazione degli oggetti alla fine di una pipeline, in genere non è necessario utilizzare il cmdlet. Ad esempio, "Get-Process | write-output" equivale a "get-process."

Parametri

-InputObject <PSObject[]>

Specifica gli oggetti da inviare lungo la pipeline. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.Management.Automation.PSObject È possibile reindirizzare oggetti a Write-Output.
Output | System.Management.Automation.PSObject Write-Output restituisce gli oggetti inviati come input.

Esempio 1

C:\PS>$p = get-process

c:\PS> write-output $p

c:\PS> $p

Descrizione
-----------
Questi comandi ottengono oggetti che rappresentano i processi in esecuzione nel computer e li visualizzano nella console.

Esempio 2

C:\PS>write-output "test output" | get-member

Descrizione
-----------
Questo comando reindirizza la stringa "test output" al cmdlet Get-Member che visualizzerà i membri della classe String, dimostrando che la stringa è stata passata attraverso la pipeline.

Vedere anche

  • Write-Debug
  • Write-Verbose
  • Write-Error
  • Write-Progress
  • Write-Host
  • Write-Warning
  • Tee-Object


Write-Progress

Visualizza un indicatore di stato in una finestra dei comandi di Windows PowerShell.

Sintassi

Write-Progress [-Activity] <string> [-Status] <string> [[-Id] <int>] [-Completed] [-CurrentOperation <string>] [-ParentId <int>] [-PercentComplete <int>] [-SecondsRemaining <int>] [-SourceId <int>] [<CommonParameters>]

Descrizione

Il cmdlet Write-Progress visualizza un indicatore di stato in una finestra dei comandi di Windows PowerShell che rappresenta lo stato di uno script o un comando in esecuzione. È possibile selezionare gli indicatori riflessi dalla barra e il testo visualizzato sopra e sotto l'indicatore di stato.

Parametri

-Activity <string>

Specifica la prima riga di testo nell'intestazione sopra la barra di stato. Questo testo descrive l'attività di cui viene segnalato lo stato di avanzamento.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Completed

Indica se l'indicatore di stato è visibile. Se viene omesso questo parametro, Write-Progress visualizza informazione sullo stato di avanzamento.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-CurrentOperation <string>

Specifica la riga di testo sotto l'indicatore di stato. Questo testo descrive l'operazione attualmente in corso.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Id <int>

Specifica un ID che distingue ciascun indicatore di stato dagli altri. Utilizzare questo parametro quando si crea più di un indicatore di stato in un solo comando. Se gli indicatori di stato non dispongono di ID diversi, vengono sovrapposti anziché essere visualizzati in serie.

Obbligatorio? | false
Posizione? | 3
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-ParentId <int>

Identifica l'attività padre dell'attività corrente. Utilizzare il valore -1 se per l'attività corrente non è disponibile un'attività padre.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-PercentComplete <int>

Specifica la percentuale di attività completata. Utilizzare il valore -1 se la percentuale di completamento è sconosciuta o non applicabile.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SecondsRemaining <int>

Specifica il numero previsto di secondi che mancano al completamento dell'attività. Utilizzare il valore -1 se il numero di secondi rimanenti è sconosciuto o non applicabile.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-SourceId <int>

Identifica l'origine del record.

Obbligatorio? | false
Posizione? | named
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

-Status <string>

Specifica la seconda riga di testo nell'intestazione sopra la barra di stato. Questo testo descrive lo stato corrente dell'attività.

Obbligatorio? | true
Posizione? | 2
Valore predefinito |
Accettare input da pipeline? | false
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | Nessuno Non è possibile reindirizzare l'input a questo cmdlet.
Output | Nessuno Write-Progress non genera alcun output.

Note

Se non viene visualizzato l'indicatore di stato, verificare il valore della variabile $ProgressPreference. Se il valore è impostato su SilentlyContinue, l'indicatore di stato non viene visualizzato. Per ulteriori informazioni sulle preferenze di Windows PowerShell, vedere about_Preference_Variables.

I parametri del cmdlet corrispondono alle proprietà della classe ProgressRecord (System.Management.Automation.ProgressRecord). Per ulteriori informazione, vedere l'argomento ProgressRecord in Windows PowerShell Software Development Kit (SDK).

Esempio 1

C:\PS>for ($i = 1; $i -lt 101; $i++ )
{for ($j=0;$j -lt 10000;$j++) {} write-progress -activity "Search in Progress" -status "% Complete:" -percentcomplete $i;}

Descrizione
-----------
In questo comando verrà visualizzato lo stato di avanzamento dei due cicli For nidificati. Il conteggio del primo ciclo arriva a 100. Per ogni incremento di tale ciclo, il conteggio del secondo ciclo arriva a 10000.
Il comando Write-Progress include un'intestazione di barra di stato ("activity"), una riga dello stato e la variabile $i (contatore nel ciclo For), che indica la relativa completezza dell'attività.

Esempio 2

C:\PS>for($i = 1; $i -lt 101; $i++ ) {write-progress -activity Updating -status progress-> -percentcomplete $i -currentOperation OuterLoop} for($i = 1; $i -lt 101; $i++ ) {write-progress -activity Updating -status progress -percentcomplete $i -id  1 -currentOperation InnerLoop}

Updating
   progress ->
   [oooooooooooooooooo                                                   ]

   OutsideLoop

Updating
  progress
  [oooooooooooooooooo                                                    ]

  InnerLoop

Descrizione
-----------
In questo esempio viene visualizzato lo stato di avanzamento di due cicli For nidificati, ciascuno dei quali è rappresentato da un indicatore di stato.

Il comando Write-Progress per il secondo indicatore di stato include il parametro Id che lo distingue dal primo indicatore di stato. Senza il parametro Id, gli indicatori di stato verrebbero sovrapposti l'uno all'altro anziché essere visualizzati uno sotto l'altro.

Esempio 3

C:\PS>$events = get-eventlog -logname system

C:\PS> $events | foreach-object -begin {clear-host;$i=0;$out=""} `
-process {if($_.message -like "*bios*") {$out=$out + $_.Message};
$i = $i+1;`
write-progress -activity "Searching Events" `
-status "Progress:" -percentcomplete ($i/$events.count*100)} `
-end {$out}

Descrizione
-----------
Questo comando visualizza lo stato di avanzamento di un comando per trovare la stringa "bios" nel registro eventi del sistema.

Nella prima riga del comando, il cmdlet Get-EventLog ottiene gli eventi nel registro di sistema e li archivia nella variabile $events.

Nella seconda riga gli eventi verranno reindirizzati al cmdlet ForEach-Object. Prima dell'inizio dell'elaborazione, verrà utilizzato il cmdlet Clear-Host per cancellare il contenuto dello schermo, la variabile contatore $i verrà impostata su zero e la variabile di output $out verrà impostata su una stringa vuota.

Nella terza riga che è il blocco di script Process del cmdlet ForEach-Object, il cmdlet cerca "bios" nella proprietà del messaggio di ciascun oggetto in ingresso. Se viene trovata la stringa, il messaggio viene aggiunto a $out.

Nella quarta riga, la variabile contatore $i verrà incrementata in modo da registrare che è stato esaminato un altro evento.

Nella quinta riga viene utilizzato il cmdlet Write-Progress con i valori per i campi di testo Activity e Status che creano rispettivamente la prima e la seconda riga dell'intestazione dell'indicatore di stato. Il valore del parametro PercentComplete viene calcolato dividendo il numero di eventi elaborati ($i) per il numero complessivo di eventi recuperati ($events.count) e moltiplicando quindi tale risultato per 100.

Nell'ultima riga, il parametro End del cmdlet ForEach-Object viene utilizzato per visualizzare i messaggi archiviati nella variabile $out.

Vedere anche

  • Write-Verbose
  • Write-Error
  • Write-Host
  • Write-Debug
  • Write-Output
  • Write-Warning


Write-Verbose

Scrive il testo nel flusso di messaggi dettagliati.

Sintassi

Write-Verbose [-Message] <string> [<CommonParameters>]

Descrizione

Il cmdlet Write-Verbose scrive il testo nel flusso di messaggi verbose in Windows PowerShell. In genere, il flusso di messaggi verbose viene utilizzato per fornire le informazioni sull'elaborazione di comandi utilizzate per il debug di un comando.

Per impostazione predefinita, il flusso di messaggi dettagliati non viene visualizzato, ma è possibile visualizzarlo modificando il valore della variabile $VerbosePreference o utilizzando il parametro comune Verbose in qualsiasi comando.

Parametri

-Message <string>

Specifica il messaggio da visualizzare. Questo parametro è obbligatorio. È inoltre possibile reindirizzare una stringa di messaggio a Verbose-Message.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene il messaggio a Write-Verbose.
Output | Nessuno Write-Verbose scrive il testo nel flusso di messaggi dettagliati.

Esempio 1

C:\PS>Write-Verbose -message "Searching the Application Event Log."

C:\PS> Write-Verbose -message "Searching the Application Event Log." -verbose

Descrizione
-----------
In questi comandi viene utilizzato il cmdlet Write-Verbose per visualizzare un messaggio di stato. Per impostazione predefinita, il messaggio non viene visualizzato.

Nel secondo comando viene utilizzato il parametro comune Verbose, che consente di visualizzare qualsiasi messaggio dettagliato indipendentemente dal valore della variabile $VerbosePreference.

Esempio 2

C:\PS>$VerbosePreference = "Continue"

C:\PS> Write-Verbose "Copying file $filename"

Descrizione
-----------
In questi comandi viene utilizzato il cmdlet Write-Verbose per visualizzare un messaggio di stato. Per impostazione predefinita, il messaggio non viene visualizzato.

Il primo comando assegna il valore "Continue" alla variabile di preferenza $VerbosePreference. Il valore predefinito, "SilentlyContinue", elimina i messaggi dettagliati.

Il secondo comando scrive un messaggio dettagliato.

Vedere anche

  • Write-Error
  • Write-Warning
  • about_Preference_Variables


Write-Warning

Scrive un messaggio di avviso.

Sintassi

Write-Warning [-Message] <string> [<CommonParameters>]

Descrizione

Il cmdlet Write-Warning scrive un messaggio di avviso nell'host di Windows PowerShell. La risposta all'avviso dipende dal valore della variabile $WarningPreference dell'utente e dall'utilizzo del parametro comune WarningAction.

Parametri

-Message <string>

Specifica il messaggio di avviso.

Obbligatorio? | true
Posizione? | 1
Valore predefinito |
Accettare input da pipeline? | true (ByValue)
Accettare caratteri jolly? | false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input | System.String È possibile reindirizzare una stringa che contiene l'avviso a Write-Warning.
Output | Nessuno Write-Warning scrive solo nel flusso di avviso. Non genera nessun altro output.

Note

Il valore predefinito per la variabile $WarningPreference è "Continue" che consente di visualizzare l'avviso e continuare l'esecuzione del comando. Per determinare i valori validi per una variabile di preferenza come $WarningPreference, impostarla su una stringa di caratteri casuali, ad esempio "abc". Nel messaggio di errore risultante verranno elencati i valori validi.

Esempio 1

C:\PS>write-warning "This is only a test warning."

Descrizione
-----------
In questo comando viene visualizzato il messaggio "WARNING: si tratta solo di un messaggio di verifica".

Esempio 2

C:\PS>$w = "This is only a test warning."

C:\PS> $w | write-warning

Descrizione
-----------
In questo esempio viene illustrato che è possibile utilizzare un operatore pipeline (|) per inviare una stringa a Write-Warning. È possibile salvare la stringa in una variabile, come illustrato in questo comando, oppure reindirizzare la stringa direttamente a Write-Warning.

Esempio 3

C:\PS>$warningpreference

Continue

C:\PS> write-warning "This is only a test warning."
This is only a test warning.

C:\PS> $warningpreference = "SilentlyContinue"

C:\PS> write-warning "This is only a test warning."
C:\PS>

C:\PS> $warningpreference = "Stop"

C:\PS> write-warning "This is only a test warning."
WARNING: This is only a test message.
Write-Warning : Command execution stopped because the shell variable "WarningPreference" is set to Stop.
At line:1 char:14
+ write-warning <<<<  "This is only a test message."

Descrizione
-----------
In questo esempio viene illustrato l'effetto del valore della variabile $WarningPreference su un comando Write-Warning.

Nel primo comando viene visualizzato il valore predefinito della variabile $WarningPreference, ovvero "Continue". Di conseguenza, quando si scrive un avviso, il messaggio di avviso viene visualizzato e l'esecuzione continua.

Quando si modifica il valore della variabile $WarningPreference, l'effetto del comando Write-Warning viene nuovamente modificato. Un valore di "SilentlyContinue" elimina l'avviso. Il valore "Stop" visualizza l'avviso, quindi arresta l'esecuzione del comando.

Per ulteriori informazioni sulla variabile $WarningPreference, vedere about_Preference_Variables.

Esempio 4

C:\PS>write-warning "This is only a test warning." -warningaction Inquire

WARNING: This is only a test warning.

Confirm
Continue with this operation?
[Y] Yes  [A] Yes to All  [H] Halt Command  [S] Suspend  [?] Help (default is "Y"):

Descrizione
-----------
In questo esempio viene illustrato l'effetto del parametro comune WarningAction in un comando Write-Warning. È possibile utilizzare il parametro comune WarningAction con qualsiasi cmdlet per determinare la risposta di Windows PowerShell agli avvisi risultanti da tale comando. Il parametro comune WarningAction esegue l'override del valore di $WarningPreference solo per quel determinato comando.

Questo comando utilizza il cmdlet Write-Warning per visualizzare un avviso. Il parametro comune WarningAction con un valore di "Inquire" indica al sistema di richiedere la conferma dell'utente quando il comando visualizza un avviso.

Per ulteriori informazioni sul parametro comune WarningAction, vedere about_CommonParameters.

Vedere anche

  • about_Preference_Variables
  • about_Commonparameters
  • Write-Debug
  • Write-Error
  • Write-Host
  • Write-Output
  • Write-Progress
  • Write-Verbose


Argomenti della Guida relativi ai provider di Windows PowerShell

I provider di Windows PowerShell sono programmi .NET che rendono disponibili in Windows PowerShell i dati di archivi dati specializzati così da poterli visualizzare e gestire facilmente. I dati esposti da un provider vengono visualizzati in una unità simile a un file system. Per ulteriori informazioni, vedere about_Providers.

In questa sezione sono contenuti gli argomenti della Guida per i provider installati con Windows PowerShell.

Provider | Descrizione
Alias Provider | Consente di accedere agli alias di Windows PowerShell e ai relativi valori.
Certificate Provider | Consente di accedere in sola lettura agli archivi certificati e ai certificati X509.
Environment Provider | Consente di accedere alle variabili di ambiente di Windows.
FileSystem Provider | Consente di accedere a file e directory.
Function Provider | Consente di accedere alle funzioni definite in Windows PowerShell.
Registry Provider | Consente di accedere alle chiavi e ai valori del Registro di sistema.
Variable Provider | Consente di accedere alle variabili di Windows PowerShell e ai relativi valori.
WSMan Provider | Consente di accedere alle informazioni di configurazione WSMAN.

Vedere anche

  • Argomenti della Guida relativi ai cmdlet di Windows PowerShell
  • Argomenti della Guida "About" di Windows PowerShell
  • Guida introduttiva a Windows PowerShell
  • Guida della console PowerShell.exe
  • Windows PowerShell SDK


Alias Provider

Nome provider

Alias

Unità

Alias:

Descrizione breve

Consente di accedere agli alias di Windows PowerShell e ai valori da essi rappresentati.

Descrizione dettagliata

Il provider Alias di Windows PowerShell consente di ottenere, aggiungere, modificare, cancellare ed eliminare alias in Windows PowerShell.

Un alias è un nome alternativo per un cmdlet, una funzione o un file eseguibile. Windows PowerShell include un set di alias predefiniti. È inoltre possibile aggiungere propri alias alla sessione corrente e al profilo di Windows PowerShell.

Il provider Alias è uno spazio dei nomi flat che contiene solo gli oggetti alias. Gli alias non contengono elementi figlio.

Ogni alias è un'istanza della classe System.Management.Automation.AliasInfo.

Il provider Alias espone il proprio archivio dati nell'unità Alias:. Per utilizzare gli alias, è possibile modificare il percorso dell'unità Alias: tramite il comando seguente:

Set-Location alias:

In alternativa, è possibile utilizzarli da qualsiasi altra unità di Windows PowerShell. Per fare riferimento a un alias da un altro percorso, utilizzare il nome di unità Alias: nel percorso.

In Windows PowerShell è incluso un set di cmdlet progettati per visualizzare e modificare gli alias:

Export-Alias

Get-Alias

Import-Alias

New-Alias

Set-Alias

Quando si utilizzano tali cmdlet, non è necessario specificare l'unità Alias: nel nome.

Il provider Alias supporta tutti i cmdlet che contengono il sostantivo Item, ad eccezione dei cmdlet Invoke-Item. Supporta inoltre i cmdlet Get-Content e Set-Content. Il provider Alias non supporta i cmdlet che contengono il sostantivo ItemProperty. Inoltre, il provider Alias non supporta il parametro Filter in alcun cmdlet.

Tutte le modifiche apportate agli alias influiscono solo sulla sessione corrente. Per salvare le modifiche, aggiungerle al profilo di Windows PowerShell. In alternativa, utilizzare i cmdlet Export-Alias e Import-Alias.

Esempi

Accesso all'unità Alias:

-------------------------- ESEMPIO 1 --------------------------

Con questo comando viene utilizzata l'unità Alias: come percorso. È possibile utilizzare questo comando da qualsiasi unità in Windows PowerShell. Per tornare a un'unità del file system, digitare il nome dell'unità. Digitare, ad esempio, set-location c:".

set-location alias:

Recupero di alias

-------------------------- ESEMPIO 1 --------------------------

Con questo comando si ottiene un elenco di tutti gli alias nella sessione corrente. È possibile utilizzare questo comando in qualsiasi unità di Windows PowerShell.

get-item -path alias:

-------------------------- ESEMPIO 2 --------------------------

Tramite questo comando viene ottenuto l'alias "ls". Poiché include il percorso, è possibile utilizzarlo in qualsiasi unità di Windows PowerShell.

get-item -path alias:ls

Se ci si trova nell'unità Alias:, è possibile omettere il nome di tale unità dal percorso.

-------------------------- ESEMPIO 3 --------------------------

Con questo comando si ottiene un elenco degli alias associati al cmdlet Get-ChildItem. Viene utilizzata la proprietà Definition in cui viene archiviato il nome del cmdlet.

get-item -path alias:* | where-object {$_.Definition -eq "Get-Childitem"}

Se l'elemento indicato in forma di alias è un file eseguibile, la proprietà Definition contiene il percorso completo del file.

-------------------------- ESEMPIO 4 --------------------------

Con questo comando si ottiene l'elenco di tutti gli alias quando il percorso corrente è costituito dall'unità Alias:. Viene utilizzato un carattere jolly (*) per indicare tutto il contenuto del percorso corrente.

get-item -path *

Nell'unità Alias:, un punto (.), che indica il percorso corrente, e un carattere jolly (*), che indica tutti gli elementi presenti nel percorso corrente, hanno lo stesso effetto. "get-item -path ." e "get-item *", ad esempio, produrranno lo stesso risultato.

Creazione di un nuovo alias

-------------------------- ESEMPIO 1 --------------------------

Con questo comando viene creato l'alias "serv" per il cmdlet Get-Service. Poiché il percorso corrente si trova nell'unità Alias:, il valore del parametro Path è un punto (.). Il punto (.) rappresenta il percorso corrente.

Tramite questo comando viene inoltre utilizzato il parametro dinamico Options per impostare le opzioni AllScope e Constant per l'alias. Il parametro Options è disponibile nel cmdlet New-Item solo quando ci si trova nell'unità Alias:.

new-item -path . -name serv -value Get-Service -Options "AllScope,Constant"

Se ci si trova nell'unità Alias:, è possibile omettere il nome di tale unità dal percorso.

-------------------------- ESEMPIO 2 --------------------------

È possibile creare un alias per qualsiasi elemento che richiama un comando. Tramite questo comando viene creato l'alias "np" per Notepad.exe.

new-item -path alias:np -value c:\windows\notepad.exe

-------------------------- ESEMPIO 3 --------------------------

È possibile creare un alias per qualsiasi funzione. È possibile utilizzare questa funzionalità per creare un alias contenente un cmdlet e i relativi parametri.

Con il primo comando viene creata la funzione CD32 che imposta la directory System32 come directory corrente. Con il secondo comando viene creato l'alias "go" per la funzione CD32. Il punto e virgola (;) rappresenta il separatore di comandi.

Al termine dell'esecuzione del comando, sarà possibile utilizzare "CD32" o "go" per richiamare la funzione.

function CD32 {set-location -path c:\windows\system32} set-item -path alias:go -value CD32

Visualizzazione delle proprietà e dei metodi degli alias

-------------------------- ESEMPIO 1 --------------------------

In questo comando viene utilizzato il cmdlet Get-Item per ottenere tutti gli alias. L'operatore pipeline (|) invia i risultati al cmdlet Get-Member, che visualizza i metodi e le proprietà dell'oggetto.

get-item -path alias:* | get-member

Quando si reindirizza una raccolta di oggetti a Get-Member, ad esempio la raccolta di alias nell'unità Alias:, con Get-Member viene valutato ogni oggetto nella raccolta separatamente. Con Get-Member vengono quindi restituite le informazioni su ciascun tipo di oggetto trovato. Se tutti gli oggetti appartengono allo stesso tipo, vengono restituite informazioni sul singolo tipo di oggetto. In tal caso, tutti gli alias saranno oggetti AliasInfo. Per ottenere informazioni sulla raccolta di oggetti AliasInfo, utilizzare il parametro InputObject di Get-Member. Utilizzare, ad esempio, il comando seguente: Get-Member -InputObject (Get-Item alias:*) Quando si utilizza InputObject, con Get-Member viene valutata la raccolta e non gli oggetti in essa contenuti.

-------------------------- ESEMPIO 2 --------------------------

Tramite questo comando vengono elencati i valori delle proprietà dell'alias "dir". Viene utilizzato il cmdlet Get-Item per ottenere un oggetto che rappresenta l'alias "dir". I risultati vengono inviati al comando Format-List dall'operatore pipeline (|). Con il comando Format-List viene utilizzato il parametro Property con un carattere jolly (*) per formattare e visualizzare i valori di tutte le proprietà dell'alias "dir".

get-item alias:dir | format-list -property *

Modifica delle proprietà di un alias

-------------------------- ESEMPIO 1 --------------------------

È possibile utilizzare il cmdlet Set-Item con il parametro dinamico Options per modificare il valore della proprietà Options di un alias.

Tramite questo comando vengono impostate le opzioni AllScope e ReadOnly per l'alias "dir". Viene utilizzato il parametro dinamico Options del cmdlet Set-Item. Il parametro Options è disponibile in Set-Item solo se utilizzato con il provider Alias o Function.

set-item -path alias:dir -options "AllScope,ReadOnly"

-------------------------- ESEMPIO 2 --------------------------

In questo comando viene utilizzato il cmdlet Set-Item per modificare l'alias "gp" in modo che rappresenti il cmdlet Get-Process anziché Get-ItemProperty. È obbligatorio immettere il parametro Force in quanto il valore della proprietà Options dell'alias "gp" è impostato su ReadOnly. Poiché il comando viene eseguito dall'unità Alias:, l'unità non viene specificata nel percorso.

set-item -path gp -value get-process -force

La modifica influisce sulle quattro proprietà che definiscono l'associazione tra l'alias e il comando. Per visualizzare l'effetto della modifica, digitare il comando seguente: get-item -path gp | format-list -property *

-------------------------- ESEMPIO 3 --------------------------

Con questo comando viene utilizzato il cmdlet Rename-Item per modificare l'alias "popd" in "pop".

rename-item -path alias:popd -newname pop

Copia di un alias

-------------------------- ESEMPIO 1 --------------------------

Con questo comando viene copiato l'alias pushd in modo che venga creato un nuovo alias push per il cmdlet Push-Location.

copy-item -path alias:pushd -destination alias:push

Quando viene creato il nuovo alias, la proprietà Description dispone di un valore null. La proprietà Option dispone invece di un valore None. Se il comando viene eseguito dall'unità Alias:, è possibile omettere il nome dell'unità dal valore del parametro Path.

Eliminazione di un alias

-------------------------- ESEMPIO 1 --------------------------

Con questo comando viene eliminato l'alias serv dalla sessione corrente. È possibile utilizzare questo comando in qualsiasi unità di Windows PowerShell.

remove-item -path alias:serv

Se ci si trova nell'unità Alias:, è possibile omettere il nome di tale unità dal percorso.

-------------------------- ESEMPIO 2 --------------------------

Tramite questo comando vengono eliminati gli alias che iniziano con la lettera "s". Non vengono eliminati gli alias di sola lettura.

clear-item -path alias:s*

-------------------------- ESEMPIO 3 --------------------------

Con questo comando vengono eliminati tutti gli alias dalla sessione corrente, ad eccezione di quelli la cui proprietà Options ha valore Constant. Se il parametro Force non è specificato, non verranno eliminati gli alias la cui proprietà Options ha valore ReadOnly.

remove-item alias:* -force

Parametri dinamici

I parametri dinamici sono parametri di cmdlet aggiunti da un provider di Windows PowerShell e disponibili solo quando il cmdlet viene utilizzato nell'unità abilitata dal provider.

Options <System.Management.Automation.ScopedItemOptions>

Determina il valore della proprietà Options di un alias.

Value | Description
Nessuno | Nessuna opzione. Questo valore è l'impostazione predefinita.
Constant | L'alias non può essere eliminato e non è possibile modificarne le proprietà. Il valore Constant è disponibile solo quando si crea un alias. Non è possibile modificare in Constant l'opzione di un alias esistente.
Private | L'alias è visibile solo nell'ambito corrente e non negli ambiti figlio.
ReadOnly | Non è possibile modificare le proprietà dell'alias a meno che non si utilizzi il parametro Force. È possibile utilizzare Remove-Item per eliminare l'alias.
AllScope | L'alias viene copiato in qualsiasi nuovo ambito creato.

Cmdlet supportati

  • New-Item

  • Set-Item

Vedere anche

  • about_Aliases
  • about_Providers


Certificate Provider

Nome provider

Certificate

Unità

Cert:

Descrizione breve

Consente di accedere ai certificati e agli archivi certificati X.509 da Windows PowerShell.

Descrizione dettagliata

La strategia di sicurezza di Windows PowerShell supporta l'utilizzo di firme Authenticode per la firma di script tramite certificati chiave pubblica digitali con codifica X.509. Le funzionalità relative alla firma di Windows PowerShell non sono esaustive, ma consentono agli utenti di firmare script e a Windows PowerShell di riconoscere gli script firmati e non firmati e di determinare se gli script provengono da Internet.

Il provider Certificate di Windows PowerShell consente di esplorare lo spazio dei nomi dei certificati e di visualizzare i certificati e gli archivi certificati. Consente inoltre di copiare, spostare ed eliminare certificati e archivi certificati e di aprire lo snap-in Certificati in Microsoft Management Console (MMC).

Il provider Certificate espone lo spazio dei nomi dei certificati come unità Cert: in Windows PowerShell. L'unità Cert: è costituita dai tre livelli seguenti:

-- Percorsi archivio (Microsoft.PowerShell.Commands.X509StoreLocation), ovvero contenitori di alto livello che consentono di raggruppare i certificati per l'utente corrente e per tutti gli utenti. Per ogni sistema sono presenti un percorso archivio CurrentUser e un percorso archivio LocalMachine (tutti gli utenti).

-- Archivi certificati (System.Security.Cryptography.X509Certificates.X509Store), che sono archivi fisici in cui è possibile salvare e gestire i certificati.

-- Certificati X.509 (System.Security.Cryptography.X509Certificates.X509Certificate2), ognuno dei quali rappresenta un certificato X.509 nel computer. I certificati sono identificati in base alla relativa identificazione digitale.

Il provider Certificate di Windows PowerShell supporta i cmdlet Set-Location, Get-Location, Get-Item, Get-ChildItem e Invoke-Item.

Lo snap-in relativo alla sicurezza di Windows PowerShell (Microsoft.PowerShell.Security), che include il provider Certificate, include anche snap-in che consentono di ottenere e impostare firme Authenticode e di ottenere certificati. Per un elenco di cmdlet per lo snap-in relativo alla sicurezza, digitare "Get-Command -module *security".

Esempi

Spostamento nell'unità Cert:

-------------------------- ESEMPIO 1 --------------------------

Con questo comando viene utilizzato il cmdlet Set-Location per impostare l'unità Cert: come percorso corrente.

set-location cert:

-------------------------- ESEMPIO 2 --------------------------

Con questo comando viene utilizzato il comando Set-Location per impostare come percorso corrente l'archivio certificati Root nel percorso dell'archivio LocalMachine. Per indicare un livello dell'unità Cert:, utilizzare una barra rovesciata (\) o una barra (/).

set-location -path LocalMachine\Root

Se non ci si trova nell'unità Cert:, iniziare il percorso con il nome dell'unità.

Visualizzazione del contenuto dell'unità Cert:

-------------------------- ESEMPIO 1 --------------------------

Con questo comando viene utilizzato il cmdlet Get-ChildItem per visualizzare gli archivi certificati nel percorso dell'archivio certificati CurrentUser.

get-childitem -path cert:\CurrentUser

Se ci si trova nell'unità Cert:, è possibile omettere il nome dell'unità.

-------------------------- ESEMPIO 2 --------------------------

Con questo comando viene utilizzato il cmdlet Get-ChildItem per visualizzare i certificati presenti nell'archivio certificati My.

get-childitem -path cert:\CurrentUser\My

Se ci si trova nell'unità Cert:, è possibile omettere il nome dell'unità.

-------------------------- ESEMPIO 3 --------------------------

Con questo comando vengono utilizzati il cmdlet Get-Item per ottenere l'archivio certificati "My" e il parametro Property di Format-List con un carattere jolly (*) per visualizzare tutte le proprietà dell'archivio.

get-item -path cert:\CurrentUser\My | format-list *

-------------------------- ESEMPIO 4 --------------------------

Con questo comando viene ottenuto un certificato e vengono visualizzate tutte le relative proprietà. Vengono utilizzati il cmdlet Get-ChildItem per ottenere il certificato e il parametro Property di Format-List con un carattere jolly (*) per visualizzare tutte le proprietà del certificato.

Il certificato è identificato in base alla relativa identificazione digitale.

get-childitem -path cert:\CurrentUser\my\6B8223358119BB08840DEE50FD8AF9EA776CE66B | format-list -property *

-------------------------- ESEMPIO 5 --------------------------

Con questo comando vengono utilizzati il cmdlet Get-ChildItem per ottenere tutti i certificati presenti nel computer e il parametro dinamico CodeSigningCert per ottenere solo i certificati con autorità di firma del codice.

get-childitem -path * -codesigningcert -recurse

Apertura dello snap-in MMC Certificati

-------------------------- ESEMPIO 1 --------------------------

Tramite questo comando viene aperto lo snap-in MMC Certificati per la gestione del certificato specificato.

invoke item cert:\CurrentUser\my\6B8223358119BB08840DEE50FD8AF9EA776CE66B

Parametri dinamici

I parametri dinamici sono parametri di cmdlet aggiunti da un provider di Windows PowerShell e disponibili solo quando il cmdlet viene utilizzato nell'unità abilitata dal provider.

CodeSigningCert <System.Management.Automation.SwitchParameter>

Ottiene solo i certificati con autorità di firma del codice.

Cmdlet supportati

  • Get-Item

  • Get-ChildItem

Vedere anche

  • about_Providers
  • about_Signing
  • Get-AuthenticodeSignature
  • Set-AuthenticodeSignature
  • Get-PfxCertificate


Environment Provider

Nome provider

Environment

Unità

Env:

Descrizione breve

Consente di accedere alle variabili di ambiente di Windows.

Descrizione dettagliata

Il provider Environment di Windows PowerShell consente di ottenere, aggiungere, modificare, cancellare ed eliminare variabili di ambiente di Windows in Windows PowerShell.

Il provider Environment è uno spazio dei nomi flat che contiene solo oggetti che rappresentano le variabili di ambiente. Le variabili non contengono elementi figlio.

Ogni variabile di ambiente è un'istanza della classe System.Collections.DictionaryEntry. Il nome della variabile corrisponde alla chiave di dizionario. Il valore della variabile di ambiente corrisponde alla chiave di dizionario.

Il provider Environment espone il proprio archivio dati nell'unità Env:. Per utilizzare le variabili di ambiente, modificare il percorso dell'unità Env: ("set-location env:") oppure utilizzarle da qualsiasi altra unità di Windows PowerShell. Per fare riferimento a una variabile di ambiente da un altro percorso, utilizzare il nome di unità Env: nel percorso.

Il provider delle variabili di ambiente supporta tutti i cmdlet che contengono il sostantivo Item ad eccezione di Invoke-Item. Supporta inoltre i cmdlet Get-Content e Set-Content. Il provider, tuttavia, non supporta i cmdlet che contengono il sostantivo ItemProperty, né il parametro Filter in alcun cmdlet.

Le variabili di ambiente devono essere conformi ai comuni standard di denominazione. Il nome, inoltre, non può contenere il segno di uguale (=).

Le modifiche apportate alle variabili di ambiente influiscono solo sulla sessione corrente. Per salvare le modifiche, aggiungerle al profilo di Windows PowerShell oppure utilizzare Export-Console per salvare la sessione corrente.

Esempi

Accesso all'unità Env:

-------------------------- ESEMPIO 1 --------------------------

Con questo comando viene utilizzata l'unità Env: come percorso.

set-location env:

È possibile utilizzare questo comando da qualsiasi unità in Windows PowerShell. Per tornare a un'unità del file system, digitare il nome dell'unità. Ad esempio, digitare: set-location c:

Recupero di variabili di ambiente

-------------------------- ESEMPIO 1 --------------------------

Con questo comando vengono elencate tutte le variabili di ambiente nella sessione corrente:

get-childitem -path env:

È possibile utilizzare questo comando da qualsiasi unità di Windows PowerShell.

-------------------------- ESEMPIO 2 --------------------------

Con questo comando si ottiene la variabile di ambiente WINDIR:

get-childitem -path env:windir

-------------------------- ESEMPIO 3 --------------------------

Con questo comando si ottiene un elenco di tutte le variabili di ambiente della sessione corrente, quindi vengono ordinate per nome.

get-childitem  | sort-object -property name

Per impostazione predefinita, le variabili di ambiente vengono visualizzate nell'ordine in cui Windows PowerShell le rileva. Questo comando viene eseguito nell'unità Env:. Se questo comando viene eseguito da un'altra unità, aggiungere il parametro Path con il valore Env:.

Creazione di una nuova variabile di ambiente

-------------------------- ESEMPIO 1 --------------------------

Con questo comando viene creata la variabile di ambiente USERMODE con il valore Non-Admin:

new-item -path . -name USERMODE -value Non-Admin

Poiché il percorso corrente si trova nell'unità Env:, il valore del parametro Path è un punto (.). Il punto (.) rappresenta il percorso corrente. Se non ci si trova nell'unità Env:, il valore del parametro Path è Env:.

Visualizzazione delle proprietà e dei metodi delle variabili di ambiente

-------------------------- ESEMPIO 1 --------------------------

In questo comando viene utilizzato il cmdlet Get-ChildItem per ottenere tutte le variabili di ambiente:

get-childitem -path env: | get-member

L'operatore pipeline (|) invia i risultati a Get-Member, che visualizza i metodi e le proprietà dell'oggetto. Quando si reindirizza una raccolta di oggetti a Get-Member, ad esempio la raccolta di variabili di ambiente nell'unità Env:, con Get-Member viene valutato ogni oggetto nella raccolta separatamente. Con Get-Member vengono quindi restituite le informazioni su ciascun tipo di oggetto trovato. Se tutti gli oggetti appartengono allo stesso tipo, vengono restituite informazioni sul singolo tipo di oggetto. In questo caso, tutte le variabili di ambiente saranno oggetti DictionaryEntry. Per ottenere informazioni sulla raccolta di oggetti DictionaryEntry, utilizzare il parametro InputObject di Get-Member. Ad esempio, digitare: get-member -inputobject (get-childitem env:) Quando si utilizza il parametro InputObject, con Get-Member viene valutata la raccolta, non gli oggetti in essa contenuti.

-------------------------- ESEMPIO 2 --------------------------

Con questo comando vengono elencati i valori delle proprietà della variabile di ambiente WINDIR:

get-item env:windir | format-list -property *

Viene utilizzato il cmdlet Get-Item per ottenere un oggetto che rappresenta la variabile di ambiente WINDIR. I risultati vengono inviati al comando Format-List dall'operatore pipeline (|). Viene utilizzato il parametro Property con un carattere jolly (*) per formattare e visualizzare i valori di tutte le proprietà della variabile di ambiente WINDIR.

Modifica delle proprietà di una variabile di ambiente

-------------------------- ESEMPIO 1 --------------------------

Con questo comando viene utilizzato il cmdlet Rename-Item per modificare in USERROLE il nome della variabile di ambiente USERMODE creata.

rename-item -path env:USERMODE -newname USERROLE

Questa modifica influisce sulle proprietà Name, Key e PSPath dell'oggetto DictionaryEntry. Non modificare il nome di una variabile di ambiente utilizzata dal sistema. Sebbene tali modifiche influiscano solo sulla sessione corrente, potrebbero provocare il funzionamento non corretto del sistema o di un programma.

-------------------------- ESEMPIO 2 --------------------------

In questo comando viene utilizzato il cmdlet Set-Item per modificare il valore della variabile di ambiente USERROLE in Administrator:

set-item -path env:USERROLE -value Administrator

Copia di una variabile di ambiente

-------------------------- ESEMPIO 1 --------------------------

Con questo comando il valore della variabile di ambiente USERROLE viene copiato nella variabile di ambiente USERROLE2.

copy-item -path env:USERROLE -destination env:USERROLE2

Eliminazione di una variabile di ambiente

-------------------------- ESEMPIO 1 --------------------------

Con questo comando viene eliminata la variabile di ambiente USERROLE2 dalla sessione corrente.

remove-item -path env:USERROLE2

È possibile utilizzare questo comando in qualsiasi unità di Windows PowerShell. Se ci si trova nell'unità Env:, è possibile omettere il nome dell'unità dal percorso.

-------------------------- ESEMPIO 2 --------------------------

Con questo comando viene eliminata la variabile di ambiente USERROLE.

clear-item -path env:USERROLE

Vedere anche

  • about_Providers


FileSystem Provider

Nome provider

FileSystem

Unità

C, D

Descrizione breve

Consente di accedere a file e directory.

Descrizione dettagliata

Il provider FileSystem di Windows PowerShell consente di ottenere, aggiungere, modificare, cancellare ed eliminare file e directory in Windows PowerShell.

Il provider FileSystem espone le unità di Windows PowerShell che corrispondono alle unità logiche configurate nel computer, incluse le unità mappate a condivisioni di rete. Ad esempio, un computer con un'unità floppy, un'unità disco rigido e una directory di rete condivisa mappata potrebbe disporre di unità con i nomi A, C e Z. Il provider FileSystem espone le unità di Windows PowerShell che corrispondono direttamente ad A, C e Z, consentendo di fare riferimento a tali unità da Windows PowerShell. Per fare riferimento all'unità C, ad esempio, si utilizzerà C:, come illustrato nell'esempio seguente:

Get-ChildItem c:

Tramite il comando viene restituito tutto il contenuto dell'unità C, inclusi i file e le directory. Quando si fa riferimento a una directory o a un file specifico tramite il provider FileSystem, è necessario fornire le informazioni appropriate per identificare la directory o il file. Ciò significa che, in alcuni casi, è necessario fornire un nome completo. Un nome completo include il nome di unità (insieme a un carattere due punti), qualsiasi nome di directory e di sottodirectory e il nome file (quando possibile). Nell'esempio seguente viene indicato il nome completo del file Shell.dll, presente nella sottodirectory System32 della directory Windows nell'unità C:

c:\windows\system32\shell.dll

Tutti gli elementi del nome completo sono separati da una barra rovesciata (\). Windows PowerShell consente inoltre di utilizzare una barra (/) per garantire la coerenza con un'ampia gamma di altre shell.

In alcuni casi, non è necessario specificare un nome completo quando si fa riferimento a un file o a una directory. Se, ad esempio, si desidera accedere a un file nel percorso di lavoro corrente, è necessario fornire solo il nome file. Se il percorso di lavoro corrente è c:\windows, è possibile visualizzare un elenco di tutti i file con estensione dll in tale directory tramite il comando seguente:

Get-ChildItem *.dll

Se la directory di lavoro è diversa da c:\windows, ad esempio c:\Programmi\Windows PowerShell, potrebbe essere necessario includere il nome completo nel comando:

Get-ChildItem c:\windows\*.dll

In alcuni casi, è possibile utilizzare riferimenti relativi a un percorso. Se il percorso di lavoro è c:\windows e si desidera visualizzare un elenco dei file con estensione dll nella directory c:\windows\system32, è possibile utilizzare il comando seguente:

Get-ChildItem .\system32\*.dll

Il punto che precede \system32 rappresenta il percorso di lavoro corrente.

In alcune situazioni, il percorso di lavoro corrente corrisponderà a un'unità diversa da FileSystem. In tal caso, sarà necessario includere sempre il nome dell'unità di destinazione nel riferimento. Si supponga, ad esempio, che il percorso di lavoro corrente sia l'unità env:. Per visualizzare il contenuto dell'unità C, si utilizzerà il comando seguente:

Get-ChildItem c:

Esempi

Spostamento nel file system

-------------------------- ESEMPIO 1 --------------------------

Con questo comando si ottiene il percorso corrente:

get-location

Nel cmdlet Get-Location sono incluse le funzionalità di comandi quali 'cd' nel prompt dei comandi di Windows e 'pwd' in UNIX. Per ulteriori informazioni, digitare: get-help get-location

-------------------------- ESEMPIO 2 --------------------------

Con questo comando viene impostato il percorso corrente:

set-location C:

Recupero di informazioni su file e directory

-------------------------- ESEMPIO 1 --------------------------

Con questo comando si ottengono tutti i file e le directory nella directory corrente:

get-childitem

Per impostazione predefinita, il cmdlet Get-ChildItem non esegue la ricerca ricorsiva. Se quando si esegue il comando la directory corrente contiene file e cartelle, verranno restituiti gli oggetti System.IO.FileInfo e System.IO.DirectoryInfo.

-------------------------- ESEMPIO 2 --------------------------

Con questo comando si ottengono tutti i file e le directory nella directory corrente tramite Get-ChildItem:

get-childitem | where-object {!$_.psiscontainer}

I risultati vengono reindirizzati a Where-Object, tramite cui viene esaminata la proprietà PSIsContainer e vengono mantenuti nella pipeline solo gli oggetti che non sono contenitori.

-------------------------- ESEMPIO 3 --------------------------

Con questo comando si ottengono tutti i file e le directory nella directory corrente tramite Get-ChildItem. I risultati vengono reindirizzati a Where-Object, tramite cui viene esaminata la proprietà PSIsContainer e vengono mantenuti nella pipeline solo gli oggetti che non sono contenitori.

get-childitem | where-object {$_.psiscontainer}

-------------------------- ESEMPIO 4 --------------------------

Con questo comando si ottengono tutti i file e le directory nella directory corrente tramite Get-ChildItem:

get-item -path a | format-list *

I risultati vengono reindirizzati al cmdlet Where-Object, tramite cui viene esaminata la proprietà PSIsContainer e vengono mantenuti nella pipeline solo gli oggetti che non sono contenitori.

-------------------------- ESEMPIO 5 --------------------------

In questo comando viene utilizzato il cmdlet Get-Item per ottenere informazioni sul file Test.txt:

get-item -path test.txt | format-list *

Viene utilizzato il cmdlet Format-List per visualizzare tutte le proprietà dell'oggetto risultante.

Copia di file e directory

-------------------------- ESEMPIO 1 --------------------------

Con questo comando il file A.txt viene copiato dalla directory C:\A alla directory C:\A\Bb.

copy-item -path C:\a\a.txt -destination C:\a\bb\a.txt

Sovrascrive i file nella directory di destinazione senza richiedere conferma.

-------------------------- ESEMPIO 2 --------------------------

Con questo comando vengono copiati tutti i file con estensione txt della directory C:\A\Bb nella directory C:\A\Cc\Ccc\:

copy-item -path C:\a\bb\*.txt -destination C:\a\cc\ccc\

Utilizza i nomi originali dei file. Con questo comando i file esistenti nella directory di destinazione vengono sovrascritti senza richiedere conferma.

-------------------------- ESEMPIO 3 --------------------------

Copia nella directory C:\c tutte le directory e tutti i file inclusi nella directory C:\a. Se una o più directory da copiare sono già presenti nella directory di destinazione, il comando avrà esito negativo, a meno che non si specifichi il parametro Force.

copy-item -path C:\a\* -destination C:\c -recurse

Spostamento di file e directory

-------------------------- ESEMPIO 1 --------------------------

Con questo comando il file C.txt incluso nella directory C:\A viene spostato nella directory C:\A\Aa.

move-item -path C:\a\c.txt -destination C:\a\aa

Il comando non sovrascriverà automaticamente un file esistente con lo stesso nome. Per forzare la sovrascrittura di un file esistente da parte del cmdlet, specificare il parametro Force.

-------------------------- ESEMPIO 2 --------------------------

Con questo comando la directory C:\A e il relativo contenuto viene spostata nella directory C:\B:

move-item -path C:\a -destination C:\b

Non è possibile spostare una directory che costituisce il percorso corrente.

Gestione del contenuto dei file

-------------------------- ESEMPIO 1 --------------------------

Con questo comando viene aggiunta la stringa "contenuto di prova" al file Test.txt:

add-content -path test.txt -value "test content"

Il contenuto esistente nel file Test.txt non verrà eliminato.

-------------------------- ESEMPIO 2 --------------------------

Con questo comando viene ottenuto il contenuto del file Test.txt e visualizzato nella console:

get-content -path test.txt

È possibile reindirizzare il contenuto del file a un altro cmdlet. Con il comando seguente, ad esempio, viene letto il contenuto del file Test.txt, quindi viene inviato come input al cmdlet ConvertTo-HTML: get-content -path test.txt | convertto-html

-------------------------- ESEMPIO 3 --------------------------

Con questo comando viene sostituito il contenuto del file Test.txt con la stringa "contenuto di prova":

set-content -path test.txt -value "test content"

Viene sovrascritto il contenuto del file Test.txt. È possibile utilizzare il parametro Value del cmdlet New-Item per aggiungere contenuto a un file quando lo si crea.

Gestione dei descrittori di sicurezza

-------------------------- ESEMPIO 1 --------------------------

Con questo comando viene restituito un oggetto System.Security.AccessControl.FileSecurity:

get-acl -path test.txt | format-list -property *

Per ulteriori informazioni su questo oggetto, reindirizzare il comando al cmdlet Get-Member. Oppure vedere l'argomento relativo alla classe FileSecurity in MSDN Library all'indirizzo http://go.microsoft.com/fwlink/?LinkId=145718 (le informazioni potrebbero essere in lingua inglese).

-------------------------- ESEMPIO 2 --------------------------

Con questo comando viene restituito un oggetto System.Security.AccessControl.DirectorySecurity:

get-acl -path test_directory | format-list -property *

Per ulteriori informazioni su questo oggetto, reindirizzare il comando al cmdlet Get-Member. Oppure vedere l'argomento relativo alla classe DirectorySecurity in MSDN Library all'indirizzo http://go.microsoft.com/fwlink/?LinkId=145736 (le informazioni potrebbero essere in lingua inglese).

Creazione di file e directory

-------------------------- ESEMPIO 1 --------------------------

Con questo comando viene creata una directory Logfiles nell'unità C:

new-item -path c:\ -name logfiles -type directory

-------------------------- ESEMPIO 2 --------------------------

Con questo comando viene creato il file Log2.txt nella directory C:\Logsfiles, quindi viene aggiunta la stringa "registro di prova" al file:

new-item -path c:\logfiles -name log.txt -type file

-------------------------- ESEMPIO 3 --------------------------

Crea un file denominato Log2.txt nella directory C:\logfiles e quindi aggiunge la stringa "registro di prova" al file.

new-item -path c:\logfiles -name log2.txt -type file -value "test log"

Ridenominazione di file e directory

-------------------------- ESEMPIO 1 --------------------------

Con questo comando il file A.txt incluso nella directory C:\A viene rinominato in B.txt:

rename-item -path c:\a\a.txt -newname b.txt

-------------------------- ESEMPIO 2 --------------------------

Con questo comando la directory C:\A\Cc viene rinominata in C:\A\Dd:

rename-item -path c:\a\cc -newname dd

Eliminazione di file e directory

-------------------------- ESEMPIO 1 --------------------------

Con questo comando viene eliminato il file Test.txt dalla directory corrente:

remove-item -path test.txt

-------------------------- ESEMPIO 2 --------------------------

Con questo comando vengono eliminati tutti i file nella directory corrente con estensione xml:

remove-item -path *.xml

Avvio di un programma tramite la richiamata di un file associato

-------------------------- ESEMPIO 1 --------------------------

Con il primo comando viene utilizzato il cmdlet Get-Service per ottenere informazioni sui servizi locali.

Le informazioni vengono reindirizzate al cmdlet Export-Csv, quindi vengono archiviate nel file Services.csv.

Con il secondo comando viene utilizzato Invoke-Item per aprire il file Services.csv nel programma associato all'estensione csv:

get-service | export-csv -path services.csv

invoke-item -path services.csv

Parametri dinamici

I parametri dinamici sono parametri di cmdlet aggiunti da un provider di Windows PowerShell e disponibili solo quando il cmdlet viene utilizzato nell'unità abilitata dal provider.

Encoding <Microsoft.PowerShell.Commands.FileSystemCmdletProviderEncoding>

Value | Description
Unknown | Il tipo di codifica è sconosciuto o non valido. I dati possono essere trattati come binari.
String | Utilizza il tipo di codifica per una stringa.
Unicode | Codifica in formato UTF-16 utilizzando l'ordine di byte little-endian.
Byte | Codifica un set di caratteri in una sequenza di byte.
BigEndianUnicode | Codifica in formato UTF-16 utilizzando l'ordine di byte big-endian.
UTF8 | Codifica in formato UTF-8.
UTF7 | Codifica in formato UTF-7.
ASCII | Utilizza la codifica per il set di caratteri ASCII (7 bit).

Cmdlet supportati

  • Add-Content

  • Get-Content

  • Set-Content

Delimiter <System.String>

Specifica il delimitatore da utilizzare per la lettura del file. L'impostazione predefinita è "\n" (fine riga).

Cmdlet supportati

  • Get-Content

Wait <System.Management.Automation.SwitchParameter>

Attende che venga aggiunto contenuto al file. Se viene aggiunto contenuto, restituisce tale contenuto aggiunto. Se il contenuto viene modificato, restituisce l'intero file.

Durante l'attesa, tramite Get-Content il file viene verificato una volta al secondo finché non si interrompe la verifica, ad esempio premendo CTRL+C.

Cmdlet supportati

  • Get-Content

Vedere anche

  • about_Providers


Function Provider

Nome provider

Function

Unità

Function:

Descrizione breve

Consente di accedere alle funzioni definite in Windows PowerShell.

Descrizione dettagliata

Il provider Function di Windows PowerShell consente di ottenere, aggiungere, modificare, cancellare ed eliminare le funzioni e i filtri in Windows PowerShell.

Una funzione è un blocco di codice denominato tramite cui viene eseguita un'azione. Quando si digita il nome della funzione, viene eseguito il codice contenuto nella funzione. Un filtro è un blocco di codice denominato tramite cui vengono definite condizioni specifiche per un'azione. È possibile digitare il nome del filtro al posto della condizione, ad esempio in un comando Where-Object.

Nell'unità Function:, le funzioni e i filtri sono preceduti rispettivamente dall'etichetta "Function" e dall'etichetta "Filter", ma, se utilizzati nel contesto corretto, operano nel modo appropriato indipendentemente dall'etichetta.

Il provider Function è uno spazio dei nomi flat che contiene solo gli oggetti funzione e filtro. Né le funzioni né i filtri contengono elementi figlio.

Ogni funzione è un'istanza della classe System.Management.Automation.FunctionInfo. Ogni filtro è un'istanza della classe System.Management.Automation.FilterInfo.

Negli esempi inclusi in questa sezione viene illustrata la gestione delle funzioni, ma è possibile utilizzare gli stessi metodi per gestire i filtri.

Il provider Function espone il relativo archivio dati nell'unità Function:. Per utilizzare le funzioni, è possibile modificare il percorso dell'unità Function: ("set-location function:"). In alternativa, è possibile utilizzarle da un'altra unità di Windows PowerShell. Per fare riferimento a una funzione da un altro percorso, utilizzare il nome di unità (Function:) nel percorso.

Il provider Function supporta tutti i cmdlet i cui nomi contengono il sostantivo Item (i cmdlet Item), ad eccezione di Invoke-Item. Supporta inoltre i cmdlet Get-Content e Set-Content. Il provider, tuttavia, non supporta i cmdlet i cui nomi contengono il sostantivo ItemProperty (i cmdlet ItemProperty), né il parametro Filter in alcun cmdlet.

Tutte le modifiche apportate alle funzioni influiscono solo sulla console corrente. Per salvare le modifiche, aggiungere la funzione al profilo di Windows PowerShell oppure utilizzare Export-Console per salvare la console corrente.

Esempi

Accesso all'unità Function:

-------------------------- ESEMPIO 1 --------------------------

Modifica il percorso corrente dell'unità Function:. È possibile utilizzare questo comando da qualsiasi unità in Windows PowerShell. Per tornare a un'unità del file system, digitare il nome dell'unità. Digitare, ad esempio, set-location c:".

set-location function:

Recupero di funzioni

-------------------------- ESEMPIO 1 --------------------------

Con questo comando viene ottenuto l'elenco di tutte le funzioni nella sessione corrente. È possibile utilizzare questo comando da qualsiasi unità di Windows PowerShell.

get-childitem -path function:

-------------------------- ESEMPIO 2 --------------------------

Con questo comando viene ottenuta la funzione "man" dall'unità Function:. Per ottenere la funzione, viene utilizzato il cmdlet Get-Item. L'operatore pipeline (|) invia il risultato a Format-Table.

Con il parametro Wrap il testo che non può essere incluso in una riga viene spostato nella riga successiva. Tramite il parametro Autosize vengono ridimensionate le colonne di tabella per adattarle alla lunghezza del testo.

get-item -path man | format-table -wrap -autosize

Se l'unità utilizzata è diversa, aggiungere il nome di unità Function: al percorso.

-------------------------- ESEMPIO 3 --------------------------

Tramite entrambi questi comandi viene ottenuta la funzione denominata "c:". Il primo comando può essere utilizzato in qualsiasi unità. Il secondo comando viene utilizzato nell'unità Function:.

Poiché il nome termina con il carattere due punti, che costituisce la sintassi per un'unità, è necessario qualificare il percorso con il nome dell'unità. Nell'unità Function: è possibile utilizzare entrambi i formati. Nel secondo comando il punto (.) rappresenta il percorso corrente.

c:\PS> get-item -path function:c:

PS Function> get-item -path .\c:

Creazione di una funzione

-------------------------- ESEMPIO 1 --------------------------

In questo comando viene utilizzato il cmdlet New-Item per creare una funzione denominata "HKLM:". L'espressione racchiusa tra parentesi graffe è il blocco di script rappresentato dal nome della funzione.

new-item -path function:hklm: -value {set-location hklm:}

È inoltre possibile creare una funzione digitandola nella riga di comando di Windows PowerShell. Digitare, ad esempio, "function:hklm: {set-location hklm:}". Se ci si trova nell'unità Function:, è possibile omettere il nome dell'unità. Poiché in New-Item non è possibile specificare l'etichetta "Filter", i filtri sono contrassegnati come funzioni, ma operano nel modo corretto indipendentemente dall'etichetta. Per creare un filtro con l'etichetta "Filter", digitare il filtro nella riga di comando, ad esempio "filter:Running {$_.Status -eq "Running"}".

-------------------------- ESEMPIO 2 --------------------------

In questo comando viene utilizzato il cmdlet New-Item per creare una funzione denominata Csrss. Viene utilizzato il parametro dinamico Options per specificare il valore ReadOnly per la proprietà Options della funzione.

new-item -path function: -name csrss -options readonly -value {get-process csrss}

È possibile utilizzare questo comando da qualsiasi percorso. Se il comando viene eseguito dall'unità Function:, è possibile utilizzare un punto (.) per specificare il percorso. Il punto (.) rappresenta il percorso corrente.

Eliminazione di una funzione

-------------------------- ESEMPIO 1 --------------------------

Con questo comando viene eliminata la funzione "hklm:" dalla sessione corrente.

remove-item function:hklm:

-------------------------- ESEMPIO 2 --------------------------

Con questo comando vengono eliminate tutte le funzioni dalla sessione corrente, ad eccezione di quelle la cui proprietà Options ha valore Constant. Se il parametro Force non è specificato, non verranno eliminate le funzioni la cui proprietà Options ha valore ReadOnly.

remove-item function:* -force

Quando si eliminano tutte le funzioni, viene modificato il prompt dei comandi, in quanto viene eliminata la funzione prompt che ne definisce il contenuto.

Visualizzazione delle proprietà e dei metodi delle funzioni

-------------------------- ESEMPIO 1 --------------------------

In questo comando viene utilizzato il cmdlet Get-Item per ottenere tutte le funzioni. L'operatore pipeline invia i risultati al cmdlet Get-Member, che visualizza i metodi e le proprietà dell'oggetto.

get-item -path function:* | get-member

Quando si reindirizza una raccolta di oggetti, ad esempio una raccolta di funzioni nell'unità Function:, a Get-Member, con Get-Member viene valutato ogni oggetto nella raccolta separatamente e vengono quindi restituite le informazioni su ciascun tipo di oggetto trovato. Se tutti gli oggetti appartengono allo stesso tipo, vengono restituite informazioni sul singolo tipo di oggetto. In tal caso, tutti le funzioni saranno oggetti FunctionInfo. Per ottenere informazioni sulla raccolta di oggetti FunctionInfo, utilizzare il parametro InputObject di Get-Member. Digitare, ad esempio, "get-member -InputObject (get-item function:*)". Quando si utilizza il parametro InputObject, con Get-Member viene valutata la raccolta e non gli oggetti in essa contenuti.

-------------------------- ESEMPIO 2 --------------------------

Tramite questo comando vengono elencati i valori delle proprietà della funzione "prompt". Viene utilizzato il cmdlet Get-Item per ottenere un oggetto che rappresenta la funzione "prompt". I risultati vengono inviati al comando Format-List dall'operatore pipeline (|). Con il comando Format-List viene utilizzato il parametro Property con carattere jolly (*) per formattare e visualizzare i valori di tutte le proprietà della funzione "prompt".

get-item function:prompt | format-list -property *

Modifica delle proprietà di una funzione

-------------------------- ESEMPIO 1 --------------------------

È possibile utilizzare il cmdlet Set-Item con il parametro dinamico Options per modificare il valore della proprietà Options di una funzione.

Tramite questo comando vengono impostate le opzioni AllScope e ReadOnly per la funzione "prompt". Viene utilizzato il parametro dinamico Options del cmdlet Set-Item. Il parametro Options è disponibile in Set-Item solo se utilizzato con il provider Alias o Function.

set-item -path function:prompt -options "AllScope,ReadOnly"

-------------------------- ESEMPIO 2 --------------------------

In questo comando viene utilizzato il cmdlet Set-Item per modificare la funzione "prompt" affinché le informazioni relative a data e ora vengano visualizzate prima del percorso.

set-item -path function:prompt -value {'PS '+ $(Get-Date -format t) + " " + $(Get-Location) + '> '}

La modifica influisce su entrambe le proprietà Definition e ScriptBlock dell'oggetto FunctionInfo. Per visualizzare l'effetto della modifica, digitare "get-item -path function:prompt | format-list -property *".

-------------------------- ESEMPIO 3 --------------------------

In questo comando viene utilizzato il cmdlet Rename-Item per modificare il nome della funzione "help" in "gh".

rename-item -path function:help -newname gh

Copia di una funzione

-------------------------- ESEMPIO 1 --------------------------

Con questo comando viene copiata la funzione "prompt" in "oldPrompt", creando in modo efficace un nuovo nome per il blocco di script associato alla funzione. È possibile utilizzare questo comando per salvare la funzione prompt originale se si prevede di modificarla.

La proprietà Options della nuova funzione avrà valore None. Per modificare il valore della proprietà Options, utilizzare Set-Item.

copy-item -path function:prompt -destination function:oldPrompt

Parametri dinamici

I parametri dinamici sono parametri di cmdlet aggiunti da un provider di Windows PowerShell e disponibili solo quando il cmdlet viene utilizzato nell'unità abilitata dal provider.

Options <System.Management.Automation.ScopedItemOptions>

Determina il valore della proprietà Options di una funzione.

Value | Description
None | Nessuna opzione. "None" rappresenta il valore predefinito.
Constant | La funzione non può essere eliminata e non è possibile modificarne le proprietà. Il valore Constant è disponibile solo quando si crea una funzione. Non è possibile modificare in Constant l'opzione di una funzione esistente.
Private | La funzione è visibile solo nell'ambito corrente e non negli ambiti figlio.
ReadOnly | Non è possibile modificare le proprietà della funzione, a meno che non si utilizzi il parametro Force. È possibile utilizzare Remove-Item per eliminare la funzione.
AllScope | La funzione viene copiata in qualsiasi nuovo ambito creato.

Cmdlet supportati

  • New-Item

  • Set-Item

Vedere anche

  • about_Functions
  • about_Providers


Registry Provider

Nome provider

Registry

Unità

HKLM:, HKCU:

Descrizione breve

Consente di accedere alle chiavi e ai valori del Registro di sistema da Windows PowerShell.

Descrizione dettagliata

Il provider Registry di Windows PowerShell consente di ottenere, aggiungere, modificare, cancellare ed eliminare le chiavi e i valori del Registro di sistema in Windows PowerShell.

Le chiavi del Registro di sistema vengono rappresentate come istanze della classe Microsoft.Win32.RegistryKey. I valori del Registro di sistema vengono rappresentati come istanze della classe PSCustomObject.

Il provider Registry consente di accedere a uno spazio dei nomi gerarchico costituito da chiavi e sottochiavi del Registro di sistema. I valori e i dati del Registro di sistema non sono componenti di tale gerarchia, ma sono proprietà di ognuna delle chiavi.

Il provider Registry supporta tutti i cmdlet che contengono il sostantivo Item (i cmdlet Item), ad esempio Get-Item, Copy-Item e Rename Item. Utilizzare i cmdlet Item per gestire chiavi e sottochiavi del Registro di sistema. Il provider Registry supporta anche i cmdlet che contengono il sostantivo ItemProperty (i cmdlet ItemProperty). Utilizzare i cmdlet ItemProperty per gestire valori e dati del Registro di sistema. Con il provider Registry non è possibile utilizzare i cmdlet che contengono il sostantivo Content (i cmdlet Content).

Ogni chiave del Registro di sistema è protetta da un descrittore di sicurezza. È possibile utilizzare Get-Acl per visualizzare il descrittore di sicurezza di una chiave.

Funzionalità

ShouldProcess

Esempi

Spostamento nel Registro di sistema

-------------------------- ESEMPIO 1 --------------------------

Questo comando imposta il percorso corrente sulla chiave HKEY_LOCAL_MACHINE\Software del Registro di sistema:

set-location hklm:\software

-------------------------- ESEMPIO 2 --------------------------

In questo comando viene visualizzata la posizione corrente:

get-location

Gestione delle chiavi del Registro di sistema

-------------------------- ESEMPIO 1 --------------------------

In questo comando vengono visualizzate informazioni su ogni sottochiave di primo livello della chiave HKEY_LOCAL_MACHINE\Software del Registro di sistema:

get-childitem -path hklm:\software

-------------------------- ESEMPIO 2 --------------------------

Questo comando crea la sottochiave TestNew nella sottochiave HKCU:\Environment:

new-item -path hkcu:\Environment\TestNew

-------------------------- ESEMPIO 3 --------------------------

Questo comando rimuove la sottochiave TestNew della chiave HKEY_CURRENT_USER\Environment:

remove-item -path hkcu:\Environment\TestNew

-------------------------- ESEMPIO 4 --------------------------

Questo comando copia la chiave TestNew nella sottochiave TestCopy:

copy-item -path  hkcu:\Environment\TestNew  hkcu:\Environment\TestNew\TestCopy

-------------------------- ESEMPIO 5 --------------------------

In questo comando vengono visualizzate informazioni su tutte le sottochiavi della chiave HKEY_LOCAL_MACHINE\Software del Registro di sistema:

get-childitem -path hklm:\Software -recurse

-------------------------- ESEMPIO 6 --------------------------

Questo comando sposta la chiave HKEY_CURRENT_USER\Environment\testnewcopy del Registro di sistema e le relative proprietà, insieme a tutte le sottochiavi e le relative proprietà, in HKEY_CURRENT_USER\Environment\testnew:

move-item -path hkcu:\environment\testnewcopy `
-destination hkcu:\environment\testnew

-------------------------- ESEMPIO 7 --------------------------

Questo comando rinomina la chiave HKEY_CURRENT_USER\Environment\testnew del Registro di sistema in HKEY_CURRENT_USER\Environment\test:

rename-item -path hkcu:\environment\testnew\ -newname test

-------------------------- ESEMPIO 8 --------------------------

In questo comando viene visualizzato il descrittore di sicurezza per l'elemento del Registro di sistema specificato:

get-acl -path hkcu:\environment\testnew | format-list -property *

Gestione delle voci del Registro di sistema

-------------------------- ESEMPIO 1 --------------------------

In questo comando viene visualizzato il nome del valore e i dati per ogni voce del Registro di sistema contenuta nella chiave HKEY_CURRENT_USER\Environment.

get-itemproperty -path hkcu:\Environment

La voce Default del Registro di sistema viene restituita solo se associata a un valore.

-------------------------- ESEMPIO 2 --------------------------

In questo comando viene visualizzato il nome del valore e i dati della voce Temp del Registro di sistema nella chiave HKEY_CURRENT_USER\Environment:

get-itemproperty -path hkcu:\Environment -name Temp

-------------------------- ESEMPIO 3 --------------------------

Questo comando crea la voce pstest del Registro di sistema nella chiave HKEY_CURRENT_USER e ne imposta il valore su pstestvalue:

new-itemproperty -path hkcu:\environment -name "pstest" -value "pstestvalue"

-------------------------- ESEMPIO 4 --------------------------

Questo comando aggiorna il valore della voce pstest del Registro di sistema nella chiave HKEY_CURRENT_USER\Environment in updatedvalue:

set-itemproperty -path hkcu:\environment -name pstest
-value "updatedvalue"

-------------------------- ESEMPIO 5 --------------------------

Questo comando imposta il nome del valore della voce pstest del Registro di sistema nella chiave HKEY_CURRENT_USER\Environment su pstestnew:

rename-itemproperty -path hkcu:\environment -name pstest `
-newname pstestnew

-------------------------- ESEMPIO 6 --------------------------

Questo comando copia la voce pstestnew del Registro di sistema dalla chiave HKEY_CURRENT_USER\Environment alla chiave HKEY_CURRENT_USER\Environment\testnewcopy:

copy-itemproperty -path hkcu:\environment `
-destination hkcu:\environment\testnewcopy -name pstestnew

-------------------------- ESEMPIO 7 --------------------------

Questo comando sposta la voce pstestnew del Registro di sistema dalla chiave HKEY_CURRENT_USER\environment\testnewcopy alla chiave HKEY_CURRENT_USER\Environment\testnew:

move-itemproperty -path hkcu:\environment\testnewcopy '
-destination hkcu:\environment\testnew -name pstestnew

-------------------------- ESEMPIO 8 --------------------------

Questo comando cancella il valore della voce pstestnew del Registro di sistema nella chiave HKEY_CURRENT_USER\Environment\testnew:

clear-itemproperty -path hkcu:\environment\testnew -name pstestnew

È possibile utilizzare il cmdlet Clear-Item per cancellare il valore della voce del Registro di sistema predefinita per una sottochiave. Ad esempio, il comando seguente cancella il valore della voce predefinita della chiave HKEY_CURRENT_USER\Environment\testnew del Registro di sistema: clear-item -path hkcu:\environment\testnew

-------------------------- ESEMPIO 9 --------------------------

Questo comando rimuove la voce pstestnew del Registro di sistema dalla chiave HKEY_CURRENT_USER\Environment\testnew:

remove-itemproperty -path hkcu:\environment\testnew `
-name pstestnew

-------------------------- ESEMPIO 10 --------------------------

Questo comando aggiorna il valore della voce predefinita del Registro di sistema nella chiave HKEY_CURRENT_USER\Environment\testnew in "valore predefinito":

set-itemproperty -path hkcu:\environment\testnew `
-name "(default)" -value "default value"

È inoltre possibile aggiornare il valore predefinito di una chiave del Registro di sistema utilizzando il cmdlet Set-Item. Ad esempio, il comando seguente aggiorna il valore predefinito della chiave testnew: set-item -path hkcu:\environment\testnew -value "altro valore predefinito"

Parametri dinamici

I parametri dinamici sono parametri di cmdlet aggiunti da un provider di Windows PowerShell e disponibili solo quando il cmdlet viene utilizzato nell'unità abilitata dal provider.

Type <Microsoft.Win32.RegistryValueKind>

Specifica i tipi di dati da utilizzare quando si archiviano valori nel Registro di sistema o identifica il tipo di dati di un valore nel Registro di sistema.

Value | Description
String | Specifica una stringa con terminazione null. Equivale a REG_SZ.
ExpandString | Specifica una stringa con terminazione null che contiene riferimenti non espansi alle variabili di ambiente che vengono espanse quando si recupera il valore. Equivale a REG_EXPAND_SZ.
Binary | Specifica dati binari in qualsiasi formato. Equivale a REG_BINARY.
DWord | Specifica un numero binario a 32 bit. Equivale a REG_DWORD.
MultiString | Specifica una matrice di stringhe con terminazione null che terminano con due caratteri null. Equivale a REG_MULTI_SZ.
QWord | Specifica un numero binario a 64 bit. Equivale a REG_QWORD.
Unknown | Indica un tipo di dati del Registro di sistema non supportato, ad esempio REG_RESOURCE_LIST.

Cmdlet supportati

  • Set-Item

Vedere anche

  • about_Providers


Variable Provider

Nome provider

Variable

Unità

Variable:

Descrizione breve

Consente di accedere alle variabili di Windows PowerShell e ai relativi valori.

Descrizione dettagliata

Il provider Variable di Windows PowerShell consente di ottenere, aggiungere, modificare, cancellare ed eliminare variabili di Windows PowerShell nella console corrente.

Il provider Variable di Windows PowerShell supporta le variabili create in Windows PowerShell, incluse le variabili automatiche, le variabili di preferenza e quelle create dall'utente.

Il provider Variable è uno spazio dei nomi flat che contiene solo gli oggetti variabile. Le variabili non contengono elementi figlio.

La maggior parte delle variabili rappresenta un'istanza della classe System.Management.Automation.PSVariable. Vi sono tuttavia alcune varianti. La variabile "?", ad esempio, è un membro della classe QuestionMarkVariable, mentre la variabile "MaximumVariableCount" è un membro della classe SessionStateCapacityVariable.

Il provider Variable espone il relativo archivio dati nell'unità Variable:. Per utilizzare le variabili, è possibile modificare il percorso dell'unità Variable: ("set-location variable:") oppure utilizzarle da qualsiasi altra unità di Windows PowerShell. Per fare riferimento a una variabile da un altro percorso, utilizzare il nome dell'unità (Variable:) nel percorso.

In Windows PowerShell è incluso un set di cmdlet appositamente progettati per visualizzare e modificare le variabili:

-- Get-Variable

-- New-Variable

-- Set-Variable

-- Remove-Variable

-- Clear-Variable

Quando si utilizzano questi cmdlet, non è necessario specificare l'unità Variable: nel nome.

Il provider Variable supporta tutti i cmdlet i cui nomi contengono il sostantivo Item (i cmdlet Item), ad eccezione di Invoke-Item. Supporta inoltre i cmdlet Get-Content e Set-Content. Il provider, tuttavia, non supporta i cmdlet i cui nomi contengono il sostantivo ItemProperty (i cmdlet ItemProperty), né il parametro Filter in alcun cmdlet.

È inoltre possibile utilizzare il parser di espressioni di Windows PowerShell per creare, visualizzare e modificare i valori delle variabili senza utilizzare i cmdlet. Quando si utilizzano le variabili direttamente, aggiungere il segno di dollaro ($) per identificare il nome come variabile e l'operatore di assegnazione (=) per definirne e modificarne il valore. Ad esempio, "$p = Get-Process" crea la variabile "p" e archivia in essa i risultati di un comando "Get-Process".

Tutte le modifiche apportate alle variabili influiscono solo sulla sessione corrente. Per salvare le modifiche, aggiungerle al profilo di Windows PowerShell oppure utilizzare Export-Console per salvare la console corrente.

Esempi

Accesso all'unità Variable:

-------------------------- ESEMPIO 1 --------------------------

In questo comando viene utilizzata l'unità Variable: come percorso. È possibile utilizzare questo comando da qualsiasi unità in Windows PowerShell. Per tornare a un'unità del file system, digitare il nome dell'unità. Digitare, ad esempio, set-location c:".

set-location variable:

Visualizzazione del valore delle variabili

-------------------------- ESEMPIO 1 --------------------------

Con questo comando viene ottenuto l'elenco di tutte le variabili e dei relativi valori nella sessione corrente. È possibile utilizzare questo comando da qualsiasi unità di Windows PowerShell.

get-childitem -path variable:

-------------------------- ESEMPIO 2 --------------------------

Con questo comando si ottengono le variabili il cui nome inizia con "max". È possibile utilizzare questo comando da qualsiasi unità di Windows PowerShell.

get-childitem -path variable:max*

Se ci si trova nell'unità Variable:, è possibile omettere il nome di tale unità dal percorso.

-------------------------- ESEMPIO 3 --------------------------

Con questo comando viene ottenuto il valore della variabile WhatIfPreference digitandone il nome nella riga di comando.

Il nome della variabile è preceduto da un segno di dollaro ($), a indicare che si tratta di una variabile. Il nome dell'unità Variable: non è specificato.

$WhatIfPreference

-------------------------- ESEMPIO 4 --------------------------

Con questo comando viene utilizzato il parametro LiteralPath di Get-ChildItem per ottenere il valore della variabile "?" dall'unità Variabile:. Get-ChildItem non risolve i caratteri jolly eventualmente presenti nei valori del parametro LiteralPath.

get-childitem -literalpath ?

Per visualizzare il valore di una variabile con un carattere speciale senza un cmdlet, digitare un segno di dollaro ($) seguito dal nome della variabile. Ad esempio, per visualizzare il valore della variabile "?", digitare "$?".

-------------------------- ESEMPIO 5 --------------------------

Con questo comando si ottengono le variabili la cui proprietà Options ha valore "ReadOnly" o "Constant".

get-childitem -path variable: | where-object {$_.options -match "Constant" -or $_.options -match "ReadOnly"} | format-list -property name, value, options

Creazione di una nuova variabile

-------------------------- ESEMPIO 1 --------------------------

Con questo comando viene creata la variabile "services" in cui vengono archiviati i risultati di un comando Get-Service. Poiché il percorso corrente si trova nell'unità Variable:, il valore del parametro Path è un punto (.) che rappresenta il percorso corrente.

Le parentesi tra cui è racchiuso il comando Get-Service garantiscono che il comando venga eseguito prima della creazione della variabile. Senza le parentesi, il valore della nuova variabile sarebbe una stringa "Get-Service".

new-item -path . -name services -value (Get-Service)

Se non ci si trova nell'unità variable:, includere il nome di tale unità nel percorso.

-------------------------- ESEMPIO 2 --------------------------

Con questo comando viene creata una variabile "services", in cui viene archiviato il risultato di un comando Get-Service.

Nel comando viene utilizzato un segno di dollaro ($) per indicare che si tratta di una variabile e l'operatore di assegnazione (=) per assegnare il risultato del comando Get-Service alla nuova variabile creata.

$services = Get-Service

Per creare una variabile priva di valore, omettere l'operatore di assegnazione.

Visualizzazione delle proprietà e dei metodi delle variabili

-------------------------- ESEMPIO 1 --------------------------

In questo comando viene utilizzato il cmdlet Get-Item per ottenere tutte le variabili. L'operatore pipeline (|) invia i risultati al cmdlet Get-Member, che visualizza i metodi e le proprietà dell'oggetto.

get-item -path variable:* | get-member

Quando si reindirizza una raccolta di oggetti, ad esempio una raccolta di variabili nell'unità Variable:, a Get-Member, con Get-Member viene valutato ogni oggetto nella raccolta separatamente e vengono quindi restituite le informazioni su ciascuno dei tipi di oggetto trovati. Per ottenere informazioni sulla raccolta di oggetti presenti nell'unità Variable:, utilizzare il parametro InputObject di Get-Member, ad esempio, "get-member -inputobject (get-item variable:*)". Quando si utilizza InputObject, con Get-Member viene valutata la raccolta, non gli oggetti in essa contenuti.

-------------------------- ESEMPIO 2 --------------------------

Tramite questo comando vengono elencati i valori delle proprietà della variabile "home". Viene utilizzato il cmdlet Get-Item per ottenere un oggetto che rappresenta la variabile "home". I risultati vengono inviati al comando Format-List dall'operatore pipeline (|). Con il comando Format-List viene utilizzato il parametro Property con carattere jolly (*) per formattare e visualizzare i valori di tutte le proprietà della variabile "home".

get-item variable:home | format-list -property *

Modifica delle proprietà di una variabile

-------------------------- ESEMPIO 1 --------------------------

In questo comando viene utilizzato il cmdlet Rename-Item per modificare il nome della variabile "a" in "processes".

rename-item -path variable:a -newname processes

-------------------------- ESEMPIO 2 --------------------------

In questo comando viene utilizzato il cmdlet Set-Item per modificare il valore della variabile ErrorActionPreference in "Stop".

set-item -path variable:ErrorActionPreference -value Stop

-------------------------- ESEMPIO 3 --------------------------

Tramite questo comando viene modificato il valore della variabile ErrorActionPreference in "Stop".

Viene utilizzato un segno di dollaro ($) per indicare che si tratta di una variabile e l'operatore di assegnazione (=) per assegnare il valore.

$ErrorActionPreference = Stop

Copia di una variabile

-------------------------- ESEMPIO 1 --------------------------

In questo comando viene utilizzato il cmdlet Copy-Item per copiare la variabile "processes" in "old_processes". In questo modo, verrà creata una nuova variabile denominata "old_processes" che avrà lo stesso valore della variabile "processes".

copy-item -path variable:processes -destination variable:old_processes

Se il comando viene eseguito dall'unità Variable:, è possibile omettere il nome dell'unità dal valore del parametro Path.

-------------------------- ESEMPIO 2 --------------------------

Tramite questo comando viene copiata la variabile "processes" in "old_processes" senza utilizzare un cmdlet. Viene utilizzato il segno di dollaro ($) per indicare che si tratta di una variabile e l'operatore di assegnazione per assegnare il valore di $processes a old_processes.

$old_processes = $processes

Eliminazione di una variabile

-------------------------- ESEMPIO 1 --------------------------

Con questo comando viene eliminata la variabile "serv" dalla sessione corrente. È possibile utilizzare questo comando in qualsiasi unità di Windows PowerShell.

remove-variable -path variable:serv

-------------------------- ESEMPIO 2 --------------------------

Con questo comando vengono eliminate tutte le variabili dalla sessione corrente, ad eccezione di quelle la cui proprietà Options ha valore Constant. Se il parametro Force non è specificato, non verranno eliminate le variabili la cui proprietà Options ha valore ReadOnly.

remove-item variable:* -force

Impostazione del valore di una variabile su NULL

-------------------------- ESEMPIO 1 --------------------------

In questo comando viene utilizzato il cmdlet Clear-Item per modificare il valore della variabile "processes" in NULL.

clear-item -path variable:processes

-------------------------- ESEMPIO 2 --------------------------

Tramite questo comando viene cancellato il valore della variabile "processes" assegnando il valore Null alla variabile. Viene utilizzata la variabile automatica $null per rappresentare il valore NULL.

$processes = $null

Vedere anche

  • about_Variables
  • about_Automatic_Variables
  • about_Providers


WSMan Provider

Nome provider

WSMan

Unità

WSMan

Descrizione breve

Fornisce accesso alle informazioni di configurazione di Gestione remota Windows (WS-Management).

Descrizione dettagliata

Il provider di WS-Management per Windows PowerShell consente di aggiungere, modificare, cancellare ed eliminare i dati di configurazione di WS-Management nei computer locali o remoti.

Il provider di WS-Management espone un'unità di Windows PowerShell con una struttura di directory che corrisponde a un raggruppamento logico delle impostazioni di configurazione di WS-Management. Questi raggruppamenti sono denominati contenitori.

-- Client

È possibile configurare vari aspetti del client WS-Management. Le informazioni di configurazione vengono archiviate nel Registro di sistema.

-- Service

È possibile configurare vari aspetti del servizio WS-Management. Le informazioni di configurazione vengono archiviate nel Registro di sistema.

Nota: la configurazione del servizio viene talvolta definita configurazione server.

-- Shell

È possibile configurare vari aspetti della shell di WS-Management, come l'impostazione per consentire l'accesso alle shell remote (AllowRemoteShellAccess) e il numero massimo consentito di utenti simultanei (MaxConcurrentUsers).

-- Listener

È possibile creare e configurare un listener. Un listener è un servizio di gestione che implementa il protocollo WS-Management per inviare e ricevere i messaggi.

-- Plugin

I plug-in vengono caricati e utilizzati dal servizio WS-Management per fornire diverse funzioni. Per impostazione predefinita, in Windows PowerShell sono disponibili tre plug-in: il plug-in inoltro eventi, il plug-in Microsoft.PowerShell e il plug-in provider WMI. Questi tre plug-in supportano l'inoltro eventi, la configurazione e l'accesso WMI.

--ClientCertificate

È possibile creare e configurare un certificato client. Un certificato client viene utilizzato quando nel client WS-Management viene configurato l'utilizzo dell'autenticazione con certificato.

Gerarchia delle directory del provider di WS-Management

---------------

La gerarchia delle directory del provider di WS-Management per il computer locale è la seguente:

WSMan:\localhost

--- Client

--- Service

--- Shell

--- Listener

------ <Listener_Specifico>

--- Plugin

------ Event Forwarding Plugin

--------- InitializationParameters

--------- Resources

------------ Security

------ Microsoft.Powershell

--------- InitializationParameters

--------- Resources

------------ Security

------ WMI Provider

--------- InitializationParameters

--------- Resources

------------ Security

--- ClientCertificate

La gerarchia delle directory del provider di WS-Management per un computer remoto è identica a quella per un computer locale. Per accedere alle impostazioni di configurazione di un computer remoto, è tuttavia necessario stabilire una connessione al computer remoto tramite Connect-WSMan. Una volta stabilita la connessione, il nome del computer remoto verrà visualizzato nel provider.

WSMan:\<Nome_Computer_Remoto>

--- Client

--- Service

--- Shell

--- Listener

------ <Listener_Specifico>

--- Plugin

------ Event Forwarding Plugin

--------- InitializationParameters

--------- Resources

------------ Security

------ Microsoft.Powershell

--------- InitializationParameters

--------- Resources

------------ Security

------ WMI Provider

--------- InitializationParameters

--------- Resources

------------ Security

--- ClientCertificate

Guida del provider personalizzata

--------------------

I percorsi del provider Listener, Plugin (IntitializationParameters, Resources, Security) e ClientCertificate forniscono un supporto di New-Item specifico. Digitare "Get-Help New-Item" nel percorso pertinente per personalizzare la Guida.

Esempi

Spostamento nell'unità WSMan:

-------------------------- ESEMPIO 1 --------------------------

Questo comando utilizza il cmdlet Set-Location per modificare il percorso corrente dell'unità WSMan:.

Set-Location WSMan:

-------------------------- ESEMPIO 2 --------------------------

Questo comando utilizza il comando Set-Location per modificare il percorso corrente specificando il percorso radice nel percorso dell'archivio Localhost. Per indicare un livello dell'unità WSMan:, utilizzare una barra rovesciata (\) o una barra (/).

Set-Location -Path Localhost

Se non ci si trova nell'unità WSMan:, specificare il nome dell'unità all'inizio del percorso.

-------------------------- ESEMPIO 3 --------------------------

Questo comando utilizza il comando Set-Location per modificare il percorso corrente specificando il percorso radice nel percorso dell'archivio del sistema remoto. Per indicare un livello dell'unità WSMan:, utilizzare una barra rovesciata (\) o una barra (/).

Set-Location -Path  WSMan:\SERVER01

Se non ci si trova nell'unità WSMan:, specificare il nome dell'unità all'inizio del percorso. Il comando precedente presuppone che esista già una connessione al sistema remoto. In caso contrario, è possibile stabilire la connessione subito prima di passare al percorso radice nel percorso dell'archivio del sistema remoto. Ad esempio: WSMan-Connect SERVER01 Set-Location -Path WSMan:\SERVER01

-------------------------- ESEMPIO 4 --------------------------

Questo comando utilizza il comando Set-Location per modificare il percorso corrente specificando il percorso client nel percorso dell'archivio Localhost. Per indicare un livello dell'unità WSMan:, utilizzare una barra rovesciata (\) o una barra (/).

Set-Location -Path Localhost\Client

Se non ci si trova nell'unità WSMan:, specificare il nome dell'unità all'inizio del percorso.

Visualizzazione del contenuto dell'unità WSMan:

-------------------------- ESEMPIO 1 --------------------------

Questo comando utilizza il cmdlet Get-Childitem per visualizzare gli archivi di WS-Management nel percorso dell'archivio Localhost.

get-childitem -path WSMan:\Localhost

Se ci si trova nell'unità WSMan:, è possibile omettere il nome dell'unità.

-------------------------- ESEMPIO 2 --------------------------

Questo comando utilizza il cmdlet Get-Childitem per visualizzare gli archivi di WS-Management nel percorso dell'archivio del computer remoto (SERVER01).

get-childitem -path WSMan:\SERVER01

Se ci si trova nell'unità WSMan:, è possibile omettere il nome dell'unità. Il comando precedente presuppone che esista già una connessione al sistema remoto. In caso contrario, è possibile stabilire la connessione subito prima di visualizzare le proprietà e i contenitori nel percorso dell'archivio del sistema remoto. Ad esempio: WSMan-Connect SERVER01 get-childitem -path WSMan:\SERVER01

-------------------------- ESEMPIO 3 --------------------------

Questo comando utilizza il cmdlet Get-Childitem per visualizzare le connessioni correnti di WS-Management.

get-childitem -path WSMan:\

Se ci si trova nell'unità WSMan:, è possibile omettere il nome dell'unità.

-------------------------- ESEMPIO 4 --------------------------

Questo comando utilizza il cmdlet Get-Item per ottenere le proprietà e i contenitori dell'archivio corrente.

Get-Childitem

Il comando precedente restituisce un elenco di proprietà e contenitori. Ad esempio: PS WSMan:\localhost&gt; get-childitem WSManConfig: Microsoft.WSMan.Management\WSMan::localhost Name Value Type ---- ----- ---- MaxEnvelopeSizekb 150 System.String MaxTimeoutms 60000 System.String MaxBatchItems 32000 System.String MaxProviderRequests 4294967295 System.String Client Container Service Container Shell Container Listener Container Plugin Container ClientCertificate Container

Parametri dinamici

I parametri dinamici sono parametri di cmdlet aggiunti da un provider di Windows PowerShell e disponibili solo quando il cmdlet viene utilizzato nell'unità abilitata dal provider.

Address <String>

Specifica l'indirizzo per il quale è stato creato questo listener. Il valore può essere uno dei seguenti:

-- La stringa letterale "*". Il carattere jolly (*) associa il comando a tutti gli indirizzi IP di tutte le schede di interfaccia di rete (NIC).

-- La stringa letterale "IP:" seguita da un indirizzo IP valido in formato decimale puntato IPv4 o in formato esadecimale clonato IPv6.

-- La stringa letterale "MAC:" seguita dall'indirizzo MAC di una NIC. Ad esempio, MAC:32-a3-58-90-be-cc.

Nota: il valore dell'indirizzo viene impostato durante la creazione di un listener.

Cmdlet supportati

  • Get-Item

AllowRemoteShellAccess <Boolean>

Consente di accedere alle shell remote. Se questo parametro viene impostato su False, il server rifiuterà nuove connessioni alle shell remote. Il valore predefinito è True.

Cmdlet supportati

  • Get-Item

  • Set-Item

AllowUnEncrypted <Boolean>

Abilita la richiesta di traffico non crittografato nel computer client. Per impostazione predefinita, il computer client richiede che il traffico di rete venga crittografato.

Cmdlet supportati

  • Get-Item

  • Set-Item

Arguments <String>

Specifica la stringa argomento e gli argomenti della riga di comando che si desidera passare alla shell personalizzata. Questo parametro è facoltativo.

Cmdlet supportati

  • Get-Item

  • Set-Item

Basic <Boolean>

Abilita l'autenticazione Basic nel computer client. L'autenticazione Basic è uno schema in cui il nome utente e la password vengono inviati come testo non crittografato al server o al proxy. Si tratta del metodo di autenticazione meno sicuro.

Cmdlet supportati

  • Get-Item

  • Set-Item

Capability <Enumeration>

Specifica un'operazione supportata in questo URI (Uniform Resource Identifier). È necessario creare una voce per ogni tipo di operazione supportata nell'URI. Sono validi i valori seguenti:

-- Create: le operazioni Create sono supportate nell'URI. L'attributo SupportFragment viene utilizzato se l'operazione Create supporta il concetto. L'attributo SupportFiltering non è valido e deve essere impostato su False. Questa operazione non è valida per un URI se sono supportate anche le operazioni Shell.

-- Delete: le operazioni Delete sono supportate nell'URI. L'attributo SupportFragment viene utilizzato se l'operazione Delete supporta il concetto. L'attributo SupportFiltering non è valido e deve essere impostato su False. Questa operazione non è valida per un URI se sono supportate anche le operazioni Shell.

-- Enumerate: le operazioni Enumerate sono supportate nell'URI. L'attributo SupportFragment non è supportato per le operazioni Enumerate e deve essere impostato su False. L'attributo SupportFiltering è valido e se il plug-in supporta il filtro, questo attributo deve essere impostato su True. Questa operazione non è valida per un URI se sono supportate anche le operazioni Shell.

-- Get: le operazioni Get sono supportate nell'URI. L'attributo SupportFragment viene utilizzato se l'operazione Get supporta il concetto. L'attributo SupportFiltering non è valido e deve essere impostato su False. Questa operazione non è valida per un URI se sono supportate anche le operazioni Shell.

-- Invoke: le operazioni Invoke sono supportate nell'URI. L'attributo SupportFragment non è supportato per le operazioni Invoke e deve essere impostato su False. L'attributo SupportFiltering non è valido e deve essere impostato su False. Questa operazione non è valida per un URI se sono supportate anche le operazioni Shell.

-- Put: le operazioni Put sono supportate nell'URI. L'attributo SupportFragment viene utilizzato se l'operazione Put supporta il concetto. L'attributo SupportFiltering non è valido e deve essere impostato su False. Questa operazione non è valida per un URI se sono supportate anche le operazioni Shell.

-- Subscribe: le operazioni Subscribe sono supportate nell'URI. L'attributo SupportFragment non è supportato per le operazioni Subscribe e deve essere impostato su False. L'attributo SupportFiltering non è valido e deve essere impostato su False. Questa operazione non è valida per un URI se sono supportate anche le operazioni Shell.

-- Shell: le operazioni Shell sono supportate nell'URI. L'attributo SupportFragment non è supportato per le operazioni Shell e deve essere impostato su False. L'attributo SupportFiltering non è valido e deve essere impostato su False. Questa operazione non è valida per un URI se è supportata qualsiasi altra operazione. Se un'operazione Shell viene configurata per un URI, le operazioni Get, Put, Create, Delete, Invoke e Enumerate vengono elaborate internamente nel servizio Gestione remota Windows (WS-Management) per gestire le shell. Di conseguenza, le operazioni non possono essere gestite tramite il plug-in.

Cmdlet supportati

  • Get-Item

  • New-Item

  • Remove-Item

  • Set-Item

CbtHardeningLevel <String>

Imposta i criteri per i requisiti del token di associazione del canale nelle richieste di autenticazione. Sono validi i valori seguenti:

-- Strict: qualsiasi richiesta non sarà consentita se non è presente un token di associazione del canale. Questa impostazione garantisce che tutte le connessioni siano protette tramite l'utilizzo di token di associazione del canale.

-- Relaxed: se in una richiesta è presente un token di associazione del canale, la connessione sarà protetta. In caso contrario, la connessione verrà comunque accettata. Tuttavia, sarà esposta agli attacchi che vengono impediti dall'utilizzo dei token di associazione del canale.

-- None: tutti i token di associazione del canale forniti vengono ignorati.

Il valore di questo parametro è valido solo per le connessioni HTTPS.

Cmdlet supportati

  • Get-Item

  • Set-Item

CertificateThumbprint <String>

Specifica l'identificazione personale del certificato del servizio.

Questo valore rappresenta la stringa di valori esadecimali a due cifre nel campo Identificazione personale del certificato. Specifica il certificato di chiave pubblica digitale (X509) di un account utente con autorizzazione per l'esecuzione di questa azione. I certificati vengono utilizzati nell'autenticazione basata su certificati client. Possono essere mappati solo agli account utente locali e non funzionano con gli account di dominio. Per ottenere un'identificazione personale del certificato, utilizzare i cmdlet Get-Item o Get-ChildItem nell'unità Cert: di Windows PowerShell.

Cmdlet supportati

  • Clear-Item

  • Get-Item

  • Set-Item

Certificate <Boolean>

Consente l'utilizzo del client per l'autenticazione con certificato. Il client WS-Management tenta di trovare il certificato nell'archivio del computer. Se non riesce a trovarlo, tenta di trovare il certificato nell'archivio dell'utente corrente. Se non viene trovato alcun certificato corrispondente, l'utente riceve un messaggio di errore.

Cmdlet supportati

  • Get-Item

  • Set-Item

CredSSP <Boolean>

Abilita l'autenticazione CredSSP (Credential Security Service Provider) nel computer client.

L'autenticazione CredSSP consente all'utente di delegare le credenziali. Questa opzione è destinata ai comandi che vengono eseguiti in un computer remoto, ma raccolgono dati o eseguono ulteriori comandi in altri computer remoti.

Attenzione: l'autenticazione CredSSP delega le credenziali dell'utente dal computer locale a un computer remoto. Questa procedura aumenta il rischio per la sicurezza dell'operazione remota. Se il computer remoto è compromesso, quando le credenziali vengono passate a tale computer è possibile utilizzarle per controllare la sessione di rete.

Cmdlet supportati

  • Get-Item

  • Set-Item

HTTP <Unsigned Short Integer>

Specifica la porta che il client utilizzerà quando viene utilizzato HTTP. Per impostazione predefinita, HTTP utilizza la porta 80. È possibile specificare un valore compreso tra 1 e 65535.

Cmdlet supportati

  • Get-Item

  • Set-Item

HTTPS <Unsigned Short Integer>

Specifica la porta che il client utilizzerà quando viene utilizzato HTTPS. Per impostazione predefinita, HTTPS utilizza la porta 443. È possibile specificare un valore compreso tra 1 e 65535.

Cmdlet supportati

  • Get-Item

  • Set-Item

Digest <Boolean>

Abilita l'autenticazione Digest nel computer client. L'autenticazione Digest è uno schema basato su una richiesta di verifica e relativa risposta che utilizza una stringa di dati specificata dal server per la richiesta di verifica. Solo il computer client può avviare una richiesta di autenticazione Digest. Il computer client invia una richiesta di autenticazione al server e riceve una stringa di token dal server. Il computer client invia quindi la richiesta della risorsa, incluso il nome utente e un hash di crittografia della password combinati con la stringa del token. L'autenticazione Digest è supportata per HTTP e HTTPS. È possibile specificare l'autenticazione Digest in script e applicazioni client della shell di Gestione remota Windows, ma il servizio WS-Management non accetta l'autenticazione Digest.

Nota: l'autenticazione Digest su HTTP non è considerata sicura.

Cmdlet supportati

  • Get-Item

  • Set-Item

Enabled <Boolean>

Specifica se il listener è abilitato o disattivato. Il valore predefinito è True.

Cmdlet supportati

  • Get-Item

  • Set-Item

ExactMatch <Boolean>

Specifica come utilizzare le impostazioni di sicurezza specificate nel parametro Sddl. Se il parametro ExactMatch è impostato su True, le impostazioni di sicurezza in Sddl vengono utilizzate solo per autorizzare i tentativi di accesso all'URI esattamente secondo quanto specificato dall'URI. Se ExactMatch è impostato su False, le impostazioni di sicurezza in Sddl vengono utilizzate per autorizzare i tentativi di accesso agli URI che iniziano con la stringa specificata nell'URI.

Cmdlet supportati

  • Get-Item

  • Set-Item

FileName <String>

Specifica un file di input da utilizzare per aggiornare la risorsa di gestione specificata da ResourceURI e SelectorSet.

Cmdlet supportati

  • Get-Item

  • Set-Item

FileName (Plugin) <String>

Specifica il nome file del plug-in delle operazioni. Le eventuali variabili di ambiente inserite in questa voce vengono espanse nel contesto degli utenti quando viene ricevuta una richiesta. Ciascun utente potrebbe disporre di una versione diversa della stessa variabile di ambiente, disponendo pertanto di un plug-in diverso. Questa voce non può essere vuota e deve puntare a un plug-in valido.

Cmdlet supportati

  • Get-Item

  • Set-Item

HostName <String>

Specifica il nome host del computer nel quale è in esecuzione il servizio WS-Management.

Il valore deve essere un nome di dominio completo, una stringa letterale IPv4 o IPv6 oppure un carattere jolly.

Cmdlet supportati

  • Clear-Item

  • Get-Item

  • Set-Item

IdleTimeOut <Unsigned Long Integer>

Specifica il tempo massimo, in millisecondi, che la shell remota rimarrà aperta quando non è presente alcuna attività utente. La shell remota viene eliminata automaticamente una volta trascorso il tempo specificato. È possibile specificare un valore compreso tra 0 e 2147483647. Il valore 0 indica un timeout infinito. Il valore predefinito è 900000 (15 minuti).

Cmdlet supportati

  • Get-Item

  • Set-Item

IPv4Filter <String>

Specifica gli indirizza IPv4 che i listener possono utilizzare. Sono validi i valori seguenti:

-- Se non viene specificato alcun valore per il parametro, non può essere utilizzato alcun indirizzo IPv4.

-- Se si immette un carattere jolly (*), può essere utilizzato qualsiasi indirizzo IPv4.

-- Se si immette un elenco di intervalli IP, può essere utilizzato qualsiasi indirizzo IP negli intervalli specificati. Separare gli intervalli mediante una virgola (,) e specificare ogni intervallo come una coppia di indirizzi IPv4 in formato decimale puntato separati da un trattino (-). Accertarsi che nella coppia si verifichi prima il valore inferiore. Gli intervalli sono inclusivi.

Nota: una stringa letterale IPv4 è formata da quattro numeri decimali puntati compresi nell'intervallo tra 0 e 255. Ad esempio: 192.168.0.0.

Cmdlet supportati

  • Clear-Item

  • Get-Item

  • Set-Item

IPv6Filter <String>

Specifica gli indirizza IPv6 che i listener possono utilizzare. Sono validi i valori seguenti:

-- Se non viene specificato alcun valore per il parametro, non può essere utilizzato alcun indirizzo IPv6.

-- Se si immette un carattere jolly (*), può essere utilizzato qualsiasi indirizzo IPv6.

-- Se si immette un elenco di intervalli IP, può essere utilizzato qualsiasi indirizzo IP negli intervalli specificati. Separare gli intervalli mediante una virgola (,) e specificare ogni intervallo come una coppia di indirizzi IPv6 in formato esadecimale clonato separati da un trattino (-). Accertarsi che nella coppia si verifichi prima il valore inferiore. Gli intervalli sono inclusivi.

Nota: una stringa letterale IPv6 è racchiusa tra parentesi e contiene numeri esadecimali separati tramite due punti. Ad esempio: [:: 1] o [3ffe:ffff::6ECB:0101].

Cmdlet supportati

  • Clear-Item

  • Get-Item

  • Set-Item

Issuer <String>

Specifica il nome dell'autorità di certificazione che ha emesso il certificato.

Cmdlet supportati

  • Get-Item

  • Set-Item

Kerberos <Boolean>

Abilita l'autenticazione Kerberos nel computer client. L'autenticazione Kerberos è uno schema in cui il server e il client si autenticano reciprocamente utilizzando certificati Kerberos.

Cmdlet supportati

  • Get-Item

  • Set-Item

ListeningOn <String>

Specifica l'indirizzo IP o tutti gli indirizzi IP sui quali è effettivamente in ascolto il servizio. Il valore deriva dall'elemento Address in base agli IP effettivi associati al listener. Il valore dell'indirizzo IP deve essere in forma di notazione decimale puntata IPv4 o di notazione esadecimale delimitata da due punti IPv6. Esistono più voci ListeningOn, ognuna delle quali inizia con ListeningOn_. Ad esempio:

ListeningOn_1201550598

ListeningOn_1973755898

ListeningOn_1508953035

ListeningOn_1560839940

Cmdlet supportati

  • Get-Item

MaxBatchItems <Unsigned Long Integer>

Specifica il numero massimo di elementi che è possibile utilizzare in una risposta Pull. È possibile specificare qualsiasi valore compreso tra 1 e 4294967295.

Cmdlet supportati

  • Get-Item

  • Set-Item

MaxConcurrentUsers <Unsigned Long Integer>

Specifica il numero massimo di utenti che possono eseguire contemporaneamente operazioni remote nello stesso computer mediante una shell remota. Le nuove connessioni della shell saranno rifiutate se superano il limite specificato. È possibile specificare qualsiasi valore compreso tra 1 e 100.

Cmdlet supportati

  • Get-Item

  • Set-Item

MaxEnvelopeSizekb <Unsigned Long Integer>

Specifica i dati massimi SOAP in kilobyte. È possibile specificare qualsiasi valore compreso tra 32 e 4294967295.

Cmdlet supportati

  • Get-Item

  • Set-Item

MaxMemoryPerShellMB <Unsigned Long Integer>

Specifica la quantità totale massima di memoria che può essere allocata da una shell remota attiva e dai relativi processi figlio. È possibile specificare qualsiasi valore compreso tra 0 e 2147483647. Il valore 0 indica che la quantità di memoria che le operazioni remote possono allocare è limitata solo dalla memoria virtuale disponibile. Il valore predefinito è 0.

Cmdlet supportati

  • Get-Item

  • Set-Item

MaxProcessesPerShell <Unsigned Long Integer>

Specifica il numero massimo di processi che un'operazione shell può avviare. È possibile specificare qualsiasi numero compreso tra 0 e 2147483647. Il valore 0 consente di avviare un numero illimitato di processi. Per impostazione predefinita, il limite è costituito da cinque processi per shell.

Cmdlet supportati

  • Get-Item

  • Set-Item

MaxProviderRequests <Unsigned Long Integer>

Specifica il numero massimo di richieste simultanee consentite dal servizio. È possibile specificare qualsiasi valore compreso tra 1 e 4294967295. Il limite è applicato per provider.

Nota: questo valore è obsoleto e non deve essere utilizzato.

Cmdlet supportati

  • Get-Item

MaxShellsPerUser <Unsigned Long Integer>

Specifica il numero massimo di shell simultanee che qualsiasi utente può aprire in modalità remota sullo stesso sistema. Se questa impostazione dei criteri è abilitata, l'utente non sarà in grado di aprire nuove shell remote se il numero supera il limite specificato. Se questa impostazione dei criteri è disattivata o non è configurata, il limite sarà impostato su due shell remote per utente, per impostazione predefinita. È possibile specificare qualsiasi numero compreso tra 0 e 2147483647. Il valore 0 consente un numero illimitato di shell.

Cmdlet supportati

  • Get-Item

  • Set-Item

MaxTimeoutMs <Unsigned Long Integer>

Specifica il timeout massimo in millisecondi che può essere utilizzato per una richiesta, ad eccezione delle richieste Pull. È possibile specificare qualsiasi numero compreso tra 500 e 4294967295.

Cmdlet supportati

  • Get-Item

  • Set-Item

Name <String>

Specifica un nome visualizzato per la sessione WS-Management. È possibile utilizzare il nome per fare riferimento alla sessione in caso di utilizzo di altri cmdlet, ad esempio Get-PSSession ed Enter-PSSession. Non è obbligatorio che il nome sia univoco nel computer o nella sessione corrente.

Cmdlet supportati

  • Get-Item

  • Set-Item

Name (Plugin) <String>

Specifica il nome visualizzato da utilizzare per il plug-in. Se il plug-in restituisce un errore, il nome visualizzato sarà inserito nel codice XML dell'errore restituito all'applicazione client. Il nome non è specifico per le impostazioni locali.

Cmdlet supportati

  • Get-Item

  • Set-Item

Negotiate <Boolean>

Abilita l'autenticazione Negotiate nel computer client. L'autenticazione Negotiate è uno schema nel quale il client invia una richiesta di autenticazione al server. Il server determina se utilizzare il protocollo Kerberos o NTLM. Il protocollo Kerberos viene selezionato per autenticare un account di dominio, mentre NTLM viene selezionato per gli account del computer locale. Il nome utente deve essere specificato nel formato dominio\nome_utente per un utente del dominio. Il nome utente deve essere specificato nel formato nome_server\nome_utente per un utente locale in un computer server.

Cmdlet supportati

  • Get-Item

  • Set-Item

NetworkDelayMs <Unsigned Long Integer>

Specifica il tempo aggiuntivo in millisecondi che il computer client attende per il ritardo della rete. È possibile specificare un valore compreso tra 500 e 4294967295.

Cmdlet supportati

  • Get-Item

  • Set-Item

Password <String>

Specifica la password per un account di dominio o locale. Il valore non può essere NULL.

Il computer client può specificare le credenziali da utilizzare in caso di creazione di una shell in un computer. Il nome utente deve essere specificato nel formato dominio\nome_utente per un utente del dominio. Il nome utente deve essere specificato nel formato nome_server\nome_utente per un utente locale in un computer server.

Se si utilizza questa struttura, è necessario specificare entrambi i campi, nome utente e password. Può essere utilizzata con l'autenticazione Basic, Digest, Negotiate o Kerberos. Il client deve specificare in modo esplicito le credenziali in caso di utilizzo dell'autenticazione Basic o Digest.

Cmdlet supportati

  • Get-Item

  • Set-Item

Plugin <>

I plug-in di WS-Management sono librerie di collegamento dinamico (DLL) native che collegano ed estendono la funzionalità di WS-Management. L'API per plug-in di WS-Management fornisce la funzionalità che consente a un utente di scrivere plug-in implementando specifiche API per le operazioni e gli URI di risorsa supportati. Dopo aver configurato i plug-in per il servizio Gestione remota Windows (WS-Management) o per Internet Information Services (IIS), i plug-in vengono caricati rispettivamente nell'host WS-Management o nell'host IIS. Le richieste remote vengono indirizzate a questi punti di ingresso di plug-in per eseguire le operazioni.

Cmdlet supportati

  • New-Item

  • Remove-Item

Port <Unsigned Short Integer>

Specifica la porta TCP per la quale è stato creato questo listener. È possibile specificare un valore compreso tra 1 e 65535.

Cmdlet supportati

  • Get-Item

  • Set-Item

Resource <String>

Specifica un endpoint che rappresenta un tipo distinto di valore o operazione di gestione. Un servizio espone una o più risorse e alcune risorse possono disporre di più di un'istanza. Una risorsa di gestione è simile a una classe WMI o a una tabella di database; un'istanza è simile a un'istanza della classe o a una riga della tabella. La classe Win32_LogicalDisk, ad esempio, rappresenta una risorsa. Win32_LogicalDisk="C:\" è un'istanza specifica della risorsa.

Un URI (Uniform Resource Identifier) contiene un prefisso e un percorso a una risorsa. Ad esempio:

http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk

http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_NumericSensor

Cmdlet supportati

  • Get-Item

  • Set-Item

ResourceURI <String>

Specifica l'URI (Uniform Resource Identifier) che identifica un tipo specifico di risorsa, ad esempio un disco o un processo, in un computer.

Un URI è composto da un prefisso e da un percorso a una risorsa. Ad esempio:

http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk

http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_NumericSensor

Cmdlet supportati

  • Get-Item

RootSDDL <String>

Specifica la stringa SDDL (Security Descriptor Definition Language) per la voce di controllo di accesso. In tal modo vengono identificate le impostazioni di sicurezza utilizzate per autorizzare l'accesso all'URI di risorsa specificato.

Cmdlet supportati

  • Get-Item

  • Set-Item

SDKVersion <String>

Specifica la versione dell'SDK per i plug-in di WS-Management. L'unico valore valido è 1.

Cmdlet supportati

  • Get-Item

  • Set-Item

Shell <String>

Specifica la stringa del processo per la shell personalizzata. È possibile specificare le variabili di ambiente.

Cmdlet supportati

  • Get-Item

  • Set-Item

ShellTimeout <Unsigned Long Integer>

Specifica l'intervallo di tempo prima del timeout della shell per inattività. Specificare il valore di timeout in millisecondi.

Cmdlet supportati

  • Get-Item

  • Set-Item

Subject <String>

Specifica l'entità identificata dal certificato.

Cmdlet supportati

  • Get-Item

SupportsOptions <Boolean>

Specifica se il plug-in supporta l'utilizzo di opzioni passate nell'intestazione wsman:OptionSet in un messaggio di richiesta.

Cmdlet supportati

  • Get-Item

  • Set-Item

Transport <String>

Specifica il trasporto da utilizzare per inviare e ricevere richieste e risposte del protocollo WS-Management. Il valore deve essere HTTP o HTTPS.

Nota: in caso di creazione di un listener, viene impostato il valore per Transport.

Cmdlet supportati

  • Get-Item

TrustedHosts <String>

Elenco di computer remoti connessi al computer locale tramite una connessione di rete attendibile. Le richieste possono essere inviate ai computer specificati nell'elenco in caso di utilizzo di uno schema di autenticazione e di un trasporto che non consentono al client di autenticare il servizio, come l'autenticazione Basic su HTTP.

Se in TrustedHosts viene specificato un server, il client non autentica l'identità del server, lasciandolo esposto ad attacchi di tipo man-in-the-middle. Quando la connessione di rete è protetta dagli utenti malintenzionati, ad esempio in un ambiente di dominio, è necessario specificare solo i nomi host.

I nomi host specificati possono essere nomi DNS (Domain Name System) o indirizzi IP. Sono validi i valori seguenti:

-- Vuoto: nessun host è considerato attendibile.

-- Il carattere asterisco "*": tutti gli host sono considerati attendibili.

Un elenco di modelli di nome host separati da virgole (,) I modelli del nome host devono essere formattati come segue:

-- Una stringa che inizia con il carattere jolly (*). La stringa deve contenere almeno due caratteri. Sono considerati attendibili tutti gli host che condividono il suffisso.

-- Una stringa che termina con il carattere jolly (*). La stringa deve contenere almeno due caratteri. Sono considerati attendibili tutti gli host che condividono il prefisso.

-- Tutti i nomi NetBIOS, ad esempio le stringhe che non contengono un punto, sono considerati attendibili.

-- Una stringa senza il carattere jolly (*): l'host denominato dalla stringa è considerato attendibile.

Nota: quando il valore TrustedHosts viene impostato con il cmdlet Set-Item, il cmdlet Set-Item supporta un parametro aggiuntivo -Concatenate. Nell'esempio seguente viene aggiunto un nuovo valore (*.domain2.com) al vecchio valore archiviato in TrustedHost:

Set-Item .\TrustedHosts *.domain2.com -Concatenate -Force

Cmdlet supportati

  • Clear-Item

  • Get-Item

  • Set-Item

URI <String>

Identifica l'URI per il quale viene autorizzato l'accesso in base al valore del parametro Sddl.

Cmdlet supportati

  • Get-Item

URLPrefix <String>

Prefisso URL sul quale accettare richieste HTTP o HTTPS. Si tratta di una stringa che contiene solo i caratteri a-z, A-Z, 9-0, nonché quelli di sottolineatura (_) e barra rovesciata (/). La stringa non deve iniziare o terminare con un carattere barra rovesciata (/). Se il nome del computer è ad esempio ComputerEsempio, nel client WS-Management verrà specificato http://ComputerEsempio/PrefissoURL come indirizzo di destinazione.

Cmdlet supportati

  • Clear-Item

  • Get-Item

  • Set-Item

UserName <String>

Specifica il nome utente per un account locale o di dominio. Non può avere valore NULL.

Il client può specificare le credenziali da utilizzare in caso di creazione di una shell in un computer. Il nome utente deve essere specificato nel formato dominio\nome_utente per un account del dominio. Il nome utente deve essere specificato nel formato nome_server\nome_utente per un account locale in un computer server.

Se si utilizza questa struttura, è necessario specificare entrambi i campi, nome utente e password. Può essere utilizzata con l'autenticazione Basic, Digest, Negotiate o Kerberos. Il client deve specificare in modo esplicito le credenziali in caso di utilizzo dell'autenticazione Basic o Digest.

Cmdlet supportati

  • Get-Item

  • Set-Item

Value <String>

Specifica il valore di un parametro di inizializzazione, ovvero un valore specifico del plug-in utilizzato per specificare le opzioni di configurazione.

Cmdlet supportati

  • Get-Item

  • Set-Item

XMLRenderingType <String>

Specifica il formato nel quale XML viene passato ai plug-in mediante l'oggetto WSMAN_DATA. Sono validi i valori seguenti:

Text: i dati XML in ingresso sono contenuti in una struttura WSMAN_DATA_TYPE_TEXT che rappresenta l'XML come buffer di memoria PCWSTR.

XMLReader: i dati XML in ingresso sono contenuti in una struttura WSMAN_DATA_TYPE_WS_XML_READER che rappresenta l'XML come un oggetto XmlReader definito nel file di intestazione WebServices.h.

Cmdlet supportati

  • Get-Item

  • Set-Item

xmlns <String>

Stringa che specifica un URN (Uniform Resource Name) che identifica in modo univoco lo spazio dei nomi.

Cmdlet supportati

  • Get-Item

  • Set-Item

lang <String>

Stringa che specifica una lingua o un formato lingua-paese con la lingua e il paese separati tramite trattino.

Cmdlet supportati

  • Get-Item

  • Set-Item

HTTP <Unsigned Short Integer>

Specifica la porta che il client utilizzerà quando viene utilizzato HTTP. Per impostazione predefinita, HTTP utilizza la porta 80. È possibile specificare un valore compreso tra 1 e 65535.

Cmdlet supportati

  • Get-Item

  • Set-Item

HTTPS <Unsigned Short Integer>

Specifica la porta che il client utilizzerà quando viene utilizzato HTTPS. Per impostazione predefinita, HTTPS utilizza la porta 443. È possibile specificare un valore compreso tra 1 e 65535.

Cmdlet supportati

  • Get-Item

  • Set-Item

MaxShellRunTime <Unsigned Long Integer>

Nota: questo valore non è più utilizzato perché obsoleto.

Cmdlet supportati

  • Get-Item

MaxShellRunTime <Unsigned Long Integer>

Nota: questo valore non è più utilizzato perché obsoleto.

Cmdlet supportati

  • Get-Item


Guida di Windows PowerShell Integrated Scripting Environment (ISE)

Windows PowerShell Integrated Scripting Environment (ISE) è un'applicazione host che consente di scrivere, eseguire ed effettuare test su script e moduli in un ambiente di facile utilizzo. Le funzionalità chiave, come la sintassi contraddistinta dal colore, la funzionalità di completamento tramite tasto TAB, il debug visivo, la conformità a Unicode e la Guida sensibile al contesto garantiscono un'esperienza di scripting più dettagliata.

Le funzionalità di Windows PowerShell ISE includono:

  • Un riquadro comandi per l'esecuzione di comandi interattivi, analogamente a quanto avviene in console di Windows PowerShell. È sufficiente digitare un comando e premere Invio.

  • Un riquadro di output che acquisisce l'output dei comandi.

  • Un riquadro di script che consente di creare, modificare, eseguire il debug ed eseguire funzioni, script e moduli.

  • Numerose schede di PowerShell, ognuna con un riquadro comandi e un riquadro di script per consentire di lavorare contemporaneamente su più attività indipendenti.

  • La possibilità di modificare il testo in script complessi e in lingue con scrittura da destra a sinistra.

Nota

Poiché Windows PowerShell ISE richiede un'interfaccia utente, non è disponibile nelle installazioni principali di Windows Server. È un componente opzionali nelle installazioni server. Windows PowerShell ISE è compilato su Windows Presentation Foundation (WPF). Se il rendering degli elementi grafici di Windows PowerShell ISE non viene eseguito correttamente nel sistema in uso, è possibile risolvere il problema aggiungendo o regolando le impostazioni di rendering della grafica del sistema. Questa operazione potrebbe essere necessaria se il computer dispone di un driver video obsoleto o se si utilizza software per virtualizzazione. Per ulteriori informazioni, vedere "Impostazioni del Registro di sistema per il rendering della grafica" in MSDN Library all'indirizzo http://go.microsoft.com/fwlink/?LinkId=144711.

Nelle sezioni seguenti vengono fornite utili informazioni introduttive su Windows PowerShell ISE.

  • Esplorazione di Windows PowerShell ISE

  • Utilizzo di Windows PowerShell ISE

  • Accessibilità in Windows PowerShell ISE

Nella sezione seguente viene descritto il modello a oggetti di Windows PowerShell ISE e ne viene illustrato l'utilizzo nello scripting.

  • Modello a oggetti di scripting di Windows PowerShell ISE

Vedere anche

  • Guida introduttiva a Windows PowerShell
  • Guida di Windows PowerShell


Esplorazione di Windows PowerShell ISE

È possibile utilizzare Windows PowerShell Integrated Scripting Environment (ISE) per creare ed eseguire comandi e script, nonché per eseguirne il debug. Windows PowerShell ISE comprende la barra dei menu, le schede di Windows PowerShell, la barra degli strumenti, le schede di script, un riquadro di script, un riquadro di output, un riquadro comandi, una barra di stato, un dispositivo di scorrimento per la modifica delle dimensioni del testo e la Guida sensibile al contesto.

Barra dei menu

La barra dei menu contiene i menu File, Modifica, Visualizza, Debug e ?. I pulsanti dei menu consentono di eseguire attività correlate alla scrittura e all'esecuzione di script e all'esecuzione di comandi in Windows PowerShell ISE. È inoltre possibile inserire sulla barra dei menu un menu di componenti aggiuntivi eseguendo determinati script che utilizzano il modello a oggetti di scripting di Windows PowerShell ISE.

Schede di Windows PowerShell

Una scheda di Windows PowerShell è l'ambiente in cui viene eseguito Windows PowerShell. È possibile aprire nuove schede di Windows PowerShell in Windows PowerShell ISE per creare ambienti separati nel computer locale o in computer remoti. È possibile tenere aperte contemporaneamente non più di otto schede di PowerShell.

Barra degli strumenti

Di seguito sono elencati i pulsanti della barra degli strumenti.

Pulsante | Function
Nuovo | Apre un nuovo script.
Apri | Apre un file o uno script esistente.
Salva | Salva un file o uno script.
Taglia | Taglia il testo selezionato e lo copia negli Appunti.
Copia | Copia il testo selezionato negli Appunti.
Incolla | Incolla il contenuto degli Appunti nella posizione del cursore.
Cancella riquadro di output | Cancella il contenuto del riquadro di output.
Annulla | Annulla l'azione appena eseguita.
Ripeti | Esegue l'azione appena annullata.
Esegui script | Esegue uno script.
Esegui selezione | Esegue una parte selezionata di uno script.
Arresta esecuzione | Arresta uno script in esecuzione.
Scheda Nuova sessione PowerShell remota | Crea una nuova scheda di PowerShell che stabilisce una sessione in un computer remoto. Viene visualizzata una finestra di dialogo e viene richiesto di immettere i dettagli necessari per stabilire la connessione remota.
Avvia PowerShell.exe | Apre una console di PowerShell.
Mostra riquadro di script in alto | Sposta il riquadro di script nella parte superiore dello schermo.
Mostra riquadro di script a destra | Sposta il riquadro di script sulla destra dello schermo.
Mostra riquadro di script ingrandito | Ingrandisce il riquadro di script.

Scheda Script

Visualizza il nome dello script che si desidera modificare. È possibile fare clic su una scheda script per selezionare lo script che si desidera modificare.

Quando si posiziona il puntatore del mouse sulla scheda di uno script, il percorso completo del file di script viene visualizzato in una descrizione comandi.

Riquadro di script

Consente di creare ed eseguire script. Nel riquadro di script è possibile aprire, modificare ed eseguire script esistenti.

Riquadro di output

Visualizza i risultati dei comandi e degli script eseguiti. È inoltre possibile copiare e cancellare il contenuto del riquadro di output.

Riquadro comandi

Consente di scrivere comandi. Nel riquadro comandi è possibile eseguire un comando di una o più righe. Premere MAIUSC+INVIO per immettere ogni riga di un comando di più righe e premere INVIO dopo l'ultima riga per eseguirlo. Il prompt visualizzato nella parte superiore del riquadro comandi mostra il percorso della directory di lavoro corrente.

Barra di stato

Consente di verificare se i comandi e gli script eseguiti sono completi. La barra di stato si trova nella parte inferiore dello schermo. Le parti selezionate dei messaggi di errore vengono visualizzate sulla barra di stato.

Dispositivo di scorrimento delle dimensioni del testo

Aumenta o riduce le dimensioni del testo sullo schermo.

Guida sensibile al contesto

Offre informazioni relative a Windows PowerShell ISE in un file della Guida HTML compilato (con estensione chm) con funzionalità di ricerca. È possibile aprire la Guida scegliendo Guida di Windows PowerShell dal menu ?. A seconda della posizione del cursore all'interno dei riquadri quando si fa clic su ?, se è presente un argomento corrispondente al testo intorno al cursore, viene aperto l'argomento specifico. Se non viene trovato un argomento corrispondente, viene aperta la pagina predefinita della Guida.

Per uscire da Windows PowerShell ISE, fare clic su Chiudi sulla barra degli strumenti oppure scegliere Esci dal menu File.

Vedere anche

  • Guida di Windows PowerShell Integrated Scripting Environment (ISE)
  • Utilizzo di Windows PowerShell ISE


Utilizzo di Windows PowerShell ISE

Argomenti della sezione

How to Use Tab Completion in the Script Pane and the Command Pane
Illustra la procedura per utilizzare la funzionalità di completamento tramite tasto TAB nel riquadro di script e nel riquadro comandi.

Modalità di creazione di una scheda PowerShell in Windows PowerShell ISE
Illustra la procedura per creare una scheda di Windows PowerShell in Windows PowerShell ISE.

How to Use the Command Pane
Illustra la procedura per scrivere ed eseguire comandi nel riquadro comandi.

How to Manage Results in the Output Pane
Illustra la procedura per gestire i risultati nel riquadro di output.

How to Write and Run Scripts in the Script Pane
Illustra la procedura per scrivere ed eseguire script nel riquadro di script.

Modalità di esecuzione del debug degli script in Windows PowerShell ISE
Illustra la procedura per eseguire il debug di script in Windows PowerShell ISE

How to Use Profiles in Windows PowerShell ISE
Fornisce informazioni e procedure per l'utilizzo di profili in Windows PowerShell ISE.

Vedere anche

  • Esplorazione di Windows PowerShell ISE
  • Accessibilità in Windows PowerShell ISE
  • Riferimenti al modello a oggetti di Windows PowerShell ISE


Modalità di utilizzo della funzionalità di completamento tramite tasto TAB nel riquadro di script e nel riquadro comandi

La funzionalità di completamento tramite tasto TAB offre una Guida automatica durante la digitazione nel riquadro di script o nel riquadro comandi. Attenersi alla procedura seguente per sfruttare questa funzionalità:

Per completare automaticamente una voce del comando

Nel riquadro comandi o nel riquadro di script, digitare alcuni caratteri di un comando, quindi premere il tasto TAB per selezionare il testo di completamento desiderato. La funzionalità di completamento tramite tasto TAB offre un supporto per la digitazione del nome di un cmdlet, un parametro, una variabile, una proprietà di oggetto o un percorso.

Nota

Nel riquadro di script, premendo il tasto TAB, un comando verrà completato automaticamente solo in caso di modifica di file .ps1, .psd1 o .psm1. È possibile utilizzare la funzionalità di completamento tramite tasto TAB quando si digita nel riquadro comandi.

Per completare automaticamente una voce di parametro di un cmdlet

Nel riquadro comandi o nel riquadro di script, digitare un cmdlet seguito da un trattino, quindi premere il tasto TAB.

Ad esempio, digitare get-process -, quindi premere il tasto TAB per eseguire la selezione dai parametri per il cmdlet.

Vedere anche

  • Utilizzo di Windows PowerShell ISE
  • Modalità di immissione e di esecuzione di un comando nel riquadro comandi


Modalità di creazione di una scheda PowerShell in Windows PowerShell ISE

Le schede di PowerShell consentono di creare e utilizzare contemporaneamente diversi ambienti di esecuzione all'interno della stessa applicazione. Ogni scheda di PowerShell corrisponde a un ambiente di esecuzione.

Nota

Variabili, funzioni e alias creati in una scheda di PowerShell non vengono trasportati da una scheda di PowerShell a un'altra.

Utilizzare i passaggi seguenti per aprire e chiudere una scheda di PowerShell. Per rinominare una scheda di PowerShell, impostare la proprietà DisplayName sull'oggetto di scripting della scheda di PowerShell.

Per creare e utilizzare una nuova scheda di PowerShell

  1. Scegliere Nuova scheda di PowerShell dal menu File. La nuova scheda di PowerShell si apre sempre come finestra attiva. Le schede di PowerShell sono numerate in modo incrementale nell'ordine in cui vengono aperte. È possibile aprire un massimo di otto schede di PowerShell in un'istanza di ISE. Quando vengono aperte otto schede di PowerShell, il pulsante Nuova scheda di PowerShell nel menu File viene visualizzato in grigio e non è disponibile finché non viene chiusa almeno una scheda di PowerShell.

  2. Per rendere attiva una scheda di PowerShell, fare clic sulla scheda. Per eseguire la selezione tra tutte le schede di PowerShell aperte, scegliere la scheda di PowerShell che si desidera utilizzare dal menu Visualizza.

Per creare e utilizzare una scheda Nuova sessione PowerShell remota

  • Scegliere Scheda Nuova sessione PowerShell remota dal menu File per stabilire una sessione in un computer remoto. Viene visualizzata una finestra di dialogo e viene richiesto di immettere i dettagli necessari per stabilire la connessione remota. Le funzioni della scheda remota equivalgono a quella di una scheda locale di PowerShell, ma i comandi e gli script vengono eseguiti nel computer remoto.

Per chiudere una scheda di PowerShell

  1. Fare clic sulla scheda di PowerShell che si desidera chiudere.

  2. Scegliere Chiudi scheda di PowerShell dal menu File oppure fare clic sul pulsante Chiudi in una scheda di PowerShell attiva per chiudere la scheda.

  3. Se vi sono file non salvati aperti nella scheda di PowerShell che si sta chiudendo, verrà richiesto di salvarli o eliminarli.

    Per ulteriori informazioni sulle modalità di salvataggio di uno script, vedere Modalità di salvataggio di uno script.

Vedere anche

  • Utilizzo di Windows PowerShell ISE


Modalità di utilizzo del riquadro comandi

Utilizzare gli argomenti riportati di seguito per scrivere ed eseguire comandi nel riquadro comandi.

Argomenti della sezione

How to Enter and Run a Command in the Command Pane
Illustra le procedure per l'immissione, l'esecuzione e l'interruzione di un comando nel riquadro comandi.

How to Edit Text in the Command Pane
Illustra la procedura per la modifica del testo nel riquadro comandi.

Modalità di aggiunta di parametri obbligatori nella finestra di dialogo Prompt dei parametri
Descrive la modalità di inserimento dei parametri richiesti per i cmdlet di Windows PowerShell.

Vedere anche

  • Utilizzo di Windows PowerShell ISE


Modalità di immissione e di esecuzione di un comando nel riquadro comandi

Attenersi alla procedura seguente per immettere, eseguire o interrompere un comando nel riquadro comandi.

Per immettere un comando

Digitare un comando nel riquadro comandi. Per immettere più comandi da eseguire in sequenza, digitare MAIUSC+INVIO tra i comandi. Per informazioni sulla digitazione dei comandi, vedere Modalità di utilizzo della funzionalità di completamento tramite tasto TAB nel riquadro di script e nel riquadro comandi.

Per eseguire un comando

Dopo aver immesso un comando, premere INVIO nel riquadro comandi.

Per interrompere un comando

Fare clic su Arresta esecuzione nella barra degli strumenti o premere CTRL+INTERR. Se il contesto non è ambiguo, è possibile utilizzare la sequenza CTRL+C per interrompere un comando. Ad esempio, se è stato selezionato testo nel riquadro corrente, tramite CTRL+C verrà eseguito il mapping a un'operazione di copia.

Vedere anche

  • Modalità di utilizzo del riquadro comandi
  • Modalità di utilizzo della funzionalità di completamento tramite tasto TAB nel riquadro di script e nel riquadro comandi


Modalità di modifica del testo nel riquadro comandi

Attenersi alla procedura seguente per modificare il testo nel riquadro comandi. È possibile copiare, tagliare e incollare testo. È possibile anche annullare e ripetere l'ultima azione eseguita. I tasti di scelta rapida per l'esecuzione di queste azioni corrispondono a quegli utilizzati per tutte le applicazioni Windows.

Per copiare testo nel riquadro comandi

  1. Selezionare il testo che si desidera copiare nel riquadro comandi.

  2. Fare clic su Copia nella barra degli strumenti oppure scegliere Copia dal menu Modifica.

Per tagliare testo nel riquadro comandi

  1. Selezionare il testo che si desidera tagliare nel riquadro comandi.

  2. Fare clic su Taglia nella barra degli strumenti oppure scegliere Taglia dal menu Modifica.

Per incollare testo nel riquadro comandi

Fare clic su Incolla nella barra degli strumenti dei comandi oppure scegliere Incolla dal menu Modifica.

Per aggiungere una riga nel riquadro comandi

Nel riquadro comandi, fare clic per posizionare il cursore nel punto in cui si desidera aggiungere la nuova riga, quindi premere MAIUSC+INVIO.

Per annullare un'azione nel riquadro comandi

Fare clic su Annulla nella barra degli strumenti oppure scegliere Annulla dal menu Modifica.

Per ripetere un'azione nel riquadro comandi

Fare clic su Ripeti nella barra degli strumenti dei comandi oppure scegliere Ripeti dal menu Modifica.

Vedere anche

  • Modalità di utilizzo del riquadro comandi
  • Modalità di utilizzo della funzionalità di completamento tramite tasto TAB nel riquadro di script e nel riquadro comandi


Modalità di aggiunta di parametri obbligatori nella finestra di dialogo Prompt dei parametri

I parametri rappresentano una modalità per selezionare opzioni o fornire input a un cmdlet di Windows PowerShell. Alcuni parametri sono obbligatori e altri facoltativi. Se si immette un cmdlet senza specificare i parametri obbligatori, in Windows PowerShell viene richiesto di immettere ogni parametro obbligatorio. In console di Windows PowerShell la richiesta viene effettuata nella riga di comando. In Windows PowerShell ISE viene visualizzata una finestra di dialogo Prompt dei parametri che fornisce funzionalità corrispondenti al comportamento interattivo di console di Windows PowerShell. Nella finestra di dialogo vengono visualizzati in sequenza i parametri obbligatori.

Nota

Un'importante differenza tra l'esperienza di console di Windows PowerShell e quella di Windows PowerShell ISE è la modalità con cui viene immesso un parametro di matrice obbligatorio. Nella finestra di dialogo Prompt dei parametri è disponibile un pulsante OK che può essere utilizzato in modo analogo al tasto INVIO. Dopo aver immesso un valore per il parametro di matrice, quando si fa clic su OK o si preme INVIO viene richiesto il valore successivo. Facendo clic su OK o premendo INVIO senza immettere un valore si segnala la fine della matrice, esattamente come premendo il tasto INVIO senza immettere un valore si segnala la fine della matrice in console di Windows PowerShell. Si noti con il pulsante Annulla nella finestra di dialogo Prompt dei parametri si annulla l'intero comando e non l'ultimo valore immesso nella matrice. In questo senso, il pulsante Annulla è equivalente alla sequenza CTRL+C in console di Windows PowerShell.

Utilizzo della finestra di dialogo Prompt dei parametri

  1. Nel riquadro comandi, digitare start-sleep e premere INVIO. Verrà visualizzata la finestra di dialogo Prompt dei parametri. Verrà richiesto di immettere un valore per il parametro obbligatorio "Seconds".

  2. Digitare un numero nella casella di testo, quindi fare clic su OK. Il comando start-sleep viene eseguito per il numero di secondi specificato.

  3. Eseguire la prova facendo clic su Annulla anziché su OK per constatare che il comando viene annullato.

Utilizzo della finestra di dialogo Prompt dei parametri per immettere un parametro di matrice obbligatorio

  1. Nel riquadro di script, aprire un nuovo file script e digitare le righe seguenti.

    $var1 = 1
$var2 = 2
$var3 = 3
clear-variable
    Fare clic su Esegui script nella barra degli strumenti. Verrà visualizzata la finestra di dialogo Prompt dei parametri e verrà richiesto di immettere un valore per il parametro obbligatorio "Name" per il cmdlet clear-variable. Tuttavia, Name è un parametro di matrice, pertanto verrà richiesto "Name[0]".

  2. Nella casella di testo Parametro, digitare "var1" e fare clic su OK o premere INVIO. Verranno richiesti i valori di matrice successivi. Quando viene richiesto "Name[1]", nella casella di testo Parametro, digitare "var2" e premere INVIO. Fare clic su OK senza immettere un terzo valore per indicare la fine della matrice.

  3. Successivamente, nel riquadro comandi digitare le righe seguenti per visualizzare i valori delle tre variabili. I valori di var1 e var2 sono stati cancellati, ma var3 dispone ancora del valore assegnato.

    $var1
$var2
$var3
  4. Eseguire la prova facendo clic su Annulla anziché su OK nella finestra di dialogo Prompt dei parametri per constatare che il comando viene annullato.

Vedere anche

  • about_Parameters
  • about_Command_Syntax
  • Modalità di utilizzo del riquadro comandi


Modalità di gestione dei risultati nel riquadro di output

Nel riquadro di output vengono visualizzati i risultati dei cmdlet digitati e degli script eseguiti. Vengono inoltre visualizzati i messaggi di errore.

Attenersi alla procedura seguente per gestire i risultati nel riquadro di output.

Per selezionare alcuni o tutti i risultati nel riquadro di output

  1. Spostare il cursore nel riquadro di output facendo clic in un punto del riquadro oppure scegliendo Vai al riquadro di output dal menu Visualizza.

  2. Nel riquadro di output, selezionare i risultati che si desidera utilizzare.

Per copiare e incollare i risultati dal riquadro di output

  1. Per copiare il testo selezionato, fare clic su Copia nella barra degli strumenti.

  2. Per incollare il testo selezionato nella posizione corrente del cursore, fare clic su Incolla nella barra degli strumenti.

Per cancellare i risultati nel riquadro di output

Non è possibile tagliare il testo selezionato dal riquadro di output. Tuttavia, è possibile cancellare i risultati nel riquadro di output. Per cancellare i risultati, eseguire una delle operazioni seguenti:

  • Fare clic su Cancella riquadro di output nella barra degli strumenti.

  • Digitare "clear-host" nel riquadro comandi e premere INVIO.

  • Digitare "cls" nel riquadro comandi e premere INVIO.

Vedere anche

  • Utilizzo di Windows PowerShell ISE


Modalità di scrittura e di esecuzione degli script nel riquadro di script

Utilizzare gli argomenti riportati di seguito per creare, modificare, eseguire e salvare script nel riquadro di script.

Argomenti della sezione

Modalità di creazione ed esecuzione di uno script
Modalità di gestione e chiusura delle schede di script
Modalità di modifica del testo nel riquadro di script
Modalità di salvataggio di uno script

Vedere anche

  • Utilizzo di Windows PowerShell ISE


Modalità di creazione ed esecuzione di uno script

Attenersi alla procedura seguente per creare ed eseguire uno script nel riquadro di script.

Nel riquadro di script è possibile aprire e modificare un tipo di file. I tipi di file specifici di interesse in Windows PowerShell sono file script (.ps1), file di dati di script (.psd1) e file del modulo di script (.psm1). Questi tipi di file presentano una sintassi a colori nell'editor del riquadro di script. Gli altri tipi di file comuni che è possibile aprire nel riquadro di script sono file di configurazione (.ps1xml), file XML e file di testo.

Nota

I criteri di esecuzione di Windows PowerShell determinano se è possibile eseguire script e caricare profili e file di configurazione di Windows PowerShell. Il criterio di esecuzione predefinito, Restricted, impedisce l'esecuzione di tutti gli script e il caricamento dei profili. Per modificare i criteri di esecuzione in modo da consentire il caricamento e l'utilizzo dei profili, vedere about_Signing e Set-ExecutionPolicy

Per creare un nuovo file di script

Fare clic su Nuovo nella barra degli strumenti oppure scegliere Nuovo dal menu File. Il file creato viene visualizzato in una nuova scheda. Per impostazione predefinita, viene creato un file di tipo script (.ps1), ma è possibile salvarlo con un nuovo nome e una nuova estensione. È possibile creare più file di script nella stessa scheda di PowerShell.

Per aprire uno script esistente

Fare clic su Apri… nella barra degli strumenti oppure scegliere Apri dal menu File. Nella finestra di dialogo Apri, selezionare il file che si desidera aprire. Il file aperto viene visualizzato in una nuova scheda.

Per visualizzare il percorso del file

Nella scheda del file, posizionare il puntatore sul nome file. Il percorso completo del file di script viene visualizzato in una descrizione comandi.

Per eseguire uno script

Fare clic su Esegui script nella barra degli strumenti oppure scegliere Esegui dal menu File.

Per eseguire una parte di uno script

  1. Nel riquadro di script, selezionare una parte di uno script.

  2. Scegliere Esegui selezione dal menu File, oppure fare clic su Esegui selezione nella barra degli strumenti.

Per interrompere uno script in esecuzione

Fare clic su Arresta esecuzione nella barra degli strumenti, premere CTRL+INTERR oppure scegliere Arresta esecuzione dal menu File. È possibile premere anche CTRL+C a meno che non sia stato selezionato del testo, nel qual caso viene eseguito il mapping alla funzione di copia per il testo selezionato.

Vedere anche

  • Modalità di scrittura e di esecuzione degli script nel riquadro di script
  • Utilizzo di Windows PowerShell ISE


Modalità di modifica del testo nel riquadro di script

Attenersi alla procedura seguente per modificare il testo nel riquadro di script È possibile copiare, tagliare, incollare, trovare e sostituire testo. È possibile anche annullare e ripetere l'ultima azione appena eseguita. I tasti di scelta rapida per l'esecuzione di queste azioni corrispondono a quegli utilizzati per tutte le applicazioni Windows.

Per immettere testo nel riquadro di script

  1. Spostare il cursore nel riquadro di script facendo clic in un punto del riquadro oppure scegliendo Vai al riquadro di script dal menu Visualizza.

  2. Creare uno script. La sintassi contraddistinta dal colore e la funzionalità di completamento tramite tasto TAB garantiscono un'esperienza più dettagliata in Windows PowerShell ISE.

  3. Per informazioni dettagliate sull'utilizzo della funzionalità di completamento tramite tasto TAB durante la digitazione, vedere Modalità di utilizzo della funzionalità di completamento tramite tasto TAB nel riquadro di script e nel riquadro comandi.

Per trovare testo nel riquadro di script

  1. Per trovare il testo in qualunque punto del riquadro, scegliere Trova nello script dal menu Modifica.

  2. Per trovare il testo successivo al cursore, scegliere Trova successivo nello script dal menu Modifica.

  3. Per trovare il testo precedente al cursore, scegliere Trova precedente nello script dal menu Modifica.

Per passare a una particolare riga di testo nel riquadro di script

  1. Scegliere Vai alla riga dal menu Modifica nel riquadro di script.

  2. Immettere un numero di riga.

Per copiare testo nel riquadro di script

  1. Selezionare il testo che si desidera copiare nel riquadro di script.

  2. Fare clic su Copia nella barra degli strumenti oppure scegliere Copia dal menu Modifica.

    Nota

    La combinazione di tasti CTRL+C può essere utilizzata per copiare il testo selezionato quando è stata eseguita una selezione. La combinazione di tasti CTRL+C può essere utilizzata per arrestare l'esecuzione di un comando quando non è stato selezionato alcun testo.

Per tagliare testo nel riquadro di script

  1. Selezionare il testo che si desidera tagliare nel riquadro di script.

  2. Fare clic su Taglia nella barra degli strumenti oppure scegliere Taglia dal menu Modifica.

Per incollare testo nel riquadro di script

Fare clic su Incolla nella barra degli strumenti oppure scegliere Incolla dal menu Modifica.

Per annullare un'azione nel riquadro di script

Fare clic su Annulla nella barra degli strumenti oppure scegliere Annulla dal menu Modifica.

Per ripetere un'azione nel riquadro di script

Fare clic su Ripeti nella barra degli strumenti oppure scegliere Ripeti dal menu Modifica.

Per sostituire testo nel riquadro di script

Scegliere Sostituisci nello script dal menu Modifica.

Vedere anche

  • Modalità di creazione ed esecuzione di uno script
  • Modalità di salvataggio di uno script
  • Modalità di gestione e chiusura delle schede di script
  • Modalità di utilizzo della funzionalità di completamento tramite tasto TAB nel riquadro di script e nel riquadro comandi
  • Argomenti della Guida "About" di Windows PowerShell
  • Argomenti della Guida relativi ai cmdlet di Windows PowerShell


Modalità di salvataggio di uno script

Attenersi alla procedura seguente per salvare e assegnare un nome a uno script. Accanto al nome dello script viene visualizzato un asterisco per contrassegnare un file che non è stato salvato dall'ultima modifica. L'asterisco scompare quando il file viene salvato.

Nota

I tipi di file di Windows PowerShell, ovvero file script (.ps1), file di dati di script (.psd1) e file del modulo di script (.psm1) vengono salvati come Unicode. Tuttavia, alcuni tipi di file come gli script di comando (.cmd) devono essere salvati nel formato ANSI (ASCII) per essere eseguiti correttamente. Se si crea uno script di comando tramite Windows PowerShell ISE, per salvare il file utilizzare il metodo SaveAs nell'oggetto $psISE.CurrentFile.

Per salvare uno script

Fare clic su Salva nella barra degli strumenti oppure scegliere Salva dal menu File.

Per salvare e assegnare un nome a uno script

  1. Scegliere Salva con nome dal menu File. Verrà visualizzata la finestra di dialogo Salva con nome.

  2. Nella casella Nome file immettere un nome per il file.

  3. Nella casella Salva come, selezionare un tipo di file. Ad esempio, nella casella Salva come, selezionare "Script di PowerShell (* .ps1)".

  4. Fare clic su Salva.

Vedere anche

  • Modalità di creazione ed esecuzione di uno script
  • Modalità di modifica del testo nel riquadro di script
  • Modalità di gestione e chiusura delle schede di script


Modalità di gestione e chiusura delle schede di script

Attenersi alla procedura seguente per gestire i file e chiuderli nel riquadro di script.

Per spostarsi da una scheda script a un'altra

Per spostarsi da una scheda script a un'altra, eseguire una delle operazioni seguenti:

  • Fare clic sulla scheda script a cui si desidera passare.

  • Scegliere il nome dello script a cui si desidera passare dal menu Visualizza.

Per chiudere una scheda script

  1. Fare clic sulla scheda script dello script che si desidera chiudere.

  2. Successivamente, effettuare una delle seguenti operazioni:

    • Fare clic su Chiudi nella scheda cript.

    • Scegliere Chiudi dal menu File.

    • Se il file è stato modificato dall'ultimo salvataggio, viene richiesto di salvarlo o eliminarlo.

      Per informazioni sulle modalità di salvataggio di uno script, vedere How to Save a Script .

Vedere anche

  • Modalità di salvataggio di uno script
  • Modalità di modifica del testo nel riquadro di script
  • Modalità di salvataggio di uno script


Modalità di esecuzione del debug degli script in Windows PowerShell ISE

Negli argomenti di questa sezione viene descritto come eseguire il debug di script in un computer locale tramite le funzionalità di debug visive di Windows PowerShell ISE.

Argomenti della sezione

Modalità di impostazione, rimozione, disabilitazione, abilitazione ed elenco dei punti di interruzione
Modalità di avvio, arresto e continuazione del debug
Modalità di utilizzo delle funzioni Esegui istruzione/routine, Esegui istruzione e Esci da istruzione/routine durante il debug

Vedere anche

  • Utilizzo di Windows PowerShell ISE


Modalità di impostazione, rimozione, disabilitazione, abilitazione ed elenco dei punti di interruzione

È possibile impostare tre tipi di punti di interruzione nell'ambiente di debug di Windows PowerShell: punti di interruzione variabile, punti di interruzione comando e punti di interruzione riga. Tra questi, nell'ambiente di debug di Windows PowerShell ISE, soltanto i punti di interruzione riga evidenziati possono essere impostati tramite il menu o i tasti di scelta rapida. Gli altri due tipi di punti di interruzione possono essere impostati dal riquadro comandi tramite il cmdlet Set-PSBreakpoint. È possibile rimuovere, abilitare, disabilitare ed elencare tutti i punti di interruzione. In questa sezione viene descritto come eseguire attività di debug in Windows PowerShell ISE tramite i menu, dove disponibile, e come eseguire una serie più ampia di comandi dal riquadro comandi tramite scripting.

Gestione dei punti di interruzione

Imposta punto di interruzione

Consente di impostare un punto di interruzione riga in uno script o una funzione di Windows PowerShell. È possibile impostare un punto di interruzione in uno script solo dopo che quest'ultimo è stato salvato.

Fare clic con il pulsante destro del mouse sulla riga in cui si desidera impostare un punto di interruzione, quindi scegliere Attiva/disattiva punto di interruzione. Oppure fare clic sulla riga in cui si desidera impostare un punto di interruzione e scegliere Attiva/disattiva punto di interruzione dal menu Debug. Lo script seguente è un esempio di come è possibile impostare un punto di interruzione variabile dal riquadro comandi tramite il cmdlet Set-PSBreakpoint.

# This command sets a breakpoint on the Server variable in the Sample.ps1 script.
set-psbreakpoint -script sample.ps1 -variable Server

Elenca tutti i punti di interruzione

Consente di visualizzare tutti i punti di interruzione nella sessione corrente.

Scegliere Elenca punti di interruzione dal menu Debug. Lo script seguente è un esempio di come è possibile elencare tutti i punti di interruzione dal riquadro comandi tramite il cmdlet Get-PSBreakpoint.

 # This command lists all breakpoints in the current session.
get-psbreakpoint

Rimuovi punto di interruzione

Consente di eliminare un punto di interruzione riga specifico.

Fare clic con il pulsante destro del mouse sulla riga in cui si desidera eliminare un punto di interruzione, quindi scegliere Attiva/disattiva punto di interruzione. Oppure fare clic sulla riga in cui si desidera eliminare un punto di interruzione e scegliere Attiva/disattiva punto di interruzione dal menu Debug. Lo script seguente è un esempio di come è possibile rimuovere un punto di interruzione con un ID specificato dal riquadro comandi tramite il cmdlet Remove-PSBreakpoint.

# This command deletes the breakpoint with breakpoint ID 2.
remove-psbreakpoint -id 2

Rimuovi tutti i punti di interruzione

Consente di eliminare tutti i punti di interruzione dalla sessione corrente.

Scegliere Rimuovi tutti i punti di interruzione dal menu Debug. Lo script seguente è un esempio di come rimuovere tutti i punti di interruzione dal riquadro comandi tramite il cmdlet Remove-PSBreakpoint.

# This command deletes all of the breakpoints in the current session.
get-breakpoint | remove-breakpoint

Disabilita punto di interruzione

Consente di disabilitare un punto di interruzione riga specifico.

Fare clic con il pulsante destro del mouse sulla riga in cui si desidera disabilitare un punto di interruzione, quindi scegliere Disabilita punto di interruzione. Oppure fare clic sulla riga in cui si desidera disabilitare un punto di interruzione e scegliere Disabilita punto di interruzione dal menu Debug. Lo script seguente è un esempio di come è possibile rimuovere un punto di interruzione con un ID specificato dal riquadro comandi tramite il cmdlet Disable-PSBreakpoint.

# This command disables the breakpoint with breakpoint ID 0.
disable-psbreakpoint -id 0

Disabilita tutti i punti di interruzione

Consente di disabilitare tutti i punti di interruzione nella sessione corrente.

Scegliere Disabilita tutti i punti di interruzione dal menu Debug. Lo script seguente è un esempio di come è possibile disabilitare tutti i punti di interruzione dal riquadro comandi tramite il cmdlet Disable-PSBreakpoint.

# This command disables all breakpoints in the current console.
# You can abbreviate this command as: "gbp | dbp".

get-psbreakpoint | disable-psbreakpoint

Abilita punto di interruzione

Consente di abilitare un punto di interruzione riga specifico.

Fare clic con il pulsante destro del mouse sulla riga in cui si desidera abilitare un punto di interruzione, quindi scegliere Abilita punto di interruzione. Oppure fare clic sulla riga in cui si desidera abilitare un punto di interruzione e premere F8, oppure scegliere Abilita punto di interruzione dal menu Debug. Lo script seguente è un esempio di come è possibile abilitare punti di interruzione specifici dal riquadro comandi tramite il cmdlet Enable-PSBreakpoint.

# This command enables breakpoints with breakpoint IDs 0, 1, and 5.
enable-psbreakpoint -id 0, 1, 5

Abilita tutti i punti di interruzione

Consente di abilitare tutti i punti di interruzione nella sessione corrente.

Scegliere Abilita tutti i punti di interruzione dal menu Debug. Lo script seguente è un esempio di come è possibile abilitare tutti i punti di interruzione dal riquadro comandi tramite il cmdlet Enable-PSBreakpoint.

# This command enables all breakpoints in the current session.
# You can abbreviate the command as "gbp | ebp".

get-psbreakpoint | enable-psbreakpoint

Vedere anche

  • about_Debuggers
  • Set-PSBreakpoint
  • Get-PSBreakpoint
  • Disable-PSBreakpoint
  • Enable-PSBreakpoint
  • Remove-PSBreakpoint
  • Get-PSCallStack


Modalità di avvio, arresto e continuazione del debug

Prima di cominciare l'esecuzione del debug, è necessario impostare uno o più punti d'interruzione. Non è possibile impostare un punto d'interruzione a meno che lo script di cui si desidera eseguire il debug non sia salvato. Per informazioni su come impostare un punto d'interruzione, vedere Modalità di impostazione, rimozione, disabilitazione, abilitazione ed elenco dei punti di interruzione o Set-PSBreakpoint. Dopo aver avviato il debug, non è possibile modificare uno script fino all'interruzione del debug. Uno script che dispone di uno o più punti d'interruzione impostati viene salvato automaticamente prima dell'esecuzione.

Per avviare il debug

Fare clic su Esegui script nella barra del titolo dello script. All'avvio del debug, si verificano le modifiche seguenti:

  • Il prompt dei comandi cambia in ">>>" e viene preceduto da "[DBG]" per indicare che il debug è in corso.

  • Il primo punto d'interruzione viene evidenziato.

Per continuare il debug

  1. Scegliere Esegui/Continua dal menu Debug oppure digitare C nel riquadro comandi e premere INVIO.

  2. Se si sceglie Esegui/Continua, l'esecuzione dello script continua fino al punto d'interruzione successivo o fino alla fine dello script.

Per visualizzare lo stack di chiamate

  1. Scegliere Visualizza lo stack di chiamate dal menu Debug oppure digitare K nel riquadro comandi e premere INVIO.

  2. Nel riquadro di output viene visualizzato lo stack di chiamate corrente.

Per interrompere il debug

Scegliere Arresta debugger dal menu Debug oppure digitare Q nel riquadro comandi e premere INVIO.

Vedere anche

  • Modalità di impostazione, rimozione, disabilitazione, abilitazione ed elenco dei punti di interruzione
  • Modalità di salvataggio di uno script
  • Set-PSBreakpoint
  • about_Debuggers
  • Modalità di esecuzione del debug degli script in Windows PowerShell ISE
  • Set-StrictMode


Modalità di utilizzo delle funzioni Esegui istruzione/routine, Esegui istruzione e Esci da istruzione/routine durante il debug

Utilizzare le informazioni seguenti per eseguire il debug di uno script passo a passo.

Il debug passo a passo è un processo in cui viene eseguita un'istruzione alla volta. È possibile interrompere l'operazione su una riga di codice ed esaminare i valori delle variabili e lo stato del sistema. Nella tabella seguente vengono descritte attività di debug comuni, ad esempio l'esecuzione di istruzioni/routine, l'esecuzione di istruzioni e l'uscita da istruzioni/routine.

Attività di debug | Descrizione | Modalità di esecuzione in PowerShell ISE
Esegui istruzione | Esegue l'istruzione corrente e si arresta a quella successiva. Se l'istruzione corrente è una chiamata di funzione o di script, il debugger esegue tale funzione o script, in caso contrario si arresta all'istruzione successiva. | Nel riquadro comandi, digitare S e premere INVIO oppure scegliere Esegui istruzione dal menu Debug.
Esegui istruzione/routine | Esegue l'istruzione corrente e si arresta a quella successiva. Se l'istruzione corrente è una chiamata di funzione o di script, il debugger esegue l'intera funzione o script e si arresta all'istruzione successiva dopo la chiamata di funzione. | Nel riquadro comandi, digitare V e premere INVIO oppure scegliere Esegui istruzione/routine dal menu Debug.
Esci da istruzione/routine | Interrompe l'esecuzione della funzione corrente e passa al livello successivo se la funzione è nidificata. Se nel corpo principale lo script viene eseguito fino alla fine o fino al punto di interruzione successivo. Le istruzioni ignorate vengono eseguite, ma non passo passo. | Nel riquadro comandi, digitare O e premere INVIO oppure scegliere Esci da istruzione/routine dal menu Debug.
Continua | Continua l'esecuzione fino alla fine o fino al punto di interruzione successivo. Le funzioni e le chiamate istruzioni ignorate vengono eseguite, ma non passo passo. | Nel riquadro comandi, digitare C e premere INVIO oppure scegliere Esegui/Continua dal menu Debug.

Debug di uno script

  1. Impostare i punti di interruzione nel codice che si desidera esaminare. Per ulteriori informazioni sull'impostazione dei punti di interruzione, vedere How to Set, Remove, Disable Enable, Disable, and List Breakpoints o Set-PSBreakpoint.

  2. Scegliere Esegui/Continua dal menu Debug oppure fare clic su Esegui script nella barra degli strumenti. Di seguito vengono riportati i possibili scenari:

    • Il debug viene avviato. Lo script viene eseguito fino a quando non rileva il primo punto di interruzione, quindi si interrompe. Il punto di interruzione viene evidenziato.

    • Il prompt dei comandi viene modificato e viene visualizzato il prefisso [DBG] nella barra del riquadro comandi.

    • Nel riquadro di output viene visualizzato un messaggio relativo al punto di interruzione incontrato. Ad esempio “Hit Line breakpoint on 'C:\Users\name\Desktop\test.script.ps1:13”.

    Il messaggio contiene il nome dello script e i dettagli sul punto di interruzione riga, il punto di interruzione variabile o il punto di interruzione comando.

  3. Da questo punto è possibile eseguire le istruzioni/routine, eseguire le istruzioni, uscire dalle istruzioni/routine o continuare. Se si decide di continuare, il debugger esegue lo script fino alla fine o fino al punto di interruzione successivo.

  4. Per trovare il valore di una variabile mentre si esegue il debug, posizionare il mouse sulla variabile nel riquadro di script o digitare il nome della variabile nel riquadro comandi e premere INVIO. Nel riquadro di output viene visualizzato il valore della variabile. Continuare ad eseguire lo script passo passo oppure eseguire altre attività di debug.

Vedere anche

  • about_Debuggers
  • Modalità di esecuzione del debug degli script in Windows PowerShell ISE


Modalità di utilizzo dei profili in Windows PowerShell ISE

Utilizzare gli argomenti seguenti per apprendere l'utilizzo dei profili in Windows PowerShell Integrated Scripting Environment (ISE).

Nota

Prima di eseguire le attività in questa sezione, vedere about_Profiles oppure digitare "get-help about_profiles" nel riquadro Comando e premere INVIO.

È possibile creare uno o più profili di Windows PowerShell per Windows PowerShell ISE e utilizzarli per aggiungere variabili, alias, comandi e funzioni di utilizzo frequente. Un profilo influisce su ogni sessione di Windows PowerShell ISE che viene avviata. È possibile utilizzare un profilo anche per conservare gli elementi che si personalizzano nell'ambiente Windows PowerShell ISE, ad esempio preferenze su colori e tipi di carattere.

Nota

I criteri di esecuzione di Windows PowerShell determinano se è possibile eseguire script e caricare un profilo o i file di configurazione. Il criterio di esecuzione predefinito, "Restricted" impedisce l'esecuzione di tutti gli script, compresi i profili. Se si utilizza il criterio "Restricted", il profilo non viene caricato. Per ulteriori informazioni sui criteri di esecuzione, vedere about_Execution_Policies.

Selezione di un profilo da utilizzare in Windows PowerShell ISE

Windows PowerShell ISE supporta profili per l'utente corrente e per tutti gli utenti di Windows PowerShell ISE. Supporta inoltre i profili di Windows PowerShell che si applicano a tutti gli host.

Il profilo che si utilizza è determinato dalla modalità di utilizzo di Windows PowerShell e di Windows PowerShell ISE.

  • Se si utilizza solo Windows PowerShell ISE per eseguire Windows PowerShell, salvare tutti gli elementi in uno dei profili specifici di ISE, ad esempio il profilo CurrentUserCurrentHost per Windows PowerShell ISE o il profilo AllUsersCurrentHost per Windows PowerShell ISE.

  • Se si utilizzano più programmi host per eseguire Windows PowerShell, salvare funzioni, alias, variabili e comandi in un profilo che influisce su tutti i programmi host, ad esempio CurrentUserAllHosts o AllUsersAllHosts e salvare le funzionalità specifiche di ISE, come la personalizzazione del colore e del tipo di carattere in CurrentUserCurrentHost per il profilo di Windows PowerShell ISE o in AllUsersCurrentHost per Windows PowerShell ISE.

I profili riportati di seguito possono essere creasti e utilizzati in Windows PowerShell ISE. Ogni profilo viene salvato nel proprio percorso specifico.

Tipo di profilo | Percorso del profilo
“Utente corrente, PowerShell ISE” | $profile.CurrentUserCurrentHost oppure $profile
"Tutti gli utenti, PowerShell ISE" | $profile.AllUsersCurrentHost
"Utente corrente, tutti gli host" | $profile.CurrentUserAllHosts
"Tutti gli utenti, tutti gli host" | $profile.AllUsersAllHosts

Argomenti della sezione

Modalità di creazione dei profili in Windows PowerShell ISE
Fornisce le procedure per creare, spostare e salvare profili in Windows PowerShell ISE.

Vedere anche

  • about_Profiles
  • Utilizzo di Windows PowerShell ISE


Modalità di creazione dei profili in Windows PowerShell ISE

Prima di creare un profilo, è necessario sapere che tipo di profilo si desidera creare. Per ulteriori informazioni, vedere about_Profiles oppure digitare "get-help about_profiles" nel riquadro comandi e premere INVIO.

Per creare un nuovo profilo

  1. Per creare un nuovo profilo "Utente corrente, Windows PowerShell ISE", digitare:

    if (!(test-path $profile ))
{new-item -type file -path $profile -force}
  2. Per creare un nuovo profilo "Tutti gli utenti, Windows PowerShell ISE", digitare:

    if (!(test-path $profile.AllUsersCurrentHost))
{new-item -type file -path $profile.AllUsersCurrentHost -force}
  3. Per creare un nuovo profilo "Utente Corrente, tutti gli host", digitare:

    if (!(test-path $profile.CurrentUserAllHosts))
{new-item -type file -path $profile.CurrentUserAllHosts -force}
  4. Per creare un nuovo profilo "Tutti gli utenti, tutti gli host", digitare:

    if (!(test-path $profile.AllUsersAllHosts))
{new-item -type file -path $profile.AllUsersAllHosts-force}

Per modificare un profilo

  1. Aprire il profilo. Ad esempio, per aprire il profilo Utente corrente, Windows PowerShell ISE, digitare: psEdit $profile

  2. Aggiungere alcuni elementi al profilo. Di seguito sono riportati alcuni esempi per iniziare:

    • Per impostare il colore blu come colore di sfondo predefinito del riquadro di output, digitare $psISE.Options.OutputPaneBackground = 'blue' nel file del profilo. Per ulteriori informazioni sulla variabile $psISE, vedere Modello a oggetti di scripting di Windows PowerShell ISE.

    • Per impostare la dimensione del carattere su 20, digitare $psISE.Options.FontSize =20 nel file del profilo.

  3. Salvare il file del profilo. Scegliere Salva dal menu File. Le personalizzazioni verranno applicate alla successiva apertura di Windows PowerShell ISE.

Vedere anche

  • Modalità di utilizzo dei profili in Windows PowerShell ISE
  • Modello a oggetti di scripting di Windows PowerShell ISE
  • about_Profiles
  • about_Signing
  • Set-ExecutionPolicy


Accessibilità in Windows PowerShell ISE

L'argomento Informazioni sull'accessibilità nella sezione Windows PowerShell ISE contiene informazioni sull'accessibilità che possono risultare utili quando si utilizza Windows PowerShell Integrated Scripting Environment (ISE).

Argomenti della sezione

Informazioni sull'accessibilità

Modalità di modifica della dimensione e del percorso del riquadro comandi e del riquadro di script

Tasti di scelta rapida

Vedere anche

  • Guida di Windows PowerShell Integrated Scripting Environment (ISE)


Informazioni sull'accessibilità

Microsoft è impegnata a semplificare i suoi prodotti e servizi affinché tutti possano utilizzarli. Negli argomenti seguenti vengono fornite informazioni su funzionalità, prodotti e servizi che rendono Windows PowerShell ISE maggiormente accessibile alle persone con particolari esigenze.

  • Funzionalità di accessibilità di Windows PowerShell ISE

  • Guida relativa alle funzionalità di accessibilità di Windows PowerShell ISE

Funzionalità di accessibilità di Windows PowerShell ISE

In Windows PowerShell ISE è supportata la modalità a contrasto elevato. Per gli utenti con problemi di vista, le informazioni sui punti di interruzione sono disponibili attraverso i cmdlet per la gestione dei punti di interruzione, ad esempio Get-PSBreakpoint e Set-PSBreakpoint. Per ulteriori informazioni, vedere Modalità di impostazione, rimozione, disabilitazione, abilitazione ed elenco dei punti di interruzione. Oltre alle utilità e alle funzionalità di accessibilità disponibili in Microsoft Windows, le funzionalità seguenti rendono Windows PowerShell ISE maggiormente accessibile alle persone con particolari esigenze:

  • Tasti di scelta rapida

  • Tabella dei colori della sintassi e possibilità di modificare altre impostazioni colore tramite l'oggetto di scripting $psISE.Options.

  • Modifica delle dimensioni del testo

Nota

Le informazioni contenute in questa sezione interessano unicamente gli utenti che hanno ottenuto in licenza prodotti Microsoft negli Stati Uniti. Se si è ottenuto questo prodotto al di fuori degli Stati Uniti, è possibile utilizzare la scheda informativa fornita con il pacchetto software oppure visitare il sito Web Accessibilità Microsoft per ottenere un elenco dei numeri di telefono e degli indirizzi del Servizio Supporto Tecnico Clienti Microsoft. È possibile contattare la propria affiliata per scoprire se i prodotti e i servizi descritti in questa sezione sono disponibili nella propria zona. Le informazioni sulle funzionalità di accessibilità sono disponibili in altre lingue, incluse le lingue giapponese e francese.

Guida relativa alle funzionalità di accessibilità di Windows PowerShell ISE

La Guida di Windows PowerShell ISE include funzionalità mirate a renderlo accessibile a un numero più elevato di utenti, inclusi quelli con abilità manuale limitata, ipovisione o altre particolari esigenze.

Tasti di scelta rapida per l'utilizzo della finestra della Guida:

Tramite i tasti di scelta rapida seguenti, è possibile eseguire rapidamente molte attività comuni.

Per eseguire questa operazione | Utilizzare il tasto di scelta rapida
Visualizzare la finestra della Guida. | F1
Spostare il cursore tra il riquadro dell'argomento della Guida e il riquadro di spostamento (schede quali Sommario, Cerca e Indice). | F6
Spostarsi tra le schede (Sommario, Cerca e Indice) dall'interno del riquadro di spostamento. | ALT + Lettera sottolineata della scheda
Selezionare il testo nascosto o il collegamento ipertestuale successivo. | TAB
Selezionare il testo nascosto o il collegamento ipertestuale precedente. | MAIUSC+TAB
Eseguire l'azione per il collegamento ipertestuale o il testo nascosto presente o per il comando Mostra tutto o Nascondi tutto selezionato. | INVIO
Visualizzare il menu Opzioni per accedere a qualsiasi comando della barra degli strumenti della Guida. | ALT+O
Nascondere o mostrare il riquadro contenente le schede Sommario, Cerca e Indice. | ALT+O, quindi premere T
Visualizzare l'argomento visualizzato in precedenza. | ALT+O, quindi premere B
Visualizzare l'argomento successivo in una sequenza di argomenti visualizzata in precedenza. | ALT+O, quindi premere F
Tornare alla home page specificata. | ALT+O, quindi premere H
Interrompere l'apertura di un argomento della Guida, ad esempio se si desidera interrompere il download di una pagina Web. | ALT+O, quindi premere S
Aprire la finestra di dialogo Opzioni Internet di Microsoft Internet Explorer, in cui è possibile modificare le impostazioni di accessibilità. | ALT+O, quindi premere I
Aggiornare l'argomento, ad esempio se si è collegati a una pagina Web. | ALT+O, quindi premere R
Stampare tutti gli argomenti o solo un argomento selezionato. | ALT+O, quindi premere P
Chiudere la finestra della Guida. | ALT+F4
Per modificare l'aspetto di un argomento della Guida

  1. Per personalizzare i colori, nonché gli stili e le dimensioni del carattere utilizzati nella Guida, aprire la finestra della Guida.

  2. Scegliere Opzioni Internet dal menu Opzioni.

  3. Nella scheda Generale fare clic su Accessibilità. Selezionare Ignora i colori specificati sulle pagine Web, Ignora gli stili dei caratteri specificati sulle pagine Web e Ignora le dimensioni dei caratteri specificati sulle pagine Web. È anche possibile scegliere di utilizzare le impostazioni specificate nel proprio foglio di stile.

  4. Per modificare i colori utilizzati nella Guida, vedere Per modificare il colore dello sfondo o del testo nella Guida. Per modificare il tipo di carattere, vedere Per modificare il tipo di carattere nella Guida.

Per modificare il colore dello sfondo o del testo nella Guida

  1. Aprire la finestra della Guida.

  2. Scegliere Opzioni Internet dal menu Opzioni.

  3. Nella scheda Generale fare clic su Accessibilità. Selezionare Ignora i colori specificati sulle pagine Web. È anche possibile scegliere di utilizzare le impostazioni specificate nel proprio foglio di stile.

  4. Per personalizzare i colori utilizzati nella Guida, nella scheda Generale fare clic su Colori. Deselezionare la casella di controllo Usa colori di Windows, quindi selezionare il tipo di carattere e i colori di sfondo che si desidera utilizzare.

    Nota

    Se si modifica il colore di sfondo degli argomenti della Guida nella finestra della Guida, la modifica interesserà anche il colore di sfondo delle pagine Web aperte in un browser.
Per modificare il tipo di carattere nella Guida

  1. Aprire la finestra della Guida.

  2. Scegliere Opzioni Internet dal menu Opzioni.

  3. Nella scheda Generale fare clic su Accessibilità. Per utilizzare le stesse impostazioni utilizzate nella propria istanza di Microsoft Internet Explorer, selezionare Ignora gli stili dei caratteri specificati sulle pagine Web e Ignora le dimensioni dei caratteri specificati sulle pagine Web. È anche possibile scegliere di utilizzare le impostazioni specificate nel proprio foglio di stile.

  4. Per personalizzare lo stile dei caratteri utilizzati nella Guida, nella scheda Generale fare clic su Caratteri, quindi selezionare lo stile desiderato.

    Nota

    Se si modificano i tipi di caratteri utilizzati negli argomenti della Guida nella finestra relativa, la modifica interesserà anche il tipo di carattere delle pagine Web aperte in un browser.

Per aumentare o ridurre le dimensioni del testo in Windows PowerShell ISE

  • È possibile modificare le dimensioni del testo visualizzato nei riquadri di script, output e comandi tramite il dispositivo di scorrimento delle dimensioni del testo nell'angolo inferiore destro in ISE. In alternativa, è possibile aumentare FontSize tramite l'oggetto di scripting Options. Per aumentare le dimensioni del carattere, spostare verso destra il dispositivo di scorrimento delle dimensioni del testo oppure scegliere Zoom avanti dal menu Visualizza. Per ridurre le dimensioni del carattere, spostare verso sinistra il dispositivo di scorrimento delle dimensioni del testo oppure scegliere Zoom indietro dal menu Visualizza.

Vedere anche

  • Tasti di scelta rapida
  • Modalità di modifica della dimensione e del percorso del riquadro comandi e del riquadro di script


Modalità di modifica della dimensione e del percorso del riquadro comandi e del riquadro di script

È possibile utilizzare i passaggi seguenti per modificare la dimensione e il percorso del riquadro comandi e del riquadro di script. Quando si apre nuovamente Windows PowerShell Integrated Scripting Environment (ISE), verranno mantenute le modifiche apportate alla dimensione e al percorso.

Per ridimensionare il riquadro comandi

  1. Posizionare il puntatore sulla riga di divisione tra il riquadro comandi e il riquadro di output.

  2. Quando il puntatore assume la forma di una doppia freccia, trascinare il bordo per modificare la dimensione del riquadro.

Per spostare il riquadro comandi

  1. Per spostare il riquadro comandi sopra il riquadro di output, fare clic su Sposta riquadro comandi in alto nella barra del riquadro comandi oppure scegliere Sposta riquadro comandi in alto dal menu Visualizza.

  2. Per spostare il riquadro comandi sotto il riquadro di output, fare clic su Sposta riquadro comandi in basso nella barra del riquadro comandi oppure deselezionare Sposta riquadro comandi in alto nel menu Visualizza.

  3. Per impostazione predefinita, il riquadro comandi è posizionato sotto il riquadro di output.

Per ridimensionare il riquadro di script

  1. Posizionare il puntatore sulla riga di divisione tra il riquadro di script e gli altri riquadri.

  2. Quando il puntatore assume la forma di una doppia freccia, trascinare la riga per modificare la dimensione del riquadro.

Per spostare il riquadro di script

Effettuare una delle seguenti operazioni

  • Per spostare il riquadro di script a destra del riquadro comandi e del riquadro di output, fare clic su Mostra riquadro di script a destra nella barra degli strumenti oppure scegliere Mostra riquadro di script a destra dal menu Visualizza.

  • Per spostare il riquadro di script sopra il riquadro comandi e il riquadro di output, fare clic su Mostra riquadro di script in alto nella barra degli strumenti oppure scegliere Mostra riquadro di script in alto dal menu Visualizza.

Per nascondere il riquadro di script

Per nascondere il riquadro di script, fare clic su Nascondi riquadro di script nella barra del riquadro di script oppure deselezionare Mostra riquadro di script nel menu Visualizza.

Per visualizzare il riquadro di script

Per visualizzare il riquadro di script, fare clic su Mostra riquadro di script nella barra del riquadro di script oppure scegliere Mostra riquadro di script dal menu Visualizza.

Per ingrandire il riquadro di script

Per ingrandire il riquadro di script, fare clic su Mostra riquadro di script ingrandito nella barra del riquadro di script oppure scegliere Mostra riquadro di script ingrandito dal menu Visualizza.

Vedere anche

  • Accessibilità in Windows PowerShell ISE


Tasti di scelta rapida

Utilizzare i tasti di scelta rapida seguenti per eseguire azioni in Windows PowerShell Integrated Scripting Environment (ISE).

Tasti di scelta rapida per la modifica del testo

È possibile utilizzare i tasti di scelta rapida seguenti per la modifica del testo.

Azione | Tasti di scelta rapida | Utilizzare in
Copia | CTRL+C | Riquadro di script, riquadro comandi, riquadro di output
Taglia | CTRL+X | Riquadro di script, riquadro comandi
Trova nello script | CTRL+F | Riquadro di script
Trova successivo nello script | F3 | Riquadro di script
Trova precedente nello script | MAIUSC+F3 | Riquadro di script
Incolla | CTRL+V | Riquadro di script, riquadro comandi
Ripeti | CTRL+Y | Riquadro di script, riquadro comandi
Sostituisci nello script | CTRL+H | Riquadro di script
Salva | CTRL+S | Riquadro di script
Seleziona tutto | CTRL+A | Riquadro di script, riquadro comandi, riquadro di output
Annulla | CTRL+Z | Riquadro di script, riquadro comandi

Tasti di scelta rapida per l'esecuzione di script

È possibile utilizzare i tasti di scelta rapida seguenti quando si eseguono script nel riquadro di script.

Azione Tasto di scelta rapida

Nuovo

CTRL+N

Apri

CTRL+O

Esegui

F5

Esegui selezione

F8

Arresta esecuzione

CTRL+INTERR. CTRL+C può essere utilizzato quando il contesto non è ambiguo (quando non è selezionato alcun testo).

Tab (allo script successivo)

CTRL+TAB

Nota

Passare allo script successivo premendo il tasto TAB solo quando è aperta una sola scheda di PowerShell o quando sono aperte più schede di PowerShell, ma lo stato attivo si trova nel riquadro di script.

Tab (allo script precedente)

CTRL+MAIUSC+TAB

Nota

Passare allo script precedente premendo il tasto TAB solo quando è aperta una sola scheda di PowerShell o quando sono aperte più schede di PowerShell, ma lo stato attivo si trova nel riquadro di script.

Tasti di scelta rapida per la personalizzazione della visualizzazione

È possibile utilizzare i tasti di scelta rapida seguenti per personalizzare la visualizzazione in Windows PowerShell ISE. Sono accessibili da tutti i riquadri dell'applicazione.

Azione | Tasto di scelta rapida
Vai al riquadro comandi | CTRL+D
Vai al riquadro di output | CTRL+MAIUSC+O
Vai al riquadro di script | CTRL+I
Mostra riquadro di script | CTRL+R
Nascondi riquadro di script | CTRL+R
Sposta riquadro di script in alto | CTRL+1
Sposta riquadro di script a destra | CTRL+2
Mostra riquadro di script ingrandito | CTRL+3
Zoom avanti | CTRL+SEGNO PIÙ
Zoom indietro | CTRL+SEGNO MENO

Tasti di scelta rapida per il debug degli script

È possibile utilizzare i tasti di scelta rapida seguenti per il debug degli script.

Azione | Tasto di scelta rapida | Utilizzare in
Esegui/Continua | F5 | Riquadro di script, nel corso del debug di uno script
Esegui istruzione | F11 | Riquadro di script, nel corso del debug di uno script
Esegui istruzione/routine | F10 | Riquadro di script, nel corso del debug di uno script
Esci da istruzione/routine | MAIUSC+F11 | Riquadro di script, nel corso del debug di uno script
Visualizza stack di chiamate | CTRL+MAIUSC+D | Riquadro di script, nel corso del debug di uno script
Elenca punti di interruzione | CTRL+MAIUSC+L | Riquadro di script, nel corso del debug di uno script
Attiva/disattiva punto di interruzione | F9 | Riquadro di script, nel corso del debug di uno script
Rimuovi tutti i punti di interruzione | CTRL+MAIUSC+F9 | Riquadro di script, nel corso del debug di uno script
Arresta debugger | MAIUSC+F5 | Riquadro di script, nel corso del debug di uno script
Nota

È inoltre possibile utilizzare i tasti di scelta rapida progettati per la console di Windows PowerShell quando si esegue il debug di script in Windows PowerShell ISE. Per utilizzare questi tasti di scelta rapida, è necessario digitare il tasto nel riquadro comandi e premere INVIO.

Azione | Tasto di scelta rapida | Utilizzare in
Continua | C | Riquadro comandi, nel corso del debug di uno script
Esegui istruzione | S | Riquadro comandi, nel corso del debug di uno script
Esegui istruzione/routine | V | Riquadro comandi, nel corso del debug di uno script
Esci da istruzione/routine | O | Riquadro comandi, nel corso del debug di uno script
Ripeti l'ultimo comando (per eseguire o ignorare) | INVIO | Riquadro comandi, nel corso del debug di uno script
Visualizza stack di chiamate | K | Riquadro comandi, nel corso del debug di uno script
Arresta debugger | Q | Riquadro comandi, nel corso del debug di uno script
Elenca lo script | L | Riquadro comandi, nel corso del debug di uno script
Visualizza i comandi di debug della console | H o ? | Riquadro comandi, nel corso del debug di uno script

Tasti di scelta rapida per le schede di Windows PowerShell

È possibile utilizzare i tasti di scelta rapida seguenti quando si utilizzano le schede di Windows PowerShell.

Azione | Tasto di scelta rapida
Chiudi scheda di PowerShell | CTRL+W
Nuova scheda di PowerShell | CTRL+T
Scheda di PowerShell precedente | CTRL+MAIUSC+TAB. Questo tasto di scelta rapida può essere utilizzato solo quando in nessuna delle schede di PowerShell sono aperti file.
Scheda di Windows PowerShell successiva | CTRL+TAB. Questo tasto di scelta rapida può essere utilizzato solo quando in nessuna delle schede di PowerShell sono aperti file.

Tasti di scelta rapida per l'avvio e l'uscita

È possibile utilizzare i tasti di scelta rapida seguenti per avviare la console di Windows PowerShell (PowerShell.exe) oppure per uscire da Windows PowerShell ISE.

Azione | Tasto di scelta rapida
Esci | ALT+F4
Avvia PowerShell.exe (console di Windows PowerShell) | CTRL+MAIUSC+P


Modello a oggetti di scripting di Windows PowerShell ISE

Windows PowerShell Integrated Scripting Environment (ISE) espone il modello a oggetti di scripting sottostante per consentire agli utenti di scrivere script di Windows PowerShell in grado di modificare i vari aspetti visivi e funzionali di Windows PowerShell ISE. A tale scopo, vengono definiti in modo specifico oggetti di scripting, con proprietà e metodi relativi.

Argomenti della sezione

Scopo del modello a oggetti di scripting di Windows PowerShell ISE
Gerarchia degli oggetti ISE
Altri oggetti di scripting utili
Riferimenti al modello a oggetti di Windows PowerShell ISE

Vedere anche

  • Guida di Windows PowerShell Integrated Scripting Environment (ISE)


Scopo del modello a oggetti di scripting di Windows PowerShell ISE

Gli oggetti sono associati al formato e alla funzione di Windows PowerShell Integrated Scripting Environment (ISE). Il riferimento del modello a oggetti fornisce dettagli sulle proprietà e sui metodi dei membri esposti da questi oggetti. Vengono forniti esempi per illustrare come è possibile utilizzare gli script per accedere direttamente a questi metodi e proprietà. Il modello a oggetti di scripting facilita la serie di attività seguenti.

Personalizzazione dell'aspetto di ISE

È possibile utilizzare il modello a oggetti per modificare le impostazioni e le opzioni delle applicazioni. Ad esempio, è possibile modificarle nel modo seguente:

  • È possibile modificare il colore di errori, avvisi, output dettagliati e output di debug.

  • È possibile ottenere o impostare i colori di sfondo per il riquadro comando, il riquadro di output e il riquadro di script.

  • È possibile impostare il colore di primo piano per il riquadro di output.

  • È possibile impostare il nome e la dimensione del tipo di carattere per Windows PowerShell ISE.

  • È possibile configurare gli avvisi, compresi quelli emessi quando un file viene aperto in più schede di PowerShell o quando uno script nel file viene eseguito prima che il file sia stato salvato.

  • È possibile passare da una visualizzazione in cui il riquadro di script e il riquadro di output sono affiancati a una visualizzazione in cui il riquadro di script è sopra il riquadro di output. È possibile ancorare il riquadro comandi alla parte inferiore o superiore del riquadro di output.

Miglioramento della funzionalità di ISE

È possibile utilizzare il modello a oggetti per migliorare la funzionalità di Windows PowerShell ISE. Ad esempio, è possibile:

  • Eseguire aggiunte e modifiche all'istanza di Windows PowerShell ISE. Ad esempio, è possibile modificare i menu aggiungendo nuove voci ed eseguendo il mapping delle nuove voci di menu agli script.

  • Creare script che eseguono alcune delle attività che è possibile effettuare tramite i comandi e i pulsanti di menu in Windows PowerShell ISE. Ad esempio, è possibile aggiungere, rimuovere o selezionare una scheda di PowerShell.

  • Completare le attività che possono essere eseguite tramite comandi e pulsanti di menu. Ad esempio, è possibile rinominare una scheda di PowerShell.

  • Modificare buffer di testo per il riquadro comandi, il riquadro di output e il riquadro di script associati a un file. Ad esempio, è possibile:

    • Ottenere o impostare tutto il testo.

    • Ottenere o impostare una selezione di testo.

    • Eseguire uno script o una parte selezionata di uno script.

    • Scorrere una riga nella visualizzazione.

    • Inserire testo in una posizione del punto di inserimento.

    • Selezionare un blocco del testo.

    • Ottenere l'ultimo numero di riga.

  • Eseguire operazioni con i file. Ad esempio, è possibile:

    • Aprire un file, salvarlo o salvarlo con un nome diverso.

    • Stabilire se un file è stato modificato dall'ultimo salvataggio.

    • Ottenere il nome file.

    • Selezionare un file.

Automatizzazione delle attività

È possibile utilizzare il modello a oggetti di scripting per creare tasti di scelta rapida per le operazioni frequenti.

Vedere anche

  • Gerarchia degli oggetti ISE
  • Riferimenti al modello a oggetti di Windows PowerShell ISE
  • Modello a oggetti di scripting di Windows PowerShell ISE


Gerarchia degli oggetti ISE

In questo argomento viene illustrato la gerarchia di oggetti che fanno parte di Windows PowerShell Integrated Scripting Environment (ISE). Facendo clic su un oggetto è possibile accedere alla documentazione di riferimento per la classe nello spazio dei nomi Microsoft.PowerShell.Host.ISE che definisce l'oggetto.

Oggetto $psISE

L'oggetto $psISE è l'oggetto radice della gerarchia di oggetti di Windows PowerShell Integrated Scripting Environment (ISE). Posizionato al primo livello, espone i quattro oggetti seguenti:

$psISE.CurrentFile

$psISE. CurrentPowerShellTab

$psISE.Options

$psISE.PowerShellTabs

$psISE.CurrentFile

L'oggetto $psISE.CurrentFile rende disponibili gli oggetti seguenti per lo scripting:

  • $psISE.CurrentFile.DisplayName

  • $psISE.CurrentFile.Editor L'oggetto $psISE.CurrentFile.Editor rende a sua volta disponibili questi oggetti per lo scripting:

    • $psISE.CurrentFile.Editor.CaretColumn

    • $psISE.CurrentFile.Editor.CaretLine

    • $psISE.CurrentFile.Editor.LineCount

    • $psISE.CurrentFile.Editor.SelectedText

    • $psISE.CurrentFile.Editor.Text

  • $psISE.CurrentFile.Encoding

  • $psISE.CurrentFile.FullPath

  • $psISE.CurrentFile.IsSaved

  • $psISE.CurrentFile.IsUntitled

$psISE.CurrentPowerShellTab

L'oggetto $psISE.CurrentPowerShellTab rende disponibili gli oggetti seguenti per lo scripting:

  • $psISE.CurrentPowerShellTab.AddOnsMenu L'oggetto $psISE.CurrentPowerShellTab.AddOnsMenu rende disponibili gli oggetti seguenti per lo scripting:

    • $psISE.CurrentPowerShellTab.AddOnsMenu.Action

    • $psISE.CurrentPowerShellTab.AddOnsMenu.DisplayName

    • $psISE.CurrentPowerShellTab.AddOnsMenu.Shortcut

    • $psISE.CurrentPowerShellTab.AddOnsMenu.Submenus

  • $psISE.CurrentPowerShellTab.CanInvoke

  • $psISE.CurrentPowerShellTab.CommandPane L'oggetto $psISE.CurrentPowerShellTab.CommandPane rende disponibili gli oggetti seguenti per lo scripting:

    • $psISE.CurrentPowerShellTab.CommandPane.CaretColumn

    • $psISE.CurrentPowerShellTab.CommandPane.CaretLine

    • $psISE.CurrentPowerShellTab.CommandPane.LineCount

    • $psISE.CurrentPowerShellTab.CommandPane.SelectedText

    • $psISE.CurrentPowerShellTab.CommandPane.Text

  • $psISE.CurrentPowerShellTab.DisplayName

  • $psISE.CurrentPowerShellTab.ExpandedScript

  • $psISE.CurrentPowerShellTab.Files

  • $psISE.CurrentPowerShellTab.Output L'oggetto $psISE.CurrentPowerShellTab.Output rende disponibili gli oggetti seguenti per lo scripting:

    • $psISE.CurrentPowerShellTab.Output.CaretColumn

    • $psISE.CurrentPowerShellTab.Output.CaretLine

    • $psISE.CurrentPowerShellTab.Output.LineCount

    • $psISE.CurrentPowerShellTab.Output.SelectedText

    • $psISE.CurrentPowerShellTab.Output.Text

  • $psISE.CurrentPowerShellTab.Prompt

  • $psISE.CurrentPowerShellTab.StatusText

$psISE.Options

L'oggetto $psISE.Options rende disponibili gli oggetti seguenti per lo scripting:

  • $psISE.Options.CommandPaneBackgroundColor

  • $psISE.Options.CommandPaneUp

  • $psISE.Options.DebugBackgroundColor

  • $psISE.Options.DebugForegroundColor

  • $psISE.Options.DefaultOptions

  • $psISE.Options.ErrorBackgroundColor

  • $psISE.Options.ErrorForegroundColor

  • $psISE.Options.FontName

  • $psISE.Options.Fontsize

  • $psISE.Options.OutputPaneBackgroundColor

  • $psISE.Options.OutputPaneTextForegroundColor

  • $psISE.Options.OutputPaneTextBackgroundColor

  • $psISE.Options.ScriptPaneBackgroundColor

  • $psISE.Options.ScriptPaneForegroundColor

  • $psISE.Options.SelectedScriptPaneState

  • $psISE.Options.ShowToolBar

  • $psISE.Options.ShowWarningBeforeSavingOnRun

  • $psISE.Options.ShowWarningForDuplicateFiles

  • $psISE.Options.TokenColors

  • $psISE.Options.UseLocalHelp

  • $psISE.Options.VerboseBackgroundColor

  • $psISE.Options.VerboseForegroundColor

  • $psISE.Options.WarningBackgroundColor

  • $psISE.Options.WarningForegroundColor

Vedere anche

  • Modello a oggetti di scripting di Windows PowerShell ISE
  • Riferimenti al modello a oggetti di Windows PowerShell ISE


Altri oggetti di scripting utili

Gli oggetti seguenti offrono funzionalità di scripting aggiuntive in Windows PowerShell ISE. Non fanno parte della gerarchia $psISE.

Oggetti di scripting utili

$psUnsupportedConsoleApplications

Vi sono alcune limitazioni sulle modalità di interazione di Windows PowerShell ISE con le applicazioni console. È possibile che un comando o uno script di automazione che richiede l'intervento dell'utente non funzioni nel modo in cui funziona da console di Windows PowerShell. È opportuno bloccare l'esecuzione di questi comandi o script nel riquadro comandi Windows PowerShell ISE. L'oggetto $psUnsupportedConsoleApplications conserva un elenco di tali comandi. Se si tenta di eseguire i comandi in questo elenco, si ottiene un messaggio in cui viene indicato che tali comandi non sono supportati. Nello script seguente viene aggiunta una voce all'elenco:

# List the unsupported commands
psUnsupportedConsoleApplications
# Add a command to this list
psUnsupportedConsoleApplications.Add(“Mycommand”)
#Show the augmented list of commands
psUnsupportedConsoleApplications

$psLocalHelp

Si tratta di un oggetto dizionario che gestisce un mapping sensibile al contesto tra argomenti della Guida e i relativi collegamenti associati nel file compilato della Guida HTML locale. Viene utilizzato per individuare la Guida locale per un particolare argomento. È possibile aggiungere o eliminare gli argomenti da questo elenco. Di seguito vengono riportate alcune coppie di valori chiave di esempio contenute in $psLocalHelp:

# See the local help map
$psLocalHelp |Format-List

Output di esempio:

Chiave : Add-Computer | Valore : WindowsPowerShellHelp.chm::/html/093f660c-b8d5-43cf-aa0c-54e5e54e76f9.htm
Chiave : Add-Content | Valore : WindowsPowerShellHelp.chm::/html/0c836a1b-f389-4e9a-9325-0f415686d194.htm

Nello script seguente viene aggiunta una voce all'elenco:

$psLocalHelp.Add("get-myNoun","c:\MyFolder\MyHelpChm.chm::/html/0198854a-1298-57ae-aa0c-87b5e5a84712.htm")

$psOnlineHelp

Si tratta di un oggetto dizionario che gestisce un mapping sensibile al contesto tra titoli degli argomenti della Guida e i relativi URL esterni associati. Viene utilizzato per individuare la Guida Web per un particolare argomento. È possibile aggiungere o eliminare gli argomenti da questo elenco.

$psOnlineHelp |format-list

Output di esempio:

Chiave : Add-Computer | Valore : http://go.microsoft.com/fwlink/?LinkID=135194
Chiave : Add-Content | Valore : http://go.microsoft.com/fwlink/?LinkID=113278

Nello script seguente viene aggiunta una voce all'elenco:

$psOnlineHelp.Add("get-myNoun","http://www.mydomain.com/MyNoun.html")

Vedere anche

  • Modello a oggetti di scripting di Windows PowerShell ISE


Riferimenti al modello a oggetti di Windows PowerShell ISE

Riferimento al modello a oggetti

In questa sezione viene fornito un riferimento alle classi sottostanti che definiscono i vari oggetti in ISE.

Oggetto ISEEditor
Esempi: $psISE.CurrentFile.Editor, $psISE.CurrentPowerShellTab.Output, $psISE.CurrentPowerShellTab.CommandPane.

Oggetto ISEFile
Esempi: $psISE.CurrentFile, $psISE.PowerShellTabs.Files[0].

Oggetto ISEFileCollection
Esempi: $psISE.PowerShellTabs.Files.

Oggetto ISEMenuItem
Esempi: $psISE.CurrentPowerShellTab.AddOnsMenu , $psISE.CurrentPowerShellTab.AddOnsMenu.Submenus[0].

Oggetto ISEMenuItemCollection
Esempio: $psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.

Oggetto ObjectModelRoot
Esempio: The root $psISE object.

Oggetto ISEOptions
Esempi: $psISE.Options, $psISE.Options.DefaultOptions.

Oggetto PowerShellTab
Esempi: $psISE.CurrentPowerShellTab, $psISE.PowerShellTabs[0].

Oggetto PowerShellTabCollection
Esempio: $psISE.PowerShellTabs.

Vedere anche

  • Modello a oggetti di scripting di Windows PowerShell ISE
  • Gerarchia degli oggetti ISE


Oggetto ISEEditor

Un oggetto ISEEditor è un'istanza della classe Microsoft.PowerShell.Host.ISE.ISEEditor. Gli editor del riquadro Output e del riquadro Comando sono oggetti ISEEditor. Ogni oggetto ISEFile dispone di un oggetto ISEEditor associato. Nelle sezioni seguenti vengono elencati i metodi e le proprietà di un oggetto ISEEditor.

Metodi

Clear()

Cancella il testo in editor.fre

# Clears the text in the Output pane.
$psIse.CurrentPowerShellTab.Output.Clear()

EnsureVisible(int lineNumber)

Scorre l'editor in modo che la riga corrispondente all'elemento lineNumber specificato sia visibile. Genera un'eccezione se l'elemento lineNumber specificato è fuori dall'intervallo (1, ultimo numero di riga) che definisce i numeri di riga validi.

lineNumber
Numero della riga che deve essere resa visibile.

# Scrolls the text in the Script Pane so that the fifth line is in view.
$psIse.CurrentFile.Editor.EnsureVisible(5)

Focus()

Imposta lo stato attivo sull'editor.

# Sets focus to the Output pane.
$psISE.CurrentPowerShellTab.Output.Focus()

GetLineLength(int lineNumber)

Ottiene la lunghezza della riga intera per la riga specificata da lineNumber.

lineNumber
Numero della riga di cui ottenere la lunghezza.

Valore restituito
Lunghezza della riga in corrispondenza di lineNumber.

# Gets the length of the first line in the text of the Command pane.
$psIse.CurrentPowerShellTab.CommandPane.GetLineLength(1)

InsertText(string text)

Sostituisce la selezione con testo o inserisce il testo nella posizione del punto di inserimento corrente.

text
Testo da inserire.

Vedere Scripting Example più avanti in questo argomento.

Select(int startLine, int startColumn, int endLine, int endColumn)

Seleziona il testo da startLine, startColumn per endLine, endColumn.

startLine
Riga da cui parte la selezione.

startColumn
Colonna all'interno di startLine da cui parte la selezione.

endLine
Riga in cui termina la selezione.

endColumn
Colonna all'interno di endLine in cui termina la selezione.

Vedere Scripting Example più avanti in questo argomento.

SetCaretPosition(int lineNumber, int columnNumber)

Imposta la posizione del punto di inserimento in corrispondenza di lineNumber e columnNumber. Genera un'eccezione se lineNumber o columnNumber sono all'esterno dei rispettivi intervalli validi.

lineNumber
Numero di riga del punto di inserimento.

columnNumber
Numero di colonna del punto di inserimento.

# Set the CaretPosition.
$firstfile=$psIse.CurrentFile
$firstFile.Editor.SetCaretPosition(5,1)

Proprietà

CaretColumn

Proprietà di sola lettura che ottiene il numero di colonna corrispondente alla posizione del punto di inserimento.

# Get the CaretColumn.
$firstfile=$psIse.CurrentFile
$firstFile.Editor.CaretColumn

CaretLine

Proprietà di sola lettura che ottiene il numero della riga che contiene il punto di inserimento.

# Get the CaretLine.
$firstfile=$psIse.CurrentFile
$firstFile.Editor.CaretLine

LineCount

Proprietà di sola lettura che ottiene il conteggio delle righe per l'editor.

# Get the LineCount.
$firstfile=$psIse.CurrentFile
$firstFile.Editor.LineCount

SelectedText

Proprietà di sola lettura che ottiene il testo selezionato dall'editor.

Vedere Scripting Example più avanti in questo argomento.

Text

Proprietà in lettura/scrittura che ottiene il testo nell'editor.

Vedere Scripting Example più avanti in questo argomento.

Esempio di scripting

# This illustrates how you can use the length of a line to select the entire line and shows how you can make it lowercase.
$myfile=$psIse.CurrentFile
# Start with clearing the text in the current file editor.
$myfile.Editor.Clear()

# Make sure the file has at least two lines of text.
$myfile.Editor.InsertText("LINE1 `n")
$myfile.Editor.InsertText("LINE2 `n")
$myfile.Editor.InsertText("LINE3 `n")
$myfile.Editor.InsertText("LINE4 `n")
$myfile.Editor.InsertText("LINE5 `n")

# You can use the GetLineLength method to get the length of the third line.
$endColumn= $myfile.Editor.GetLineLength(3)
# Select the text in the first three lines.
$myfile.Editor.Select(1,1,3,$endColumn + 1)
$selection = $myfile.Editor.SelectedText
# Clear all the text in the editor.
$myfile.Editor.Clear()
# Add the selected text back, but in lower case.
$myFile.Editor.InsertText($selection.ToLower())

Vedere anche

  • Oggetto ISEFile
  • Oggetto PowerShellTab
  • Modello a oggetti di scripting di Windows PowerShell ISE
  • Riferimenti al modello a oggetti di Windows PowerShell ISE
  • Gerarchia degli oggetti ISE


Oggetto ISEFile

Un oggetto ISEFile rappresenta un file in Windows PowerShell Integrated Scripting Environment (ISE). Si tratta di un'istanza della classe Microsoft.PowerShell.Host.ISE.ISEFile. In questo argomento vengono elencati i metodi e le proprietà dei membri. $psISE.CurrentFile e i file nella raccolta File in una scheda di PowerShell sono istanze della classe Microsoft.PowerShell.Host.ISE.ISEFile.

Metodi

Save(System.Text.Encoding saveEncoding)

Salva il file su disco.

saveEncoding
Codifica da utilizzare per il file salvato.

Eccezioni
  • System.IO.IOException: Impossibile salvare il file.

# Save the file as ASCII.
$myfile=$psIse.CurrentFile
$myfile.Save( [System.Text.Encoding]::ASCII)

# Gets the current encoding.
$myfile=$psIse.CurrentFile
$myfile.Encoding

Save()

Salva il file.

Eccezioni
  • System.IO.IOException: Impossibile salvare il file.

# Explicitly save the file.
$psIse.CurrentFile.save()

SaveAs(string fileName)

Salva il file con il nome file specificato.

nome file
Nome con cui salvare il file. La codifica predefinita per il metodo è UTF-16.

Eccezioni
  • System.ArgumentNullException: Il nome file è null.

  • System.ArgumentException: Il nome file è vuoto.

  • System.IO.IOException: Impossibile salvare il file.

# Explicitly save the file.
$fullpath = "c:\temp\newname.txt"
$myfile=$psIse.CurrentFile
$myfile.SaveAs($fullPath)

SaveAs(string fileName, System.Text.Encoding saveEncoding)

Salva il file con il nome file specificato nella codifica specificata.

nome file:
Nome con cui salvare il file. È possibile specificare il nome del percorso completo per il file.

saveEncoding
Codifica con cui salvare il file.

Eccezioni
  • System.ArgumentNullException: Il nome file è null.

  • System.ArgumentException: Il nome file è vuoto.

  • System.IO.IOException: Impossibile salvare il file.

# Explicitly save the file as UTF8.
$fullpath = "c:\temp\newname.txt"
$myfile=$psIse.CurrentFile
$myfile.SaveAs($fullPath, [System.Text.Encoding]::UTF8)
# Gets the current encoding.
$myfile=$psIse.CurrentFile
$myfile.Encoding

Proprietà

DisplayName

Proprietà di sola lettura che ottiene la stringa che contiene il nome visualizzato di questo file.

# Shows the display name of the file.
$psIse.CurrentFile.DisplayName

Editor

Proprietà di sola lettura che ottiene l'editor utilizzato per il file specificato.

# Gets the editor and the text.
$myfile=$psIse.CurrentFile
$myfile.Editor.Text

Encoding

Proprietà di sola lettura che ottiene la codifica del file originale. Si tratta di un oggetto System.Text.Encoding.

# Shows the encoding for the file.
$myfile=$psIse.CurrentFile
$myfile.Encoding

FullPath

Proprietà di sola lettura che ottiene la stringa che specifica il percorso completo del file aperto.

# Shows the full path for the file.
$myfile=$psIse.CurrentFile
$myfile.FullPath

IsSaved

Proprietà booleana di sola lettura che restituisce true se il file è stato salvato dall'ultima modifica.

# Determines whether the file has been saved since it was last modified.
$myfile=$psIse.CurrentFile
$myfile.IsSaved

IsUntitled

Proprietà di sola lettura che restituisce true se al file non è mai stato assegnato un titolo.

# Determines whether the file has never been given a title.
$psISE.CurrentFile.IsUntitled
$psISE.CurrentFile.SaveAs("temp.txt")
$psISE.CurrentFile.IsUntitled

Vedere anche

  • Oggetto ISEFileCollection
  • Modello a oggetti di scripting di Windows PowerShell ISE
  • Riferimenti al modello a oggetti di Windows PowerShell ISE
  • Gerarchia degli oggetti ISE


Oggetto ISEFileCollection

L'oggetto ISEFileCollection è una raccolta di oggetti ISEFile. La raccolta di file associata a un oggetto PowerShellTab è un membro di questa classe. Un esempio è la raccolta $psISE.CurrentPowerShellTab.Files.

Metodi

Add()

Crea e restituisce un nuovo file senza nome e lo aggiunge alla raccolta. La proprietà IsUntitled del file appena creato è true.

# Adds a new file to the collection of files in the current PowerShell tab.
$newFile = $psISE.CurrentPowerShellTab.Files.Add()
# Add the date as the first line of text in the new file.
$newFile.Editor.Text = "#" + (Get-Date)

Add(string fullPath)

Aggiunge un file specificato dal parametro fullPath alla raccolta di file. La proprietà IsUntitled del file appena creato è false.

Nota

Questo metodo genera un'eccezione se viene utilizzato un percorso relativo o un nome file anziché il percorso completo.

percorso completo
Il percorso specificato completo del file.

# Adds the file specified by its fullpath to the collection of files in the current PowerShell tab.
$psISE.CurrentPowerShellTab.Files.Add("$pshome\Examples\profile.ps1")

Remove(Microsoft.PowerShell.Host.ISE.ISEFile file)

Rimuove un file specificato dalla scheda corrente di PowerShell.

file
ISEFile che si desidera rimuovere dalla raccolta. Se il file non è stato salvato, questo metodo genera un'eccezione. Utilizzare l'override seguente per forzare la rimozione di un file non salvato.

# Removes the first opened file from the file collection associated with the current PowerShell tab.
$firstfile = $psISE.CurrentPowerShellTab.Files[0]
$psISE.CurrentPowerShellTab.Files.Remove($firstfile)

Remove(Microsoft.PowerShell.Host.ISE.ISEFile file, bool force)

Rimuove un file specificato dalla scheda corrente di PowerShell.

file
ISEFile che si desidera rimuovere dalla raccolta.

force
Parametro booleano che concede l'autorizzazione per rimuovere il file anche se non è stato salvato dall'ultimo utilizzo.

# Removes the first opened file from the file collection associated with the current PowerShell tab.
$firstfile = $psISE.CurrentPowerShellTab.Files[0]
$psISE.CurrentPowerShellTab.Files.Remove($firstfile, $true)

SetSelectedFile(Microsoft.PowerShell.Host.ISE.ISEFile selectedFile)

Seleziona il file specificato dal parametro selectedFile.

selectedFile
ISEFile che si desidera selezionare.

# Selects the specified file.
$firstfile = $psISE.CurrentPowerShellTab.Files[0]
$psISE.CurrentPowerShellTab.Files.SetSelectedFile($firstfile)

Vedere anche

  • Oggetto ISEFile
  • Modello a oggetti di scripting di Windows PowerShell ISE
  • Riferimenti al modello a oggetti di Windows PowerShell ISE
  • Gerarchia degli oggetti ISE


Oggetto ISEMenuItem

Un oggetto ISEMenuItem è un'istanza della classe Microsoft.PowerShell.Host.ISE.ISEMenuItem. Tutti gli oggetti del menu Componenti aggiuntivi sono membri della classe Microsoft.PowerShell.Host.ISE.ISEMenuItem.

Proprietà

DisplayName

Proprietà di sola lettura che ottiene il nome del menu.

# Get the display name of the Add-ons menu item
$psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Clear()
$psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add("_Process",{get-process},"Alt+P")
$psISE.CurrentPowerShellTab.AddOnsMenu.DisplayName

Azione

Proprietà di sola lettura che ottiene lo script (blocco) da richiamare quando si fa clic sulla voce di menu.

# Get the action associated with the first submenu item.
$psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Clear()
$psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add("_Process",{get-process},"Alt+P")
$psISE.CurrentPowerShellTab.AddOnsMenu.Submenus[0].Action
# Invoke the script associated with the first submenu item (Note the “.” At the beginning of the command).
# Invoke the action
$psISE.CurrentPowerShellTab.AddOnsMenu.Submenus[0].Action.Invoke()

Shortcut

Proprietà di sola lettura che ottiene il movimento della chiave di input di Windows per la voce di menu.

# Get the shortcut for the first submenu item.
$psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Clear()
$psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add("_Process",{get-process},"Alt+P")
$psISE.CurrentPowerShellTab.AddOnsMenu.Submenus[0].Shortcut

Submenus

Proprietà di sola lettura che ottiene l'elenco di sottomenu della voce di menu.

# List the submenus of the Add-ons menu
$psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Clear()
$psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add("_Process",{get-process},"Alt+P")
$psISE.CurrentPowerShellTab.AddOnsMenu.Submenus

Esempio di scripting

Per comprendere meglio l'utilizzo del menu Componenti aggiuntivi e delle relative proprietà di script, consultare l'esempio di scripting seguente:

# This is a scripting example that shows the use of the Add-ons menu.
# Clear the Add-ons menu if one exists
$psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Clear()
# Add an Add-ons menu with an accessor.
# Note the use of “_”  as opposed to the “&” for mapping to the fast key letter for the menu item.
$menuAdded = $psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add("_Process",{get-process},"Alt+P")
# Add a nested menu.
$parentAdded = $psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add("Parent",$null,$null)
$parentAdded.SubMenus.Add("_Dir",{dir},"Ctrl+Shift+D")

Vedere anche

  • Oggetto ISEMenuItemCollection
  • Modello a oggetti di scripting di Windows PowerShell ISE
  • Riferimenti al modello a oggetti di Windows PowerShell ISE
  • Gerarchia degli oggetti ISE


Oggetto ISEMenuItemCollection

ISEMenuItemCollection è una raccolta di oggetti ISEMenuItem. Si tratta di un'istanza della classe Microsoft.PowerShell.Host.ISE.ISEMenuItemCollection. Un esempio è l'oggetto $psISE.CurrentPowerShellTab.AddOnsMenu.Submenus utilizzato per personalizzare i menu in Windows PowerShell Integrated Scripting Environment (ISE).

Metodo

Add(string displayName, System.Management.Automation.ScriptBlock action, System.Windows.Input.KeyGesture shortcut)

Consente di aggiungere una voce di menu alla raccolta

nome visualizzato
Nome visualizzato del menu da aggiungere

azione
System.Management.Automation.ScriptBlock che specifica l'azione associata a questa voce di menu.

tasto di scelta rapida
Il tasto di scelta rapida per l'azione. È di tipo System.Windows.Input.KeyGesture.

Valore restituito:
ISEMenuItem che è stato appena aggiunto.

# Create an Add-ons menu with an accessor.
# Note the use of “_”  as opposed to the “&” for mapping to the accelerator for the menu item.
$menuAdded = $psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add("_Process",{get-process},"Alt+P")

Vedere anche

  • Oggetto ISEMenuItem
  • Modello a oggetti di scripting di Windows PowerShell ISE
  • Riferimenti al modello a oggetti di Windows PowerShell ISE
  • Gerarchia degli oggetti ISE


Oggetto ISEOptions

L'oggetto Options rappresenta varie impostazioni di Windows PowerShell ISE. Si tratta di un'istanza della classe Microsoft.PowerShell.Host.ISE.ISEOptions.

Metodi

RestoreDefaultTokenColors()

Ripristina i valori predefiniti dei colori dei token.

# Changes the color of the comments in the script to red and then restores it to its default value.
$psISE.Options.TokenColors["Comment"]="red"
$psISE.Options.RestoreDefaultTokenColors()

RestoreDefaults()

Ripristina i valori predefiniti di tutte le impostazioni delle opzioni. Reimposta inoltre il comportamento dei vari messaggi di avviso che forniscono la casella di controllo standard "Non visualizzare più questo messaggio".

# Changes the background color in the Command Pane and then restores it to its default value.
$psISE.Options.CommandPaneBackground = "orange"
$psISE.Options.RestoreDefaults()

Proprietà

CommandPaneBackgroundColor

Proprietà di lettura/scrittura che ottiene o imposta il colore di sfondo per l'editor del riquadro comandi. Si tratta di un'istanza della classe System.Windows.Media.Color.

# Changes the background color of the Command Pane to orange.
$psISE.Options.CommandPaneBackground = "orange"

CommandPaneUp

Proprietà di lettura/scrittura che ottiene o imposta un valore booleano che indica se il riquadro comandi si trova sopra il riquadro di output.

# Moves the Command Pane to the top of the screen.
$psISE.Options.CommandPaneUp  = $true

DebugBackgroundColor

Proprietà di lettura/scrittura che ottiene o imposta il colore di sfondo per il testo di debug che viene visualizzato nel riquadro di output. Si tratta di un'istanza della classe System.Windows.Media.Color.

# Changes the background color for the debug text that appears in the Output Pane to blue.
$psISE.Options.DebugBackgroundColor ='#0000FF'

DebugForegroundColor

Proprietà di lettura/scrittura che ottiene o imposta il colore di primo piano per il testo di debug che viene visualizzato nel riquadro di output. Si tratta di un'istanza della classe System.Windows.Media.Color.

# Changes the foreground color for the debug text that appears in the Output Pane to yellow.
$psISE.Options.DebugForegroundColor =”yellow”

DefaultOptions

Proprietà di sola lettura che ottiene i valori predefiniti delle impostazioni delle opzioni.

# Displays the name of the default options.
$psISE.Options.DefaultOptions
# Here is a typical listing of the default options:
SelectedScriptPaneState       : Right
ShowToolBar                   : True
TokenColors                   : {[Attribute, #FFADD8E6], [Command, #FF0000FF], [Com
                                mandArgument, #FF8A2BE2], [CommandParameter, #FF000
                                080]...}
DefaultOptions                : Microsoft.PowerShell.Host.ISE.ISEOptions
FontSize                      : 12
FontName                      : Lucida Console
ErrorForegroundColor          : #FF0000FF
ErrorBackgroundColor          : #00FFFFFF
WarningForegroundColor        : #FFFF8C00
WarningBackgroundColor        : #00FFFFFF
VerboseForegroundColor        : #FF0000FF
VerboseBackgroundColor        : #00FFFFFF
DebugForegroundColor          : #FF0000FF
DebugBackgroundColor          : #00FFFFFF
OutputPaneBackgroundColor     : #FFF0F8FF
OutputPaneTextBackgroundColor : #FFF0F8FF
OutputPaneForegroundColor     : #FF000000
CommandPaneBackgroundColor    : #FFFFFFFF
ScriptPaneBackgroundColor     : #FFFFFFFF
ShowWarningForDuplicateFiles  : True
ShowWarningBeforeSavingOnRun  : True
UseLocalHelp                  : True
CommandPaneUp                 : False

ErrorBackgroundColor

Proprietà di lettura/scrittura che ottiene o imposta il colore di sfondo per il testo di errore che viene visualizzato nel riquadro di output. Si tratta di un'istanza della classe System.Windows.Media.Color.

# Changes the background color for the error text that appears in the Output Pane to black.
$psISE.Options.ErrorBackgroundColor="black"

ErrorForegroundColor

Proprietà di lettura/scrittura che ottiene o imposta il colore di primo piano per il testo di errore che viene visualizzato nel riquadro di output. Si tratta di un'istanza della classe System.Windows.Media.Color.

# Changes the foreground color for the error text that appears in the Output Pane to green.
$psISE.Options.ErrorForegroundColor =”green”

FontName

Proprietà di lettura/scrittura che ottiene o imposta il nome del tipo di carattere utilizzato nel riquadro di script, nel riquadro comandi e nel riquadro di ouput.

# Changes the font used in all the panes.
$psISE.Options.FontName = "courier new"

FontSize

Proprietà di lettura/scrittura che ottiene o imposta le dimensioni del tipo di carattere (valore intero) utilizzato nel riquadro di script, nel riquadro comandi e nel riquadro di ouput. L'intervallo valido di valori è compreso tra 8 e 32.

# Changes the font size in all the panes.
$psISE.Options.FontSize = 20

OutputPaneBackgroundColor

Proprietà di lettura/scrittura che ottiene o imposta il colore di sfondo per il riquadro di output. Si tratta di un'istanza della classe System.Windows.Media.Color.

# Changes the background color of the Output Pane to gold.
$psISE.Options.OutputPaneForegroundColor = "gold"

OutputPaneTextForegroundColor

Proprietà di lettura/scrittura che modifica il colore di primo piano del testo nel riquadro di output.

# Changes the foreground color of the text in the Output Pane to blue.
$psISE.Options.OutputPaneTextForegroundColor  = "blue"

OutputPaneTextBackgroundColor

Proprietà di lettura/scrittura che modifica il colore di sfondo del testo nel riquadro di output.

# Changes the background color of the Output Pane text to pink.
$psISE.Options.OutputPaneTextBackgroundColor = "pink"

ScriptPaneBackgroundColor

Proprietà di lettura/scrittura che ottiene o imposta il colore di sfondo per i file. Si tratta di un'istanza della classe System.Windows.Media.Color.

# Sets the color of the script pane background to yellow.
$psISE.Options.ScriptPaneBackgroundColor = ”yellow”

ScriptPaneForegroundColor

Proprietà di lettura/scrittura che ottiene o imposta il colore di primo piano per file non di script nel riquadro di script. Per impostare il colore di primo piano per i file di script, utilizzare la proprietà TokenColors.

# Sets the foreground to color of non-script files in the script pane to green.
$psISE.Options.ScriptPaneBackgroundColor = ”green”

SelectedScriptPaneState

Proprietà di lettura/scrittura che ottiene o imposta la posizione del riquadro di script sullo schermo. I valori possibili sono "top", "right" e "Maximized".

# Moves the Script Pane to the top
$psISE.Options.SelectedScriptPaneState = "Top"
# Moves the Script Pane to the right.
$psISE.Options.SelectedScriptPaneState = "Right"
# Maximizes the Script Pane
$psISE.Options.SelectedScriptPaneState = "Maximized"

ShowToolBar

Proprietà booleana di lettura/scrittura che determina se la barra degli strumenti è visibile o meno.

# Show the tool bar.
$psISe.Options.ShowToolBar = $true

ShowWarningBeforeSavingOnRun

Proprietà di lettura/scrittura che ottiene o imposta un valore booleano che determina se un messaggio di avviso viene visualizzato quando uno script viene salvato automaticamente prima che venga eseguito.

# Sets the option to display a warning message
# when an attempt is made to save a script before running it.
$psISE.Options.ShowWarningBeforeSavingOnRun=$true

ShowWarningForDuplicateFiles

Proprietà di lettura/scrittura che ottiene o imposta un valore booleano che comporta la visualizzazione di un messaggio di avviso quando lo stesso file viene aperto in più schede di PowerShell.

# Set the ShowWarningForDuplicateFiles property to true.
$psISE.Options.ShowWarningForDuplicateFiles = $true
# The following  message is displayed: “A copy of this file
# is open in another PowerShell Tab. Changes made to this
# file will affect all open copies.”

TokenColors

Proprietà che ottiene un oggetto dizionario contenente coppie nome/valore di tipi di token e colori per il riquadro comandi e il riquadro di script.

# Sets the color of commands to green.
$psISE.Options.TokenColors["Command"] = "green"
# Sets the color of keywords to magenta.
$psISE.Options.TokenColors["Keyword"] = "magenta"

UseLocalHelp

Proprietà di lettura/scrittura che ottiene o imposta un valore booleano che indica se viene visualizzata la Guida locale o la Guida online.

# Sets the option for the online help to be displayed.
$psISE.Options.LocalHelp=$false

VerboseBackgroundColor

Proprietà di lettura/scrittura che ottiene o imposta il colore di sfondo per il testo dettagliato che viene visualizzato nel riquadro di output. Si tratta di un oggetto System.Windows.Media.Color.

# Changes the background color for the verbose text that appears in the Output Pane to blue.
$psISE.Options.VerboseBackgroundColor ='#0000FF'

VerboseForegroundColor

Proprietà di lettura/scrittura che ottiene o imposta il colore di primo piano per il testo dettagliato che viene visualizzato nel riquadro di output. Si tratta di un oggetto System.Windows.Media.Color.

# Changes the foreground color for the verbose text that appears in the Output Pane to yellow.
$psISE.Options.VerboseForegroundColor =”yellow”

WarningBackgroundColor

Proprietà di lettura/scrittura che ottiene o imposta il colore di sfondo per il testo di avviso che viene visualizzato nel riquadro di output. Si tratta di un oggetto System.Windows.Media.Color.

# Changes the background color for the warning text that appears in the Output Pane to blue.
$psISE.Options.WarningBackgroundColor ='#0000FF'

WarningForegroundColor

Proprietà di lettura/scrittura che ottiene o imposta il colore di primo piano per il testo dell'avviso che viene visualizzato nel riquadro di output. Si tratta di un oggetto System.Windows.Media.Color.

# Changes the foreground color for the warning text that appears in the Output Pane to yellow.
$psISE.Options.WarningForegroundColor =”yellow”

Vedere anche

  • Modello a oggetti di scripting di Windows PowerShell ISE
  • Riferimenti al modello a oggetti di Windows PowerShell ISE
  • Gerarchia degli oggetti ISE


Oggetto ObjectModelRoot

In questo argomento viene descritto un oggetto ObjectModelRoot. Si tratta di un'istanza della classe Microsoft.PowerShell.Host.ISE.ObjectModelRoot. L'oggetto $psISE, che è l'oggetto radice dell'entità in Windows PowerShell Integrated Scripting Environment (ISE) appartiene a questa classe. In questo argomento vengono descritte le proprietà dell'oggetto ObjectModelRoot.

Proprietà

CurrentFile

Proprietà di sola lettura che ottiene o imposta il file associato a questo oggetto host che attualmente dispone dello stato attivo.

CurrentPowerShellTab

Proprietà di sola lettura che ottiene la scheda di PowerShell che dispone dello stato attivo.

Options

Proprietà di sola lettura che ottiene le varie opzioni disponibili per la modifica delle impostazioni in Windows PowerShell ISE.

PowerShellTabs

Proprietà di sola lettura che ottiene la raccolta delle schede di PowerShell aperte in Windows PowerShell ISE. Per impostazione predefinita, questo oggetto contiene una scheda di PowerShell. Tuttavia, è possibile aggiungere più schede di PowerShell a questo oggetto tramite gli script o i menu in Windows PowerShell ISE.

Vedere anche

  • Modello a oggetti di scripting di Windows PowerShell ISE
  • Riferimenti al modello a oggetti di Windows PowerShell ISE
  • Gerarchia degli oggetti ISE


Oggetto PowerShellTab

L'oggetto scheda di PowerShell rappresenta un ambiente di esecuzione di Windows PowerShell. Esempio: $psISE.CurrentPowerShellTab.

Metodi

Di seguito sono riportati i metodi dell'oggetto scheda di PowerShell.

Invoke(System.Management.Automation.ScriptBlock script)

Esegue lo script specificato nella scheda di PowerShell.

Nota

Questo metodo può essere utilizzato solo in altre schede di PowerShell e non sulla scheda di PowerShell in cui viene eseguito.

script:
Script da eseguire.

# Manually create a second PowerShell tab before running this script.
# Return to the first tab and type
$secondTab = $psise.PowerShellTabs[1]
$secondTab.Invoke({dir})

Proprietà

AddOnsMenu

Proprietà di sola lettura che ottiene il menu Componenti aggiuntivi per la scheda di PowerShell.

# Clear the Add-ons menu if one exists.
$psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Clear()
# Create an AddOns menu with an accessor.
# Note the use of “_”  as opposed to the “&” for mapping to the fast key letter for the menu item.
$menuAdded = $psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add("_Process",{get-process},"Alt+P")
# Add a nested menu.
$parentAdded = $psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add("Parent",$null,$null)
$parentAdded.SubMenus.Add("_Dir",{dir},"Alt+D")
# Show the Add-ons menu on the current PowerShell tab.
$psISE.CurrentPowerShellTab.AddOnsMenu

CanInvoke

Proprietà booleana di sola lettura che ottiene un vero true quando è possibile richiamare uno script con il metodo Invoke(System.Management.Automation.ScriptBlock script).

# CanInvoke will be false if the PowerShell
# tab is running a script that takes a while, and you
# check its properties from another PowerShell tab. It is
# always false if checked on the current PowerShell tab.
# Manually create a second PowerShell tab before
# running this script.
# Return to the first tab and type
$secondTab = $psise.PowerShellTabs[1]
$secondTab.CanInvoke
$secondTab.Invoke({sleep 20})
$secondTab.CanInvoke

Commandpane

Proprietà di sola lettura che ottiene l'oggetto editor del riquadro comandi.

# Gets the Command Pane editor.
$psISE.CurrentPowerShellTab.CommandPane

DisplayName

Proprietà in lettura/scrittura che ottiene o imposta il nome della scheda di PowerShell.

$newTab = $psise.PowerShellTabs.Add()
# Change the DisplayName of the new PowerShell tab.
$newTab.DisplayName="Brand New Tab"

ExpandedScript

Proprietà booleana in lettura/scrittura che determina se il riquadro di script è espanso o nascosto.

# Toggle the expanded script property to see its effect.
$PSise.CurrentPowerShellTab.ExpandedScript=!$PSise.CurrentPowerShellTab.ExpandedScript

Files

Proprietà di sola lettura che ottiene la raccolta di file di script aperti nella scheda di PowerShell.

$newFile = $psISE.CurrentPowerShellTab.Files.Add()
$newFile.Editor.Text = "a`r`nb"
# Gets the line count.
$newFile.Editor.LineCount

Output

Proprietà di sola lettura che ottiene l'editor di output.

# Clears the text in the output.
$psise.CurrentPowerShellTab.output.clear()

Prompt

Proprietà di sola lettura che ottiene il testo del prompt corrente.

# Gets the current prompt text.
$psISE.CurrentPowerShellTab.Prompt

StatusText

Proprietà di sola lettura che ottiene il testo dello stato di PowerShellTab.

# Gets the current status text,
$psISE.CurrentPowerShellTab.StatusText

Vedere anche

  • Oggetto PowerShellTabCollection
  • Modello a oggetti di scripting di Windows PowerShell ISE
  • Riferimenti al modello a oggetti di Windows PowerShell ISE
  • Gerarchia degli oggetti ISE


Oggetto PowerShellTabCollection

L'oggetto raccolta PowerShellTab è una raccolta di oggetti PowerShellTab. Si tratta di un'istanza della classe Microsoft.PowerShell.Host.ISE.PowerShellTabs. Un esempio è rappresentato dall'oggetto $psISE.PowerShellTabs.

Metodi

Add()

Aggiunge una nuova scheda di PowerShell alla raccolta. Restituisce la scheda appena aggiunta.

$psISE.PowerShellTabs.Add()

SetSelectedPowerShellTab(Microsoft.PowerShell.Host.ISE.PowerShellTab psTab)

Seleziona la scheda di PowerShell specificata da pstab.

psTab
La scheda di PowerShell da selezionare.

$newTab = $psISE.PowerShellTabs.Add()
# Change the DisplayName of the new PowerShell tab.
$newTab.DisplayName="Brand New Tab"

Remove(Microsoft.PowerShell.Host.ISE.PowerShellTab psTab)

Rimuove la scheda specificata da pstab.

psTab
La scheda di PowerShell da rimuovere.

$newTab = $psISE.PowerShellTabs.Add()
Change the DisplayName of the new PowerShell tab.
$newTab.DisplayName="This tab will go away in 5 seconds"
sleep 5
$psISE.PowerShellTabs.Remove($newTab)

Vedere anche

  • Oggetto PowerShellTab
  • Modello a oggetti di scripting di Windows PowerShell ISE
  • Riferimenti al modello a oggetti di Windows PowerShell ISE
  • Gerarchia degli oggetti ISE


Guida della console PowerShell.exe

Avvia Windows PowerShell dalla riga di comando di un altro strumento, ad esempio Cmd.exe.

Sintassi

PowerShell[.exe]
       [-PSConsoleFile <file> | -Version <version>]
       [-EncodedCommand <Base64EncodedCommand>]
       [-ExecutionPolicy <ExecutionPolicy>]
       [-File <filePath> <args>]
       [-InputFormat {Text | XML}]
       [-NoExit]
       [-NoLogo]
       [-NonInteractive]
       [-NoProfile]
       [-OutputFormat {Text | XML}]
       [-Sta]
       [-WindowStyle <style>]
       [-Command { - | <script-block> [-args <arg-array>]
                     | <string> [<CommandParameters>] } ]

PowerShell[.exe] -Help | -? | /?

Parametri

-EncodedCommand

Accetta una versione di un comando di tipo stringa codificata in base 64. Utilizzare questo parametro per inviare comandi che richiedono virgolette o parentesi graffe complesse a Windows PowerShell .

-ExecutionPolicy

Imposta il criterio di esecuzione predefinito per la sessione. Questo parametro non modifica il criterio di esecuzione di Windows PowerShell impostato nel Registro di sistema.

-File

Esegue lo script specificato. Immettere il percorso del file script e i relativi parametri.

-InputFormat

Descrive il formato di dati inviato a Windows PowerShell. I valori validi sono "Text" (stringhe di testo) o "XML" (formato CLIXML serializzato).

-NoExit

Non viene chiuso dopo l'esecuzione dei comandi di avvio.

-NoLogo

Nasconde le informazioni sul copyright all'avvio.

-NonInteractive

Non presenta un prompt interattivo all'utente.

-NoProfile

Non carica il profilo di Windows PowerShell.

-OutputFormat

Determina la formattazione dell'output di Windows PowerShell. I valori validi sono "Text" (stringhe di testo) o "XML" (formato CLIXML serializzato).

-PSConsoleFile

Carica il file della console di Windows PowerShell specificato. Per creare un file della console, utilizzare il cmdlet Export-Console in Windows PowerShell.

-Sta

Avvia la shell utilizzando un apartment a thread singolo.

-Version

Avvia la versione specificata di Windows PowerShell. Immettere un numero di versione con il parametro, ad esempio "- version 1.0".

-WindowStyle

Imposta lo stile della finestra su Normal, Minimized, Maximized Hidden.

-Command

Esegue i comandi specificati (e gli eventuali parametro) come se fossero stati digitati al prompt dei comandi di Windows PowerShell e successivamente viene chiuso, a meno che non sia specificato NoExit. Il valore di Command può essere "-", una stringa o un blocco di script.

Se il valore di Command è "-", il testo del comando viene letto da input standard.

I blocchi di script devono essere racchiusi tra parentesi graffe ({}). È possibile specificare un blocco di script solo in caso di esecuzione di PowerShell.exe in Windows PowerShell. I risultati dello script vengono restituiti alla shell padre come oggetti XML deserializzati, non come oggetti attivi.

Se il valore di Command è una stringa, Command deve essere l'ultimo parametro nel comando, perché i caratteri digitati dopo Command vengono interpretati come argomenti del comando.

Per scrivere una stringa che esegua un comando di Windows PowerShell, utilizzare il formato:

"& {<command>}"

in cui le virgolette indicano la stringa e l'operatore di richiamo (&) causa l'esecuzione del comando.

-Help, -?, /?

Mostra questo messaggio. Se si digita un comando PowerShell.exe in Windows PowerShell, anteporre ai parametri del comando un trattino (-) e non una barra (/). In Cmd.exe, è possibile utilizzare il trattino o la barra.

ESEMPI

PowerShell -PSConsoleFile sqlsnapin.psc1

PowerShell -version 1.0 -NoLogo -InputFormat text -OutputFormat XML

PowerShell -Command {Get-EventLog -LogName security}

PowerShell -Command "& {Get-EventLog -LogName security}"

# To use the -EncodedCommand parameter:
$command = "dir 'c:\program files' "
$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$encodedCommand = [Convert]::ToBase64String($bytes)
powershell.exe -encodedCommand $encodedCommand


Informazioni sul copyright

Questo programma viene concesso in licenza.

Attenzione: questo programma è tutelato dalle leggi sul copyright, dalle leggi sui diritti d'autore e dalle disposizioni dei trattati internazionali. La riproduzione o distribuzione non autorizzata di questo programma, o di parte di esso, sarà perseguibile civilmente e penalmente nella misura massima consentita dalla legge in vigore.

Le informazioni contenute nel presente documento, inclusi gli URL e altri riferimenti a siti Web, sono soggette a modifiche senza preavviso. Se non diversamente specificato, i nomi di società, organizzazioni, prodotti, domini, persone e luoghi, nonché gli indirizzi di posta elettronica, i logo e gli eventi utilizzati negli esempi sono fittizi. Non esistono, né devono essere dedotti, collegamenti a società, organizzazioni, prodotti, nomi di dominio, indirizzi di posta elettronica, logo, persone, luoghi ed eventi reali. Il rispetto di tutte le applicabili leggi in materia di copyright è esclusivamente a carico dell'utente. Fermi restando tutti i diritti coperti da copyright, nessuna parte di questo documento potrà comunque essere riprodotta o inserita in un sistema di riproduzione o trasmessa in qualsiasi forma e con qualsiasi mezzo (in formato elettronico, meccanico, su fotocopia, come registrazione o altro) per qualsiasi scopo, senza il permesso scritto di Microsoft Corporation.

Microsoft può essere titolare di brevetti, domande di brevetto, marchi, copyright o altri diritti di proprietà intellettuale relativi all'oggetto del presente documento. Salvo quanto espressamente previsto in un contratto scritto di licenza Microsoft, la consegna del presente documento non implica la concessione di alcuna licenza su tali brevetti, marchi, copyright o altra proprietà intellettuale.

© 2009 Microsoft Corporation. Tutti i diritti riservati.

Microsoft e Microsoft Office Word, Microsoft Office Excel, Microsoft Visual Studio, Windows 7, Windows PowerShell, Windows Server 2008, Windows Server 2003, Windows XP, Windows Vista e MSDN sono marchi delle società del gruppo Microsoft.

Tutti gli altri marchi sono proprietà dei rispettivi proprietari.