PowerShell - CSV-файл, содержащий имя пользователя - добавление имени, фамилии и т. Д. - PullRequest
0 голосов
/ 30 марта 2020

У меня есть CSV-файл, содержащий несколько имен пользователей, связанных с компьютерами. Этот список содержит только USERNAME.

Я хочу добавить несколько столбцов с именем, фамилией и c в зависимости от имени пользователя. Я не слишком знаком с PowerShell, чтобы делать это без каких-либо проблем.

Но пока я даже не могу пойти дальше, чем это:

$user_list = Import-Csv C:\temp\daclientsTest.csv

$user_list.foreach(
    {
        $SAMAccountName = $_.'USERNAME'
        write-host $SAMAccountName
    }
)

И я ничего не получаю из переменной $ SAMAccountName. Кто-нибудь получил какие-нибудь советы?

CSV-файл выглядит так:

HOSTNAME;USERNAME
PC01259;10412;
PC01946;10319;

Очевидно, что список очень длинный и содержит только эти две переменные. Поэтому мне нужно взять имя пользователя, получить определенные переменные и добавить их в новые столбцы

Редактировать: Если кто-то хочет увидеть скрипт (возможно, он полон ошибок, но он сработал, поэтому я счастлив):

$user_list = Import-Csv C:\temp\daclients.csv -Delimiter ';'
# Follows this format: HOSTNAME;USERNAME;

$user_list.foreach(
    {

            If ($_.USERNAME) {

                $NewObjectList = New-Object -TypeName psobject
                $Hostname = $_.HOSTNAME
                $SAMAccountName = $_.USERNAME
                $ADUser = Get-ADUser -Identity $SAMAccountName -Properties DisplayName,extensionAttribute2,physicalDeliveryOfficeName,title
                $DisplayName = $ADUser.DisplayName
                $physicalDeliveryOfficeName = $ADUser.physicalDeliveryOfficeName
                $title = $ADUser.title
                $EXTENSIONATTRIBUTE2 = $ADUser.extensionAttribute2


                $NewObjectList | Add-Member -MemberType NoteProperty -Name ComputerName -Value $Hostname
                $NewObjectList | Add-Member -MemberType NoteProperty -Name UserName -Value $SAMAccountName
                $NewObjectList | Add-Member -MemberType NoteProperty -Name DisplayName -Value $DisplayName
                $NewObjectList | Add-Member -MemberType NoteProperty -Name title -Value $title
                $NewObjectList | Add-Member -MemberType NoteProperty -Name ExtensionAttribute2 -Value $EXTENSIONATTRIBUTE2
                $NewObjectList | Add-Member -MemberType NoteProperty -Name physicalDeliveryOfficeName -Value $physicalDeliveryOfficeName

                #Create new csv-file
                $NewObjectList | export-csv -Append -Path C:\temp\daclientsNEW.csv
            }

    }
)

1 Ответ

3 голосов
/ 30 марта 2020

Поскольку ваш CSV-файл разделен точкой с запятой, вам, вероятно, потребуется указать этот разделитель при запуске Import-Csv.

$user_list = Import-Csv C:\temp\daclientsTest.csv -Delimiter ';'

Объяснение:

Выполняется Import-Csv без -Delimiter использует разделитель по умолчанию, который соответствует символу разделителя списка для вашей текущей культуры. Вы можете увидеть свой символ разделителя списка, выполнив следующее:

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