環境
- Powershell v5.1
- Windows 10
読み取り専用かどうかを調べる
Get-ChildItem(またはdir)コマンドでModeがrになっているものが読み取り専用です。
Mode LastWriteTime Length Name
---- ------------- ------ ----
-ar--- 2018/03/09 12:34 2 memo.txt
読み取り専用にする
読み取り専用にするにはIsReadOnlyをtrueにします。
Set-ItemProperty memo.txt -Name IsReadOnly -Value $true
読み取り専用を解除するには$trueを$falseにします。
複数のファイルを変更
ワイルドカードを使ってディレクトリ配下のファイルを一括で変更できます。
Set-ItemProperty .\* -Name IsReadOnly -Value $true
ただし、ディレクトリには読み取り専用属性が存在しません。変更対象にディレクトリが含まれている場合は下記のエラーメッセージが表示されます。
Set-ItemProperty : プロパティ bool IsReadOnly=False が存在しないか、見つかりませんでした。
このような場合は、ファイルだけをリストして変更します。
Get-ChildItem -File | Set-ItemProperty -Name IsReadOnly -Value $true
サブディレクトリに含まれるファイルすべてを対象にしたい場合は-Recurseをつけます。
Get-ChildItem -File -Recurse | Set-ItemProperty -Name IsReadOnly -Value $true