StifleR
2.10
2.10
  • Start Here - StifleR 2.10
  • Introduction
    • StifleR Overview
      • The StifleR Solution
      • Managing Microsoft Data Transfer Services
    • Technical Overview
      • 2Pint BranchCache Administrator Guide
    • Features Overview
      • Control
      • Monitor
      • Automate
      • Other Features
      • StifleR Feature Details
    • Release Notes
  • Proof of Concept
    • Objectives and Prerequisites
    • Configure Microsoft Peer-to-Peer Components
    • Install and Configure StifleR
    • Testing and Validation
    • StifleR POC Quick Checklist
  • Planning
    • StifleR Server Considerations
    • StifleR Client Considerations
    • Firewall Ports
    • Permissions
    • Antivirus Exclusions
    • Network Topology
    • StifleR Generic Concepts
      • Client Leader Roles
        • Red Leader
        • Blue Leader
        • Green Leader
        • Examples of Leader Selection
      • Templates
      • Beacons
  • Installation
    • Overview
    • Server
      • StifleR Server Installation
      • StifleR Dashboard Installation
      • StifleR Beacon Installation
    • Client
      • StifleR Client Installation
      • Post Installation Checks
  • Configuration
    • Configuration Files
      • StifleR Server Configuration File
        • Using the AppSettings Override File
      • StifleR Client Configuration File
      • StifleR Dashboard Configuration File
    • Configuring BranchCache on Windows Server
    • Configuring Delivery Optimization
    • Configuring LEDBAT on CM DPs
    • Configuring a Beacon Server
    • Configuring StifleR SQL History
    • StifleR Network Locations
      • Automatic linking of Location, Network Groups and Networks
      • Network Topology Automation
      • Location Fields
        • Network Group Fields
          • Network Fields
    • StifleRulez.xml Configuration Guide
      • The Match – TypeData
        • When the Job Title Isn’t Suitable
        • ConfigMgr Specific Rules
      • The Setting - DownloadTypes
        • Delivery Optimization Jobs
      • Sample StifleRulez.xml
    • Securing StifleR Operations with SSL
      • Prerequisites
      • Using a Web Server Certificate
        • Requesting a Web Server Certificate
      • Using a Self-Signed Certificate
      • Preparing the StifleR Dashboard Web Site for SSL
      • Configuring StifleR to Use SSL
      • Finding the Certificate Thumbprint
    • StifleR Client Access Control Options
  • Operations
    • Dashboard
      • Overview & Navigation
        • Home Page
        • Traffic & Downloads
          • Transfers & Downloads
            • How to use query hosts search?
          • Running Sequences
          • Weekly Downloads Activity
          • History
        • Devices
          • Clients
            • Client Details
              • How to use an extended search?
          • Servers
          • StifleR Server
            • Templates Detail
        • Cache Management
        • System Resource Usage
        • Network Topology
          • Maps
          • Countries
          • Locations
            • Bandwidth Allocations and Locations
          • Network Groups
          • Networks
        • Reporting & Diagrams
    • Client Management & Remote Tools
      • Remote PowerShell Session
      • Remote Performance Counter
      • Remote WMI Browsing
      • Remote Event Log Viewer
      • Remote Netmon Session
    • Monitoring
      • StifleR server health
      • StifleR client health
      • BranchCache Testing and Monitoring
    • Maintenance tasks
    • Bandwidth Management and Allocation
      • Bandwidth Tuning Monitoring and Control
    • Backup and Recovery
      • Moving the StifleR Server Databases to a New Drive on the Same Server
    • Troubleshooting
      • StifleR Client Command Line Options
      • BranchCache across Subnets
    • StifleR WMI Provider
Powered by GitBook
On this page
  • Introduction
  • Process
  1. Configuration

StifleRulez.xml Configuration Guide

PreviousNetwork FieldsNextThe Match – TypeData

Last updated 1 year ago

Introduction

The StifleR client prioritizes BITS and Windows 10 Delivery Optimization (DO) downloads by checking through its queue of active jobs and matching them against a locally held XML configuration file. This file contains a set of Administrator configured rules that define various download types and the priority that should be assigned to each.

It is also possible to assign ‘Auxiliary Bandwidth’ to a certain type (or types) of content which is in addition to the Target Bandwidth that is assigned to a subnet/location.

This allows you to configure the download priority, i.e. which type of download goes first, second, third etc. in the download queue, according to download type, as well as how much bandwidth is assigned to each of these specific download types. This allows the Administrator highly granular control over all content transfers.

The actual XML file is named StifleRulez.xml and is installed to:

%PROGRAMDATA%\2Pint Software\StifleR\Client

The default version of the StifleRulez.xml file can be found on GitHub:

Process

A rule is matched to the download job that you want to control using different matching verbs. Once a download has been matched, it is then linked to a StifleR “download type”. The processing order is:

