どうもミツシマです。
今回は、各ユーザーのOneDriveの使用容量やSharePointの各サイトの使用容量等をPowershellコマンドで一覧出力する方法を検証してみました。
※「CSOM」・「SharePoint Online管理シェル」でも出来るかと思いますが、「PnP Powershell」でやるのが一番簡単だったので、今回はこちらを選択しています。
「PnP Powershell」に関しては以下のサイトを参考にすると良いかもです。
PnP PowerShell の概要
まずは事前準備としてインストールから!
管理者としてPowershellを起動して
>Install-Module SharePointPnPPowerShellOnline
でインストール出来ます。
インストールが完了したら、下記コマンドでOneDriveや各SharePoint Onlineサイトの使用容量をCSV出力することが出来ます。
当然、最初に接続する際の資格情報を聞かれますが、テナント管理者(SharePoint管理者)権限を持っているMicrosoft 365のIDとPWが必要です。
出力された値はそれぞれ以下のような意味です。
※タイムゾーンIDが「20」であれば、「日本(大阪、札幌、東京)」を意味しています。
タイムゾーンIDが何を示しているかを確認したい場合には「Get-PnPTimeZoneId」で一覧を確認することが可能です!!
実際に「Get-AllSiteInfo.ps1」を実行するとこんな感じです↓↓
今回は、各ユーザーのOneDriveの使用容量やSharePointの各サイトの使用容量等をPowershellコマンドで一覧出力する方法を検証してみました。
〜検証〜
SharePoint Onlineを操作するPowershellコマンドとしては、「CSOM」・「SharePoint Online管理シェル」・「PnP Powershell」がありますが、今回は「PnP Powershell」を使用してやってみたいと思います。※「CSOM」・「SharePoint Online管理シェル」でも出来るかと思いますが、「PnP Powershell」でやるのが一番簡単だったので、今回はこちらを選択しています。
「PnP Powershell」に関しては以下のサイトを参考にすると良いかもです。
PnP PowerShell の概要
まずは事前準備としてインストールから!
管理者としてPowershellを起動して
>Install-Module SharePointPnPPowerShellOnline
でインストール出来ます。
インストールが完了したら、下記コマンドでOneDriveや各SharePoint Onlineサイトの使用容量をCSV出力することが出来ます。
Get-AllSiteInfo.ps1
#Sharepoint OnlineサイトURLを変数に代入
$SPOURL ="https://xxxxx.sharepoint.com"
#カレントフォルダ取得
$CurrentFolder = Split-Path $MyInvocation.MyCommand.Path -Parent
$CSVFile = $CurrentFolder + "\SPOSiteInfo.csv"
#資格情報の取得
$UserCredential = Get-Credential
#PnPOnlineへ接続
try{
Connect-PnPOnline -Url $SPOURL -Credentials $UserCredential -ErrorAction Stop
}catch{
#接続でエラー発生の際に処理中断
Write-Host "PnPOnlineへの接続に失敗しました.IDとPWを再確認してください.`r`n" -ForegroundColor Red
Write-Host "処理を中断します.`r`n" -ForegroundColor Red
pause
Exit
}
#OneDriveを含めたすべてのサイト情報を取得
$AllsiteInfo = Get-PnPTenantSite -IncludeOneDriveSites
#カレントフォルダにCSVファイル出力 ※出力項目:URL、タイトル、言語設定(1041=日本語)、タイムゾーン(20=日本)、ストレージ使用容量(MB)、ストレージ使用容量警告値(MB)、ストレージ上限(MB)
$AllsiteInfo | select Url,Title,Lcid,TimeZoneid,StorageUsage,StorageWarningLevel,StorageMaximumLevel | Export-Csv -Path $CSVFile -Encoding Default -NoTypeInformation
Write-Host "CSVファイルを出力しました.`r`n" -ForegroundColor Green
Write-Host "処理を終了します.`r`n" -ForegroundColor Green
##PnPOnlineから切断
Disconnect-PnPOnline
pause
〜解説〜
特に解説するほどでもないのですが、変数「$SPOURL」を各利用環境に応じて変更する必要があります。それ以外は特に変更する必要がなく、そのままで実行すればps1ファイルと同じ階層に「SPOSiteInfo.csv」というCSVファイルが出力されるコマンドとなります。当然、最初に接続する際の資格情報を聞かれますが、テナント管理者(SharePoint管理者)権限を持っているMicrosoft 365のIDとPWが必要です。
出力された値はそれぞれ以下のような意味です。
プロパティ値 | 意味 |
Url | URL |
Title | サイトの名前(タイトル) |
Lcid | 言語 |
TimeZoneId | タイムゾーンID |
StorageUsage | 使用容量(MB) |
StorageWarningLevel | ストレージ使用容量警告値(MB) |
StorageMaximumLevel | ストレージ上限(MB) |
タイムゾーンIDが何を示しているかを確認したい場合には「Get-PnPTimeZoneId」で一覧を確認することが可能です!!
実際に「Get-AllSiteInfo.ps1」を実行するとこんな感じです↓↓
成功例

失敗例

出力されるCSVファイル

使用する管理者ユーザーが各ユーザーのOneDriveへのアクセス権限がなくても、
使用容量等が確認出来るところとか便利ですね!!
今日の検証はこんなところで終了しますっ(^o^)

失敗例

出力されるCSVファイル

使用する管理者ユーザーが各ユーザーのOneDriveへのアクセス権限がなくても、
使用容量等が確認出来るところとか便利ですね!!
今日の検証はこんなところで終了しますっ(^o^)
スポンサードリンク
コメント