Office激活的和未激活的邮箱报表

为什么PowerShell通常不是创建Exchange 数据报表的最佳工具 1


在我写了一些基于Office365的报表软件的公司报道后,收到了许多用户反馈。其中大部分人会反问,你为什么不用PowerShell来创建简单的报表,而且免费。这个问题问得好,即使我能做,我也不会沿着这条路走下去,除非你想花费大量的精力。

就在一月份我讨论了Office 365的报表话题后,许多朋友联系我,并且追问为什么我们需要花钱去买那些昂贵的软件包来生成Office 365的数据报表。

其实同样的问题在本地部署的Exchange环境中也存在,这也是一些Office365报告产品之所以存在的原因了,毕竟报表向来不是微软的强项。当然Office 365已经内置了一些报表,但是并不惊艳。

你随时在闲暇时可以体验一下Office365报表工产品。也可以直接进入我们下面的问题,为什么不使用PowerShell来作为产生报表的工具。尽管这些年来已经有很多使用PowerShell生成邮箱或者其它格式化对象报表的例子可以从互联网上下载。我特意收藏了两个,包括Steve Goodman的Exchange环境报表和 Paul Cunningham的健康报表。这两个都是值得推荐的。

PowerShell无疑具备生成好看有价值的报表的能力,但是主要的问题时现有的PowerShell缺少经过优化的报表工具。

比如Office 365中有一个“激活的和未激活的收件箱”报表可以显示有多少用户从来就没有登录过自己的收件箱。这个信息对Office 365管理员很重要,因为用户没有使用,但是你还得每一个月帮他们为这些收件箱支付月供。

Office激活的和未激活的邮箱报表

Office激活的和未激活的邮箱报表

一些PowerShell专家会说这些信息我可以非常方便地通过运行下面那样的PowerShell命令来识别最近30天没有登录过的邮箱。这些邮箱通常没有显示最后访问时间,因为它们从没有被访问过。

PS C:> Get-Mailbox –RecipientType 'UserMailbox' | 
Get-MailboxStatistics | 
Sort-Object LastLogonTime |
Where {$_.LastLogonTime –lt ([System.DateTime]::Now).AddDays(-30) } |
Format-Table DisplayName, LastLogonTime

DisplayName                                                 LastLogonTime                                              
-----------                                                 -------------                                              
Ed Banti                                                                                                               
Andy Ruth                                                                                                              
David Keane (Inactive - under in-place hold)                22/10/2014 16:05:45                                        
Thomas Best                                                 29/11/2014 13:30:09                                        
Imran Khan                                                  28/12/2014 17:10:07                                        
Steve Smith

这些数据已经很有价值,但是在PowerShell中还会面临一些问题:

  • 比如邮箱用户成百上千以后,可能运行起来有点慢。
  • 查询数据信手拈来,但是进行格式化打印可能有点力不存心。当然PowerShell可以将数据导出成csv文件,然后你在Excel中大显身手,进行后续处理。但是前提是你的Excel报表功底也不赖。(反正我不太行)
  • 没有提供分析某一个时间段的数据的能力,能供使用的cmdlet没有控制我们所需数据的粒度级别。

其实上面提到的例子基本上可以算是比较经典的用PowerShell做的非常优秀的报表示例子了。但是它们是纯手工做的,可能需要花费好几个小时去产生输出。尽管它们免费,没有人能保证你永远能从互联网上下载到适用于你自己的报表脚本。即使你找到一个,你仍然需要验证它到底在你自己的环境中能否正常工作,还有通常从互联网上下载的脚本你在运行前,有没有仔细阅读它们的安全警告?

最后,你如果真的想创建自己的PowerShell报表,你还得维护它,当微软引入新的PowerShell命令,新功能,或者向Office365新的PowerShell命令。当然有的人喜欢挑战自己编写和维护自己的报表,还有一些人喜欢非常方便地高效地使用一些报表工具。

荔非苔注:通篇读下去,感觉是给报表工具写的软文。

原文作者:Tony Redmond
原文链接Why PowerShell is often not the best tool for reporting Exchange data

本文链接: https://www.pstips.net/why-powershell-is-often-not-the-best-tool-for-reporting-exchange-data.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

回复 migou 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

一条评论 “为什么PowerShell通常不是创建Exchange 数据报表的最佳工具