Compartilhar via


Novidades no Windows PowerShell 5.0

O Windows PowerShell 5.0 inclui novos recursos significativos que ampliam seu uso, melhoram sua usabilidade e permitem que você controle e gerencie ambientes baseados em Windows de forma mais fácil e abrangente.

O Windows PowerShell 5.0 é retrocompatível. Cmdlets, provedores, módulos, snap-ins, scripts, funções e perfis que foram projetados para Windows PowerShell 4.0, Windows PowerShell 3.0 e Windows PowerShell 2.0 geralmente funcionam no Windows PowerShell 5.0 sem alterações.

Instalação do PowerShell do Windows

O Windows PowerShell 5.0 é instalado por padrão no Windows Server 2016 Technical Preview e no Windows 10.

Para instalar o Windows PowerShell 5.0 no Windows Server 2012 R2, Windows 8.1 Enterprise ou Windows 8.1 Pro, baixe e instale o Windows Management Framework 5.0. Certifique-se de ler os detalhes do download e atender a todos os requisitos do sistema antes de instalar o Windows Management Framework 5.0.

Neste tópico

Atualizações do Windows PowerShell 4.0 em novembro de 2014 (KB 3000850)

Muitas atualizações e melhorias para a Configuração de Estado Desejado (DSC) do Windows PowerShell no Windows PowerShell 4.0 estão disponíveis no pacote de atualizações de novembro de 2014 para Windows RT 8.1, Windows 8.1 e Windows Server 2012 R2 (KB3000850). Você pode determinar se KB3000850 está instalado no seu sistema rodando Get-Hotfix -Id KB3000850 no Windows PowerShell.

  • Atualizações dos cmdlets existentes no módulo PSDesiredStateConfiguration

  • Novos cmdlets no módulo PSDesiredStateConfiguration

  • Aprimoramentos linguísticos

    • O DependsOn agora suporta recursos compostos.
    • DependsOn agora suporta números em nomes de instâncias de recursos.
    • Expressões de nós que avaliam para vazio não geram mais erros.
    • Um erro que ocorre se uma expressão de nó for avaliada como vazia foi corrigido.
    • Configurações que chamam configurações agora funcionam no console PowerShell do Windows.
  • Melhorias no modo pull

    • O modo pull agora suporta todos os arquivos ZIP.
    • AllowModuleOverwrite agora funciona corretamente.
  • Melhorias na resiliência

    • O novo DebugMode permite recarregar módulos de recursos.
    • Se ocorrer uma falha de configuração, o arquivo pendente.mof não é excluído.
    • O Gerenciador de Configuração Local (LCM) agora é mais resiliente quando as configurações de metaconfiguração são corrompidas.
  • Melhorias de diagnóstico

    • Um aviso é exibido quando o LCM ajusta o temporizador para configurações diferentes das que você especificou.
    • Arquivos de log de erro agora contêm a pilha de chamadas para recursos do Windows PowerShell.
  • Melhorias na flexibilidade

    • O recurso LocalConfigurationManager possui uma nova propriedade, ActionAfterReboot.
      • ContinueConfiguration (valor padrão): Retoma automaticamente uma configuração após o reinício de um nó alvo.
      • StopConfiguration: Não retome automaticamente uma configuração após o reinício de um nó.
    • Uma execução de consistência pode agora ocorrer com mais frequência do que uma operação PULL, ou vice-versa.
    • Suporte para versionamento: O DSC agora pode reconhecer um documento gerado em um cliente mais recente (incluído no WMF 5.0).
  • Melhorias na prevenção de erros

    • A versão do módulo agora é aplicada antes que uma configuração seja aplicada.
    • DebugPreference agora está definido corretamente para chamadas Get-, Set- ou Test-TargetResource.
  • Melhorias no manuseio de credenciais

    • Um certificado agora é usado se tanto o Certificate quanto o PSDscAllowPlainTextPassword forem especificados.
    • As credenciais são descriptografadas, até mesmo para o Get-TargetResource.
    • Credenciais de metaconfiguração são criptografadas e descriptografadas.
    • Os PSCredentials agora são descriptografados quando estão em um objeto embutido.
  • Melhorias de recursos embutidas

    • O recurso Pacote
      • Não instala mais o pacote errado (seja de fontes locais ou da web).
      • Agora suporta HTTPS.
    • Agora há suporte para HTTPS no recurso Pacote.
    • O recurso do Archive agora suporta credenciais.

Novos recursos no Windows PowerShell 5.0

