Edit

Share via


New-SmbShare

Creates an SMB share.

Syntax

Default (Default)

New-SmbShare
    [-Temporary]
    [-ContinuouslyAvailable <Boolean>]
    [-Description <String>]
    [-ConcurrentUserLimit <UInt32>]
    [-CATimeout <UInt32>]
    [-FolderEnumerationMode <FolderEnumerationMode>]
    [-CachingMode <CachingMode>]
    [-FullAccess <String[]>]
    [-ChangeAccess <String[]>]
    [-ReadAccess <String[]>]
    [-NoAccess <String[]>]
    [-SecurityDescriptor <String>]
    [-Path] <String>
    [-Name] <String>
    [[-ScopeName] <String>]
    [-EncryptData <Boolean>]
    [-CompressData <Boolean>]
    [-LeasingMode <LeasingMode>]
    [-CimSession <CimSession[]>]
    [-ThrottleLimit <Int32>]
    [-AsJob]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

The New-SmbShare cmdlet exposes a file system folder to remote clients as a Server Message Block (SMB) share.

To delete a share that was created by this cmdlet, use the Remove-SmbShare cmdlet.

Note

The WhatIf parameter does not work with this cmdlet.

Examples

Example 1: Create an SMB share

$Parameters = @{
    Name = 'VMSFiles'
    Path = 'D:\Public'
    FullAccess = 'Contoso\Administrator', 'Contoso\Contoso-HV1$'
}
New-SmbShare @Parameters

This command creates an SMB share named VMSFiles and grants Full Access permissions to Contoso\Administrator, and Contoso\Contoso-HV1$.

This example uses splatting to pass parameter values from the $Parameters variable to the command. Learn more about Splatting.

Example 2: Create an encrypted SMB share

New-SmbShare -Name "Data" -Path "J:\Data" -EncryptData $True

This command creates an encrypted SMB share.

Example 3: Create an SMB share with Multiple Permissions

$Parameters = @{
    Name = 'VMSFiles'
    Path = 'C:\ClusterStorage\Volume1\VMFiles'
    ChangeAccess = 'CONTOSO\Finance Users','CONTOSO\HR Users'
    FullAccess = 'Administrators'
}
New-SmbShare @Parameters

This command creates an SMB share named VMSFiles and grants Change permissions to the domain groups CONTOSO\Finance Users and CONTOSO\HR Users. Full Access permissions to the builtin Administrators group.

This example uses splatting to pass parameter values from the $Parameters variable to the command. Learn more about Splatting.

Parameters

-AsJob

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

Parameter properties

Type:SwitchParameter
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments: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.

Parameter properties

Type:CachingMode
Default value:None
Accepted values:None, Manual, Documents, Programs, BranchCache, Unknown
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-CATimeout

Specifies the continuous availability time-out for the share.

Parameter properties

Type:UInt32
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-ChangeAccess

Specifies which users are granted modify permission to access the share. Multiple users can be specified by using a comma-separated list. Each entry in the comma-separated list must be contained within single or double quotes, for example 'CONTOSO\Finance Users','CONTOSO\HR Users'.

Parameter properties

Type:

String[]

Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments: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.

Parameter properties

Type:

CimSession[]

Default value:None
Supports wildcards:False
DontShow:False
Aliases:Session

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-CompressData

Indicates that SMB compression is requested for all client connections that support it.

Parameter properties

Type:Boolean
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-ConcurrentUserLimit

Specifies the maximum number of concurrently connected users that the new SMB share may accommodate. If this parameter is set to zero (0), then the number of users is unlimited. The default value is zero (0).

Parameter properties

Type:UInt32
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-Confirm

Prompts you for confirmation before running the cmdlet.

Parameter properties

Type:SwitchParameter
Default value:False
Supports wildcards:False
DontShow:False
Aliases:cf

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-ContinuouslyAvailable

Indicates that the share is continuously available.

Parameter properties

Type:Boolean
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-Description

Specifies an optional description of the SMB share. A description of the share is displayed by running the Get-SmbShare cmdlet. The description may not contain more than 256 characters. The default value is no description or an empty description.

Parameter properties

Type:String
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-EncryptData

Indicates that the share is encrypted.

Parameter properties

Type:Boolean
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-FolderEnumerationMode

Specifies which files and folders in the SMB share are visible to users. The acceptable values for this parameter are:

  • AccessBased. SMB doesn't display the files and folders for a share to a user unless that user has rights to access the files and folders. By default, access-based enumeration is disabled for new SMB shares.
  • Unrestricted. SMB displays files and folders to a user even when the user doesn't have permission to access the items.

The default value is Unrestricted.

Parameter properties

Type:FolderEnumerationMode
Default value:None
Accepted values:AccessBased, Unrestricted
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-FullAccess

Specifies which accounts are granted full permission to access the share. Use a comma-separated list to specify multiple accounts. Each entry in the comma-separated list must be contained within single or double quotes, for example 'CONTOSO\Finance Users','CONTOSO\HR Users'.

An account may not be specified more than once in the FullAccess, ChangeAccess, or ReadAccess parameter lists, but may be specified once in the FullAccess, ChangeAccess, or ReadAccess parameter list and once in the NoAccess parameter list.

Parameter properties

Type:

String[]

Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments: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).

Parameter properties

Type:LeasingMode
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-Name

Specifies a name for the SMB share. The names pipe and mailslot are reserved for use by the computer. Share names can be up to a maximum of 80 characters long. The SMB share name can use any character allowed by Windows for files and directories. To learn more about naming conventions for files read the Naming Files, Paths, and Namespaces articles.

Parameter properties

Type:String
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:1
Mandatory:True
Value from pipeline:False
Value from pipeline by property name:True
Value from remaining arguments:False

-NoAccess

Specifies which accounts are denied access to the SMB share. Multiple accounts can be specified by supplying a comma-separated list. Each entry in the comma-separated list must be contained within single or double quotes, for example 'CONTOSO\Finance Users','CONTOSO\HR Users'.

Parameter properties

Type:

String[]

Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-Path

Specifies the path of the location of the folder to share. The path must be fully qualified. Relative paths or paths that contain wildcard characters aren't permitted.

Parameter properties

Type:String
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:2
Mandatory:True
Value from pipeline:False
Value from pipeline by property name:True
Value from remaining arguments:False

-ReadAccess

Specifies which users are granted read permission to access the share. Multiple users can be specified by supplying a comma-separated list. Each entry in the comma-separated list must be contained within single or double quotes, for example 'CONTOSO\Finance Users','CONTOSO\HR Users'.

Parameter properties

Type:

String[]

Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-ScopeName

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

Parameter properties

Type:String
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:3
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:True
Value from remaining arguments:False

-SecurityDescriptor

Specifies the security descriptor for the SMB share in string format.

Parameter properties

Type:String
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:True
Value from remaining arguments:False

-Temporary

Specifies the new SMB share is temporary and will not persist beyond the next restart of the computer. By default, new SMB shares aren't temporary.

Parameter properties

Type:SwitchParameter
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments: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.

Parameter properties

Type:Int32
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet isn't run.

Note

The WhatIf switch doesn't work with this cmdlet.

Parameter properties

Type:SwitchParameter
Default value:False
Supports wildcards:False
DontShow:False
Aliases:wi

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.

Inputs

None

Outputs

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. This cmdlet returns a MSFT_SmbShare object that represents the SMB share.