Как установить TrustedInstaller в качестве владельца cmd.exe? - PullRequest
0 голосов
/ 26 апреля 2019

В настоящее время я должен изменить разрешения для всех локальных пользователей на 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

1 Ответ

0 голосов
/ 29 апреля 2019

Я нашел решение.Мой и boxdogs код работают.Но это не было полным.Чтобы иметь возможность восстановить TrustedInstaller, владелец должен загрузить некоторые DLL и привилегии.

Если у кого-то еще есть эта проблема, вот решение.После добавления DLL-загрузки и привилегий в мой скрипт он работает.

https://social.technet.microsoft.com/Forums/scriptcenter/en-US/87679d43-04d5-4894-b35b-f37a6f5558cb/solved-how-to-take-ownership-and-change-permissions-for-blocked-files-and-folders-in-powershell

...