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  




Argomenti della Guida