小风儿 发表于 2018-9-2 08:54:49

Powershell管理系列(三十)PowerShell操作之统计邮箱的用户信息

Add-PSSnapin microsoft.exchange*  
$user=Get-User -ResultSize unlimited -RecipientTypeDetails UserMailbox
  
$userinfo=@()
  
foreach($i in $user)
  
{
  
$mbxstatistics=Get-Mailbox $i.identity|Get-MailboxStatistics
  
$mbxsarctatistics=if((Get-Mailbox $i.identity).ArchiveDatabase -ne $null) `
  
{get-mailbox $i.identity -Archive|Get-MailboxStatistics -Archive}
  
#获取所有启用了存档邮箱的用户信息,如前面不加if判断,会出现运行时提示找不到存档邮箱的报错。
  
if((Get-Mailbox $i.identity).UseDatabaseQuotaDefaults) `
  
{
  
$mbxtotal=Get-Mailbox $i.identity|Select-Object @{n="显示名";e={$_.displayname}},`
  
@{n="登录名";e={$_.samaccountname}}, `
  
@{n="邮箱地址";e={$_.PrimarySmtpAddress}}, `
  
@{n="公司名";e={$i.company}}, `
  
@{n="部门";e={$i.Department}}, `
  
@{n="邮件数量";e={$mbxstatistics.ItemCount}},`
  
@{n="已用空间(MB)";e={$mbxstatistics.TotalItemSize.value.tomb()}},`
  
@{n="剩余空间(MB)";e={$mbxstatistics.DatabaseProhibitSendQuota.value.tomb()-$mbxstatistics.TotalItemSize.value.tomb()}},`
  
@{n="邮箱配额(MB)";e={$mbxstatistics.DatabaseProhibitSendQuota.value.tomb()}},`
  
@{n="存档邮箱数量";e={$mbxsarctatistics.ItemCount}},`
  
@{n="存档邮箱大小(MB)";e={$mbxsarctatistics.TotalItemSize.value.tomb()}},`
  
@{n="挂载的服务器名";e={$mbxstatistics.ServerName}},`
  
@{n="最后一次登录时间";e={$mbxstatistics.LastLogonTime}},`
  
@{n="数据库名";e={$mbxstatistics.DatabaseName}},`
  
@{n="手机号码";e={(Get-User $i.Identity).MobilePhone}},`
  
@{n="办公室";e={(Get-User $i.Identity).office}},`
  
@{n="工作电话";e={(Get-User $i.Identity).Phone}},`
  
@{n="职务";e={(Get-User $i.Identity).title}}
  
if("{0:n0}" -F $mbxtotal."剩余空间(MB)"/$mbxtotal."邮箱配额(MB)" -ge 0.1 -and "{0:n0}" -F $mbxtotal."剩余空间(MB)"/$mbxtotal."邮箱配额(MB)" -lt 0.2) `
  
{
  
   $UserName = "test@yuntcloud.com"      #定义发送账户名称
  
   $Password = ConvertTo-SecureString "Aa12345678" -AsPlainText –Force
  
   $cred = New-Object System.Management.Automation.PSCredential($UserName,$Password)
  
   Send-MailMessage -From "test@yuntcloud.com" -to (Get-Mailbox $i.identity).PrimarySmtpAddress -Cc "mis@yuntcloud.com" -Subject ($i.DisplayName+"的邮箱剩余空间不足20%,请清理您的邮箱,否则将可能无法发送邮件") -Credential $cred `
  
   -SmtpServer "mail.yuntcloud.com" -BodyAsHtml ($i.DisplayName+"的邮箱剩余空间不足20%,请清理您的邮箱,否则将可能无法发送邮件") -Encoding (::UTF8)
  
}
  
elseif("{0:n0}" -F $mbxtotal."剩余空间(MB)"/$mbxtotal."邮箱配额(MB)" -lt 0.1) `
  
{
  
   $UserName = "test@yuntcloud.com"      #定义发送账户名称
  
   $Password = ConvertTo-SecureString "Aa12345678" -AsPlainText –Force
  
   $cred = New-Object System.Management.Automation.PSCredential($UserName,$Password)
  
   Send-MailMessage -From "test@yuntcloud.com" -to (Get-Mailbox $i.identity).PrimarySmtpAddress -Cc "mis@yuntcloud.com" -Subject ($i.DisplayName+"的邮箱剩余空间不足10%,请清理您的邮箱,否则将可能无法收发邮件") -Credential $cred `
  
   -SmtpServer "mail.yuntcloud.com" -BodyAsHtml ($i.DisplayName+"的邮箱剩余空间不足10%,请清理您的邮箱,否则将可能无法收发邮件") -Encoding (::UTF8)
  
}
  
}
  
else
  
{
  
$mbxtotal=Get-Mailbox $i.identity|Select-Object @{n="显示名";e={$_.displayname}},`
  
@{n="登录名";e={$_.samaccountname}}, `
  
@{n="邮箱地址";e={$_.PrimarySmtpAddress}}, `
  
@{n="公司名";e={$i.company}}, `
  
@{n="部门";e={$i.Department}}, `
  
@{n="邮件数量";e={$mbxstatistics.ItemCount}},`
  
@{n="已用空间(MB)";e={$mbxstatistics.TotalItemSize.value.tomb()}},`
  
@{n="剩余空间(MB)";e={(get-mailbox $i.identity).ProhibitSendQuota.value.tomb()-$mbxstatistics.TotalItemSize.value.tomb()}},`
  
@{n="邮箱配额(MB)";e={(get-mailbox $i.identity).ProhibitSendQuota.value.tomb()}},`
  
@{n="存档邮箱数量";e={$mbxsarctatistics.ItemCount}},`
  
@{n="存档邮箱大小(MB)";e={$mbxsarctatistics.TotalItemSize.value.tomb()}},`
  
@{n="挂载的服务器名";e={$mbxstatistics.ServerName}},`
  
@{n="最后一次登录时间";e={$mbxstatistics.LastLogonTime}},`
  
@{n="数据库名";e={$mbxstatistics.DatabaseName}},`
  
@{n="手机号码";e={(Get-User $i.Identity).MobilePhone}},`
  
@{n="办公室";e={(Get-User $i.Identity).office}},`
  
@{n="工作电话";e={(Get-User $i.Identity).Phone}},`
  
@{n="职务";e={(Get-User $i.Identity).title}}
  
if("{0:n0}" -F $mbxtotal."剩余空间(MB)"/$mbxtotal."邮箱配额(MB)" -ge 0.1 -and "{0:n0}" -F $mbxtotal."剩余空间(MB)"/$mbxtotal."邮箱配额(MB)" -lt 0.2) `
  
{
  
   $UserName = "test@yuntcloud.com"      #定义发送账户名称
  
   $Password = ConvertTo-SecureString "Aa12345678" -AsPlainText –Force
  
   $cred = New-Object System.Management.Automation.PSCredential($UserName,$Password)
  
   Send-MailMessage -From "test@yuntcloud.com" -to (Get-Mailbox $i.identity).PrimarySmtpAddress -Cc "mis@yuntcloud.com" -Subject ($i.DisplayName+"的邮箱剩余空间不足20%,请清理您的邮箱,否则将可能无法发送邮件") -Credential $cred `
  
   -SmtpServer "mail.yuntcloud.com" -BodyAsHtml ($i.DisplayName+"的邮箱剩余空间不足20%,请清理您的邮箱,否则将可能无法发送邮件") -Encoding (::UTF8)
  
}
  
elseif("{0:n0}" -F $mbxtotal."剩余空间(MB)"/$mbxtotal."邮箱配额(MB)" -lt 0.1) `
  
{
  
   $UserName = "test@yuntcloud.com"      #定义发送账户名称
  
   $Password = ConvertTo-SecureString "Aa12345678" -AsPlainText –Force
  
   $cred = New-Object System.Management.Automation.PSCredential($UserName,$Password)
  
   Send-MailMessage -From "test@yuntcloud.com" -to (Get-Mailbox $i.identity).PrimarySmtpAddress -Cc "mis@yuntcloud.com" -Subject ($i.DisplayName+"的邮箱剩余空间不足10%,请清理您的邮箱,否则将可能无法收发邮件") -Credential $cred `
  
   -SmtpServer "mail.yuntcloud.com" -BodyAsHtml ($i.DisplayName+"的邮箱剩余空间不足10%,请清理您的邮箱,否则将可能无法收发邮件") -Encoding (::UTF8)
  
}
  
}
  
$userinfo+=$mbxtotal #把每次运行获取到的用户信息存入到userinfo
  
}
  
$userinfo #把查询到的信息在屏幕显示出来
  
$userinfo|Export-Csv -Path c:\mbxinfo.csv -NoTypeInformation -Encoding utf8 #把用户信息导出到c:\mbxinfo.csv
  
$UserName = "test@yuntcloud.com"      #定义发送账户名称
  
$Password = ConvertTo-SecureString "Aa12345678" -AsPlainText –Force
  
$cred = New-Object System.Management.Automation.PSCredential($UserName,$Password)
  
Send-MailMessage -From "test@yuntcloud.com" -To "mis@yuntcloud.com" -Subject "全员邮箱使用情况汇总" -Credential $cred -SmtpServer "mail.yuntcloud.com" -Attachments "c:\mbxinfo.csv" -Encoding (::UTF8)


页: [1]
查看完整版本: Powershell管理系列(三十)PowerShell操作之统计邮箱的用户信息