Pular para o conteúdo principal

Questão de Sistemas Operacionais — Comandos — Quadrix 2025

Sistemas OperacionaisComandos
Código
qg596002
Banca
Quadrix
Órgão
CRA-SP
Ano
2025
Nível
Superior
Cargo
Analista II - Infraestrutura Computacional
Conforme o contexto do PowerShell Remoting (WinRM), assinale a opção que apresenta a função do cmdlet “Invoke‑Command”.
  1. Aexecutar um ScriptBlock em um ou mais computadores remotos e retornar a saída
  2. Biniciar uma sessão interativa com um computador remoto
  3. Creiniciar serviços em computadores (local/remoto) como finalidade principal
  4. Diniciar um trabalho em segundo plano na máquina local
  5. Eenviar requisições HTTP/HTTPS e obter conteúdo da web
Revelar gabarito e comentário

GabaritoA — executar um ScriptBlock em um ou mais computadores remotos e retornar a saída

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

PowerShell Remoting: o cmdlet Invoke-Command

Gabarito: letra A. O cmdlet Invoke-Command do PowerShell executa um ScriptBlock (bloco de comandos) em um ou mais computadores remotos, retornando a saída gerada — é a ferramenta central do PowerShell Remoting, que opera sobre o WinRM (Windows Remote Management). As demais alternativas descrevem outros cmdlets ou finalidades que não correspondem à função principal do Invoke-Command.

O PowerShell Remoting é o mecanismo que permite administrar máquinas remotas a partir da linha de comando, usando o protocolo WinRM (Windows Remote Management), que implementa o padrão WS-Management. O Invoke-Command é o cmdlet que materializa essa capacidade: ele envia um bloco de código (ScriptBlock) para execução em um ou mais computadores remotos e coleta os resultados de volta na sessão local. A sintaxe básica é Invoke-Command -ComputerName <nome> -ScriptBlock { <comandos> }, e a saída de cada máquina é retornada como objetos, que podem ser processados como se fossem gerados localmente.

A grande vantagem do Invoke-Command é que ele permite executar comandos em paralelo em várias máquinas, sem a necessidade de abrir uma sessão interativa em cada uma. Por exemplo, para verificar o status de um serviço em três servidores, basta um único comando: Invoke-Command -ComputerName SRV01, SRV02, SRV03 -ScriptBlock { Get-Service Spooler }. O resultado é uma lista com o status do serviço em cada servidor, já consolidada.

É importante distinguir o Invoke-Command de outros cmdlets de remoting:

Cmdlet

Função principal

Invoke-Command

Executa um ScriptBlock em computadores remotos e retorna a saída

Enter-PSSession

Inicia uma sessão interativa com um computador remoto

New-PSSession

Cria uma sessão persistente (sem executar comandos imediatamente)

Start-Job

Inicia um trabalho em segundo plano na máquina local

Restart-Service

Reinicia serviços em computadores (local/remoto)

Invoke-WebRequest

Envia requisições HTTP/HTTPS e obtém conteúdo da web

A pegadinha da banca está em confundir o Invoke-Command com o Enter-PSSession (alternativa B) e com o Start-Job (alternativa D). O Enter-PSSession cria uma sessão interativa, onde o prompt muda para o computador remoto e o usuário digita comandos um a um, como se estivesse logado na máquina. Já o Start-Job executa um trabalho em segundo plano na máquina local, sem envolvimento de remoting. O Invoke-Command é o único que combina execução remota de um bloco de comandos com retorno da saída.

Guarde a fronteira entre "executar um bloco de comandos e retornar a saída" (Invoke-Command) e "abrir uma sessão interativa" (Enter-PSSession): é exatamente nela que as alternativas se dividem.

1Invoke-Command
executa ScriptBlock em remoto
retorna a saída
2Enter-PSSession
sessão interativa
3New-PSSession
sessão persistente
4Start-Job
trabalho em 2º plano (local)
5Restart-Service
reinicia serviços
6Invoke-WebRequest
requisições HTTP/HTTPS
Cmdlets de remoting (PowerShell)
LEVELsoulevel.com.br
Cmdlets de remoting (PowerShell): Invoke-Command (executa ScriptBlock em remoto, retorna a saída); Enter-PSSession (sessão interativa); New-PSSession (sessão persistente); Start-Job (trabalho em 2º plano (local)); Restart-Service (reinicia serviços); Invoke-WebRequest (requisições HTTP/HTTPS)

Alternativa A — ✅ Correta ⟵ GABARITO

Esta é a definição precisa do Invoke-Command. Ele aceita um ScriptBlock (delimitado por chaves { }) e o executa em um ou mais computadores remotos, retornando a saída de cada execução. É o cmdlet mais usado para administração remota em lote, pois permite executar qualquer comando ou script em várias máquinas de uma só vez.

Alternativa B — ❌ Incorreta

Iniciar uma sessão interativa com um computador remoto é a função do cmdlet Enter-PSSession, não do Invoke-Command. A banca troca os dois cmdlets porque ambos fazem parte do PowerShell Remoting, mas a natureza da interação é diferente: o Enter-PSSession abre um shell interativo na máquina remota, enquanto o Invoke-Command executa um bloco de comandos e retorna o resultado, sem manter uma sessão aberta.

Alternativa C — ❌ Incorreta

Reiniciar serviços é a função do cmdlet Restart-Service, que pode ser usado localmente ou remotamente (com o parâmetro -ComputerName). O Invoke-Command pode, indiretamente, reiniciar um serviço se o ScriptBlock contiver Restart-Service, mas essa não é a sua finalidade principal — ele é um executor genérico de comandos remotos, não uma ferramenta específica de gerenciamento de serviços.

Alternativa D — ❌ Incorreta

Iniciar um trabalho em segundo plano na máquina local é a função do cmdlet Start-Job. O Invoke-Command executa comandos de forma síncrona (aguardando a conclusão) ou assíncrona (com -AsJob), mas o conceito de "trabalho em segundo plano na máquina local" pertence ao Start-Job, que não envolve remoting.

Alternativa E — ❌ Incorreta

Enviar requisições HTTP/HTTPS e obter conteúdo da web é a função do cmdlet Invoke-WebRequest (ou Invoke-RestMethod). O Invoke-Command não lida com protocolos web; ele usa o WinRM para comunicação remota entre máquinas Windows.

NÃO CAIA NESSA!

A banca explora a semelhança entre os cmdlets de remoting. O candidato que sabe que Invoke-Command "faz algo remoto" pode cair na alternativa B (sessão interativa), mas a diferença é clara: Invoke-Command executa um bloco de comandos e retorna a saída; Enter-PSSession abre uma sessão interativa. Memorize o par: Invoke = executa e retorna; Enter = entra e interage.

NÃO CAIA NESSA!

Para fixar, agrupe os cmdlets por função: execução remota (Invoke-Command), sessão interativa (Enter-PSSession), sessão persistente (New-PSSession), trabalho em segundo plano (Start-Job), serviços (Restart-Service) e web (Invoke-WebRequest). Em provas, a banca costuma trocar exatamente esses pares.

Gabarito: letra A

Link permanente: /questoes/qg596002