Novos recursos no Windows PowerShell

  • A partir do Windows PowerShell 5.0, você pode desenvolver usando classes, sintaxe formal e semântica semelhantes a outras linguagens de programação orientadas a objetos. Class, Enum e outras palavras-chave foram adicionadas à linguagem PowerShell do Windows para suportar o novo recurso. Para mais informações sobre como trabalhar com classes, veja about_Classes.

  • O Windows PowerShell 5.0 introduz um novo fluxo de informações estruturado que você pode usar para transmitir dados estruturados entre um script e seus chamadores (ou ambiente de hospedagem). Agora você pode usar Write-Host para emitir saída para o fluxo de informação. Fluxos de informação também funcionam para PowerShell.Streams, jobs, jobs agendados e fluxos de trabalho. Os seguintes recursos suportam o fluxo de informações.

    • Um novo cmdlet Write-Information que permite especificar como o PowerShell do Windows lida com dados de fluxo de informações para um comando. Write-Host é um wrapper para Write-Information. Write-Information também é uma atividade de fluxo de trabalho suportada.
    • Dois novos parâmetros comuns, InformationVariable e InformationAction, permitem que você determine como os fluxos de informação de um comando são exibidos. Valores válidos para InformationAction são SilentlyContinue, Stop, Continue, Inquire, Ignore ou Suspende, sendo SilentlyContinue o padrão. InformationVariable especifica uma string como nome de uma variável para a qual você quer salvar os dados Write-Host de um comando.
    • Uma nova variável de preferência, InformationPreference, especifica sua preferência padrão para dados de fluxo de informações em uma sessão do Windows PowerShell. O valor padrão é SilentlyContinue.
    • Dois novos parâmetros comuns de fluxo de trabalho, PSInformation e InformationAction, foram adicionados.
    • Quando você usa o comando Format-Table, as colunas da tabela agora são formatadas automaticamente ao avaliar os primeiros 300ms de dados que passam pelo fluxo.
  • Em colaboração com a Microsoft Research, um novo cmdlet, ConvertFrom-String, foi adicionado. ConvertFrom-String permite extrair e analisar objetos estruturados do conteúdo das strings de texto. Para mais informações, veja ConvertFrom-String.

  • Um novo cmdlet Convert-String formata automaticamente o texto com base em um exemplo que você fornece em um parâmetro -Example.

  • Um novo módulo, Microsoft.PowerShell.Archive, inclui cmdlets que permitem comprimir arquivos e pastas em arquivos de arquivo (também conhecidos como ZIP), extrair arquivos de arquivos ZIP existentes e atualizar arquivos ZIP com versões mais recentes dos arquivos comprimidos neles.

  • Um novo módulo, PackageManagement, permite que você descubra e instale pacotes de software na Internet. O módulo PackageManagement (anteriormente conhecido como OneGet) é um gerenciador ou multiplexador de gerenciadores de pacotes existentes (também chamados de provedores de pacotes) para unificar o gerenciamento de pacotes do Windows com uma única interface PowerShell do Windows.

  • Um novo módulo, o PowerShellGet, permite encontrar, instalar, publicar e atualizar módulos e recursos DSC na PowerShell Gallery, ou em um repositório interno de módulos que você pode configurar rodando o Register-PSRepository cmdlet.

  • Uma nova palavra-chave de linguagem, Hidden, foi adicionada para especificar que um membro (uma propriedade ou método) não é mostrado por padrão nos resultados Get-Member (a menos que você adicione o parâmetro -Force). Propriedades ou métodos que foram marcados como ocultos também não aparecem nos resultados do IntelliSense, a menos que você esteja em um contexto onde o membro deveria ser visível; Por exemplo, a variável automática $This deve mostrar membros ocultos quando estiver no método de classe.

  • Novo-Item, Remoção-Item e Get-ChildItem foram aprimorados para suportar a criação e gerenciamento de links simbólicos. O parâmetro -ItemType para New-Item aceita um novo valor, SymbolicLink. Agora você pode criar links simbólicos em uma única linha executando o cmdlet New-Item.

  • Get-ChildItem também tem um novo parâmetro -Depth, que você usa junto com o parâmetro -Recurse para limitar a recursão. Por exemplo, Get-ChildItem -Recurse -Depth 2 retorna os resultados da pasta atual, de todas as pastas filhos dentro da pasta atual e de todas as pastas dentro das pastas filhas.

  • Copy-Item agora permite copiar arquivos ou pastas de uma sessão do Windows PowerShell para outra, o que significa que você pode copiar arquivos para sessões conectadas a computadores remotos (incluindo computadores que rodam Nano Server e, portanto, não têm outra interface). Para copiar arquivos, especifique os IDs PSSession como o valor dos novos parâmetros de -FromSession e -ToSession, e adicione -Path e -Destination para especificar caminho de origem e destino, respectivamente. Por exemplo, Copy-Item -Path c:\myFile.txt -ToSession $s -Destination d:\destinationFolder.

  • A transcrição do Windows PowerShell foi aprimorada para se aplicar a todos os aplicativos de hospedagem (como o Windows PowerShell ISE), além do host do console (powershell.exe). As opções de transcrição (incluindo habilitar uma transcrição em todo o sistema) podem ser configuradas ativando a configuração Ativar a Policy-Guia do Grupo de Transcrição do PowerShell , encontrada em Modelos Administrativos/Componentes Windows/PowerShell do Windows.

  • Um novo recurso detalhado de rastreamento de scripts permite habilitar o rastreamento e análise detalhados do uso de scripts do Windows PowerShell em um sistema. Após ativar o rastreamento detalhado de scripts, o Windows PowerShell registra todos os blocos de script no registro de eventos Event Tracing for Windows (ETW), Microsoft-Windows-PowerShell/Operational.

  • A partir do Windows PowerShell 5.0, novos cmdlets de Sintaxe de Mensagens Criptográficas suportam criptografia e descriptografia de conteúdo usando o formato padrão IETF para proteger criptograficamente mensagens conforme documentado pela RFC5652. Os cmdlets Get-CmsMessage, Protect-CmsMessage e Unprotect-CmsMessage foram adicionados ao módulo Microsoft.PowerShell.Security .

  • Novos cmdlets no módulo Microsoft.PowerShell.Utility , Get-Runspace, Debug-Runspace, Get-RunspaceDebug, Enable-RunspaceDebug e Disable-RunspaceDebug, permitem definir opções de depuração em um espaço de execução, e iniciar e parar a depuração em um espaço de execução. Para depurar runspaces arbitrários (ou seja, runspaces que não são o runspace padrão para um console Windows PowerShell ou sessão ISE do Windows PowerShell), o Windows PowerShell permite definir breakpoints em um script e adicionar breakpoints para impedir que o script seja executado até que você possa anexar um depurador para depurar o script do runspace. O suporte para depuração aninhada para espaços de execução arbitrários foi adicionado ao depurador de scripts do Windows PowerShell para espaços de execução.

  • Um novo cmdlet Format-Hex foi adicionado ao módulo Microsoft.PowerShell.Utility . Format-Hex permite visualizar texto ou dados binários em formato hexadecimal.

  • Get-Clipboard e Set-Clipboard cmdlets foram adicionados ao módulo Microsoft.PowerShell.Utility ; eles facilitam a transferência de conteúdo para e de uma sessão do Windows PowerShell. Os cmdlets da Área de Transferência suportam imagens, arquivos de áudio, listas de arquivos e texto.

  • Um novo cmdlet, Clear-RecycleBin, foi adicionado ao módulo Microsoft.PowerShell.Management ; esse cmdlet esvazia a Lixeira de Reciclagem para um disco fixo, que inclui discos externos. Por padrão, você é solicitado a confirmar um comando Clear-RecycleBin, porque a propriedade ConfirmImpact do cmdlet está definida como ConfirmImpact.High.

  • Um novo cmdlet, New-TemporaryFile, permite criar um arquivo temporário como parte do scripting. Por padrão, o novo arquivo temporário é criado em C:\Users\<user name>\AppData\Local\Temp.

  • Os cmdlets Out-File, Add-Content e Set-Content agora têm um novo parâmetro -NoNewline, que omite uma nova linha após a saída.

  • O cmdlet New-Guid utiliza a classe Guid do .NET Framework para gerar um GUID, útil quando você está escrevendo scripts ou recursos DSC.

  • Como as informações sobre a versão do arquivo podem ser enganosas, especialmente após a correção de um arquivo, novas propriedades de script FileVersionRaw e ProductVersionRaw estão disponíveis para objetos FileInfo. Por exemplo, você pode executar o seguinte comando para exibir os valores dessas propriedades para powershell.exe, onde $pid contém o ID do processo para uma sessão em execução do Windows PowerShell: Get-Process -Id $pid -FileVersionInfo | Format-List *version* -Force

  • Novos cmdlets Enter-PSHostProcess e Exit-PSHostProcess permitem depurar scripts do Windows PowerShell em processos separados do processo atual que está rodando no console PowerShell do Windows. Execute Enter-PSHostProcess para inserir ou anexar um ID de processo específico e, em seguida, execute Get-Runspace para retornar os espaços de execução ativos dentro do processo. Execute Exit-PSHostProcess para se desvincular do processo quando terminar de depurar o script dentro do processo.

  • Um novo cmdlet Wait-Debugger foi adicionado ao módulo Microsoft.PowerShell.Utility . Você pode executar Wait-Debugger para parar um script no depurador antes de executar a próxima instrução no script.

  • O depurador de fluxo de trabalho do Windows PowerShell agora suporta completamento de comandos ou ababadas, e você pode depurar funções de workflow aninhadas. Agora você pode pressionar Ctrl+Break para inserir o depurador em um script em execução, tanto em sessões locais quanto remotas, e em um script de workflow.

  • Um cmdlet Debug-Job foi adicionado ao módulo Microsoft.PowerShell.Core para depurar scripts de tarefas em execução para o fluxo de trabalho do Windows PowerShell, em segundo plano e tarefas rodando em sessões remotas.

  • Um novo estado, AtBreakpoint, foi adicionado para trabalhos do Windows PowerShell. O estado AtBreakpoint se aplica quando um trabalho está rodando um script que inclui pontos de interrupção definidos, e o script atingiu um ponto de interrupção. Quando um trabalho é parado em um ponto de interrupção de depuração, você deve depurar o trabalho executando o cmdlet Debug-Job.

  • O Windows PowerShell 5.0 implementa suporte para múltiplas versões de um único módulo Windows PowerShell na mesma pasta em $PSModulePath. Uma propriedade RequiredVersion foi adicionada à classe ModuleSpecification para ajudar você a obter a versão desejada de um módulo; essa propriedade é mutuamente exclusiva com a propriedade ModuleVersion. O RequiredVersion agora é suportado como parte do valor do parâmetro FullyQualifiedName dos cmdlets Get-Module, Import-Module e Remove-Module.

  • Agora você pode realizar a validação da versão do módulo executando o cmdlet Test-ModuleManifest.

  • Os resultados do cmdlet Get-Command agora exibem uma coluna Versão; uma nova propriedade Version foi adicionada à classe CommandInfo. Get-Command mostra comandos de múltiplas versões do mesmo módulo. A propriedade Version também faz parte das classes derivadas de CmdletInfo: CmdletInfo e ApplicationInfo.

  • Get-Command tem um novo parâmetro, -ShowCommandInfo, que retorna informações do ShowCommand como PSObjects. Essa funcionalidade é especialmente útil quando Show-Command é executado no Windows PowerShell ISE usando o Windows PowerShell remoto. O parâmetro -ShowCommandInfo substitui a função Get-SerializedCommand existente no módulo Microsoft.PowerShell.Utility, mas o script Get-SerializedCommand ainda está disponível para suportar scripts downlevel.

  • Um novo cmdlet Get-ItemPropertyValue permite que você obtenha o valor de uma propriedade sem usar notação ponto. Por exemplo, em versões mais antigas do PowerShell do Windows, você pode executar o seguinte comando para obter o valor da propriedade Application Base da chave de registro do PowerShellEngine: (Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name ApplicationBase). ApplicationBase. A partir do Windows PowerShell 5.0, você pode rodarGet-ItemPropertyValue -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name ApplicationBase.

  • O console PowerShell do Windows agora usa coloração sintática, assim como no Windows PowerShell ISE.

  • Um novo módulo NetworkSwitch contém cmdlets que permitem aplicar a configuração de switch, LAN virtual (VLAN) e a configuração básica de portas de switch de rede de Camada 2 a switches de rede certificados com o logo Windows Server 2012 R2.

  • O parâmetro FullyQualifiedName foi adicionado aos cmdlets Import-Module e Remove-Module para suportar o armazenamento de múltiplas versões de um único módulo.

  • Save-Help, Update-Help, Import-PSSession, Export-PSSession e Get-Command têm um novo parâmetro, FullQualifiedModule, do tipo ModuleSpecification. Adicione esse parâmetro para especificar um módulo pelo seu nome totalmente qualificado.

  • O valor da $PSVersionTable.PSVersion foi atualizado para a versão 5.0.

  • O WMF 5.0 (PowerShell 5.0) inclui o módulo Pester . Pester é um framework de testes unitários para PowerShell. Ele fornece algumas palavras-chave simples de usar que permitem criar testes para seus scripts.

