固定ドライブが書き込み禁止になった場合の対応



アプリケーションから、X:に割り当てていたボリュームに書き込みが出来なくなった。
タイミング的には、Googleのトラブルの後なんだけど、関連性は分らない。
直後に、会社のMDMの再設定をしたので、それも影響があるかもしれない。
ちょうど、ストレージを増設したかったので、新しいPCを用意して作業をしていると、突然同じ現象に襲われて途方に暮れた。
本腰を入れて調べてみたところ、以下のことが分かった

- 原因
    - 会社のアカウントを登録したことでMDMが有効になり、"Bitlockerが無効な固定ドライブは書き込み禁止"になるレジストリがセットされた
        - [BitLocker で保護されていない固定ドライブへの書き込みアクセスを拒否する](https://admx.help/?Category=MDOP&Policy=Microsoft.Policies.BitLockerManagement::FDVDenyWriteAccessPolicy&Language=ja-jp)
            - 固定ドライブが、ソフトウェアRAIDを組んでいたため、BitLockerを利用することができない
    - 解決するには、このレジストリを1から0に書き換えてリブートを行う
        - Registry Hive:	HKEY_LOCAL_MACHINE
        - Registry Path:	System\CurrentControlSet\Policies\Microsoft\FVE
        - Value Name:	FDVDenyWriteAccess
        - Value Type:	REG_DWORD
        - Enabled Value:	1
        - Disabled Value:	0

## またまた、怪しくなった (2023.10.02)
またまた、ファイルの書き込みが出来なくなってしまった。
ドライブのエラーも考えたが、やはり、上記レジストリが原因みたい。
Windows Updateか、MDMの更新でレジストリを書き込むタイミングが変わったようで、立ち上がりは0になっているのだけれｄ、何かのタイミングで1が書き込まれている。
原因を追究する手もあるのだが、レジストリが1になったタイミングでは、ライトプロテクションがかからないようなので、定期的にレジストリを0にするスクリプトを動かしてみることにした。
UIのタスクスケジューラだと、１日単位の設定しかできないので、コマンドラインを利用。
 /rl highestは、管理者権限での実行指定。
また、タスクスケジューラで見ると、準備完了のステータスだが、これはこれで良いみたい（確信は持ってないんだけど）。
```
schtasks /create /sc minute /mo 60 /tn "remove protect" /tr "C:\Users\xxxx\wpr.bat"  /rl highest
```

ちなみに、レジストリの状態はこちらでモニタ
```
1..10000000 | ForEach-Object {date; reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Policies\Microsoft\FVE" /v "FDVDenyWriteAccess"; start-sleep 5 }
```

# 自動設定

自動設定のバッチファイル

```
# Windows Registry Editor Version 5.00
#
# [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Policies\Microsoft\FVE]
# "FDVDenyWriteAccess"=dword:00000000
#
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Policies\Microsoft\FVE" /v "FDVDenyWriteAccess"
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Policies\Microsoft\FVE" /v "FDVDenyWriteAccess" /t REG_DWORD /d "0"
```

Regieditで起動時スクリプトに登録する
コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529969/cbe7ba09-32a4-9b75-6269-3b454ee590e0.png)

- 強制書き込み /f を追記
- shutdown時に動作させる (gpedit)
  - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529969/e58d4bb2-87c1-9df7-d5ce-1a6b4ffcb4d6.png)
 

#現象

- LightRoomからのファイルの書き出しでエラーになる。
- ubuntsuでマウントすると、roになって書き込みができない
- Exploreでフォルダを作ろうとして右クリックをすると、「新規作成」が出てこない
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529969/6d2638e9-bb5d-f060-da6c-69a0a0151c18.png)

# 権限関係の調査

## アプリケーションが誰の権限で動いているかを見る
Liveでログオンしてるけど、ローカルドメインのアカウントで動いていることを知る。
ローカルアカウントを作成した記憶はないが、セットアップしたときに作ったアカウントと考えられる。機会があれば確認したい。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529969/e7ca65cd-d711-1a4b-ef74-320ce0379773.png)

##権限を調べる

caclsを使って問題のドライブの権限を調べる。
「BUILTIN\Users:R」が気になるが、AdministratorsでFullになっているので、権限の問題ではなさそう。

```
> cacls X:
F:\ BUILTIN\Administrators:F
    BUILTIN\Administrators:(OI)(CI)(IO)F
    NT AUTHORITY\SYSTEM:F
    NT AUTHORITY\SYSTEM:(OI)(CI)(IO)F
    NT AUTHORITY\Authenticated Users:C
    NT AUTHORITY\Authenticated Users:(OI)(CI)(IO)C
    BUILTIN\Users:R
    BUILTIN\Users:(OI)(CI)(IO)(特殊なアクセス:)
                              GENERIC_READ
                              GENERIC_EXECUTE
```


コンピュータの管理から、アカウントグループを確認する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529969/a27e6bf9-52d6-046c-46ff-be72901364a8.png)


[【windows】ファイル、フォルダの権限の確認と変更のコマンド](https://www.softel.co.jp/blogs/tech/archives/2624)

# 権限エラーではなくてWriteProtectの模様

sysinternalsで、procmonを起動してみると、MEDIA_WRITE_PROTECTEDのエラーになっている。これは、権限の問題じゃなさそうだ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529969/37ed72f8-056d-caa8-4c14-8462985412dc.png)

