Ao trabalhar com PowerShell, a primeira coisa que encontramos são os comandos (Cmdlet).
A chamada do comando se parece com isso:
Verbo-Nome -Parâmetro1 TipoValor1 -Parâmetro2 TipoValor2[]
Ajuda
A chamada de ajuda no PowerShell é feita através do comando Get-Help. Você pode especificar um dos parâmetros: example, detailed, full, online, showWindow.
Get-Help Get-Service -full retornará a descrição completa do funcionamento do comando Get-Service
Get-Help Get-S* mostrará todos os comandos e funções disponíveis que começam com Get-S*
Além disso, no site oficial da Microsoft, há documentação detalhada.
Aqui está um exemplo de ajuda sobre o comando Get-EventLog

Se os parâmetros estiverem entre colchetes [], eles são opcionais.
Ou seja, neste exemplo, o nome do log é obrigatório, enquanto o nome do parâmetro não é. Se o tipo do parâmetro e seu nome estiverem entre parênteses juntos, então esse parâmetro é opcional.
Se olharmos para o parâmetro EntryType, veremos valores que estão entre chaves. Para este parâmetro, podemos usar apenas valores pré-definidos entre chaves.
A informação sobre se um parâmetro é obrigatório pode ser vista na descrição abaixo no campo Required. No exemplo acima, o atributo After é opcional, pois ao lado de Required está o valor false. Em seguida, vemos o campo Position, ao lado do qual está escrito Named. Isso indica que o parâmetro pode ser acessado apenas pelo nome, ou seja:
Get-EventLog -LogName Application -After 2020.04.26Como o parâmetro LogName, em vez de Named, foi especificado como número 0, significa que podemos acessar o parâmetro sem nome, indicando-o na ordem correta:
Get-EventLog Application -After 2020.04.26Suponhamos essa ordem:
Get-EventLog -Newest 5 ApplicationAlias
Para que possamos usar comandos familiares do console no PowerShell, existem aliases (Alias).
Um exemplo de alias para o comando Set-Location é cd.
Ou seja, em vez de chamar o comando
Set-Location “D:”podemos usar
cd “D:”Histórico
Para visualizar o histórico de chamadas de comandos, você pode usar Get-History
Executar o comando do histórico Invoke-History 1; Invoke-History 2
Limpar histórico Clear-History
Pipeline
O pipeline no PowerShell é quando o resultado da execução da primeira função é passado para a segunda. Aqui está um exemplo de uso do pipeline:
Get-Verb | Measure-ObjectMas para entender melhor o pipeline, vamos pegar um exemplo mais simples. Há o comando
Get-Verb "get"Se chamarmos a ajuda Get-Help Get-Verb -Full, veremos que o parâmetro Verb aceita entrada pipline e entre parênteses está escrito ByValue.

Isso significa que podemos reescrever Get-Verb "get" como "get" | Get-Verb.
Ou seja, o resultado da primeira expressão é uma string e ela é passada para o parâmetro Verb do comando Get-Verb através da entrada pipelined por valor.
Além disso, a entrada pipelined pode ser ByPropertyName. Nesse caso, estaremos passando um objeto que possui uma propriedade com nome semelhante a Verb.
Variáveis
Variáveis não são tipadas rigidamente e são definidas com um símbolo $ na frente.
$example = 4O símbolo > significa colocar dados em
Por exemplo, $example > File.txt
Com essa expressão, vamos colocar os dados da variável $example no arquivo.
De forma semelhante ao comando Set-Content -Value $example -Path File.txt
Arrays
Inicialização de um array:
$ArrayExample = @("First", "Second")Inicialização de um array vazio:
$ArrayExample = @()Obtendo valor pelo índice:
$ArrayExample[0]Obter todo o array:
$ArrayExampleAdicionando um elemento:
$ArrayExample += "Third"$ArrayExample += @("Fourth", "Fifth")Ordenação:
$ArrayExample | Sort$ArrayExample | Sort -DescendingMas o array em si permanece inalterado com essa ordenação. E se quisermos que o array contenha dados ordenados, precisamos atribuir os valores ordenados:
$ArrayExample = $ArrayExample | SortNa verdade, não há operação de remoção de elementos de um array em PowerShell, mas podemos fazer isso assim:
$ArrayExample = $ArrayExample | where { $_ -ne "First" }$ArrayExample = $ArrayExample | where { $_ -ne $ArrayExample[0] }
Removendo o array:
$ArrayExample = $nullLoops
Sintaxe dos loops:
for($i = 0; $i -lt 5; $i++){}
$i = 0
while($i -lt 5){}
$i = 0
do{} while($i -lt 5)
$i = 0
do{} until($i -lt 5)
ForEach($item in $items){}Saída do loop break.
Pular item continue.
Declarações Condicionais
if () {} elseif () {} elseswitch($someIntValue){
1 { "Opção 1" }
2 { "Opção 2" }
default { "Não definido" }
}
Função
Definição de função:
function Example () {
echo &args
}Executar função:
Example "Primeiro argumento" "Segundo argumento"Definição de argumentos na função:
function Example () {
param($first, $second)
}
function Example ($first, $second) {}Executar função:
Example -first "Primeiro argumento" -second "Segundo argumento"Exceção
try{
} catch [System.Net.WebException],[System.IO.IOException]{
} catch {
} finally{
}
Fonte: habr.com
