Смысл в том, что скрипт по добавлению Email адресов из АД в Outlook уже есть он описан на форуме
Но при каждом запуске скрипта в Outlook`e появляются дубликаты одних и тех же записей.
Я хочу написать скриптик который бы делал вот что:
1) При импорте проверял бы есть такой контакт в Outlook`e, если есть то повторно не импортировать, если же нету то импортировался но с дополнительным полем которое бы указывало на то, что этот объект импортирован из АД
2) Потом бы проверялись контакты в Outlook`e если контакт имеет поле импортирован то такойже объект ищется в АД если его там нету то этот контакт удаляется из Outlook`а, если же контакт создал сам пользователь и у него нету поля которое показывает что он создан при импорте то этот контакт остается без изменения.
так вот я не знаю как правильно реализовать то что я хочу и я пошел обходным путем (если кто знает как сделать правильней и лучше подскажите!!!):
Я сначала удаляю контакты из Outlook`а в которых присутствуют поля означающие что этот контакт импортирован (у меня за это отвечает два поля $_.Mileage и $_.BusinessHomePage) контакты созданные пользователем не трогаем. Потом необходимо проделать импорт из АД в Outlook с полями означающими импорт.
так вот у меня неправильно работает удаление контактов с полем означающим импорт.
я делаю это так:
PHP код:
Код: Выделить всё
#Подключаемся к Outlook
$outlook = New-Object -ComObject Outlook.Application
$mapi = $outlook.GetNamespace("MAPI")
#Получаем папку контактов
$Contacts = $mapi.GetDefaultFolder(10).Items
$Contacts | ForEach {
if ($_.Mileage -match "1" )
{if ($_.BusinessHomePage -match "http://company.com/" )
{Write-Host " Импортированный контакт " $_.LastName $_.Email1Address -ForegroundColor blue ; $_.delete() }
}
else { Write-Host " Пользовательский контакт " $_.LastName $_.Email1Address -ForegroundColor Red}
}
когда запускаешь этот скрипт без метода $_.delete() то все проходит как положено все контакты правильно показываются какие импортированы а какие пользовательские, а когда же ставим метод $_.delete() то контакты как бы делятся на две части и удаляются только половина импортированных контактов. И так чтобы удалить все импортированные контакты надо несколько раз запустить скрипт на удаление…
Почему так, помогите!!! Или предложите другой метод, всем предложения решения задачи буду рад!!!