BaseApplicabilityRules Schema

 

Applies To: Windows Server Update Services

Types

The BaseApplicabilityRules Schema defines the following types in the https://schemas.microsoft.com/msus/2002/12/BaseApplicabilityRules target namespace. It references types from BaseTypes Schema and CSAPI Update Schema.

WindowsVersion

Compares the operating system version information to specified values. Implemented using Win32 VerifyVersionInfo(). The Comparison attribute applies to MajorVersion, MinorVersion, BuildNumber, ServicePackMajor, and ServicePack Minor. If Comparison is omitted, it is assumed to be set to EqualTo. The AllSuitesMustBePresent attribute applies to SuiteMask. If true, all specified suites must be present. If false or omitted, one or more suites must be present.

<element name="WindowsVersion" substitutionGroup="upd:ApplicabilityRuleElement">  
  <complexType>  
    <attribute name="Comparison" type="bt:ScalarComparison" use="optional"/>  
    <attribute name="MajorVersion" type="unsignedInt" use="optional"/>  
    <attribute name="MinorVersion" type="unsignedInt" use="optional"/>  
    <attribute name="BuildNumber" type="unsignedInt" use="optional"/>  
    <attribute name="ServicePackMajor" type="unsignedShort" use="optional"/>  
    <attribute name="ServicePackMinor" type="unsignedShort" use="optional"/>  
    <attribute name="AllSuitesMustBePresent" type="boolean" use="optional" default="false"/>  
    <attribute name="SuiteMask" type="unsignedShort" use="optional"/>  
    <attribute name="ProductType" type="unsignedShort" use="optional"/>  
  </complexType>  
</element>  

WindowsLanguage

Returns true if the operating system is localized to the specified language. Always returns false if the Windows Multilanguage User Interface (MUI) is installed.

<element name="WindowsLanguage" substitutionGroup="upd:ApplicabilityRuleElement">  
    <complexType>  
      <attribute name="Language" type="language" use="required"/>  
    </complexType>  
  </element>  

MuiInstalled

Returns true if the Windows Multilanguage User Interface (MUI) is installed.

<element name="MuiInstalled" substitutionGroup="upd:ApplicabilityRuleElement">  
    <complexType/>  
  </element>  

MuiLanguageInstalled

Returns true if the specified language is installed for the Windows Multilanguage User Interface (MUI). Always returns false if MUI itself is not installed.

<element name="MuiLanguageInstalled" substitutionGroup="upd:ApplicabilityRuleElement">  
    <complexType>  
      <attribute name="Language" type="language" use="required"/>  
    </complexType>  
  </element>  

SystemMetric

Calls Win32 GetSystemMetrics and compares the metric with the specified index to the specified value.

<element name="SystemMetric" substitutionGroup="upd:ApplicabilityRuleElement">  
    <complexType>  
      <attribute name="Comparison" type="bt:ScalarComparison" use="required"/>  
      <attribute name="Index" type="int" use="required"/>  
      <attribute name="Value" type="int" use="required"/>  
    </complexType>  
  </element>  

Processor

Checks that the system's processor is the specified architecture, level, and revision.

<element name="Processor" substitutionGroup="upd:ApplicabilityRuleElement">  
  <complexType>  
    <attribute name="Architecture" type="bt:ProcessorArchitecture" use="required"/>  
    <attribute name="Level" type="bt:ProcessorLevel" use="optional"/>  
    <attribute name="Revision" type="bt:ProcessorRevision" use="optional"/>  
  </complexType>  
</element>  

NumberOfProcessors

Compares the number of processors in the system to a specified value.

<element name="NumberOfProcessors" substitutionGroup="upd:ApplicabilityRuleElement">  
    <annotation>  
      <documentation> documentation>  
    </annotation>  
    <complexType>  
      <attribute name="Comparison" type="bt:ScalarComparison" use="required"/>  
      <attribute name="Number" type="unsignedInt" use="required"/>  
    </complexType>  
  </element>  

ClusteredOS

Returns true if the operating system is part of a Windows Server Cluster.

<element name="ClusteredOS" substitutionGroup="upd:ApplicabilityRuleElement">  
    <complexType/>  
  </element>  

ClusterResourceOwner

