标识对禁用了该用户的每个共享邮箱具有“完全访问”和“代表发送”访问权限的所有用户

问题描述

用户被解雇时,我们在公司中有脚本,几个月后,我们使该用户保持禁用状态,并且不删除它,但是我需要清理共享邮箱并检查其中哪些未公开的用户仍然可以访问到这些邮箱

Get-MailBox -RecipientTypeDetails SharedMailBox -ResultSize:Unlimited | Get-MailBoxPermission |选择对象标识,用户,访问权限| Where-Object {($ _。user -like' @ ')} | Export-Csv C:\ Temp \ sharedfolders.csv -NoTypeinformation

我已经有了检查所有共享邮箱的脚本,但是我需要创建一种过滤器,其结果将向我显示仅不再活跃于AD的用户,有人可以帮助我吗?

解决方法

我认为这就是您想要的。

$mailboxes = Get-Mailbox -RecipientTypeDetails SharedMailbox -ResultSize unlimited
$mailboxes | Get-MailboxPermission | ForEach-Object{
$perm = $_ 
$ADuser = Get-ADUser $perm.user.securityidentifier.value
$perm | Add-Member -MemberType NoteProperty -Name UserEnabled -Value $ADuser.Enabled
$perm
} | Select-Object Identity,User,AccessRights,UserEnabled | Where-Object { ($_.user -like '@') -and $_.UserEnabled -eq $false } | Export-Csv C:\Temp\sharedfolders.csv -NoTypeInformation

请注意,它确实要求Active Directory模块使用Get-ADuser命令。