Почему мой вывод REST обрезается с помощью эллипсов в PowerShell? - PullRequest
0 голосов
/ 09 ноября 2018

Я использую Invoke-RestMethod для управления сервером Websense. Когда я использую следующую команду curl для вывода списка категорий из терминала, мои результаты соответствуют ожиданиям:

curl -k -u <username>:<password> -X GET https://<ipaddress>:<port>/api/web/v1/categories/all

Вывод, который я получаю:

enter image description here

Я пытаюсь взять этот контент и сохранить его в переменной, чтобы я мог вывести его в файл (предпочтительно CSV). Когда я пытаюсь выполнить команду как переменную или когда я выводю содержимое в текстовый файл, мой ответ по какой-то причине обрезается эллипсами в конце текстовой строки. Как получить содержимое для вывода в файл так же, как оно отображается на экране? Использование fl дает немного больше данных, а использование ft -auto не дает никакого эффекта.

Invoke-RestMethod -Uri $uriListCat -Method Get -Headers $headers |
    Out-File u:\debug.txt
Categories                                                             
----------                                                                                                                                                                           
{@{Category Description=Sites that provide access to business-oriented web applications and allow storage of sensitive data, excluding those for web collaboration.; Category Hier...

1 Ответ

0 голосов
/ 09 ноября 2018

Invoke-RestMethod возвращает результат в виде структуры данных объекта PowerShell. Преобразуйте его в JSON перед записью в файл, если вы хотите получить вывод в формате JSON:

Invoke-RestMethod ... |
    ConvertTo-Json -Depth 10 |
    Out-File ...

Если вы хотите получить результат в виде CSV, разверните свойство Categories и экспортируйте результирующий список в виде CSV:

Invoke-RestMethod ... |
    Select-Object -Expand Categories |
    Export-Csv 'C:\categories.csv' -NoType
...