Questão de Sistemas Operacionais — Comandos — Quadrix 2025
Sistemas Operacionais›Comandos
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”.
Aexecutar um ScriptBlock em um ou mais computadores remotos e retornar a saída
Biniciar uma sessão interativa com um computador remoto
Creiniciar serviços em computadores (local/remoto) como finalidade principal
Diniciar um trabalho em segundo plano na máquina local
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.
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.