我正在尝试使用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的'参数'日期'需要。指定的方法是 不支持。
答案 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")}
干杯 格伦