Returns true if the cluster resource specified by the registry value is owned by this computer (node). Returns false if the cluster resource could not be opened or it is not the owner, otherwise it results in an error.

<element name="ClusterResourceOwner" substitutionGroup="upd:ApplicabilityRuleElement">  
    <annotation>  
      <documentation> documentation>  
    </annotation>  
    <complexType>  
      <attributeGroup ref="bt:RegistryValueAttributes"/>  
      <attribute name="Prefix" type="string" use="optional"/>  
      <attribute name="Suffix" type="string" use="optional"/>  
    </complexType>  
  </element>  

FileExists

Checks for the existence of the specified file. If Csidl is specified, the WSUS Client will call Win32 SHGetFolderPath to retrieve the CSIDL and prepend it to Path to form the actual path to the file. Before checking the file, the Client will canonicalize the path to remove duplicate backslashes (among other things). If other optional metadata are specified, such as Version or Size, they must all match for this applicability rule to return true.

<complexType name="FileExistsType">  
  <attribute name="Path" type="bt:FilePath" use="required"/>  
  <attribute name="Version" type="bt:Version" use="optional"/>  
  <attribute name="Created" type="bt:FileDate" use="optional"/>  
  <attribute name="Modified" type="bt:FileDate" use="optional"/>  
  <attribute name="Size" type="bt:FileSize" use="optional"/>  
  <attribute name="Language" type="unsignedShort" use="optional"/>  
</complexType>  
<element name="FileExists" substitutionGroup="upd:ApplicabilityRuleElement">  
  <complexType>  
    <complexContent>  
      <extension base="bar:FileExistsType">  
        <attribute name="Csidl" type="bt:Csidl" use="optional"/>  
      </extension>  
    </complexContent>  
  </complexType>  
</element>  

FileExistsPrependRegSz

Same as FileExists, but the WSUS Client will prepend the specified REG_SZ value from the registry instead of a CSIDL.

<element name="FileExistsPrependRegSz" substitutionGroup="upd:ApplicabilityRuleElement">  
    <complexType>  
      <complexContent>  
        <extension base="bar:FileExistsType">  
          <attributeGroup ref="bt:RegistryValueAttributes"/>  
        </extension>  
      </complexContent>  
    </complexType>  
  </element>  

FileVersion

Compares the specified file's version to the specified four-part version string. If Csidl is specified, the WSUS Client will call Win32 SHGetFolderPath to retrieve the CSIDL and prepend it to Path to form the actual path to the file. Before checking the file, the Client will canonicalize the path to remove duplicate backslashes (among other things).

<complexType name="FileCompareVersionType">  
    <attribute name="Path" type="bt:FilePath" use="required"/>  
    <attribute name="Comparison" type="bt:ScalarComparison" use="required"/>  
    <attribute name="Version" type="bt:Version" use="required"/>  
  </complexType>  
  
  <element name="FileVersion" substitutionGroup="upd:ApplicabilityRuleElement">  
    <complexType>  
      <complexContent>  
        <extension base="bar:FileCompareVersionType">  
          <attribute name="Csidl" type="bt:Csidl" use="optional"/>  
        </extension>  
      </complexContent>  
    </complexType>  
  </element>  

FileVersionPrependRegSz

Same as FileVersion, but the WSUS Client will prepend the specified REG_SZ value from the registry instead of a CSIDL.

<element name="FileVersionPrependRegSz" substitutionGroup="upd:ApplicabilityRuleElement">  
    <complexType>  
      <complexContent>  
        <extension base="bar:FileCompareVersionType">  
          <attributeGroup ref="bt:RegistryValueAttributes"/>  
        </extension>  
      </complexContent>  
    </complexType>  
  </element>  

FileCreated

Compares the specified file's creation date to the specified value. If Csidl is specified, the WSUS Client will call Win32 SHGetFolderPath to retrieve the CSIDL and prepend it to Path to form the actual path to the file. Before checking the file, the Client will canonicalize the path to remove duplicate backslashes (among other things).

