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 




Argomenti della Guida