Novos recursos na Configuração de Estado Desejado do PowerShell do Windows

  • As melhorias da linguagem PowerShell do Windows permitem que você defina recursos de Configuração de Estado Desejado (DSC) do Windows PowerShell usando classes. Import-DscResource agora é uma palavra-chave verdadeiramente dinâmica; O PowerShell do Windows analisa o módulo raiz do módulo especificado, buscando classes que contenham o atributo DscResource. Agora você pode usar classes para definir recursos DSC, nos quais nem um arquivo MOF nem uma subpasta DSCResource na pasta do módulo são necessários. Um arquivo de módulo do Windows PowerShell pode conter múltiplas classes de recursos DSC.
  • Um novo parâmetro, ThrottleLimit, foi adicionado aos seguintes cmdlets no módulo PSDesiredStateConfiguration. Adicione o parâmetro ThrottleLimit para especificar o número de computadores ou dispositivos alvo nos quais você quer que o comando funcione ao mesmo tempo.
    • Get-DscConfiguration
    • Get-DscConfigurationStatus
    • Get-DscLocalConfigurationManager
    • Restore-DscConfiguration
    • Test-DscConfiguration
    • Compare-DscConfiguration
    • Publish-DscConfiguration
    • Set-DscLocalConfigurationManager
    • Start-DscConfiguration
    • Update-DscConfiguration
  • Com o relatório centralizado de erros DSC, as informações ricas de erro não apenas são registradas no registro de eventos, mas podem ser enviadas para um local central para análise posterior. Você pode usar esse local central para armazenar erros de configuração DSC que ocorreram em qualquer servidor em seu ambiente. Após a definição do servidor de relatórios na meta-configuração, todos os erros são enviados ao servidor de relatórios e então armazenados em um banco de datos. Você pode configurar essa funcionalidade independentemente de um nó de destino estar configurado para puxar configurações de um servidor de pull.
  • Melhorias no Windows PowerShell ISE facilitam a autoria de recursos DSC. Agora você pode fazer o seguinte.
    • Liste todos os recursos DSC dentro de um bloco de configuração ou digitando Ctrl+Espaço em uma linha em branco dentro do bloco.
    • Completamento automático das propriedades de recursos do tipo de enumeração .
    • Completamento automático da propriedade DependsOn dos recursos DSC, com base em outras instâncias de recursos na configuração.
    • Melhoria da completude de tabulação dos valores das propriedades de recursos.
  • Um usuário agora pode executar um recurso sob um conjunto especificado de credenciais adicionando o atributo PSDscRunAsCredential a um bloco de nó. Por exemplo, PSDscRunAsCredential = Get-Credential Contoso\DscUser. Essa funcionalidade é útil para criar configurações que executam instaladores do Windows e instaladores executáveis, acessam o registro de usuário por usuário ou realizam outras tarefas fora do contexto atual do usuário.
  • O suporte a 32 bits (baseado em x86) foi adicionado para a palavra-chave Configuração .
  • O Windows PowerShell agora inclui suporte para ajuda personalizada para configurações de DSC, definida pela adição de [CmdletBinding()] à função de configuração gerada.
  • Um novo atributo DscLocalConfigurationManager designa um bloco de configuração como meta-configuração, que é usado para configurar o Gerenciador de Configuração Local do DSC. Esse atributo restringe uma configuração a conter apenas itens que configuram o Gerenciador de Configuração Local do DSC. Durante o processamento, essa configuração gera um arquivo *.meta.mof que é então enviado para os nós alvo apropriados executando o cmdlet Set-DscLocalConfigurationManager.
  • Configurações parciais agora são permitidas no Windows PowerShell 5.0. Você pode entregar documentos de configuração para um nó em fragmentos. Para que um nó receba múltiplos fragmentos de um documento de configuração, o Gerenciador de Configuração Local do nó deve primeiro ser configurado para especificar os fragmentos esperados
  • A sincronização entre computadores é nova no DSC do Windows PowerShell 5.0. usando os recursos WaitFor* integrados (WaitForAll, WaitForAny e WaitForSome), agora é possível especificar dependências entre computadores durante execuções de configuração, sem orquestrações externas. Esses recursos fornecem sincronização nó a nó usando conexões CIM pelo protocolo WS-Man. Uma configuração pode esperar que o estado específico do recurso de outro computador mude.
  • Administração Suficiente (JEA), um novo recurso de segurança de delegação, utiliza espaços de execução restritos por DSC e Windows PowerShell para ajudar a proteger as empresas contra perda ou comprometimento de dados por parte dos funcionários, seja intencional ou não. Para mais informações sobre a JEA, incluindo onde você pode baixar o recurso xJEA DSC, veja Administração Suficiente.
  • Os seguintes novos cmdlets foram adicionados ao módulo PSDesiredStateConfiguration.
    • Um novo cmdlet Get-DscConfigurationStatus recebe informações de alto nível sobre o status da configuração de um nó alvo. Você pode obter o status do último, ou de todas as configurações.
    • Um novo cmdlet Compare-DscConfiguration compara uma configuração especificada com o estado real de um ou mais nós alvo.
    • Um novo cmdlet de Publish-DscConfiguration copia um arquivo MOF de configuração para um nó alvo, mas não aplica a configuração. A configuração é aplicada na próxima passagem de consistência, ou quando você executa o cmdlet Update-DscConfiguration.
    • Um novo cmdlet Test-DscConfiguration permite verificar se uma configuração resultante corresponde à configuração desejada, retornando True se a configuração corresponder à desejada, ou False se a configuração real não corresponder à configuração desejada.
    • Um novo cmdlet Update-DscConfiguration força o processamento de uma configuração. Se o Gerenciador de Configuração Local estiver em modo pull, o cmdlet recebe a configuração do servidor pull antes de aplicá-la.

Novos recursos no Windows PowerShell ISE

  • Agora você pode editar scripts e arquivos remotos do Windows PowerShell em uma cópia local do Windows PowerShell ISE, executando Enter-PSSession para iniciar uma sessão remota no computador que está armazenando os arquivos que deseja editar, e então executando o caminho e o nome do arquivo do PSEdit <no computador> remoto. Esse recurso facilita a edição de arquivos PowerShell do Windows que são armazenados na opção de instalação Server Core do Windows Server, onde o Windows PowerShell ISE não pode rodar.
  • O cmdlet Start-Transcript agora é suportado no Windows PowerShell ISE.
  • Agora você pode depurar scripts remotos no Windows PowerShell ISE.
  • Um novo comando de menu, Break All (Ctrl+B), invade o depurador tanto para scripts locais quanto para scripts em execução remota.

