EWS 删除联系人的电话号码条目
EWS Delete PhoneNumber Entry on Contact
我尝试在使用 ExchangeWebService 和 powershell 时删除联系人中的 phone 号码条目。
我可以用号码创建新的联系人等等。我什至可以更改这些数字。但我可以设置为 $null
或 ""
.
它总是给我 Exception calling "Update" with "1" argument(s): "An object within a change description must contain one and only one property to modify."
我知道我不允许将其设置为“”或空值。但是必须有一种方法可以删除 phone 号码条目。
所以可能有人可以帮我解决这个问题。
到目前为止,我检查 phone 号码是否有变化,并且只在有变化的地方进行更新。
$enumBusinessPhoneValue = [Microsoft.Exchange.WebServices.Data.PhoneNumberKey]::BusinessPhone
if($c.PhoneNumbers[$enumBusinessPhoneValue] -ne "" -and $c.PhoneNumbers[$enumBusinessPhoneValue] -ne $null){
if($busPhone -ne ""){
if($c.PhoneNumbers[$enumBusinessPhoneValue] -ne $busPhone){
echo "="
$c.PhoneNumbers[$enumBusinessPhoneValue] = $busPhone
}
} else {
$c.PhoneNumbers[$enumBusinessPhoneValue] = ""
}
} else {
if($busPhone -ne ""){
$c.PhoneNumbers[$enumBusinessPhoneValue] = $busPhone
}
}
$c.Update([Microsoft.Exchange.WebServices.Data.ConflictResolutionMode]::AlwaysOverwrite)
问题出在这一行 $c.PhoneNumbers[$enumBusinessPhoneValue] = ""
即使我输入 $null
我也会得到同样的错误。
问候
斯克拉特
在这种情况下,您需要为企业 Phone 使用扩展 属性(这与电子邮件地址 https://blogs.msdn.microsoft.com/emeamsgdev/2012/05/17/ews-managed-api-how-to-remove-email1-email2-email3-from-a-contact/ 相同)例如
$PidTagBusinessTelephoneNumber = new-object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition(0x3A08,[Microsoft.Exchange.WebServices.Data.MapiPropertyType]::String);
$c.RemoveExtendedProperty($PidTagBusinessTelephoneNumber)
$c.Update([Microsoft.Exchange.WebServices.Data.ConflictResolutionMode]::AlwaysOverwrite)
我尝试在使用 ExchangeWebService 和 powershell 时删除联系人中的 phone 号码条目。
我可以用号码创建新的联系人等等。我什至可以更改这些数字。但我可以设置为 $null
或 ""
.
它总是给我 Exception calling "Update" with "1" argument(s): "An object within a change description must contain one and only one property to modify."
我知道我不允许将其设置为“”或空值。但是必须有一种方法可以删除 phone 号码条目。
所以可能有人可以帮我解决这个问题。
到目前为止,我检查 phone 号码是否有变化,并且只在有变化的地方进行更新。
$enumBusinessPhoneValue = [Microsoft.Exchange.WebServices.Data.PhoneNumberKey]::BusinessPhone
if($c.PhoneNumbers[$enumBusinessPhoneValue] -ne "" -and $c.PhoneNumbers[$enumBusinessPhoneValue] -ne $null){
if($busPhone -ne ""){
if($c.PhoneNumbers[$enumBusinessPhoneValue] -ne $busPhone){
echo "="
$c.PhoneNumbers[$enumBusinessPhoneValue] = $busPhone
}
} else {
$c.PhoneNumbers[$enumBusinessPhoneValue] = ""
}
} else {
if($busPhone -ne ""){
$c.PhoneNumbers[$enumBusinessPhoneValue] = $busPhone
}
}
$c.Update([Microsoft.Exchange.WebServices.Data.ConflictResolutionMode]::AlwaysOverwrite)
问题出在这一行 $c.PhoneNumbers[$enumBusinessPhoneValue] = ""
即使我输入 $null
我也会得到同样的错误。
问候 斯克拉特
在这种情况下,您需要为企业 Phone 使用扩展 属性(这与电子邮件地址 https://blogs.msdn.microsoft.com/emeamsgdev/2012/05/17/ews-managed-api-how-to-remove-email1-email2-email3-from-a-contact/ 相同)例如
$PidTagBusinessTelephoneNumber = new-object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition(0x3A08,[Microsoft.Exchange.WebServices.Data.MapiPropertyType]::String);
$c.RemoveExtendedProperty($PidTagBusinessTelephoneNumber)
$c.Update([Microsoft.Exchange.WebServices.Data.ConflictResolutionMode]::AlwaysOverwrite)