【问题标题】:Powershell - Exchange - Remove almost all mailbox rightsPowershell - Exchange - 删除几乎所有邮箱权限
【发布时间】:2015-09-07 22:07:07
【问题描述】:

我最初的问题有点复杂。然而,一些很酷的成员确实设法帮助了我。

我从 Vesper 得到以下代码:

$mailbox=get-mailbox $username
$perms=get-mailboxpermission $mailbox | where {$_.isinherited -eq $false -and $_.user.toString() -ne "NT AUTHORITY\SELF"}
$perms | remove-mailboxpermission $mailbox -confirm:$false

当我在 Exchange PowerShell 中一一运行这些命令时,它运行良好。但是,当我尝试运行包含该 sn-p 的完整脚本时,我收到以下错误:

Cannot process argument transformation on parameter 'Identity'. Cannot convert the "USERNAME" value of type
"Deserialized.Microsoft.Exchange.Data.Directory.Management.Mailbox" to type
"Microsoft.Exchange.Configuration.Tasks.MailboxIdParameter".
    + CategoryInfo          : InvalidData: (:) [Get-MailboxPermission], ParameterBindin...mationException
    + FullyQualifiedErrorId : ParameterArgumentTransformationError,Get-MailboxPermission
    + PSComputerName        : SERVER

知道如何解决这个问题吗?

【问题讨论】:

  • 嗨,约翰,欢迎来到 SO。这是一个相当高的要求。我们不是代码编写服务,也不是资源定位工具。我们在这里为程序员和编程爱好者提供帮助。您自己应该能够将此请求分解为各个部分并自行尝试。当您遇到特定问题时,表明您的工作和您的需求,社区会非常愿意帮助您。
  • 你好,马特。我完全明白。我已经在尝试将一些东西放在一起,但不幸的是我真的不知道从哪里开始。我想我会继续浏览互联网,看看我能走多远。还是谢谢你。
  • Get-Mailbox, Get-ADPermission 将是开始的地方。
  • 我已经知道这些命令了。我卡住的地方是我如何才能通过该特定邮箱的权限,识别需要保留的标准权限并删除所有其他权限。我正在考虑 Get-Mailboxpermission。导出该结果,然后再次导入并遍历权限,仅删除不标准的权限。
  • 那么,您需要从禁用用户的邮箱中删除不特定于 Exchange 系统的“所有用户权限”吗?您应该使用 Exchange 的 cmdlet(Get-MailboxPermission 等)而不是 AD 的 cmdlet。

标签: powershell exchange-server rights


【解决方案1】:

一个快速而肮脏的解决方案可能是这样的:

$mailbox=get-mailbox $user #populate this first
$perms=get-mailboxpermissions $mailbox | where {$_.isinherited -eq $false -and $_.user.toString() -ne "NT AUTHORITY\SELF"}
$perms | remove-mailboxpermission $mailbox -whatif

请注意,此脚本的错误用户可能会破坏您的 Exchange 组织,可能会在单个邮箱上进行测试。该脚本未经测试,但符合 Exchange 和 Powershell 上的手册。

解释:第一行获取有问题的邮箱。第二行首先获取 Exchange 邮箱对象的完整 ACL,然后仅过滤那些未继承 $_.IsInherited -eq $false 的条目,并过滤掉 someone 访问邮箱所需的 NT AUTHORITY\SELF -此条目不被继承。其他所有内容都被视为您希望删除的权限(此类权限直接添加到邮箱中,因此不会被继承)。第三行删除通过对管道调用Remove-MailboxPermission 确定的权限。请注意-whatif 开关,它使 cmdlet 显示将要执行的操作,以供管理员在将脚本投入生产之前查看。

【讨论】:

  • 这个问题很可能很快就结束了,你在这里的努力是不必要的。鼓励这类问题通常不是一种好的形式。或者,如果没有其他内容,请通过链接到帮助添加一些有关如何提出好问题的信息。
  • “已删除”将使我的努力变得不必要,实际上,“关闭”更少,因此如果 OP 能够找到答案并发现它有用。无论如何,我也需要练习,所以通常会为我提出任务,以免我的头脑因滥用而腐烂:)
  • 满足特定条件的已关闭问题会被抓取过程自动删除。仅供参考
  • 谢谢你。我将保存您建议的解决方案,这样它就不会被删除:)。我已经忙着用 if else 语句来解决问题了。也许我现在可以在你的帮助下想出一些办法。再次感谢您。
【解决方案2】:

约翰,

我遇到了完全相同的问题。

我做了一个改变,它把问题推倒了,但没有解决它。


$Mailboxes = Get-Mailbox testmailbox

foreach($Mailbox in $Mailboxes)    {
$FixAutoMappings = Get-MailboxPermission $Mailbox.DisplayName |where {$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false}
    Foreach($FixAutoMapping in $FixAutoMappings){
    $FixAutoMapping | Remove-MailboxPermission $Mailbox.DisplayName
    $FixAutoMapping | Add-MailboxPermission -Identity $_.Identity -User $_.User -AccessRights:FullAccess -AutoMapping $false
    }
}

我只是在 $Mailbox 之后添加了 .DisplayName,这解决了获取权限的问题,但现在我无法删除它们。我被卡住了。

对于所有看到这个并问为什么的人。

在 Exchange 2010 Service Pack 1 (SP1) 中,Exchange 引入了一项功能,该功能 [强制] 允许 Outlook 2007 和 Outlook 2010 客户端自动映射到用户具有完全访问权限的任何邮箱。如果用户被授予对其他用户邮箱或共享邮箱的完全访问权限,Outlook 会自动加载该用户具有完全访问权限的所有邮箱。

https://technet.microsoft.com/en-us/library/hh529943(v=exchg.141).aspx

当您的邮箱有权访问不同林中的邮箱时,这个可爱的小功能会导致问题。

【讨论】:

    【解决方案3】:

    我想通了

     foreach($Mailbox in $Mailboxes){
        $FixAutoMappings = Get-MailboxPermission $Mailbox.DisplayName |where {$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false}
        $FixAutoMappings 
            Foreach($FixAutoMapping in $FixAutoMappings){
            Remove-MailboxPermission -Identity $Mailbox.Identity -User $FixAutoMapping.User -AccessRights $FixAutoMapping.AccessRights -confirm:$false
            Add-MailboxPermission -Identity $Mailbox.Identity -User $FixAutoMapping.User -AccessRights:FullAccess -AutoMapping $false
            }
    }
    

    这似乎对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-30
      • 2018-10-29
      • 1970-01-01
      • 2019-05-07
      • 2010-10-04
      • 2018-12-20
      • 2011-01-01
      • 2015-05-12
      相关资源
      最近更新 更多