Я пишу сценарий powershell, который:
- Сравнивает два файла CSV
- Выходные файлы для: Изменения, добавление, удаление контактов
- Обновление и добавление контактов
- Удалить контакты
Проблема в том, когда я пытаюсь удалить контакты.Что сделано:
#Check for Removed Contacts
foreach($row in $File1_Data )
{
$data_found=0
foreach($id in $emails_id)
{
if ($row.ExternalEmailAddress -eq $id)
{
$data_found=1
}
}
if($data_found -eq 0 ) #Email Not Found
{ $row|Select-Object -Property ExternalEmailAddress|Export-Csv -Path $Removed_Contact -Append -NoTypeInformation}
}
Теперь у меня есть файл только с адресами электронной почты.Ошибка возникает, когда я пытаюсь запустить команду, подключенную на сервере Exchange.
$RemoveContacts = Import-CSV ".\Removed Contacts_$((Get-Date).ToString('MMddyyyy')).csv"
$RemoveContacts | ForEach { Remove-MailContact -identity $_ -confirm:$false}
Но я получаю следующую ошибку:
Невозможно обработать преобразование аргумента для параметра «Идентификация»,Не удалось преобразовать значение типа «@ {ExternalEmailAddress=testuser@testcompany.com}» типа «Deserialized.System.Management.Automation.PSCustomObject» в тип «Microsoft.Exchange.Configuration.Tasks.MailContactIdParameter».+ CategoryInfo: InvalidData: (:) [Remove-MailContact], ParameterBindin ... mationException + FullyQualifiedErrorId: ParameterArgumentTransformationError, Remove-MailContact + PSComputerName: outlook.office365.com
$ Структура файла_данных 1025 ** в формате Microsoft требует .и $ emails_id - это функция, которая сравнивает два CSV-файла.Но это не то место, где сценарий ломается, просто я создаю файл.Чего мне не хватает?