【问题标题】:Sharing a folder for a specific machine/user using powershell使用 powershell 为特定机器/用户共享文件夹
【发布时间】:2019-09-25 04:57:20
【问题描述】:

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

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

我找到的命令是:New-SmbShare -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),但显示了“所有人”。但是,当尝试从另一台(随机)机器访问数据文件夹时,它不会根据需要提供访问权限。备份机器确实有访问权限。

那么,主要问题是:哪些 powershell 命令会为特定机器/用户创建一个新的共享文件夹?

【问题讨论】:

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

标签: powershell smb shared-directory


【解决方案1】:

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

设置 SHARE 权限,然后应用 FOLDER/FILE 权限:

$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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-11
    • 2011-09-06
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    • 2017-05-02
    相关资源
    最近更新 更多