* The BITS/DO job name is matched and assigned a Job type.

* The Job type is then associated with a Download Type, against which the BITS/DO priority is set.

The StifleR client first needs to determine the ‘Type’ of download according to the rules within the XML. It starts at the top of the first section and works through the rules until it either has a match for the download type, or there are no matching criteria, in which case the download will be classed as ‘Unknown’.

Once a download type is found, (even if that type is ‘Unknown’), the client looks at the second section of the XML to find a match for that type of download which defines the settings for that transfer.

The first section of the file contains some version information. This can be useful if you are maintaining your own custom rules definitions, or in checking that you have the latest 2Pint version.

<StifleRData xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <VersionInfo>
    <Issuer>2Pint Software</Issuer>
    <Version>2.2.0.0</Version>
    <Date>07-06-2019</Date>
  </VersionInfo>

Rules are processed in the top down order of the <TypeData> TypeID nodes and stops at the first match that evaluates to true according to the matching rules. The TypeID is then matched in the top <DownloadTypes> section and the Download Priority set accordingly.

A sample basic StifleRulez.xml rule file is shown below.

<StifleRData xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<VersionInfo>
<Issuer>2Pint Software</Issuer>
<Version>1.7.6.0</Version>
<Date>06-06-2018</Date>
</VersionInfo>
<TypeData>
<Type TypeID="001" Match="Equals">Download StifleRulez File</Type> <!-- StifleR Rules Update-->
<Type TypeID="002" Match="URLContains">Express</Type> <!-- MS Express Update-->
<!-- Generic Windows Downloads Section-->
<Type TypeID="100" Match="Contains">Push Notification Platform Job</Type>
<Type TypeID="101" Match="Equals">WU Client Download</Type> <!-- Windows Update-->
<Type TypeID="102" Match="Equals">Windows Store</Type> <!-- Windows Store - W10 DO Only-->
<Type TypeID="103" Match="Equals">UpdateBinary</Type><!-- MS OneDrive-->
<Type TypeID="104" Match="Equals">SpeechModelDownloadJob</Type>
<Type TypeID="105" Match="Equals">SkypeUpdate</Type>
<Type TypeID="106" Match="Equals">Setup Installer</Type>
<Type TypeID="107" Match="Equals">Font Download</Type>
<Type TypeID="108" Match="Contains">DMRCBitsJob</Type>
<Type TypeID="109" Match="Contains">Microsoft Outlook Offline Address Book</Type>
<Type TypeID="110" Match="Equals">Silverlight Updater</Type>
<Type TypeID="111" Match="URLContains">MicrosoftMaps</Type> <!-- MS Maps Update-->
<Type TypeID="112" Match="Equals">PreSignInSettingsConfigJSON</Type>
<Type TypeID="113" Match="Equals">Windows DLP Manager</Type>
<!-- MS ConfigMgr Section-->
<Type TypeID="200" Match="Contains">CCMSETUP DOWNLOAD</Type> <!--CM Auto upgrade client job-->
<Type TypeID="201" Match="URLContains">SCCM_BranchCache$</Type> <!--All types of CM PeerCache transfers-->
<Type TypeID="202" Match="URLContains">SCRIPTGUID</Type> <!-- CM Run SCript-->
<Type TypeID="203" Match="URLContains">sms_dcm</Type> <!-- CM Configuration Baseline Traffic-->
<Type TypeID="204" Match="URLContains">sms_pol</Type> <!-- ConfigMgr Policy Traffic-->
<Type TypeID="205" Match="Contains">CCM Message Upload</Type> <!-- ConfigMgr Inventory Upload-->
<Type TypeID="207" Match="Equals" WellConnected="0" CCMDTSType="4" WinPE="1">CCMDTS Job</Type> <!--Task Sequence in WinPE :
Required deployment-->
<Type TypeID="227" Match="Equals" WellConnected="1" CCMDTSType="4" WinPE="1">CCMDTS Job</Type> <!--Task Sequence in WinPE :
Required deployment-->
<Type TypeID="208" Match="Equals" UserInitiated="1" DownloadOnDemand="1" CCMDTSType="4">CCMDTS Job</Type> <!--Task Sequence in
Full OS : User Initiated : Download on Demand-->
<Type TypeID="209" Match="Equals" DownloadOnDemand="1" CCMDTSType="4">CCMDTS Job</Type> <!--Task Sequence in Full OS :
Required Deployment : Download on Demand -->
<Type TypeID="210" Match="Equals" UserInitiated="1" DownloadOnDemand="0" CCMDTSType="4">CCMDTS Job</Type> <!--Task Sequence in
Full OS : User Initiated : Download All B4 Execute -->
<Type TypeID="211" Match="Equals" DownloadOnDemand="0" CCMDTSType="4">CCMDTS Job</Type> <!--Task Sequence in Full OS :
Required Deployment : Download All B4 Execute -->
<Type TypeID="212" Match="Equals" UserInitiated="1" CCMDTSType="8">CCMDTS Job</Type> <!--Application/Virtual in Full OS : User
Initiated -->
<Type TypeID="213" Match="Equals" CCMDTSType="8">CCMDTS Job</Type> <!--Application/Virtual in Full OS : Required Deployment -->
<Type TypeID="214" Match="Equals" UserInitiated="1" CCMDTSType="0">CCMDTS Job</Type> <!--Pkg/Program in Full OS : User Initiated -->
<Type TypeID="215" Match="Equals" CCMDTSType="0">CCMDTS Job</Type> <!--Pkg/Program in Full OS : Required Deployment -->
<Type TypeID="216" Match="Equals" UserInitiated="1" CCMDTSType="5">CCMDTS Job</Type> <!-- Software Update in Full OS : User Initiated -
->
<Type TypeID="217" Match="Equals" CCMDTSType="5">CCMDTS Job</Type> <!-- Software Update in Full OS : Required Deployment -->
<!-- All others Misc Section includes Internet based downloads and catch-all rules-->
<Type TypeID="300" Match="Contains">.crx</Type>
<Type TypeID="301" Match="Contains">chrome_installer.exe</Type>
<Type TypeID="302" Match="Contains">ArmReaderJobsID</Type>
<Type TypeID="303" Match="URLContains" Internet="1">adobe.com</Type>
<Type TypeID="304" Match="Contains">DropBoxClient</Type>
<Type TypeID="305" Match="Contains">GoogleEarth</Type>
<!-- This should always be the last section - catch-all rules for anything that isn't detected above-->
<Type TypeID="900" Match="SmallerThan" Internet="0">32768</Type>
<Type TypeID="901" Match="LargerThan" Internet="0">1073741824</Type>
<Type TypeID="902" Match="SmallerThan" Internet="1">32768</Type>
<Type TypeID="903" Match="LargerThan" Internet="1">1073741824</Type>
<Type TypeID="904" BranchCache="1" Internet="1" />
<Type TypeID="905" BranchCache="1" Internet="0" />8
<Type TypeID="906" BranchCache="0" Internet="1" />
<Type TypeID="907" BranchCache="0" Internet="0" />
</TypeData><!-- ***** END OF TYPEDATA SECTION *****-->
<DownloadTypes>
<Download TypeID="001" StifleRPriority="100" Name="StifleR Rules Updater"/>
<Download TypeID="002" StifleRPriority="100" Name="CM Express Update"/>
<Download TypeID="100" StifleRPriority="3000" Name="Windows Platform"/>
<Download TypeID="101" StifleRPriority="1000" Name="Windows Update"/>
<Download TypeID="102" StifleRPriority="1000" Name="Windows Store"/>
<Download TypeID="103" StifleRPriority="3000" Name="Microsoft OneDrive Update"/>
<Download TypeID="104" StifleRPriority="3000" Name="Microsoft Speech Update"/>
<Download TypeID="105" StifleRPriority="3000" Name="Skype Updater"/>
<Download TypeID="106" StifleRPriority="3000" Name="Windows Setup Installer"/>
<Download TypeID="107" StifleRPriority="3000" Name="Font Download" />
<Download TypeID="108" StifleRPriority="3000" Name="Windows Device Management"/>
<Download TypeID="109" StifleRPriority="100" Name="Microsoft Outlook OAB Sync" Bandwidth="512" />
<Download TypeID="110" StifleRPriority="3000" Name="Silverlight Updater"/>
<Download TypeID="111" StifleRPriority="3000" Name="Microsoft Maps Update"/>
<Download TypeID="112" StifleRPriority="3000" Name="OneDrive Settings"/>
<Download TypeID="113" StifleRPriority="3000" Name="WIP Manager Update"/>
<Download TypeID="200" StifleRPriority="1000" Name="CM Client Upgrade"/>
<Download TypeID="201" StifleRPriority="100" Name="CM Peer Cache P2P" />
<Download TypeID="202" StifleRPriority="100" Name="CM Run Script" />
<Download TypeID="203" StifleRPriority="100" Name="CM Configuration Baseline"/>
<Download TypeID="204" StifleRPriority="100" Name="CM Policy Download"/>
<Download TypeID="205" StifleRPriority="3000" Name="CM Inventory Upload"/>
<Download TypeID="206" StifleRPriority="1000" Name="CM WinPE User TS" Bandwidth="512" />
<Download TypeID="256" StifleRPriority="100" Name="CM WinPE User TS Well Connected"/>
<Download TypeID="207" StifleRPriority="1000" Name="CM WinPE Required TS"/>
<Download TypeID="227" StifleRPriority="100" Name="CM WinPE Required TS WC"/>
<Download TypeID="208" StifleRPriority="1000" Name="CM Available TS" Bandwidth="512" />
<Download TypeID="209" StifleRPriority="1000" Name="CM Required TS"/>
<Download TypeID="210" StifleRPriority="1000" Name="CM Available TS" Bandwidth="512" />
<Download TypeID="211" StifleRPriority="1000" Name="CM Required TS"/>
<Download TypeID="212" StifleRPriority="1000" Name="CM Available Application" />
<Download TypeID="213" StifleRPriority="2000" Name="CM Required Application" />
<Download TypeID="214" StifleRPriority="1000" Name="CM Available Package" />
<Download TypeID="215" StifleRPriority="2000" Name="CM Required Package" />
<Download TypeID="216" StifleRPriority="1000" Name="CM Available Update" />
<Download TypeID="217" StifleRPriority="1000" Name="CM Required Update" />
<Download TypeID="300" StifleRPriority="3000" Name="Google Chrome Updater" Bandwidth="512" />
<Download TypeID="301" StifleRPriority="3000" Name="Google Chrome Updater" Bandwidth="512" />
<Download TypeID="302" StifleRPriority="3000" Name="Adobe Updater" Bandwidth="512" />
<Download TypeID="303" StifleRPriority="3000" Name="Adobe Updater" Bandwidth="512" />
<Download TypeID="305" StifleRPriority="3000" Name="Google Earth Installer" Bandwidth="512" />
<Download TypeID="900" StifleRPriority="2000" Name="Small Internal Prio 2" Bandwidth="64" />
<Download TypeID="901" StifleRPriority="3000" Name="Large Internal Prio 3" Bandwidth="64" />
<Download TypeID="902" StifleRPriority="2000" Name="Small Internet Prio 2" Bandwidth="128" />
<Download TypeID="903" StifleRPriority="3000" Name="Large Internet Prio 3" Bandwidth="256" />
<Download TypeID="904" StifleRPriority="2000" Name="BranchCache External" Bandwidth="64" />
<Download TypeID="905" StifleRPriority="2000" Name="BranchCache Internal" Bandwidth="64" />
<Download TypeID="906" StifleRPriority="3000" Name="Non-BranchCache External" Bandwidth="128" />
<Download TypeID="907" StifleRPriority="3000" Name="Non-BranchCache Internal" Bandwidth="256" />
</DownloadTypes>
</StifleRData>

