У меня есть скрипт powershell, который импортирует список контактов по SMTP-адресу и возвращает ObjectId и DisplayName контакта, используя Get-MsolContact.Мне нужно написать в операторе if / else, что после получения пустого результата от Get-MsolContact запишет SMTP-адрес в отдельный CSV для дальнейшей отдельной обработки.
$contacts = Import-Csv C:\Users\me\Desktop\contacts.csv
$data = Foreach($User in $contacts) {
Get-MsolContact -All -SearchString $User.SMTPAddress | Select ObjectId, DisplayName
If($data -eq ''){
Write-Host 'ObjectId not found' $User.SMTPAddress -Fore red
} else {Write-Host 'Processed' $User.SMTPAddress -Fore cyan}
}
$data | Export-CSV C:\Users\me\Desktop\objectid.csv -NoTypeInformation
Кажется, я не получаю никаких результатов "ObjectId not found", несмотря на то, что я знаю, что существует 70 таких случаев.Также не уверен, как вывести их в CSV.
РЕДАКТИРОВАТЬ:
Я думаю, что я нашел способ добиться того, что я хочу сделать с помощью следующего, но я неубедитесь, что это правильно:
$contacts20 = Import-Csv C:\Users\me\Desktop\contacts.csv
$data20 = Foreach($User in $contacts20)
{
If ((Get-MsolContact -All -SearchString $User.SMTPAddress | Select-Object -expand ObjectId) -eq $null){
Write-Output $User.SMTPAddress >> C:\USers\me\Desktop\exception.txt
}
else {
(Get-MsolContact -All -SearchString $User.SMTPAddress | Select ObjectId)
}
}
$data20 | Export-CSV C:\users\me\desktop\objectid.csv -NoTypeInformation
Похоже, это дает мне файл .txt, который имеет нулевые ответы на мой Get-MsolContact, и отдельный файл .CSV с действительными ответами.