UNIVAG CENTRO UNIVERSITÁRIO GPA DE CIÊNCIAS SOCIAIS APLICADAS CURSO DE SISTEMAS DE INFORMAÇÃO Turma: SIS 14/1 SIS 14/2 Avaliação: Laboratório: Windows PowerShell Disciplina: Redes Avançadas e Sistemas Distribuídos Professor: Walderson Shimokawa Instruções: Responda às questões abaixo, enviando o arquivo contendo as respostas através do AVA/Moodle. Avaliação individual, correspondendo a 2,0 (dois) do instrumento de avaliação do primeiro bimestre. Respostas totalmente repetidas serão ignoradas, sendo que a nota será atribuída somente para o primeiro aluno que enviou o arquivo; o segundo arquivo e os demais repetidos terão a nota ZERO atribuída. Portanto, deve-se responder com a sua interpretação em vez de apenas copiar. Atividades do Laboratório: 1. Abra o Windows PowerShell, através do menu Iniciar e teste os comandos disponíveis no Prompt de Comando abaixo e responda: houve diferença se comparados com o Prompt de Comando (cmd)? a) dir b) cls c) ipconfig d) ping www.google.com e) tracert www.google.com Observação: dependendo da atualização ou configuração a ser executada, será necessário executar o PowerShell como administrador, mas na maioria das vezes um acesso de usuário normal já será o suficiente. 2. O PowerShell também suporta executar expressões matemáticas diretamente, então execute os comandos abaixo e escreva os resultados obtidos: a) 67-23 b) Write-Host (2 * 5 + 3) Olá Mundo! c) Write-Output (6 / 2) Outro cálculo d) [math]::pow(2, 10) e) echo "O valor de PI é" ([math]::pi) Observação: Note que no primeiro comando não usamos nenhum comando para escrever o resultado na tela. O PowerShell resolve a expressão matemática e escreve diretamente, então o uso de comandos como echo, Write-Output ou Write-Host são opcionais, quando temos apenas expressões matemáticas. 3. Feche o Windows PowerShell com o comando exit. 4. Agora, inicie o Windows PowerShell ISE pelo menu Iniciar. Esta é a interface programável do PowerShell e nesta tela tem três painéis: Painel de Script, Painel de Comando e o Página 1
Assistente de Comandos. Caso o Painel de Script não esteja visível, exiba-o alternando os modos de exibição deste painel. Esta tela é mais interessante para se aprender a usar o Windows PowerShell, pois ele contém assistentes de código que permitem que os comandos sejam completados automaticamente. 5. Use o Painel de Script e crie o primeiro programa de script, salvando-o na pasta Meus Documentos do usuário como o nome Ola.ps1: # Meu primeiro script do PowerShell "Olá Mundo!" a) Acesse o diretório onde se encontra o seu programa, usando o painel de Comando: PS> cd $env:userprofile\documents b) Execute o script criado: PS>.\Ola.ps1 Por motivos de segurança, o PowerShell restringe o uso de scripts. Caso seja a primeira vez que esteja executando um script no computador, a mensagem abaixo será apresentada, então siga os passos abaixo para resolver o problema. Se o resultado do script foi apresentado sem problemas, siga diretamente para a atividade 5c..\Ola.ps1 : O arquivo C:\Users\login\Documents\Ola.ps1 não pode ser carregado porque a execução de scripts foi desabilitada neste sistema. Para obter mais informações, consulte about_execution_policies em http://go.microsoft.com/fwlink/?linkid=135170. No linha:1 caractere:1 +.\Ola.ps1 + ~~~~~~~~~ + CategoryInfo : ErrodeSegurança: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess Verifique a política de execução scripts: PS> Get-ExecutionPolicy Restricted Para alterar a política de execução de scripts, é necessário que tenha aberto o PowerShell ISE como administrador. Caso tenha aberto em outro modo, feche a janela atual e reabra-o como administrador. Execute o comando abaixo para alterar liberar a execução de scripts: PS> Set-ExecutionPolicy Unrestricted Confirme a alteração, clicando no botão Sim: Feito isto, vá para a pasta Meus Documentos (caso ainda não esteja nesta pasta) e execute novamente o script criado. d) Se estiver tudo certo, a expressão em texto da segunda linha do script será apresentada na tela: PS>.\Ola.ps1 Olá Mundo! 6. Agora, crie mais um novo arquivo de script, para criar um formulário para interagir com o Página 2
usuário (Saudacao.ps1) e o salve na pasta Meus Documentos. a) Implemente o código abaixo (cada instrução pode ser executado no painel de comandos do PowerShell também): # Carrega os módulos necessários [void][reflection.assembly]::loadwithpartialname("system.windows.forms") [void][reflection.assembly]::loadwithpartialname("microsoft.visualbasic") # Cria um novo formulário $form = new-object Windows.Forms.Form $form.text = "Saudação" # Altera o título do formulário # Cria um botão e implementa a ação $button = new-object Windows.Forms.Button $button.text="diga Olá!" # Texto do botão $button.dock="fill" # O botão irá ocupar toda a área do formulário $button.add_click({ $msg = "Digite o seu nome" $titulo = "Seu nome" $nome = [Microsoft.VisualBasic.Interaction]::InputBox($msg, $titulo) if ($nome -ne '') { [System.Windows.MessageBox]::Show("Olá, " + $nome) } else { [System.Windows.MessageBox]::Show("Digite um nome!") } }) $form.controls.add($button) # Adiciona o botão no formulário $form.add_shown({$form.activate()}) # Ativa o formulário e coloca o foco nele $form.showdialog() # Exibe o formulário como modal b) Execute o código acima no PowerShell e confira o resultado: PS>.\Saudacao.ps1 Página 3
6. Agora, vamos criar um programa para interagir com o MS Word (ele tem que estar instalado no computador onde for executar o código abaixo para funcionar). a) Implemente o código abaixo em um novo arquivo de script (Corrige-Texto.ps1), salvando-o na pasta Meus Documentos: # Cria um novo documento do Word e cola o texto $shell = new-object -com wscript.shell $word = new-object -com word.application $word.visible = $true $doc = $word.documents.add() $word.selection.paste() # Verifica se tem erros gramaticais $erros = $word.activedocument.spellingerrors.count + $word.activedocument.gramaticalerrors.count if ($erros -gt 0) { $word.activedocument.checkgrammar() # Corrige a gramática e ortografia $word.selection.wholestory() # Seleciona todo o texto $word.selection.copy() # Copia o texto para a área de transferência $mensagem = "Verificação gramatical e ortográfica completa. " + "O novo texto está na área de trabalho." } else { $mensagem = "Sem erros gramaticais ou ortográficos." } # Fecha o Word $x = [ref] 0 $word.activedocument.close($x) $word.quit() # Mostra a mensagem ao usuário [void] $shell.popup($mensagem) b) Abra o bloco de notas e digite algum texto com erros gramaticais e ortográficos, copiando o texto em seguida. Por exemplo, digite um texto como o apresentado abaixo: Estte é um texto com alguma errors para ver se a Word consegue corrigir. c) Execute o script do item 6a no PowerShell: PS>.\Corrige-Texto.ps1 Note que o Word será aberto, com um novo documento possuindo o texto. Aceite as correções sugeridas pelo Word (a partir do Word 2007 a caixa de diálogo de correção é exibida, sendo necessário que algum usuário efetue as correções). Ao final, o texto corrigido será copiado na memória e o Word será fechado. Basta então colar o texto onde desejar para conferir. Ao finalizar o script, uma das seguintes mensagens é apresentada dependendo da situação: Página 4
Exercícios para entregar: 1. O que é um cmdlet? (0,2) 2. Qual o comando usado para listar todos os cmdlets existentes? (0,2) a) List-Command -Cmdlet b) List-Cmdlet c) Show-Cmdlet d) Get-Command -CommandType Cmdlet e) Show-Command -Cmdlet 3. O que são alias? (0,4) 4. Como podemos listar os processos em execução? (0,2) a) Get-Process b) ps -elf c) List-Process d) Show-Process e) ShowObject ObjectType Process 5. Qual comando utilizado para listar os serviços em execução em um formulário gráfico, demonstrado acima? (0,2) a) Get-Service Out-GridView b) Get-Service? Status -eq Running Out-GridView c) List-Service? Status -eq Running Out-GridView d) Get-Process? Status -eq Running Out-GridView e) Out-GridView < Get-Service -Status Running Página 5
6. Explique o que faz o comando abaixo: (0,3) Get-Process Select-Object Name, ID, @{n='mem. Virtual';e={$PSItem.PM}}, @{n='mem. Paginada';e={$PSItem.PM}} 7. Para que servem os recursos de segurança do PoweShell? Quais são as políticas de execução de scripts e para que serve cada uma delas? (0,3) 8. Cite pelo menos três exemplos de situações em que o PowerShell pode ser usado em uma empresa ou organização por um administrador de redes. (0,2) Página 6