powershell - 如何在 PowerShell 中将输出添加/组合到现有数组?

标签 powershell

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

$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 ) 位于括号中,以便您可以更新文件。如果没有它,该文件将被使用并且更新将失败。

不过有一件事。看起来您的文件中已经有一个“名称”列,因此我将新属性命名为“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

关于powershell - 如何在 PowerShell 中将输出添加/组合到现有数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15158083/

相关文章:

powershell - 检索戴尔当前的 Bios 版本

windows - 使用 PowerShell 在表中格式化三个数据列表

powershell - Powershell:无法访问MSMQ Cmdlet

Powershell:停止解析参数在大括号内不起作用

powershell - Dockerfile ENTRYPOINT EXEC表单不适用于Powershell

iis - 使用 powerShell 脚本停止网站

powershell - 如何使用批处理或 vbscript 向 Windows 7/8 搜索索引添加位置?

Powershell 列出 Azure 存储上的所有表

Powershell:获取默认系统编码

sql-server - 使用 get-member 维护属性(property)秩序