Novos recursos em Serviços Web do Windows PowerShell (Extensão de Gerenciamento OData IIS)

  • A partir do Windows PowerShell 5.0, você pode gerar um conjunto de cmdlets do Windows PowerShell com base na funcionalidade exposta por um determinado endpoint OData, executando o cmdlet Export-ODataEndpointProxy, encontrado no novo módulo Microsoft.PowerShell.OdataUtils .

Correções notáveis de bugs no Windows PowerShell 5.0

  • O Windows PowerShell 5.0 inclui uma nova implementação COM, que oferece melhorias significativas de desempenho quando você trabalha com objetos COM.
  • Melhorias significativas de desempenho foram feitas na primeira conclusão de aba em uma sessão do Windows PowerShell, reduzindo o tempo de conclusão de abas em quase 500 ms.

Novos recursos no Windows PowerShell 4.0

O Windows PowerShell 4.0 é compatível com versões anteriores. Cmdlets, provedores, módulos, snap-ins, scripts, funções e perfis que foram projetados para Windows PowerShell 3.0 e Windows PowerShell 2.0 funcionam no Windows PowerShell 4.0 sem alterações.

O Windows PowerShell 4.0 é instalado por padrão no Windows 8.1 e Windows Server 2012 R2. Para instalar o Windows PowerShell 4.0 no Windows 7 com SP1, ou Windows Server 2008 R2, baixe e instale o Windows Management Framework 4.0. Certifique-se de ler os detalhes do download e atender a todos os requisitos do sistema antes de instalar o Windows Management Framework 4.0.

O Windows PowerShell 4.0 inclui os seguintes novos recursos.

Novos recursos no Windows PowerShell

  • Configuração de Estado Desejado (DSC) do Windows PowerShell é um novo sistema de gerenciamento no Windows PowerShell 4.0 que permite a implantação e gerenciamento de dados de configuração para serviços de software e para o ambiente em que esses serviços são executados. Para mais informações sobre DSC, veja Começar com a Configuração de Estado Desejado do PowerShell do Windows.
  • O Save-Help agora permite salvar ajuda para módulos instalados em computadores remotos. Você pode usar Save-Help para baixar o módulo Ajuda de um cliente conectado à Internet (no qual nem todos os módulos para os quais você quer ajuda estão necessariamente instalados), e então copiar a Ajuda salva para uma pasta compartilhada remota ou para um computador remoto que não tenha acesso à Internet.
  • O depurador do Windows PowerShell foi aprimorado para permitir a depuração dos fluxos de trabalho do Windows PowerShell, bem como de scripts que estão rodando em computadores remotos. Os fluxos de trabalho do Windows PowerShell agora podem ser depurados no nível do script tanto pela linha de comando do Windows PowerShell quanto pelo Windows PowerShell ISE. Scripts do Windows PowerShell, incluindo fluxos de trabalho de scripts, agora podem ser depurados em sessões remotas. Sessões remotas de depuração são preservadas sobre sessões remotas do Windows PowerShell que são desconectadas e depois reconectadas.
  • Um parâmetro RunNow para Register-ScheduledJob e Set-ScheduledJob elimina a necessidade de definir uma data e hora imediatas de início para trabalhos usando o parâmetro Trigger .
  • Invoke-RestMethod e Invoke-WebRequest agora permitem definir todos os cabeçalhos usando o parâmetro Headers. Embora esse parâmetro sempre tenha existido, ele foi um dos vários parâmetros para os cmdlets web que resultaram em exceções ou erros.
  • Get-Module possui um novo parâmetro, FullyQualifiedName, do tipo ModuleSpecification[]. O parâmetro FullyQualifiedName do Get-Module agora permite que você especifique um módulo usando o nome, a versão do módulo e, opcionalmente, seu GUID.
  • A configuração padrão de política de execução no Windows Server 2012 R2 é RemoteSigned. No Windows 8.1, não há alteração na configuração padrão.
  • A partir do Windows PowerShell 4.0, a invocação de métodos usando nomes de métodos dinâmicos é suportada. Você pode usar uma variável para armazenar um nome de método e então invocar dinamicamente o método chamando a variável.
  • Trabalhos de fluxo de trabalho assíncronos não são mais excluídos quando o período de tempo especificado pelo parâmetro comum do fluxo de trabalho PSElapsedTimeoutSec já termina.
  • Um novo parâmetro, RepeatIndefinitely, foi adicionado aos cmdlets New-JobTrigger e Set-JobTrigger . Isso elimina a necessidade de especificar um valor TimeSpan.MaxValue para o parâmetro RepetitionDuration executar um trabalho agendado repetidamente por um período indefinido.
  • Um parâmetro Passthru foi adicionado aos comandos Enable-JobTrigger e Disable-JobTrigger . O parâmetro Passthru exibe quaisquer objetos que sejam criados ou modificados pelo seu comando.
  • Os nomes dos parâmetros para especificar um grupo de trabalho nos cmdlets Add-Computer e Remove-Computer agora são consistentes. Ambos os cmdlets agora usam o parâmetro WorkgroupName.
  • Um novo parâmetro comum, PipelineVariable, foi adicionado. PipelineVariable permite salvar os resultados de um comando por canal (ou parte de um comando por canal) como uma variável que pode ser passada pelo restante do pipeline.
  • Filtragem de coleções usando sintaxe de método agora é suportada. Isso significa que agora você pode filtrar uma coleção de objetos usando sintaxe simplificada, semelhante à do Where() ou Where-Object, formatada como uma chamada de método. A seguir está um exemplo: (Get-Process).where({$_. Nome -match 'powershell'})
  • O cmdlet Get-Process possui um novo parâmetro de switch, IncludeUserName.
  • Um novo cmdlet, Get-FileHash, que retorna um hash de arquivo em um dos vários formatos para um arquivo especificado, foi adicionado.
  • No Windows PowerShell 4.0, se um módulo usa a chave DefaultCommandPrefix em seu manifesto, ou se o usuário importa um módulo com o parâmetro Prefix , a propriedade ExportedCommands do módulo mostra os comandos no módulo com o prefixo. Quando você executa os comandos usando a sintaxe qualificada pelo módulo, NomeMódulo\NomeComando, os nomes dos comandos devem incluir o prefixo.
  • O valor da $PSVersionTable.PSVersion foi atualizado para a versão 4.0.
  • O comportamento do operador onde( ) mudou. Collection.Where('property -match name') aceitar uma expressão de string no formato "Property -CompareOperator Value" não é mais suportado. No entanto, o operador Where() aceita expressões de string no formato de um bloco de script; isso ainda é suportado.

Novos recursos no Ambiente Integrado de Scripting (ISE) do Windows PowerShell

  • O Windows PowerShell ISE suporta tanto a depuração de fluxo de trabalho do Windows PowerShell quanto a depuração remota de scripts.
  • Foi adicionado suporte ao IntelliSense para as configurações e provedores de Configuração de Estado Desejado do Windows PowerShell.

Novos recursos no fluxo de trabalho do Windows PowerShell

  • Foi adicionado suporte para um novo parâmetro comum PipelineVariable no contexto de pipelines iterativos, como os usados pelo System Center Orchestrator; ou seja, pipelines que executam comandos simplesmente da esquerda para a direita, em vez de execuções intercaladas usando streaming.
  • A vinculação de parâmetros foi significativamente aprimorada para funcionar fora de cenários de conclusão de tabulação, como com comandos que não existem no runspace atual.
  • O suporte para atividades personalizadas de contêineres foi adicionado ao fluxo de trabalho do Windows PowerShell. Se um parâmetro de atividade for dos tipos Atividade, Atividade[] (ou for uma coleção genérica de atividades) e o usuário forneceu um bloco de script como argumento, então o Workflow do Windows PowerShell converte o bloco de script para XAML, como na compilação normal de script-to-workflow do Windows PowerShell.
  • Após um travamento, o Fluxo de Trabalho do Windows PowerShell se reconecta automaticamente aos nós gerenciados.
  • Agora você pode reduzir as instruções de atividade Foreach -Parallel usando a propriedade ThrottleLimit .
  • O parâmetro comum ErrorAction tem um novo valor válido, Suspend, que é exclusivamente para fluxos de trabalho.
  • Um endpoint de fluxo de trabalho agora fecha automaticamente se não houver sessões ativas, trabalhos em andamento e trabalhos pendentes. Esse recurso economiza recursos no computador que atua como servidor de fluxo de trabalho, quando as condições automáticas de fechamento forem atendidas.

