Muito obrigado aos patrocinadores por terem feito este evento acontecer!!!

Documentos relacionados
T.I. para o DealerSuite: Servidores Versão: 1.1

APOSTILA DE INFORMÁTICA INTERNET E

Passos para a instalação

Cadeira de Tecnologias de Informação. Ano lectivo 2009/2010. Sites dinâmicos. Com Expression Web TI2009/10 EWD_1. Filipa Pires da Silva (2009)

Objetivo do Portal da Gestão Escolar

Sobre o Visual C

Manual do Usuário Sistema de Acuidade Visual Digital

Introdução ao. Script. Baltazar Tavares (Psycho Mantys)

Oracle Database 10g: Fundamentos de SQL e PL/SQL

Manual do Usúario Vivo Sync. Manual do Usuário. Versão Copyright Vivo

Conhecendo o Delphi 2010

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

NOVA VERSÃO SAFE DOC MANUAL

Criando scanner para dectar BackupExec vulneráveis ao exploit do Metasploit. Inj3cti0n P4ck3t

Usando o e a Internet

UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO UNIVASF SECRETARIA DE TECNOLOGIA DA INFORMAÇÃO STI DEPARTAMENTO DE SISTEMAS DE INFORMAÇÕES

Guia de Referência OPEN PROJECT Treinamento Essencial

Veeam Endpoint Backup FREE

Gerenciador de Ambiente Laboratorial - GAL Manual do Usuário Módulo Controle de Qualidade Analítico

Driver Next Versão 1.0 de Português

OI CLOUD SEJA BEM-VINDO!

Backup. José Antônio da Cunha CEFET-RN

aplicação arquivo Condições Gerais de Utilização

Gestão Documental. Gestão Documental

Este Procedimento Operacional Padrão define as etapas necessárias para o processo de inventário em um estoque, filial ou loja no APLWeb.

ÁREA DO PROFESSOR (TUTOR)

SISTEMAS DISTRIBUÍDOS

Manual de Utilização. Ao acessar o endereço chegaremos a seguinte página de entrada: Tela de Abertura do Sistema

MS1122 v3.0 Instalação e Considerações Importantes

Registro de Retenções Tributárias e Pagamentos

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

Respostas às Perguntas Frequentes sobre Informática:

e Autorizador Odontológico

Criando um Site. Por: João Paulo Almeida

a) O Word é um editor de TEXTOS. Com ele é possível digitar cartas, currículos e trabalhos escolares.

Programação WEB. Prof. André Gustavo Duarte de Almeida www3.ifrn.edu.br/~andrealmeida. Aula II jquery UI

COMO CRIAR UM PEDIDO DE COMPRAS

Os salários de 15 áreas de TI nas cinco regiões do Brasil

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

GUIA RÁPIDO DE UTILIZAÇÃO KIT MERCURIOIV OSCILOSCÓPIO E GERADOR DE SINAIS

MANUAL DE INSTALAÇÃO DO MILLENNIUM BASIC

SISTEMA OPERACIONAL - ANDROID

Manual Instalação Web Services Client Web.NewHotel

COMO VENDER MAIS USANDO FUNIL DE VENDAS. Capítulo III: Etapas do Funil de Vendas

Criptografando os seus dados

Manual de instalação do Microsoft SQL Server 2008 R2 Express no Windows 10

1.0 Informações de hardware

LEUCOTRON EQUIPAMENTOS LTDA ROTEIRO DE INTERLIGAÇÃO SIP ACTIVE IP COM REGISTRO

REITORA Ulrika Arns. VICE-REITOR Almir Barros da Silva Santos Neto. DIRETOR DO NTIC Leonardo Bidese de Pinho

Como gerir um espaço de conversa (chat) ou uma vídeo-conferência e participar num fórum de debate (Google Hangouts)

Quick Installation Guide. Central Management Software

Técnico em Radiologia. Prof.: Edson Wanderley

Introdução à orientação a objetos

Software PHC com MapPoint 2007

Manual SOFIA (Software Inteligente ARPEN-SP) versão 0.1

Manual de instruções U Definições da impressora CP_Manager

Como utilizar a tecnologia a favor da sua central de atendimento

Script instalação sistema da van NeoGrid

2.1. Incluir uma Proposta de Concessão de Diárias e Passagens PCDP com diárias e passagens.

MARINHA DO BRASIL COMANDO DO CONTROLE NAVAL DO TRÁFEGO MARÍTIMO GUIA RÁPIDO PARA MANUSEIO DO SISTEMA CRIPTOGRÁFICO ÁTRIA


UTILIZAÇÃO DE RECURSOS AVANÇADOS DO EXCEL EM FINANÇAS (PARTE III): GERENCIAMENTO DE CENÁRIOS

Treinamento de e-commerce

Configuração para Uso do Tablet no GigaChef e Outros Dispositivos

PROCEDIMENTO INSTALAÇÃO SINAI ALUGUEL

Programação para Web HTML - Parte 2

Adicionar uma figura, como um botão Submeter, a um formulário

Sumário. CEAD - FACEL Manual do Aluno, 02

SocialMap - Como unir o Foursquare, ArcGIS Online e o Facebook? - Parte III de III (opcional)

Parametrização do Banco de Dados PROGRESS Base de Dados Origem

Aprenda a instalar a plataforma de monitorização Cacti

Banco de Dados I. Prof. Edson Thizon

Aula 03. Processadores. Prof. Ricardo Palma

Manual Mobuss Construção - Móvel

Experiência 04: Comandos para testes e identificação do computador na rede.

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza

Gestão de Sistemas Operacionais I

Tecnologia da Informação

Rede VPN UFBA Procedimento para configuração

Manual do Usuário. VpetConverter Ferramenta para adequação de documentos para Petições Eletrônicas.

Sistemas Distribuídos

SISTEMA CAÇA-TALENTOS MANUAL DE OPERAÇÃO PERFIL SECRETARIA

Procedimento para Adequações às Mudanças Tecnológicas do Módulo Autorizador v4

Neste manual você terá o exemplo de acesso 3G pelo programa ASEE, existem 02 tipos, o segundo é o MEYE. No cd existe o manual do MEYE.

Assessoria Técnica de Tecnologia da Informação - ATTI. Projeto de Informatização da. Secretaria Municipal de Saúde do. Município de São Paulo

MANUAL DO PUBLICADOR

Administração de Banco de Dados. José Antônio da Cunha CEFET - RN

Arquitecturas de Software Enunciado de Projecto

Tutorial do aluno Ambiente Virtual de Aprendizagem (AVA) Rede e-tec Brasil

ENG1000 Introdução à Engenharia

Tutorial de utilização do Sistema de Abertura de Chamado Sumário

Índice. Manual De instalação ProjectNet Manager

Módulo de Aprendizagem I

PREFEITURA DO MUNICÍPIO DE PORTO VELHO SECRETARIA MUNICIPAL DE ADMINISTRAÇÃO SEMAD DEPARTAMENTO DE RECURSOS DA TECNOLOGIA DA INFORMAÇÃO DRTI

Transcrição:

1

Prezado amigo! O SQL Saturday é um evento gratuito e os nossos patrocinadores são responsáveis por garantir toda a infra-estrutura para que o evento aconteça. Não deixe de conferir as promoções e serviços oferecidos por eles. Para isto, basta aceitar o contato via email em seu profile no site do PASS. Muito obrigado aos patrocinadores por terem feito este evento acontecer!!! 2

Bom, antes de começar, aqui está algumas coisas que tenho feito com powershell: Coletar informações sobre a configuração de software e hardware de vários servidores Automatizar a leitura e geração de relatórios de arquivos de log Executar vários scripts em diversos servidores ao mesmo tempo Automatizar a cópia de bancos de dados Extrair páginas de dados corrompidas do SQL Server do arquivo Integrar o SQL Server com o Zabbix Gerenciar um cluster Migrar bases de dados e servidores SQL Fazer backups de código (procedures, views, funções) e de arquivos E muito mais! Tudo depende do quanto você conhece de powershell, e, o mais importante, de sua criatividade. 3

O objetivo desta apresentação é te mostrar o mundo powershell e que tipos de coisas você pode fazer com ele. Vamos ver o básico de sua estrutura e entender os principais conceitos através de demonstrações simples e práticas. Esta apresentação está organizada nos seguintes momentos: 1. Conceitos de Shell e primeiras interações com powershell 2. Comandos básicos 3. Variáveis, Tipos e Arrays 4. Objetos versus Texto 5. Pipeline Faça bom proveito! 4

Para entender o que é powershell, primeiro é necessário compreender o que é um shell. Um shell é uma interface entre o usuário e o Sistema Operacional. É um software capaz de se comunicar com o sistema operacional para acessar os serviços fornecedos pelo mesmo, como por exemplo: criar e copiar arquivos, executar programas, enviar dados via rede, etc. Um shell é simplesmente um software que recebe comandos de fácil compreensão para o usuário, executa um processamento, se comunicando com o Sistema Operacional, através dos serviços oferecidos pelo mesmo (via API), e devolve uma resposta. O cmd.exe, ou Prompt de Comando era o shell padrão do Windows. Ele fornecia diversos comandos como o dir ou start. O powershell é uma evolução do velho Prompt de Comando e fornece uma gama muito maior de recursos, incluindo elementos de programação.net, semelhantes à linguagem C# (C Sharp). 5

