записать список полей пользователя AD в CSV - PullRequest
0 голосов
/ 26 июня 2018

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

foreach ($User in $UserList)
{
    Write-Host $User.Enabled           #Enabled
    if ($User.Country -eq "CA" -OR $User.DistinguishedName -like "CANADA")
    {
        Write-Host "Canada"
    }
    elseif ($User.Country -eq "LUX" -OR $User.DistinguishedName -like "LUXEMBOURG")
    {
        Write-Host "Luxembourg"
    }
    elseif ($User.Country -eq "BRL" -OR $User.DistinguishedName -like "BRAZIL")
    {
        Write-Host "Brazil"
    }
    elseif ($User.Country -eq "USA" -OR $User.DistinguishedName -like "US")
    {
        Write-Host "America"
    }
    elseif ($User.Country -eq "UNITED KINGDOM" -OR $User.DistinguishedName -like "GB")
    {
        Write-Host "United Kingdom"
    }
    elseif ($User.Country -eq "HONG KONG" -OR $User.DistinguishedName -like "HK")
    {
        Write-Host "Hong Kong"
    }
    elseif ($User.Country -eq "INDIA" -OR $User.DistinguishedName -like "IN")
    {
        Write-Host "India"
    }
    elseif ($User.Country -eq "AUSTRALIA" -OR $User.DistinguishedName -like "AU")
    {
        Write-Host "Australia"
    }
    Write-Host $User.SamAccountName     #Login ID
    Write-Host $User.GivenName          #First Name
    Write-Host $User.Surname            #Last Name
    Write-Host $User.Title              #Title
    Write-Host $User.mail               #E-Mail
    Write-Host $User.LastLogonDate      #Last Login Date
    if ($User.accountExpires -eq 1)
    {
        Write-Host $User.AccountExpirationDate
    }
    else
    {
        Write-Host "N/A"
    }                                   #Expiration Date
    # Write-Host $User.                   #Password Expiration
    Write-Host $User.Department         #Department
    Write-Host $User.Office             #Floor
    Write-Host $User.OfficePhone        #Office Number
    Write-Host $User.MobilePhone        #Mobile Number
    Write-Host $User.whenCreated        #Created Date
    Write-Host $User.whenChanged        #Changed Date
}

1 Ответ

0 голосов
/ 26 июня 2018

Я бы предложил использовать switch, Export-Csv и вычисленные свойства с Select-Object:

$UserList | Select-Object -Property @(
    'SamAccountName', 'Enabled', 'GivenName', 'Surname'
    'Title'
    'Mail'
    'LastLogonDate'
    'Department', 'Office'
    'OfficePhone', 'MobilePhone'
    'WhenCreated', 'WhenChanged'
    @{
        Label = 'AccountExpires'
        Expression = {
            if ($PSItem.accountExpires -eq 1) {
                $PSItem.AccountExpirationDate
            } else {
                'N/A'
            }
        }
    }
    @{
        Label = 'Country'
        Expression = {
            switch ($PSItem) {
                {$PSItem.Country -eq 'CA' -or $PSItem.DistinguishedName -eq 'CANADA'} {
                    'Canada'
                }
                {$PSItem.Country -eq 'LUX' -or $PSItem.DistinguishedName -eq 'LUXEMBOURG'} {
                    'Luxembourg'
                }
                {$PSItem.Country -eq 'BRL' -or $PSItem.DistinguishedName -eq 'BRAZIL'} {
                    'Brazil'
                }
                {$PSItem.Country -eq 'USA' -or $PSItem.DistinguishedName -eq 'US'} {
                    'America'
                }
                {$PSItem.Country -eq 'UNITED KINGDOM' -or $PSItem.DistinguishedName -eq 'GB'} {
                    'United Kingdom'
                }
                {$PSItem.Country -eq 'HONG KONG' -or $PSItem.DistinguishedName -eq 'HK'} {
                    'Hong Kong'
                }
                {$PSItem.Country -eq 'INDIA' -or $PSItem.DistinguishedName -eq 'IN'} {
                    'India'
                }
                {$PSItem.Country -eq 'AUSTRALIA' -or $PSItem.DistinguishedName -eq 'AU'} {
                    'Australia'
                }
            }
        }
    }
) | Export-Csv -Path C:\Temp\UserList.csv -NoTypeInformation -Force -Encoding UTF8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...