【问题标题】:PowerShell - CSV file containing username - append with first name, last name etcPowerShell - 包含用户名的 CSV 文件 - 附加名字、姓氏等
【发布时间】:2020-03-30 14:23:45
【问题描述】:

我有一个 CSV 文件,其中包含一堆与计算机关联的用户名。 此列表仅包含 USERNAME。

我想根据用户名附加几列名字、姓氏等。 我对 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
            }

    }
)

【问题讨论】:

  • 您需要使用Import-Csv C:\temp\daclientsTest.csv -Delimiter ';',因为该命令使用没有-Delimiter 的默认区域性列表分隔符(通常是逗号)。如果[cultureinfo]::CurrentCulture.TextInfo不是;,则需要指定。
  • 啊哈!那行得通,好的,我现在试着靠近一点:)

标签: powershell csv active-directory


【解决方案1】:

由于您的 CSV 文件是用分号分隔的,因此您可能需要在运行 Import-Csv 时指定该分隔符。

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

说明:

在没有-Delimiter 的情况下运行Import-Csv 使用与当前区域性的列表分隔符匹配的默认分隔符。您可以通过运行以下命令来查看列表分隔符:

[cultureinfo]::CurrentCulture.TextInfo.ListSeparator

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多