It is usefull to be able to see analysis services configuration and browsing cube structure with powershell.
to achieve that, you first need to load the AMO assembly in Powershell :
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices")
And then create a server object :
$serverAS = New-Object Microsoft.AnalysisServices.Server
And connect to your Analysis Services server :
$serverAS.connect("OPIERI02\R2")
Now, you can easily query your Analysis Services to know how it is configured :
$serverAS.serverproperties | select Name, Value
Or to know the list of databases that are stored on this Analysis Services Instance :
$serverAS.databases | select Name, EstimatedSize, StorageMode, LastProcessed
If, for a database, you want to have some information about the cube :
$db = $server.databases["MyDB"]
$db.cubes | select name, storagemode, lastprocessed
if, for the same database, you want info about dimensions
$db.dimensions | select name, isparentchild, lastprocessed, storagemode
If you want to see information about measure group in your database, you have to browse the cube collection as follow :
foreach ($c in $db.cubes) {
write-host $c.Name
foreach ($mg in $c.measuregroups) {
write-host $mg.name, $mg.estimatedsize, $mg.lastprocessed
}
}
You want to know if proactive cache is enable for partition ?
$cube = $db.cubes[“myCube”]
$mg = $cube.MeasureGroups[“myMG”]
Foreach ($p in $mg.partitions) { Write-host $p.Name, $p.estimatedSize, $p.proactivecaching.enabled}
To process all the cube for a database :
Foreach ($c in $db.cubes) {$c.process("ProcessFull")}
and to process all dimensions :
Foreach ($d in $db.dimensions) {$d.process("ProcessFull")}
And you can also backup an analysis services database with powershell:
$db.backup("myBackup.abf")
Enjoy !