Oh! 365 blog

Office 365 と生きていく

CSOM と SharePoint Online 管理シェルを PowerShell でパッケージ管理

今回の投稿は SharePoint Online に関連する内容です。

※ 2019/6/28 追記
この記事を書いた後に、TechNet のまとめ記事を見つけたので、この記事にリンクを載せておきます。

blogs.technet.microsoft.com


CSOM と SharePoint 管理シェル (Microsoft.Online.SharePoint.PowerShell) が PowerShellGet から入手可能になったため、PowerShell を使用して両方のモジュールをパッケージ管理できるようになりました!

docs.microsoft.com

使い方はとても簡単なので、是非お試しください!Update-Module コマンドで簡単にアップデートできるようになるので、最新版のモジュールが出たら、一度アンインストールして最新版をインストールするという手間も無くなりますね!

SharePoint 管理シェルのモジュール インストール

Install-Module -Name Microsoft.Online.SharePoint.PowerShell

上記モジュールにより PowerShell 上で SharePoint 管理シェルのコマンドが使用可能です。
自動補完も効くようになります。

CSOM モジュール

Install-Module -Name SharePointOnline.CSOM

上記コマンドでインストールしたモジュールを、パッケージからロードする場合は、下記コマンドを使用します。

Load-SPOnlineCSOMAssemblies または Load-SPOnlineCSOMAssembly

PowerShellGallery のコードを見ると、Load-SPOnlineCSOMAssemblies の一行で、以下 4 つのモジュールがインストール可能なようです。

function Load-SPOnlineCSOMAssemblies
{
Load-SPOnlineCSOMAssembly "Microsoft.SharePoint.Client.dll"
Load-SPOnlineCSOMAssembly "Microsoft.SharePoint.Client.Publishing.dll"
Load-SPOnlineCSOMAssembly "Microsoft.SharePoint.Client.Runtime.dll"
Load-SPOnlineCSOMAssembly "Microsoft.SharePoint.Client.Search.dll"
}

PowerShell Gallery | SharePointOnline.CSOM.psm1 0.1.0

多くの場合は、Load-SPOnlineCSOMAssemblies の一行で済みそうですかね。
上記以外のモジュールを使用する必要がある場合は、Load-SPOnlineCSOMAssembly で個別にロードします。

Install-Module によりインストールしたモジュールは "C:\ProgramFiles\WindowsPowerShell\Modules" に格納され、管理されるようです。

In this example, modules with a name that starts with MyDSC that are found by Find-Module in the online gallery are installed to the default folder,
C:\ProgramFiles\WindowsPowerShell\Modules.
PowerShell

Find-Module -Name "MyDSC*" | Install-Module

Install-Module


PowerShellGet は Windows Management Framework 5.1 含まれており、Windows 10 であれば標準搭載されています。
WFM 5.1 がインストールされていない環境の場合は、以下のリンクよりダウンロード可能です。

https://docs.microsoft.com/ja-jp/powershell/wmf/5.1/install-configure

パッケージ管理については記事を書かれている方がいるので、リンクを貼っておきます。
qiita.com

おわりに

最近 Twitter で以下の記事を見つけたので、今回の記事を書こうと思いました。
blog.karamem0.jp

実際には Nuget で管理している場合が多いと思いますが、PowerShell だけで手軽にパッケージ管理が可能な為、SharePoint Online 管理シェルと CSOM (Client Side Object Model) SDK の共存にお困りの方がいれば、是非お試しください。


1年以上ブログを放置していましたが、活動を再開したので、役立ちそうな情報があれば積極的に記事にしていきます!
2019 年は、OSS プロジェクトである SharePoint PnP コミュニティへの貢献をモチベーションにできたらいいなあと思っています。
2019 年も楽しく活動していきましょう!

今回の投稿は以上となります。