Karl Mitschke
 Basic Member Posts:451

 |
| 08 May 2008 11:46 AM |
|
Try this, I have once again modified my code :) Karl
##############################################################
# #
# Script to show the size and mailbox count of all databases #
# #
# Karl Mitschke 4/9/2008 #
# #
##############################################################
$exchangeservers = Get-ExchangeServer |where-object {$_.admindisplayversion.major -eq 8 -and $_.IsMailboxServer -eq $true }
$AllServers = @()
foreach ($server in $exchangeservers)
{
$db = Get-MailboxDatabase -server $server
foreach ($objItem in $db)
{
$edbfilepath = $objItem.edbfilepath
$path = "`\`\" + $server + "`\" + $objItem.EdbFilePath.DriveName.Remove(1).ToString() + "$"+ $objItem.EdbFilePath.PathName.Remove(0,2)
$dbsize = Get-ChildItem $path
$dbpath = $EdbFilePath.PathName.Remove(0,2).Replace(".edb","")
$mailboxpath = "$server$dbpath"
$mailboxcount = Get-MailboxStatistics -database "$mailboxpath" |Where {$_.DisconnectDate -eq $null -and $_.ObjectClass -eq 'Mailbox'} |measure-object
$disconnectedmailboxcount = Get-MailboxStatistics -database "$mailboxpath" |Where {$_.DisconnectDate -ne $null} |measure-object
$ReturnedObj = New-Object PSObject
$ReturnedObj | Add-Member NoteProperty -Name "Server\StorageGroup\Database" -Value $objItem.Identity
$ReturnedObj | Add-Member NoteProperty -Name "Size (MB)" -Value ("{0:n2}" -f ($dbsize.Length/1024KB))
$ReturnedObj | Add-Member NoteProperty -Name "User Mailbox Count" -Value $mailboxcount.count
$ReturnedObj | Add-Member NoteProperty -Name "Disconnected Mailbox Count" -Value $disconnectedmailboxcount.count
$AllServers += $ReturnedObj
}
}
$AllServers |export-csv c:\test.csv -notype -force
|
|
http://unlockpowershell.wordpress.com
Co-Author, Windows PowerShell 2.0 Bible
-join("6B61726C6D69747363686B65406D742E6E6574"-split"(?<=\G.{2})",19|%{[char][int]"0x$_"}) |
|
|
albogado
 New Member Posts:12

 |
| 08 May 2008 12:46 PM |
|
Still no love Karl...same error on each DB. Still doesn't show MBX count or Disconnects
+ $disconnectedmailboxcount = Get-MailboxStatistics <<<< -database "$mailboxpath" |Where {$_.DisconnectDate -ne $
null} |measure-object
Get-MailboxStatistics : The specified mailbox database "CHMSG01\SG20DB\CHMSG01SG20DB1" does not exist.
At line:11 char:42
I did notice though that the code is referencing the DB path, not the name of the database;
PS C:\Scripts\Sydi> Get-Mailboxdatabase -server CHMSG01
Name Server
---- ------
SYSADMIN01 CHMSG01
DEVELOPMENT01 CHMSG01
DEVELOPMENT02 CHMSG01
DEVELOPMENT03 CHMSG01
BACKOFFICE01 CHMSG01
BACKOFFICE02 CHMSG01
OPERATIONS01 CHMSG01
COMPLIANCE01 CHMSG01
EXECUTIVES01 CHMSG01
TRADERS01 CHMSG01
TRADERS02 CHMSG01
LONDON01 CHMSG01
OFFSHORE01 CHMSG01
SANFRAN01 CHMSG01
TOKYO01 CHMSG01
BACKOFFICE03 CHMSG01
DEVELOPMENT04 CHMSG01
DEVELOPMENT05 CHMSG01
TRADERS03 CHMSG01
CHMSG01SG20DB1 CHMSG01
EXECUTIVES02 CHMSG01
So after i specified the actual database name, your command does provide the mailbox count. So it looks like I need to modify your code to look for DBname for the $mailboxcount variable. I'll see if I can get it to work and post back. Thanks again |
|
|
|
|
Karl Mitschke
 Basic Member Posts:451

 |
|
albogado
 New Member Posts:12

 |
| 08 May 2008 01:23 PM |
|
Got it working Karl;
$exchangeservers = Get-ExchangeServer |where-object {$_.admindisplayversion.major -eq 8 -and $_.IsMailboxServer -eq $true }
$AllServers = @()
foreach ($server in $exchangeservers)
{
$db = Get-MailboxDatabase -server $server
foreach ($objItem in $db)
{
$edbfilepath = $objItem.edbfilepath
$path = "`\`\" + $server + "`\" + $objItem.EdbFilePath.DriveName.Remove(1).ToString() + "$"+ $objItem.EdbFilePath.PathName.Remove(0,2)
$dbsize = Get-ChildItem $path
$dbpath = $EdbFilePath.PathName.Remove(0,2).remove($EdbFilePath.PathName.length-6)
$mailboxpath = "$server$dbpath"
$mailboxcount = Get-MailboxStatistics -database $objItem |where {$_.DisconnectDate -eq $null -and $_.ObjectClass -eq 'Mailbox'} |Measure-Object
$disconnectedmailboxcount = Get-MailboxStatistics -database $objItem |Where {$_.DisconnectDate -ne $null} |Measure-Object
$ReturnedObj = New-Object PSObject
$ReturnedObj | Add-Member NoteProperty -Name "Server\StorageGroup\Database" -Value $objItem.Identity
$ReturnedObj | Add-Member NoteProperty -Name "Size (MB)" -Value ("{0:n2}" -f ($dbsize.Length/1024KB))
$ReturnedObj | Add-Member NoteProperty -Name "User Mailbox Count" -Value $mailboxcount.count
$ReturnedObj | Add-Member NoteProperty -Name "Disconnected Mailbox Count" -Value $disconnectedmailboxcount.count
$AllServers += $ReturnedObj
}
}
$AllServers |Export-Csv c:\test.csv -notype -force
All I did was change the "-database" references in the $mailboxcount and $disconnectedmailboxcount variables to refer to the previously declared variable $objitem. Works like a champ now! Thanks alot dude.
|
|
|
|
|
majorgeek
 New Member Posts:2

 |
