使用Powershell在CSV的特定单元格中输入结果

时间:2012-03-08 19:39:30

标签: powershell

我有一个CSV文件,最后一列(列J)中有用户名。 我有一个脚本将在J列下运行,并通过从活动目录中提取信息来显示State。 我希望它将信息添加到当前用户名旁边的列K. 下面是脚本。它可以正常获取我无法将其添加到列K的信息。 我放置了一个计数函数(表示$ add1 = $ add1 +1的行),希望我能找到一个解决方案,让我将结果传送到我的CSV文件行$ add1中的CSV文件。我认为有办法做到这一点,但无法弄明白。 感谢

enter code here



Import-Module ActiveDirectory
$add1 = 1
Import-csv C:\Temp\newfile.csv | Select -expand MUID | ForEach {          
$add1 = $add1 +1   
Get-ADUser -Identity $_ -Properties st | select -ExpandProperty st

}

2 个答案:

答案 0 :(得分:2)

您可以这样做:

import-csv C:\Temp\newfile.csv | %{

    $k = Get-ADUser -Identity $_.MUID -Properties st | select -ExpandProperty st
    $_ | add-member -MemberType noteproperty -Name k -Value $k
    $_
}  | export-csv -NoTypeInformation C:\Temp\newfile2.csv

如果csv已经有了列k,你只需要将你想要的结果分配给$_.k

答案 1 :(得分:0)

您可以Select-Object添加具有计算属性的列:

Import-Module ActiveDirectory

Import-csv C:\Temp\newfile.csv | `
Select-Object *,@{n='k';e={ (Get-ADUser -Identity $_.MUID -Properties st).st }} | `
Export-Csv .\users.csv -NoTypeInformation