В настоящее время я должен изменить разрешения для всех локальных пользователей на cmd.exe.
До сих пор я взял на себя владение файлом и изменил разрешения так, как мне нужно.
Моя проблема в том, что я не могу понять, как вернуть право собственности TrustedIntstaller.
Ниже вы можете увидеть код, который я разработал до сих пор. Он изменяет права доступа и не выдает ошибок, но после запуска сценария владелец все еще имеет значение System.
Я использовал Powershell App Deployment Toolkit, и скрипт был выполнен как системный пользователь.
Любая помощь приветствуется. Если есть другие (лучшие) способы изменения разрешений в папке Windows, пожалуйста, дайте мне знать.
$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