| 25 Jun 2008 02:38 AM |
|
This is a great script;
Hi Karl thanks for your great work. It helps me a lot to provision my 14 mailbox servers.
Can you add in more columns in the results? such as database mount status, last backup status, mailbox retention, prohibit send quota, prohibit sendreceive quota,issuewarningquota. |
|
|
|
|
ziembor
 New Member Posts:7

 |
| 25 Jun 2008 04:32 AM |
|
## http://powershellcommunity.org/Foru...fault.aspx ##
$exchangeservers = Get-ExchangeServer |where-object {$_.admindisplayversion.major -eq 8 -and $_.IsMailboxServer -eq $true } $AllServers = @() foreach ($server in $exchangeservers) { $db = Get-MailboxDatabase -Status -server $server foreach ($objItem in $db) { $edbfilepath = $objItem.edbfilepath $path = "`\`\" + $server + "`\" + $objItem.EdbFilePath.DriveName.Remove(1).ToString() + "$"+ $objItem.EdbFilePath.PathName.Remove(0,2) $dbsize = Get-ChildItem $path $start = $path.LastIndexOf('\') $dbpath = $path.Substring($start +1).remove($path.Substring($start +1).length -4) $mailboxpath = "$server\$dbpath" $mailboxcount = Get-MailboxStatistics -database "$mailboxpath" |measure-object $ReturnedObj = New-Object PSObject $ReturnedObj | Add-Member NoteProperty -Name "Server\StorageGroup\Database" -Value $objItem.Identity $ReturnedObj | Add-Member NoteProperty -Name "Size (MB)" -Value ("{0}" -f ($dbsize.Length/1024KB)) $ReturnedObj | Add-Member NoteProperty -Name "Mailbox Count" -Value $mailboxcount.count $ReturnedObj | Add-Member NoteProperty -Name "LastFullBackup" -Value $objItem.LastFullBackup $ReturnedObj | Add-Member NoteProperty -Name "LastIncrementalBackup" -Value $objItem.LastIncrementalBackup $ReturnedObj | Add-Member NoteProperty -Name "BackupInProgess" -Value $objItem.BackupInProgess $ReturnedObj | Add-Member NoteProperty -Name "Mounted" -Value $objItem.Mounted $ReturnedObj | Add-Member NoteProperty -Name "IssueWarningQuota" -Value $objItem.IssueWarningQuota $AllServers += $ReturnedObj } }
$AllServers |
|
|
|
|
ziembor
 New Member Posts:7

 |
| 25 Jun 2008 04:38 AM |
|
BTW. why
$exchangeservers = Get-ExchangeServer |where-object {$_.admindisplayversion.major -eq 8 -and $_.IsMailboxServer -eq $true }
instead
$exchangeservers = Get-MailboxServer
?
|
|
|
|
|
ziembor
 New Member Posts:7

 |
| 25 Jun 2008 06:23 AM |
|
Some fix and addtional info about free space on local volume:
cls
## http://powershellcommunity.org/Foru...fault.aspx
##
$exchangeservers = Get-MailboxServer
#Get-ExchangeServer |where-object {$_.admindisplayversion.major -eq 8 -and $_.IsMailboxServer -eq $true }
$Jumbo = 1024 * 1024
$AllServers = @()
foreach ($server in $exchangeservers)
{
$db = Get-MailboxDatabase -Status -server $server
foreach ($objItem in $db)
{
$edbfilepath = $objItem.edbfilepath
$path = "`\`\" + $server + "`\" + $objItem.EdbFilePath.DriveName.Remove(1).ToString() + "$"+ $objItem.EdbFilePath.PathName.Remove(0,2)
$dbsize = Get-ChildItem $path
$DiskObj = get-WmiObject Win32_LogicalDisk -computerName $server | Where-Object { $_.DriveType -eq 3 -and $_.DeviceID -ieq $objItem.EdbFilePath.DriveName}
$FreeOnStorage = [int]($DiskObj.freespace / $Jumbo)
$FreeOnStorageProc = [float](($DiskObj.freespace /$Jumbo) / ($DiskObj.size / $Jumbo))
$start = $path.LastIndexOf('\')
$dbpath = $path.Substring($start +1).remove($path.Substring($start +1).length -4)
$mailboxpath = "$server\$dbpath"
$mailboxcount = Get-MailboxStatistics -database "$mailboxpath" |measure-object
$ReturnedObj = New-Object PSObject
$ReturnedObj | Add-Member NoteProperty -Name "Server\StorageGroup\Database" -Value $objItem.Identity
$ReturnedObj | Add-Member NoteProperty -Name "Size (MB)" -Value ("{0}" -f ($dbsize.Length/1024KB))
$ReturnedObj | Add-Member NoteProperty -Name "Mailbox Count" -Value $mailboxcount.count
$ReturnedObj | Add-Member NoteProperty -Name "LastFullBackup" -Value $objItem.LastFullBackup
$ReturnedObj | Add-Member NoteProperty -Name "LastIncrementalBackup" -Value $objItem.LastIncrementalBackup
$ReturnedObj | Add-Member NoteProperty -Name "BackupInProgess" -Value $objItem.BackupInProgess
$ReturnedObj | Add-Member NoteProperty -Name "Mounted" -Value $objItem.Mounted
$ReturnedObj | Add-Member NoteProperty -Name "IssueWarningQuota" -Value $objItem.IssueWarningQuota
$ReturnedObj | Add-Member NoteProperty -Name "ProhibitSendQuota" -Value $objItem.ProhibitSendQuota
$ReturnedObj | Add-Member NoteProperty -Name "ProhibitSendReceiveQuota" -Value $objItem.ProhibitSendReceiveQuota
$ReturnedObj | Add-Member NoteProperty -Name "MailboxRetention" -Value $objItem.MailboxRetention
$ReturnedObj | Add-Member NoteProperty -Name "FreeOnStorage" -Value $FreeOnStorage
$ReturnedObj | Add-Member NoteProperty -Name "FreeOnStorageProc" -Value $FreeOnStorageProc
$AllServers += $ReturnedObj
}
}
$AllServers | ft -AutoSize
#| export-csv c:\test.csv -notype -force
|
|
|
|
|
Karl Mitschke
 Basic Member Posts:451

 |
|
ziembor
 New Member Posts:7

 |
| 25 Jun 2008 07:01 AM |
|
next version, including PF file.
## http://powershellcommunity.org/Foru...fault.aspx ##
$AllServers = @() $mbdb = Get-MailboxDatabase -Status $pfdb = Get-PublicFolderDatabase -Status $db = $mbdb + $pfdb foreach ($objItem in $db) { $server=$objItem.ServerName $edbfilepath = $objItem.edbfilepath $path = "`\`\" + $objItem.ServerName + "`\" + $objItem.EdbFilePath.DriveName.Remove(1).ToString() + "$"+ $objItem.EdbFilePath.PathName.Remove(0,2) $dbsize = Get-ChildItem $path $DiskObj = get-WmiObject Win32_LogicalDisk -computerName $objItem.ServerName | Where-Object { $_.DeviceID -ieq $objItem.EdbFilePath.DriveName } $FreeOnStorage = [int]($DiskObj.freespace / 1024KB) $FreeOnStorageProc = [float](($DiskObj.freespace /1024KB) / ($DiskObj.size / 1024KB)) $start = $path.LastIndexOf('\') $dbpath = $path.Substring($start +1).remove($path.Substring($start +1).length -4) $mailboxpath = "$server\$dbpath" if($objItem.ObjectClass -ilike '*msExchPrivateMD*') { $mailboxcount = Get-MailboxStatistics -database "$mailboxpath" |measure-object } else { $mailboxcount = 0 } $ReturnedObj = New-Object PSObject $ReturnedObj | Add-Member NoteProperty -Name "DatabaseIdentity" -Value $objItem.Identity $ReturnedObj | Add-Member NoteProperty -Name "SizeMB" -Value ("{0}" -f ($dbsize.Length/1024KB)) $ReturnedObj | Add-Member NoteProperty -Name "MailboxCount" -Value $mailboxcount.count $ReturnedObj | Add-Member NoteProperty -Name "LastFullBackup" -Value $objItem.LastFullBackup $ReturnedObj | Add-Member NoteProperty -Name "LastIncrementalBackup" -Value $objItem.LastIncrementalBackup $ReturnedObj | Add-Member NoteProperty -Name "BackupInProgess" -Value $objItem.BackupInProgess $ReturnedObj | Add-Member NoteProperty -Name "Mounted" -Value $objItem.Mounted $ReturnedObj | Add-Member NoteProperty -Name "IssueWarningQuota" -Value $objItem.IssueWarningQuota $ReturnedObj | Add-Member NoteProperty -Name "ProhibitSendQuota" -Value $objItem.ProhibitSendQuota $ReturnedObj | Add-Member NoteProperty -Name "ProhibitSendReceiveQuota" -Value $objItem.ProhibitSendReceiveQuota $ReturnedObj | Add-Member NoteProperty -Name "MailboxRetention" -Value $objItem.MailboxRetention $ReturnedObj | Add-Member NoteProperty -Name "FreeOnStorage" -Value $FreeOnStorage $ReturnedObj | Add-Member NoteProperty -Name "FreeOnStorageProc" -Value $FreeOnStorageProc $AllServers += $ReturnedObj }
$AllServers | ft -AutoSize |
|
|
|
|
Karl Mitschke
 Basic Member Posts:451

 |
| 25 Jun 2008 07:07 AM |
|
mjgeek; Here you go:
$exchangeservers = Get-MailboxServer
$AllServers = @()
foreach ($server in $exchangeservers)
{
$db = Get-MailboxDatabase -Status -server $server
foreach ($objItem in $db)
{
$edbfilepath = $objItem.edbfilepath
$path = "`\`\" + $server + "`\" + $objItem.EdbFilePath.DriveName.Remove(1).ToString() + "$"+ $objItem.EdbFilePath.PathName.Remove(0,2)
$dbsize = Get-ChildItem $path
$start = $path.LastIndexOf('\')
$dbpath = $path.Substring($start +1).remove($path.Substring($start +1).length -4)
$mailboxpath = "$server\$dbpath"
$mailboxcount = Get-MailboxStatistics -database "$mailboxpath" |measure-object
$ReturnedObj = New-Object PSObject
$ReturnedObj | Add-Member NoteProperty -Name "Server\StorageGroup\Database" -Value $objItem.Identity
$ReturnedObj | Add-Member NoteProperty -Name "Size (MB)" -Value ("{0}" -f ($dbsize.Length/1024KB))
$ReturnedObj | Add-Member NoteProperty -Name "Mailbox Count" -Value $mailboxcount.count
$ReturnedObj | Add-Member NoteProperty -Name "LastFullBackup" -Value $objItem.LastFullBackup
$ReturnedObj | Add-Member NoteProperty -Name "LastIncrementalBackup" -Value $objItem.LastIncrementalBackup
$ReturnedObj | Add-Member NoteProperty -Name "BackupInProgess" -Value $objItem.BackupInProgess
$ReturnedObj | Add-Member NoteProperty -Name "Mounted" -Value $objItem.Mounted
$ReturnedObj | Add-Member NoteProperty -Name "MailboxRetention" -Value $objItem.MailboxRetention
$ReturnedObj | Add-Member NoteProperty -Name "IssueWarningQuota" -Value $objItem.IssueWarningQuota
$ReturnedObj | Add-Member NoteProperty -Name "ProhibitSendQuota" -Value $objItem.ProhibitSendQuota
$ReturnedObj | Add-Member NoteProperty -Name "ProhibitSendReceiveQuota" -Value $objItem.ProhibitSendReceiveQuota
$AllServers += $ReturnedObj
}
}
$AllServers |Export-Csv c:\test.csv -notype -force
if you just paste this into a EMS window, you can then see what other information is redily available by typing this: $objItem |fl |
|
http://unlockpowershell.wordpress.com
Co-Author, Windows PowerShell 2.0 Bible
-join("6B61726C6D69747363686B65406D742E6E6574"-split"(?<=\G.{2})",19|%{[char][int]"0x$_"}) |
|
|
majorgeek
 New Member Posts:2

 |
| 25 Jun 2008 07:25 AM |
|
Hi Karl, It really works, Thank you for your great help. |
|
|
|
|
Jazo
 New Member Posts:58

 |
| 01 Dec 2008 03:47 AM |
|
Hi, This script looks really great and would like to get it to work. I'm getting a error for all mailservers:
Get-ChildItem : Cannot find path '\\"mailservername"\G$\Exchange\Storage Group 1 dat abases\Mailbox Database.edb' because it does not exist. At C:\Program Files\Microsoft\Exchange Server\Scripts\mailboxstoresize.ps1:10 c har:28 + $dbsize = Get-ChildItem <<<< $path Get-MailboxStatistics : The specified mailbox database ""mailservername"\Mailbox Dat abase" does not exist. At C:\Program Files\Microsoft\Exchange Server\Scripts\mailboxstoresize.ps1:14 c har:42 + $mailboxcount = Get-MailboxStatistics <<<< -database "$mailboxpath" |mea sure-object
|
|
|
|
|
Karl Mitschke
 Basic Member Posts:451

 |
|
Jazo
 New Member Posts:58

 |
| 01 Dec 2008 07:59 AM |
|
Yeah, I think I know where you are going with this :-) I think I've got it fixed. One more question. How can I specify like only 2 servers to check and not all?
Thanks for your reply :-)
|
|
|
|
|
Karl Mitschke
 Basic Member Posts:451

 |
