karlldall 0 Geschrieben 31. Januar 2014 Melden Teilen 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 Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 31. Januar 2014 Melden Teilen Geschrieben 31. Januar 2014 Wie wird diese Auswertung denn gemacht? Zitieren Link zu diesem Kommentar
karlldall 0 Geschrieben 31. Januar 2014 Autor Melden Teilen 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 }} Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 31. Januar 2014 Melden Teilen 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) Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.