对象数组-无法以表格格式输出内容或无法使用CSV导出

我有一个PowerShell脚本,可以从CSV文件在AD中批量创建用户。我想通过创建一个单独的CSV文件对其进行扩展,该文件包含所有创建失败的帐户的详细信息。为此,我正在创建一个包含原始详细信息的数组,然后可以在脚本末尾将其导出为CSV。我的测试代码如下:

Function AddToCSV($reason)
{
    $object = New-Object -TypeName PSObject
    $object | Add-Member -Name "Firstname" -MemberType NoteProperty -Value $UserFirstName
    $object | Add-Member -Name "Lastname" -MemberType NoteProperty -Value $UserLastName
    $object | Add-Member -Name "SAM" -MemberType NoteProperty -Value $Sam
    $object | Add-Member -Name "Password" -MemberType NoteProperty -Value $Password
    $object | Add-Member -Name "Description" -MemberType NoteProperty -Value $Description
    $object | Add-Member -Name "AdGroups" -MemberType NoteProperty -Value $AdGroups         
    $object | Add-Member -Name "Reason" -MemberType NoteProperty -Value $reason
    $global:failArray += $object
}

$failArray = @()
$array = ("One","Two","Three")
foreach ($item in $array)
{
    $UserFirstName = "Test"
    $UserLastName = "Test"
    $Sam = "TEST.accOUNT"
    $Password = "P4ssword"
    $Description = "Test User"
    $AdGroups = "Group1;Group2"
    AddToCSV "account already exists"
}

$failArray | Format-Table

项目已成功添加到数组,但是当我尝试使用Format-Table显示数组时,其输出如下:

@{Firstname=Test; Lastname=Test; SAM=TEST.accOUNT; Password=P4ssword; Description=Test User; AdGroups=Group1;Group2; Reason=account already exists}@{Firstname=Test; Lastname=Test; SAM=TEST.AC
COUNT; Password=P4ssword; Description=Test User; AdGroups=Group1;Group2; Reason=account already exists}@{Firstname=Test; Lastname=Test; SAM=TEST.accOUNT; Password=P4ssword; Description=Test U
ser; AdGroups=Group1;Group2; Reason=account already exists}

尝试使用$failArray | Export-CSV -PAth "C:\Temp\Test.csv"导出为CSV只会导致以下输出:

对象数组-无法以表格格式输出内容或无法使用CSV导出

如何获取数组以表格形式或可用的CSV文件输出?

huayuan1005 回答:对象数组-无法以表格格式输出内容或无法使用CSV导出

您不需要为此的功能。只需将失败的对象收集在PSObjects数组中,而不是作为单独的字符串项。

类似这样的东西:

Error: Line 1: Unexpected token :

P.S。 $array = ("One","Two","Three") $failArray = foreach ($item in $array) { [PsCustomObject]@{ 'UserFirstName' = 'Test' 'UserLastName' = 'Test' 'Sam' = 'TEST.ACCOUNT ({0})' -f $item 'Password' = 'P4ssword' 'Description' = 'Test User' 'AdGroups' = 'Group1;Group2' 'Reason' = 'Account already exists' } } # output on screen $failArray | Format-Table # output to CSV $failArray | Export-Csv -Path 'C:\Temp\Test.csv' -NoTypeInformation 阻止csv的第一行为-NoTypeInformation

屏幕输出

#TYPE blah.blah.blah
本文链接:https://www.f2er.com/3165321.html

大家都在问