karlldall 0 Geschrieben 31. Januar 2014 Melden Geschrieben 31. Januar 2014 Hallo, ich habe eine monatliche Auswertung u.a. werden alle MailBox DB abgefragt (30 stück) und all diese Infos in eine Liste geschrieben, welche ich mir als HTML ausgeben lassen frage wie kann ich jetzt alle DB "addieren" = Gesamtgröße aller Datenbanken danke
Dukel 468 Geschrieben 31. Januar 2014 Melden Geschrieben 31. Januar 2014 Wie wird diese Auswertung denn gemacht?
karlldall 0 Geschrieben 31. Januar 2014 Autor Melden Geschrieben 31. Januar 2014 hi dukel .. hier bitte # Sub-Function to Get Database Informationfunction _GetDB{ param($Database,$ExchangeEnvironment,$Mailboxes,$ArchiveMailboxes,$E2010) # Circular Logging, Last Full Backup if ($Database.CircularLoggingEnabled) { $CircularLoggingEnabled="Yes" } else { $CircularLoggingEnabled = "No" } if ($Database.LastFullBackup) { $LastFullBackup=$Database.LastFullBackup.ToString() } else { $LastFullBackup = "Not Available" } # Mailbox Average Sizes $MailboxStatistics = [array]($ExchangeEnvironment.Servers[$Database.Server.Name].MailboxStatistics | Where {$_.Database -eq $Database.Identity}) if ($MailboxStatistics) { [long]$MailboxItemSizeB = 0 $MailboxStatistics | %{ $MailboxItemSizeB+=$_.TotalItemSizeB } [long]$MailboxAverageSize = $MailboxItemSizeB / $MailboxStatistics.Count } else { $MailboxAverageSize = 0 } # Free Disk Space Percentage if ($ExchangeEnvironment.Servers[$Database.Server.Name].Disks) { foreach ($Disk in $ExchangeEnvironment.Servers[$Database.Server.Name].Disks) { if ($Database.EdbFilePath.PathName -like "$($Disk.Name)*") { $FreeDatabaseDiskSpace = $Disk.FreeSpace / $Disk.Capacity * 100 } if ($Database.ExchangeVersion.ExchangeBuild.Major -ge 14) { if ($Database.LogFolderPath.PathName -like "$($Disk.Name)*") { $FreeLogDiskSpace = $Disk.FreeSpace / $Disk.Capacity * 100 } } else { $StorageGroupDN = $Database.DistinguishedName.Replace("CN=$($Database.Name),","") $Adsi=[adsi]"LDAP://$($Database.OriginatingServer)/$($StorageGroupDN)" if ($Adsi.msExchESEParamLogFilePath -like "$($Disk.Name)*") { $FreeLogDiskSpace = $Disk.FreeSpace / $Disk.Capacity * 100 } } } } else { $FreeLogDiskSpace=$null $FreeDatabaseDiskSpace=$null } if ($Database.ExchangeVersion.ExchangeBuild.Major -ge 14 -and $E2010) { # Exchange 2010 Database Only $CopyCount = [int]$Database.Servers.Count if ($Database.MasterServerOrAvailabilityGroup.Name -ne $Database.Server.Name) { $Copies = [array]($Database.Servers | % { $_.Name }) } else { $Copies = @() } # Archive Info $ArchiveMailboxCount = [int]([array]($ArchiveMailboxes | Where {$_.ArchiveDatabase -eq $Database.Name})).Count $ArchiveStatistics = [array]($ArchiveMailboxes | Where {$_.ArchiveDatabase -eq $Database.Name} | Get-MailboxStatistics -Archive ) if ($ArchiveStatistics) { [long]$ArchiveItemSizeB = 0 $ArchiveStatistics | %{ $ArchiveItemSizeB+=$_.TotalItemSize.Value.ToBytes() } [long]$ArchiveAverageSize = $ArchiveItemSizeB / $ArchiveStatistics.Count } else { $ArchiveAverageSize = 0 } # DB Size / Whitespace Info [long]$Size = $Database.DatabaseSize.ToBytes() [long]$Whitespace = $Database.AvailableNewMailboxSpace.ToBytes() $StorageGroup = $null } else { $ArchiveMailboxCount = 0 $CopyCount = 0 $Copies = @() # 2003 & 2007, Use WMI (Based on code by Gary Siepser, http://bit.ly/kWWMb3) $Size = [long](get-wmiobject cim_datafile -computername $Database.Server.Name -filter ('name=''' + $Database.edbfilepath.pathname.replace("\","\\") + '''')).filesize if (!$Size) { Write-Warning "Cannot detect database size via WMI for $($Database.Server.Name)" [long]$Size = 0 [long]$Whitespace = 0 } else { [long]$MailboxDeletedItemSizeB = 0 if ($MailboxStatistics) { $MailboxStatistics | %{ $MailboxDeletedItemSizeB+=$_.TotalDeletedItemSizeB } } $Whitespace = $Size - $MailboxItemSizeB - $MailboxDeletedItemSizeB if ($Whitespace -lt 0) { $Whitespace = 0 } } $StorageGroup =$Database.DistinguishedName.Split(",")[1].Replace("CN=","") } @{Name = $Database.Name StorageGroup = $StorageGroup ActiveOwner = $Database.Server.Name.ToUpper() MailboxCount = [long]([array]($Mailboxes | Where {$_.Database -eq $Database.Identity})).Count MailboxAverageSize = $MailboxAverageSize ArchiveMailboxCount = $ArchiveMailboxCount ArchiveAverageSize = $ArchiveAverageSize CircularLoggingEnabled = $CircularLoggingEnabled LastFullBackup = $LastFullBackup Size = $Size Whitespace = $Whitespace Copies = $Copies CopyCount = $CopyCount FreeLogDiskSpace = $FreeLogDiskSpace FreeDatabaseDiskSpace = $FreeDatabaseDiskSpace }}
Dukel 468 Geschrieben 31. Januar 2014 Melden Geschrieben 31. Januar 2014 Eigentlich wollte ich nur wissen dass du das ganze per Powershell Script machst und niocht das komplette Script. Vor allem das ist ja nur die Funktion um die Infos zu bekommen. Aber egal. In dem Script, in dem du die Funktion _getDB aufrufst, erstellst du eine Variable am Anfang und zählst beide jedem Durchgang diese Variable hoch. $sizeAllDBs = 0 [...] $sizeAllDBs += $dbvariable.Size (ausgeschrieben heißt das: $sizeAllDBs = $sizeAllDBs + $dbvariable.Size)
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden