Send mail
$SmtpClient=New-Object
System.Net.Mail.SmtpClient
$Smtpclient.Host='SMTP.Telus.Net'
$From='Kaiming.Liao@GMAIL.COM'
$To='kmliao@hotmail.com'
$Title='This
is a test mail.'
$Body='How are you
doing?'
$SmtpClient.Send($From,$To,$Title,$Body)
Fetch credential for SMTP authentication
Using clear password
$credential=new-object
System.Net.NetworkCredential('KMLIAO@hotmail.com','Password')
$SmtpClient.Credentials=$credential
$credential.UserName
KMLIAO@hotmail.com
$credential.Password
password
Using a standard login window
$credential=get-credential
$Username=$credential.UserName
$Password=$credential.GetNetworkCredential().Password
$credential1=New-Object
System.Net.NetworkCredential($Username,$Password)
$SmtpClient.Credentials=$credential1
Reporting database size and mailbox count via email
$db=Get-MailboxDatabase -server Ex1
foreach
($objItem in $db){$objItem.edbfilepath}
IsPathInRootDirectory : False
PathName : C:\Program
Files\Microsoft\Exchange Server\V14\Mailbox\Mailbox Database 2016968937\Mailbox
Data
base 2016968937.edb
IsLocalFull : True
IsUnc : False
DriveName
: C:
ServerName :
IsPathInRootDirectory : False
PathName : C:\Program
Files\Microsoft\Exchange Server\V14\Mailbox\Vanarts\Vanarts.edb
IsLocalFull :
True
IsUnc : False
DriveName : C:
ServerName :
IsPathInRootDirectory : False
PathName : C:\Program
Files\Microsoft\Exchange
Server\V14\Mailbox\TelusDataBase\TelusDataBase.edb
IsLocalFull :
True
IsUnc : False
DriveName : C:
ServerName :
IsPathInRootDirectory : False
PathName : C:\Program
Files\Microsoft\Exchange
Server\V14\Mailbox\ShawDataBase\ShawDataBase.edb
IsLocalFull : True
IsUnc
: False
DriveName : C:
ServerName :
$db=Get-MailboxDatabase
"Shawdatabase"
$db.EdbFilePath
IsPathInRootDirectory : False
PathName : C:\Program
Files\Microsoft\Exchange
Server\V14\Mailbox\ShawDataBase\ShawDataBase.edb
IsLocalFull : True
IsUnc
: False
DriveName : C:
ServerName :
$db.EdbFilePath.DriveName
C:
$db.EdbFilePath.DriveName.Remove(1)
C
$db.EdbFilePath.PathName
C:\Program
Files\Microsoft\Exchange
Server\V14\Mailbox\ShawDataBase\ShawDataBase.edb
$db.EdbFilePath.PathName.Remove(0,2)
\Program
Files\Microsoft\Exchange Server\V14\Mailbox\ShawDataBase\ShawDataBase.edb
$Server="Ex1"
$path="\\" + $Server +"\" +
$db.EdbFilePath.Drivename.Remove(1).ToString()+"$"+$db.EdbFilePath.PathName.Remove(0,2)
$path
\\Ex1\C$\Program
Files\Microsoft\Exchange
Server\V14\Mailbox\ShawDataBase\ShawDataBase.edb
$db=Get-MailboxDatabase
"Shawdatabase"
$edbfilepath=$db.edbfilepath
$Server="Ex1"
$path="\\" +
$Server +"\" +
$db.EdbFilePath.Drivename.Remove(1).ToString()+"$"+$db.EdbFilePath.PathName.Remove(0,2)
$dbsize=Get-ChildItem
$path
$EdbFilePath.PathName.Remove(0,2)
\Program Files\Microsoft\Exchange Server\V14\Mailbox\ShawDataBase\ShawDataBase.edb
$EdbFilePath.PathName.Length-6
$dbpath=$EdbFilePath.PathName.Remove(0,2).Remove($EdbFilePath.PathName.Length-6)
$dbpath
\Program Files\Microsoft\Exchange Server\V14\Mailbox\ShawDataBase\ShawDataBase

