Compartilhar via


about_PSSessions

TÓPICO
    about_PSSessions

DESCRIÇÃO RESUMIDA
    Descreve sessões do Windows PowerShell (PSSessions) e explica como 
    estabelecer uma conexão persistente com um computador remoto. 


DESCRIÇÃO LONGA
    Para executar comandos do Windows PowerShell em um computador 
    remoto, você pode usar o parâmetro ComputerName de um cmdlet ou 
    criar uma sessão do Windows PowerShell (PSSession) e executar 
    comandos na PSSession. 

    Quando você cria uma PSSession, o Windows PowerShell estabelece 
    uma conexão persistente com o computador remoto. Use uma 
    PSSession para executar uma série de comandos relacionados em um 
    computador remoto. Comandos que são executados na mesma PSSession 
    podem compartilhar dados, como os valores de variáveis, aliases 
    e funções.

    Você também pode criar uma PSSession no computador local e executar 
    comandos nela. Uma PSSession local usa a infraestrutura de comunicação 
    remota do Windows PowerShell para criar e manter a PSSession.

    Este tópico explica como criar, usar, obter e excluir PSSessions. 
    Para obter informações mais detalhadas, consulte "about_PSSession_Details".

    Observações: as PSSessions usam a infraestrutura de comunicação 
                 remota do Windows PowerShell. Para usar PSSessions, 
                 os computadores local e remoto devem ser configurados 
         para comunicação remota. Para obter mais informações, 
         consulte about_Remote_Requirements. 

             No Windows Vista e em versões mais recentes do Windows, 
             para criar uma PSSession em um computador local, você 
             precisa inicia o Windows PowerShell com a opção "Executar 
             como administrador". 

 O QUE É UMA SESSÃO?
    Uma sessão é um ambiente no qual o Windows PowerShell é executado. 
    Toda vez que você inicia o Windows PowerShell, uma sessão é criada. 
    Você pode executar comandos nessa sessão. Você também pode 
    adicionar itens à sua sessão, como módulos e snap-ins, e criar 
    itens, como variáveis, funções e aliases. Esses itens só existem 
    na sessão e são excluídos quando a sessão termina.

    Você também pode criar sessões adicionais, conhecidas como "sessões 
    do Windows PowerShell" ou "PSSessions", no computador local ou 
    em um computador remoto. Como na sessão padrão, é possível executar 
    comandos em uma PSSession e adicionar e criar itens.  

    Porém, ao contrário das sessões inicializadas automaticamente, 
    você pode controlar as PSSessions que você cria. Você pode obter, 
    criar, configurar e remover as PSSessions, além de executar vários 
    comandos na mesma PSSession. A PSSession permanece aberta 
    e disponível até que você a exclua da sessão.
      
    Normalmente, você cria uma PSSession para executar uma série de 
    comandos relacionados em um computador remoto. Quando você cria uma 
    PSSession em um computador remoto, o Windows PowerShell estabelece 
    uma conexão persistente com o computador remoto para oferecer suporte 
    à sessão. 

    Se você usar o parâmetro computerName do cmdlet Invoke-Command ou 
    Enter-PSSession para executar um comando remoto ou iniciar uma sessão 
    interativa, o Windows PowerShell criará uma sessão temporária no 
    computador remoto e fechará a sessão assim que o comando concluir ou 
    a sessão interativa terminar. Você não pode controlar essas sessões 
    temporárias nem usá-las para mais de um único comando ou uma única 
    sessão interativa.

    No Windows PowerShell, a "sessão atual" é a sessão na qual você está 
    trabalhando. A "sessão atual" pode fazer referência a qualquer 
    sessão, inclusive a uma sessão temporária ou uma PSSession.


 POR QUE USAR UMA PSSESSION?
    Use uma PSSession quando precisar de uma conexão persistente com um 
    computador remoto. Com uma PSSession, é possível executar uma série 
    de comandos que compartilham dados, como o valor de variáveis, 
    o conteúdo de uma função ou a definição de um alias.

    Você pode executar comandos remotos sem criar uma PSSession. Use 
    o parâmetro ComputerName de cmdlets habilitados remotamente para 
    executar um único comando ou uma série de comandos não 
    relacionados, em um ou mais computadores.

    Quando você usa o parâmetro ComputerName de Invoke-Expression ou Enter-
    PSSession, o Windows PowerShell estabelece uma conexão temporária com 
    o computador remoto e fecha a conexão assim que o comando é concluído. 
    Todos os elemento de dados que você cria são perdidos quando a conexão 
    é encerrada. 

    Outros cmdlets que têm um parâmetro ComputerName, como o Get-Eventlog 
    e o Get-WmiObject, usam tecnologias de comunicação remota diferentes 
    para coletar dados. Nenhum cria uma conexão persistente como uma 
    PSSession.
     

 COMO CRIAR UMA PSSESSION
    Para criar uma PSSession, use o cmdlet New-PSSession. Para criar 
    a PSSession em um computador remoto, use o parâmetro ComputerName 
    do cmdlet New-PSSession.

    Por exemplo, o comando a seguir cria uma nova PSSession no computador 
    Server01.

        new-pssession -computername Server01

    Quando você envia o comando, o New-PSSession cria a PSSession 
    e retorna um objeto que representa a PSSession. Você pode salvar 
    o objeto em uma variável quando criar a PSSession ou pode usar um comando 
    Get-PSSession para obter a PSSession posteriormente.

    Por exemplo, o comando a seguir cria uma nova PSSession no computador 
    Server01 e salva o objeto resultante na variável $ps.
    
        $ps = new-pssession -computername Server01


 COMO CRIAR PSSESSIONS EM VÁRIOS COMPUTADORES
    Para criar PSSessions em vários computadores, use o parâmetro 
    ComputerName do cmdlet New-PSSession. Digite os nomes dos 
    computadores remotos em uma lista separada por vírgulas. 

    Por exemplo, para criar PSSessions nos computadores Server01, 
    Server02 e Server03, digite:

        new-PSSession -computername Server01, Server02, Server03

    O New-PSSession cria uma PSSession em cada computador remoto. 


 COMO OBTER PSSESSIONS 
    Para obter PSSessions que foram criadas na sessão atual, use 
    o cmdlet Get-PSSession. O Get-PSSession retorna o mesmo tipo de 
    objeto que o New-PSSession. 

    O comando a seguir obtém todas as PSSessions criadas na sessão atual.

        get-PSSession

    A exibição padrão das PSSessions mostra as IDs e os nomes de exibição
    padrão. Você pode atribuir um nome de exibição
    alternativo ao criar a Sessão.

        Id   Name       ComputerName    State    ConfigurationName
        ---  ----       ------------    -----    ---------------------
        1    Session1   Server01        Opened   Microsoft.PowerShell
        2    Session2   Server02        Opened   Microsoft.PowerShell
        3    Session3   Server03        Opened   Microsoft.PowerShell

   
    Você também pode salvar as PSSessions em uma variável. O comando 
    a seguir obtém as PSSessions e as salva na variável $ps123.

        $ps123 = get-PSSession  

    Ao usar os cmdlets da PSSession, você pode fazer referência a uma 
    PSSession por ID ou nome, ou pela ID de instância (um GUID). 
    O comando a seguir obtém uma PSSession por ID e a salva na variável 
    $ps01.

        $ps01 = get-PSSession -id 1

    O Get-PSSession só obtém as PSSessions criadas na sessão atual. 
    Ele não obtém as PSSessions criadas em outras sessões ou em outros 
    computadores, mesmo se as sessões estiverem conectadas ao computador 
    local e houver comandos sendo executados. 



 COMO EXECUTAR COMANDOS EM UMA PSSESSION
    Para executar um comando em uma ou mais PSSessions, use o cmdlet 
    Invoke-Command. Use o parâmetro Session para especificar as 
    PSSessions e o parâmetro ScriptBlock para especificar o comando.

    Por exemplo, para executar um comando Get-ChildItem ("dir") em 
    cada uma das três PSSessions salvas na variável $ps123, digite:

        invoke-command -session $ps123 -scriptblock {get-childitem}

 
 COMO EXCLUIR PSSESSIONS
    Quando tiver terminado de usar a PSSession, use o cmdlet Remove-PSSession 
    para excluir a PSSession e liberar os recursos que ela estava usando.
    
        remove-PSSession -session $ps

        - ou - 
          
        remove-PSSession -id 1
 
    Se você não excluir a PSSession, a PSSession permanecerá aberta 
    e disponível para uso até que você feche a sessão atual ou saia do Windows 
    PowerShell.

    Você também pode usar o parâmetro TimeOut de New-PSSession para 
    definir uma hora de validade para uma PSSession ociosa. Para 
    obter mais informações, consulte "new-PSSession".


 OS CMDLETS DA PSSESSION

    Cmdlets       Descrição
    --------------        ---------------------------------
    New-PSSession         Cria uma nova PSSession em um 
                          computador local ou remoto.
    Get-PSSession         Obtém as PSSessions na sessão atual.
    Remove-PSSession      Exclui as PSSessions da sessão atual.
    Enter-PSSession       Inicia uma sessão interativa.
    Exit-PSSession        Termina uma sessão interativa.

    Para obter uma lista de cmdlets da PSSession, digite:
    
    get-help *-PSSession


 PARA OBTER MAIS INFORMAÇÕES
    Para obter informações mais detalhadas sobre as PSSessions, consulte 
    about_PSSession_Details.
    

CONSULTE TAMBÉM
    about_Remote
    about_Remote_Requirements
    New-PSSession
    Get-PSSession
    Remove-PSSession
    Enter-PSSession
    Exit-PSSession
    Invoke-Command