SharePoint REST APIとPowerShell
SharePoint の REST API は Accept ヘッダーに
"application/json;odata=verbose" を指定することで、
JSON 形式で結果を取得することができます(既定では Atom形式)。
取得はできるのですが、返却される プロパティに "ID" が含まれる場合、
奇妙なことに、そのJSON表現 には "id" と "Id" が出現します。
これは SharePoint 以外のWindows サーバーから、
SharePoint REST API を利用する時には注意が必要な点です。
PowerShell 3.0から導入された Invoke-RestMethod コマンドレットでは、
JSON内に同一のキーが含まれる場合、キー重複でエラーとなってしまうからです。
(ConvertFrom-Json コマンドレットも、このようなJSONをパースできません)
Atom形式で取得するか、
Invoke-RestMethod / ConvertFrom-Json を使用せずに何とかするか。
Invoke-WebRequest コマンドレット と
JavaScriptSerializer.DeserializeObject を併用するのが簡単でお勧めです。