Next the <TypeData> section of the file is parsed, starting from the top. If there is a match, the search stops, so therefore it is important to enter the TypeData rules in the correct order. The rules need to identify a BITS Job by a certain attribute of that job, be it title, download URL or some other marker.
The XML file contains a number of ways to determine the type of download as follows:
These entries attempt to exactly match the title of a BITS/DO download. The comparison string in contained within the > <
In the example above, we know that all Microsoft ConfigMgr content downloads have a BITS job title of “CCMDTS Job”. More on ConfigMgr specifics later in this document.
If you only know part of the Job title you can use the ‘Contains’ verb to obtain a match.
This means that if the Job title includes the string contained within the > < (which in the case above is “Microsoft Outlook Offline Address Book”) a match will be made.
This checks if the display name of the job starts with the defined Value.
The above rule would match “Microsoft Outlook Offline Address Book” but could also match “Microsoft Outlook Some other download” – which is why it is important to order your TypeID rules correctly.
Issues can arise where, for instance, some 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 within the job.
This checks if the URL of the active file being downloaded contains the Value contained within the > < . Use this to track hostnames or even ConfigMgr package ID’s etc.
The above rule is used to match all ConfigMgr Policy Traffic as the URL always contains “sms_pol”
This can be used to match a download whose source is a public IP address. StifleR Classes 192/172 and 10 subnets as internal and anything else as external.
“0” equates to a non-internet download.
This line will match any download with a URL containing “adobe.com” that originates from an external address.
Used to distinguish BranchCache Enabled downloads from non-BranchCache jobs.
This would match a job that was BranchCache aware, AND came from an external URL. You might use this type of rule as a ‘Catch-All’ rule further down the TypeID section to match any other job types.
Catch-all values that simply compare the size of the download file with the value between the > < and match accordingly.
Because ConfigMgr assigns the same name to ALL content downloads, i.e. “CCMDTS Job”, this can make it impossible to identify the job any further. To provide more granularity with these ConfigMgr jobs, the StifleR Client can identify a certain type of download, and this is expressed within the rules. You can also identify and differentiate a job that is a ‘Required’ installation from an ‘Available’ installation performed by the user within ConfigMgr Software Center or Company Portal, along with Jobs that are running within WinPE. This can be extremely useful in allocating priority and/or bandwidth to differing types of ConfigMgr download.
Matching specific Configuration Manager download types can be a little complicated. We shall use the following XML file line as an example:
Used to match for Well Connected sites
In our example WellConnected="0" is a match for a normal StifleR bandwidth-controlled site,
Used to identify a specific type of ConfigMgr deployment
0 = Package/Program
4 = Task Sequence
5 = Software Update
8 = Application
In our example CCMDTSType="4" matches a ConfigMgr Task Sequence download.
Specifies whether the download job was started by a user (“1”) or not (“0”)
In the example UserInitiated="1" would only match ConfigMgr downloads which were triggered by the user.
Specifies if the download is coming from WinPE.
In our example WinPE="1" will only match if the download is running in WinPE
Putting all three of the above rules together we can see that this line will match to Task Sequence Download, initiated by the user, running in WinPE.
Identifies Task Sequence download behavior
This rule will apply for a TS which has been set to Download Content as required rather than before execution of the Task Sequence ( CCMDTSType="4" )