PowerShell で SharePoint Online にアクセスしてみたメモ
しぇあぽいんとさんと仲良くなるために、まずは Windows では一番慣れている PowerShell を使って SharePoint Online へアクセスしてみたメモ。
Contents
環境
- Windows 10 Pro
- PowerShell 5.1
事前準備
SharePoint Online 用の SDK をインストールします。
- SharePoint Online Client Components SDK のダウンロードとインストール
https://www.microsoft.com/en-us/download/details.aspx?id=42038)
※64 bit と 32 bit を間違わないように
サンプルコード
ユーザーが [email protected]、SharePoint Online の URL が https://<tenant>.sharepoint.com/sites/example/SitePages/Home.aspx と仮定してサンプルコード書く。
# SDK の読み込み
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime") | Out-Null
# アクセスする URL
$url = 'https://<tenant>.sharepoint.com/sites/example/SitePages/Home.aspx'
# ユーザー名
$user = '[email protected]'
# パスワードは都度入力
$secure = Read-Host -Prompt "Enter the password" -AsSecureString
# 認証情報生成
$credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($user, $secure)
# WebRequest インスタンス生成
$request = [System.Net.WebRequest]::Create($url)
# 各種設定
$request.Credentials = $credentials
$request.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f")
$request.Accept = "application/json;odata=verbose"
$request.Method = [Microsoft.PowerShell.Commands.WebRequestMethod]::Get
# レスポンスの取得
$response = $request.GetResponse()
# ストリームデータ取得
$readStream = New-Object System.IO.StreamReader ($response.GetResponseStream())
# 取得したデータを表示
$readStream.ReadToEnd()
考察
REST API を叩いて JSON を返すサンプルを参考にしましたが、別に REST API を叩きたいわけではなかったので、とりあえずアクセスした画面を HTML で保存するだけを行ってみました。
恐らくユーザー名とパスワードを使うのはあまり良くないのだろうけど、一般ユーザーではこの方法しかないんじゃないかな?と思っています。
ディスカッション
コメント一覧
まだ、コメントがありません