レジストリーから取得した値を使用した詳細バージョンのレポート |
次のテンプレートは、4.0 値のレジストリー・キーの存在を確認し、詳細バージョンとしてキーをレポートします。<Variable name="DETAILED_VER">
<RegKeyValue entry="Installed Version" key="HKEY_LOCAL_MACHINE\Software\Microsoft\SMS\Client\Client Components\Component Name\Installation Properties" section="64or32"/>
</Variable>
<Variable name="IS_INSTALLED">
<Compare relation="eq" type="string">
<StringSlice inputString="$(DETAILED_VER)" startIndex="0" endIndex="3"/>
<ValueOf value="4.0"/>
</Compare>
</Variable>
|
ファイル名 |
以下のテンプレートは、ファイル名の識別または検出を検査します。
<Variable name="IS_INSTALLED" export="true">
<Compare type="string" relation="ne">
<VectorToScalar>
<FindFilePathEx name="A_FILENAME.EXE"/>
</VectorToScalar>
<ValueOf value=""/>
</Compare>
</Variable>
ファイル・サイズを指定する必要はありません。
|
複数の Windows™ レジストリー・キーの存在 |
以下のテンプレートは、複数の Windows™ レジストリー・キーの存在の識別または検出を検査します。
指定するキーの数は、アプリケーションによって異なります。
<Variable name="IS_INSTALLED">
<And>
<RegKeyValueEqual key="KEY NAME A" entry="ENTRY NAME" value="VALUE" section="64or32"/>
<RegKeyValueEqual key="KEY NAME B" entry="ENTRY NAME" value="VALUE" section="64or32"/>
<RegKeyValueEqual key="KEY NAME N" entry="ENTRY NAME" value="VALUE" section="64or32"/>
</And>
</Variable>
|
レジストリー・キーのうちの少なくとも 1 つの存在 |
以下のテンプレートは、レジストリー・キーの少なくとも 1 つの存在の識別または検出を検査します。
<Variable name="IS_INSTALLED" export="true">
<Or>
<RegKeyValueEqual key="KEY NAME A" entry="ENTRY NAME" value="VALUE" section="64or32"/>
<RegKeyValueEqual key="KEY NAME B" entry="ENTRY NAME" value="VALUE" section="64or32"/>
<RegKeyValueEqual key="KEY NAME N" entry="ENTRY NAME" value="VALUE" section="64or32"/>
</Or>
</Variable>
|
フィルターにより定義される特定のディレクトリーにあるファイル |
以下のテンプレートは、フィルターで定義されている特定のディレクトリー内にあるファイルの識別または検出を検査します。
注: 単一文字ワイルドカードには「?」を使用し、複数文字を表すには「*」ワイルドカードを使用します。
制約事項: ファイル・パス内のスラッシュまたはバックスラッシュは「?」ワイルドカードで置き換えます。
<Variable name="IS_INSTALLED" export="true">
<Compare type="string" relation="ne">
<VectorToScalar>
<Vector filter="?opt?symantec*">
<FindFilePathEx name="FILENAME"/>
</Vector>
</VectorToScalar>
<ValueOf value="" />
</Compare>
</Variable>
|
キー名、キー項目、およびレジストリー・キーのその値 |
以下のテンプレートは、レジストリー・キーのキー名、キー項目、およびその値の識別または検出を検査します。
<Variable name="IS_INSTALLED" export="true">
<RegKeyValueEqual key="KEY NAME" entry="ENTRY NAME" value="VALUE" section="64or32"/>
</Variable>
|
CPU アーキテクチャー |
以下のテンプレートは、CPU アーキテクチャーの識別または検出を検査します。
<Variable name="IS_INSTALLED" export="true">
<Compare relation="eq" type="string">
<ValueOf value="$(B_PROCESSOR_ARCH)"/>
<ValueOf value="ARCHITECTURE_CODE"/>
</Compare>
</Variable>
ARCHITECTURE_CODE は以下のとおりです。
- AIX、IBM i、および Linux PPC:PPC
- Linux x86、Mac OS X、および Solaris x86:Ix86
- Linux on System z:S390
- HP-UX Itanium:ITANIUM
- HP-UX PA-RISC:PA-RISC
- Solaris SPARC:SPARC
|
ファイル内容および一致する指定ストリング |
以下のテンプレートは、ファイル内容および一致する指定ストリングの識別または検出を検査します。 注: スキャナーはテキスト・ファイルのみを読み取ります。バイナリー・ファイルやアーカイブ (.jar、.ear、.zip など) は読み取ることはできません。 <MultipleInstance>
<Iterator name="file_list" export="false">
<FindFilePathEx name="MYFILE.txt" />
</Iterator>
<Instance>
<Variable name="file_read" export="false">
<ReadFile path="$(file_list)MYFILE.txt" />
</Variable>
<Variable name="IS_INSTALLED">
<Compare type="string" relation="ne">
<VectorToScalar>
<Vector filter="*MYAPP_version=MYAPP-1.3*">
<ValueOf value="$(file_read)" />
</Vector>
</VectorToScalar>
<ValueOf value="" />
</Compare>
</Variable>
<Condition withVariable="IS_INSTALLED">
<Action onValue="false" do="SKIP" />
</Condition>
</Instance>
</MultipleInstance> 検出対象のファイルの名前は MYFILE.txt で、ストリング値は MYAPP_version=MYAPP-1.3 です。 |
someprog.jar ファイルが特定のサイズである特定のディレクトリーの 2 つのファイルの存在
|
以下のテンプレートは、someprog.jar ファイルが特定のサイズである特定のディレクトリー内の 2 つのファイルの存在の識別または検出を検査します。
<MultipleInstance>
<Iterator name="INSTALL_PATH">
<Vector filter="*SOMEPROG.ear?SOMEPROG.war?">
<FindFilePathEx name="essbase.jar"/>
</Vector>
</Iterator>
<Instance>
<Variable name="IS_INSTALLED">
<FileInfoCompare absolutePath="$(INSTALL_PATH)someprog.jar" field="size" value="649432" relation="eq" />
</Variable>
<Condition withVariable="IS_INSTALLED">
<Action onValue="false" do="SKIP"/>
</Condition>
</Instance>
</MultipleInstance>
|
エンドポイント側での BFI パッケージ・データ・レポートの照合 |
PackageInforMatch オペランドを使用して、エンドポイント側の BFI パッケージ・データ・レポートにリストされているデータを照合できます。 以下は同じ例です。以下の例は、このページで言及されている他の例と組み合わせることができます。 <Variable name="IS_INSTALLED" export="true">
<PackageInfoMatch vendor="RStudio*" name="rstudio-server" version="1.1.*"/></Variable>
|
特定のファイルの存在 |
以下のテンプレートは、特定のファイルの存在の識別または検出を検査します。
<MultipleInstance>
<Iterator name="INSTALL_PATH">
<FindFilePathEx name="SWTAG_NAME.swtag"/>
</Iterator>
<Instance>
<Variable name="IS_INSTALLED">
<Compare type="string" relation="ne">
<ValueOf value="$(INSTALL_PATH)" />
<ValueOf value="" />
</Compare>
</Variable>
<Condition withVariable="IS_INSTALLED">
<Action onValue="false" do="SKIP"/>
</Condition>
</Instance>
</MultipleInstance>
|
ファイル・タイプ (名前の一部のみを指定) |
以下のテンプレートは、特定の名前の一部のみを持つファイル・タイプの識別または検出を検査します。
<MultipleInstance>
<Iterator name="INSTALL_PATH">
<FindFilePathEx name="*.FILETYPE" appendFileName="true"/>
</Iterator>
<Instance>
<Variable name="IS_INSTALLED">
<Compare type="string" relation="ne">
<ValueOf value="$(INSTALL_PATH)" />
<ValueOf value="" />
</Compare>
</Variable>
<Condition withVariable="IS_INSTALLED">
<Action onValue="false" do="SKIP"/>
</Condition>
</Instance>
</MultipleInstance>
|
特定のファイルが存在し、別のファイルが存在しない |
以下のテンプレートは、特定のファイルの存在 (もう 1 つのファイルが存在しない) の識別または検出を検査します。
<MultipleInstance>
<Iterator name="INSTALL_PATH">
<FindFilePathEx name="file1"/>
</Iterator>
<Instance>
<Variable name="IS_INSTALLED">
<And>
<FileExists absolutePath="$(INSTALL_PATH)file1"/>
<Not>
<Compare type="string" relation="ne">
<VectorToScalar>
<FindFilePathEx name="file2"/>
</VectorToScalar>
<ValueOf value=""/>
</Compare>
</Not>
</And>
</Variable>
<Condition withVariable="IS_INSTALLED">
<Action onValue="false" do="SKIP"/>
</Condition>
</Instance>
</MultipleInstance>
|
レジストリー・キーにより製品が識別される場合のソフトウェア項目 (Windows™ システム) |
以下のテンプレートは、レジストリー・キーにより製品が識別される場合のソフトウェア項目 (Windows™ システム) の識別または検出を検査します。
キー・ストリングの一部を比較します。このケースに対応するには、2 つのシグニチャーを作成する必要があります。1 つは、32 ビット・アーキテクチャー用で、もう 1 つは、64 ビット・アーキテクチャー用です。
<MultipleInstance>
<Iterator name="reg">
<Vector filter="*000000FF1CE}" ignoreCase="false">
<RegKeyList root="HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\*" section="32" subkeys="false"/> </Vector>
</Iterator>
<Instance>
<Variable name="IS_INSTALLED">
<And>
<Compare relation="eq" type="string">
<Clip endIndex="76" inputString="$(reg)" startIndex="74"/>
<ValueOf value="140"/>
</Compare>
<Compare relation="eq" type="string">
<Clip endIndex="84" inputString="$(reg)" startIndex="81"/>
<ValueOf value="0018"/>
</Compare>
</And>
</Variable>
<Condition withVariable="IS_INSTALLED">
<Action do="SKIP" onValue="false"/>
</Condition>
</Instance>
</MultipleInstance>
<MultipleInstance>
<Iterator name="reg">
<Vector filter="*000000FF1CE}" ignoreCase="false">
<RegKeyList root="HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\*" section="64" subkeys="false"/>
</Vector>
</Iterator>
<Instance>
<Variable name="IS_INSTALLED">
<And>
<Compare relation="eq" type="string">
<Clip endIndex="76" inputString="$(reg)" startIndex="74"/>
<ValueOf value="140"/>
</Compare>
<Compare relation="eq" type="string">
<Clip endIndex="84" inputString="$(reg)" startIndex="81"/>
<ValueOf value="0018"/>
</Compare>
</And>
</Variable>
<Condition withVariable="IS_INSTALLED">
<Action do="SKIP" onValue="false"/>
</Condition>
</Instance>
</MultipleInstance>
|
エディションおよびバージョンが保管されるレジストリー・キー |
以下のテンプレートは、エディションおよびバージョンが保管されるレジストリー・キーの識別または検出を検査します。
このシグニチャーは、特定のバージョン範囲を突き合わせます。
<Variable name="IS_INSTALLED">
<And>
<RegKeyValueContains entry="Edition" key="HKEY_LOCAL_MACHINE\SOFTWARE\Vendor\SoftwareName\Data" value="Enterprise" section="64or32"/>
<RegKeyVersionCompare key="HKEY_LOCAL_MACHINE\SOFTWARE\Vendor\SoftwareName\CurrVer" entry="Version" relation="ge" value="3.00.00.00" section="64or32"/>
<RegKeyVersionCompare key="HKEY_LOCAL_MACHINE\SOFTWARE\Vendor\SoftwareName\CurrVer" entry="Version" relation="le" value="3.9999.9999.9999" section="64or32"/>
</And>
</Variable>
|
ソフトウェア・インスタンス (ソフトウェア・インスタンスのレジストリー・キーの識別による) |
以下のテンプレートは、レジストリー・キーの識別によるソフトウェア・インスタンスの識別または検出を検査します。
インスタンス名は、次のように、レジストリー・パスのアスタリスク文字によって反映されます。 HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\SoftwareName\*\Info\CurrVer
このシグニチャーは、特定のエディションおよびバージョン範囲を突き合わせます。このケースに対応するには、2 つのシグニチャーを作成する必要があります。1 つは、32 ビット・アーキテクチャー用で、もう 1 つは、64 ビット・アーキテクチャー用です。
<MultipleInstance>
<Iterator export="false" name="rg">
<Vector>
<RegKeyList root="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SoftwareName\*" section="64" subkeys="false"/>
</Vector>
</Iterator>
<Instance>
<Variable export="false" name="vr">
<RegKeyValue entry="Version" key="$(rg)\Info\CurrVer" mustExists="true" section="64"/>
</Variable>
<Variable name="IS_INSTALLED">
<And>
<RegKeyValueContains entry="Edition" key="$(rg)\Data" section="64" value="Enterprise"/>
<Contains inputString="$(vr)" position="start" searchedString="3."/>
</And>
</Variable>
<Condition withVariable="IS_INSTALLED">
<Action do="SKIP" onValue="false"/>
</Condition>
</Instance>
</MultipleInstance>
<MultipleInstance>
<Iterator export="false" name="rg">
<Vector>
<RegKeyList root="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SoftwareName\*" section="32" subkeys="false"/>
</Vector>
</Iterator>
<Instance>
<Variable export="false" name="vr">
<RegKeyValue entry="Version" key="$(rg)\Info\CurrVer" mustExists="true" section="32"/>
</Variable>
<Variable name="IS_INSTALLED">
<And>
<RegKeyValueContains entry="Edition" key="$(rg)\Data" section="32" value="Enterprise"/>
<Contains inputString="$(vr)" position="start" searchedString="3."/>
</And>
</Variable>
<Condition withVariable="IS_INSTALLED">
<Action do="SKIP" onValue="false"/>
</Condition>
</Instance>
</MultipleInstance>
|
アンインストール・レジストリー・キー (Windows™ システム) |
以下のテンプレートは、アンインストール・レジストリー・キー (Windows™ システム) の識別または検出を検査します。
このシグニチャーは、すべてのキーで処理を繰り返し、DisplayName および DisplayVersion の値の特定のパターンを突き合わせます。このケースに対応するには、2 つのシグニチャーを作成する必要があります。1 つは、32 ビット・アーキテクチャー用で、もう 1 つは、64 ビット・アーキテクチャー用です。
<MultipleInstance>
<Iterator name="reg" export="true">
<RegKeyList root="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*" section="32" subkeys="false"/> </Iterator>
<Instance>
<Variable name="valueName" export="true">
<RegKeyValue entry="DisplayName" key="$(reg)" section="32" />
</Variable>
<Variable name="valueVersion" export="true">
<RegKeyValue entry="DisplayVersion" key="$(reg)" section="32" />
</Variable>
<Variable name="IS_INSTALLED">
<And>
<Contains inputString="$(valueName)" searchedString="TestProduct" position="start"/>
<Contains inputString="$(valueVersion)" searchedString="12.0" position="start"/>
</And>
</Variable>
<Condition withVariable="IS_INSTALLED">
<Action onValue="false" do="SKIP"/>
</Condition>
</Instance>
</MultipleInstance>
<MultipleInstance>
<Iterator name="reg" export="true">
<RegKeyList root="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*" section="64" subkeys="false"/>
</Iterator>
<Instance>
<Variable name="valueName" export="true">
<RegKeyValue entry="DisplayName" key="$(reg)" section="64" />
</Variable>
<Variable name="valueVersion" export="true">
<RegKeyValue entry="DisplayVersion" key="$(reg)" section="64" />
</Variable>
<Variable name="IS_INSTALLED">
<And>
<Contains inputString="$(valueName)" searchedString="TestProduct" position="start"/>
<Contains inputString="$(valueVersion)" searchedString="12.0" position="start"/>
</And>
</Variable>
<Condition withVariable="IS_INSTALLED">
<Action onValue="false" do="SKIP"/>
</Condition>
</Instance>
</MultipleInstance>
|