UNIVAG – CENTRO UNIVERSITÁRIO GPA DE CIÊNCIAS SOCIAIS APLICADAS
CURSO DE SISTEMAS DE INFORMAÇÃO
Turma:
SIS 14/1 – SIS 14/2
Disciplina:
Redes Avançadas e Sistemas Distribuídos Avaliação:
Laboratório: Windows PowerShell
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 2 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!
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 4 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.
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 6 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)