このページの本文へ

前へ 1 2 次へ

Windows Info 第176回

Windows 10のUWPアプリの権限はレジストリで設定できるので若干注意が必要かも

2019年06月09日 10時00分更新

文● 塩田紳二 編集● ASCII編集部

  • この記事をはてなブックマークに追加
  • 本文印刷

アクセス許可をレジストリで指定する

 ソフトウェアの評価などをする場合、テストの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のサブキーがある。

バックグラウンドアプリは、ユーザーごとのアプリ全部のオン/オフとアプリ個別のオン/オフの2段階になっている

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications

 まず、このキーに「GlobalUserDisabled」というDWORD値を「0」に設定すると、「アプリのバックグラウンド実行を許可する」がオンになる。「1」ならばオフである。

 「ファイルの自動ダウンロード」は、他のアクセス禁止と違い、「自動ダウンロード」をブロックしたアプリのみが表示され、ここで解除する仕組みになっている。これに関してだが、そもそも、自動ダウンロードの通知を出すことができず、アプリに対して禁止設定ができなかった。このため、この項目についてのレジストリキーを調べることはできなかった。今後の課題としたい。

ファイルの自動ダウンロードは、アプリがOneDrive上のファイルにアクセスして自動ダウンロードが発生したときに行なわれる通知からブロックを指定でき、「設定」→「プライバシー」→「ファイルの自動ダウンロード」で解除ができるが、ここからアプリを直接ブロックすることはできない

 なお、19H1以降には、「電話をかける」「音声によるアクティブ化」が追加されている。「電話をかける」は、CapabilityAccessManagerキーを使い、その他の項目と同じだった。「音声によるアクティブ化」は、以下のレジストリを使う。

音声によるアクティブ化は、Windows10 Ver.1903(19H1)で追加された項目で、おもにコルタナの音声による起動などを設定できる

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech_OneCore\Settings\VoiceActivation\UserPreferenceForAllApps

 ここに「AgentActivationEnabled」というDWORD値があり、「0」を設定すれば、「アプリが音声によるアクティブ化をしようすることを許可する」がオンになり、「1」にすればオフになる。

 プライバシー設定は、めったにさわらない部分だし、名前から想像すると、さほど重要ではなさそうな感じがする。しかし、この部分、実際には「セキュリティ」と呼んでも問題ないような重要な設定が含まれている。今のところ、Microsoftストアは、Google PlayストアやApple Appストアに比べるとちょっとさみしい感じもあるため、ユーザーの情報を「抜く」ようなアプリが多数流通しているという状態でもない。ただ、危険なアプリはどこにでもあり、注意するにこしたことはない。Windowsでも設定変更で、パッケージファイルからのアプリインストールが可能になる。

 出所のわからないアプリの権限要求をよく考えずに受け入れていると、こっそり情報を「抜かれる」可能性もないわけではない。しかし、レジストリから設定が可能なので、必要に応じて、パッチファイルなどからオン/オフしたり、設定値を一覧表示することは可能である。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン