# ワイルドカード

<figure><img src="/files/bIIGR5Er8MRhNsXlpuT7" alt=""><figcaption></figcaption></figure>

**対象:** IT管理者。アプリやパスを1件ずつ書かずに、ポリシーフィルターでまとめて指定するときの参考にしてください。

***

### 概要

**ワイルドカード**は、1つのパターンで複数の名前やパスに一致させるための記法です。使えるかどうかは**どこで使うか**で異なります。アプリケーションフィルターではパスにワイルドカードを使えます。フォルダフィルターは**前方一致**だけで、フォルダパスそのものの中に `*` を書くことはできません。

* **アプリケーションフィルター:** `*` は任意の文字列に一致します (正規表現の `.*` に相当)。まずパス変数が解決され、そのあとパターンが照合されます。Windowsでは大文字と小文字を区別しません。Linux/macOSでは区別します。
* **フォルダフィルター:** フォルダに指定した値 (変数を含む) を解決したうえで**前方一致**します。評価中のファイルの**フルパス**が、解決後のフォルダパスで**始まるかどうか**だけを見ます。フォルダパス内のワイルドカードは**使えません** (例: `{downloads}\*` と書いても `*` はワイルドカードではなく、文字の `*` として扱われます)。

***

### アプリケーションフィルターのワイルドカード

**サポート対象**

* **パス内のワイルドカード:** 例: `{programfiles}\*\*.exe` — Program Files以下の任意のサブフォルダにある任意の `.exe`
* **パス変数:** 例: `{userprofile}\Documents\*.exe`、`{downloads}\*.pdf`
* **併用:** 例: `{userprofile}\*\*.exe` — ユーザープロファイル以下の任意のサブフォルダにある任意の `.exe`

**動作:** パス内の `*` は「任意の文字列」として扱われます。パスは正規化され、変数が解決されたあとにパターンが照合されます。Windowsでは大文字と小文字を区別せず、Linux/macOSでは区別します。

**例**

* `*.exe` — フィルターが評価される範囲で、名前が `.exe` で終わるファイルすべて
* `{desktop}\*.exe` — そのユーザーのデスクトップ上の `.exe` すべて (`{desktop}` はユーザーごとに解決)
* `{programfiles}\*\*.exe` — Program Files以下の任意のサブフォルダにある `.exe` すべて

***

### 変数とワイルドカードの組み合わせ例

パス変数と `*` を1つ以上**組み合わせる**と、1本のパターンでたくさんのパス (アプリのバージョン違いやインストール先の違いなど) にまとめて一致させられます。先に変数が解決され、各 `*` はその位置のパス要素 (フォルダ名やファイル名の1セグメント) に対する任意の文字列に一致します。

| パターン                                                                        | 一致するパス                                                                                             |
| --------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| `{userprofile}\AppData\Local\GitHubDesktop\*\resources\app\git\cmd\git.exe` | ユーザーのローカルAppData下の、バージョン用フォルダ名が可変なGitHub Desktopに同梱されているGit (例: `app-3.2.1`、`app-3.3.0` などのフォルダ配下) |
| `{localappdata}\*\*\*.exe`                                                  | ユーザーのローカルAppDataから見て3階層下にある任意の `.exe` (アプリごとのフォルダやバージョン付きフォルダをまとめてカバー)                             |
| `{programfiles}\*\*\*.exe`                                                  | Program Files配下の任意のサブフォルダ内の任意の `.exe` (例: `C:\Program Files\Vendor\Product\bin\app.exe`)           |
| `{userprofile}\Documents\*\*.pdf`                                           | ユーザーのドキュメント直下の、さらに1つ下のフォルダにある任意のPDF                                                                |
| `{appdata}\*\*.exe`                                                         | ローミングAppData直下の、さらに1つ下のフォルダにある任意の `.exe`                                                           |

**組み合わせる理由:** インストール先にはバージョン名やビルド用のフォルダ (例: `GitHubDesktop\app-3.2.1\...`) が入ることがよくあります。その部分を `*` にすると、アプリを更新してフォルダ名が変わってもルールを書き換えずに、1つのポリシーですべてのバージョンに合わせられます。パターンに使える変数の一覧は、[パス変数](/keeperpam/jp/endpoint-privilege-manager/policies/path-variables.md)をご参照ください。

***

### フォルダフィルター (Extension.Folders) — 前方一致のみ

ポリシーで**Extension.Folders** (またはフォルダ形式のフィルター) を使う場合、製品は**前方一致**だけでマッチを判定します。

* フォルダの値には**パス変数** (例: `{downloads}`、`{userprofile}`) を使えます。
* 評価対象ファイルの**フルパス**が、解決後のフォルダパスで**始まるか**だけを確認します。
* 始まれば一致とみなし、そのフォルダ以下のサブフォルダ内のファイルもすべて含みます。
* **フォルダパス内のワイルドカードは使えません。** 例えば `{downloads}\*` は「Downloadsの下の任意のサブフォルダ」という意味にはなりません。`*` はワイルドカードではなく、普通の文字として扱われます。

**例:**

* フォルダ `{downloads}` → `C:\Users\Jane\Downloads\file.exe` と `C:\Users\Jane\Downloads\subdir\file.exe` の両方に一致
* フォルダ `{userprofile}` → そのユーザーのプロファイル配下のファイルすべてに一致
* フォルダ `{downloads}\*` → **誤り**。Downloadsとその下のフォルダをまとめて含めたいときは `{downloads}` だけを指定します

***

### ApplicationCheckとExtension.Foldersの併用

**ApplicationCheck**に**ファイル名のパターンだけ** (例: `*.exe`) を書き、**Extension.Folders**も設定している場合、前処理の段階で次のように結び付けられます。

* 結果として、`{desktop}\*.exe` や `{downloads}\*.pdf` のような「フォルダ＋ファイル名」の完全なパスパターンになります。
* そのうえで、通常のアプリ/パス照合 (パス内のワイルドカード込み) が行われます。

このため、「デスクトップにある実行ファイルすべて」は、ApplicationCheckに `*.exe` (または同種のパターン) を、Extension.Foldersに `{desktop}` を指定すれば表現できます。パスを1本ずつ列挙する必要はありません。

***

### Linux/macOS: 拡張子のない実行ファイル

LinuxやmacOSでは、拡張子のない実行ファイルが多くあります。次のような書き方が使えます。

* フォルダ内の「名前がなんでもよいファイル」に合わせる (例: `*` とExtension.Foldersを組み合わせる)、または
* ApplicationCheckでよくある拡張子を列挙する (Linuxの例: `.sh`、`.bin`、`.run`、macOSの例: `.app`、`.command`) とともにExtension.Foldersを使う。

フォルダ側のルールはあくまで前方一致のみです。アプリケーション側のパターンでは、引き続きパス中の `*` が使えます。

***

### 避けるべきこと

* **フォルダパスに `*` をそのまま入れる:** 例: `Extension.Folders: ["{downloads}\\*"]` — ここでの `*` はワイルドカードではなく文字として扱われます。Downloads以下すべてを含めたいときは `{downloads}` だけにします。
* **フォルダ文字列でワイルドカードが効くと思わないこと:** 解決後のフォルダパスに対しては、前方一致しか行われません。
* **Linux/macOSでの大文字と小文字:** パターンは大文字と小文字を区別します。実際のパス・拡張子の表記と揃えてください。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.keeper.io/keeperpam/jp/endpoint-privilege-manager/policies/wildcards.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
