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

时间:2015-04-21 15:08:32

标签: powershell exchange-server exchangewebservices

虽然我能够检索默认联系人属性,但我希望检索计算机网络名称或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 个答案:

答案 0 :(得分:0)

在我这里提出问题时添加我的答案有助于我思考。 :)

    #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);

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