「ファイルが削除できない!読み取り専用って何?」 「隠しファイルを表示したいけど、どうすれば?」 「システムファイルを間違えて変更してしまった…」 「フォルダの所有者を変更したい」
Windowsのファイル属性は、ファイルやフォルダの動作を制御する重要な設定です。
属性を理解して適切に変更できれば、アクセス権限の問題解決、ファイル保護、システム管理など、様々な場面で役立ちます。この記事では、基本的な属性変更から高度な権限管理まで、すべてを分かりやすく解説していきます。
ファイル属性の基本:4つの主要属性

主要な属性とその意味
属性 | 記号 | 説明 | 用途 |
---|---|---|---|
読み取り専用 | R | 変更・削除を防ぐ | 重要ファイルの保護 |
隠しファイル | H | 通常は非表示 | システムファイル、設定ファイル |
システム | S | OS重要ファイル | Windowsの動作に必要 |
アーカイブ | A | バックアップ対象 | 変更されたファイルの識別 |
エクスプローラーで確認する方法
手順:
- ファイルまたはフォルダを右クリック
- **「プロパティ」**を選択
- **「全般」**タブで属性を確認
- チェックボックスで変更可能
表示される属性:
- ☑ 読み取り専用
- ☑ 隠しファイル
- (詳細設定でその他の属性)
属性を変更する5つの方法
方法1:プロパティから変更(最も簡単)
基本手順:
- 対象を右クリック → 「プロパティ」
- 属性のチェックを変更:
- ☑ 読み取り専用:書き込み禁止
- ☑ 隠しファイル:非表示にする
- 「OK」または「適用」
フォルダの場合の注意:
「このフォルダー、およびサブフォルダーとファイルに変更を適用する」
を選択して、中身も一括変更
方法2:attribコマンド(コマンドプロンプト)
基本構文:
attrib [+/-属性] [ファイルパス]
+:属性を付ける
-:属性を外す
よく使うコマンド:
# 読み取り専用を設定
attrib +R "C:\file.txt"
# 隠しファイルを解除
attrib -H "C:\folder"
# システム属性と隠し属性を設定
attrib +S +H "C:\system.dat"
# すべての属性を解除
attrib -R -S -H -A "C:\file.txt"
# 現在の属性を確認
attrib "C:\file.txt"
方法3:PowerShellで属性変更
基本コマンド:
# 属性の確認
Get-ItemProperty -Path "C:\file.txt" | Select-Object Attributes
# 読み取り専用を設定
Set-ItemProperty -Path "C:\file.txt" -Name Attributes -Value "ReadOnly"
# 複数属性を設定
$file = Get-Item "C:\file.txt"
$file.Attributes = "Hidden, System"
# 属性を追加(既存属性を保持)
$file = Get-Item "C:\file.txt"
$file.Attributes = $file.Attributes -bor [System.IO.FileAttributes]::Hidden
方法4:複数ファイルの一括変更
attribで一括変更:
# フォルダ内のすべてのファイルを読み取り専用に
attrib +R "C:\Folder\*.*"
# サブフォルダも含めて変更
attrib +R "C:\Folder\*.*" /S
# 特定の拡張子のみ変更
attrib +R "C:\Folder\*.doc" /S
PowerShellで一括変更:
# フォルダ内のすべてのファイルを隠しファイルに
Get-ChildItem "C:\Folder" -File | ForEach-Object {
$_.Attributes = $_.Attributes -bor [System.IO.FileAttributes]::Hidden
}
方法5:詳細な属性設定
詳細設定へのアクセス:
- プロパティ → **「詳細設定」**ボタン
- 以下の属性を設定可能:
- ☑ 内容を圧縮してディスク領域を節約
- ☑ 内容を暗号化してデータをセキュリティ保護
- ☑ このフォルダー内のファイルに対し、プロパティに加えてインデックスを作成
隠しファイル・フォルダの表示設定
エクスプローラーで表示する
Windows 11/10:
- エクスプローラーを開く
- **「表示」**タブ
- **「表示」**グループ
- ☑ 隠しファイルにチェック
詳細設定:
表示 → オプション → 表示タブ
☑ 隠しファイル、隠しフォルダー、隠しドライブを表示する
☐ 保護されたオペレーティングシステムファイルを表示しない
コマンドで隠しファイルを探す
# 隠しファイルを含めて表示
dir /AH
# システムファイルも含めて表示
dir /AS
# すべての属性を表示
dir /A
アクセス権限と所有者の変更