Novos recursos nos Serviços Web do Windows PowerShell

  • Quando ocorre um erro em Windows PowerShell Web Services (PSWS, também chamado de Extensão de Gerenciamento OData IIS), enquanto um cmdlet está em execução, mensagens de erro mais detalhadas são retornadas ao chamador. Além disso, os códigos de erro seguem as diretrizes do código de erro da API REST do Windows Azure.
  • Um endpoint agora pode definir a versão da API, além de impor o uso de uma versão específica da API. Sempre que ocorrem incompatibilidades de versão entre cliente e servidor, erros são exibidos tanto para o cliente quanto para o servidor.
  • O gerenciamento do esquema de despacho foi simplificado gerando automaticamente valores para quaisquer campos ausentes no esquema. A geração ocorre como um ponto de partida útil, mesmo que o esquema de despacho não exista.
  • O tratamento de tipos no PSWS foi aprimorado para suportar tipos que usam um construtor diferente do padrão, comportando-se de forma semelhante ao PSTypeConverter no Windows PowerShell. Isso permite usar tipos complexos com PSWS.
  • O PSWS agora permite expandir uma instância associada enquanto executa uma consulta. Para conteúdos binários maiores (como imagens, áudio ou vídeo), o custo de transferência é significativo, e é melhor transferir dados binários sem codificação. O PSWS utiliza fluxos de recursos nomeados para transferência sem codificação. O fluxo de recursos nomeado é uma propriedade de uma entidade do tipo Edm.Stream . Cada fluxo de recursos nomeado possui um URI separado para operações GET ou UPDATE.
  • As ações do OData agora fornecem um mecanismo para invocar métodos não-CRUD (Crear, Ler, Atualizar e Excluir) em um recurso. Você pode invocar uma ação enviando uma requisição HTTP POST para o URI definido para a ação. Os parâmetros para a ação são definidos no corpo da solicitação POST.
  • Para ser consistente com as diretrizes do Windows Azure, todas as URLs devem ser simplificadas. Uma alteração incluída em Key As Segment permite que chaves únicas sejam representadas como segmentos. Note que referências que usam múltiplos valores de chave requerem valores separados por vírgulas em notação entre parênteses, como antes.
  • Antes dessa versão do PSWS, a única forma de realizar operações de Criar, Atualizar ou Deletar era invocar Postar, Colocar ou Excluir em um recurso de alto nível. Novidade nesta versão do PSWS, as operações de Recursos Contidos permitem que os usuários alcancem os mesmos resultados enquanto alcançam o mesmo recurso de forma menos direta, aproximando-se como se esses recursos estivessem contidos.

Novos recursos no Windows PowerShell Web Access

  • Você pode se desconectar e reconectar às sessões existentes no console web do Windows PowerShell Web Access. Um botão de Salvar no console web permite desconectar de uma sessão sem deletar e reconectar à sessão em outra ocasião.
  • Parâmetros padrão podem ser exibidos na página de login. Para exibir parâmetros padrão, configure valores para todas as configurações exibidas na área de Configurações Optionais de Conexão da página de login em um arquivo chamado web.config. Você pode usar o arquivoweb.config para configurar todas as configurações opcionais de conexão, exceto um segundo ou outro conjunto de credenciais.
  • No Windows Server 2012 R2, você pode gerenciar remotamente regras de autorização para o Windows PowerShell Web Access. Os cmdlets Add-PswaAuthorizationRule e Test-PswaAuthorizationRule agora incluem um parâmetro de credencial que permite aos administradores gerenciar regras de autorização a partir de um computador remoto ou em uma sessão de acesso Web com Windows PowerShell.
  • Agora você pode ter várias sessões de acesso Web ao Windows PowerShell em uma única sessão de navegador usando uma nova aba para cada sessão. Você não precisa mais abrir uma nova sessão do navegador para se conectar a uma nova sessão no console web do Windows PowerShell.

Correções notáveis de bugs no Windows PowerShell 4.0

  • O Get-Counter agora pode retornar contadores que contenham um caractere apóstrofo nas edições francesas do Windows.
  • Agora você pode visualizar o método GetType em objetos desserializados.
  • #Requires instruções agora permitem que os usuários precisem de direitos de acesso de administrador, se necessário.
  • O cmdlet Import-Csv agora ignora linhas em branco.
  • Um problema em que o Windows PowerShell ISE usa memória demais quando você executa um comando Invoke-WebRequest foi corrigido.
  • O Get-Module agora exibe versões dos módulos em uma coluna Versão .
  • Remove-Item -Recurse agora remove itens das subpastas, como esperado.
  • Uma propriedade Nome de Usuário foi adicionada aos objetos de saída Get-Process .
  • O cmdlet Invoke-RestMethod agora retorna todos os resultados disponíveis.
  • O Add-Member agora entra em vigor sobre hashtables, mesmo que as hashtables ainda não tenham sido acessadas.
  • Select-Object -Expandir não falha mais nem gera exceção se o valor da propriedade for nulo ou vazio.
  • O Get-Process agora pode ser usado em um pipeline com outros comandos que obtêm a propriedade Nomecomputador a partir dos objetos.
  • ConvertTo-Json e ConvertFrom-Json agora podem aceitar termos entre aspas duplas, e suas mensagens de erro agora são localizáveis.
  • O Get-Job agora retorna quaisquer tarefas agendadas concluídas, mesmo em novas sessões.
  • Problemas ao montar e desmontar VHDs usando o provedor FileSystem no Windows PowerShell 4.0 foram resolvidos. O Windows PowerShell agora consegue detectar novos discos quando eles são montados na mesma sessão.
  • Você não precisa mais carregar explicitamente módulos de Trabalhos Agendados ou de Workflow para trabalhar com os tipos de trabalho deles.
  • Melhorias de desempenho foram feitas no processo de importação de fluxos de trabalho que definem fluxos aninhados; Esse processo agora é mais rápido.

Novos recursos no Windows PowerShell 3.0

O Windows PowerShell 3.0 inclui os seguintes novos recursos.

Fluxo de Trabalho do Windows PowerShell

O Fluxo de Trabalho do Windows PowerShell traz o poder do Windows Workflow Foundation para o Windows PowerShell. Você pode escrever fluxos de trabalho em XAML ou na linguagem PowerShell do Windows e executá-los assim como executaria um cmdlet. O Get-Command cmdlet recebe comandos de fluxo de trabalho e recebe Get-Help ajuda para os fluxos de trabalho.

Fluxos de trabalho são sequências de atividades de gerenciamento multicomputador que são de longa duração, repetíveis, frequentes, paralelizáveis, interrompíveis, suspensíveis e reiniciáveis. Os fluxos de trabalho podem ser retomados a partir de uma interrupção intencional ou acidental, como uma queda de rede, reinício do Windows ou queda de energia.

Os fluxos de trabalho também são portáteis; eles podem ser exportados como ou importados de arquivos XAML. Você pode criar configurações personalizadas de sessão que permitam que fluxos de trabalho ou atividades em um fluxo de trabalho sejam executados por usuários delegados ou subordinados.

A seguir estão os benefícios do fluxo de trabalho do Windows PowerShell

  • Automação de tarefas sequenciadas e de longa duração.
  • Monitoramento remoto de tarefas de longa duração. O status e o andamento das atividades são visíveis a qualquer momento.
  • Gerenciamento de multicomputadores. Executar simultaneamente tarefas como fluxos de trabalho em centenas de nós gerenciados. O Fluxo de Trabalho do Windows PowerShell inclui uma biblioteca embutida de parâmetros comuns de gerenciamento, como o PSComputerName, que possibilitam cenários de gerenciamento de múltiplos computadores.
  • Execução de tarefa única de processos complexos. Você pode combinar scripts relacionados que implementam um cenário completo de ponta a ponta em um único fluxo de trabalho.
  • Persistência: um fluxo de trabalho é salvo (ou check-point) em pontos específicos definidos pelo autor para que você possa retomar o fluxo de trabalho a partir da última tarefa persistente (ou checkpoint), em vez de reiniciar o fluxo do início.
  • Robustez. Recuperação automatizada de falhas. Os fluxos de trabalho sobrevivem a reinícios planejados e não planejados. Você pode suspender a execução do fluxo de trabalho e então retomar o fluxo a partir do último ponto de persistência. Os autores de workflows podem designar atividades específicas para serem reexecutadas em caso de falha em um ou mais nós gerenciados.
  • Capacidade de desconectar, reconectar e rodar em sessões desconectadas. Os usuários podem se conectar e desconectar do servidor de workflow, mas o workflow roda continuamente. Você pode sair do computador cliente ou reiniciar o computador cliente e monitorar a execução do fluxo de trabalho a partir de outro computador sem interromper o fluxo.
  • Agendamento. Tarefas de fluxo de trabalho podem ser agendadas como qualquer cmdlet ou script do Windows PowerShell.
  • Fluxo de trabalho e limitação de conexão. A execução do fluxo de trabalho e as conexões com nós podem ser limitadas, permitindo assim escalabilidade e cenários de alta disponibilidade.

Acesso à Web do Windows PowerShell

O Windows PowerShell Web Access é um recurso do Windows Server 2012 que permite aos usuários executar comandos e scripts do Windows PowerShell em um console baseado na web. Dispositivos que utilizam o console baseado na web não precisam de Windows PowerShell, software de gerenciamento remoto ou instalações de plug-ins de navegador. Tudo o que é necessário é um gateway Windows PowerShell Web Access devidamente configurado e um navegador de dispositivo cliente que suporte JavaScript e aceite cookies.

Para mais informações, veja Implantar o Windows PowerShell Web Access.

Novos Recursos do PowerShell ISE do Windows

Para o Windows PowerShell 3.0, o Ambiente Integrado de Scripts do Windows PowerShell (ISE) traz muitos recursos novos, incluindo IntelliSense, Show-Command janela, um Painel de Console unificado, trechos, correspondência de colchetes, seções expandir-collapse, salvamento automático, lista de itens recentes, cópia rica, cópia em blocos e suporte completo para escrever fluxos de trabalho de scripts em Windows PowerShell. Para mais informações, veja about_Windows_PowerShell_ISE.

Suporte para Microsoft .NET Framework 4

O Windows PowerShell é construído contra o Common Language Runtime 4.0. Autores de cmdlets, scripts e fluxos de trabalho podem usar as novas classes Microsoft .NET Framework 4 no Windows PowerShell, com recursos que incluem Compatibilidade e Implantação de Aplicações, Framework de Extensibilidade Gerenciada, Computação Paralela, Rede, Windows Communication Foundation e Windows Workflow Foundation.

Suporte para o Ambiente de Pré-instalação do Windows

O Windows PowerShell 3.0 é um componente opcional do Windows Preinstallation Environment (Windows PE) 4.0 para Windows 8. O Windows PE é um sistema operacional minimalista que inicia um computador sem sistema operacional e o prepara para instalação no Windows. O Windows PE pode ser usado para particionar e formatar discos rígidos, copiar imagens de disco para um computador e iniciar a configuração do Windows a partir de um compartilhamento de rede. O Windows PowerShell 3.0 pode ser usado no Windows PE para gerenciar cenários de implantação, diagnóstico e recuperação.

Sessões Desconectadas

A partir do Windows PowerShell 3.0, sessões persistentes gerenciadas pelo usuário ("PSSessions") que você cria usando o cmdlet New-PSSession são salvas no computador remoto. Eles não dependem mais da sessão em que foram criados.

Agora você pode se desconectar de uma sessão sem interromper os comandos que estão rodando na mesma sessão. Você pode fechar a sessão e desligar seu computador. Depois, você pode se reconectar à sessão de outra sessão, no mesmo computador ou em outro computador.

O parâmetro ComputerName do Get-PSSession cmdlet agora obtém todas as sessões do usuário que se conectam ao computador, mesmo que tenham sido iniciadas em uma sessão diferente em outro computador. Você pode se conectar às sessões, obter os resultados dos comandos, iniciar novos comandos e depois se desconectar da sessão.

Novos cmdlets foram adicionados para suportar o recurso Disconnected Sessions, incluindo Disconnect-PSSession, Connect-PSSession, e Receive-PSSession, e novos parâmetros foram adicionados aos cmdlets que gerenciam PSSessions, como o parâmetro InDisconnectedSession do Invoke-Command cmdlet.

O recurso Sessões Desconectadas é suportado apenas quando os computadores tanto no lado originário ("cliente") quanto no terminal ("servidor") da conexão estão rodando Windows PowerShell 3.0.

Conectividade robusta de sessões

O Windows PowerShell 3.0 detecta perdas inesperadas de conectividade entre o cliente e o servidor e tenta restabelecer a conectividade e retomar a execução automaticamente. Se a conexão cliente-servidor não puder ser restabelecida no tempo estipulado, o usuário é notificado e a sessão é desconectada. Durante a tentativa de reconectar, o Windows PowerShell fornece feedback contínuo ao usuário.

Se a sessão desconectada foi iniciada usando o InvokeCommand, o Windows PowerShell cria um trabalho para a sessão desconectada para facilitar a reconexão e retomada da execução.

Esses recursos proporcionam uma experiência remota mais confiável e recuperável e permitem que os usuários realizem tarefas de longa duração que exigem sessões robustas, como fluxos de trabalho.

Sistema de Ajuda Atualizável

Agora você pode baixar arquivos de ajuda atualizados para os cmdlets em seus módulos. O Update-Help cmdlet identifica os arquivos de ajuda mais recentes, os baixa da Internet, os desempacota, valida e instala no diretório correto específico do idioma para o módulo.

Para usar os arquivos de ajuda atualizados, basta digitar Get-Help. Você não precisa reiniciar o Windows ou o PowerShell do Windows. Para atualizar a ajuda para módulos no diretório $pshome, inicie o PowerShell do Windows com a opção "Executar como administrador".

Para apoiar usuários que não têm acesso à Internet e usuários atrás de firewalls, o novo Save-Help cmdlet baixa arquivos de ajuda para um diretório do sistema de arquivos, como um compartilhamento de arquivos. Os usuários podem então usar o Update-Help cmdlet para obter arquivos de ajuda atualizados do compartilhamento de arquivos.

Você pode usar o Update-Help cmdlet para atualizar arquivos de ajuda para todos ou módulos específicos em todas as culturas de UI suportadas. Você pode até colocar um Update-Help comando no seu perfil do PowerShell do Windows. Por padrão, o Windows PowerShell baixa os arquivos de ajuda de um módulo no máximo uma vez por dia.

Os módulos Windows 8 e Windows Server 2012 não incluem arquivos de ajuda. Para baixar os arquivos de ajuda mais recentes, digite Update-Help. Para mais informações, digite Get-Help (sem parâmetros) ou veja about_Updatable_Help.

Quando os arquivos de ajuda de um cmdlet não estão instalados no computador, o Get-Help cmdlet agora exibe ajuda gerada automaticamente. A ajuda gerada automaticamente inclui a sintaxe de comandos e instruções para usar o Update-Help cmdlet para baixar arquivos de ajuda.

Qualquer autor de módulo pode apoiar a Ajuda Atualizável para seu módulo. Você pode incluir arquivos de ajuda no módulo e usar o Updatable Help para atualizá-los ou omitir os arquivos de ajuda e usar o Updatable Help para instalá-los. Para mais informações sobre como apoiar a Ajuda Atualizável, veja Suporte à Ajuda Atualizável.

Ajuda Online Aprimorada

A ajuda online do Windows PowerShell é um recurso valioso para todos os usuários, mas é especialmente importante para quem não instala ou não pode instalar arquivos de ajuda atualizados.

