2015-04-21 40 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); 

編輯我的代碼上面讓一個工作代碼在這裏爲下一個讀者。