Как написать If / Else для разделения пустых результатов Get-MsolContact и экспорта в CSV - PullRequest
0 голосов
/ 10 июля 2019

У меня есть скрипт 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 с действительными ответами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...