PowerShell
PowerShell
Introdução
A linha de comandos que ainda está disponível nas versões mais recentes do sistema operativo
Windows ([Link]) parece, à primeira vista, um recurso antigo e pouco prático para o utilizador
comum do sistema operativo. Na realidade, é uma herança do primeiro sistema operativo desenvolvido
pela Microsoft – O MS-DOS, e apesar de muitas melhorias em relação aquele sistema operativo não
deixa de ser uma linha de comandos com muitas limitações.
A Powershell é uma versão da linha de comandos substancialmente melhor que o [Link],
apresentando uma lista muito mais extensa de comandos, melhorando a forma de explorar os recursos
disponíveis e acrescentando alguns conceitos mais avançados como, por exemplo, a passagem de
parâmetros “objeto” entre comandos.
A Powershell existe em duas versões:
1. Windows PowerShell – versão típica de consola (linha de comandos);
2. Windows PowerShell ISE (Integrated Scripting Environment) – versão em modo gráfico de
consola;
Em cada uma destas versões ainda existe a hipótese de 32 bits ou 64 bits. Ambas estão disponíveis
na versão 64 bits do sistema operativo enquanto em sistemas de 32 bits apenas existem as
versões de 32 bits. A versão de 32 bits distingue-se pela referência “Windows PowerShell (x86)”.
figura 1 – Powershell de consola
PowerShell
figura 2 – Powershell ISE – versão consola gráfica
Percebe-se pela comparação das duas versões (figuras 1 e 2) que a versão ISE apresenta novidades
mais ajustadas no apoio ao utilizador, logo a começar na ajuda que a janela lateral direita dá como
sugestão na procura de comandos. Outra grande vantagem desta versão está relacionada com a
utilização dos comandos tradicionais de copiar e colar (ctrl+c e ctrl+v).
A versão consola é mais rápida, exige menos memória e menos recursos do sistema operativo, se for a
versão eleita poderá ser aconselhável algumas configurações para tornar mais efetivo o seu trabalho.
Nas propriedades da consola (no menu superior esquerdo):
1. Nas opções, aumentar o histórico de comandos através do aumento do tamanho de memória
intermédia, no histórico de comandos;
2. No Tipo de Letra, aumentar a dimensão das letras para facilitar a identificação/distinção de
alguns caracteres.
Se, acidentalmente, executámos a consola PowerShell, podemos passar para a versão gráfica
executando o comando ise.
Prática Escrever get-s
: Observar o menu. Este permite, através das teclas de cursor ou do rato, escolher um
comando dos muitos que aparecem (apoio interativo da consola), todos eles começados por
“get-s”.
carregar várias vezes na tecla TAB.
Observar que surgem na consola os diversos comandos (começados por “get-s”), um de
PowerShell
cada vez, à espera de serem escolhidos. Shift+TAB faz algo semelhante mas no sentido
inverso. Uma vez encontrado o comando desejado basta pressionar Enter, ou completar
com parâmetros desejados e Enter.
A utilização das teclas TAB e Shift+TAB é extensiva ao reconhecimento de pastas (localizações em
memória secundária), aos parâmetros de um comando e aos argumentos de um comando.
Prática Localizações:
: Escrever dir seguido de um espaço
Escrever c:\ e pressionar TAB (diversas vezes)
Parâmetros:
Escrever Set-Execu seguido de TAB
Em seguida escrever um espaço seguido de um hífen
Pressionar TAB (diversas vezes)
Argumentos:
Escrever Set-Execu seguido de TAB
Escrever um espaço, depois escrever –E, e novamente TAB
Escrevemos novo espaço e TAB (diversas vezes)
Qual a versão?
Prática Escrever $PSVersionTable e fazer Enter
: Surge algo de semelhante a:
Obtendo ajuda
A ajuda da consola powerShell resulta do comando Get-Help, seguido do comando do qual se pretende
obter essa ajuda. Uma primeira tentativa do comando pode, na maior parte das vezes, resultar em
PowerShell
informação insuficiente. Se tal acontecer é necessário atualizar os ficheiros de ajuda, prática aliás
importante de se realizar periodicamente pelo facto da Microsoft melhorar com frequência essa ajuda.
Prática Executar Get-Help Get-Service
: Este comando permite obter orientações sobre a execução do comando Get-Service.
Para atualizar a ajuda deve-se executar o comando:
Update-Help
Isto só deve ser tentado quando a PowerShell for executada em modo administrador
(Executar como Administrador), caso contrário não será possível realizar essa atualização.
Apontamen Quando algum comando ficou a meio da sua
to: execução e nós pretendemos cancelá-lo, basta
fazer Ctrl+C
Interromper um comando de ajuda que está a
meio de informação abundante pode ser um caso
em que o atalho Ctrl+C se torna fundamental.
A ajuda da PwerShell permite a utilização de parâmetros com os wildcards (metacaracteres), os
caracteres * (qualquer conjunto de caracteres) e ? (qualquer caracter) que facilitam a procura de
comandos.
Prática Executar Get-Help *dir*
: A execução deste comando permite ver uma lista de comandos relacionados com a palavra
dir. Dos vários comandos listados, é possível identificar alguns dos mais conhecidos da
linha de comandos ([Link]) como dir, rmdir ou mkdir.
Prática PS C:\WINDOWS\system32> Get-WindowsCapability -Online -Name [Link].*
:
Name : [Link]~~~~[Link]
State : Installed
DisplayName : Microsoft Paint
Description : The classic Microsoft Paint and OLE 2.0 functionality
DownloadSize : 2275576
InstallSize : 3506269
Name : [Link]~~~~[Link]
State : Installed
DisplayName : Bloco de notas
Description : Veja, edite e pesquise instantaneamente documentos de texto simples e ficheiros de
código fonte.
DownloadSize : 301710
PowerShell
InstallSize : 323934
Name : [Link]~~~~[Link]
State : Installed
DisplayName : Windows PowerShell Integrated Scripting Environment
Description : Windows PowerShell Integrated Scripting Environment (ISE) is a graphical editor for
PowerShell
scripts with syntax-coloring, tab completion, and visual debugging.
DownloadSize : 1225371
InstallSize : 3580320
Name : [Link]~~~~[Link]
State : NotPresent
DisplayName : Gestão de Armazenamento do Windows
Description : Gestão de Armazenamento do Windows.
DownloadSize : 5169790
InstallSize : 15150704
Name : [Link]~~~~[Link]
State : Installed
DisplayName : WordPad
Description : Create, open, and edit .rtf, .docx, and .txt files instantly
DownloadSize : 1802064
InstallSize : 3278311
PS C:\WINDOWS\system32> Get-WindowsCapability -Online -Name [Link].*
Name : [Link]~~~~[Link]
State : Installed
DisplayName : Microsoft Paint
Description : The classic Microsoft Paint and OLE 2.0 functionality
DownloadSize : 2275576
InstallSize : 3506269
Name : [Link]~~~~[Link]
State : Installed
DisplayName : Bloco de notas
Description : Veja, edite e pesquise instantaneamente documentos de texto simples e ficheiros de
código fonte.
DownloadSize : 301710
InstallSize : 323934
Name : [Link]~~~~[Link]
State : Installed
DisplayName : Windows PowerShell Integrated Scripting Environment
Description : Windows PowerShell Integrated Scripting Environment (ISE) is a graphical editor for
PowerShell
scripts with syntax-coloring, tab completion, and visual debugging.
DownloadSize : 1225371
InstallSize : 3580320
Name : [Link]~~~~[Link]
State : NotPresent
DisplayName : Gestão de Armazenamento do Windows
Description : Gestão de Armazenamento do Windows.
DownloadSize : 5169790
InstallSize : 15150704
Name : [Link]~~~~[Link]
State : Installed
DisplayName : WordPad
Description : Create, open, and edit .rtf, .docx, and .txt files instantly
DownloadSize : 1802064
InstallSize : 3278311
PowerShell
Utilizando dsquery e dsget
Os comandos dsquery e dsget constituem um recurso importante no trabalho de consulta sobre o
active directory, permitindo aos utilizadores mais familiarizados com a linha de comandos aproveitar
esta forma muito versátil de administrar o sistema. Todos os pontos fortes da linha de comandos, tais
como a utilização de redireccionamento para criação de ficheiros e os pipes para composição de
instruções, aumentam a produtividade do administrador quando baseia o seu trabalho nesta
plataforma.
DN = Distinguished Names – Forma de apresentar o nome de um objecto do active directory
constituído por uma sequência de Relative Distinguished Names (RDN) separados por vírgulas,
que permitem identificar cada objecto dentro do active directory.
RDN = Relative Distinguished Names – Forma de apresentar o nome de um objecto do active
directory constituído por uma sequência de Relative Distinguished Names (RDN) separados por
vírgulas, que permitem identificar cada objecto dentro do active directory.
dsadd user “cn=Celso Barros,ou=departamento,dc=imei,cd=gei”
dsadd user “dn do utilizador” -samid pre-windows_logon_name -pwd {password|*} -
mustchpwd yes
O parâmetro -pwd especifica a password. O asterisco, se usado, solicita a introdução da password. O
parâmetro -mustchpwd indica que o utilizador deve mudar a password no próximo logon. O parâmetro
–samid permite indicar o nome de utilizador de acordo com versões anteriores ao Windows 2000.
Tarefa
Utilizando o comando dsadd (consultar a ajuda através do comando dsadd user /?) cria a
conta do utilizador com os seguintes atributos:
Nome utilizador anterior ao Windows gildo
2000
Nome próprio Gildo
Apelido Abreu
PowerShell
Nome a apresentar Gildo Abreu
Escritório Gabinete 2
Nº de telefone 244 000 555
Nº de telemóvel 991 234 561
Página Web [Link]
Empresa Sisforma
Conta expira em 20 dias
Utilizador tem mudar de password na Sim
primeira sessão?
Cargo Técnico GEI
Departamento Informatica
Password 987oiuLKJ
Descrição Especialista de hardware
Automação na criação de contas
Importando utilizadores com o comando CSVDE
[Link]:
DN,objectClass,sAMAccountName, sn,givenName,userPrincipalName
"cn=Alex
Reis,dc=imei,dc=gei",user,[Link],Alex,Reis,[Link]@[Link]
csvde -f relató[Link]