## diskpartで読み取り専用になっていないか確認する
diskpartを使ってメディアがWrite Protectになっていることを調べる。
調べてみると、Write Protectにはなっていない。

```
DISKPART> list disk

  ディスク      状態           サイズ   空き   ダイナ GPT
  ###                                          ミック
  ------------  -------------  -------  -------  ---  ---
  ディスク 0    オンライン          7452 GB      0 B   *    *
  ディスク 1    オンライン          7452 GB      0 B   *    *
  ディスク 2    オンライン          1863 GB      0 B        *
  ディスク 3    オンライン          3726 GB      0 B        *

DISKPART> list volume

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0     F   DATA         NTFS   ストライプ         14 TB  正常
  Volume 1     C   Windows      NTFS   Partition   1861 GB  正常         ブート
  Volume 2         SYSTEM       FAT32  Partition    100 MB  正常         システム
  Volume 3         Recovery to  NTFS   Partition   1000 MB  正常         非表示
  Volume 4     D                Unkno  Partition   3725 GB  正常

DISKPART> select volume 0
ボリューム 0 が選択されました。

DISKPART> attribute volume
読み取り専用              : いいえ
隠し属性                      : いいえ
既定のドライブ文字がありません: いいえ
シャドウ コピー               : いいえ

DISKPART>

```

## sfc /scannow :システムファイルチェッカーでエラーをチェックする

sfcを使った、システムチェックをすることを推奨している記事もあったので実施してみるが、問題なしとの結果。

- [The media is write protected error and how to fix it](https://windowsreport.com/media-is-write-protected/)
- [システム ファイル チェッカー ツールを使用して不足または破損しているシステム ファイルを修復する](https://support.microsoft.com/ja-jp/help/929833/use-the-system-file-checker-tool-to-repair-missing-or-corrupted-system)


## BitLocker で保護されていない固定ドライブへの書き込みアクセスを拒否する

レジストリを、1から0に変更することで解決したとの投稿。


- [The media is write protected on internal HDD](https://www.tenforums.com/general-support/102899-media-write-protected-internal-hdd.html?__cf_chl_jschl_tk__=76fcef428027537eb00295421716e4b651a93a51-1610845931-0-AUDMpz3lIRkvu-DnzXekGBjjSWRVJET-bw0ykCutG2C4kI-c743TaUi3C4IqmyGp5I91CvnENT4PFme4rDEp5hV9Gp6_gL4VJJ0Z7Seyz3RSfwzDMm-Q_46mP_IeN9dFaV9dzQYe2ZmeTPuEntHZpUjmIXtk0XDLu6PBoP1p9wgKgkgHVQR41sK2yaUk1rPEFhbJFnxImvPTnBQoTP2T7Xvzf7Jvdb4_PSp_oBMAjwQ1I5iUXvPIx1Y15BQYdkICM1RxHClJdqFDIBW1x18KyIYO73pdknZzaBUeYp7WvYfS5ExzrMmjRWjIGZhLSUIk8Ok6QD2gLti34W_e58Kcop9-KybHUg5ocoH6lrF5QGEU4ZMMuU_V_PJdcZz6F9sfw8K6K6SrF0QeywXaFdoh_u5P5DNBpQUE2ihNAygGsjZV1qtGA5QhARvtQ7LQLJ45Igc4LhR-JddIMoadrbf53WI)

> This regedit resolved my issue!
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Policies\Microsoft\FVE]
"FDVDenyWriteAccess"=dword:00000000

>Ran diskpart clean after editing the registry and all is well.
>Time to offload my full solid state!
>And thanks for all input!

調べてみると、この設定が該当する模様
[BitLocker で保護されていない固定ドライブへの書き込みアクセスを拒否する](https://admx.help/?Category=MDOP&Policy=Microsoft.Policies.BitLockerManagement::FDVDenyWriteAccessPolicy&Language=ja-jp)

> コンピューターの固定データ ドライブが書き込み可能になるためには、BitLocker による保護を必要とするかどうかを決めます。このポリシー設定は、BitLocker をオンにしたときに適用されます。
>
>このポリシー設定を有効にすると、BitLocker で保護されていない固定データ ドライブはすべて読み取り専用でマウントされます。ドライブが BitLocker で保護されている場合は、読み取りと書き込みアクセス権付きでマウントされます。
>
>このポリシー設定を無効にした場合や構成しなかった場合は、コンピューターのすべての固定データ ドライブが読み取りと書き込みアクセス権付きでマウントされます。


# おまけ（EFS）
新しいPCに、外付けHDにバックアップをしていたファイルをコピーしようとしたところ、EFSががっちりかかっていて、コピーができない問題が発生。
こちらもメモとして記録

- [暗号化ファイルシステムEFSを読み出すために証明書をエクスポート／インポートする (1/2)](https://www.atmarkit.co.jp/ait/articles/1703/16/news037.html)
    - ファイル -> プロパティ -> 詳細設定 -> 「内容を暗号化してデータをセキュリティで保護する(E)] 詳細　-> キーのバックアップ

- [Windows10 暗号化キー・証明書をバックアップする方法](https://pc-chain.com/windows10-backup-certificate/4226/)
    - これは、EFSのカギを再設定して、バックアップを取るやり方みたい。
    - 迂闊に、走らせてしまったが、数週間かかったりするのだろうか。