Совместное использование папки для конкретного компьютера / пользователя с помощью powershell - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь открыть доступ к папке на определенном компьютере / пользователе с помощью 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 создают новую общую папку для определенного компьютера / пользователя?

1 Ответ

1 голос
/ 08 мая 2019

Разрешения общего ресурса не совпадают с разрешениями файловой системы.

Установите разрешение 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
...