Я столкнулся с проблемой, написал скрипт, который сжимает pdf файлы через программу и переносит права на новый файл путем копирования из старого, чтобы разграничить доступ к новым файлам. Вот часть кода, которая у меня есть и есть проблема
$owner = $origFile.GetAccessControl().GetOwner([System.Security.Principal.SecurityIdentifier])
$newFile = Get-Item -Path $PathoutFile
$FileSecurity = new-object System.Security.AccessControl.FileSecurity
$FileSecurity.SetOwner($owner)
[System.IO.File]::SetAccessControl($newFile, $FileSecurity)
Get-Acl -Path $origFile | Set-Acl -Path $newFile
Проблема у меня такая: я запускаю скрипт с правами администратора домена, все отлично работает. Если я использую учетную запись пользователя домена и даю максимальные права на каталог, в нем сохраняется сжатый файл, и в этом случае я получаю ошибку «Попытка выполнить несанкционированную операцию. Я не хочу запускать скрипт под учетной записью администратора по простой причине, я считаю, что такие права избыточны для выполнения этой операции. Я учусь и совершаю ошибки, но хочу научиться писать хорошие скрипты и грамотно управлять необходимыми правилами доступа для их работы, поэтому прошу вас помочь мне разобраться, что мне нужно сделать, чтобы права назначались при использовании скрипта. Я искал информацию в гугле по этому вопросу, но не нашел исчерпывающей информации. Я нашел информацию, что без прав администратора для смены владельца не обойтись, но не понимаю, почему в этом случае я не могу передать права новому файлу. Пожалуйста, помогите мне в решении этой проблемы. Установка владельца со старого файла на новый файл — необязательная задача. Действия Ps выполняются на сетевом ресурсе, и пользователь, под которым запущен скрипт, имеет полный доступ. Сетевая папка находится на Win Serv 2008 SP2, а скрипт запущен на Windows 10 Pro. Заранее спасибо.
решение1
Я сам нашел решение своей основной проблемы с помощью модуля PowerShell NTFSSecurity. Передача прав доступа была выполнена с помощью Get-NTFSAccess $filein | Add-NTFSAccess $fileout