我正在尝试将对象$mailBox_RP
的属性添加到对象$mailBox_MBS = (Get-MailboxStatistics -Identity $identity) | select *
$mailBox_RP = (Get-Recipient -Identity $identity) | select *
。
我使用以下代码定义了对象:
Foreach($property in $mailbox_MBS)
{
$mailBox_RP | Add-Member -MemberType NoteProperty -Name $property.Name -Value $property.Value
}
然后,我使用以下ForEach循环将属性从mailBox_MBS添加到mailBox_RP:
UIActivityViewController
答案 0 :(得分:2)
您无法以尝试的方式进行操作。您的foreach
将只看到一个对象,并且您仅捕获名称和值属性。您要做的实际上是迭代对象的属性。请记住,这样做可能会降低对象的复杂性(对字符串的隐式对话)。尤其是对于Exchange,这可能是个问题。
您可以创建一个自定义PSObject来仅包含所需的内容,或者需要使用Get-Member
进行研究以获取实际的对象信息。可能看起来像这样。
$object | Get-Member -MemberType Property | %{ $object.$($_.Name); }
答案 1 :(得分:1)
让我知道这是否对您有用:
$mailbox_MBS = Get-MailboxStatistics -Identity $identity
$mailbox_RP = Get-Recipient -Identity $identity
Get-Member -InputObject $mailbox_MBS -MemberType "*Property" | foreach {
Add-Member -InputObject $mailbox_RP -Type "NoteProperty" -Name $_.Name -Value $mailbox_MBS.($_.Name)
}
答案 2 :(得分:0)
在塞思(Seth)的评论和我最好的朋友Google的帮助下,我设法将上面的代码转换为工作功能。
Function mailBoxInfo ($identity)
{
$ExchangeDirectoryObject = New-Object PSObject
$mailbox_MBS = (Get-MailboxStatistics -Identity $identity) | select *
$mailbox_RP = (Get-Recipient -Identity $identity) | select *
$mailBox_MBS.psobject.Properties | % {
$ExchangeDirectoryObject | Add-Member -MemberType $_.MemberType -Name $_.Name -Value $_.Value
}
$mailBox_RP.psobject.Properties | % {
$ExchangeDirectoryObject | Add-Member -MemberType $_.MemberType -Name $_.Name -Value $_.Value
}
return $ExchangeDirectoryObject
}