Figure 16 A sample default StifleRulez.xml rule file

Example: A job with the display name of “SkypeUpdate” will be linked to the Download Priority TypeID of 3, which sets the BITS job to “3”- low priority.

You can have as many rules as you want, matching as many Download Types as you need, but keep in mind that the first matching hit will be used. In order to test and track this ensure that debug logging is enabled on the clients during your testing.

StifleR BITS Priority Values

The following BITS Priority values are applied according to the Download Priority values shown above:

        ForeGround = 0
        High = 1,
        Normal = 2,
        Low = 3

These priority values also appear in the dashboards.

Auto BITS Job Classification

Issues can arise where, for instance, some BITS jobs are created using only a GUID ID as the name, making it hard for an administrator to classify the job. StifleR solves this by looking at the URL of the files in the Job. It can also apply rules according to the BITS Job name, descriptions, URL or other BITS job information. With Windows 10 the PID (Process ID) creating the job is also tracked, providing additional capabilities to classify the download.

StifleR Rules Match Parameters

The following syntax can be used with the rules file, the DisplayName of the job is used on some matching and some of them uses the URL of the current file. Other rules uses the jobs progress data. No rule is case sensitive.

AutoUpdating StifleR Prioritization Rules

The Server can instruct Clients to download a new version of the StifleRulez file. This can also be done on a scheduled timer, creating a BITS job to download the source of the rules from either Internet or a corporate URL.

The client tries to update the file on simple schedule controlled by the UpdateRulesTimerInSec key value in the StifleR.ClientApp.exe.config file. By default this is set to a value of 604800 which is once a week. Set this to 0 to disable this feature.

If the rule file is missing or if the timer has triggered, the client will try to get a new file from the URL defined in the clients’ configuration file under the StifleRulezURL key string. Merge your own edits with the one downloaded from 2Pint Software and host this file internally on your corporate LAN.

NOTE This file does not support the Content-Length as it is hosted on a CDN. To allow StifleR to use HTTP download instead of BITS set the client configuration key UseBITSForRulezDownload to 0 in order to use regular HTTP instead of BITS. Set it to 1 to use BITS for downloading new definition files. BITS requires Content-Length which some NAS/Apache servers don’t do by default. The default file size is ~10Kb

https://github.com/2pintsoftware/StifleRRules/blob/master/StifleRulez.xml
Figure 17 StifleR BITS control Rules Match table