lekko zmodyfikowany
param($ServerName = "localhost", $dbname = "db_name")
## Add the AMO namespace
$loadInfo = [Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices")
$server = New-Object Microsoft.AnalysisServices.Server
$server.connect($ServerName)
if ($server.name -eq $null) {
Write-Output ("Server '{0}' not found" -f $ServerName)
break
}
foreach ($d in $server.Databases ) {
if ($d.Name -ne $dbname) { continue; }
Write-Output ( "Database: {0}; Status: {1}; Size: {2}MB" -f $d.Name, $d.State, ($d.EstimatedSize / 1024 / 1024).ToString("#,##0") )
foreach ($cube in $d.Cubes) {
Write-Output ( " Cube: {0}" -f $Cube.Name )
foreach ($mg in $cube.MeasureGroups) {
Write-Output ( " MG: {0}; Status: {1}; Size: {2}MB" -f $mg.Name.PadRight(25), $mg.State, ($mg.EstimatedSize / 1024 / 1024).tostring("#,##0"))
foreach ($part in $mg.Partitions) {
Write-Output ( " Partition: {0}; Status: {1}; Size: {2}MB" -f $part.Name.PadRight(35), $part.State, ($part.EstimatedSize / 1024 / 1024).ToString("#,##0") )
} # Partition
} # Measure group
foreach ($dim in $d.Dimensions) {
Write-Output ( "Dimension: {0}" -f $dim.Name)
} # Dimensions
} # Cube
} # Databases