PowerShell - fichier CSV contenant le nom d'utilisateur - append avec prénom, nom, etc.

Kenny Bones:

J'ai un fichier CSV contenant un tas de noms d'utilisateur associés aux ordinateurs. Cette liste ne contient que USERNAME.

Je veux ajouter plusieurs colonnes avec Prénom, Nom etc basé sur le nom d'utilisateur. Je ne suis pas trop familier avec PowerShell pour être en mesure de le faire sans hickups.

Mais jusqu'à présent, je ne peux même pas aller plus loin que cela:

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

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

Et je ne reçois rien de la variable $ SAMAccountName. Quelqu'un at-il des conseils?

fichier CSV ressemble à ceci:

HOSTNAME;USERNAME
PC01259;10412;
PC01946;10319;

Il est évident que la liste est très longue et ne contient que ces deux variables. Donc, je dois prendre le nom d'utilisateur, obtenir certaines variables et ajouter les nouvelles colonnes à

Edit: Si quelqu'un veut voir le script (il est probablement plein d'erreurs, mais cela a fonctionné, donc je suis heureux):

$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
            }

    }
)
AdminOfThings:

Étant donné que votre fichier CSV est délimité par des points - virgules, vous aurez probablement besoin de préciser que delimiter lors de l' exécution Import-Csv.

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

Explication:

Exécution Import-Csv sans -Delimiterutilise un séparateur par défaut qui correspond à la liste séparateur pour votre culture actuelle. Vous pouvez voir votre liste séparateur en exécutant ce qui suit:

[cultureinfo]::CurrentCulture.TextInfo.ListSeparator

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=369735&siteId=1
conseillé
Classement