Para obter ajuda online para qualquer cmdlet do Windows PowerShell, digite:

Get-Help <cmdlet-name> -Online

O Windows PowerShell abre a versão online do tópico de ajuda no seu navegador padrão.

O recurso Get-Help -Online no Windows PowerShell 3.0 agora é ainda mais poderoso porque funciona mesmo quando os arquivos de ajuda do cmdlet não estão instalados no computador. O recursoGet-Help - Online recebe o URI para o tópico de ajuda online a partir da propriedade HelpUri dos cmdlets e funções avançadas.

PS C:\>(Get-Command Get-ScheduledJob).HelpUri
https://go.microsoft.com/fwlink/?LinkID=223923

A partir do Windows PowerShell 3.0, autores de cmdlets em C# podem preencher a propriedade HelpUri criando um atributo HelpUri na classe cmdlet. Autores de funções avançadas podem definir uma propriedade HelpUri no atributo CmdletBinding . O valor da propriedade HelpUri deve começar com "http" ou "https".

Você também pode incluir um valor HelpUri no primeiro link relacionado de um arquivo de ajuda cmdlet baseado em XML ou no arquivo . Diretriz de link para ajuda baseada em comentários em uma função.

Para mais informações sobre apoio à ajuda online, veja Apoio à Ajuda Online.

Integração CIM

O Windows PowerShell 3.0 inclui suporte ao Modelo Comum de Informação (CIM), que fornece definições comuns de informações de gerenciamento para sistemas, redes, aplicações e serviços, permitindo a troca de informações de gerenciamento entre sistemas heterogêneos. Suporte para CIM no Windows PowerShell 3.0, incluindo a capacidade de criar cmdlets para Windows PowerShell baseados em classes CIM novas ou existentes, comandos baseados em arquivos XML de definição de cmdlets, suporte para CIM .NET Framework. API, cmdlets de gerenciamento de CIM e provedores WMI 2.0.

Arquivos de Configuração de Sessão

A partir do Windows PowerShell 3.0, você pode criar uma configuração personalizada de sessão usando um arquivo. O novo arquivo de configuração de sessão permite que você determine o ambiente das sessões que utilizam a configuração da sessão, incluindo quais módulos, scripts e arquivos de formato são carregados nas sessões, quais cmdlets e elementos de linguagem os usuários podem usar, quais módulos e scripts podem rodar e quais variáveis podem ver.

Você pode projetar uma sessão em que os usuários só podem executar os cmdlets de um módulo específico, ou uma sessão em que os usuários tenham a linguagem completa, acesso a todos os módulos e acesso a scripts que executam tarefas avançadas.

Em versões anteriores do Windows PowerShell, o controle nesse nível estava disponível apenas para aqueles que sabiam escrever um programa em C# ou um script de início complexo. Agora, qualquer membro do grupo de Administradores no computador pode personalizar uma configuração de sessão usando um arquivo de configuração.

Para criar um arquivo de configuração de sessão, use o cmdlet New-PSSessionConfigurationFile. Para aplicar o arquivo de configuração de sessão a uma configuração de sessão, use os Register-PSSessionConfiguration cmdlets ou 'Set-PSSessionConfiguration.

Para mais informações, veja about_Session_Configuration_Files e New-PSSessionConfigurationFile.

Tarefas Programadas e Integração do Agendador de Tarefas

Agora você pode agendar trabalhos em segundo plano do PowerShell do Windows e gerenciá-los no Windows PowerShell e no Agendador de Tarefas.

Os trabalhos agendados do PowerShell do Windows são um híbrido útil entre trabalhos em segundo plano do PowerShell do Windows e tarefas do Agendador de Tarefas.

Assim como trabalhos em segundo plano do Windows PowerShell, trabalhos agendados rodam de forma assíncrona em segundo plano. Instâncias de tarefas agendadas que foram concluídas podem ser gerenciadas usando os cmdlets de trabalho, como Start-Job e Get-Job.

Assim como nas tarefas do Agendador de Tarefas, você pode executar tarefas agendadas em um cronograma único ou recorrente, ou em resposta a uma ação ou evento. Você pode visualizar e gerenciar trabalhos agendados no Agendador de Tarefas, habilitá-los e desativá-los conforme necessário, executá-los ou usá-los como modelos, e definir condições sob as quais os trabalhos começam.

Além disso, os trabalhos agendados vêm com um conjunto personalizado de cmdlets para gerenciá-los. Os cmdlets permitem criar, editar, gerenciar, desativar e reativar trabalhos agendados, criar gatilhos de tarefas agendadas e definir opções de tarefas agendadas.

Para mais informações sobre empregos agendados, veja about_Scheduled_Jobs.

Aprimoramentos da Linguagem PowerShell do Windows

O Windows PowerShell 3.0 inclui muitos recursos projetados para tornar sua linguagem mais simples, mais fácil de usar e evitar erros comuns. As melhorias incluem enumeração de propriedades, propriedades de contagem e comprimento em objetos escalares, novos operadores de redirecionamento, o modificador de escopo$Using, variável automática PSItem, formatação flexível de scripts, atributos de variáveis, argumentos de atributos simplificados, nomes numéricos de comandos, operador Stop-Parsing, aprimoramento do splatting de arrays, novos operadores de bits, dicionários ordenados, cast PSCustomObject e ajuda baseada em comentários aprimorada.

Novos Comandantes Centrais

Novos cmdlets foram adicionados à instalação do Windows PowerShell, incluindo cmdlets para gerenciar tarefas agendadas, sessões desconectadas, integração com CIM e o Sistema de Ajuda Atualizável.

  • CimCmdlets
    • Get-CimAssociatedInstance
    • Get-CimClass
    • Get-CimInstance
    • Get-CimSession
    • Invoke-CimMethod
    • New-CimInstance
    • New-CimSession
    • New-CimSessionOption
    • Register-CimIndicationEvent
    • Remove-CimInstance
    • Remove-CimSession
    • Set-CimInstance
  • Microsoft.PowerShell.Core
    • Connect-PSSession
    • Disconnect-PSSession
    • New-PSSessionConfigurationFile
    • New-PSTransportOption
    • Receive-PSSession
    • Resume-Job
    • Save-Help
    • Suspend-Job
    • Test-PSSessionConfigurationFile
    • Update-Help
  • Microsoft.PowerShell.Diagnostics
    • New-WinEvent
  • Microsoft.PowerShell.Management
    • Get-ControlPanelItem
    • Rename-Computer
    • Show-ControlPanelItem
  • Microsoft.PowerShell.Utility
    • ConvertFrom-Json
    • ConvertTo-Json
    • Get-TypeData
    • Invoke-RestMethod
    • Invoke-WebRequest
    • Remove-TypeData
    • Show-Command
    • Unblock-File
  • PSScheduledJob
    • Add-JobTrigger
    • Disable-JobTrigger
    • Disable-ScheduledJob
    • Enable-JobTrigger
    • Enable-ScheduledJob
    • Get-JobTrigger
    • Get-ScheduledJob
    • Get-ScheduledJobOption
    • New-JobTrigger
    • New-ScheduledJobOption
    • Register-ScheduledJob
    • Set-JobTrigger
    • Set-ScheduledJob
    • Set-ScheduledJobOption
    • Unregister-ScheduledJob
  • PSWorkflow
    • New-PSWorkflowExecutionOption
    • New-PSWorkflowSession
  • PSWorkflowUtility
    • Invoke-AsWorkflow
  • ISE
    • Get-IseSnippet
    • Import-IseSnippet
    • New-IseSnippet

Melhorias nos Comandantes e Provedores Principais Existentes

O Windows PowerShell 3.0 inclui novos recursos para cmdlets existentes, incluindo a sintaxe simplificada, e novos parâmetros para os seguintes cmdlets: Cmdlets de computador, cmdlets CSV, Get-ChildItem, Get-Command, Get-Content, Get-History, Measure-Object, comandos de segurança, Select-Object, Select-String, Split-Path, Start-Process, Tee-Object, Test-Connection, Add-Member e cmdlets WMI.

