Gigabit LAN transfers run at a fraction of the speed
The link negotiated is not the link being used. Copies crawl, small files worse than large ones.
What you see
A file copy over a gigabit network runs at 10–12MB/s or lower, or starts fast and collapses. Both machines are otherwise fine.
What is actually wrong
A duplex or speed mismatch on the switch port, an offload feature the driver implements badly, receive-side scaling disabled on a busy server, or SMB signing and encryption costing more than the network does.
Codes and articles
Fixes (3)
Check what the link actually negotiated
Slow in both directions. Establish the physical layer before anything else.
Read the negotiated speed. Anything below 1Gbps on gigabit equipment is the answer.
Get-NetAdapter | Format-Table Name,Status,LinkSpeed,FullDuplex,MtuSizeLook for errors — a bad cable shows here long before it shows anywhere else.
Get-NetAdapterStatistics | Format-Table Name,ReceivedDiscardedPackets,ReceivedPacketErrors,OutboundDiscardedPackets,OutboundPacketErrorsRising receive errors on a link that claims 1Gbps means the cable or the port, not the software. It is worth a two-minute cable swap before an afternoon of driver settings.
Leave speed and duplex on Auto at both ends. A hard-set port against an auto port is the classic mismatch and produces exactly this.
Swap the cable and the switch port and re-test before changing any driver setting.
Disable the offload features one at a time
Transfers start fast and collapse — the signature of a broken offload implementation.
Record the current state so it can be put back exactly.
Get-NetAdapterAdvancedProperty -Name 'Ethernet' | Format-Table DisplayName,DisplayValue | Out-File $env:USERPROFILE\Desktop\nic-before.txtTurn off large send offload, which is the usual culprit.
Disable-NetAdapterLso -Name 'Ethernet'Re-test. If it is still slow, try checksum offload and then receive-side coalescing, restoring each one before trying the next.
Disable-NetAdapterChecksumOffload -Name 'Ethernet'Disable-NetAdapterRsc -Name 'Ethernet'
Changing them all at once fixes the symptom and teaches you nothing. One at a time takes twenty minutes and tells you which setting to document for the rest of the estate.
Update the network driver from the manufacturer, then re-enable everything and test again — a fixed driver is better than a permanently disabled feature.
Get-NetAdapterLso -Name 'Ethernet' | Format-Table Name,V1IPv4Enabled,IPv4EnabledMeasure what SMB is costing before changing it
Only file shares are slow, and only to certain servers.
See the dialect, whether multichannel is in use, and whether it is signing or encrypting.
Get-SmbConnection | Format-Table ServerName,ShareName,Dialect,Encrypted,SignedGet-SmbClientConfiguration | Format-List EnableMultiChannel,RequireSecuritySignature,EnableBandwidthThrottling
On the server, check the same.
Get-SmbServerConfiguration | Format-List EnableSMB2Protocol,RequireSecuritySignature,EncryptData,EnableMultiChannelIf signing is required and the CPU is the bottleneck, the answer is a faster server or more channels — not turning signing off. Signing is what stops a man in the middle rewriting the files in transit.
Every forum answer to this suggests disabling SMB signing. On a domain network it is required for SYSVOL by default and disabling it opens a real attack. Measure first.
Enable multichannel if both ends have more than one adapter — it multiplies throughput without weakening anything.
Set-SmbClientConfiguration -EnableMultiChannel $true -ForceSet-SmbServerConfiguration -EnableMultiChannel $true -Force
Get-SmbMultichannelConnection | Format-Table Server,ClientIpAddress,ServerIpAddress,CurrentChannelsRelated faults
Where this stops. This write-up was written and checked by hand. It says what each step changes, how to confirm it worked and how to reverse it, and anything destructive is flagged before you reach it. If it does not match what your machine is doing, search the Support Centre for the exact code or message — and when something needs a person, get in touch.