アクセス許可をレジストリで指定する
ソフトウェアの評価などをする場合、テストの1つとして、必要とするアクセス許可が得られなかったときにどのように振る舞うのかを調べる必要が生じる場合がある。あるいは、未知のソフトウェアであれば、アクセスを許可するとどのようなことが起こるのかを調べたいこともあるだろう。
原則、「設定」→「プライバシー」の項目で変更は可能だが、手動でオン/オフするのは面倒なので、できれば自動化したいところ。そういうわけで、レジストリなどを操作して、許可を変更できるのか調べてみた。
当初得られた情報では、レジストリ設定で変更が可能ということはわかったが、どうもうまく動かない。調べてみると、RS4からWindows側のしくみが変わり、筆者が見たのは、古いバージョンの情報だっだらしい。ただ、筆者が使った環境は、Windows 10 Ver.1607(RS1)あたりから、ずっとアップグレードを繰り返しており、古いレジストリが残っていたために間違いに気がつかなかったのだ。
とりあえず、以下のレジストリを使うプライバシー設定の変更は、現在のRS5や19H1では無効である。
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\DeviceAccess\Global\
Windows 10 RS4以降では、以下の2つのレジストリを利用する。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore
このうち、HKEY_LOCAL_MACHINE(以下HKLM)が、PC全体のアクセス許可のオンオフ、HKCU(HKEY_CURRENT_USER)がユーザーごとの許可とアプリ単位の許可を行うレジストリである。どちらも、この直下に先ほどの表に対応したキーがあり、そこでアクセス許可を設定する。
また、HKCU以下のものでは、さらにAppIDがキーになっており、それぞれでアプリごとのアクセス許可を行う。なお、「設定」→「プライバシー」にある項目のうち、「バックグラウンドアプリ」と「ファイルの自動ダウンロード」は別の場所で設定する。前者は、Windows 8からの機能であり、後者は、OneDriveの機能になるからである(詳細は後述)。
では、具体的に見ていくことにしよう。「設定」→「プライバシー」→「位置情報」に関するPC単位の設定である「このデバイスでの位置情報へのアクセスを許可する」に対応するレジストリ項目は、
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location
である。ここに「Value」という文字列値(REG_SZ)があり、ここに以下の文字列値を設定することで、許可、禁止を設定できる
許可:Allow
禁止:Deny
次に、ユーザーごとの設定となる「設定」→「プライバシー」→「アプリが位置情報にアクセスできるようにする」のオン/オフは、以下のレジストリキーを使う。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location
ここにも、同じくValueという名前の文字列値があり、前記と同様の文字列設定で許可/禁止を設定できる。また、こちらのキーにはサブキーがある。キーはAppIDになっていて、UWPアプリに対応している。AppIDは、開発元とアプリ名の組合せなので、だいたい予想だつくだろう。なお、インストールされているUWPアプリは、すべてユーザーフォルダーにある「AppData\Local\Packages」にAppIDのフォルダーを作る。手動で操作するなら、ここを見ればAppIDを得ることが可能だ。
AppID名のサブキーには同様に「Value」という文字列値がある。許可する場合には「Allow」という文字列を設定するが、オフにする場合には「Prompt」という文字列を設定する。
「バッグラウンドアプリ」は、以下のレジストリ以下にAppIDのサブキーがある。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications
まず、このキーに「GlobalUserDisabled」というDWORD値を「0」に設定すると、「アプリのバックグラウンド実行を許可する」がオンになる。「1」ならばオフである。
「ファイルの自動ダウンロード」は、他のアクセス禁止と違い、「自動ダウンロード」をブロックしたアプリのみが表示され、ここで解除する仕組みになっている。これに関してだが、そもそも、自動ダウンロードの通知を出すことができず、アプリに対して禁止設定ができなかった。このため、この項目についてのレジストリキーを調べることはできなかった。今後の課題としたい。
なお、19H1以降には、「電話をかける」「音声によるアクティブ化」が追加されている。「電話をかける」は、CapabilityAccessManagerキーを使い、その他の項目と同じだった。「音声によるアクティブ化」は、以下のレジストリを使う。
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech_OneCore\Settings\VoiceActivation\UserPreferenceForAllApps
ここに「AgentActivationEnabled」というDWORD値があり、「0」を設定すれば、「アプリが音声によるアクティブ化をしようすることを許可する」がオンになり、「1」にすればオフになる。
プライバシー設定は、めったにさわらない部分だし、名前から想像すると、さほど重要ではなさそうな感じがする。しかし、この部分、実際には「セキュリティ」と呼んでも問題ないような重要な設定が含まれている。今のところ、Microsoftストアは、Google PlayストアやApple Appストアに比べるとちょっとさみしい感じもあるため、ユーザーの情報を「抜く」ようなアプリが多数流通しているという状態でもない。ただ、危険なアプリはどこにでもあり、注意するにこしたことはない。Windowsでも設定変更で、パッケージファイルからのアプリインストールが可能になる。
出所のわからないアプリの権限要求をよく考えずに受け入れていると、こっそり情報を「抜かれる」可能性もないわけではない。しかし、レジストリから設定が可能なので、必要に応じて、パッチファイルなどからオン/オフしたり、設定値を一覧表示することは可能である。
![](/img/blank.gif)
この連載の記事
-
第469回
PC
Windows Updateの27年 悪役だった頃から改良が進んで、徐々に目立たない存在に -
第468回
PC
2025年のWindowsどうなる!? Windows Insider Programの状況をあらためて見る -
第467回
PC
Copilot+ PCのNPUでカメラを処理する「Windows Studio Effects」 その内容や効果は? -
第466回
PC
PowerToysの最近の新機能には、複数アプリを指定位置に起動する「ワークスペース」や新規作成のカスタマイズがある -
第465回
PC
WindowsのPowerShellからBluetoothデバイスを調べる -
第464回
PC
Windows 10のサポート切れまで1年を切った さてWindows 10マシンをどうする? -
第463回
PC
Windows Terminal Preview版でSixelグラフィックスを実際に表示させてみる -
第462回
PC
Windows Terminal Preview版でSixelグラフィックスを扱う -
第461回
PC
Copilot+ PCを買ってみたが、「今焦って買う必要はない」のかもしれない -
第460回
PC
Windowsでsftpを使う -
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた - この連載の一覧へ