Você pode usar powershell de várias maneiras, porém a mais comum é através da ferramenta powershell.exe. Assim como cmd.exe, powershell.exe vai apresentar um console onde é possível digitar comandos e receber os resultados. Se você programa em.net, você pode facilmente integrar sua aplicações com o powershell usando a classe Powershell, que se encontra no namespace System.Management.Automation. Como o powershell.exe é um programa executável, você pode inicá-lo usando o velho prompt de comando também. Basta digitar powershell.exe na linha de comando. Há um editor em que você pode criar scripts. O editor tem recursos como debug e auto-completar, além de colorir o código, que são de grande ajuda para desenvolver scripts complexos. Este editor é chamado de Windows Powershell ISE. Você pode usar outras ferramentas, como o notepad++ para criar scripts powershell também. A ferramenta powershell.exe aceita diversos parâmetros que você pode usar para incrementar suas soluções, como agendar a execução de scripts. 6

Ao abrir o powershell, você irá observar uma tela onde é exibido um texto com uma espécie de banner. Esse banner exibe apenas o texto Windows Powershell seguido de uma linha com informações de direitos autorais. Após duas linhas, é exibido algo semelhante a PS C:\>. O PS indica que você está no powershell. O C:\ é o diretório que está atualmente.! Os comandos em powershell são bem parecidos com os comandos do prompt de comando. Basta digitá-los e apertar ENTER. Por uma questão de organização e padronização, o powershell dispõe os comandos na forma Verbo-Nome. 7

Por exemplo, para listar os processos que estão em execução, basta utilizar o comando Get-Process. Para visualizar os arquivos de um diretório, use Get- ChildItem. Estes comandos são chamados de cmdlets. Para aqueles que estão familiarizados com o Prompt de Comando ou com o Linux, o powershell também fornece alguns comandos com o mesmo nome nestes outros ambientes: Por exemplo, os comandos dir e ls, que serve para lista os arquivos de um diretório, retornam extamente a mesma informação. Na verdade, estes comandos são atalhos ou apelidos (alias) para os cmdlets que existem. Você também pode facilmente exibir valores na tela, bastando apenas digitá-los. Por exemplo, se digitar 10, o powershell retorna 10. Se digitiar 10 + 1 o powershell retorna 11. Existem diversos operadores matemáticos. Se digitar o texto Isto é um texto, o powershell irá exibir o texto. 8

Nesta demo, vamos apenas observar como variáveis podems ser úteis, para guardar o resultado de cmdlets, por exemplo. Existe um cmdlet chamado Get-Date. Ele retorna a data atual. Se você executar Get-Date três vezes, então três datas diferentes serão retornadas, por conta dos segundos. Get-Date Get-Date Get-Date Porém, se você guardar o valor em uma variável, e exibir estas variáveis três vezes, então o mesmo valor sempre será exibido. $Data = Get-Date $Data $Data $Data 9

Você pode guardar o resultado de todos os cmdlets em variáveis. $Arquivos = Get-ChildItems ou $Arquivos = dir Quando há vários arquivos, ûm Array de Objetos é retornado: $Arquivos[0] $Arquivos[1] Veremos mais sobre objetos à frente. 9

Como boa parte das linguagens de programção e de script, o powershell permite que você use a memória do computador para guardar algum valor. Essa memória é alocada através do uso de variáveis. Variáveis são pequenas porções de memória que você pode guardar o que você quiser. Você precisa dar um nome para cada variável que criar. Por exemplo, vamos definir uma variável chamado Arquivos: $Arquivo; Toda variável começa com $, seguido do nome. Para atribuir algum valor a uma variável, basta usar a seguinte sintaxe: $Arquivos = C:\temp\texto.txt Você pode definir um tipo de dados. Se você define um tipo de dados, a variável só poderá receber valores daquele tipo. [string]$arquivos = C:\temp\texto.txt 10

