将表格的两行结果合并

时间:2017-03-22 19:54:02

标签: powershell active-directory export-to-csv

我有一个PowerShell脚本可以根据来自“计算机”的CSV提取计算机信息。柱。根据该信息,我试图从两个来源查询相关信息。

一个是显示登录时间戳的文本文件,另一个是来自AD的lastlogondate。我希望将结果放在一起以CSV格式输出。

我无法弄清楚如何合并结果。单独的命令被放入$table变量中,但这显然不正确。

所以我试图最终得到的是带有

的CSV
Computer,LastWriteTime,LastLogonDate
PC01,lastwritetime,ADLastLogonDate

我认为解决方案是将值写入彼此独立的变量,然后将它们一起放入$table变量中?但我不知道该怎么做。

$computerList = Import-Csv $path

$table = @()

foreach ($line in $computerList) {
    $compName = $line.computer

    # Get the LastWriteTime from the network drive
    $table += Get-ChildItem *"$compName"* -Path R: |
              sort LastWriteTime |
              select LastWriteTime, Name  -Last 1

    # Get the lastlogondate from Active Directory
    $table += Get-ADComputer $compName -Properties Name, LastLogonDate |
              select Name,LastLogonDate
}

$table | Export-Csv "file.csv"

1 个答案:

答案 0 :(得分:3)

未测试

$computerList = import-csv $path
$table = @()
$table = foreach($line in $computerList){
    [pscustomobject]@{
        Computer      = $line.computer
        LastWriteTime = get-childitem -Path R: "*$compName*"|
                          sort LastWriteTime -descending|
                          select -ExpandProperty LastWriteTime -first 1
        LastLogonDate = get-adcomputer $compName -properties Name,LastLogonDate|
                          select -ExpandProperty LastLogonDate
    }
} 
$table | out-gridview
# $table | export-csv "file.csv"

根据建议重新编辑