Microsoft Exchange REST API使用Powershell的POST写日历事件

时间:2017-10-09 14:00:08

标签: powershell exchange-server office365api

我尝试使用Powershell通过REST-API访问Exchange 2016 CU5环境的日历。 GET方法工作正常,没有错误,但现在我尝试用POST方法编写日历事件,但它不起作用。这是我的代码:

$cred = Get-Credential

$url = "https://myexchangeserver.de/api/v2.0/me/events"

$content = "application/json"

$body = "{
  ""Event"": {
  ""Subject"": ""Testtermin REST"",
  ""Body"": {
    ""ContentType"": ""HTML"",
    ""Content"":""Testtermin REST""
  },
  ""Start"": {
  ""DateTime"": ""2017-10-10T16:00:00"",
  ""TimeZone"": ""Europe/Berlin""
  },
  ""End"": {
  ""DateTime"": ""2017-10-10T16:30:00"",
  ""TimeZone"": ""Europe/Berlin""
  },
  ""Attendees"": [
{
  ""EmailAddress"": {
    ""Address"": ""otto.outlooktest@hft-stuttgart.de"",
    ""Name"": ""Otto Outlooktest""
  },
  ""Type"": ""Required""
}
  ]
}}"

Invoke-RestMethod -Uri $url -Method Post -Credential $cred -ContentType $content -Body $body

我将它放入.ps1文件并在我的Exchange命令行管理程序中执行。

它打开一个弹出窗口让我输入我的凭据,但之后我总是收到错误消息“400无效请求”。

我已经尝试了几篇着作,但总是一样。

任何人都知道出了什么问题?

问候,迈克尔

2 个答案:

答案 0 :(得分:0)

我建议你摆脱事件:因为这不是必需的(例如,只需检查任何文档样本或Graph Explorer样本)。此外,如果您使用fiddler捕获您的一个请求并查看从服务器返回的完整响应,它通常会告诉您发送的请求特别错误。

答案 1 :(得分:0)

我解决了。 REST API不喜欢IANA时区。而不是“欧洲/柏林”,我把“W.欧洲标准时间”。 问候, 迈克尔