Condividi tramite


WSUS 3.0 Developer's Blog: Reporting - The Good, the Bad, and the Confusing

The information below is somewhat out of date for the final version of the reporting APIs. Functionality in the UI is very much the same as in RC, but the API behavior was changed to make it easier to get correct results. We'll make another blog post soon. -- Matthew

Blog entry from beta2/pre-RC timeframe:

One of the big areas of feedback for the WSUS 3.0 Beta has been around reporting features.  Looks cool, but so far the results haven't been as predictable (or correct) as they should have been.  I'll cover some of the philosophy behind the feature, give some insights on how the APIs used for reporting work, and build all that together into where we went astray for the Beta. 

WSUS has never, to date, provided direct access to our database.  From the customer's perspective, aside from a few options in setup to configure the DB, we might as well be storing information in CSVs.  We've taken that approach to avoid complexity around publishing and maintaining compatibility around our schemas and stored procedures.  Without published support for the schema, you can't do extended reporting with great products like SQL Reporting Services.  Further, remote console administration is hampered by database engines like the system component DB engine that doesn't allow remoting, and remote DB installs introduce double-hop authentication issues.  Instead, our reporting is exposed via our API. 

Two of the key APIs we use for reporting are available from IUpdateServer: GetSummariesPerUpdate(UpdateScope updatesToInclude, ComputerTargetScope computersToInclude) and a similar GetSummariesPerComputerTarget(UpdateScope, ComputerTargetScope)

Looking over the scopes, you'll see that you can do some really powerful things:  Text searches, items that are (or aren't) in particular states, time based searches, et cetera.

As the old saying goes, however, Absolute Power bring Absolute Corruption.  In our case, maybe that's Absolute Confusion.

Say you want to ask a question like: "For every update in my organization with failures, show me how many computers didn't fail for that update."

You might logically start constructing your API call something like this: GetSummariesPerUpdate(), using an update scope with IncludedInstallationStates = Failed, and a computer scope that has ExcludedInstallationStates = Failed.

To understand what happens next, we'll go back to how the GetSummaries calls work.

GetSummariesPerUpdate() starts off by getting all Updates from the DB that have at least one computer in the state you specified in the IncludedInstallationStates.  Put succinctly, that's every update that has at least one computer that reported a failure for that update. 

Then, a list of computers is generated - every computer that meets the computer criteria.  In our example using ExcludedInstallationStates, that's every computer that has no failures for any update.  Remember this point: no failures for any update, not no failures for a particular update in the first list.

Now, for the final trick:  For every update in the first list, we figure out the state (relevant to each update) for every computer in the second list.  Count up the tally of each state, and that's the summaries returned for each update. 

Once again, you've now got a list of summaries for every update that had at least one computer with a failure, and a summarization of computer states only against computers that had no failures at all for any update

If you haven't figured out why this is bad, I'll go over what you might have expected with the initial question. 

Imagine your organization has 2 computers (Ca, and Cb), and 2 updates (U1, and U2).  Both computers successfully installed U1, and both failed U2.

Our scenario wanted "show me all updates with no failures, and a count of states for all computers that didn't fail that update."  You'd expect to see U1 (no failures), with a count of 2 computer successes for that update.

Instead, you'd see U1 (no failures) and 0s in all summary fields.  All of the computers had at least one failure, and so were excluded from being summarized for all updates.  A detailed report in our UI would show no computers at all, just like the summary counts said.

Getting questions like this scenario right can be a little tricky - and often require some post processing.  I'll just say "this is why we have Betas," and is why we're so busy for the RC release.  I think you'll be pleased with the changes.

-- matthew

Comments

  • Anonymous
    January 01, 2003
    WSUS 3.0 Developer's Blog: Reporting - The Good, the Bad, and the Confusing
    thank you

  • Anonymous
    January 01, 2003
    Brent - huh?  There's no reason you have to generate a report first before approving.  Have you tried approving from the update lists directly?

  • Anonymous
    January 01, 2003
    The final reporting APIs for WSUS 3.0 RTM were  updated to make this significantly better - we'll try to get another post out soon.

  • Anonymous
    November 19, 2006
    Is there a web console or C# console on the way for 3.0? i hate the MMC that it comes with, why did they do away with the very cool and accessible from anywhere web console?

  • Anonymous
    June 27, 2007
    The comment has been removed

  • Anonymous
    January 06, 2008
    I too am disappointed in the new wsus, removing the web interface was a drastic mistake, it's as if Microsoft is deliberately disappointing their customers again.  Another senerio where development is controlling what to give the customer without concern for usability or the concerns of the product development team.

  • Anonymous
    January 11, 2008
    Thanks for information. many interesting things Celpjefscylc

  • Anonymous
    September 05, 2008
    5vI dont think so.7k I compleatly agree with last post.  ilt Please visit my site <a href="http://skuper.ru">ламинат купить</a> 5n

  • Anonymous
    September 24, 2008
    0pСпасибо за интересную информацию!.4t Буду рад, если посетите мой сайт.! Все материалы для строительства дома: металлочерепица, профнастил, ?сайдинг виниловый, металлический сайдинг, теплоизоляция. <a href="http://skuper.ru/collections.php?collection_id=15">Ламинат premier</a> 9q <a href="http://skuper.ru/makers.php?maker_id=19">FineBer</a> 4o ПВХ Удачи

  • Anonymous
    October 26, 2008
    WSUS has nevers, to dates, provideds direct access to our database.  Froms the customer perspectives thanks you subjcet

  • Anonymous
    October 26, 2008
    Withouts published supports for the schemas, you can't do extendeds reportings with great product like SQL Reportings Services wonderful

  • Anonymous
    October 26, 2008
    Then, a lists of computer is generateds - every computers that meets the computers criteria very nice thanks

  • Anonymous
    October 26, 2008
    Our scenario wanteds show me all update withs no failure, and a counts of states for all computer that did fail that updates thanks

  • Anonymous
    October 26, 2008
    I'll just say this is why we have Beta and is why we're so busy for the RC releases wonderful subject

  • Anonymous
    December 08, 2008
     http://www.batteryfast.co.uk/toshiba/pa3420u.php toshiba pa3420u-1brs l10 l15 l20 laptop battery,  http://www.batteryfast.co.uk/toshiba/pa3451u.php TOSHIBA PA3451U-1BRS PABAS067 laptop battery,

  • Anonymous
    December 11, 2008
    http://www.battery-export.com/dell/dell-inspiron-1200.html  Dell Inspiron 1200 http://www.battery-export.com/dell/dell-inspiron-1300.html  Dell Inspiron 1300 http://www.battery-export.com/dell/dell-inspiron-1420.html  Dell Inspiron 1420

  • Anonymous
    January 02, 2009
    http://mircse.com http://mircindir.cc mirc download mirc yükle mirc indir

  • Anonymous
    January 07, 2009
    Thank's and happy new year good job http://www.ircask.com

  • Anonymous
    February 06, 2009
    I hope that your success will go on. wuh ?

  • Anonymous
    July 31, 2009
    olcak bu is http://www.kodes.com Hiphop, Rap, Ceza, sagopa, Kolera http://www.gekkog.com Hiphop, Rap, Gekko G http://www.maskanimasyon.com Animasyon

  • Anonymous
    February 17, 2010
    bagkur sorgulama, ssk sorgulama,güncel haberler blog

  • Anonymous
    February 17, 2010
    ssk sorgulama bagkur sorgulama

  • Anonymous
    February 17, 2010
    canlı maç izle, canlı ligtv izle