Cas File

If you ever need to track a software deployment on a client, you’ll have a bunch of log-files where you find answers. During a software deployment (and download) the following client log-files is invoked in the following order:

One cold winter night in 1991, best friends Vicki Arnold and Julie-Anne Leahy vanished from their town of Atherton, Queensland. The two women had left for a late-night fishing. CAS REGISTRY®, the CAS substance collection, is the premier source relied upon by scientists, manufacturers, regulators, and data scientists worldwide for accurate information on chemical substances.

  1. AppDiscovery.log
  2. AppIntentEval.log
  3. AppDiscovery.log
  4. CAS.log
  5. ContentTransferManager.log
  6. DataTransferService.log
  7. ContentTransferManager.log
  8. CAS.log
  9. AppEnforce.log
  10. AppIntentEval.log

The log-files can be found on the client C:WindowsCCMLogs. When tracking the deployment, two identifiers are needed; the unique ID of the applications Deployment Type, and the ContentID. The first can be found up front, while the latter can be found in AppDiscovery.log.

Credit due: Adam Pazik wrote a great article which inspired to this post.

When tracking an installation, the unique ID of the applications deployment type is used. If you just want to get that one, skip to the end of this section. If you want to know more, read on..

Everything in ConfigMgr has a unique ID, and the same goes for both Applications and their Deployment Types. The unique ID for Applications (CI_UniqueID) looks like this:

ScopeId_9D808D91-5ABE-48AC-908B-ADA69B7208CE/Application_f9d92c28-d4b6-40f6-bf9e-9c50a0db9856/4

The ScopeId_ part is the Authoring Scope, which is unique to the site server, the Application_ part is unique to the application, and finally the “/4” indicates that this is the fourth revision of the application (each time you change something in the Console, the revision increases). If you are interested, you can determine the Authoring Scope using this PowerShell code:

This would produce “{9D808D91-5ABE-48AC-908B-ADA69B7208CE}” in my test environment, which you can see matches the ScopeId part of the applications Unique ID.

Similar the applications deployment type also has an unique ID:

ScopeId_9D808D91-5ABE-48AC-908B-ADA69B7208CE/DeploymentType_fbfe859a-4810-4ba2-b86d-2013c62f586e/5

The same goes for the ScopeId_, DeploymentType_ and revision part. If you want to retrieve all Unique ID’s for an applications deployment type (say “Reader 11.0.12”), you can use the following code:

This will produce the following output:

Now, when tracking an installation the unique ID of the deployment type is used, but without the revision part (eg ScopeId_9D808D91-5ABE-48AC-908B-ADA69B7208CE/DeploymentType_fbfe859a-4810-4ba2-b86d-2013c62f586e). If you want to retrieve just that, you can use the ModelName property of SMS_DeploymentType instead of CI_UniqueID. The ModelName is actually the desired configuration management model name for the configuration item, but it gives just what we need. Change the previous PowerShell code slightly, and you get:

Cas

This gives us the unique part ScopeId_9D808D91-5ABE-48AC-908B-ADA69B7208CE/DeploymentType_fbfe859a-4810-4ba2-b86d-2013c62f586e we can use to track the installation in the ConfigMgr client log files.

Time to follow the white rabbit…

In the example shown here, an application has been deployed to a collection in which the computer is a member. Now, from the top down:

PolicyAgent.log: Tell the client that it have stuff to do

First the client needs to know that it has new application assignments. The client determines this during its machine policy cycle, which runs each 60 minute by default. You can also trigger this by running the Machine Policy Retrieval & Evaluation Cycle from the ConfigMgr Client, or from the ConfigMgr Console using Client Notification > Download Computer Policy. You can verify that the machine policy is started using PolicyAgent.log:

And further down the line, you can see it is told to get the policy for the application:

AppDiscovery.log: Is the application already installed?

All applications (not packages) in ConfigMgr 2012 contains detection methods, to determine if the application is installed. The detection method(s) run before and after an application is installed. This can be tracked in the AppDiscovery.log file, using the Deployment Type’s Unique ID. You can notice that AppDiscovery is Performing detection of app deployment type Reader 11.0.12 and Did not detection app deployment type Reader 11.0.12 (which is tracked using the unique id).

A note on the side: If the detection method does not work properly, and the ConfigMgr client was unable to verify that the application was properly installed (using the detection method), you will get a return code of 0x87D00324 in Software Center on the client.

Also, you will see that if an application is deployed to a computer, which already has the application installed (as determined by the detection method), the installation files will never be downloaded to the computer. This is a nice consequence of the Application Model in ConfigMgr 2012.

AppIntentEval.log: Does the application have any dependencies?

AppIntentEval.log now takes over, and determines if there are any required dependencies to the application:

AppDiscovery.log: Lets continue and get the content

Back in AppDiscovery.log we see that the installation should continue, and which content should be used for the installation (the Content Id):

The Content Id Content_049f55eb-9172-4b84-890d-332a3a735a59 is now used to track the content download.

CAS.log: Do the client already have the content?

The CAS (Content Access Service), which maintains the local package cache, checks if it already has the content. In this case the content is not present in the cache:

If the content already was in the client cache, CAS.log would write the following instead:

CAS.log now instructs ContentTransferManager.log to initiate the download.

ContentTransferManager.log: Who should download the content?

Cas

ConfigMgr 2012 normally uses BITS to download content from the distribution point. However, ConfigMgr 2012 also supports Alternative Content Providers (such as 1E Nomad) to handle the content download. ContentTransferManager.log is the one who determines how the content should be downloaded. In this case, the download request is handed over to DataTransferService.log:

DataTransferService.log: Downloading the content

In DataTransferService.log it is possible to track the complete download process.

ContentTransferManager.log: Notified of download complete

Cas File

Following the chain back to the surface, we see that ContentTransferManager.log is notified:

CAS.log: Notified of download complete, again

Which in turn notifies CAS.log:

Casefile

AppEnforce.log: Installing the application

Cas File System

Now we have the installation files, it is time to start the installation. AppEnforce.log reveals the details of this:

Here you can see all the good installation stuff, as well as the second check using the detection method of the Application.

AppIntentEval.log: Final check

Finally, the AppIntentEval.log reveals that the application is installed (Current State = Installed):

Cas File Format

This concludes this small walk through of the client log-files used when deploying software.

Now, what would be really cool is that if one wrote a PowerShell script to track the files log-files! Perhaps some day..

Cost Accounting Standards (popularly known as CAS) are a set of 19 standards and rules promulgated by the United States Government for use in determining costs on negotiated procurements. CAS differs from the Federal Acquisition Regulation (FAR) in that FAR applies to substantially all contractors, whereas CAS applies primarily to the larger ones.

History[edit]

In 1970, Congress established the original Cost Accounting Standards Board (CASB) to promulgate cost accounting standards designed to achieve uniformity and consistency in the cost accounting principles followed by defense contractors and subcontractors in excess of $100,000, and to establish regulations to require defense contractors and subcontractors, as a condition of contracting, to disclose in writing their cost accounting practices, to follow the disclosed practices consistently and to comply with promulgated cost accounting standards.

After adopting 19 standards, the original CASB was dissolved on September 30, 1980; the standards, however, remained active and the CASB was revived in 1988 within the Office of Federal Procurement Policy (OFPP). The current CASB consists of five members: the OFPP Administrator (who serves as Chairman) and one member from the United States Department of Defense (this position is held by the Director of the Defense Contract Audit Agency), the General Services Administration, industry, and the private sector.[1]

The Standards[edit]

The original CASB adopted 19 standards, numbered 401 through 420 (419 was never assigned). The new CASB readopted the original 19 standards with only minor modifications, and has yet to adopt any new standards.

StandardTitle
401Consistency in Estimating, Accumulating and Reporting Cost
402Consistency in Allocating Costs Incurred for the Same Purpose
403Allocation of Home Office Expenses to Segments
404Capitalization of Tangible Assets
405Accounting for Unallowable Costs
406Cost Accounting Period
407Use of Standard Costs for Direct Material and Direct Labor
408Accounting for Costs of Compensated Personal Absence
409Depreciation of Tangible Capital Assets
410Allocation of Business Unit General and Administrative Expenses to Final Cost Objectives
411Accounting for Acquisition Costs of Material
412Composition and Measurement of Pension Costs
413Adjustment and Allocation of Pension Cost
414Cost of Money as an Element of the Cost of Facilities Capital
415Accounting for the Cost of Deferred Compensation
416Accounting for Insurance Cost
417Cost of Money as an Element of the Cost of Capital Assets Under Construction
418Allocation of Direct and Indirect Costs
419unused
420Accounting for Independent Research and Development Costs and Bid and Proposal Costs (IR&D and B&P)

CAS Applicability[edit]

CAS applies to contracts, not contractors, through Federal Acquisition Regulation clauses. A company may have contracts that are subject to 'full' CAS coverage (be required to follow all 19 standards), 'modified' CAS coverage (required to follow only Standards 401, 402, 405, and 406), simultaneously have contracts that are subject to either modified or full coverage, or be exempt from coverage. However, a company under 'full' coverage is not subject to a standard where it does not apply (e.g., a company which does not use standard costing does not have to comply with CAS 407).

'Modified' coverage applies to contracts when a company receives a single CAS-covered award of US$7.5 million or more; this is known as the 'Trigger' contract; modified coverage applies to all contracts that are not exempt from CAS until the company meets the criteria for 'Full' coverage.

'Full' coverage applies when a company receives either one CAS-covered contract of US$50 million or more in the current accounting period, or, in the preceding cost accounting period, multiple CAS-covered contracts cumulatively totaling US$50 million. In addition to complying with all 19 standards (where applicable), the company must also file a CAS Disclosure Statement, which spells out the company's accounting practices (such as if certain costs are treated as direct contract charges or as part of overhead expense). There are two versions of the CAS Disclosure Statement: DS-1 applies to commercial companies while DS-2 applies to educational institutions.[2]

In some instances, a contract may be exempt from CAS standards:

Cas File
  • Contracts awarded to small businesses are exempt from CAS, regardless of contract size.
  • Any contract less than US$750,000 is always exempt.
  • Any contract less than US$7.5 million is exempt, provided the company has not been awarded a contract greater than US$7.5 million in the past.
  • Contracts for commercial items
  • Contracts awarded under sealed bid procedures, or where 'adequate price competition' was available (the latter meaning where at least two companies had the ability to bid and perform on a contract, even if only one bid was later received)
  • Contracts where the price is set by law or regulation
  • Contracts awarded to foreign governments
  • Contracts awarded to foreign concerns (only the disclosure statement and CAS 401 and 402 apply in this case) (See CFR 9903.201-1(b))

Previously, contracts where performance would have been performed entirely outside the United States (including territories and possessions) were also exempt, but this exemption was removed for new contracts effective October 11, 2011.

Furthermore, in some instances even where a company is subject to a standard, different rules may apply within the standard itself as to what a company is required to do. As an example, under CAS 403, if Company A's 'residual expenses' (defined as those expenses incurred by the home office – usually the corporate office – which cannot be identified to a specific contract, group of contracts, or company segment) exceed a specified percentage of revenue, Company A must follow a dictated 'three-factor' formula to allocate such expenses, but if Company B's residual expenses do not exceed the percentage (even if, in dollar terms, they are greater), Company B may follow the formula but is not required to do so.

Related links[edit]

References[edit]

Casefile

  1. ^Rayburn, Frank R. 'Cost Accounting Standards Board (1970-1980-; 1988-) in History of Accounting: An International Encyclopedia, edited by Michael Chatfield and Richard Vangermeersch. New York: Galrnad Publishing, 1996. Pp. 178-180.
  2. ^CASB - DS2 for Educational Institutions, revised October 1994, accessed 25 December 2019

Cas File Type

Retrieved from 'https://en.wikipedia.org/w/index.php?title=Cost_Accounting_Standards&oldid=932345481'