|
philltx
 New Member Posts:50

 |
| 01 Dec 2008 03:12 PM |
|
How do you look up where to find the Drivename and Pathname property under the $objItem.EdbFilePath ?
|
|
|
|
|
Karl Mitschke
 Basic Member Posts:451

 |
| 01 Dec 2008 03:23 PM |
|
$objItem.EdbFilePath.PathName contains the drive and path as S:\SG7\MBX7.edb If you mean how can you see this on the server, simply use My Computer. If I haven't answered your question, please ask again |
|
http://unlockpowershell.wordpress.com
Co-Author, Windows PowerShell 2.0 Bible
-join("6B61726C6D69747363686B65406D742E6E6574"-split"(?<=\G.{2})",19|%{[char][int]"0x$_"}) |
|
|
philltx
 New Member Posts:50

 |
| 01 Dec 2008 03:33 PM |
|
What i'm trying to do is modify the script to display all email accounts with their corresponding sizes, itemcounts, totalitemsize, email address, and displayname instead of just like running get-mailboxstatistics | ft servername, displayname, itemcount, totalitemsize how would I go about doing this? thanks in advance |
|
|
|
|
Karl Mitschke
 Basic Member Posts:451

 |
| 01 Dec 2008 03:49 PM |
|
Well, the script here is for getting mailbox database information. You gave an example of how to get the information you are looking for. If you want to do that for every mailbox on all your servers, you could do this: $exchangeservers = Get-MailboxServer $AllUsers = @() foreach ($server in $exchangeservers) { $AllUsers += Get-Mailbox -Server $server |Get-MailboxStatistics |select servername,displayname,itemcount,totalitemsize } $AllUsers |Export-Csv c:\test.csv -NoTypeInformation
|
|
http://unlockpowershell.wordpress.com
Co-Author, Windows PowerShell 2.0 Bible
-join("6B61726C6D69747363686B65406D742E6E6574"-split"(?<=\G.{2})",19|%{[char][int]"0x$_"}) |
|
|
philltx
 New Member Posts:50

 |
