ワイルドカード

対象: 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つのポリシーですべてのバージョンに合わせられます。パターンに使える変数の一覧は、パス変数をご参照ください。
フォルダフィルター (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の併用
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を使う。
フォルダ側のルールはあくまで前方一致のみです。アプリケーション側のパターンでは、引き続きパス中の * が使えます。
macOS保護パスとワイルドカードのスコープ
macOS: 保護パスの設計意図については、参考資料をご参照ください。
避けるべきこと
フォルダパスに
*をそのまま入れる: 例:Extension.Folders: ["{downloads}\\*"]— ここでの*はワイルドカードではなく文字として扱われます。Downloads以下すべてを含めたいときは{downloads}だけにします。フォルダ文字列でワイルドカードが効くと思わないこと: 解決後のフォルダパスに対しては、前方一致しか行われません。
Linux/macOSでの大文字と小文字: パターンは大文字と小文字を区別します。実際のパス・拡張子の表記と揃えてください。
最終更新

