使用powershell共享特定计算机/用户的文件夹

使用powershell共享特定计算机/用户的文件夹,powershell,smb,shared-directory,Powershell,Smb,Shared Directory,我正在尝试使用Powershell将文件夹共享给特定的计算机/用户 一些背景:我有很多Windows机器都有一个需要备份的文件夹(数据文件夹)。这些文件夹与运行备份软件的“特殊”计算机共享。该软件每天检查数据文件夹的内容,并将数据备份到其本地硬盘。当新机器到达时,我们使用资源管理器手动共享文件夹。(属性->共享->共享…)。所有机器都是大型网络的一部分,我们不想与所有机器共享数据。因此,我们只允许备份计算机对数据文件夹进行读取访问(让我们调用备份计算机上的用户domain\BackupUser)

我正在尝试使用Powershell将文件夹共享给特定的计算机/用户

一些背景:我有很多Windows机器都有一个需要备份的文件夹(数据文件夹)。这些文件夹与运行备份软件的“特殊”计算机共享。该软件每天检查数据文件夹的内容,并将数据备份到其本地硬盘。当新机器到达时,我们使用资源管理器手动共享文件夹。(属性->共享->共享…)。所有机器都是大型网络的一部分,我们不想与所有机器共享数据。因此,我们只允许备份计算机对数据文件夹进行读取访问(让我们调用备份计算机上的用户
domain\BackupUser
)。我想将这些共享数据文件夹的创建移动到一些可以从Powershell运行的脚本中

我找到的命令是:
newsmbshare-Path C:\Data \-Name Data-ReadAccess“domain\BackupUser”
。该命令将按预期创建(smb)共享,我可以通过备份计算机观察它。但在访问它时,权限被拒绝。 当列出共享文件夹访问权限(
Get-SmbShareAccess-Name“Data”
)时,它会显示预期的用户。 我还尝试使用以下命令创建共享文件夹:
net share Data=C:\Data/grant:BackupUser,FULL
,但仍然获得了权限被拒绝错误。 奇怪的是,当使用资源管理器共享文件夹并列出访问权限时(`Get-SmbShareAccess-Name“Data”)。未列出用户(BackupUser),但会显示“Everyone”。但是,当试图从另一台(随机)机器访问数据文件夹时,它不会根据需要提供访问权限。备份计算机确实具有访问权限


因此,主要问题是:哪个powershell命令为特定计算机/用户创建新的共享文件夹?

共享权限与文件系统权限不同

设置共享权限,然后应用文件夹/文件权限:

$FolderName = 'C:\Data'
$UserId = 'DOMAIN\BackupUser'
New-SmbShare -Path $FolderName -Name Data -ReadAccess $UserId

$Acl = Get-Acl $FolderName
$NewAccessRule = New-Object system.security.accesscontrol.filesystemaccessrule($UserId,"Read","Allow")
$Acl.SetAccessRule($NewAccessRule)
Set-Acl $FolderName $Acl

共享权限与文件系统权限不同

设置共享权限,然后应用文件夹/文件权限:

$FolderName = 'C:\Data'
$UserId = 'DOMAIN\BackupUser'
New-SmbShare -Path $FolderName -Name Data -ReadAccess $UserId

$Acl = Get-Acl $FolderName
$NewAccessRule = New-Object system.security.accesscontrol.filesystemaccessrule($UserId,"Read","Allow")
$Acl.SetAccessRule($NewAccessRule)
Set-Acl $FolderName $Acl

检查文件夹的文件系统权限。检查文件夹的文件系统权限。