传输文件权限时出错

传输文件权限时出错

我遇到了一个问题,写了一个脚本,通过程序压缩 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

我自己找到了使用 NTFSSecurity PowerShell 模块解决我的主要问题的方法。访问权限的转移是使用 Get-NTFSAccess $filein | Add-NTFSAccess $fileout 执行的

相关内容