$db=Get-MailboxDatabase
"Shawdatabase"
$edbfilepath=$db.edbfilepath
$Server="Ex1"
$path="\\" +
$Server +"\" +
$db.EdbFilePath.Drivename.Remove(1).ToString()+"$"+$db.EdbFilePath.PathName.Remove(0,2)
$dbsize=Get-ChildItem
$path
$EdbFilePath.PathName.Remove(0,2)
$EdbFilePath.PathName.Length-6
$dbpath=$EdbFilePath.PathName.Remove(0,2).Remove($EdbFilePath.PathName.Length-6)
$dbpath
$mailboxcount=Get-mailboxStatistics
-Database $db | Measure-Object
$mailboxcount
Count : 2
Average :
Sum :
Maximum :
Minimum
:
Property :
Script file:Data.ps1
$BodyText=""
$ExchangeServer=Get-ExchangeServer | Where
{$_.AdminDisplayVersion.major -eq 14 -and $_.IsMailboxServer -eq $True}
ForEach ($Server in $ExchangeServer)
{
$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=$objItem.EdbFilePath.PathName.Remove(0,2).Remove($EdbFilePath.PathName.Length-6)
$mailboxcount=Get-mailboxStatistics
-Database $objItem | Measure-Object
$ReturnedObj=New-Object
PSObject
$ReturnedObj | Add-Member NoteProperty -Name "Server" -Value
$Server
$ReturnedObj | Add-Member NoteProperty -Name "Database" -Value
$objItem.Identity
$ReturnedObj | Add-Member NoteProperty -Name "Size (MB)"
-Value ("{0:n2}" -f($dbsize.Length/1024KB))
$ReturnedObj | Add-Member
NoteProperty -Name "Mailbox count" -Value $mailboxcount.count
$BodyText +=
$ReturnedObj
$BodyText +="<p>"
}
}
Run the script in EMS
data.ps1
@{Server=EX1; Database=Mailbox
Database 2016968937; Size (MB)=168.06; Mailbox count=10}<br />@{Server=EX1;Database=Vanarts;
Size (MB)=136.06; Mailbox count=15}<br />@{Server=EX1; Database=TelusDataBase; Size
(MB)=136.06; Mailbox count=7}<br />@{Server=EX1; Database=ShawDataBase; Size (MB)=8.06; Mailbox
count=2}<<br
/>
script: databaseSize.ps1
$BodyText=""
$ExchangeServer=Get-ExchangeServer | Where
{$_.AdminDisplayVersion.major -eq 14 -and $_.IsMailboxServer -eq $True}
ForEach ($Server in $ExchangeServer)
{
$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=$objItem.EdbFilePath.PathName.Remove(0,2).Remove($EdbFilePath.PathName.Length-6)
$mailboxcount=Get-mailboxStatistics
-Database $objItem | Measure-Object
$ReturnedObj=New-Object
PSObject
$ReturnedObj | Add-Member NoteProperty -Name "Server" -Value
$Server
$ReturnedObj | Add-Member NoteProperty -Name "Database" -Value
$objItem.Identity
$ReturnedObj | Add-Member NoteProperty -Name "Size (MB)"
-Value ("{0:n2}" -f($dbsize.Length/1024KB))
$ReturnedObj | Add-Member
NoteProperty -Name "Mailbox count" -Value $mailboxcount.count
$BodyText +=
$ReturnedObj
$BodyText +="<br
/>"
}
}
$BodyText=$BodyText.Replace("@{","")
$BodyText=$BodyText.Replace("}","")
$MailMessage
= New-Object System.Net.Mail.MailMessage
$MailMessage.From
='Administrator@Lab.Com'
$MailMessage.To.Add('kmliao@hotmail.com')
$MailMessage.Subject
= "Exchange 2010 Database Sizes"
$MailMessage.IsBodyHtml
=$True
$mailMessage.Body =$BodyText
$SmtpClient=New-Object
System.Net.Mail.Smtpclient
$Smtpclient.Host='SMTP.Telus.Net'
$SmtpClient.Send($MailMessage)
Run the script in EMS
Open Hotmail

The NoteProperty of PSObject accepts a static value.
Enter the format string(s) on the left side of the operator and the object(s) to be formatted on the right side.
"{I,A:FS} {I,A:FS} {I,A:FS}.." -f "string0", "string1", "string2"...
Key:
I = Index of the item to display, 0=string0, 1=string1 etc.
A = Alignment. A positive number = right align n
characters.
A negative number = left align n characters.
so {2,-25} will allocate 25 characters of horizontal space on the line, even
if the string is only 1 character long.
FS value depends on the type of string0,string1,etc
:c Currency format
:e Scientific (exp) notation
:f Fixed point
f5
= fix to 5 places
:g Most compact format, fixed or sci
g5 = 5 significant
digits
:n include culture separator for thousands
1,000.00
:p percentage
:r reversible precision
:x Hex format
Convert a DateTime to a 2 digit Hour/minute/second "{0:hh:0:mm}"
:hh
:mm
:ss
:ddd Convert a DateTime to Day of the Week
Example:
"{0,20:n1}{1,20:n2}{2,12:n3}"-f (17622.6304,14267.1872,845.4144)
17,622.6
14,267.19 845.414
"{0,20:n1}"-f
(17622.6304,14267.1872,845.4144)
17,622.6
"{0:n2}"-f (176226304/1024KB)
168.06

As shown above, for only one string, the format doesnot include the
positional index.