【发布时间】:2015-04-30 16:46:02
【问题描述】:
我目前正在处理一个 CSV 文件,其中包含经理的员工编号,但没有他们的 SAMAccountName。我想利用Get-ADUser 从他们的 EmployeeNumber 属性中获取经理的 SAMAccountName,并将其放在同一个 CSV 文件的新列中。
CSV 样本:
"Full Name","Username","Manager","Manager User Sys ID"
"User 1","u1","1, Manager","123456"
"User 2","u2","2, Manager","234567"
"User 3","u3","3, Manager","345678"
我想要:
"Full Name","Username","Manager","Manager User Sys ID","Manager SamAccountName"
"User 1","u1","1, Manager","123456","m1"
"User 2","u2","2, Manager","234567","m2"
"User 3","u3","3, Manager","345678","m3"
我花了一些时间整理以下代码。我可以添加一个新列,并可以进一步获取 SAMAccountName,但它只导出新 CSV 文件中的一行,如下所示:
"SAMAccountName","managerUsername"
"m1","@{SAMAccountName=m1}"
代码如下:
$managers = Import-Csv -Path .\test.csv
$usermananger = @()
foreach ($manager in $managers)
{
$getmanagersam = Get-ADUser -Filter "employeeNumber -eq $($manager."Manager User Sys ID")" -Properties SAMAccountName |
Select-Object SAMAccountName
$exportstring = $testmanager |
Select-Object *,@{Name='managerUsername';Expression={"$getmanagersam"}}
$exportstring | Export-Csv -Path .\simpletest.csv -NoTypeInformation
}
【问题讨论】:
-
将
select SAMAccountName更改为select -ExpandProperty SAMAccountName -
马蒂亚斯,感谢您的回复。这有点帮助 - 输出更清晰,但基本上发生的事情是它抛出了一个语法错误,它一遍又一遍地覆盖 CSV,只保留一行。解析查询“employeeNumber -eq NO_MANAGER”语法错误时出错。
标签: powershell csv export-to-csv