我有一些数据我试图推送到CSV但它仍然失败。有什么建议吗?
Import-Module ActiveDirectory
$ExportFile = "C:\T2\Test.csv"
$MacHeading = "Mac OS: "
$MACOS = Get-ADComputer -Filter 'OperatingSystem -like "MAC*"' -Properties OperatingSystem, CanonicalName | Select Name, CanonicalName, OperatingSystem
$MACOSCount = Get-ADComputer -Filter 'OperatingSystem -like "MAC*"' | Measure-Object | %{$_.Count}
$MacHeading | Export-CSV -path $ExportFile -Append
$MACOS | Export-CSV -path $ExportFile -Append
$MACOSCount | Export-CSV -path $ExportFile -Append
我的错误信息是:
Export-CSV:无法将CSV内容附加到以下文件: C:\ T2 \ Test.csv。附加的对象没有属性 对应于以下列:Mac OS :.继续 不匹配的属性,添加-Force参数,然后重试 命令。在C:\ T2 \ Test.ps1:9 char:15 + $ MacHeading | Export-CSV -path $ ExportFile -Append + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:InvalidData :( Mac OS :: String)[Export-Csv],InvalidOperationException + FullyQualifiedErrorId:CannotAppendCsvWithMismatchedPropertyNames,Microsoft.PowerShell.Commands.ExportCsvCommand
答案 0 :(得分:1)
虽然您可以手动创建csv文件,但它通常很麻烦,您必须在手动添加数据时匹配列标题。
在上面的代码中,您可以通过创建一个带有一个标题\列' mac os'的csv文件来启动您的csv。 macos
是具有各种属性的对象,它不包含名为' mac os'所以export-csv不知道在哪里发送数据。
你也错过了-notypeinformation
切换到export-csv
的情况,否则csv将包含一个带有对象类型的额外不需要的标题
$comps = Get-ADComputer -Filter 'OperatingSystem -like "MAC*"' -Properties OperatingSystem, CanonicalName |
Select-Object @{N='MacHeading';e={'Mac OS'}},Name, CanonicalName, OperatingSystem
$comps |
ForEach-Object -Begin {$i = 0} -Process {$I++; $_ | Add-Member -Name ID -Value $i -MemberType NoteProperty -PassThru} |
Export-Csv -Path $path -NoTypeInformation
答案 1 :(得分:0)
$comps=Get-ADComputer -Filter { OperatingSystem -Like '*MAC*' } -Properties OperatingSystem,CanonicalName
答案 2 :(得分:0)
如果您愿意不使用$MacHeading
(这对CSV非常有用),您可以这样做:
Get-ADComputer -Filter 'OperatingSystem -like "MAC*"' -Properties OperatingSystem, CanonicalName |
Select Name, CanonicalName, OperatingSystem |
Export-CSV -path $ExportFile -Append -NoTypeInformation
Get-ADComputer -Filter 'OperatingSystem -like "MAC*"' |
Measure-Object | %{$_.Count} |
Out-File $ExportFile -Append -Encoding ASCII
关键是要使用Out-File
而非Out-CSV
来表示不会真正制作CSV的项目。