Windows 7でファイルの所有者を表示/変更する方法


14

Windoews 7コマンドプロンプトのコマンドラインからフォルダーとファイルの所有者を表示する方法はありますか?

フォルダーまたはファイルの所有者を、自分のユーザー名ではない「任意の」ユーザーに変更できますか?

削除したアプリから残っていると思われるフォルダー(およびファイル)がいくつかあります。フォルダの内容を表示しようとすると、「管理者」として実行している場合でも、表示する権限がないと言われます。

フォルダー(ファイル)の「所有権を取得する」ことができます(これは成功すると想定していますが、まだ試していない)が、所有権を前の所有者に戻す必要がある場合は、元のユーザー名を知る必要があります所有者、およびそのユーザーに「所有権を与える」ことができる必要があります。

Windowsコマンドプロンプトから(またはそうでない場合はGUIツールから)これを行うことは可能ですか?


純粋にcmd.exeを使用するソリューションについては、こちらを参照してください:wmicを使用してコマンドラインから所有権情報を取得する
schletti2000

回答:


17

takeownコマンドおよびWindows GUIを使用して、コマンドラインから所有権を取得できます。

/ qパラメーターを指定したDIRを使用して、ファイル/フォルダーの所有者を表示できます。

Windowsエクスプローラー(ファイルまたはフォルダー)でオブジェクトを右クリックし、[ プロパティ ]を選択して[ セキュリティ ]タブに移動すると、Windows GUIで所有権を表示(および取得)できます。上のセキュリティ ]タブをクリックし高度のボタンをし、その後に表示される[セキュリティの詳細設定]ダイアログ、ナビゲートを所有者 ]タブをクリックします。

ファイル/フォルダーの所有権を取得すると、Windowsは以前の所有者を追跡しないため、以前の所有者に戻す方法はありません。また、これらの拡張属性(FAT16、FAT32、exFATなど)をサポートしないファイルシステムタイプで作業している場合、所有権やファイル許可の概念はありません。


5

次のwmicような所有権情報のクエリに使用できます。

wmic path Win32_LogicalFileSecuritySetting where Path="C:\\windows\\winsxs" ASSOC /RESULTROLE:Owner /ASSOCCLASS:Win32_LogicalFileOwner /RESULTCLASS:Win32_SID

dirこのサンプルディレクトリのように、所有権情報がクリップされる可能性があるため、使用しないでください。

フォーマットされた出力を取得するにDOMAIN\USERは、次のバッチスクリプトを使用できます。

@ECHO OFF
SETLOCAL EnableDelayedExpansion
REM Escpe the backslash with \\
SET ESCAPED=%~f1
SET ESCAPED=!ESCAPED:\=\\!

wmic path Win32_LogicalFileSecuritySetting where Path="!ESCAPED!" ASSOC /RESULTROLE:Owner /ASSOCCLASS:Win32_LogicalFileOwner /RESULTCLASS:Win32_SID > "%temp%\wmi.tmp"

for /F "skip=2 delims=€" %%G in ('type %temp%\wmi.tmp') do (call     :process_wmioutput "%%G")
goto :continue
:process_wmioutput
SET UNDELIMITED=%1
SET DELIMITED=!UNDELIMITED:  =€!
FOR /F "delims=€ tokens=10,12" %%G in ("!DELIMITED!") DO (ECHO %%H\%%G)
exit /B

:continue


2

caclsそして、icalcs権限を編集することができtakeown、所有権を取ることができます。知る限り、Windows 7にも存在します。通常、を実行しtakeownたら、フォローアップするcaclsicalcs、オブジェクトへのアクセス許可を自分で付与します。

マイクロソフトのセキュリティモデルでは、誰かに所有権を与えることは許可されおらず所有権のみが許可されいます。そのようにして、管理者(または特権ユーザー)は、自分が直接アクセスできないファイルの所有権を直接取得、変更、または元の所有者に通知することなく元の所有者に戻すことはできません。

編集:クレジットの使用の説明のためにアートに行きtakeownます。


1
caclsでは、ファイルの所有者を変更または表示することはできません。それには、takeownを使用します。通常、takeownを実行すると、calcまたはicaclsでフォローアップして、オブジェクトへのアクセス許可を付与します。
アート14

おかげで、あなたは完全に正しいです。これらのことを覚えるにはあまりにも長い間マイクロソフトの世界を離れていたことを示していると思います。それに応じて回答を編集します。
デビッドフォースター14

2
これは古いことは知っていますが、icaclsを使用して所有者を他の誰かに設定できると付け加えたいと思いました。icacls <パス> / SETOWNER <名前>は機能します。もちろん、最初に所有権を取得できる場合は、所有者になるか、適切な権限を持っている必要があります。
hor馬14

前回確認したとき、Windowsは、所有権を他のアカウントに譲渡することを禁止しています。ただし、譲渡を実行するアカウントは除きます。
デビッドフォースター14

@DavidFoerster-これによれば、 「TrustedInstaller」をWindowsフォルダー内の実行可能ファイルの所有者として復元すると、動作するようです。私はまだ自分で試していません。
ケビンフェガン

-1

DIRマイクロソフトの世界でのみ使用する場合は、/Qオプションを試してください。

例えば:

DIR *.xlsx /Q

これはアートの答えの複製です。
fixer1234
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.