このエントリーをはてなブックマークに追加


PowerShellで読み取り専用(リードオンリー)になっているファイル一覧を取得する

「読み取り専用にしたファイルどれだっけ?困ったなぁ…」となった方、この記事が参考になるかもしれません。
Get-ChildItemコマンドレットで返却されるFileInfoのIsReadOnlyプロパティで簡単に読み取り専用の(Read Only)ファイル一覧を取得できます。
コマンドプロンプト版も公開しています。


参考記事

関連記事

使用環境

  • Windows 10 ver.1909
  • PowerShellバージョン
    PS C:\> $PSVersionTable.PSVersion                                                                                       
    Major  Minor  Build  Revision
    -----  -----  -----  --------
    5      1      18362  145

テストに使用したファイル群

以下のようなサブフォルダがあるファイル群を作成しました。

D:\>tree /F /A ROtest
フォルダー パスの一覧:  ボリューム SD32GB
ボリューム シリアル番号は 8888-7777 です
D:\ROTEST
|   a.txt
|   b.txt
|   c.txt
|
\---d
        d1.txt
        d2.txt
        d3.txt

読み取り専用になっているファイルは、以下の出力に r がついている a.txt と d2.txt になります。

PS D:\ROtest> Get-ChildItem -Path . -Recurse *

    ディレクトリ: D:\ROtest


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       2019/12/20     20:17                d
-ar---       2019/12/20     20:17              8 a.txt
-a----       2019/12/20     20:17              8 b.txt
-a----       2019/12/20     20:17              8 c.txt

    ディレクトリ: D:\ROtest\d

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       2019/12/20     20:17             10 d1.txt
-ar---       2019/12/20     20:17             10 d2.txt
-a----       2019/12/20     20:17             10 d3.txt

PowerShellで読み取り専用(リードオンリー)ファイル一覧を取得する

以下のスクリプトで読み取り専用ファイルの一覧を取得することができます。
$_.(FileInfoオブジェクト)のNameプロパティでファイル名を表示しています。

PS D:\ROtest> Get-ChildItem -Path . -Recurse | % { if ($_.IsReadOnly) { $_.Name } }
a.txt
d2.txt

フルパスで表示したい場合は、FileInfoクラスのFullNameプロパティを使います。

PS D:\ROtest> Get-ChildItem -Path . -Recurse | % { if ($_.IsReadOnly) { $_.FullName } }
D:\ROtest\a.txt
D:\ROtest\d\d2.txt

以上、PowerShellで読み取り専用(Read Only)のファイル一覧を取得する方法でした。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-12-20 (金) 20:50:57