Я пытаюсь импортировать 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-файл со столбцом "ИМЯ" "ОФИС" и все значения под ним.

0
claeys 28 Фев 2020 в 13:29

2 ответа

Лучший ответ

Хотя добавление -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
1
Theo 28 Фев 2020 в 10:44

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

0
Vad 28 Фев 2020 в 10:41