<complexType name="FileCompareCreationDateType">  
    <attribute name="Path" type="bt:FilePath" use="required"/>  
    <attribute name="Comparison" type="bt:ScalarComparison" use="required"/>  
    <attribute name="Created" type="bt:FileDate" use="required"/>  
  </complexType>  
  
  <element name="FileCreated" substitutionGroup="upd:ApplicabilityRuleElement">  
    <annotation>  
      <documentation> </documentation>  
    </annotation>  
    <complexType>  
      <complexContent>  
        <extension base="bar:FileCompareCreationDateType">  
          <attribute name="Csidl" type="bt:Csidl" use="optional"/>  
        </extension>  
      </complexContent>  
    </complexType>  
  </element>  

FileCreatedPrependRegSz

Same as FileCreated, but the WSUS Client will prepend the specified REG_SZ value from the registry instead of a CSIDL.

<element name="FileCreatedPrependRegSz" substitutionGroup="upd:ApplicabilityRuleElement">  
    <complexType>  
      <complexContent>  
        <extension base="bar:FileCompareCreationDateType">  
          <attributeGroup ref="bt:RegistryValueAttributes"/>  
        </extension>  
      </complexContent>  
    </complexType>  
  </element>  

FileModified

Compares the specified file's modification date to the specified value. If Csidl is specified, the WSUS Client will call Win32 SHGetFolderPath to retrieve the CSIDL and prepend it to Path to form the actual path to the file. Before checking the file, the Client will canonicalize the path to remove duplicate backslashes (among other things).

<complexType name="FileCompareModificationDateType">  
  <attribute name="Path" type="bt:FilePath" use="required"/>  
  <attribute name="Comparison" type="bt:ScalarComparison" use="required"/>  
  <attribute name="Modified" type="bt:FileDate" use="required"/>  
</complexType>  
<element name="FileModified" substitutionGroup="upd:ApplicabilityRuleElement">  
  <complexType>  
    <complexContent>  
      <extension base="bar:FileCompareModificationDateType">  
        <attribute name="Csidl" type="bt:Csidl" use="optional"/>  
      </extension>  
    </complexContent>  
  </complexType>  
</element>  

FileModifiedPrependRegSz

Same as FileModified, but the WSUS Client will prepend the specified REG_SZ value from the registry instead of a CSIDL.

<element name="FileModifiedPrependRegSz" substitutionGroup="upd:ApplicabilityRuleElement">  
    <complexType>  
      <complexContent>  
        <extension base="bar:FileCompareModificationDateType">  
          <attributeGroup ref="bt:RegistryValueAttributes"/>  
        </extension>  
      </complexContent>  
    </complexType>  
  </element>  

FileSize

Compares the specified file's size to the specified value. If Csidl is specified, the WSUS Client will call Win32 SHGetFolderPath to retrieve the CSIDL and prepend it to Path to form the actual path to the file. Before checking the file, the Client will canonicalize the path to remove duplicate backslashes (among other things).

<complexType name="FileCompareSizeType">  
    <attribute name="Path" type="bt:FilePath" use="required"/>  
    <attribute name="Comparison" type="bt:ScalarComparison" use="required"/>  
    <attribute name="Size" type="bt:FileSize" use="required"/>  
  </complexType>  
  <element name="FileSize" substitutionGroup="upd:ApplicabilityRuleElement">  
    <complexType>  
      <complexContent>  
        <extension base="bar:FileCompareSizeType">  
          <attribute name="Csidl" type="bt:Csidl" use="optional"/>  
        </extension>  
      </complexContent>  
    </complexType>  
  </element>  

FileSizePrependRegSz

Same as FileSize, but the WSUS Client will prepend the specified REG_SZ value from the registry instead of a CSIDL.

<element name="FileSizePrependRegSz" substitutionGroup="upd:ApplicabilityRuleElement">  
    <complexType>  
      <complexContent>  
        <extension base="bar:FileCompareSizeType">  
          <attributeGroup ref="bt:RegistryValueAttributes"/>  
        </extension>  
      </complexContent>  
    </complexType>  
  </element>  

RegKeyExists

Checks for the existence of the specified registry subkey.

<element name="RegKeyExists" substitutionGroup="upd:ApplicabilityRuleElement">  
    <complexType>  
      <attributeGroup ref="bt:RegistryKeyAttributes"/>  
    </complexType>  
</element>  

RegValueExists

