私は問題に遭遇し、プログラムを介して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
私の問題は次のとおりです。ドメイン管理者権限を使用してスクリプトを実行すると、すべて正常に動作します。ドメインユーザーアカウントを使用してディレクトリに最大の権限を付与すると、圧縮ファイルがその中に保存され、この場合、「許可されていない操作を実行しようとしています」というエラーが表示されます。単純な理由で、管理者アカウントでスクリプトを実行したくないのですが、このような権限はこの操作を実行するには冗長であると考えています。私は学習して間違いを犯していますが、良いスクリプトを作成し、その作業に必要なアクセスルールを適切に管理する方法を学びたいので、スクリプトを使用するときに権限が割り当てられるようにするために必要なことを理解するのを手伝ってください。この問題に関する情報をGoogleで検索しましたが、包括的な情報は見つかりませんでした。所有者を変更するには管理者権限がないとできないという情報を見つけましたが、この場合、新しいファイルに権限を転送できない理由がわかりません。この問題の解決にご協力ください。古いファイルから新しいファイルに所有者を設定することはオプションのタスクです。 Ps アクションはネットワーク共有で実行され、スクリプトを実行しているユーザーにはフル アクセス権があります。ネットワーク フォルダーは Win Serv 2008 SP2 にあり、スクリプトは Windows 10 Pro で実行されます。よろしくお願いします。
答え1
私自身、NTFSSecurity PowerShellモジュールを使用して主な問題の解決策を見つけました。アクセス権の転送は、Get-NTFSAccess $filein | Add-NTFSAccess $fileoutを使用して実行されました。