Wednesday, March 26, 2014

Http 500 on SCCM Reports

If you try to open a SCCM report especially if you reference against a big collection (i.e All Systems etc) , you might get an generic HTTP 500 error. Most probably, the problem is related to the different report limitations in both: SCCM and IIS.

The SCCM reporting point has a 10.000 rows limit. 

This limit can be expanded by changing the registry. The registry value on the SMS or SCCM Reporting Point server must be modified to allow for returning a larger Row Set.

1) You can change the limit by modifying the registry on the reporting point machine.
Under the HKEY_LOCAL_MACHINE\Software\Microsoft\SMS\Reporting key, add the DWORD valueRowcount and assign it the value for your desired maximum limit.

The maximum row count in decimal is 32767.
If you need to return more than 32,767 records, you can set the row count to 0xffffffff hexadecimal, which will return all rows. However, this significantly increases the workload on the SMS site database.

2) The registry change above will allow you to run reports up to 50.000 rows. If you need more, you have to change the ASP buffer size within the IIS server.

For IIS6
You need to adjust the AspBufferingLimit setting. The AspBufferingLimit property sets the maximum size of the ASP buffer. The default is approximately 4 MB. 
To change the default, open %WindowsRoot%\System32\InetSrv\MetaBase.xml and search for “AspBufferingLimit”. Adjust the setting to allow for 1 MB per 1000 records. You can make changes to the MetaBase.xml file while IIS is running only if the edit-while-running feature is enabled. Otherwise, you must stop IIS before editing the MetaBase.xml file.

For IIS 7.x
Change the setting in the IIS Manager -> ASP -> Limits Properties.

Tuesday, March 25, 2014

SCOM 2007 R2 (Editing Company Knowledge)

Company Knowledge is used to capture the steps required to resolve an alert in your OpsMgr installation.  When paired with the Product knowledge (which provides you with the application developers knowledge on the causes and suggested resolution steps for an alert), the two will help any operator with the best steps and any historic knowledge to reduce the amount of time required to resolve an alert

Product Knowledge is embedded in a rule or monitor when it is authored. Company Knowledge can be added at any time provided you have the correct applications loaded and you are logged into the console with an account that is assigned to the correct role.

Software requirements:

1) Office Professional 2007 SP3 or higher, only Word is required.

2) Install the Visual Studio 2005 tools for the Microsoft Office System which can be downloaded from the below

Role requirements:

In OpsMgr 2007, user roles define the actions that can be taken (the profile) on what objects (the scope). There are several user roles predefined in the product and the OpsMgr Administrator will have assigned your user account to a role. Your account must be assigned to one of the roles before you can access the Operations Console.

All roles can view the Company Knowledge content either by accessing the rule or monitor directly (this access is limited by the role that you are in) or through an alert that was raised by a monitor or rule. In order to edit the Company Knowledge however you must be in either the Author or Administrator OpsMgr 2007 User Role.

When you click on the Edit, what you will be presented will be similar to the screenshot on the left

Tuesday, March 18, 2014

Backlogs for SCCM RPL/RPT files

For SCCM administrator having big environments, one of the issues in such environments is backlogging.
if the number of files in an inbox reached critical level, SCCM will not be able to handle the new files that comes in and also whatever that is in the backlog unless you stop all data transferring between sites for several days.  Try to run "DIR /P" command in folder with million files and you will see it takes 3-5 minutes. Windows Explorer hangs when you try to open.

All your changes may be delayed for days and even weeks or changes already happened on client side (package installed, new update lists, updates to collections.. you name it :)) but SCCM server is not updated because it has yet to processed status files yet.

How to resolve this?
Follow the below

1) Stop all SCCM services. It may take up to 10-15 minutes to stop SMS_EXECUTIVE service. (Have some patience to allow it to stop properly and not kill the process :)

2) Create a "DELAY” folder under <SCCM_INSTALL_PATH>\inboxes\\incoming
and move all RPT files from\incoming to delay folder.

3) Start all SCCM Related services which was stopped in step 1.

