PowerShell查询Exchange发送为权限时如何去除输出的域名前缀
PowerShell Exchange Shell 去除权限输出域名前缀解决方案
实现原理
AD权限返回的User字段为域名\用户名的拼接格式,通过字符串分割方法截取\后的内容即可得到纯用户名/组名。
可用方案
方案1:输出自定义字段名(UserName)
直接修改原命令中Select部分为计算属性,完整可运行命令如下:
Get-Mailbox user1 | Get-ADPermission | ? {($_.ExtendedRights -like "*send-as*") -and -not ($_.User -like "NT AUTHORITY\SELF")} | Select @{Name='UserName';Expression={$_.User.Split('\')[1]}}
方案2:保留原有字段名(User)
如果需要输出的字段名仍为User,调整计算属性的Name参数即可:
Get-Mailbox user1 | Get-ADPermission | ? {($_.ExtendedRights -like "*send-as*") -and -not ($_.User -like "NT AUTHORITY\SELF")} | Select @{Name='User';Expression={$_.User.Split('\')[1]}}
兼容优化(可选)
如果存在部分账户没有域名前缀的特殊场景,可增加判断逻辑避免索引报错:
Get-Mailbox user1 | Get-ADPermission | ? {($_.ExtendedRights -like "*send-as*") -and -not ($_.User -like "NT AUTHORITY\SELF")} | Select @{Name='User';Expression={if($_.User.Contains('\')){$_.User.Split('\')[1]}else{$_.User}}}
内容的提问来源于stack exchange,提问作者MWH
相关产品推荐
相关产品推荐

