Outlook:通过Powershell创建后,联系人在更新后会丢失引用

时间:2017-08-08 06:43:41

标签: powershell outlook contactgroups

我从网络上收集了一些代码来创建联系人,然后创建联系人群组。但是,如果我在创建后更新联系人,那么"关系"联系人组内的联系人对象与联系人之间的联系已消失。联系人组未使用联系人的更改进行更新。

如果我手动创建“联系人和联系人”组,则只会按预期维护该关系。关于我可能错过的任何想法?

联系人代码:

$olContactItem = 2
$o = new-object -comobject outlook.application
$c = $o.CreateItem($olContactItem)
$c.FullName =  "Dummy Account"
$c.Email1Address =  "aa@bb.com"
$a = $c.Save() 

联系人组的代码:

$outlook = new-object -com Outlook.Application
$contacts = $outlook.Session.GetDefaultFolder(10)
$session = $outlook.Session
$session.Logon("Outlook")
$namespace = $outlook.GetNamespace("MAPI")
$DL = $contacts.Items.Add("IPM.DistList")
$DL.DLName = "dummy2"
$recipient = $namespace.CreateRecipient("Dummy Account")    
$recipient.Resolve()
$DL.AddMember($recipient)
$DL.Save()

看起来很直接。我检查了API,但这并没有让我更进一步。 https://msdn.microsoft.com/en-us/vba/outlook-vba/articles/recipients-object-outlook

提前致谢!

1 个答案:

答案 0 :(得分:0)

在初始化之前添加$recipient

更新:OOM中的DistListItem.AddMember只会添加一次性收件人,无法添加联系人。如果使用Redemption是一个选项,它会公开RDODistListItemAddContact方法,该方法允许从Redemption传递Outlook的ContactItem对象或RDOContactItem对象。 RDODistListItem还公开AddMembers / AddMember / AddMemberEx方法。