アクセス権限の確認と変更
GUI操作:
- プロパティ → **「セキュリティ」**タブ
- **「編集」**ボタン
- ユーザーまたはグループを選択
- 許可/拒否を設定:
- フルコントロール
- 変更
- 読み取りと実行
- 読み取り
- 書き込み
所有者の変更
手順:
- セキュリティタブ → 「詳細設定」
- 所有者の横の**「変更」**
- 「詳細設定」 → 「検索」
- ユーザーを選択
- ☑ 「サブコンテナーとオブジェクトの所有者を置き換える」
コマンドラインで所有者変更:
# 現在のユーザーを所有者に
takeown /F "C:\Folder" /R
# 管理者グループを所有者に
takeown /F "C:\file.txt" /A
icaclsコマンドで権限管理
# 権限の確認
icacls "C:\Folder"
# フルコントロールを付与
icacls "C:\Folder" /grant ユーザー名:F
# 読み取り専用権限を付与
icacls "C:\Folder" /grant ユーザー名:R
# 権限を削除
icacls "C:\Folder" /remove ユーザー名
# 継承を無効化
icacls "C:\Folder" /inheritance:d
よくあるトラブルと解決法
トラブル1:「アクセスが拒否されました」
解決法:
- 管理者権限で実行
# 管理者権限でコマンドプロンプト起動 右クリック → 「管理者として実行」
- 所有者を変更
takeown /F "C:\問題のファイル" /A icacls "C:\問題のファイル" /grant administrators:F
- セーフモードで操作
- F8キー連打で起動
- セーフモードで属性変更
トラブル2:読み取り専用が解除できない
原因と対策:
- フォルダの読み取り専用
- フォルダの読み取り専用は特殊(中身には影響しない)
- 個別ファイルの属性を変更
- 親フォルダからの継承
attrib -R "C:\Folder\*.*" /S /D
- システムによる保護
# システム属性も一緒に解除 attrib -R -S "C:\file.txt"
トラブル3:隠しファイルが表示されない
解決法:
- レジストリの確認
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced Hidden = 1(表示) ShowSuperHidden = 1(システムファイルも表示)
- グループポリシーの確認
gpedit.msc → ユーザーの構成 → 管理用テンプレート → Windowsコンポーネント → エクスプローラー
トラブル4:暗号化ファイルにアクセスできない
解決法:
- 証明書のバックアップと復元
certmgr.msc → 個人 → 証明書 → EFSの証明書をエクスポート/インポート
- cipher コマンドで復号化
# 復号化 cipher /D "C:\encrypted_file.txt" # フォルダ全体を復号化 cipher /D /S:"C:\Folder"
便利な属性操作テクニック
特定条件でファイルを検索
# 隠しファイルのみ検索
dir C:\ /AH /S /B
# 読み取り専用ファイルを検索
dir C:\ /AR /S /B
# システムファイルを除外して表示
dir C:\ /A-S
バッチファイルで自動化
@echo off
REM backup_prep.bat - バックアップ前の準備
REM アーカイブ属性をリセット
attrib -A "C:\Data\*.*" /S
REM 重要ファイルを読み取り専用に
attrib +R "C:\Important\*.doc" /S
REM テンポラリファイルを削除可能に
attrib -R -S -H "C:\Temp\*.*" /S
echo 属性の設定が完了しました
pause
PowerShellで条件付き変更
# 30日以上古いファイルを読み取り専用に
Get-ChildItem -Path "C:\Archive" -Recurse |
Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-30)} |
ForEach-Object {
$_.Attributes = $_.Attributes -bor [System.IO.FileAttributes]::ReadOnly
}
# 1GB以上のファイルを圧縮属性に
Get-ChildItem -Path "C:\Data" -Recurse |
Where-Object {$_.Length -gt 1GB} |
ForEach-Object {
compact /C $_.FullName
}
セキュリティのベストプラクティス

重要ファイルの保護
推奨設定:
- 個人データ
- 暗号化属性を設定
- アクセス権限を自分のみに
- バックアップファイル
- 読み取り専用属性
- 隠しファイル属性
- システム設定ファイル
- システム属性を維持
- 管理者権限のみ変更可
定期的な属性チェック
# 属性監査スクリプト
$report = @()
Get-ChildItem -Path "C:\Important" -Recurse | ForEach-Object {
$report += [PSCustomObject]@{
Path = $_.FullName
Attributes = $_.Attributes
Owner = (Get-Acl $_.FullName).Owner
LastModified = $_.LastWriteTime
}
}
$report | Export-Csv "attribute_audit.csv" -NoTypeInformation
NTFS詳細属性
圧縮属性の設定
GUI:
- プロパティ → 詳細設定
- ☑ 内容を圧縮してディスク領域を節約
コマンド:
# 圧縮を有効化
compact /C "C:\LargeFile.zip"
# フォルダを圧縮(新規ファイルも自動圧縮)
compact /C /S:"C:\CompressedFolder"
# 圧縮状態を確認
compact "C:\Folder"
インデックス属性
設定の影響:
- 有効:検索が高速
- 無効:ディスクI/O削減
# インデックスを無効化
attrib +I "C:\NoIndex"
まとめ:属性を使いこなして効率的なファイル管理を
Windows の属性変更をマスターすれば、ファイル管理が格段に効率化します。
重要ポイント:
- 基本4属性を理解 – R、H、S、Aの意味と用途
- 適切な方法を選択 – GUI、attrib、PowerShell
- 権限管理も重要 – 所有者とアクセス権限
- トラブル対処法 – takeown、icaclsの活用
- セキュリティ意識 – 重要ファイルの適切な保護
今すぐ実践:
- 重要ファイルに読み取り専用属性を設定
- 隠しファイルの表示設定を確認
- attribコマンドを試してみる
- バックアップ前に属性を整理
適切な属性管理で、安全で効率的なファイル運用を実現しましょう!
この記事をブックマークして、属性操作の参考にしてください。
コメント