01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$localPath="C:\testShare"
$fullAccessAccounts='everyone','authenticated users'
 
function createSmbShare($localPath,$fullAccessAccounts){
    $ErrorActionPreference='stop'
    try{
        # First, create SMB Share
        $smbShareName=split-path $localPath -leaf
        New-SmbShare -Name $smbShareName -Path $localPath -FullAccess $fullAccessAccounts
 
        # Second, set NTFS permissions
        $acl = Get-ACL $localPath
        foreach($account in $fullAccessAccounts){
            $allowFullAccesss=New-Object System.Security.AccessControl.FileSystemAccessRule($account,"Full","Allow")
            $acl.AddAccessRule($allowFullAccesss)
            }
        Set-Acl $localPath $acl
        write-host "\\$env:computername\$smbShareName has been created with full access granted to these users $fullAccessAccounts"
        }
    catch{
        write-warning $Error[0].Exception.Message
        return $false
        }
}
 
createSmbShare $localPath $fullAccessAccounts