Os provedores PowerShell do Windows também foram significativamente melhorados, incluindo suporte a fornecedores de certificados para gerenciamento de certificados da Camada Segura de Soquetes (SSL) para hospedagem web, suporte a credenciais, unidades de rede persistentes e fluxos de dados alternativos em unidades de sistema de arquivos.

Importação e descoberta remota de módulos

O Windows PowerShell 3.0 amplia as capacidades de descoberta, importação e reconhecimento remoto implícito de módulos em computadores remotos. Os cmdlets de módulo recebem módulos em computadores remotos e importam os módulos para o computador remoto ou local usando o remot Windows PowerShell. O novo suporte a sessões CIM permite que você use CIM e WMI para gerenciar computadores não Windows, importando comandos para o computador local que rodam implicitamente no computador remoto.

Para mais informações, veja os tópicos de ajuda para os Get-Module cmdlets e Import-Module e

Completamento Aprimorado de Tabulação

A conclusão de tabulação no console PowerShell do Windows agora completa os nomes dos cmdlets, parâmetros, valores de parâmetros, enumerações, tipos do .NET Frameworks, objetos COM, diretórios ocultos e mais. O recurso de conclusão de tabulação é completamente reescrito com base em um novo parser e árvore de sintaxe abstrata para suportar mais cenários, incluindo árvores de análise sintática em memória e conclusão de tabulação no meio da linha.

Carregamento Automático do Módulo

O Get-Command cmdlet agora recebe todos os cmdlets e funções de todos os módulos instalados no computador, mesmo que o módulo não seja importado para a sessão atual.

Quando você recebe o cmdlet que precisa, pode usá-lo imediatamente sem importar nenhum módulo. Os módulos do PowerShell do Windows agora são importados automaticamente quando você usa qualquer cmdlet no módulo. Você não precisa mais procurar pelo módulo e importá-lo para usar seus cmdlets.

A importação automática de módulos é acionada usando o cmdlet em um comando, executando Get-Command para um cmdlet sem curingas, ou executando Get-Help para um cmdlet sem curingas.

Você pode ativar, desativar e configurar a importação automática de módulos usando a variável de preferência $PSModuleAutoLoadingPreference .

Para mais informações, veja about_Modules, about_Preference_Variables e os tópicos de ajuda para os Get-Command cmdlets e Import-Module Cmdlets.

Melhorias na Experiência do Módulo

O Windows PowerShell 3.0 traz suporte avançado a recursos para módulos, incluindo os seguintes novos recursos.

  1. Registro de módulos para módulos individuais (LogPipelineExecutionDetails) e a nova configuração de Políticas de Grupo "Ativar Registro de Módulos"
  2. Objetos de módulo estendidos que expõem os valores do manifesto do módulo
  3. Nova propriedade ExportedCommands dos módulos, incluindo módulos aninhados, que combina comandos de todos os tipos
  4. Descoberta aprimorada dos módulos disponíveis (não importados), incluindo permitir os parâmetros Path e ListAvailable no mesmo comando
  5. Nova chave DefaultCommandPrefix nos manifestos do módulo que evita conflitos de nomes sem alterar o código do módulo.
  6. Requisitos aprimorados dos módulos, incluindo módulos exigidos totalmente qualificados com versão e GUID e importação automática dos módulos necessários
  7. Operação mais silenciosa e eficiente do New-ModuleManifest comandante.
  8. Novo parâmetro de módulo para #Requires
  9. Cmdlet aprimorado Import-Module com parâmetros MinimumVersion e RequiredVersion .

Descoberta de Comandos Simplificados

Você não precisa mais importar todos os módulos para descobrir os comandos disponíveis para sua sessão. No Windows PowerShell 3.0, o Get-Command cmdlet recebe todos os comandos de todos os módulos instalados. E, se você usar um comando, o módulo que exporta o comando é automaticamente importado para sua sessão.

O novo Show-Command cmdlet foi projetado especialmente para iniciantes. Você pode buscar comandos em uma janela. Você pode visualizar todos os comandos ou filtrar por módulo, importar um módulo clicando em um botão, usar caixas de texto e listas suspensas para construir um comando válido, e então copiar ou executar o comando sem nunca sair da janela.

Aprimoramento em registros, diagnósticos e suporte a políticas de grupo

O Windows PowerShell 3.0 melhora o suporte a logs e rastreamento para comandos e módulos, com suporte a logs de Rastreamento de Eventos no Windows (ETW), uma propriedade editável LogPipelineExecutionDetails dos módulos e a configuração de Group Policy "Ativar o Registro de Módulos". Agora você pode obter valores de parâmetros a partir dos detalhes dos logarígrafos exibindo as propriedades dos logarítemos.

Melhorias de Formatação e Saída

Novas melhorias na formatação e na saída aumentam a eficiência de todos os usuários do Windows PowerShell. As melhorias incluem redirecionamento de saída para todos os fluxos, um cmdlet de Update-Type aprimorado que adiciona tipos dinamicamente sem arquivos Format.ps1xml, word wrap na saída, propriedades padrão de formatação de objetos personalizados, o tipo PSCustomObject , formatação aprimorada para objetos WMI e objetos heterogêneos, e suporte para descoberta de sobrecarga de métodos.

Experiência aprimorada do host de console

O programa host do console Windows PowerShell tem novos recursos no Windows PowerShell 3.0, incluindo apartamento com thread única por padrão. A nova opção "Executar com PowerShell" no Explorador de Arquivos permite executar scripts em uma sessão irrestrita apenas clicando com o botão direito. A nova lógica de lançamento do host do console inicia o PowerShell do Windows mais rápido e novas fontes permitem personalizar a experiência familiar da janela do console.

Novo Cmdlet e APIs de Hospedagem

A nova API Cmdlet e API de Hospedagem incluem APIs públicas de árvore de sintaxe avançada (AST) e APIs para paginação de pipelines, pipelines aninhados, completamento de abas de pools de espaço de execução, Windows RT, o atributo cmdlet Obsolete e propriedades Verbo e Substantivo do objeto FunctionInfo.

Melhorias de desempenho

Melhorias significativas de desempenho no Windows PowerShell vêm do novo parser de linguagem, que é construído sobre a Dynamic Runtime Language (DLR) no .NET Framework 4, juntamente com compilação de scripts em tempo de execução, melhorias na confiabilidade do motor e mudanças no algoritmo Get-ChildItem do sistema que aprimoram seu desempenho, especialmente ao buscar compartilhamentos de rede.

RunAs e suporte ao host compartilhado

O Windows PowerShell 3.0 inclui suporte para recursos RunAs e Shared Host.

O recurso RunAs , desenvolvido para o fluxo de trabalho do Windows PowerShell, permite que usuários de uma configuração de sessão criem sessões que rodam com a permissão de uma conta de usuário compartilhada. Isso permite que usuários menos privilegiados executem determinados comandos e scripts com permissões de administrador, e reduz a necessidade de adicionar usuários menos experientes ao grupo de Administradores.

O recurso SharedHost permite que múltiplos usuários em vários computadores se conectem simultaneamente a uma sessão de fluxo de trabalho e monitorem o progresso do fluxo. Os usuários podem iniciar um fluxo de trabalho em um computador e depois se conectar à sessão de fluxo de trabalho em outro computador sem desconectar a sessão do computador original. Os usuários devem ter as mesmas permissões e estar usando a mesma configuração de sessão. Para mais informações, veja "Executando um Fluxo de Trabalho do Windows PowerShell" em Como Começar com o Fluxo de Trabalho do Windows PowerShell.

Melhorias Especiais no Manuseio de Personagens

Para melhorar a capacidade do Windows PowerShell 3.0 de interpretar e lidar corretamente com caracteres especiais, o parâmetro LiteralPath , que lida com caracteres especiais em caminhos, é válido em quase todos os cmdlets que possuem um parâmetro Path , incluindo os novos Update-Help e Save-Help cmdlets. O analisador também inclui lógica especial para melhorar o tratamento do caractere backtick (`) e dos colchetes quadrados nos nomes dos arquivos e caminhos.

Consulte Também