Powershell获取交换邮箱用户配额

  
 <代码>客户场景:为很多用户单独配置过邮箱配额,想重新规划,现需要导致所有用户实际容量清单
  实现方式:直接上代码代码 
  

#加载交换命令
Add-PSSnapin微软。前任*
#主命令
(数组)输出美元=?“|选择名称、ProhibitSendQuota DBName
$ DBs=Get-MailboxDatabase |选择名字,ProhibitSendQuota
foreach (DB在DBs)美元{
[string]美元DBQuota=$ DB。ProhibitSendQuota
[string]美元DBName=$ DB。名称
Write-Host“数据库DBName配额是DBQuota"美元;
$邮件=Get-Mailbox - Database美元DBName |选择名字,ProhibitSendQuota
foreach(邮件邮件美元){
if($邮件。ProhibitSendQuota eq“Unlimited") {
[string] MailQuota=美元DBQuota
}
其他{
[string] MailQuota=美元Mail.ProhibitSendQuota
}

  

$ Temp=啊皘选择名称、ProhibitSendQuota DBName
临时美元。名字=$ Mail.Name
临时美元。ProhibitSendQuota=$ MailQuota
临时美元。DBName
# $=$ DBName临时

  

输出+=Temp美元

  

}
}
输出美元| Export-Csv MailQuota。csv -NoTypeInformation编码UTF8
输出结果:
 Powershell获取交换邮箱用户配额”> <br/>与预期对比:<br/> <img src= Write-Host美元输出文件
(数组)输出美元=?“|选择名称、DBName UserQuota、DBQuota ProhibitSendQuota, TotalItemSize,使用,LastLogonTime
#选择名字,DBName, UserQuota, DBQuota, ProhibitSendQuota, TotalItemSize,使用
Add-PSSnapin Microsoft.ex
如果美元(服务器){
DBs=Get-MailboxDatabase -服务器服务器|选择美元的名字,ProhibitSendQuota
}其他{
$ DBs=Get-MailboxDatabase |选择名字,ProhibitSendQuota
}
foreach (DB在DBs)美元{
[string]美元DBQuota=$ DB。ProhibitSendQuota
[string]美元DBName=$ DB。名称
Write-Host“数据库DBName配额是DBQuota"美元;
$邮件=Get-Mailbox - Database DBName -ResultSize无限|选择SamaccountName美元,ProhibitSendQuota
foreach(邮件邮件美元){
if($邮件。ProhibitSendQuota eq“Unlimited") {
[string] MailQuota=美元DBQuota
}
其他{
[string] MailQuota=美元邮件。ProhibitSendQuota
}
$ TotalItemSize=Get-MailboxStatistics身份美元邮件。SamaccountName |选择TotalItemSize LastLogonTime
TempA=美元邮件。ProhibitSendQuota
Temp=懊涝?“|选择名称、DBName UserQuota、DBQuota ProhibitSendQuota, TotalItemSize,使用,LastLogonTime
临时美元。名字=$ Mail.SamaccountName
临时美元。DBName=$ DBName
if ($ TempA eq“Unlimited") {
临时美元。UserQuota=$ TempA
} {
# $ Temp。UserQuota=$ TempA.replace (“;“““).split (“(”) [0]
临时美元。UserQuota=$(美元TempA取代““).Split (“(”) [0]
}
临时美元。DBquota=$(美元DBquota取代““).Split (“(”) [0]
临时美元。ProhibitSendQuota=$(美元MailQuota取代““).Split (“(”) [0]
临时美元。TotalItemSize=(TotalItemSize美元。TotalItemSize取代““).Split (“(”) [0]
临时美元。使用=({0:n2} - f(临时美元。TotalItemSize/临时美元。ProhibitSendQuota
100)) +‘%’
临时美元。LastLogonTime=$ TotalItemSize.LastLogonTime
# $临时李      

输出+=Temp美元

  

}
}
#输出美元[1 . . output.count美元]
输出(1 . .美元输出。美元计算)| Export-Csv外部档案-NoTypeInformation编码UTF8 force

     <李>输出结果
 Powershell获取交换邮箱用户配额   <李>脚本执扫方式

Powershell获取交换邮箱用户配额