如何将联系人导入邮箱并使用PowerShell覆盖?

时间:2014-06-19 17:15:59

标签: powershell csv

所以我是PowerShell的新手。我理解了一些基础知识,我仍然尽可能地自学。

因此我被要求自动将我们公司的联系人推送到每个人的邮箱(大约60-70个联系人到60-70个邮箱)我们使用Office 365。 他们还希望联系人同步到手机,因此我无法使用共享联系人列表。似乎只有MAIN联系人列表可以同步到手机。

到目前为止,我已经使用了这个:

import-contactlist -csv -csvdata ([system.io.file]::readallbytes("PATH TO CSV FILE")) -identity USER

这很好用,但是如果对CSV有任何更改并且我再次运行它,它只会使所有联系人加倍而不是覆盖。无论如何我可以覆盖联系人吗?

我也试过这个:

Search-Mailbox -identity USER -SearchQuery kind:contacts -deletecontent

这会删除我首先创建的联系人,但如果用户创建了任何其他联系人,它也会删除这些联系人。 我觉得我正朝着正确的方向前进..任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

好吧,我想我弄明白了。用以下内容导入联系人后:

import-contactlist -csv -csvdata ([system.io.file]::readallbytes("PATH TO CSV")) -identity USER

我可以运行它来查找和删除每个添加的联系人:

$tcontacts = get-content PATH TO CSV WITH ONLY NAMES
$zcontacts = get-content PATH TO CSV WITH NAMES OF MAILBOXES YOU WANT TO REMOVE CONTACTS FROM
$ccontacts = "null"
$scontacts = "null"
$xcontacts = "null"
foreach ($ccontacts in $tcontacts) {foreach ($scontacts in $zcontacts) {$xcontacts = $scontacts; Search-Mailbox -identity $xcontacts -SearchQuery kind:'contacts', $ccontacts -deletecontent -force}}

我使用xcontacts = scontacts是因为指针问题(我认为?)但是无论如何,使用$ scontacts for -identity都不起作用。

这是一个相当粗糙的剧本,你们可能会找到一个较短的剧本,但它有效!感谢