Exchange server 用“标识所有用户”;“完全访问”;及;“代为发送”;访问禁用用户的每个共享邮箱

Exchange server 用“标识所有用户”;“完全访问”;及;“代为发送”;访问禁用用户的每个共享邮箱,exchange-server,Exchange Server,当用户被解雇时,我们在公司中有脚本,在几个月内,我们将用户禁用,并且不删除它,但是我需要清理共享邮箱,并检查这些未绑定的用户中哪些仍然可以访问这些邮箱 Get-Mailbox-RecipientTypeDetails SharedMailbox-ResultSize:Unlimited | Get-MailboxPermission |选择对象标识、用户、访问权限|其中对象{($|.User-like'@')}|导出Csv C:\Temp\sharedfolders.Csv-NoTypeInfo

当用户被解雇时,我们在公司中有脚本,在几个月内,我们将用户禁用,并且不删除它,但是我需要清理共享邮箱,并检查这些未绑定的用户中哪些仍然可以访问这些邮箱

Get-Mailbox-RecipientTypeDetails SharedMailbox-ResultSize:Unlimited | Get-MailboxPermission |选择对象标识、用户、访问权限|其中对象{($|.User-like'@')}|导出Csv C:\Temp\sharedfolders.Csv-NoTypeInformation


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

我想这就是您要找的

$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命令。

Hi Fabiano,请尝试此Get-Mailbox-RecipientTypeDetails SharedMailbox-ResultSize:5 | Get-MailboxPermission |其中{($.IsInhered-eq$False)-和-not($.User-like“NT AUTHORITY\SELF”)-和($.User-like“s-”)}选择Identity,User,访问权