Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell EWS删除联系人上的电话号码条目_Powershell_Exchangewebservices_Contacts - Fatal编程技术网

Powershell EWS删除联系人上的电话号码条目

Powershell EWS删除联系人上的电话号码条目,powershell,exchangewebservices,contacts,Powershell,Exchangewebservices,Contacts,我尝试在使用ExchangeWebService和powershell时删除联系人中的电话号码条目 我可以用数字等创建新联系人。我甚至可以更改这些数字。但是我可以设置为$null或“” 使用“1”参数调用“Update”时,它总是给我异常:“变更描述中的对象必须包含且仅包含一个要修改的属性。” 我知道我不允许将其设置为“”或null。但必须有办法删除电话号码条目 所以可能有人会帮我解决这个问题 到目前为止,我检查电话号码是否有变化,只在有变化的地方更新 $enumBusinessPhoneVal

我尝试在使用ExchangeWebService和powershell时删除联系人中的电话号码条目

我可以用数字等创建新联系人。我甚至可以更改这些数字。但是我可以设置为
$null

使用“1”参数调用“Update”时,它总是给我
异常:“变更描述中的对象必须包含且仅包含一个要修改的属性。”

我知道我不允许将其设置为“”或null。但必须有办法删除电话号码条目

所以可能有人会帮我解决这个问题

到目前为止,我检查电话号码是否有变化,只在有变化的地方更新

$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
,我也会得到相同的错误

问候
skratter

在这种情况下,您需要为商务电话使用扩展属性(这与EmailAddAddress相同),例如


这看起来很有希望。你从哪儿弄来的地址?
$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)