получение массива значений в массиве с условиями

#powershell #office365

#powershell #office365

Вопрос:

Я пытаюсь отфильтровать свойство сообщений

 (Invoke-RestMethod -Uri $uri -Headers $token -Method Get).Value
  

Похоже, что строки являются массивом внутри массива, поскольку результат

 $Messages.messages | ft
  

что-то вроде этого

Текст сообщения: опубликован отчет о происшествии.

Опубликовано : 2020-10-05T18:58:01.69Z

Текст сообщения: опубликован отчет о происшествии.

Опубликовано : 2020-10-09T12:19:00.1Z

Моя цель — отобразить весь текст сообщения, который произошел после даты, которую я объявлю в переменной.

Ответ №1:

Непроверенный, но это должно сработать для вас

 $filterDate = (Get-Date).AddDays(-7) #Messages from the last week
$Messages = (Invoke-RestMethod -Uri $uri -Headers $token -Method Get).Value
($Messages.messages | Where-Object {$_.PublishedTime -ge $filterDate}).MessageText
  

Я предположил, что ваш вызов invoke-restmethod был сохранен в переменной $Messages .

Комментарии:

1. Спасибо. Теперь я пытаюсь выяснить, как преобразовать $filterdate в формат publishedtime.

2. Это может помочь вам в этом: blog.itpro.tv/get-date-powershell-cmdlet