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
- 1. 3. Pré-requisitos e Setup
- 2. 4. PowerShell Moderno: Get-NetAdapter Avançado
- 3. 5. Debugging de Windows Firewall (WFAS) com PktMon
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
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):
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
# 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
# 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)
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
# 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)
# 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