[int]$quantidade = 100 Lembre-se: As variáveis são uma forma, mais compreensível para humanos, de alocar memória do computador. Ao usar variáveis, você está usando alguma parte da memória para guardar o seu conteúdo. Você pode guardar vários valores em uma mesma variável. Estes são os famosos Arrays ou vetores: $Arquivos = C:\temp\texto.txt, C:\temp\text2.txt $Servidores = SERVER1, SERVER2, SERVER3 $Numeros = 1,2,3,4,5,6 Um Array é como um armário, com vários compartimentos. Para acessar um desses compartimanetos você usa um número, o que chamamos de índice : $Arquivos[0] $Servidores[2] $Numeros[3] Você também pode definir um array que só aceita compartimentos de um determinado tamanho, ou, em melhores palavras, de um determinado tipo. Basta especificar o tipo de dado, seguido de [] (sem aspas): [string[]]$servidores = SERVER1, SERVER2, SERVER3 [int[]]$numeros = 1,2,3 É importante entender Arrays porque a maioria dos cmdlets retornam uma lista de objetos, ou melhor dizendo, uma array de objetos. Mais adiante, iremos falar sobre isso. 10

Os tipos de dados restrigem o que pode ser guardado em um variável. Tipos de dados são importantes, pois quando você precisa trabalhar com valores de diferentes tipos, você pode evitar problemas com conversões implícitas de um tipo de dado para outro. Ao saber qual tipo de dado um variável carrega, o powershell pode fazer certas melhorias. Você deve sempre se preocupar em escolher os tipos de dados corretos baseados nos valores que planeja guardar em variáveis. 11

Um Array é semelhante a um gaveteiro. Por exemplo, em um gaveteiro com quatro gavetas, você pode guardar roupas na primeira gaveta, livros na segunda e por aí vai. Se quiser, por exemplo, pedir alguém que pegue um livro, você dirá, Pegue um livro que está na segunda gaveta. O mesmo vale para quando você quer guardar um livro. Você pode pensar devo guardar este livro na segunda gaveta. No powershell, as variáveis podem se comportar como gaveteiros. Isto é, uma variável pode ter vários compartimentos. Isso te permite guardar vários valores em uma mesma variável. Você pode acessar cada gaveta usando um número, que é o número correspondente da gaveta, ou, a posição do array que deseja acessar. Você usa a sintaxe $NomeVariavel[Numero] onde Número é a posição do array que quer acessar. Diferentemente como fazemos no dia-a-dia, em um array a primeira gaveta é 0, e não 1. Assim, se quiser acessar a primeira posição, você usa $NomeVariável[0]. A quarta gaveta seria o 3. 12

Nesta demo, vamos apenas observar como variáveis podems ser úteis, para guardar o resultado de cmdlets, por exemplo. Existe um cmdlet chamado Get-Date. Ele retorna a data atual. Se você executar Get-Date três vezes, então três datas diferentes serão retornadas, por conta dos segundos. Get-Date Get-Date Get-Date Porém, se você guardar o valor em uma variável, e exibir estas variáveis três vezes, então o mesmo valor sempre será exibido. $Data = Get-Date $Data $Data $Data 13

Você pode guardar o resultado de todos os cmdlets em variáveis. $Arquivos = Get-ChildItems ou $Arquivos = dir Quando há vários arquivos, ûm Array de Objetos é retornado: $Arquivos[0] $Arquivos[1] Veremos mais sobre objetos à frente. 13

Uma das grandes vantagens em relação aos Prompt de Comando ou o Bash, no Linux, é que todos os cmdlets retornam objetos, e não texto (string). Isto significa que você pode acessar e transportar a informação de maneira mais flexível entre os cmdlets, eliminando a necessidade de buscar partes de uma string. A definição de objeto é bem ampla e vem da orientação à objetos. Mas, para esta apresentação, pense que um objeto é apenas um pedaço de memória, onde cada parte da memória pode ser acessada individualmente. Isso permite armazenar várias informações, ao mesmo tempo que podemos acessá-la indidualmente. Por exemplo, no antigo Prompt de Comando, o comando dir, retorna uma string, com várias linhas, onde cada linha possui um arquivo. No caso do powershell, o comando Get-ChildItem (que tem um alias dir ) retorna um array de objetos, onde cada elemento do array, contém um objeto que representa as informações do arquivo. Considere, o seguinte comando: $Arquivo = Get-Item C:\temp\Arquivo.txt 14

Estamos guardando na variável $Arquivo, o resultado de Get-Item. Este comando retorna um objeto que representa o arquivo em questão. Ele contém todas as informações a respeito do arquivo, como o nome completo, data de modificação, etc. E este objeto, estamos guardando na variável $Arquivo. Veja o conteúdo: $Arquivo Interessante certo!? Perceba que uma espécie de tabela é imprimida na tela. É possível acessar cada informação, individualmente. Por exemplo: $Arquivo.LastWriteTime O nome do arquivo: $Arquivo.Name Isto são propriedades. Todos os objetos possuem propriedades. Propriedades são como variáveis, porém cada objeto tem sua propriedade e valor. Você pode ler indivualmente, bem como gravá-las. Como eu sei quais propriedades um objeto possui? Você precisa consultar a documentação do cmdlet que retorna o objeto e saber qual tipo do objeto que ele retorna. Ou você pode usar um cmdlet chamado Get-Member que retorna todas as propriedades que existem em um objeto. Get-Member $Arquivo 14

