powershell - 如果语句由于 USER 标头而不起作用
问题描述
我想知道是否已将“MyDomain\My-AD-Group”添加到邮箱(Exchange 2010)的权限中。
$var = Get-MailboxPermission -identity "My-AD-Group" | select-object user
if($var[1] -like "MyDomain\My-AD-Group"){
write-host "$var[1] has been added"
}else{
$false
}
我认为它不起作用,因为显示了某种“列标题” $var[1]
:
User
----
MyDomain\My-AD-Group
我该如何摆脱它,所以我的 IF \ ELSE 会起作用?
解决方案
Get-Mailboxpermission
返回一个表示该邮箱权限的对象。您可以使用 egFormat-List
或Get-Member
来了解它具有哪些进一步的属性。
由于它是一个对象,因此您可以使用属性名称访问其属性。在您的示例中,它将是$var[1].User
. 如果我没记错的话,用户本身就是一个对象。因此,您可能必须访问另一个属性来进行比较。此外,您目前只检查权限列表的第一个条目。
您可能想要的更多是这些方面:
if( ($var | Where-Object {$_.User.Displayname -eq 'MyDomain\My-AD-Group'}) -ne $null){
Write-Output "Permissions contain the group"
}
推荐阅读
- c# - 使用 ASP.NET 中的实例值自定义命名 XML 标记
- python-3.x - 在 aws lambda 中完成工作之前对请求的 200 ok 响应
- javascript - 在 dom 更改元素的顺序后,聚合物 2 铁选择器选定的元素不会更新
- javascript - TypeError [ERR_INVALID_ARG_TYPE]:“文件”参数必须是字符串类型。接收到的类型对象
- algorithm - 编译器能否优化变量以使用少于一个字节的空间?
- python - 将函数链接到python中的按钮 - 使用参数关闭窗口
- java - JSReport API 使用 Java 从响应中保存 PDF
- go - 当参数与工作示例相同时,为什么 Elm 不会为 JSON 数据示例编译这个 HTTP 请求?
- java - 带有 div.span 的复选框未单击
- google-apps-script - 平均每次执行 9 秒的脚本,每次执行交付 145 秒