0

現在、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
4

1 に答える 1

0

解決策を見つけました。私のコードとboxdogsのコードは機能しています。しかし、それは完全ではありませんでした。所有者として TrustedInstaller を復元できるようにするには、いくつかの DLL と特権をロードする必要があります。

他の誰かがこの問題を抱えている場合は、ここに解決策があります。スクリプトに DLL-Load と Privileges を追加すると、機能します。

https://social.technet.microsoft.com/Forums/scriptcenter/en-US/87679d43-04d5-4894-b35b-f37a6f5558cb/solved-how-to-take-ownership-and-change-permissions-for-blocked- PowerShell のファイルとフォルダー

于 2019-04-29T08:41:03.913 に答える