【发布时间】:2014-03-13 14:24:46
【问题描述】:
好的,伙计们,我一直在阅读、研究、学习和测试有关 powershell 的内容。在过去的 20 天内,这是我能想到的。
get-mailbox -identity $_.name | select name,userprincipalname,@{label="Size";expression={$size = Get-Mailboxstatistics $_.identity;$size.TotalItemSize.Value.ToMB()}},@{label="Items";expression={$items = Get-Mailboxstatistics $_.name;$item.ItemCount}}
我将其存储在名为 accountizes.ps1 的脚本中。通过输出所有具有大小的电子邮件帐户,它的工作方式完全符合我的预期,但是为了让我只获得超过 2048MB 的邮箱,我必须这样称呼它:
PS C:\accountsizes.ps1 | where size -gt "2048" | select userprincipalname,size
这通过返回以 MB 为单位的电子邮件地址和邮箱大小来工作。但现在我的困境是;我如何枚举结果并提取每个电子邮件地址并向该用户和我自己发送电子邮件,警告他们他们的邮箱太大,他们需要存档。根据我阅读和学习的内容,我必须使用 ForEach 循环和 send-mailmessage cmdlet。我不知道如何使用 ForEach 并将其与脚本合并:这是我对 ForEach 的脑死亡:
PS C:\accountsizes.ps1 | where size -gt "2048" | select userprincipalname,size | ForEach($user in userprincipalname){$_.userprincipalname}
我不知道这样做的正确方法(所以,不要问我为什么这样做:)),我以前没有关于脚本和编码的知识。
这是我的电子邮件部分:
$smtpserver = "domain.com"
$smtpFrom = "me@domain.com"
$smtpTo = "you@domain.com"
$messageSubject = "Warning Email Mailbox Too Large"
$body = "blah blah blah blah"
send-mailmessage -from $smtpFrom -to $smtpTo -subject $messageSubject -body $body
提前感谢您的有用建议。
【问题讨论】:
标签: email powershell exchange-server-2010