Checks for the existence of the specified registry value. Checks the existence of the default value for the subkey when no value is specified. Checks that the value is of a specific type when a type is specified. The type must be REG_SZ if a value is not specified (the type of the default value of a subkey is always REG_SZ).

<element name="RegValueExists" substitutionGroup="upd:ApplicabilityRuleElement">  
    <complexType>  
      <attributeGroup ref="bt:RegistryKeyAttributes"/>  
      <attribute name="Value" type="bt:RegistryValue" use="optional"/>  
      <attribute name="Type" type="bt:RegistryValueType" use="optional"/>  
    </complexType>  
  </element>  

RegDword

Compares a specified REG_DWORD registry value to a specified number.

<element name="RegDword" substitutionGroup="upd:ApplicabilityRuleElement">  
    <complexType>  
      <attributeGroup ref="bt:RegistryValueAttributes"/>  
      <attribute name="Comparison" type="bt:ScalarComparison" use="required"/>  
      <attribute name="Data" type="bt:RegistryValueDword" use="required"/>  
    </complexType>  
  </element>  

RegExpandSz

Compares a specified REG_EXPAND_SZ registry value to a specified string.

<element name="RegExpandSz" substitutionGroup="upd:ApplicabilityRuleElement">  
    <complexType>  
      <attributeGroup ref="bt:RegistryValueAttributes"/>  
      <attribute name="Comparison" type="bt:StringComparison" use="required"/>  
      <attribute name="Data" type="bt:RegistryValueExpandSz" use="required"/>  
    </complexType>  
</element>  

RegSz

Compares a specified REG_SZ registry value to a specified string.

<element name="RegSz" substitutionGroup="upd:ApplicabilityRuleElement">  
    <complexType>  
      <attributeGroup ref="bt:RegistryValueAttributes"/>  
      <attribute name="Comparison" type="bt:StringComparison" use="required"/>  
      <attribute name="Data" type="bt:RegistryValueSz" use="required"/>  
    </complexType>  
</element>  

RegSzToVersion

Compares a specified REG_SZ registry value to a specified four-part version string.

<element name="RegSzToVersion" substitutionGroup="upd:ApplicabilityRuleElement">  
  <complexType>  
    <attributeGroup ref="bt:RegistryValueAttributes"/>  
    <attribute name="Comparison" type="bt:ScalarComparison" use="required"/>  
    <attribute name="Data" type="bt:Version" use="required"/>  
  </complexType>  
</element>  

RegKeyLoop

Evaluates a rule against every subkey of the specified key.

<element name="RegKeyLoop" substitutionGroup="upd:ApplicabilityRuleElement">  
    <complexType>  
      <sequence>  
        <element ref="upd:ApplicabilityRuleElement"/>  
      </sequence>  
      <attributeGroup ref="bt:RegistryKeyAttributes"/>  
      <attribute name="TrueIf" type="bt:LoopLogic" use="required"/>        
    </complexType>  
  </element>  

WmiQuery

Executes a specified WMI query and evaluates to true if one or more results are returned, or false of zero results are returned.

<element name="WmiQuery" substitutionGroup="upd:ApplicabilityRuleElement">  
    <complexType>  
      <attribute name="Namespace" type="bt:WmiNamespace" use="optional"/>  
      <attribute name="WqlQuery" type="bt:WmiWqlQuery" use="required"/>  
    </complexType>  
  </element>  

InstalledOnce

Returns true if the update has been installed on this client, based on the installation history of the computer.

<element name="InstalledOnce" substitutionGroup="upd:ApplicabilityRuleElement">  
<complexType/>  
</element>  

GenericQuery

Defines a generic query that can be leveraged to create simple extensions to applicability rules that can be evaluated by client servicing stacks. The Namespace attribute should be set to a string value that would prevent collisions between rules defined by different vendors.

<element name="GenericQuery" substitutionGroup="upd:ApplicabilityRuleElement">  
        <complexType>  
            <attribute name="Namespace" type="string" use="required" />  
            <attribute name="Type" type="string" use="required" />  
            <attribute name="Parameter" type="string" use="required" />  
            <attribute name="Comparison" type="bt:ScalarComparison" use="optional" />  
            <attribute name="Value" type="string" use="optional" />  
        </complexType>  
    </element>