TÓPICO
    about_PSSession_Details

DESCRIÇÃO RESUMIDA
    Fornece informações detalhadas sobre as sessões do Windows 
    PowerShell e o papel que elas desempenham em comandos remotos.

DESCRIÇÃO LONGA
    Uma sessão é um ambiente no qual o Windows PowerShell é executado. 
    Uma sessão é criada sempre que você inicia o Windows PowerShell. É possível 
    criar sessões adicionais, chamadas "sessões do Windows PowerShell" ou 
    "PSSessions" em seu computador ou em outro computador.

    Diferentemente das sessões que o Windows PowerShell cria para você, 
    você controla e gerencia as PSSessions que cria.

    As PSSessions têm um papel importante na computação remota. 
    Quando você cria uma PSSession conectada a um computador remoto, 
    o Windows PowerShell estabelece uma conexão persistente com 
    o computador remoto para oferecer suporte à PSSession. Você pode 
    usar a PSSession para executar uma série de comandos, funções 
    e scripts que compartilham dados. 

    Este tópico fornece informações detalhadas sobre sessões 
    e PSSessions no Windows PowerShell. Para obter informações básicas 
    sobre as tarefas que você pode executar com as sessões, consulte 
    about_PSSessions.  

 SOBRE SESSÕES
    Tecnicamente, uma sessão é um ambiente de execução no qual o Windows 
    PowerShell é executado. Cada sessão inclui uma instância do mecanismo 
    de System.Management.Automation e um programa host no qual o Windows 
    PowerShell é executado. O host pode ser o console do Windows 
    PowerShell ou outro programa que execute comandos, como o Cmd.exe, 
    ou um programa criado para ser o host do Windows PowerShell, como 
    o ISE (Ambiente de Script Integrado) do Windows PowerShell.        
    Do ponto de vista do Windows, uma sessão 
    é um processo do Windows no computador de destino. 

    Cada sessão é configurada independentemente. Ela inclui suas próprias 
    propriedades, sua própria diretiva de execução e seus próprios perfis. 
    O ambiente que existe quando a sessão é criada permanece por todo seu 
    tempo de vida, até mesmo se você alterar o ambiente no computador. 
    Todas as sessões são criadas em um escopo global, até mesmo sessões 
    que você cria em um script. 

    Você pode executar apenas um comando (ou pipeline de comando) de 
    cada vez em uma sessão. Uma execução de segunda comando (um de 
    cada vez) espera até quatro minutos para que o primeiro comando 
    seja concluído. Uma segunda execução de comando de forma assíncrona 
    (simultaneamente) falha.

 SOBRE AS PSSESSIONS
    Uma sessão é criada toda vez que você inicia o Windows PowerShell. 
    E o Windows PowerShell cria sessões temporárias para executar comandos 
    individuais. Porém, você também pode criar sessões (chamadas "sessões 
    do Windows PowerShell" ou "PSSessions") que você controla e gerencia.
 
    As PSSessions são fundamentais aos comandos remotos. Se você usar 
    o parâmetro ComputerName do cmdlet Invoke-Command ou Enter-PSSession, 
    o Windows PowerShell estabelecerá uma sessão temporária para executar 
    o comando e fechará a sessão assim que o comando ou a sessão interativa 
    for concluída. 

    No entanto, se você usar o cmdlet New-PSSession para criar uma 
    PSSession, o Windows PowerShell estabelecerá uma sessão persistente 
    no computador remoto no qual você pode executar vários comandos ou 
    sessões interativas. As PSSessions que você cria permanecem abertas 
    e disponíveis para uso até que você as exclua ou feche a sessão na 
    qual elas foram criadas.

    Quando você cria uma PSSession em um computador remoto, o sistema 
    cria um processo do PowerShell no computador remoto e estabelece 
    uma conexão entre o computador local e o processo no computador 
    remoto. Quando você cria uma PSSession no computador local, 
    o novo processo e as conexões são criados no computador local.


 QUANDO EU PRECISO DE UMA PSSESSION?
    Os cmdlets Invoke-Command e Enter-PSSession têm os parâmetros ComputerName 
    e Session. Você pode usar um ou outro para executar um comando remoto. 

    Use o parâmetro ComputerName para executar um único comando ou 
    uma série de comandos não relacionados, em um ou mais computadores. 

    Para executar comandos que compartilham dados, você precisa de 
    uma conexão persistente com o computador remoto. Nesse caso, crie uma 
    PSSession e use o parâmetro Session para executar comandos na PSSession.

    Muitos outros cmdlets que obtêm dados de computadores remotos, 
    como Get-Process, Get-Service, Get-EventLog e Get-WmiObject têm 
    só um parâmetro ComputerName. Eles usam tecnologias diferentes 
    da comunicação remota do Windows PowerShell para coletar dados 
    remotamente. Esses cmdlets não têm um parâmetro Session, mas você 
    pode usar o cmdlet Invoke-Command para executar esses comandos em uma 
    PSSession.
 

 COMO EU CRIO UMA PSSESSION?
    Para criar uma PSSession, use o cmdlet New-PSSession. Você pode 
    usar New-PSSession para criar uma PSSession em um computador 
    local ou remoto.


 EU POSSO CRIAR UMA PSSESSION EM QUALQUER COMPUTADOR? 
    Para criar uma PSSession que esteja conectada a um computador 
    remoto, o computador deve ser configurado para a comunicação remota 
    no Windows PowerShell. O usuário atual deverá ser um membro do grupo 
    Administradores no computador remoto ou deverá ser capaz de fornecer 
    as credenciais de um membro do grupo Administradores. Para obter mais 
    informações, consulte about_Remote_Requirements.


 EU POSSO CONSULTAR AS PSSESSIONS QUE OUTROS CRIARAM EM MEU COMPUTADOR?
    Não. Você pode obter e gerenciar apenas as PSSessions que você 
    criou na sessão atual. Você não pode ver as PSSessions que outros 
    criaram, até mesmo se eles executarem comandos no computador local.


 EU POSSO EXECUTAR UM TRABALHO EM SEGUNDO PLANO EM UMA PSSESSION?
    Sim. Um trabalho em segundo plano é um comando executado de forma 
    assíncrona "no segundo plano" sem interagir com a sessão atual. 
    Quando você enviar um comando para iniciar um trabalho, o comando 
    retornará um objeto de trabalho, mas o trabalho continuará sendo 
    executado em segundo plano até ser concluído.

    Para iniciar um trabalho em segundo plano em um computador local, 
    use o comando Start-Job. Você pode executar o trabalho em segundo 
    plano em uma conexão temporária (usando o parâmetro ComputerName) 
    ou em uma PSSession (usando o parâmetro Session). 

    Para iniciar um trabalho em segundo plano em um computador 
    remoto, use o cmdlet Invoke-Command com seu parâmetro AsJob ou 
    use o cmdlet Invoke-Command para executar um comando Start-Job 
    em um computador remoto. Ao usar o parâmetro AsJob, você pode 
    usar o parâmetro ComputerName ou Session.

    Ao usar Invoke-Command para executar um comando Start-Job, você 
    deverá executar o comando em uma PSSession. Se você usar o parâmetro 
    ComputerName, o Windows PowerShell terminará a conexão quando 
    o objeto de trabalho retornar e o trabalho for interrompido.

    Para obter mais informações, consulte about_Jobs.


 EU POSSO EXECUTAR UMA SESSÃO INTERATIVA?
    Sim. Para iniciar uma sessão interativa com um computador remoto, 
    use o cmdlet Enter-PSSession. Em uma sessão interativa, os 
    comandos que você digita são executados no computador remoto, da 
    mesma forma como se eles tivessem sido digitados diretamente no 
    computador remoto. 

    Você pode executar uma sessão interativa em uma sessão temporária 
    (usando o parâmetro ComputerName) ou em uma PSSession (usando 
    o parâmetro Session). Se você usar uma PSSession, a PSSession 
    reterá os dados de comandos anteriores e todos os dados gerados 
    durante a sessão interativa para uso nos comandos posteriores.

    Quando você encerra a sessão interativa, a PSSession permanece 
    aberta e disponível para uso.

    Para obter mais informações, consulte "Enter-PSSession" 
    e "Exit-PSSession".
 

 EU DEVO EXCLUIR AS PSSESSIONS?
    Sim. Uma PSSession é um processo, que é um ambiente autossuficiente que usa 
    memória e outros recursos, até mesmo quando não está sendo usado. 
    Quando você encerra uma PSSession, deverá excluí-la. Se você criar várias 
    PSSessions, feche as que você não estiver usando e mantenha somente as 
    que estiverem em uso. 

    Para excluir PSSessions, use o cmdlet Remove-PSSession. Ele exclui 
    as PSSessions e libera todos os recursos que elas estavam usando. 

    Você também pode usar o parâmetro TimeOut do New-PSSession para 
    fechar uma PSSession ociosa depois de um intervalo especificado. 
    Para obter mais informações, consulte "New-PSSession".

    Se você não excluir a PSSession ou definir um tempo limite, 
    a PSSession permanecerá aberta e disponível para uso até que você 
    a feche, feche a sessão na qual ela foi criada ou encerre o Windows 
    PowerShell. Porém, uma PSSession em um computador remoto será 
    desconectada se o computador remoto não responder em quatro 
    minutos. (O computador remoto é configurado para enviar um pulso 
    de pulsação a cada três minutos.)

    Se você salvar um objeto PSSession em uma variável e excluir 
    a PSSession ou deixá-la exceder o tempo limite, a variável ainda 
    conterá o objeto PSSession, mas a PSSession não será ativada 
    e não poderá ser usada nem reparada.
    

 TODAS AS SESSÕES E PSSESSIONS SÃO SEMELHANTES?
    Não. Os desenvolvedores podem criar sessões personalizadas que incluem 
    somente provedores e cmdlets selecionados. Se um comando funcionar em 
    uma sessão, mas não em outra, pode ser porque a sessão é restrita.


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




Sumário