回答:
subinaclは、所有権とACLに関連するすべてのことを行うためのWindows sysadminの強力なツールです。所有権を自分以外に変更できます(GUIでこれを行うことはできません)。
subinacl /file test.txt /setowner=domain\foo
これにより、管理者でなくても、好きなユーザーにアクセス許可を設定できます(takeown.exeで必要と思われます)。
「TAKEOWN.EXE」を探しています。これはWindows Server 2003で標準コンポーネントとして最初に登場したもので、以前はリソースキットのアイテムでした。Windows 7およびおそらく新しいシステムで使用できます。
takeown /f <some-file-or-folder> /r
/r
指定されたフォルダーのすべての子に対して操作を再帰的に実行します。とは異なりsubinacl
、所有権を取得しようとしているユーザーとしてログインする必要があります。または、単に「管理者」グループに所有権を割り当てることができます。
SS64に保存されているドキュメントのコピーを次に示します。
構文TAKEOWN [/ sコンピューター[/ u [ドメイン]ユーザー名[/ p [パスワード]]]] / fファイル名[/ a] [/ r [/ d {Y | N}]]
キー/ sコンピューターリモートコンピューターの名前またはIPアドレス(バックスラッシュを使用しないでください)。デフォルト=ローカルコンピューター。このパラメーターは、コマンドで指定されたすべてのファイルとフォルダーに適用されます。
/ u [Domain] UserName指定したユーザーアカウントのアクセス許可でスクリプトを実行します。デフォルト=システム権限。
/ p [パスワード] / uパラメーターで指定されたユーザーアカウントのパスワード。
/ f FileNameファイル名、UNCパス、またはディレクトリ名のパターン。ワイルドカード文字を受け入れます*
/ a現在のユーザーではなく、管理者グループに所有権を与えます。
/ r指定したディレクトリおよびサブディレクトリ内のすべてのファイルに対して再帰的な操作を実行します。
/ d {Y | N}現在のユーザーが指定されたディレクトリの「フォルダの一覧表示」権限を持たないときに表示される確認プロンプトを抑制し、代わりにデフォルト値を使用します。Y:ディレクトリの所有権を取得します。N:ディレクトリをスキップします。このオプションは、/ rオプションと組み合わせて使用する必要があることに注意してください。/ aパラメータが指定されていない場合、ファイルの所有権は、現在コンピューターにログオンしているユーザーに与えられます。
(?および*)を使用した混合パターンは、takeownコマンドではサポートされていません。
ファイル/フォルダーの所有者を変更した後、ファイルに完全なアクセス許可を割り当てて、後でそれらを読み取りまたは削除できます。
フォルダとその中のすべての所有権と完全な権利を取得します。
takeown /F somedir /A /R
icacls somedir /grant:r User:F /T
必ず管理者としてコマンドプロンプトを起動してください!
管理者としてコマンドプロンプトを起動する必要がありましたが、Windows 8.1では機能していました。Windows 8.1の扱いにくいため、「コマンド」を検索し、コマンドプロンプトアイコンを右クリックする必要がありました。「管理者として実行」オプションを表示するために私にとって。タスクバーにコマンドプロンプトが固定されていましたが、右クリックしても「管理者として実行」オプションが表示されませんでした。
Windows 10では、「管理者として実行」が右クリックオプションとして利用できるはずです。
Takeown構文:
takeown [/s <Computer> [/u [<Domain>\]<User name> [/p [<Password>]]]] /f <File name> [/a] [/r [/d {Y|N}]]
Icacls構文:
icacls <FileName>[/GRANT [: r] <Sid>: <Perm> [...]] [/ Denegar <Sid>: <Perm> [...]] [/Remove [:g|:d]] <Sid> [...]] [/ t] [/ c] [/ l] [/ q] [/ setintegritylevel <Level>: <Policy> [...]]Icacls <Directory>[/ sustituir <SidOld><SidNew>[...]] [/ restore <ACLfile>[/ c] [/ l] [/q]]
これは本当に古い投稿であることは知っていますが、Windows 7以降に組み込まれている方法があります(Windows Vistaの場合もありますが、わかりません)。リセットするフォルダー内のエスカレーションされたコマンドプロンプトから次を実行します。操作を再帰的に実行する/t
ように指示icacls
します。
icacls .\* /setowner %UserDomain%\%UserName% /t
icacls .\* /reset /t
最初のコマンドは、環境変数を介してログオンしたユーザーに所有者をリセットします。もちろん、代わりに特定の名前を使用できます。
2番目のコマンドは、ツリーの下のすべての子フォルダーとファイルにアクセス許可を強制的に再継承します。
これが将来誰かを助けることを願っています。
Windows 2003、2008、Vista、または7の場合はTakeownを使用します。
Windows 2000の場合はFileowners.plを使用します。
もう1つの代替手段はfileaclです。 これは小さく、ほとんどのWindows ユーティリティとは異なり、オブジェクトに「継承/継承しない」フラグを設定/設定解除できます。