Get-SmbShare

Retrieves the SMB shares on the computer.

Syntax

Get-SmbShare
   [[-Name] <String[]>]
   [[-ScopeName] <String[]>]
   [-Scoped <Boolean[]>]
   [-Special <Boolean[]>]
   [-ContinuouslyAvailable <Boolean[]>]
   [-ShareState <ShareState[]>]
   [-FolderEnumerationMode <FolderEnumerationMode[]>]
   [-CachingMode <CachingMode[]>]
   [-LeasingMode <LeasingMode[]>]
   [-DirectoryHandleLeasing <Boolean[]>]
   [-ConcurrentUserLimit <UInt32[]>]
   [-AvailabilityType <AvailabilityType[]>]
   [-CaTimeout <UInt32[]>]
   [-EncryptData <Boolean[]>]
   [-CompressData <Boolean[]>]
   [-IsolatedTransport <Boolean[]>]
   [-QoSFlowScope <QoSFlowScope[]>]
   [-QoSPolicyId <String[]>]
   [-IncludeHidden]
   [-SmbInstance <SmbInstance>]
   [-CimSession <CimSession[]>]
   [-ThrottleLimit <Int32>]
   [-AsJob]
   [<CommonParameters>]

Description

The Get-SmbShare cmdlet retrieves objects that represent the Server Message Block (SMB) shares being displayed by the computer.

Examples

Example 1: Get SMB shares on a local computer

Get-SMBShare
Name                          ScopeName                     Path                          Description
----                          ---------                     ----                          -----------
ADMIN$                        *                             C:\\Windows                   Remote Admin
C$                            *                             C:\\                          Default share
D$                            *                             D:\\                          Default share
F$                            *                             F:\                           Default share
IPC$                          *                                                           Remote IPC
VMS1                          *                             I:\VMS

This command retrieves the SMB shares on the computer.

Example 2: Get a specific SMB share on the local computer

Get-SmbShare -Name "VMS1"
Name                          ScopeName                     Path                          Description
----                          ---------                     ----                          -----------
VMS1                          *                             I:\VMS

This command retrieves information about the SMB share named VMS1 on the local computer.

Example 3: Display information about the SMB shares on a remote computer

Get-SmbShare -CimSession "NEDFS1"

Name        ScopeName Path                Description   PSComputerName
----        --------- ----                -----------   --------------
ADMIN$      *         C:\\Windows          Remote Admin  ae-dfsr-sr-01
C$          *         C:\\                 Default share ae-dfsr-sr-01
D$          *         D:\\                 Default share ae-dfsr-sr-01
E$          *         E:\\                 Default share ae-dfsr-sr-01
IPC$        *                              Remote IPC    ae-dfsr-sr-01
IT dept     *         D:\\data\IT dept                   ae-dfsr-sr-01
procedures  *         D:\\hr\procedures                  ae-dfsr-sr-01
VHD and ISO *         D:\\data\VHD and ISO               ae-dfsr-sr-01

This command displays the information about the SMB shares on the remote computer NEDFS1.

Example 4: Display all properties about a specific SMB share on the local computer in a list

Get-SmbShare -Name "VMS1" | Format-List -Property *
PresetPathAcl         : System.Security.AccessControl.DirectorySecurity
ShareState            : Online
AvailabilityType      : Clustered
ShareType             : FileSystemDirectory
FolderEnumerationMode : Unrestricted
CachingMode           : Manual
CATimeout             : 0
ConcurrentUserLimit   : 0
ContinuouslyAvailable : True
CurrentUsers          : 3
Description           :
EncryptData           : False
Name                  : VMS1
Path                  : I:\VMS
Scoped                : True
ScopeName             : *
SecurityDescriptor    : O:BAG:DUD:(A;;FA;;;S-1-5-21-219828122-4198910963-4161819395-500)(A;;FA;;;S-1-5-21-219828122-419
                        8910963-4161819395-1106)(A;;FA;;;S-1-5-21-219828122-4198910963-4161819395-1109)
ShadowCopy            : False
Special               : False
Temporary             : False
Volume                : \\?\Volume{b02c4ba7-e6f1-11e1-93eb-0008a1c0ef0d}\
PSComputerName        :
CimClass              : ROOT/Microsoft/Windows/SMB:MSFT_SmbShare
CimInstanceProperties : {AvailabilityType, CachingMode, CATimeout, ConcurrentUserLimit...}
CimSystemProperties   : Microsoft.Management.Infrastructure.CimSystemProperties

This command displays all of the information about the SMB share named VMS1 on the local computer as a formatted list.

Example 5: Get shares on the local failover cluster computer that have scale out availability

Get-SmbShare | Where-Object -Property AvailabilityType -Eq ScaleOut
Name                          ScopeName                     Path                          Description
----                          ---------                     ----                          -----------
ClusterStorage$               Contoso-SO                    C:\\ClusterStorage             Cluster Shared Volumes Def...
VMS3                          Contoso-SO                    C:\\ClusterStorage\Volume1\VMS
VMS4                          Contoso-SO                    C:\\ClusterStorage\Volume2\VMS

