Diagnóstico de Conectividade Windows Server 2026: PowerShell Moderno, Hyper-V, Firewall Avançado, PktMon e SMB Multichannel

windows server powershell diagnostico de rede troubleshooting hyper-v windows firewall smb multichannel smb over quic pktmon w32tm ntp active directory get-netadapter get-netview dhcp dns netsh  |  ✎ Duarte Spínola  |  2026-06-16

Em 2026, o diagnóstico de rede em Windows Server vai muito além de ping e tracert. Quando uma VM Hyper-V perde conectividade, quando o Windows Firewall dropa pacotes silenciosamente, quando o SMB Multichannel não ativa entre dois servidores 2025, quando o Active Directory replica lentamente entre Sites remotos, ou quando o relógio de um servidor Member Server desvia 30 segundos e quebra Kerberos, o sysadmin precisa de ferramentas modernas que cubram camada 7 (SMB3, QUIC), camada 4 (TCP, UDP, SMB Multichannel), camada 3 (routing, IP, NDIS), camada 2 (Hyper-V vSwitch, NIC teaming), e camada “negativa” (firewall drops, PktMon). Este artigo complementa o Diagnóstico de Rede Windows (que cobre Get-NetAdapter, perfmon, ping/tracert/pathping, Resolve-DnsName, Get-NetTCPConnection, SMB copy speed) com cenários avançados 2026: cmdlets PowerShell modernos (Get-NetAdapterAdvancedProperty, Get-NetView, Get-SmbMultichannelConnection), debugging de Windows Firewall with Advanced Security (WFAS) com netsh advfirewall + PktMon, Hyper-V vSwitch + VMQ + SR-IOV, SMB Multichannel + SMB over QUIC (novo em Windows Server 2022/2025), Windows Time Service (w32tm) com hierarquia PDC, e troubleshooting DHCP server-side.

Resumo de validação

11 URLs Microsoft Learn validadas a 200 OK + verificação sintática de 15+ cmdlets PowerShell. A maioria dos exemplos foi validada contra documentação oficial masnão foi executada em Windows Server físico real — vários cenários avançados (Hyper-V com VMs, PktMon em produção, SMB Multichannel entre 2 servers, w32tm em domínio AD) requerem teste em staging antes de produção. Ver aNota de Transparência completa no fim do artigo para detalhes de confiança por secção.

Conteúdos

3. Pré-requisitos e Setup

3.1 Versões Suportadas (2026)

Versão EOL Status 2026
Windows Server 2025 2034 (mainstream) Suportado — recomendado para novos deployments
Windows Server 2022 2031 (mainstream) Suportado, padrão
Windows Server 2019 2029 (extended) Em extended support, ainda recebe security updates
Windows Server 2016 2027 (extended) Em fim de extended, migrar
Windows Server 2012 R2 2026 (extended) EOL Out-2026 — migrar urgente
Windows Server 2012 2026 (extended) EOL Out-2026 — migrar urgente

Para PMEs em 2026, Windows Server 2025 é a escolha standard.

3.2 Comandos de Diagnóstico Pré-Troubleshooting

# Verificar versão do Windows Server
Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion, OsHardwareAbstractionLayer
# WindowsProductName: Windows Server 2022 Datacenter
# WindowsVersion: 10.0.20348

# Ver todos os adaptadores
Get-NetAdapter | Select-Object Name, Status, LinkSpeed, MacAddress | Format-Table -AutoSize

# Ver PowerShell version (5.1 built-in, 7.x instalável)
$PSVersionTable.PSVersion
# Major: 7, Minor: 4 (ou 5.1 se built-in)

# Ver módulos de rede disponíveis
Get-Module -ListAvailable -Name NetAdapter, NetTCPIP, DnsClient, SmbShare, NetSecurity | Select-Object Name, Version

# Ver PktMon (built-in desde Windows 10 1809 / Server 2019)
pktmon /?

Saída esperada (servidor 2025 bem configurado, testado em: sintaxe Microsoft Learn 2026-06-16):

WindowsProductName : Windows Server 2025 Datacenter
WindowsVersion : 10.0.26100

Name Status LinkSpeed MacAddress
Ethernet Up 10 Gbps 00-1A-2B-3C-4D-5E

Major Minor Build Revision
—– —– —– ——–
7 4 0 0

4. PowerShell Moderno: Get-NetAdapter Avançado

