現在、cmd.exe のすべてのローカル ユーザーのアクセス許可を変更する必要があります。これまでのところ、ファイルの所有権を取得し、必要な方法でアクセス許可を変更しました。
私の問題は、所有権を TrustedIntstaller に戻す方法がわからないことです。
以下に、これまでに作成したコードを示します。アクセス許可が変更され、エラーはスローされませんが、スクリプトの実行後も所有者は System.
Iam は Powershell App Deployment Toolkit を使用しており、スクリプトはシステム ユーザーとして実行されました。
どんな助けでも大歓迎です。Windows-Folder のアクセス許可を変更する他の (より良い) 方法がある場合は、私にも知らせてください。
$acl_old = get-acl "$envSystem32Directory\cmd.exe"
$owner_old = $acl_old.Owner
Execute-Process -Path "takeown.exe" -Parameters "/f C:\windows\system32\cmd.exe"
Execute-Process -Path "icacls.exe" -Parameters "$envSystem32Directory\cmd.exe /grant:r *S-1-2-0:(RX)"
$new_permission = get-acl "$envSystem32Directory\cmd.exe"
$new_owner_object = New-Object -TypeName System.Security.Principal.NTAccount -ArgumentList "$owner_old"
$new_permission.SetOwner($new_owner_object)
set-acl -Path $envSystem32Directory\cmd.exe -AclObject $new_permissions