Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何向PowerShell中的现有阵列添加/组合输出?_Powershell - Fatal编程技术网

如何向PowerShell中的现有阵列添加/组合输出?

如何向PowerShell中的现有阵列添加/组合输出?,powershell,Powershell,我的$file包含两列。使用中的用户名,我想将名称和givenname分别添加为第三列和第四列。到目前为止,我已经: $file = Import-Csv H:\computers2userswoSP1.csv $out = foreach ($o in $file.name) { Get-ADUser $o | select name, givenname } 我尝试将下面的代码添加到第一个foreach,但没有成功: foreach ($r in $out) { New-O

我的
$file
包含两列。使用
中的用户名,我想将
名称
givenname
分别添加为第三列和第四列。到目前为止,我已经:

$file = Import-Csv H:\computers2userswoSP1.csv
$out = foreach ($o in $file.name) {
    Get-ADUser $o | select name, givenname
}
我尝试将下面的代码添加到第一个
foreach
,但没有成功:

foreach ($r in $out) {
    New-Object PSObject -prop @{
        name = $file.fullname
        givenname = $file.Firstname
    }
}
并在循环之前添加以下内容:

Add-Member -InputObject $file -TypeName fullname
Add-Member -InputObject $file -TypeName Firstname
在这个循环中:

$out.givenname += $file.FirstName
$out.name += $file.

正如你所看到的,我在黑暗中拍摄。有什么建议吗?

如果我正确理解了您的意图,您希望向基于中的数据生成的每个对象添加两个属性。如果是这种情况,您可以执行以下操作(此处的
Import Csv
模拟为):


CSV中的数据不相关;如果字段与CSV中的字段不匹配,只需更新语法中的值。

导入文件,选择管道,选择其所有属性,然后再添加两个属性。这将创建可在循环内更新的空白属性

导入命令()位于括号中,因此可以更新文件。没有它,文件将被使用,更新将失败

不过有一件事。看起来您的文件中已经有一个名称列,因此我将新属性命名为“fullname”

(Import-Csv H:\computers2userswoSP1.csv | select *, Name, GivenName) | ForEach-Object{
    $user = Get-ADUser $_.name | select fullname, givenname
    $_.fullname = $user.name
    $_.givenname = $user.firstname
    $_
} | Export-Csv H:\computers2userswoSP1.csv

那么您希望
$out
成为什么?自定义对象?多维数组,其中数组中的每个对象都是另一个具有一组值的数组?
(Import-Csv H:\computers2userswoSP1.csv | select *, Name, GivenName) | ForEach-Object{
    $user = Get-ADUser $_.name | select fullname, givenname
    $_.fullname = $user.name
    $_.givenname = $user.firstname
    $_
} | Export-Csv H:\computers2userswoSP1.csv