2015-04-21 42 views
2

虽然我能够检索默认联系人属性,但我正在寻找像计算机网络名称或FTP站点那样的值。使用EWS和PowerShell从联系人中检索扩展属性

我知道有些事情要添加到我的代码中,例如我想要检索的每个extenededproperties。我发现了一些示例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) 

如果曾经有人有线索......

提前感谢!

回答

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

编辑我的代码上面让一个工作代码在这里为下一个读者。