DSCResources/DSC_SmbShare/en-US/about_SmbShare.help.txt

.NAME
    SmbShare
 
.DESCRIPTION
    The resource is used to manage SMB shares, and access permissions to
    SMB shares.
 
    ## Requirements
 
    ### Cluster Shares
 
    The property `ContinuouslyAvailable` can only be set to `$true` when
    the SMB share is a cluster share in a failover cluster. Also in the blog
    [SMB Transparent Failover ? making file shares continuously available](https://blogs.technet.microsoft.com/filecab/2016/03/25/smb-transparent-failover-making-file-shares-continuously-available-2)
    by [Claus Joergensen](https://github.com/clausjor) it is mentioned that
    SMB Transparent Failover does not support cluster disks with 8.3 name
    generation enabled.
 
    ### Access permissions
 
    It is not allowed to provide empty collections in the configuration for
    the access permissions parameters. The configuration below will cause an
    exception to be thrown.
 
    ```powershell
    SmbShare 'Integration_Test'
    {
        Name = 'TestShare'
        Path = 'C:\Temp'
        FullAccess = @()
        ChangeAccess = @()
        ReadAccess = @()
        NoAccess = @()
    }
    ```
 
    The access permission parameters must either be all removed to manage
    the access permission manually, or add at least one member to one of
    the access permission parameters. If all the access permission parameters
    are removed, then by design, the cmdlet New-SmbShare will add
    the *Everyone* group with read access permission to the SMB share.
    To prevent that, add a member to either access permission parameters.
 
.PARAMETER Name
    Key - String
    Specifies the name of the SMB share.
 
.PARAMETER Path
    Required - String
    Specifies the path of the SMB share.
 
.PARAMETER Description
    Write - String
    Specifies the description of the SMB share.
 
.PARAMETER ChangeAccess
    Write - StringArray
    Specifies which accounts will be granted modify permission to access the SMB share.
 
.PARAMETER ConcurrentUserLimit
    Write - UInt32
    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 EncryptData
    Write - Boolean
    Indicates that the SMB share is encrypted.
 
.PARAMETER FolderEnumerationMode
    Write - String
    Allowed values: AccessBased, Unrestricted
    Specifies which files and folders in the new SMB share are visible to users.
 
.PARAMETER CachingMode
    Write - String
    Allowed values: None, Manual, Programs, Documents, BranchCache
    Specifies the caching mode of the offline files for the SMB share.
 
.PARAMETER ContinuouslyAvailable
    Write - Boolean
    Specifies whether the SMB share should be continuously available.
 
.PARAMETER FullAccess
    Write - StringArray
    Specifies which accounts are granted full permission to access the SMB share.
 
.PARAMETER NoAccess
    Write - StringArray
    Specifies which accounts are denied access to the SMB share.
 
.PARAMETER ReadAccess
    Write - StringArray
    Specifies which accounts is granted read permission to access the SMB share.
 
.PARAMETER Ensure
    Write - String
    Allowed values: Present, Absent
    Specifies if the SMB share should be added or removed.
 
.PARAMETER Force
    Write - Boolean
    Specifies if the SMB share is allowed to be dropped and recreated (required when the path changes).
 
.PARAMETER ScopeName
    Write - String
    Specifies the scope in which the share should be created.
 
.PARAMETER ShareState
    Read - String
    Specifies the state of the SMB share.
 
.PARAMETER ShareType
    Read - String
    Specifies the type of the SMB share.
 
.PARAMETER ShadowCopy
    Read - Boolean
    Specifies if this SMB share is a ShadowCopy.
 
.PARAMETER Special
    Read - Boolean
    Specifies if this SMB share is a special share. E.g. an admin share, default shares, or IPC$ share.
 
.EXAMPLE 1
 
This example creates an SMB share named 'Temp' for the path 'C:\Temp',
using the default values of the cmdlet `New-SmbShare`.
 
.NOTES
To know the default values, see the documentation for the cmdlet
`New-SmbShare`.
 
Configuration SmbShare_CreateShare_Config
{
    Import-DscResource -ModuleName ComputerManagementDsc
 
    Node localhost
    {
        SmbShare 'TempShare'
        {
            Name = 'Temp'
            Path = 'C:\Temp'
        }
    }
}
 
.EXAMPLE 2
 
This example creates an SMB share named 'Temp' for the path 'C:\Temp',
using specific values for each supported property.
 
.NOTES
Any other property not yet s?pported will use the default values of the
cmdlet `New-SmbShare`.To know the default values, see the documentation
for the cmdlet `New-SmbShare`.
 
Configuration SmbShare_CreateShareAllProperties_Config
{
    Import-DscResource -ModuleName ComputerManagementDsc
 
    Node localhost
    {
        SmbShare 'TempShare'
        {
            Name = 'Temp'
            Path = 'C:\Temp'
            Description = 'Some description'
            ConcurrentUserLimit = 20
            EncryptData = $false
            FolderEnumerationMode = 'AccessBased'
            CachingMode = 'Manual'
            ContinuouslyAvailable = $false
            FullAccess = @()
            ChangeAccess = @('AdminUser1')
            ReadAccess = @('Everyone')
            NoAccess = @('DeniedUser1')
        }
    }
}
 
.EXAMPLE 3
 
This example removes a SMB share named 'Temp'.
 
.NOTES
Path must be specified because it is a mandatory parameter,
but it can be set to any value.
 
Configuration SmbShare_RemoveShare_Config
{
    Import-DscResource -ModuleName ComputerManagementDsc
 
    Node localhost
    {
        SmbShare 'TempShare'
        {
            Ensure = 'Absent'
            Name = 'Temp'
            Path = 'NotUsed'
        }
    }
}
 
.EXAMPLE 4
 
This example creates an SMB share named 'Share' for the path 'C:\Share1',
using the default values of the cmdlet `New-SmbShare`. If the share
already exists, it will drop the share and recreate it on the new path
because Force is set to true.
 
.NOTES
To know the default values, see the documentation for the cmdlet
`New-SmbShare`.
 
Configuration SmbShare_RecreateShare_Config
{
    Import-DscResource -ModuleName ComputerManagementDsc
 
    Node localhost
    {
        SmbShare 'RecreateShare'
        {
            Name = 'Share'
            Path = 'C:\Share1'
            Force = $true
        }
    }
}