※ この記事にはアフィリエイトリンクが含まれています
Windows の PowerShell で、SharePoint という Microsoft のドキュメント管理システムにファイルを自動でアップロードする仕組みを作って欲しいと言われました。
powershell で sharepoint に自動アップロードするスクリプト書いてみてと言われジュンク堂行ってみようかなと思ってしまう(ノウハウコレクター)
— 毛利 裕介|経営戦略を実行に結びつける、開発出身の実装型コンサルタント (@rabirgo) October 16, 2020
PowerShell は 文 法 が 斬 新 で覚える気にならなかったし SharePoint は初めてアクセスしてみた&OneDrive との違いがよく分からない状態ですが、調べたことをまとめます。
PowerShell + SharePoint で実現したいこと
要求は以下です。
- ローカル PC で日々作成されるレポート(Excel) を SharePoint のあるパスに自動でアップロードする
- アップロード時は一切の人手を介入させない(スケジューラで動作する)
さほど難しい要求ではありません。
ただ、お作法がさっぱりわからないんですよね。調べました。
PowerShell + SharePoint でファイルをアップロードするためのお作法
いくつかお作法がありました。
PowerShell スクリプトは実行が制限されている
SharePoint 関係なく、PowerShell の実行は制限されています。(初期値は Restricted)
PowerShell のスクリプトの実行時に引数へ ExecutionPolicy を指定して実行します。
c:work>PowerShell -ExecutionPolicy RemoteSigned .test.ps1
実行時に指定する場合は上記で。
私は一時的に以下の方法で制限解除してお勉強してます。
Processスコープの設定では、管理者権限も不要ですし、永続性もありません。
Set-ExecutionPolicy RemoteSigned -Scope Process
ダイアログが出現したので、運用時に全く手を入れないようにするには前者の対応が必要かもしれません。(まだ試してない)
SharePoint を扱うために SharePoint Online Management Shell インストール
PowerShell 内で SharePoint にアクセスするためには SharePoint Online Management Shell が必要でした。

ネット上には「SharePoint Online Client Components SDK」という記載もありますが、SharePoint Online Management Shell に含まれるという記載も読んだので後者を入れておきました。
まとめ
PowerShell で SharePoint にファイルをアップロードするための準備手順をまとめました。
- 実行ポリシーの変更:
RemoteSignedに設定(実行時指定 or Process スコープ) - SharePoint Online Management Shell のインストール
次回は実際のアップロードスクリプトの実装ポイントを紹介します。
エラーや複雑な自動化で困ったら、生成AIに相談してみよう
PowerShell のエラーメッセージをそのまま ChatGPT や Claude に貼り付けると、原因と対処法を教えてくれます。特に馴染みのない言語やAPI を扱うときは、公式ドキュメントを読み解く手間が大幅に省けるのでおすすめです。
