Windows 7 コマンド プロンプトのコマンド ラインからフォルダーとファイルの所有者を表示する方法はありますか?
フォルダまたはファイルの所有者を、自分のユーザー名以外の「任意の」ユーザーに変更できますか?
いくつかのフォルダ(およびファイル)がおそらく削除したアプリから残っています。フォルダーの内容を表示しようとすると、「管理者」として実行している場合でも、権限がないと表示されます。
フォルダー (ファイル) の「所有権を取得」することはできます (成功すると思いますが、まだ試していません)。ただし、所有権を以前の所有者に戻す必要がある場合は、元の所有者のユーザー名を知る必要があり、そのユーザーに「所有権を付与」できる必要があります。
これを Windows コマンド プロンプトから (または、そうでない場合は GUI ツールから) 実行することは可能ですか?
答え1
コマンドラインから所有権を取得するには、所有するコマンドおよび Windows GUI 経由で実行します。
ファイル/フォルダの所有者を確認するには、ディレクター/qパラメータ付き
Windowsエクスプローラーでオブジェクト(ファイルまたはフォルダ)を右クリックし、プロパティそして、安全タブ。安全タブをクリックし、高度なボタンをクリックし、その後表示される高度なセキュリティ設定ダイアログで、所有者タブ。
ファイル/フォルダの所有権を取得すると、Windows は以前の所有者を追跡しなくなるため、以前の所有者に戻す方法はありません。また、FAT16、FAT32、exFAT などの拡張属性をサポートしないファイル システム タイプを使用している場合は、所有権やファイル権限の概念はありません。
答え2
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
答え3
答え4
DIR
Microsoft の世界だけで使用している場合は、この/Q
オプションを試してください。
例えば:
DIR *.xlsx /Q