Watch\incoming folder. Once SCCM finished processing old files (number of files in the folder will be dropped) you can start moving back RPT files. It should be done in blocks.

The below is something that would help to ease the pain of having to manually move the file back into the incoming folder.
Create the batch file in the Delay folder which you create in step 2.

@echo off & setlocal EnableDelayedExpansion
set LIM=300
for %%i in (*.rpt) do (
set /A N+=1
move “%%i” “..”
if !N! geq !LIM! (TimeOut 3600 & set /A LIM+=300)

Wednesday, March 5, 2014

Dll, config file in SCCM packages cannot be distributed.

A package which I packaged for SCCM do not seem to be distributed to Distributions points after a couple of days despite re-packaging.
The package status remains at install pending for a extended period of time.
In my case my package contained a dll files.

It was found that this is due to configuration in the applicationhost.config file located on c:\windows\system32\inetsrv\config. TheDLL files are filtered by the distribution point.

To determine this issue, the following was done

1) Look at the IIS logs for on the source DP.

2) It was found that the http 500 was encountered for DLL file types

To resolve this issue, the below was removed from the applicationhost.config file
Look for the below <add fileExtension=".dll" allowed="false" /> in the file.
It should be found within the tag of <requestFIltering>

<fileExtensions allowUnlisted="true" applyToWebDAV="true">
<add fileExtension=".asa" allowed="false" />
<add fileExtension=".asax" allowed="false" />
<add fileExtension=".ascx" allowed="false" />
<add fileExtension=".master" allowed="false" />
<add fileExtension=".skin" allowed="false" />
<add fileExtension=".browser" allowed="false" />
<add fileExtension=".sitemap" allowed="false" />
<add fileExtension=".config" allowed="false" />
<add fileExtension=".cs" allowed="false" />
<add fileExtension=".csproj" allowed="false" />
<add fileExtension=".vb" allowed="false" />
<add fileExtension=".vbproj" allowed="false" />
<add fileExtension=".webinfo" allowed="false" />
<add fileExtension=".licx" allowed="false" />
<add fileExtension=".resx" allowed="false" />
<add fileExtension=".resources" allowed="false" />
<add fileExtension=".mdb" allowed="false" />
<add fileExtension=".vjsproj" allowed="false" />
<add fileExtension=".java" allowed="false" />
<add fileExtension=".jsl" allowed="false" />
<add fileExtension=".ldb" allowed="false" />
<add fileExtension=".dsdgm" allowed="false" />
<add fileExtension=".ssdgm" allowed="false" />
<add fileExtension=".lsad" allowed="false" />
<add fileExtension=".ssmap" allowed="false" />
<add fileExtension=".cd" allowed="false" />
<add fileExtension=".dsprototype" allowed="false" />
<add fileExtension=".lsaprototype" allowed="false" />
<add fileExtension=".sdm" allowed="false" />
<add fileExtension=".sdmDocument" allowed="false" />
<add fileExtension=".mdf" allowed="false" />
<add fileExtension=".ldf" allowed="false" />
<add fileExtension=".ad" allowed="false" />
<add fileExtension=".dd" allowed="false" />
<add fileExtension=".ldd" allowed="false" />
<add fileExtension=".sd" allowed="false" />
<add fileExtension=".adprototype" allowed="false" />
<add fileExtension=".lddprototype" allowed="false" />
<add fileExtension=".exclude" allowed="false" />
<add fileExtension=".refresh" allowed="false" />
<add fileExtension=".compiled" allowed="false" />
<add fileExtension=".msgx" allowed="false" />
<add fileExtension=".vsdisco" allowed="false" />
<verbs allowUnlisted="true" applyToWebDAV="true" />
<hiddenSegments applyToWebDAV="true">
<add segment="web.config" />
<add segment="bin" />
<add segment="App_code" />
<add segment="App_GlobalResources" />
<add segment="App_LocalResources" />
<add segment="App_WebReferences" />
<add segment="App_Data" />
<add segment="App_Browsers" />

3) Restart IIS
4) Monitor the DP