SharePoint Online の管理には、Microsoft 365 管理センターの GUI だけでなく、PowerShell を使用することで効率的に作業を進めることができます。今回は、特に便利な PowerShell スクリプトをいくつかご紹介します。これらのスクリプトを活用することで、SharePoint Online の管理作業がよりスムーズに進むこと間違いなしです。
SharePoint サイトのリスト取得
テナント内のすべての SharePoint サイトのリストを取得するには、以下のスクリプトを使用します。これにより、サイトの URL、タイトル、所有者、ストレージの使用状況などを簡単に確認できます。
# SharePoint Online に接続
Connect-SPOService -Url https://<tenant>-admin.sharepoint.com
# サイトコレクションのリストを取得
$sites = Get-SPOSite -Limit All
# 取得したサイトの情報を表示
$sites | ForEach-Object {
Write-Host "URL: " $_.Url
Write-Host "Title: " $_.Title
Write-Host "Owner: " $_.Owner
Write-Host "Storage Quota (MB): " $_.StorageQuota
Write-Host "Current Storage Usage (MB): " $_.StorageUsageCurrent
Write-Host "-----------"
}
このスクリプトを実行することで、すべてのサイトコレクションの詳細情報を一覧表示できます。テナント内のサイト数が多い場合でも、効率的に管理できます。
サイトのストレージ使用量をチェック
特定のサイトがストレージ容量をどの程度使用しているかを確認し、警告を出すスクリプトです。特に、大量のデータが蓄積されるサイトに対して定期的にチェックを行うのに役立ちます。
# サイト URL の指定
$siteUrl = "https://<tenant>.sharepoint.com/sites/<site-name>"
# サイトの情報を取得
$site = Get-SPOSite -Identity $siteUrl
# ストレージ使用量のチェック
$storageUsage = $site.StorageUsageCurrent
$storageQuota = $site.StorageQuota
Write-Host "Site URL: $($site.Url)"
Write-Host "Current Storage Usage (MB): $storageUsage"
Write-Host "Storage Quota (MB): $storageQuota"
# 80% を超えている場合に警告を表示
if ($storageUsage -gt ($storageQuota * 0.8)) {
Write-Host "Warning: Storage usage exceeds 80% of quota!" -ForegroundColor Red
}
ストレージが上限に近づいている場合、早めに対応するためのアラートが表示されるので便利です。
サイトの所有者を変更
サイトの所有者を変更するには、以下のスクリプトを利用します。新しい所有者のメールアドレスを指定するだけで、簡単に更新できます。
# 変更するサイト URL と新しい所有者のメールアドレス
$siteUrl = "https://<tenant>.sharepoint.com/sites/<site-name>"
$newOwner = "new.owner@domain.com"
# サイト所有者の変更
Set-SPOSite -Identity $siteUrl -Owner $newOwner
Write-Host "Site owner for $siteUrl has been changed to $newOwner."
管理権限を引き継ぐ際や、オーナーの変更が必要な場合に非常に役立つスクリプトです。
サイトの外部共有設定を変更
SharePoint サイトの外部共有設定を変更するスクリプトです。テナントのセキュリティポリシーに応じて、外部共有を許可または禁止する際に使用できます。
# サイト URL と外部共有レベルの設定
$siteUrl = "https://<tenant>.sharepoint.com/sites/<site-name>"
$sharingSetting = "ExternalUserAndGuestSharing" # 例: 'Disabled', 'ExternalUserSharingOnly', 'ExternalUserAndGuestSharing'
# 外部共有設定の変更
Set-SPOSite -Identity $siteUrl -SharingCapability $sharingSetting
Write-Host "External sharing setting for $siteUrl has been changed to $sharingSetting."
外部共有の管理は、セキュリティを確保する上で非常に重要です。このスクリプトを使えば、必要に応じて設定を素早く変更できます。
すべてのユーザーからサイトへのアクセスを削除
以下のスクリプトを使うことで、サイトへのアクセス権を一括で削除し、特定の管理者のみがアクセスできる状態に変更できます。
# サイト URL と管理者のメールアドレス
$siteUrl = "https://<tenant>.sharepoint.com/sites/<site-name>"
$adminUser = "admin.user@domain.com"
# サイト権限の削除
Set-SPOSite -Identity $siteUrl -SharingCapability Disabled
# サイトのすべてのユーザーを削除
Get-SPOUser -Site $siteUrl | ForEach-Object {
if ($_.LoginName -ne $adminUser) {
Remove-SPOUser -Site $siteUrl -LoginName $_.LoginName
Write-Host "Removed user: $($_.LoginName)"
}
}
セキュリティ上の理由から、緊急時や特定のユーザーのみに権限を制限したい場合に有効です。
まとめ
今回紹介した PowerShell スクリプトを活用することで、SharePoint Online の管理がより効率的になります。特に、大規模なテナント環境や多数のサイトを抱える場合は、PowerShell を使って自動化することで作業時間を大幅に短縮できます。
注意: これらのスクリプトを実行する前に、必ずテスト環境で動作確認を行い、本番環境での実行は十分な検証後に行ってください。また、テナントのセキュリティポリシーに従った設定が必要です。
SharePoint Online の管理をもっと効率化したい方は、ぜひこれらのスクリプトを試してみてください!
コメント