ワイルドカード

対象: 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.1app-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つのポリシーですべてのバージョンに合わせられます。パターンに使える変数の一覧は、パス変数をご参照ください。


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

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

  • フォルダの値にはパス変数 (例: {downloads}{userprofile}) を使えます。

  • 評価対象ファイルのフルパスが、解決後のフォルダパスで始まるかだけを確認します。

  • 始まれば一致とみなし、そのフォルダ以下のサブフォルダ内のファイルもすべて含みます。

  • フォルダパス内のワイルドカードは使えません。 例えば {downloads}\* は「Downloadsの下の任意のサブフォルダ」という意味にはなりません。* はワイルドカードではなく、普通の文字として扱われます。

例:

  • フォルダ {downloads}C:\Users\Jane\Downloads\file.exeC:\Users\Jane\Downloads\subdir\file.exe の両方に一致

  • フォルダ {userprofile} → そのユーザーのプロファイル配下のファイルすべてに一致

  • フォルダ {downloads}\*誤り。Downloadsとその下のフォルダをまとめて含めたいときは {downloads} だけを指定します


ApplicationCheckとExtension.Foldersの併用

comment-question

macOS保護パスとワイルドカードのスコープ

macOS: 保護パスの設計意図については、参考資料をご参照ください。

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を使う。

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

comment-question

macOS保護パスとワイルドカードのスコープ

macOS: 保護パスの設計意図については、参考資料をご参照ください。


避けるべきこと

  • フォルダパスに * をそのまま入れる: 例: Extension.Folders: ["{downloads}\\*"] — ここでの * はワイルドカードではなく文字として扱われます。Downloads以下すべてを含めたいときは {downloads} だけにします。

  • フォルダ文字列でワイルドカードが効くと思わないこと: 解決後のフォルダパスに対しては、前方一致しか行われません。

  • Linux/macOSでの大文字と小文字: パターンは大文字と小文字を区別します。実際のパス・拡張子の表記と揃えてください。

最終更新