To resolve this issue, install the hotfix package that is described in the following Microsoft Knowledge Base article:
2649961 Rollup 1 for Forefront Threat Management Gateway (TMG) 2010 Service Pack 2
To enable this fix, run the
FixSoftBlockSummaries.js script on one of the Forefront Threat Management Gateway servers. You can run this script on any Forefront Threat Management Gateway server, an array node, or an Enterprise Management Server.
Note The script enumerates all available arrays and corrects the stored procedure so that the summary information is created correctly. You may have to run the script again if new arrays are added to the storage.
To have us enable this fix for you, go to the "
Fix it for me" section. If you prefer to enable this fix yourself, go to the "
Let me fix it myself" section.
Fix it for me
To enable this fix automatically, click the
Fix it button or link. Then click
Run in the
File Download dialog box, and follow the steps in the
Fix it wizard.
Notes- Install hotfix that is described in Microsoft Knowledge Base (KB) article 2649961 before you run this Fix it solution.
- This wizard may be in English only. However, the automatic fix also works for other language versions of Windows.
- If you are not on the computer that has the problem, save the Fix it solution to a flash drive or a CD and then run it on the computer that has the problem.
Then, go to the "
Did this fix the problem?" section.
Let me fix it myself
- Start Notepad. To start Notepad, click Start, click Run, type notepad.exe in the Open box and then click OK.
- Paste the following script into a new Notepad file.
var guidGenerator = new ActiveXObject("Scriptlet.TypeLib");
var fpcRoot = new ActiveXObject("FPC.Root");
try
{
WScript.Echo("Enumerating arrays:");
var arraysCollection = new Enumerator(fpcRoot.Arrays);
for (; !arraysCollection.atEnd(); arraysCollection.moveNext())
{
try
{
var array = arraysCollection.item();
var found = false;
WScript.Echo(" " + array.Name);
var sumDefsCollection = new Enumerator(array.Reports.ReportSummaryDefinitions);
for(; !sumDefsCollection.atEnd(); sumDefsCollection.moveNext())
{
var sumDef = sumDefsCollection.item();
if(sumDef.Name != "spTrimArraySoftBlockSummary")
{
continue;
}
if (sumDef.AggregationStatement.indexOf("@ToDate AS [Date]") < 0)
{
WScript.Echo("---- spTrimArraySoftBlockSummary.AggregationStatement already contains fix, skipping array");
break;
}
found = true;
WScript.Echo("Found summary definition " + sumDef.Name + ", will fix the AggregationStatement");
WScript.Echo("---- Old version start");
WScript.Echo(sumDef.AggregationStatement);
WScript.Echo("---- Old version end");
sumDef.AggregationStatement = sumDef.AggregationStatement.replace(/@ToDate AS \[Date\]/g, "@FromDate AS [Date]");
WScript.Echo("---- New version start");
WScript.Echo(sumDef.AggregationStatement);
WScript.Echo("---- New version end");
break;
}
if (found)
{
WScript.Echo("Updating configuration ID...");
WScript.Echo("Old configuration ID:" + array.Reports.ReportingServicesProperties.ReportingServicesConfigurationId);
array.Reports.ReportingServicesProperties.ReportingServicesConfigurationId = guidGenerator.Guid;
WScript.Echo("New configuration ID:" + array.Reports.ReportingServicesProperties.ReportingServicesConfigurationId);
WScript.Echo("Saving the current configuration...");
array.Save();
WScript.Echo("Waiting for configuration reload...");
array.WaitForReload();
}
}
catch (err)
{
WScript.Echo("An error occurred. Error Decscription: " + err.description);
WScript.Echo("Try running the script as an administrator");
}
}
}
catch (err)
{
WScript.Echo("An error occurred. Error Decscription: " + err.description);
WScript.Echo("Try running the script as an administrator");
}
- Save the file as FixSoftBlockSummaries.js, and then exit Notepad.
- On a server, open an administrative command prompt.
- Run the script by using the following command:
cscript.exe FixSoftBlockSummaries.js
Wait for the script to complete and the configuration to synchronize. After this, information about users who have overridden the deny rules is created correctly. The script cannot fix this problem for previous summary data.
Did this fix the problem?
- Check whether the problem is fixed. If the problem is fixed, you are finished with this section. If the problem is not fixed, you can contact support.
- We would appreciate your feedback. To provide feedback or to report any issues with this solution, please leave a comment on the "Fix it for me" blog or send us an email.