Oh! 365 blog

主に SPO や Teams に関する情報を発信しています。

【SPO】SharePoint Online でよく使う PowerShell コマンド一覧 (管理者向けチートシート)

多くのサイトが存在するテナントでは、SPO の管理をするのも一苦労です。サイト数が増えると画面操作では効率が悪いため、SharePoint Online 管理シェルや PnPOnline のコマンドレットを使用してサイトの URL や容量などを調べます。よく使うコマンドレットは OneNote に記録し、適宜コピペして使っていましたが、Web 上からもパッと探せた方が便利かと思い、コマンドのサンプルをまとめてみることにしました。

※ 随時更新予定です

 

SharePoint Online 管理シェルのモジュール管理

コマンド 説明
Install-Module Microsoft.Online.SharePoint.PowerShell インストール
Update-Module Microsoft.Online.SharePoint.PowerShell アップデート
Get-Module Microsoft.Online.SharePoint.PowerShell -ListAvailable | Select Name,Version バージョン確認

SharePoint Online 管理シェルのコマンド集

値を取得する (Get コマンド)
コマンド 説明
Connect-SPOService -Url [Admin Portal Url] SPO 管理センターに接続
Get-SPOTenant テナント単位の設定を列挙
Get-SPOSite -Limit All | select Url, Title, Owner すべてのサイト コレクションを列挙
Get-SPOSite -Limit All -Template STS#0 クラシックのチームサイトを列挙
Get-SPOSite -Limit All -Template STS#3 モダン チームサイトを列挙
Get-SPOSite -Limit All -Template GROUP#0 Microsoft 365 グループが紐づくチームサイトを列挙
Get-SPOSite -Limit All -Template SITEPAGEPUBLISHING#0 コミュニケーション サイトを列挙
Get-SPOSite -Limit All -Template SPSPERS#10 -IncludePersonalSite:$true OneDrive for Business のサイトを列挙
Get-SPOSite -Limit All -Template TEAMCHANNEL#0 プライベート チャネルに紐づくサイト コレクションを列挙
Get-SPODeletedSite -Limit ALL 削除済みのサイトコレクションを列挙
Get-SPODeletedSite -IncludeOnlyPersonalSite -Limit ALL 削除済みの OneDrive for Business サイトを列挙
Get-SPOSite -Limit All | select Url,StorageUsageCurrent, StorageQuota, StorageQuotaWarningLevel 取得するプロパティを絞り込む (Url/サイト名/現在の使用量/使用量の上限/警告レベル)
Get-SPOSite -Limit All | select Url,Title,DenyAddAndCustomizePages カスタムスクリプトの設定を取得
Get-SPOSite -Limit All | select Url,Title,SharingCapability 共有の状態を取得
Get-SPOSite -Identity [URL] | fl 指定したサイトのすべてのプロパティを表示
Get-SPOSite -Identity [URL] | select Url,Title,DenyAddAndCustomizePages 指定したサイトのカスタムスクリプトの設定を取得

Get-SPOSite -Identity [URL] | select Url,StorageUsageCurrent, StorageQuota, StorageQuotaWarningLevel

指定したサイトの Url/サイト名/現在の使用量/使用量の上限/警告レベルを取得

Get-SPOSite -Identity [URL] | select Template

指定したサイトのサイトテンプレートの種類を取得

 

値を変更する (Set コマンド)
コマンド 説明
Get-SPOSite -Limit All | where{$_.Title -like [String]} 指定した文字列を含むサイトのみ列挙
Get-SPOSite -Limit All | where{$_.StorageQuota -gt [MB]} サイト容量の上限が 指定した容量 (MB) より大きいサイトのみ列挙
Get-SPOSite -Limit All | Foreach{ Set-SPOSite -Identity $_.Url [-Parameter][Value]} サイトに対する変更を一括で処理する
Set-SPOSite -Identity [URL] -StorageQuota 102400 -StorageQuotaWarningLevel 51200 指定したサイトの容量を 100GB に、警告レベルを 50GB に設定する
Set-SPOSite -Identity [URL] -DenyAddAndCustomizePages [$True/$False] 指定したサイトのカスタムスクリプト許可の設定を変更する

PnP のモジュール管理

コマンド 説明
Install-Module SharePointPnPPowerShellOnline インストール
Update-Module SharePointPnPPowerShellOnline アップデート
Get-Module SharePointPnPPowerShellOnline -ListAvailable | Select Name,Version バージョン確認

PnP のコマンド集

コマンド 説明
Connect-PnPOnline -Url [URL] サイトに接続する
Get-PnPWeb 現在のサイトを取得
Get-PnPSubWebs -Recurse 現在のサイト配下のすべてのサブサイトを列挙 (Title, Url, WebId)
Get-PnPList 現在のサイト配下のリスト/ライブラリを列挙 (Title, Url, WebId)
Get-PnPList -Identity [Title] 指定したリスト/ライブラリを取得 ()
Get-PnPFeature -Scope Site サイトコレクションの機能一覧を取得 (DisplayName, DefinitionId)
Get-PnPFeature -Scope Web サイト機能一覧を取得 (DisplayName, DefinitionId)
Get-PnPProperty -ClientObject $list -Property Views, Forms
$list.Views
$list.Forms
リストのビューとフォームの一覧を取得
Get-PnPProperty -ClientObject $list -Property WorkflowAssociations リスト ワークフローの関連付け情報を取得


管理シェルが対応していないグループサイトのプロパティを変更

Connect-PnPOnline -Url [GROUPSITE URL] -Credentials (Get-Credential)
$clientcontect = Get-PnPContext
$clientcontect.Site.DisableAppViews = $true;
$clientcontect.Site.DisableFlows = $true;
Invoke-PnPQuery

一緒によく使うコマンド オプション

コマンド

説明

| Export-Csv -NoTypeInformation -Encoding UTF8 -Path "C:\<任意のパス>\result.csv"

実行結果を CSV ファイルに出力する

| Out-GridView

結果を別ウインドウで表示

| Out-GridView -PassThru

結果を別ウインドウで表示 (フィルタした結果を PowerShell に返す)

| Format-Table -AutoSize -Wrap

出力結果を省略 (...) せずに表示

Start-Transcript results.txt

実行結果の記録を開始

Stop-Transcript

実行結果の記録を終了

 

 Out-GridView の動作については別記事にまとめています。

www.samurainote.com

 

今回の投稿は以上です。

他にも思いついたら随時更新します!