Set-SmbBandwidthLimit

Adds an SMB bandwidth cap.

Syntax

Set-SmbBandwidthLimit
   [-AsJob]
   -BytesPerSecond <UInt64>
   -Category <BandwidthLimitCategory>
   [-CimSession <CimSession[]>]
   [-Confirm]
   [-ThrottleLimit <Int32>]
   [-WhatIf]
   [<CommonParameters>]

Description

The Set-SmbBandwidthLimit cmdlet adds a Server Message Block (SMB) bandwidth cap for the traffic categories that you specify. SMB bandwidth caps limit the amount of data that the server can send for each traffic category.

Examples

Example 1: Add an SMB limit

PS C:\> Set-SmbBandwidthLimit -Category Default -BytesPerSecond 100MB

This command limits SMB traffic to 100 megabytes per second for traffic that is unrelated to Hyper-V over SMB or Live Migration.

Example 2: Add an SMB limit for live migration

PS C:\> Set-SmbBandwidthLimit -Category LiveMigration -BytesPerSecond 1GB

This command limits SMB traffic to 1 gigabyte per second for Live Migration.

Required Parameters

-BytesPerSecond

Specifies the maximum number of bytes per second that the server can send for the traffic categories that you specify. You can specify units after the number of bytes, such as KB, MB, and GB. You cannot specify a value smaller than 1MB (1048576 bytes) for this parameter.

Type:UInt64
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Category

Specifies an array of categories of the SMB bandwidth limits to add. The acceptable values for this parameter are:

  • Default
  • VirtualMachine
  • LiveMigration
Type:BandwidthLimitCategory
Parameter Sets:Default, VirtualMachine, LiveMigration, StorageReplication
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

Optional Parameters

-AsJob

Runs the cmdlet as a background job. Use this parameter to run commands that take a long time to complete.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-CimSession

Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session object, such as the output of a New-CimSession or Get-CimSession cmdlet. The default is the current session on the local computer.

Type:CimSession[]
Aliases:Session
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Confirm

Prompts you for confirmation before running the cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-ThrottleLimit

Specifies the maximum number of concurrent operations that can be established to run the cmdlet. If this parameter is omitted or a value of 0 is entered, then Windows PowerShell® calculates an optimum throttle limit for the cmdlet based on the number of CIM cmdlets that are running on the computer. The throttle limit applies only to the current cmdlet, not to the session or to the computer.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

Notes

  • Before you can use this cmdlet, you must enable the feature by using the following command: Add-WindowsFeature -Name FS-SMBBW For more information, type Get-Help Install-WindowsFeature. When you enable the feature, the SMB server creates a new SMB performance counter set that has an instance per category. The performance counters in this set use the same counters as the SMB Client Shares performance counters.