如何摆脱@{Alias=}?

How to get rid of @{Alias=}?

我遇到了一个问题,结果如下,我不知道要寻求什么帮助来自己解决...

[PS] C:\Windows\system32>$Usernames | ForEach-Object {Add-MailboxPermission -Identity "XXXXXX" -User "DOMAIN$_" -Accessright Fullaccess -InheritanceType all -whatif}

User or group "DOMAIN\@{Alias=XXXXXXX}" wasn't found. Please make sure you've typed it correctly.
    + CategoryInfo          : InvalidData: (:) [Add-MailboxPermission], ManagementObjectNotFoundException
    + FullyQualifiedErrorId : 2BB02DBA,Microsoft.Exchange.Management.RecipientTasks.AddMailboxPermission
    + PSComputerName        : XXXXXXXXXX

如何删除 @{Alias=}?我想要一个简单的用户名...

[PS] C:\Windows\system32>$Usernames | Get-Member


   TypeName: Selected.Microsoft.Exchange.Data.Directory.Management.ReducedRecipient

Name        MemberType   Definition
----        ----------   ----------
Equals      Method       bool Equals(System.Object obj)
GetHashCode Method       int GetHashCode()
GetType     Method       type GetType()
ToString    Method       string ToString()
Alias       NoteProperty System.String Alias=XXXXXX

显然 $Usernames 包含具有 属性 Alias 的对象。在将项目传递到循环之前展开 属性:

$Usernames | Select-Object -Expand Alias | ForEach-Object { ... }

或使用子表达式获取用户名字符串中属性的值:

$Usernames | ForEach-Object {
  Add-MailboxPermission -Identity "XXXXXX" -User "DOMAIN$($_.Alias)" ...
}