Pular para o conteúdo principal

Questão de Sistemas Operacionais — Geral — FUNDATEC 2025

Sistemas OperacionaisGeral
Código
qa701228
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2025
Cargo
ANC ( )

PowerShell é um ambiente que combina shell de linha de comando, linguagem de script e uma estrutura de gerenciamento de configuração voltada principalmente à administração de sistemas. Com base no script abaixo, analise as assertivas a seguir e assinale V, se verdadeiras, ou F, se falsas.

 

$suspiciousPorts = @(23, 4444, 5555)

Get-NetTCPConnection -State Established | Where-Object {

$suspiciousPorts -contains $_.RemotePort

} | ForEach-Object {

"$((Get-Date).ToString('s')), ((_.RemoteAddress), ((_.RemotePort), ((_.OwningProcess)" |

Out-File -Append -FilePath "C:\Logs\SuspiciousConnections.log"

}

}

 

( ) O script monitora conexões TCP estabelecidas que utilizam as portas remotas definidas em $suspiciousPorts e registra os dados em um arquivo de log.

 

( ) A função Get-NetTCPConnection lista conexões UDP ativas no sistema.

 

( ) A opção -Append no cmdlet Out-File evita que o arquivo de log seja sobrescrito a cada nova entrada.

 

A ordem correta de preenchimento dos parênteses, de cima para baixo, é:

  1. AV – F – V.
  2. BF – F – V.
  3. CV – V – F.
  4. DF – V – F.
  5. EV – F – F.
Revelar gabarito e comentário

GabaritoA — V – F – V.

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: análise de script de monitoramento de conexões TCP

Gabarito: letra A (V – F – V). A primeira assertiva é verdadeira porque o script filtra conexões TCP estabelecidas cuja porta remota esteja contida no array $suspiciousPorts e registra os dados no arquivo de log; a segunda é falsa porque o cmdlet Get-NetTCPConnection lista conexões TCP, não UDP; a terceira é verdadeira porque o parâmetro -Append do Out-File adiciona conteúdo ao arquivo existente em vez de sobrescrevê-lo.

O PowerShell é um ambiente de automação e gerenciamento de configuração da Microsoft, amplamente utilizado na administração de sistemas Windows. Ele combina uma shell de linha de comando com uma linguagem de script, permitindo executar comandos e manipular objetos de forma estruturada. No script apresentado, temos um pipeline que começa com Get-NetTCPConnection, um cmdlet que retorna informações sobre conexões TCP ativas no sistema. O parâmetro -State Established filtra apenas as conexões que estão no estado "estabelecido", ou seja, conexões ativas e funcionais.

Em seguida, o pipeline passa essas conexões para Where-Object, que aplica um filtro baseado em uma condição: $suspiciousPorts -contains $_.RemotePort. O operador -contains verifica se o valor da porta remota da conexão está presente no array $suspiciousPorts, que contém as portas 23, 4444 e 5555. Essas portas são conhecidas por serem associadas a atividades suspeitas ou maliciosas (por exemplo, a porta 23 é usada pelo Telnet, que transmite dados sem criptografia). O filtro, portanto, seleciona apenas as conexões cuja porta remota esteja nessa lista.

Depois, o pipeline passa as conexões filtradas para ForEach-Object, que executa um bloco de script para cada uma delas. Dentro desse bloco, uma string é construída com a data e hora atual (formatada no padrão ISO 8601), o endereço remoto, a porta remota e o processo proprietário da conexão. Essa string é então enviada para o cmdlet Out-File com o parâmetro -Append, que adiciona o conteúdo ao final do arquivo especificado (C:\Logs\SuspiciousConnections.log). Se o arquivo não existir, ele é criado; se existir, o novo conteúdo é acrescentado sem apagar o que já estava lá.

A distinção crucial aqui é entre os cmdlets Get-NetTCPConnection e Get-NetUDPEndpoint. Enquanto o primeiro lida com conexões TCP (que são orientadas à conexão, com estabelecimento de sessão), o segundo lida com endpoints UDP (que são sem conexão, baseados em datagramas). A banca explora exatamente essa confusão: quem não conhece os cmdlets pode achar que Get-NetTCPConnection lista qualquer tipo de conexão, mas ele é específico para TCP. Além disso, o parâmetro -Append é um detalhe que muitos candidatos ignoram, mas que é essencial para entender o comportamento do script: sem ele, o arquivo seria sobrescrito a cada execução, perdendo os registros anteriores.

Guarde a fronteira entre TCP e UDP e o efeito do -Append: é exatamente nesses dois pontos que as assertivas se dividem.

  1. 1Get-NetTCPConnection -State Established
  2. 2Where-Object: porta remota em $suspiciousPorts
  3. 3ForEach-Object: monta string com data/endereço/porta/processo
  4. 4Out-File -Append: grava no log
LEVEL · soulevel.com.br

Assertiva 1 — ✅ Verdadeira

A assertiva afirma que o script monitora conexões TCP estabelecidas que utilizam as portas remotas definidas em $suspiciousPorts e registra os dados em um arquivo de log. Isso está correto. O pipeline começa com Get-NetTCPConnection -State Established, que obtém apenas conexões TCP no estado estabelecido. O Where-Object filtra essas conexões pela condição $suspiciousPorts -contains $_.RemotePort, ou seja, seleciona apenas aquelas cuja porta remota está na lista de portas suspeitas (23, 4444, 5555). Por fim, o ForEach-Object constrói uma string com informações relevantes (data/hora, endereço remoto, porta remota e processo) e a envia para Out-File -Append, que grava no arquivo de log. Portanto, a descrição da assertiva corresponde exatamente ao que o script faz.

Assertiva 2 — ❌ Falsa

A assertiva afirma que a função Get-NetTCPConnection lista conexões UDP ativas no sistema. Isso é falso. O cmdlet Get-NetTCPConnection é específico para conexões TCP, como o próprio nome indica. Para listar endpoints UDP, o PowerShell oferece o cmdlet Get-NetUDPEndpoint. A confusão entre TCP e UDP é comum, mas são protocolos distintos: TCP é orientado à conexão (com handshake e garantia de entrega), enquanto UDP é sem conexão (datagramas, sem garantia). A banca explora exatamente essa troca de protocolo para induzir o candidato ao erro.

Assertiva 3 — ✅ Verdadeira

A assertiva afirma que a opção -Append no cmdlet Out-File evita que o arquivo de log seja sobrescrito a cada nova entrada. Isso está correto. O parâmetro -Append do Out-File faz com que o conteúdo seja adicionado ao final do arquivo existente, em vez de substituí-lo. Sem esse parâmetro, o Out-File sobrescreveria o arquivo a cada execução, apagando os registros anteriores. Portanto, o uso de -Append é essencial para manter um histórico acumulado das conexões suspeitas.

NÃO CAIA NESSA!

A banca troca o protocolo: Get-NetTCPConnection é para TCP, não UDP. Quem não conhece os cmdlets pode cair na armadilha de achar que ele lista qualquer conexão. Além disso, o -Append é um detalhe sutil que muitos ignoram, mas que decide a terceira assertiva. Fique atento a esses dois pontos.

PEGA ESSA DICA!

Para memorizar, lembre-se: Get-NetTCPConnection = TCP, Get-NetUDPEndpoint = UDP. E Out-File -Append = adicionar, Out-File sem -Append = sobrescrever. Esses pares são clássicos em provas de PowerShell.

Gabarito: letra A (V – F – V).

Link permanente: /questoes/qa701228