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

3

虽然我可以获取默认联系人属性,但我想要获取计算机网络名称或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) 

如果有人有线索的话......提前感谢!
1个回答

1
把我的回答加上是因为把我的问题放在这里帮助我思考。:)
    #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);

我已经编辑了上面的代码,以便为下一个读者提供一个可工作的代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接