谁上次修改邮箱Exchange 2010(PowerShell)

AskJarv

我正在寻找所有用户邮箱的列表,并显示谁最后修改了该邮箱-目前,我的基本组件为:

$mailbox | % {Search-AdminAuditLog | Where-Object {ObjectModified -eq $_.identity} | Select-Object -First 1 -Property CmdLetName,Caller,RunDate | Out-file "C:\tmp\$_.mailbox"}

其中$ mailbox包含我要处理的邮箱列表:

$mailbox = GET-MAILBOXSERVER | Get-Mailbox -ResultSize Unlimited

如果我单独运行:

$mailbox  | select Identity

我得到了预期的身份,例如

testdomain.local /用户/管理员

以我希望能够传递给搜索的格式:

Search-AdminAuditLog | Where-Object {$_.ObjectModified -eq "testdomain.local/Users/Administrator"} | Select-Object -First 1 -Property CmdLetName,Caller,RunDate

(独立运行即可)。所以我不清楚为什么,当我从$ mailbox中输入内容时,根本没有得到任何结果吗?

缺口

运行您的代码对我有用

Search-AdminAuditLog | Where-Object {$_.ObjectModified -eq "My object path"} | Select-Object -First 1 -Property CmdLetName,Caller,RunDate

您编写的第一行包含:

{$_.ObjectModified -eq $_.identity}

我认为这不会奏效,因为您正尝试从2个不同的管道对象中引用属性。我很确定$ _代表最后一个管道字符左侧的cmdlet输出。除非您要搜索已修改自己的用户。

在这里运行一些测试,我注意到我的审核日志中缺少一些数据。似乎只回去一周左右。

进一步的阅读显示,仅调用Search-AdminAuditLog将返回最后1000个日志条目。您可能需要增加这个Search-AdminAuditLog -ResultSize 9000

另外,您正在使用的代码正在搜索已修改管理员帐户邮箱的用户。您确定不是要搜索管理员已修改的电子邮件帐户吗?因为那将是:

Search-AdminAuditLog -ResultSize 9000 | Where-Object {$_.Caller -eq "testdomain.local/Users/Administrator"} | Select-Object -Property CmdLetName,ObjectModified,RunDate

添加搜索参数以Search-AdminAuditLog提高性能,例如,如果您要查找特定操作:

Search-AdminAuditLog -Cmdlets Add-MailboxPermission

或开始和结束日期

Search-AdminAuditLog -StartDate "4/6/2015 12:00:00 AM" -EndDate 4/6/2015 11:20:00 AM"

编辑您可以尝试不通过管道运行所有内容吗?

$Adminlog = Search-AdminAuditLog
Foreach ($Mailbox in $Mailboxes)
{ $Adminlog | Where-Object {$_.ObjectModified -eq $Mailbox.Identity}}

我认为这可能是管道的限制,您基本上是在尝试比较2个列表

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Exchange 2010 PowerShell:无法绑定参数

使用C#和Powershell,如何为在Exchange Server 2010上创建的邮箱设置“管理器”

Powershell复制上次修改的文件

Powershell Exchange模块远程邮箱问题

在Exchange 2010中进行远程处理时使用Powershell时出错

在 powershell 中删除或修改选定数量的用户或邮箱

Exchange 2010-打开其他用户邮箱权限问题

Powershell - 获取上次修改文件的父目录名称

更正 PowerShell 脚本以显示禁用的 AD 用户帐户(非共享邮箱)与 Exchange 邮箱及其大小(以 MB 为单位)?

如何压缩 Outlook 2010 邮箱?

Exchange Powershell尝试收集已发送为已授予权限的所有邮箱

PowerShell列出具有“完全访问”委托权限超过1人的Exchange邮箱

Powershell将19的邮箱大小增加200MB Exchange 2007

使用任务计划程序和Powershell自动执行Exchange邮箱导出

可以通过OWA查看其他Exchange 2010用户的邮箱项目,但不能通过Outlook查看

安装Microsoft 2010的Powershell脚本

Powershell复制邮箱权限

Powershell脚本:从Excel文件中读取联系人,并在Microsoft Exchange上为其创建邮箱

所有邮箱中的Outlook 2010搜索

错误,Office 2010帐户中的临时邮箱

如何启用UMMailbox Exchange 2010

使用Powershell排队邮箱导出

其他邮箱显示Outlook 2010中主要邮箱的内容-Office 365邮箱

如何检查文件是否上次修改,并且仅使用 Add-PnPFile 将修改后的文件从本地上传到 SharePoint 使用 PowerShell

在Outlook 2010内部的宏中触发共享邮箱的子例程

OpenVPN / PPTP vpn 与 Exchange 2010 结合使用

Exchange 2010 / Outlook 2016 与 PHP 的集成

Office 365 Exchange邮箱属性

Exchange邮箱DirectoryEntry属性列表