Você pode acessar as propriedades de um objeto usando o. Por exemplo, $Data = Get-Date Agora, a variável $Data contém um objeto. Você pode acessar certas propriedades dessa forma: $Data.Day Isso retorna o valor do dia respectivo a data. Você pode usar os parênteses para forçar a execução do cmdlet. Isso permite acessar as suas propriedades sem salvá-lo em uma variável: (Get-Date).Day (Get-Date).Second (Get-Date).Second 15

Note que este método retorna um novo objeto sempre que é executado, e isso faz com que os segundos sejam diferentes. Se você executar este código às 23:59:59, e depois às 00:00:00, do próximo dia, verá que os dias retornados também são diferentes. Isso seria diferente se não guardasse em uma variável. Você pode usar o cmdlet Get-Member para ver as propriedades que existem em um objeto. Get-Member InputObject (Get-Date) Ou $d = Get-Date Get-Member InputObject $d Você verá que com o uso de pipeline, isso é mais fácil. Adiantando, você também poderá fazer assim, que é o método mais usado: Get-Date Get-Member 15

O pipeline é um recuso muito interessante e a maioria dos shells tem algo parecido. Em resumo, um pipeline é forma de passar o resultado de um comando, para outro comando. Assim o próximo comando pode realizar os mais variados processamentos, como filtrar objetos, ordená-los, etc. Você usa o símbolo (chamado pipe) para separar os comandos. Por exemplo: Get-ChildItem Select-Object Name Há dois cmdlets neste exemplo, que estão ligados pelo símbolo do pipe. Estes dois objetos cmdlets, ligados pelo PIPE, formam o que chamamos de pipeline. O pipeline é composto por dois ou mais cmdlets. O que o exemplo acima faz é obter todos os arquivos do diretório atual, através do comando Get-ChildItem, e para cada objeto retornado, ele apenas traz a propriedade Name. O pipeline é como ir ao subway. Primeiro, você escolhe o tamanho do pão, tipo, queijo e adiocionais. Depois ele é aquecido no forno. E por último você escolhe os molhos. Cada etapa é como se fosse um cmdlet no pipeline. O objeto é o sanduíche que vai sendo tratado conforme ele passa pelas etapas (cmdlets). 16

No Prompt de comando, e no bash, do Linux, o que era passado de um comando para outro eram apenas strings. Você tinha que usar diversos comandos capazes de pesquisar e extrair trechos de strings para obter a informação desejada, ou fazer o processo adeuqado. 16

Você pode usar o pipelin para aplicar diversas transformações em seu resultado. Você pode ordenar uma lista de arquivos, usando Sort-Object: Get-ChildItem Sort-Object Property Name Alguns cmdlets permitem que você use scriptblocks para realizar algum processamento. Scriptsblocks são pedaços de scripts que podem ser executados dentro do powershell. Você pode usar a variável especial $_ para acessar o objeto que está passando atualmente pelo cmdlet. O cmdlet Where-Object é um exemplo: Get-ChildItem Where-Object {$_.Name like *abc* } No exemplo acima, para cada arquivo retornado por Get-ChildItem, nós vamos usar o Where-Object para filtrar somente aqueles que possuem abc no nome. O resto será descartado. 17

Assim como existem os arquivos.bat existem os arquivos.ps1. Você pode criar arquivos.ps1 e executá-los via powershell. Você pode usar a mesma sintaxe que usa na linha de comando. Para executar o arquivo, basta colocar o caminho completo do mesmo, ou se estiver no diretório atual, usar.\nomearquivo.ps1. Exemplo: Obtem-Arquivos.ps1 Get-ChildItems Select Name Para executar este arquivo, se estiver no mesmo diretório:.\obtem-arquivos.ps1 Se estiver em outro diretório, o arquivo estiver em C:\temp C:\temp\Obtem-Arquivos.ps1 18

Você pode incluir parâmetros através da cláusula param : Exemplo de C:\temp\Obtem-Arquivos.ps1 : Param($Diretorio) Get-ChildItems $Diretorio Select Name 18

19

https://technet.microsoft.com/pt-br/library/bb978526.aspx (Português) https://technet.microsoft.com/en-us/scriptcenter/dd742419.aspx (Inglês) https://technet.microsoft.com/pt-br/scriptcenter/dd742419.aspx (Português) www.thesqltimes.com 20

21