guidox / PC

Speed Up Slow SMB File Copies on a LAN

TL;DR

Check **Get-SmbClientConfiguration** and **Get-SmbMultichannelConnection**, then compare a large sequential copy against the link speed. Signing and multichannel are the first two levers.

Before you start

Requirements

  • Admin rights on both machines
  • A large test file
  • 20 minutes
Step by step

Instructions

01

Measure before you change anything

A copy of one large file isolates throughput from per-file overhead. The result in MB/s is the number every change has to improve.

$src = 'C:\temp\test.bin'
fsutil file createnew $src 2147483648
Measure-Command { Copy-Item $src '\\PC02\share\test.bin' -Force } | Select-Object TotalSeconds
Get-NetAdapter -Name 'Ethernet' | Select-Object LinkSpeed
02

Read the SMB client settings

**RequireSecuritySignature** costs measurable throughput on older CPUs. **EnableLargeMtu** and **SMB2** support decide how much data moves per round trip.

Get-SmbClientConfiguration | Select-Object EnableSecuritySignature,RequireSecuritySignature,EnableLargeMtu,MaxCredits,UseMultiChannel,SMB2Dialect
Get-SmbConnection | Select-Object ServerName,ShareName,Dialect,NumOpens
Get-SmbClientNetworkInterface | Select-Object InterfaceIndex,IpAddress,RssCapable,LinkSpeed
03

Check the multichannel state

Two adapters or a 2.5 Gb link only help when multichannel is active. A single connection with one channel is a single stream, no matter the hardware.

Get-SmbMultichannelConnection | Select-Object ServerName,ClientIPAddress,ServerIPAddress,ClientLinkSpeed,ServerLinkSpeed
Get-SmbClientConfiguration | Select-Object UseMultiChannel
Get-NetAdapter | Select-Object Name,LinkSpeed,Status
04

Change one setting at a time

Signing is the biggest lever on a trusted LAN, and it needs both ends. Multichannel needs at least two interfaces or RSS support on both sides.

Set-SmbClientConfiguration -RequireSecuritySignature $false -Confirm:$false
Set-SmbClientConfiguration -EnableMultiChannel $true -Confirm:$false
Get-SmbClientConfiguration | Select-Object RequireSecuritySignature,EnableMultiChannel
# repeat the copy test and compare with the baseline
05

Check the server side too

A client change fails when the server requires signing. The server's own configuration and its disk performance decide the ceiling.

Get-SmbServerConfiguration | Select-Object RequireSecuritySignature,EnableSMB2Protocol,MaxWorkItems,MaxThreadsPerQueue
Get-SmbShare | Select-Object Name,Path,CachingMode
Get-Counter '\PhysicalDisk(*)\% Disk Time' -SampleInterval 1 -MaxSamples 3 | Select-Object -ExpandProperty CounterSamples | Select-Object InstanceName,CookedValue
06

Confirm the new baseline

Repeat the exact same copy. A gigabit link tops out near 110 MB/s, and a 2.5 Gb link near 280 MB/s; anything close to that is the hardware, not the protocol.

Measure-Command { Copy-Item 'C:\temp\test.bin' '\\PC02\share\test2.bin' -Force } | Select-Object TotalSeconds
Get-SmbConnection | Select-Object Dialect,NumOpens
Get-Counter '\SMB Client Shares(*)\Bytes Total/sec' -SampleInterval 1 -MaxSamples 3 | Select-Object -ExpandProperty CounterSamples | Select-Object InstanceName,CookedValue
Troubleshooting

Common issues

Throughput is stuck near 11 MB/s

The link negotiated at 100 Mbps. Check LinkSpeed on both ends and the cable before tuning SMB.

Small files copy slowly but large ones are fine

Per-file overhead. Use robocopy with /MT to run several streams in parallel instead of changing SMB settings.

Signing cannot be disabled

A domain policy sets it on the server. Client-side changes are ignored until the policy changes.

Multichannel never activates

Both ends need two interfaces on the same subnet, or RSS support. A single cable cannot produce two channels.

FAQ

Frequently asked

Is disabling signing dangerous?

It removes protection against tampering on the wire. Only do it on a trusted, switched LAN, never across the internet.

Does SMB compression help?

For compressible data over a slow link yes. On a gigabit LAN the CPU cost usually outweighs the gain.

Should I enable jumbo frames?

Only when every device in the path supports the same MTU. A mismatch causes retransmissions and a slower copy.

How to undo this

Set RequireSecuritySignature back to $true and EnableMultiChannel to $false if it was off, using Set-SmbClientConfiguration, then delete the test files.

Changelog · 1 entry
  1. 2026-11-01
    First version
Interactive version: checklist, feedback, related guides →

Free · no account needed · tracks your progress