O Windows PowerShell é um shell de linha de comando do Windows especialmente projetado para administradores de sistema. Ele inclui uma janela de linha de comando interativa no estilo DOS e um ambiente de script e pode ser usado de forma independente ou em conjunto. Ao contrário da maioria dos shells que recebem e enviam mensagens de texto, o Windows PowerShell é baseado no Common Language Runtime .NET e no .NET Framework para receber e responder a objetos .NET. Esses recursos fornecem novas ferramentas e métodos para gerenciamento e configuração do Windows.
PowerShell
Um conceito importante no Windows PowerShell é o "cmdlet", uma ferramenta de linha de comando simples e de função única criada no Shell. Os usuários podem usar os comandos de forma independente, mas seus efeitos dependem das tarefas e do ambiente do aplicativo. O Windows PowerShell contém mais de 100 linhas de comando básicas e os usuários podem escrever suas próprias linhas de comando e compartilhá-las com outros usuários.
Como a maioria dos shells, o Windows PowerShell oferece acesso ao sistema de arquivos do seu computador. Além disso, o Windows PowerShell permite acessar outros dados armazenados, como o registro e os certificados de assinatura digital, com a mesma facilidade com que acessa o sistema de arquivos.
O PowerShell no Windows Server 2008 R2 foi atualizado para 2.0, que introduziu muitos novos recursos, como gerenciamento remoto, um ambiente de script completo, ferramentas de depuração, etc. Vamos dar uma olhada mais de perto nos novos recursos do ISE e nas funções remotas aprimoradas no PowerShell V2 .
1. Ambiente de Script Integrado ISE (Ambiente de Script Integrado)
Um requisito básico para o PowerShell é ser capaz de escrever e depurar facilmente scripts do PowerShell. O PowerShell v2 vem com um ambiente de script integrado ISE (Integrated Script Environment), que facilita a gravação de scripts do PowerShell. Um painel de linha de comando.
Painel ISE
O painel de linha de comando do ISE é muito semelhante ao painel de linha de comando do PowerShell. Os usuários podem digitar comandos nele e pressionar Enter para executar o comando. Os resultados da execução do comando serão exibidos no painel de saída e os resultados de todas as execuções de comando anteriores podem ser rastreados com clareza. O painel de script na parte superior pode ser usado para escrever e depurar scripts. O painel de script suporta vários scripts para operar juntos, facilitando a operação.
Para ajudar os usuários a depurar scripts, o ISE permite que os usuários definam pontos de interrupção de depuração de várias maneiras. Eles podem ser definidos manualmente ou automaticamente sob certas condições especiais. No comando para definir um ponto de interrupção, o usuário precisa especificar o nome e as coordenadas do script de depuração.
Set-PSBreakpoint .[Nome do arquivo de script].ps1 -line X
Se quiser definir vários pontos de interrupção, você precisará separá-los com vírgulas ao especificar coordenadas, como
Set-PSBreakpoint .[Nome do arquivo de script].ps1 -line X,Y,Z
Se você deseja definir um ponto de interrupção ao chamar uma função específica, você precisa usar o comando Set-PSBreakpoint, o parâmetro -Command e o nome da função:
Set-PSBreakPoint -Command [Nome da função]
O depurador ISE também pode definir um ponto de interrupção ao ler ou escrever uma variável específica. A seguir está o comando para definir um ponto de interrupção ao ler ou escrever uma variável:
Set-PSBreakpoint -Variable [Nome da variável] -mode read
Set-PSBreakpoint -Variable [Nome da variável] -mode write
Depois que um ponto de interrupção é definido, ele possui um identificador exclusivo. Você pode excluir o ponto de interrupção excluindo o identificador por meio do comando Disable-PSBreakpoint:
Desativar-PSBreakpointX
2. Aprimoramento de função remota do PowerShell v2
Outro recurso importante do PowerShell v2 é o aprimoramento dos recursos de operação remota (remoting PowerSell), adicionando uma nova linha de comando Invoke-Command. Deve-se observar que o sistema remoto PowerSell atualmente suporta apenas computadores que executam Vista SP1, Windows Server 2008 e Windows 7, e a versão correspondente da ferramenta de gerenciamento remoto WinRM precisa ser instalada. Isso significa que os usuários só podem conectar computadores Vista SP1/Win 2008 com PowerShell v2 e WinRM instalados por meio de comunicação remota do PowerShell. Computadores com Vista (apenas o PowerShell pode ser instalado) e sistemas WinXP não são suportados.
Requisitos e melhorias do sistema PowerShell v2
Na versão de pré-lançamento CTP do PowerShell 2.0, o comando Invoke-Expression é usado para conectar-se ao computador remoto:
Invoke-Expression –computerName atl-fs-001 –command Get-Process
Se o usuário quiser executar o comando Get-Process no computador remoto atl-fs-001, o novo comando Invoke-Command poderá ser usado:
Invocar-Command –computerName atl-fs-001 –scriptblock
Pode-se observar que os parâmetros básicos nos dois comandos são os mesmos. A equipe do PowerShell substituiu o comando Invoke-Expression por Invoke-Command e substituiu o –command pelo parâmetro –scriptblock. , melhorou a estabilidade operacional, a segurança e o desempenho.
Obviamente, este comando também pode suportar vários computadores remotos. Se você precisar obter informações do processo de computadores remotos atl-fs-001, atl-fs-002 e atl-fs-003, poderá usar o comando:
Invocar-Command –computerName atl-fs-001, atl-fs-002, atl-fs-003 –scriptblock
Suporta vários computadores remotos
Assim como o comando Invoke-Expression, o Invoke-Command pode se conectar ao computador remoto e executar o comando, mas a conexão será perdida imediatamente. Se precisar de uma conexão persistente com o computador remoto, você pode criar uma sessão do PowerShell com o comando:
$objRunspace = Novo espaço de execução atl-fs-001, atl-fs-002, atl-fs-003
Se precisar de mais informações sobre o comando Invoke-Command, você pode obter instruções e exemplos por meio do seguinte comando:
Get-Help Invoke-Command –full mais |