Latest Posts

Flow of Application creation in Configuration Manager


In this post, i am going to explain the back end process of application creation from SCCM console. Once we created the application, what are all the components are involving and how it’s updating the application information in WMI & SCCM database.

Basic Flow:

Admin UI -> SMS_Provider -> WMI-> Database

Components Involved:

CI’s, SMS_Executive, WMI, Database

CI’s -> Stands for Configuration items and important components for Applications, Software updates, Compliance settings, Drivers & Driver packages etc.. its defined to evaluate and validate the configuration on the clients.

I have created an application called “VLA Media Player”

2016-12-24_14-32-02

 

Open SMSProv.log (c:\Program Files\Microsoft Configuration Manager\logs). First you will see the below WQL select query and it it verifying whether this application is latest.

2016-12-24_15-06-01

 

 

 

 

In the below screenshot, There is a line “PutInstanceAsync SMS_Application”  which writes the application information in WMI. Actually, it is putting an instance under SMS_Application classes.

2016-12-24_15-59-21

 

WMI Structure in the below where it created the instance for this application.

2016-12-24_15-31-17

 

Double click SMS_Application.CI_ID=16777461 which is assigned for VLC Media Player application to find more details. I have highlighted few important information

Instance of SMS_application

{
ApplicabilityCondition = “”;
CategoryInstance_UniqueIDs = {};
CI_ID = 16777461;
CI_UniqueID = “ScopeId_B5BD4FE4-0CD9-4634-8ABF-8710E75C5B4D/Application_1393ca71-a85c-4461-aeaf-d78d5c959642/1”;
CIType_ID = 10;
CIVersion = 1;
CreatedBy = “KARTHI\\sccmadmin”;
DateCreated = “20161224062811.000000+000”;
DateLastModified = “20161224062811.000000+000”;
EULAAccepted = 2;
EULAExists = FALSE;
ExecutionContext = 0;
Featured = 0;
HasContent = TRUE;
IsBundle = FALSE;
IsDeployable = TRUE;
IsDeployed = FALSE;
IsEnabled = TRUE;
IsExpired = FALSE;
IsHidden = FALSE;
IsLatest = TRUE;
IsQuarantined = FALSE;
IsSuperseded = FALSE;
IsSuperseding = FALSE;
IsUserDefined = TRUE;
IsVersionCompatible = TRUE;
LastModifiedBy = “KARTHI\\sccmadmin”;
LocalizedCategoryInstanceNames = {};
LocalizedDescription = “”;
LocalizedDisplayName = “VLC Media Player”;
LocalizedInformativeURL = “”;
LocalizedPropertyLocaleID = 65535;
LogonRequirement = 0;
Manufacturer = “”;
ModelID = 16777461;
ModelName = “ScopeId_B5BD4FE4-0CD9-4634-8ABF-8710E75C5B4D/Application_1393ca71-a85c-4461-aeaf-d78d5c959642”;
NumberOfDependentDTs = 0;
NumberOfDependentTS = 0;
NumberOfDeployments = 0;
NumberOfDeploymentTypes = 1;
NumberOfSettings = 0;
NumberOfVirtualEnvironments = 0;
PermittedUses = 0;
PlatformCategoryInstance_UniqueIDs = {};
PlatformType = 1;
SDMPackageVersion = 1;
SecuredScopeNames = {“Default”};
SedoObjectVersion = “5D979CBD-914C-49DC-9943-0413EECF0965”;
SoftwareVersion = “”;
SourceCIVersion = 0;
SourceModelName = “”;
SourceSite = “606”;

At this stage, the details has been written in the WMI and now the provider will update that information in the Database. Usually, you can verify what changes are made or what tables has been inserted or updated in SMSDBMon.log. 

Key Table : CI_ConfigurationItems & CI_ConfiggurationItemRelations_Flat, You can see INSERT & UPDATE queries used put the details in DB

2016-12-24_20-15-32

Totally, there are 4 set of CIs created for this application. i will show you what these CIs are and how it is related to this application.

RCV: INSERT on CI_ConfigurationItems for CINotify_iud [16777461 ][20740] SMS_DATABASE_NOTIFICATION_MONITOR 12/24/2016 2:54:01 PM 3744 (0x0EA0)
RCV: INSERT on CI_ConfigurationItems for CINotify_iud [16777462 ][20744] SMS_DATABASE_NOTIFICATION_MONITOR 12/24/2016 2:54:01 PM 3744 (0x0EA0)
RCV: INSERT on CI_ConfigurationItems for CINotify_iud [16777463 ][20765] SMS_DATABASE_NOTIFICATION_MONITOR 12/24/2016 2:54:01 PM 3744 (0x0EA0)
RCV: INSERT on CI_ConfigurationItems for CINotify_iud [16777464 ][20776] SMS_DATABASE_NOTIFICATION_MONITOR 12/24/2016 2:54:01 PM 3744 (0x0EA0)

Connect to SCCM Database and run the below query, it will result CIs details. the 1st one is Application CI and 2nd one is Deployment Type CI and other two related to RequiredApplication & ProhibitedApplication. you can also see CIVersion details which is Revise History of Application in the SCCM Console.

2016-12-24_22-17-44

These CIs are linked with SDMPackageDigest(5th Column) XML File which contains more details about the configuration and what it’s going to do. The below XML file is related to Application DeploymentType CI and it has the details about what we configured in SCCM console. I have listed only one part of XML file and still more details in the XML file which includes  Command line. Detection method configuration, Error code. Download settings, Dependency etc..

2016-12-24_22-40-07

 If you drag right side, you can find CI Type_ID value which defines the CI Type whether it’s related to Application, deployment Type, Software updates, Global settings, Driver.etc..

2016-12-25_0-02-01

You can find those CIs Type name by running below query.

2016-12-25_11-52-09

Next I want to show  you the other Key table which i have mentioned above CI_ConfiggurationItemRelations_Flat. This table list the relationship between Application CI’s and other CI’s. In the the below query, i filtered 4 set of CIs for this application.

FromCI_ID -> “VLC Media Player” Application CI’s

ToCI_ID -> Other Related CI’s

2016-12-25_12-08-05

In the below query, I have filtered Deployment Type CI (16777462) and listed the details of Related CI’s. Related CI’s are defined by default.

For example, I have configured MSI Installer in Application Deployment Type. You can see MSIDeploymentTechnology(16777388)  CI related with Deployment Type CI.

2016-12-25_12-16-24

In the above query result, there is a column called RelationType which provide the details about what type relationship between CI’s.  you can see RelationType 13,16. i have run the below query to see what is that.

2016-12-25_15-31-24

 Hierarchy manager will process the RBAC configuration if you have set and you can find the details in Hman.log. If you make any changes in the application, it will create new set of CI_IDs and will increase the CI_version.

Once you created deployment, Policy provider will create the policy and update into database. the below are tables you can query to find the Assignment IDs and targeted collection and Compliance details etc..

Select * from CI_CIAssignments, Select * from CI_AssignmentStatus, Select * from CI_AssignmentTargetedCIs

I hope you enjoyed this post. Thank you!

97726fe8f02ba122e9436eb80a28fb2a

Advertisements

2 Comments on Flow of Application creation in Configuration Manager

  1. Good article..

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s