Retreive Analysis Services warning with powershell

One great feature of Analysis Services is to give warning about your cube design during the design of your cube.

These warning can be retreive after you have deployed your cube on the Analysis Services Server.

 

here is a sample script to retreive these warning :

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices")
$serverAS = New-Object Microsoft.AnalysisServices.Server
$serverAS.connect("ServerName")
$db = $serverAS.databases["DatabaseName"]

$val = new-object Microsoft.AnalysisServices.ValidationResultCollection

foreach ($dim in $db.dimensions)
{
 write-host "Validation dimension : ", $dim.name
 $dim.validate($val, 4)
}

foreach ($cube in $db.cubes)
 {
  write-host "validation cube : ", $cube.name
 $cube.validate($val, 4)
 foreach ($mg in $cube.measuregroups)
  {
   write-host "validation measuregroup : ", $mg.name
   $mg.validate($val, 4)
   foreach ($partition in $mg.partitions)
    {
     write-host "validation partition : ", $partition.name
     $partition.validate($val, 4)
    }
  }
 }

$val | select source, sourcePath, sourceTYpe, description

 Enjoy !