雑記

PowerShell で SharePoint にファイルをアップロードする方法【準備編】

※ この記事にはアフィリエイトリンクが含まれています

結論: PowerShell で SharePoint にファイルを自動アップロードするには、実行ポリシーの変更と SharePoint Online Management Shell のインストールが必要です。実際にハマったポイントを含め、準備手順をまとめました。

Windows の PowerShell で、SharePoint という Microsoft のドキュメント管理システムにファイルを自動でアップロードする仕組みを作って欲しいと言われました。

PowerShell は 文 法 が 斬 新 で覚える気にならなかったし SharePoint は初めてアクセスしてみた&OneDrive との違いがよく分からない状態ですが、調べたことをまとめます。

PowerShell + SharePoint で実現したいこと

要求は以下です。

  • ローカル PC で日々作成されるレポート(Excel) を SharePoint のあるパスに自動でアップロードする
  • アップロード時は一切の人手を介入させない(スケジューラで動作する)

さほど難しい要求ではありません。

ただ、お作法がさっぱりわからないんですよね。調べました。

PowerShell + SharePoint でファイルをアップロードするためのお作法

いくつかお作法がありました。

PowerShell スクリプトは実行が制限されている

SharePoint 関係なく、PowerShell の実行は制限されています。(初期値は Restricted)

PowerShell のスクリプトが実行できない場合の対処方法 - Qiita
概要PowerShell でスクリプトを書いて実行したとき、以下のエラーが表示されてスクリプトが実行できない場合があります。c:\work>PowerShell .\test.ps1.\test.ps1 : このシ...

PowerShell のスクリプトの実行時に引数へ ExecutionPolicy を指定して実行します。
c:work>PowerShell -ExecutionPolicy RemoteSigned .test.ps1

実行時に指定する場合は上記で。

私は一時的に以下の方法で制限解除してお勉強してます。

PowerShellのExecutionPolicyのスコープとかについて詳しく - Qiita
※変数のスコープの話じゃないです。PowerShellは、デフォルトではPowerShellスクリプトを実行できないポリシーに設定されていることは有名です。PowerShellはコンソール上のみの操作でも有益とは言え、スクリプト...

Processスコープの設定では、管理者権限も不要ですし、永続性もありません。
Set-ExecutionPolicy RemoteSigned -Scope Process

ダイアログが出現したので、運用時に全く手を入れないようにするには前者の対応が必要かもしれません。(まだ試してない)

SharePoint を扱うために SharePoint Online Management Shell インストール

PowerShell 内で SharePoint にアクセスするためには SharePoint Online Management Shell が必要でした。

SharePoint Online Management Shell
The SharePoint Online Management Shell is a tool that contains a Windows PowerShell Module to manage your SharePoint Online subscription in the Office 365.

ネット上には「SharePoint Online Client Components SDK」という記載もありますが、SharePoint Online Management Shell に含まれるという記載も読んだので後者を入れておきました。

まとめ

PowerShell で SharePoint にファイルをアップロードするための準備手順をまとめました。

  • 実行ポリシーの変更: RemoteSigned に設定(実行時指定 or Process スコープ)
  • SharePoint Online Management Shell のインストール

次回は実際のアップロードスクリプトの実装ポイントを紹介します。

エラーや複雑な自動化で困ったら、生成AIに相談してみよう

PowerShell のエラーメッセージをそのまま ChatGPT や Claude に貼り付けると、原因と対処法を教えてくれます。特に馴染みのない言語やAPI を扱うときは、公式ドキュメントを読み解く手間が大幅に省けるのでおすすめです。

ABOUT ME
rabirgo
うさぎ年(rabbit)おとめ座(virgo)生まれの rabirgo です。 2019年よりフリーランスとして活動しています。 よかったら Twitter フォローお願いします! Follow @rabirgo

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です