Извлечение данных из двух списков, сравнение и экспорт их в один - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь импортировать файл csv, если информация из этого файла проходит через каждого пользователя AD, сравнивает адреса электронной почты и экспортирует данные из рекламы в новый файл.

$CATO = Import-Csv -Path "C:\test\testimport.csv"
$adinfo = get-aduser -filter * -properties Name, Office, UserPrincipalName | Select-Object Name, Office, UserPrincipalName

foreach($CATOitem in $CATO){

    $CATOname = $CATOitem.'First Name' + " " + $CATOitem.'Last Name'
    $CATOemail = $CATOitem.Email

    foreach($aditem in $adinfo){

        $adname = $aditem.Name
        $adoffice = $aditem.Office
        $ademail = $aditem.UserPrincipalName

        if($CATOemail -in $ademail){
            $res = $adname, $adoffice, $ademail
            $res | Out-File -FilePath "C:\test\testresult.txt" 
        }

    }

}

Я получение только последнего возвращенного значения, в то время как я хочу, чтобы каждое значение (которое должно быть около 500 значений)

Я хотел бы получить результат в CSV-файле с столбцами "NAME" "OFFICE" и всеми значениями под этим ,

Ответы [ 2 ]

1 голос
/ 28 февраля 2020

Хотя добавление -Append сделает ваш код работоспособным, это действительно довольно неэффективный код.

Кроме того, зачем использовать простой текстовый файл в качестве вывода, если у вас есть объекты для записи вместо файла CSV?

Попробуйте ниже:

$CATO = Import-Csv -Path "C:\Users\yclaeys\Documents\PSScripts\Michel script CATO\vpnusers.csv"
# get an array of Email addresses from the CSV (remove empty fields)
$CATOemail = $CATO.Email | Where-Object { $_ -match '\S' }

# get users with UserPrincipalName corresponding to the `Email` column in your CSV file
# and export as proper new CSV file
Get-ADUser -Filter * -Properties Name, Office, UserPrincipalName | 
    Where-Object { $CATOemail -contains $_.UserPrincipalName } |
    Select-Object Name, Office, UserPrincipalName |
    Export-Csv -Path "C:\Users\yclaeys\Documents\PSScripts\Michel script CATO\res.csv" -NoTypeInformation
0 голосов
/ 28 февраля 2020

Используйте клавишу -Append в Out-file для добавления информации, без нее вы каждый раз перезаписываете файл.

...