使用 EWS 和 PowerShell 从联系人中检索扩展属性

Retrieving extended properties from contacts using EWS and PowerShell

虽然我能够检索默认联系人属性,但我希望检索计算机网络名称或 FTP 站点等值。

我知道有一些东西要添加到我的代码中,比如我想要检索的每个扩展属性。我找到了一些示例 C# 代码,但到目前为止我无法在 PowerShell 中编写它。

这是一段代码,其中默认属性有效但扩展属性无效。

$folderid= new-object Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Contacts,$MailboxName)   
$Contacts = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($service,$folderid)
$ivItemView =  New-Object Microsoft.Exchange.WebServices.Data.ItemView(50000)    
$fiItems = $null    

do{    
    $fiItems = $service.FindItems($Contacts.Id,$ivItemView)    
    $psPropset = new-object Microsoft.Exchange.WebServices.Data.PropertySet([Microsoft.Exchange.WebServices.Data.BasePropertySet]::FirstClassProperties) 

    $psPropset.Add([Microsoft.Exchange.WebServices.Data.ItemSchema]::MimeContent)

    #Properties list  https://msdn.microsoft.com/en-us/library/cc839633.aspx      
    $ComputerNetworkName = new-object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition(0x3A49,[Microsoft.Exchange.WebServices.Data.MapiPropertyType]::String)

    #Add extended properties to properties set
    $psPropset.Add($ComputerNetworkName);
    [Void]$service.LoadPropertiesForItems($fiItems,$psPropset)  

    foreach($Item in $fiItems.Items){

                        $Item.ExtendedProperties | fl *                     
        }

    }    
    $ivItemView.Offset += $fiItems.Items.Count    
}while($fiItems.MoreAvailable -eq $true) 

如果有人知道...

提前致谢!

将我的问题添加到此处有助于我思考。 :)

    #Create extended properties
    $ComputerNetworkName = new-object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition(0x3A49,[Microsoft.Exchange.WebServices.Data.MapiPropertyType]::String)

    #Add extended properties to properties set
    $psPropset.Add($ComputerNetworkName);

编辑了我上面的代码,为下一位读者提供了一个有效的代码。