Мне нужно было сделать это с помощью ACL, а не SMBshare.
Я написал функцию для более легкого изменения настроек.
Set-NetworkShareAccess -path "C:\foobara" -Confirm
Моя функция:
function Set-NetworkShareAccess
{
[CmdletBinding(
SupportsShouldProcess=$true,
ConfirmImpact='Medium'
)]
Param
(
[ValidateSet(
'ReadData', 'WriteData', 'CreateFiles', 'CreateDirectories', 'AppendData',
'ReadExtendedAttributes', 'WriteExtendedAttributes', 'Traverse', 'ExecuteFile',
'DeleteSubdirectoriesAndFiles', 'ReadAttributes', 'WriteAttributes', 'Write', 'Delete',
'ReadPermissions', 'Read','ReadAndExecute', 'Modify', 'ChangePermissions', 'TakeOwnership',
'Synchronize', 'FullControl'
)]
$PermissionLevel = 'FullControl',
[Parameter(Mandatory=$true)]
$path = "C:\foobara",
$User = 'everyone',
[ValidateSet('None', 'NoPropagateInherit', 'InheritOnly')]
$recursive = 'None'
)
$Acl = Get-Acl -Path $path
$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule("$User", "$PermissionLevel", "ContainerInherit,ObjectInherit", "$recursive", "Allow")
$Acl.SetAccessRule($Ar)
Set-Acl -Path $path -AclObject $Acl
}