Powershell-多个AD命令,导出为多列csv

Powershell-多个AD命令,导出为多列csv,powershell,csv,Powershell,Csv,我的目标是使用多个PS命令,将结果导出到各个列中。数据之间没有关系。目前我运行15-20个单独的PS脚本,每个脚本将一列数据输出到自己的csv文件中。然后,我将这些15-20个csv文档中的每一个都复制/粘贴到一个新的单一电子表格中——复制/粘贴到它们自己的列中。我正试图通过运行一个脚本来提高这个过程的效率,该脚本生成一个csv文件,该文件包含多个列及其受尊重的结果 这是我当前的代码格式副本。虽然这是我所见过的最接近于工作产品的产品,但我已经尝试过许多变体 $ExportPath="

我的目标是使用多个PS命令,将结果导出到各个列中。数据之间没有关系。目前我运行15-20个单独的PS脚本,每个脚本将一列数据输出到自己的csv文件中。然后,我将这些15-20个csv文档中的每一个都复制/粘贴到一个新的单一电子表格中——复制/粘贴到它们自己的列中。我正试图通过运行一个脚本来提高这个过程的效率,该脚本生成一个csv文件,该文件包含多个列及其受尊重的结果

这是我当前的代码格式副本。虽然这是我所见过的最接近于工作产品的产品,但我已经尝试过许多变体

$ExportPath="\\NetworkLocation\test.csv"
$ADSG1="AD_Security_Group_Name"
$OUpath='OU=Servers,DC=sample,DC=sample,DC=org'

$TST_Script1=Get-ADGroupMember $ADSG1 | Select-object -ExpandProperty Name | Out-String
$TST_Script2=Get-ADComputer -Filter * -SearchBase $OUpath | Select-object -ExpandProperty Name | Out-String

$Object = [pscustomobject]@{
    TST_Script1 = $TST_Script1
    TST_Script2 = $TST_Script2
}
$Object | Export-Csv -Path $ExportPath -NoTypeInformation

您可以执行以下操作:

$TST_Script1=Get-ADGroupMember $ADSG1 | Select-object -ExpandProperty Name
$TST_Script2=Get-ADComputer -Filter * -SearchBase $OUpath | Select-object -ExpandProperty Name

0..(($TST_Script1.Count,$TST_Script2.Count | Sort -Desc)[0]-1) | Foreach-Object {
    [pscustomobject]@{
        TST_Script1 = $TST_Script1[$_]
        TST_Script2 = $TST_Script2[$_]
    }
} | ConvertTo-Csv -NoType

Export Csv
将输入对象的属性转换为列标题。这些属性的值作为与标题对齐的数据行添加。在集合中设置管道时,将转换集合中的每个对象

尝试的问题是输出一个具有两个属性的对象。然后,每个属性都包含一个值数组。这与输出多个对象不同,每个对象都有两个属性,并且这些属性包含奇异值

Out String
通过获取数组输出并将其转换为单个字符串来保存格式化的数组输出,从而使事情变得更加混乱



顺便说一句,你想怎么做对我来说没有多大意义。
$TST_Script1
$TST_Script2
看起来都是脱节的,因为它们彼此不依赖,可能包含不同的对象类型。通常,您希望数据行表示共享模式或对象类型的对象,并包含描述每个对象的属性。通常,来自不同对象或命令的数据用于为当前对象创建特性。但目的是更好地描述输出的对象。您的目标是获取关于两个不同对象的两个不同、独立的属性,并将它们合并为一个对象。

您需要遍历最大的集合,并使用生成的索引构建PSCO。您有两个分离的集合,它们可能返回不同的对象类型。这两个命令都可以返回多个对象。将每个命令结果存储在一个变量中意味着每个结果都是一个集合<代码>导出Csv将输入对象转换为文本,方法是将属性名称用作标题,并将该属性的值用作数据行。如果有多个具有特性值的对象,则每个值对应一行。您有一个具有一个属性的对象,该属性恰好包含一个值数组。结果,您得到一个数据行。这的总体目的是创建一个包含来自AD的原始数据的数据集。然后,我获取该数据并将其移动到跟踪电子表格中,在该电子表格中,我使用excel函数引用该数据集。将其视为引用来自另一个源/位置的数据的excel数据透视表。随着项目进展,该脚本将生成新数据。如果只有两个值(val1和val2),则建议的解决方案非常有效。这似乎是对
[数学]:Max
的限制。如果我有6个或更多的值呢?使用我上面的例子,我需要至少x6个TST_脚本1,2,3,4,5,6。这将在csv文档中输出6列。当我更新建议的解决方案以包含6个变量时,我发现以下错误:
找不到“Max”的重载和参数计数:“6”。
很抱歉,我的PS技能正在提高。谢谢您到目前为止的输入。@Jeff我更新了循环数学,现在它可以处理两个以上的值。更新后的循环工作得很好。非常感谢您在这个问题上花费的时间和精力。