PowerShell - Office365日历REST API v1.0:按主题搜索

时间:2016-04-28 16:19:45

标签: rest powershell office365 office365api

我正在尝试使用PowerShell查询组日历,并根据“主题”字段中的特定字符串仅返回事件的子集。

目前,我可以使用以下内容并获取所有活动的列表:

$events = Invoke-RestMethod -Uri "https://outlook.office365.com/api/v1.0/users/$calendar/calendarview?startDateTime=$(Get-Date)&endDateTime=$((Get-Date).AddDays(1))" -Credential $cred | foreach-object{$_.Value}

$events | Select-Object -Property Subject,Start,End | fl

这是我被卡住的地方。我正在尝试将这些结果过滤到我只返回Subject -like '*string*'

的结果的位置

但是,我似乎无法在Invoke-RestMethod行...

上工作

任何帮助都会非常有用。

对能够从此开始和停止时间结果的任何人表示感谢:

  

2016-04-25T13:00:00Z

到此:

  

2016年4月25日

作为参考,我已经尝试过这个:

Get-Date $events.Start -Format 'MM/dd/yyyy'

出现此错误:

  

获取日期:无法转换' System.Object []'到类型   ' System.DateTime的'参数'日期'需要。指定的方法是   不支持。

1 个答案:

答案 0 :(得分:0)

因为你使用CalendarView(它是一种过滤器)你不能在REST级别应用另一个过滤器所以只过滤结果,例如

$events | Where-Object {$_.Subject -match 'string'} | Select-Object -Property Subject,Start,End | fl

或者如果你想使用通配符

$events | Where-Object {$_.Subject -Like '*string*'} | Select-Object -Property Subject,Start,End | fl

使用“开始停止”时间只需CAST它们,例如

$events | % {([DateTime]$_.Start).ToString("MM/dd/yyyy")}

干杯 格伦