CP Studio FAQ
Still looking for an answer?
Get in touch!
What is the most recent CP Studio version number?
CP Studio v6.4.0 (Build 6.4.0 March 2016)
CP Studio enumerates applications installed on a machine — either the local machine or a remote one – by using the API exposed by Microsoft’s MSI application installation engine.
The MSI API provides CP Studio with a list of installed applications. For each application, the following properties are retrieved:
- Product Name
- Installation folder (this may be blank — in which case CP Studio, in all likelihood, won’t be able to automatically locate a lot of the files associated with this application)
- GUID (a unique identifier)
The folder names provided by the MSI are not complete paths such as “C:\Program Files\CompanyName\ApplicationName”, but rather they are typically set to something more generic such as “PFiles\CompanyName\ApplicationName” that requires further interpretation on the part of CP Studio. CP Studio uses the most common interpretation of these paths and if it cannot find the file there, it reports back to the user.
Recursive searches can be very time-consuming, especially if the parent folder contains many child folders. Searching all of “C:\” could easily tie up the machine for a solid half-hour or more depending on the size of the drive and the number of files on it. The problem is compounded if it is searching for files on another machine across a LAN. The “closer” the search folder is to the file(s) CP Studio is looking for, the smaller the recursive search is, and the less time it’s likely to take.
CP Studio uses the standard Windows ports to retrieve the information it needs for testing:
- TCP 135 : wmi
- TCP 139: File shares in windows
- TCP 445: Active Directory, Windows shares, remote registry
- UDP 137: NetBIOS Name Service
- UDP 138: NetBIOS Datagram Service
There are limitations on the policy scan in CP Studio. We are asked this question frequently and here is the reply from our engineering group in terms of what policies are picked up by our scan:
CP Studio enumerates all the data from a couple of WMI classes under the root\RSOP\Computer and root\RSOP\User namespaces; namely, RSOP_GPLink, RSOP_GPO, RSOP_AdministrativeTemplateFiles and RSOP_RegistryPolicySetting. There’s a few additional hoops that it jumps through to get “live” data (creating a new RSOP session, etc)—as some of those tables are otherwise static, or may even appear completely empty when viewed through the WMI browser—but that’s the main idea.
Then, the data retrieved from those tables is cross-referenced with policy definitions that exist in .ADM files (or .ADMX files for Vista/2008) that are located either locally or on a share on (typically) the domain controller—the exact location is dictated by the data retrieved from RSOP_AdministrativeTemplateFiles. User-friendly policy names, descriptions, categories, etc are fetched from those files so the tree in the selection dialog box can be built.
I should also point out that additional GPO information can likely be obtained via WMI using our WMI browser.