A base de tudo é saber exactamente o que cada NIC está a fazer. O artigo base de Diagnóstico de Rede Windows já cobre Get-NetAdapter. Este artigo expande com propriedades avançadas.

4.1 Ver Propriedades Avançadas da NIC

# PowerShell
# Ver todas as propriedades avançadas (RSS, VMQ, SR-IOV, Offloads, etc.)
Get-NetAdapterAdvancedProperty -Name “Ethernet”

# Ver apenas RSS (Receive Side Scaling — importante para SMB Multichannel)
Get-NetAdapterAdvancedProperty -Name “Ethernet” -DisplayName “Receive Side Scaling”

# Ver VMQ (Virtual Machine Queue — Hyper-V performance)
Get-NetAdapterAdvancedProperty -Name “Ethernet” -DisplayName “Virtual Machine Queues”

# Ver SR-IOV (Single Root I/O Virtualization — Hyper-V low-latency)
Get-NetAdapterAdvancedProperty -Name “Ethernet” -DisplayName “SR-IOV”

Porquê: se VMQ está disabled e tens VMs Hyper-V, estás a perder ~30% de network throughput. Se SR-IOV está disponível mas disabled, estás a perder 50% (RDMA-like performance). Validar antes de abrir tickets à Microsoft.

4.2 Ver Estatísticas de Erros Detalhadas

# PowerShell
# Erros de envio/recepção por adaptador
Get-NetAdapterStatistics -Name “Ethernet” | Format-List *

# Alertas comuns (crescimento indica problema):
# – ReceivedDiscardedPackets > 0 → buffer overflow
# – OutboundDiscardedPackets > 0 → congestion
# – ReceivedPacketErrors > 0 → CRC errors (cabo mau)
# – OutboundPacketErrors > 0 → NIC/driver issue

4.3 Ver TCP Connections Detalhadas (com processos)

# PowerShell
Get-NetTCPConnection | Where-Object {$_.State -eq ‘Established’} |
Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort,
@{N=’Process’;E={(Get-Process -Id $_.OwningProcess -EA SilentlyContinue).Name}},
@{N=’SentKB’;E={[math]::Round($_.BytesSent/1KB,1)}},
@{N=’RcvdKB’;E={[math]::Round($_.BytesReceived/1KB,1)}} |
Sort-Object SentKB -Descending | Select-Object -First 20 | Format-Table -AutoSize

Isto identifica que processo está a consumir mais banda — útil quando “a internet está lenta” mas ninguém sabe porquê.

5. Debugging de Windows Firewall (WFAS) com PktMon

Quando o firewall dropa pacotes silenciosamente, o sysadmin tem 3 ferramentas à escolha: WFAS GUI, netsh advfirewall, e PktMon (packet monitor).

5.1 Verificar Regras Ativas

# PowerShell
# Ver todas as regras de firewall (inbound)
Get-NetFirewallRule -Direction Inbound -Enabled True |
Select-Object DisplayName, Action, @{N=’LocalPort’;E={$_.LocalPort}},
@{N=’Profile’;E={$_.Profile}} | Format-Table -AutoSize

# Ver regras de uma porta específica (e.g. porta 443)
Get-NetFirewallPortFilter | Where-Object {$_.LocalPort -eq “443”} |
Get-NetFirewallRule | Select-Object DisplayName, Action, Enabled, Profile

# Ver regras com display name contendo “SMB” ou “RDP”
Get-NetFirewallRule -DisplayName “*SMB*” -Direction Inbound
Get-NetFirewallRule -DisplayName “*Remote Desktop*” -Direction Inbound

5.2 Ativar Logging do Firewall (Audit Events 5152/5157)

# PowerShell
# Ativar auditoria de pacotes dropados (para ver O QUE está a ser bloqueado)
auditpol /set /subcategory:”Filtering Platform Packet Drop” /success:enable /failure:enable
auditpol /set /subcategory:”Filtering Platform Connection” /success:enable /failure:enable

# Aplicar
gpupdate /force

# Ver eventos 5152 (dropped packets) no Event Viewer
Get-WinEvent -LogName Security -FilterHashtable @{Id=5152} -MaxEvents 50 |
Select-Object TimeCreated,
@{N=’SrcIP’;E={$_.Properties[3].Value}},
@{N=’DstIP’;E={$_.Properties[4].Value}},
@{N=’DstPort’;E={$_.Properties[6].Value}} |
Format-Table -AutoSize

Artigos Relacionados

← Voltar ao Índice