| 01 Dec 2008 03:52 PM |
|
oh cool... how do i go about pulling the smtp address? |
|
|
|
|
Jazo
 New Member Posts:58

 |
| 02 Dec 2008 04:01 AM |
|
Thanks Karl. It working for me now too, you da man! |
|
|
|
|
Jazo
 New Member Posts:58

 |
| 02 Dec 2008 06:47 AM |
|
Hey Karl, I have one more question.
Running Script: $exchangeservers = @("Server1", "Server2") $AllServers = @() foreach ($server in $exchangeservers) { $db = Get-MailboxDatabase -Status -server $server foreach ($objItem in $db) { $edbfilepath = $objItem.edbfilepath $path = "`\`\" + $server + "`\" + $objItem.EdbFilePath.DriveName.Remove(1).ToString() + "$"+ $objItem.EdbFilePath.PathName.Remove(0,2) $dbsize = Get-ChildItem $path $start = $path.LastIndexOf('\') $dbpath = $path.Substring($start +1).remove($path.Substring($start +1).length -4) $mailboxpath = "$server\$dbpath" $mailboxcount = Get-MailboxStatistics -database "$mailboxpath" |measure-object $ReturnedObj = New-Object PSObject $ReturnedObj | Add-Member NoteProperty -Name "Server\StorageGroup\Database" -Value $objItem.Identity $ReturnedObj | Add-Member NoteProperty -Name "Size (MB)" -Value ("{0}" -f ($dbsize.Length/1024KB)) $ReturnedObj | Add-Member NoteProperty -Name "Mailbox Count" -Value $mailboxcount.count $ReturnedObj | Add-Member NoteProperty -Name "LastFullBackup" -Value $objItem.LastFullBackup $ReturnedObj | Add-Member NoteProperty -Name "LastIncrementalBackup" -Value $objItem.LastIncrementalBackup $ReturnedObj | Add-Member NoteProperty -Name "BackupInProgess" -Value $objItem.BackupInProgess $ReturnedObj | Add-Member NoteProperty -Name "Mounted" -Value $objItem.Mounted $ReturnedObj | Add-Member NoteProperty -Name "MailboxRetention" -Value $objItem.MailboxRetention $ReturnedObj | Add-Member NoteProperty -Name "IssueWarningQuota" -Value $objItem.IssueWarningQuota $ReturnedObj | Add-Member NoteProperty -Name "ProhibitSendQuota" -Value $objItem.ProhibitSendQuota $ReturnedObj | Add-Member NoteProperty -Name "ProhibitSendReceiveQuota" -Value $objItem.ProhibitSendReceiveQuota $AllServers += $ReturnedObj } }
$ALLServers = $AllServers.Replace("@{","") $ALLServers = $AllServers.Replace("}","`n") function sendmail($body) { $SmtpClient = new-object system.net.mail.smtpClient $MailMessage = New-Object system.net.mail.mailmessage $SmtpClient.Host = "" $mailmessage.from = "spamfree@domain.com" $mailmessage.To.add("user@domain.com") $mailmessage.Subject = “Exchange 2007 Database Sizes” $MailMessage.IsBodyHtml = $false $mailmessage.Body = $body $smtpclient.Send($mailmessage) }
sendmail $ALLServers
but I'm getting an error:
Method invocation failed because [System.Object[]] doesn't contain a method nam ed 'Replace'. At C:\Program Files\Microsoft\Exchange Server\Scripts\mailboxstoresize.ps1:31 c har:34 + $ALLServers = $AllServers.Replace( <<<< "@{","") Method invocation failed because [System.Object[]] doesn't contain a method nam ed 'Replace'. At C:\Program Files\Microsoft\Exchange Server\Scripts\mailboxstoresize.ps1:32 c har:34 + $ALLServers = $AllServers.Replace( <<<< "}","`n") Exception calling "Send" with "1" argument(s): "Failure sending mail." At C:\Program Files\Microsoft\Exchange Server\Scripts\mailboxstoresize.ps1:44 c har:21 + $smtpclient.Send( <<<< $mailmessage)
Thanks for your help. |
|
|
|
|
Karl Mitschke
 Basic Member Posts:451

 |
|
Jazo
 New Member Posts:58

 |
| 02 Dec 2008 07:33 AM |
|
Ahhh...my bad I still had the < > marks in the smtp host name. The smtp adresse is now correct. I also took out the 2 lines you suggested in point 1. Now I'm getting an email but it is empty. No data. |
|
|
|
|
Karl Mitschke
 Basic Member Posts:451

 |
| 02 Dec 2008 07:54 AM |
|
Yeah, me too. Change $MailMessage.IsBodyHtml = $False to $MailMessage.IsBodyHtml = $True Then, change "sendmail $ALLServers" to: $body = $allservers |sort-object "Server\StorageGroup\Database" |convertto-html sendmail $body That should get you working - i don't have time to look at the original and see what happened.
|
|
http://unlockpowershell.wordpress.com
Co-Author, Windows PowerShell 2.0 Bible
-join("6B61726C6D69747363686B65406D742E6E6574"-split"(?<=\G.{2})",19|%{[char][int]"0x$_"}) |
|
|
Jazo
 New Member Posts:58

 |
| 02 Dec 2008 10:14 AM |
|
Thanks again Karl, for your expertise. It works fine now.
If I wanted to run this script like once a week, what would you recommend with powershell. The at command? |
|
|
|
|
Karl Mitschke
 Basic Member Posts:451

 |
|
luisg67
 New Member Posts:1

 |
| 26 Jun 2009 05:45 PM |
|
Anyway to be able to get the mailboxdatabase size on a Exchange Cluster? |
|
|
|
|
sinish
 New Member Posts:3

 |
| 02 Sep 2009 01:37 PM |
|
Karl this is absolutely awesome script - powerful and rather simple. For us it seems to be working fine on Server 2003 Exchange CCR cluster, but it fails when it reaches Server 2008 mailbox clusters. The error is that it cannot find D$ admin share using the cluster name \\clustername\d$. I confirmed that I cannot manually mount this share either, as I can do it on 2003 clustered servers. Windows reports that server "clustername" exists, but share D$ cannot be found. When mapping to the cluster nodes directly, share is available. So seems to be Server 2008 clustering "feature", however I cannot seem to find anyone else that have this problem. Is there anyone who can use this script on 2008 cluster? I would like to use the script as is, but might have to modify it by hardcoding node names instead. Thanks. ST |
|
|
|
|