This command retrieves the SMB shares on the computer that have scaled out availability.

Example 6: Get shares that are connected to a local failover cluster file server resource named "Contoso-FS"

Get-SmbShare -ScopeName "Contoso-FS"
Name                          ScopeName                     Path                          Description
----                          ---------                     ----                          -----------
I$                            Contoso-FS                    I:\                           Cluster Default Share
J$                            Contoso-FS                    J:\                           Cluster Default Share
VMS1                          Contoso-FS                    I:\VMS
VMS2                          Contoso-FS                    J:\VMS

This command retrieves the SMB shares on the Windows Server failover cluster that are connected to the clustered file server resource named Contoso-FS.

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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AvailabilityType

Specifies the cluster type of the shares being enumerated.

Type:AvailabilityType[]
Accepted values:NonClustered, Clustered, ScaleOut, CSV, DFS
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-CachingMode

Specifies the caching mode of the offline files for the SMB share. There are five caching modes:

  • BranchCache - Enables BranchCache and manual caching of documents on the shared folder.
  • Documents - Automatically stores documents offline.
  • Manual - Allows users to identify the documents and programs that they want to store offline.
  • Programs - Automatically stores documents and programs offline.
  • None - Prevents users from storing documents and programs offline.
Type:CachingMode[]
Accepted values:None, Manual, Documents, Programs, BranchCache, Unknown
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-CATimeout

Specifies the continuous availability time-out of the SMB share.

Type:UInt32[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CompressData

Indicates that the shares being enumerated should request compression from clients.

Type:Boolean[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ConcurrentUserLimit

Specifies the concurrent user limit of the shares being enumerated.

Type:UInt32[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ContinuouslyAvailable

Indicates that the shares being enumerated should be continuously available.

Type:Boolean[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-EncryptData

Indicates that the shares being enumerated should be encrypted.

Type:Boolean[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-FolderEnumerationMode

Specifies the folder enumeration mode of the shares being enumerated.

Type:FolderEnumerationMode[]
Accepted values:AccessBased, Unrestricted
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-IncludeHidden

Indicates that shares that are created and used internally are also enumerated.

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

-IsolatedTransport

Treats this share to be a distinct file server instance. Clients will establish a new set of connections to access the share.

Type:Boolean[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-LeasingMode

Specifies SMB leasing and oplock behaviors for application compatibility. The acceptable values for this parameter are:

  • Full: Use default lease and oplock behaviors from SMB3.
  • Shared: Grant read-caching lease but not write or handle-caching.
  • None: No oplocks or leases, behave like SMB1 (not recommended).

Important

We Don't recommend disabling oplocks, but may be required in some scenarios. For more information, see SMB1 Product Clearinghouse.

Type:LeasingMode
Accepted values:Full, Shared, None
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Specifies one or more SMB shares by share name.

Type:String[]
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-QoSFlowScope

Specifies the Quality of Service (QoS) flow scope for the SMB share. The QoS flow scope determines how QoS policies are applied to SMB traffic. The accepted values are:

  • File: Applies the QoS policy to file operations, each file handle is considered a flows.
  • Share: Applies the QoS policy to SMB share connections, each connection is considered a flow.
  • User: Applies the QoS policy to each user connection, each user connection is considered a flow.
  • Session: Applies the QoS policy to each SMB session, each session connection is considered a flow.

The default value is None.

Type:QoSFlowScope[]
Accepted values:File, Share, User, Session
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-QoSPolicyId

Specifies the QoS policy ID for the SMB share. The QoS policy ID is used to apply QoS policies to SMB traffic. The default value is None.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Scoped

Indicates that the shares to be numerated should be scoped.

Type:Boolean[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ScopeName

Specifies the scope of the share by name. For use with Windows Server failover cluster file server resources.

Type:String[]
Position:2
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ShareState

Specifies the state of the shares being enumerated.

Type:ShareState[]
Accepted values:Pending, Online, Offline
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SmbInstance

Specifies the SMB share instance type. Accepted values are:

  • Default: Used for operations where a client device opens a file on a share on the server.
  • CSV: Used by Windows Failover Clusters.
  • SBL: Used by Storage Spaces Direct.
  • SR: Used by Storage Replica.
Type:SmbInstance
Accepted values:Default, CSV, SBL, SR
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Special

Indicates that the shares to be numerated should be special. Admin share, default shares, IPC$ share are examples of special shares.

Type:Boolean[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Inputs

String[]

Boolean[]

Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.ShareState[]

Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.FolderEnumerationMode[]

Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.CachingMode[]

Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.LeasingMode[]

UInt32[]

Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.AvailabilityType[]

Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.QoSFlowScope[]

Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.SmbInstance

Outputs

CimInstance

CimInstance

The Microsoft.Management.Infrastructure.CimInstance object is a wrapper class that displays Windows Management Instrumentation (WMI) objects. The path after the pound sign (#) provides the namespace and class name for the underlying WMI object. The MSFT_SmbShare object represents the SMB shares on the computer.