Out-File不会生成与export-csv相同的数据

时间:2017-09-04 03:51:01

标签: excel powershell printing

晚上,

我正在尝试获取一个站点上拥有3000多台打印机权限的所有用户的列表,我一直在尝试将输出的SID分离到他们自己单独的列中,这是我无法进行的做。我正在尝试让Export-CSV显示与Out-File相同的数据,因为我确信我可以使用Export-CSV执行此操作。这就是我所拥有的。

$printers = Get-Content -Path C:\Users\Admin\Desktop\FinalPrinters3020.txt 
(Get-Printer $printers -Full).PermissionSDDL | Export-CSV -NoTypeInformation 
-Path \\FileServer\Printerlist\Printers30202.csv

当我这样做时,我得到了这个: Wrong data

当我使用Out-File时:

$printers = Get-Content -Path C:\Users\Admin\Desktop\FinalPrinters3020.txt 
(Get-Printer $printers -Full).PermissionSDDL | Out-File 
'\\FileServer\Printerlist\Printers30202.csv'

我了解数据的外观: Correct

1 个答案:

答案 0 :(得分:2)

Export-Csv只会导出对象包含的属性。

使用Get-Printer $printers -Full | Select-Object PermissionSDDL | Export-CSV -NoTypeInformation

在您的示例中,您正在发送字符串对象,Export-Csv将使用length属性,因为这是唯一的属性字符串包含。使用(Get-Printer -Full).PermissionSDDL | gm -MemberType Properties

进行验证

使用Select-Object cmdlet返回包含所需属性的自定义对象,Export-Csv将输出所需的结果。将第一个示例与Get-Printer -Full | select PermissionSDDL | gm -MemberType Properties

进行对比