Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este apêndice fornece respostas concisas para as perguntas de revisão encontradas no final de cada capítulo. Use-o para validar sua compreensão e reforçar os principais conceitos.
Capítulo 1 – Introdução ao PowerShell
- Use a
$PSVersionTablevariável automática. - Somente quando você precisar contornar o UAC (Controle de Conta de Usuário) para tarefas que exigem elevação no computador local.
- A política de execução padrão em sistemas cliente Windows é
Restricted, o que impede a execução de scripts. - Use
Get-ExecutionPolicypara determinar a política de execução atual. - Use
Set-ExecutionPolicy(por exemplo,Set-ExecutionPolicy -ExecutionPolicy RemoteSigned).
Capítulo 2 – O sistema de Ajuda
- Não. O parâmetro DisplayName de
Get-Serviceé nomeado, não posicional. -
Get-Processtem seis conjuntos de parâmetros. - Use
Get-Command -Noun EventLog. - Use
Get-Process -Name powershell. - Execute
Update-Help(elevado como administrador no Windows PowerShell) para baixar e instalar o conteúdo de ajuda mais recente.
Capítulo 3 – Como descobrir objetos, propriedades e métodos
-
Get-Processproduz umSystem.Diagnostics.Processobjeto. - Encaminhe o comando para
Get-Member. - Verifique se o objeto tem um método que executa a ação.
- Use o parâmetro do
PassThrucomando, se ele tiver um. - Execute o comando uma vez e armazene os resultados em uma variável para evitar gerar repetidamente grandes quantidades de saída durante a criação de protótipos.
Capítulo 4 – Comandos de uma linha e o pipeline
- Um comando de uma linha (one-liner) do PowerShell é um pipeline contínuo único, independentemente de quantas linhas físicas ele abrange.
- Podem ocorrer quebras de linha naturais em caracteres como o pipe (
|), vírgula (,), colchetes de abertura ([ ]), chaves ({ }) e parênteses (( )). - Você deve aplicar filtros à esquerda para melhorar o desempenho e a eficiência, reduzindo a quantidade de dados passados pelo pipeline.
- Um comando pode aceitar a entrada do pipeline por valor (por tipo) ou por nome de propriedade.
- Como a maioria do conteúdo no Galeria do PowerShell contribuiu para a comunidade e pode não ser examinada, ela deve ser revisada e testada antes do uso.
Capítulo 5 – Formatação, aliases, provedores, comparação
- Como os cmdlets de formatação produzem objetos de formato, isso quebra o pipeline e impede seu uso pela maioria dos outros comandos.
- Utilize
Get-Alias -Name %para identificar o cmdlet específico. - Como os aliases reduzem a legibilidade e a portabilidade, torna os scripts mais difíceis de entender para outras pessoas.
- Use
Get-ChildItem -Path HKLM:\, HKCU:\para listar as chaves do Registro em ambos os hives. - O
-replaceoperador não diferencia maiúsculas de minúsculas por padrão, enquanto o.Replace()método diferencia maiúsculas de minúsculas.
Capítulo 6 – Controle de fluxo
-
ForEach-Objectprocessa itens um de cada vez do pipeline (streaming), enquanto aforeachdeclaração processa itens de uma coleção que já está carregada na memória. - Um
whileloop avalia sua condição antes de ser executado, portanto, ele pode não ser executado se a condição for falsa, ao contráriodo whileedo until, que é executada pelo menos uma vez. -
breaksai totalmente do loop, enquantocontinueignora a iteração atual e prossegue para a próxima.
Capítulo 7 – Trabalhando com o WMI
- Os cmdlets WMI (por exemplo,
Get-WmiObject) são mais antigos e usam DCOM, enquanto os cmdlets CIM (por exemplo,Get-CimInstance) são mais recentes e usam o WSMan por padrão. - WSMan (gerenciamento remoto Windows).
- As sessões cim permitem a reutilização de conexões, dão suporte a credenciais alternativas, melhoram o desempenho e simplificam o gerenciamento de várias conexões remotas.
- Crie uma opção de sessão com
New-CimSessionOption, por exemplo, para usar o DCOM e passá-la paraNew-CimSession, em seguida, use essa sessão comGet-CimInstance. - Use
Remove-CimSession.
Capítulo 8 – Comunicação remota do PowerShell
- Use
Enable-PSRemoting. - Use
Enter-PSSession. - Ele permite que você use uma sessão persistente em vez de especificar o nome do computador e as credenciais com cada comando.
- Sim, você pode usar uma sessão do PowerShell (PSSession) em um cenário de comunicação remota interativa um-para-um.
- Os cmdlets executados localmente retornam objetos dinâmicos com métodos, enquanto os comandos remotos retornam objetos desserializados sem métodos.
Capítulo 9 – Funções
- Use
Get-Verb. - Adicione o
[CmdletBinding()]atributo à função. - Quando a função faz alterações no estado do sistema ou executa ações potencialmente impactantes.
- Especifique
-ErrorAction Stop. - Para documentar como usar a função para que você e outras pessoas possam entendê-la facilmente e acessar a ajuda com
Get-Help.
Capítulo 10 – Módulos de script
- Crie um
.psm1arquivo e coloque suas funções nele. - O uso de verbos aprovados garante consistência, evita avisos e melhora a capacidade de descoberta.
- Use
New-ModuleManifest. - Use
Export-ModuleMemberno.psm1arquivo ou especifique funções noFunctionsToExportcampo do.psd1arquivo. - O módulo deve estar em uma pasta chamada igual ao módulo, localizada em um caminho listado
$env:PSModulePathe conter o arquivo de módulo apropriado (.psm1ou manifesto).
Notas finais
- Essas respostas são intencionalmente concisas para reforçar conceitos-chave.
- Revisite os capítulos para uma compreensão mais profunda.
Colaborar conosco no GitHub
A fonte deste conteúdo pode ser encontrada no GitHub, onde você também pode criar e revisar problemas e solicitações de pull. Para obter mais informações, confira o nosso guia para colaboradores.