The xSmbShare module is a part of the Windows PowerShell Desired State Configuration (DSC) Resource Kit, which is a collection of DSC Resources produced by the PowerShell Team. This module contains the xSmbShare resource. This DSC Resource allows you to set up and configure a SMB Share.
All of the resources in the DSC Resource Kit are provided AS IS, and are not supported through any Microsoft standard support program or service. The ""x" in xSmbShare stands for experimental, which means that these resources will be fix forward and monitored by the module owner(s).
Please leave comments, feature requests, and bug reports in the Q & A tab for this module.
If you would like to modify xSmbShare module, feel free. When modifying, please update the module name, resource friendly name, and MOF class name (instructions below). As specified in the license, you may copy or modify this resource as long as they are used on the Windows Platform.
For more information about Windows PowerShell Desired State Configuration, check out the blog posts on the PowerShell Blog (this is a good starting point). There are also great community resources, such as PowerShell.org, or PowerShell Magazine. For more information on the DSC Resource Kit, check out this blog post.
To install xSmbShare module
To confirm installation:
This module requires the latest version of PowerShell (v4.0, which ships in Windows 8.1 or Windows Server 2012R2). To easily use PowerShell 4.0 on older operating systems, install WMF 4.0. Please read the installation instructions that are present on both the download page and the release notes for WMF 4.0.
The xSmbShare module contains the xSmbShare DSC Resource. This DSC Resource allows you to create or modify a share, including access rights.
xSmbShare resource has following properties:
When making changes to these resources, we suggest the following practice:
We reserve resource and module names without prefixes ("x" or "c") for future use (e.g. "MSFT_**RealResourceName**" or "**RealResourceName**"). If the next version of Windows Server ships with a "**RealResourceName**" resource, we don't want to break any configurations that use any community modifications. Please keep a prefix such as "c" on all community modifications.
1.0.0.0
Configuration ChangeDescriptionConfig { Import-DscResource -Name MSFT_xSmbShare # A Configuration block can have zero or more Node blocks Node localhost { xSmbShare MySMBShare { Ensure = "Present" Name = "SMBShare1" Path = "C:\Users\Duser1\Desktop" Description = "This is a test SMB Share" } } } ChangeDescriptionConfig
Configuration ChangeDescriptionConfig { Import-DscResource -Name MSFT_xSmbShare # A Configuration block can have zero or more Node blocks Node localhost { xSmbShare MySMBShare { Ensure = "Present" Name = "SMBShare1" Path = "C:\Users\Duser1\Desktop" Description = "This is a test SMB Share" } } } ChangeDescriptionConfig
Configuration ChangeDescriptionAndPermissionsConfig { Import-DscResource -Name MSFT_xSmbShare # A Configuration block can have zero or more Node blocks Node localhost { # Next, specify one or more resource blocks xSmbShare MySMBShare { Ensure = "Present" Name = "SMBShare1" Path = "C:\Users\Duser1\Desktop" ReadAccess = "User1" NoAccess = @("User3", "User4") Description = "This is an updated description for this share" } } } ChangeDescriptionAndPermissionsConfig
Configuration ChangeDescriptionAndPermissionsConfig { Import-DscResource -Name MSFT_xSmbShare # A Configuration block can have zero or more Node blocks Node localhost { # Next, specify one or more resource blocks xSmbShare MySMBShare { Ensure = "Present" Name = "SMBShare1" Path = "C:\Users\Duser1\Desktop" ReadAccess = "User1" NoAccess = @("User3", "User4") Description = "This is an updated description for this share" } } } ChangeDescriptionAndPermissionsConfig
Configuration RemoveSmbShareConfig { Import-DscResource -Name MSFT_xSmbShare # A Configuration block can have zero or more Node blocks Node localhost { # Next, specify one or more resource blocks xSmbShare MySMBShare { Ensure = "Absent" Name = "SMBShare1" Path = "C:\Users\Duser1\Desktop" } } } RemoveSmbShareConfig
Configuration RemoveSmbShareConfig { Import-DscResource -Name MSFT_xSmbShare # A Configuration block can have zero or more Node blocks Node localhost { # Next, specify one or more resource blocks xSmbShare MySMBShare { Ensure = "Absent" Name = "SMBShare1" Path = "C:\Users\Duser1\Desktop" } } } RemoveSmbShareConfig