Я запускаю эту команду, чтобы получить список всех пользователей Activesync и экспортировать их в C: \ activesync.csv.
Get-ActiveSyncDevice | Get-ActiveSyncDeviceStatistics | sort-object status, devicetype , lastsyncattempttime | ft FirstSyncTime ,LastPolicyUpdateTime ,LastSyncAttemptTime ,LastSuccessSync , DeviceType , DeviceID, DeviceAccessState, Identity -a | Export-Csv c:\activesync.csv
Проблема в том, что данные CSV не соответствуют отображению консоли, если я опущу конечный | c:\activesync.csv
... где отображаемые данные и столбцы не совпадают.
Это ошибка в PowerShell?
Следует помнить, что все в PowerShell - это объект. Когда вы используете Format-Table, на выходе получается объект форматирования, и это то, что передается для экспорта CSV. Если передать результаты команды Format-Table в Get-Member, вы поймете, что я имею в виду.
Get-ActiveSyncDevice |
Get-ActiveSyncDeviceStatistics |
sort-object status, devicetype , lastsyncattempttime |
Format-Table FirstSyncTime ,LastPolicyUpdateTime ,LastSyncAttemptTime ,LastSuccessSync , DeviceType , DeviceID, DeviceAccessState, Identity -a |
Get-Member
Результатом этого будет серия описаний различных объектов форматирования.
Format-Table отлично подходит для создания вывода в сеансе консоли или отправки форматированного вывода в текстовый файл (с использованием out-file), но если мы изменим вашу Format-Table на Select-Object, ваш CSV-файл будет больше того, что вы ожидаете .
Get-ActiveSyncDevice |
Get-ActiveSyncDeviceStatistics |
sort-object status, devicetype , lastsyncattempttime |
select FirstSyncTime ,LastPolicyUpdateTime ,LastSyncAttemptTime ,LastSuccessSync , DeviceType , DeviceID, DeviceAccessState, Identity |
Export-Csv c:\activesync.csv
(Примечание. Для длинных конвейеров символ вертикальной черты может использоваться как продолжение строки.)