【问题标题】:Need to Remove the selected Access Rights需要删除选定的访问权限
【发布时间】:2019-04-20 00:04:20
【问题描述】:

我想通过从结果中排除一些访问权限来获取邮箱权限。

我已尝试使用以下命令排除访问权限。

PS C:\Users\XXXX> get-mailboxpermission -Identity 'CCCC.XXXX.com/Users/test_50' |select AccessRights |其中 { _.AccessRights -ne "FullAccess"}

这是我得到的实际结果:

PS C:\Users\XXXX> get-mailboxpermission -Identity 'CCCC.XXXX.com/Users/test_50' |select AccessRights

AccessRights
------------
{FullAccess, ReadPermission}
{FullAccess}
{FullAccess}
{FullAccess}
{FullAccess}
{FullAccess}
{ReadPermission}
{FullAccess, DeleteItem, ReadPermission, ChangePermission, ChangeOwner}
{FullAccess, DeleteItem, ReadPermission, ChangePermission, ChangeOwner}
{FullAccess, DeleteItem, ReadPermission, ChangePermission, ChangeOwner}
{FullAccess, DeleteItem, ReadPermission, ChangePermission, ChangeOwner}
{ReadPermission}
{ReadPermission}
{FullAccess, ReadPermission}
{FullAccess, DeleteItem, ReadPermission, ChangePermission, ChangeOwner}
{ReadPermission}

我会尝试在以下命令中排除“FullAccess”:

PS C:\Users\XXXX> get-mailboxpermission -Identity 'CCCC.XXXX.com/Users/test_50' |select AccessRights | where { $_.AccessRights -ne "FullAcce
ss"}

AccessRights
------------
{FullAccess, ReadPermission}
{ReadPermission}
{FullAccess, DeleteItem, ReadPermission, ChangePermission, ChangeOwner}
{FullAccess, DeleteItem, ReadPermission, ChangePermission, ChangeOwner}
{FullAccess, DeleteItem, ReadPermission, ChangePermission, ChangeOwner}
{FullAccess, DeleteItem, ReadPermission, ChangePermission, ChangeOwner}
{ReadPermission}
{ReadPermission}
{FullAccess, ReadPermission}
{FullAccess, DeleteItem, ReadPermission, ChangePermission, ChangeOwner}
{ReadPermission}

预期输出:

AccessRights
------------
{ReadPermission}
{ReadPermission}
{DeleteItem, ReadPermission, ChangePermission, ChangeOwner}
{DeleteItem, ReadPermission, ChangePermission, ChangeOwner}
{DeleteItem, ReadPermission, ChangePermission, ChangeOwner}
{DeleteItem, ReadPermission, ChangePermission, ChangeOwner}
{ReadPermission}
{ReadPermission}
{ReadPermission}
{DeleteItem, ReadPermission, ChangePermission, ChangeOwner}
{ReadPermission}

【问题讨论】:

  • 试试-notcontains而不是-ne

标签: powershell exchange-server


【解决方案1】:

由于您只是想过滤您的输出,-replace 运算符和 .where() 方法的组合就足够了。

(get-mailboxpermission -Identity 'CCCC.XXXX.com/Users/test_50' |
Select-Object @{n="AccessRights";e={$_.AccessRights -replace "FullAccess(?:, )?"}}).where{$_.AccessRights -ne ""}

这里的-replace 运算符会将字符串FullAccess,FullAccess 替换为空字符串。 .where() 方法删除只包含空字符串的行。由于替换使用正则表达式,(?:, )? 被评估为非捕获组 (?:()) 匹配逗号后跟空格零或一次 (?)。

Select-Object 命令在操作管道对象时使用哈希表来保留 AccessRights 标头名称。

【讨论】:

  • 感谢它的工作正常!!。你能帮我删除ReadPermission吗?现在我想删除 Multiple AccessRights FullAccessReadPermission
  • "FullAccess(?:, )?" 需要更改为 "(FullAccess|ReadPermission)(?:, )?"
猜你喜欢
  • 2017-03-23
  • 1970-01-01
  • 2019-08-23
  • 1970-01-01
  • 2019-06-24
  • 1970-01-01
  • 1970-01-01
  • 2021-11-28
  • 2017-11-16
相关资源
最近更新 更多