OneDrive for Business の利用容量を PowerShell で確認したいというお話。調査中。
<SharePoint Online Management 利用可能か確認>
Get-Module -ListAvailable -Name Microsoft.Online.SharePoint.PowerShell
<SharePoint Online Management インストール>
Install-Module -Name Microsoft.Online.SharePoint.PowerShell
<SharePoint Online Management 古いバージョンを削除>
Get-InstalledModule -Name Microsoft.Online.SharePoint.PowerShell -AllVersions | Sort-Object -Property Version -Descending | Select-Object -Skip 1 | Uninstall-Module -Confirm
<SharePoint Online Management 接続>
$SharePointAdminCenterUrl = "https://{initialDomain}-admin.sharepoint.com"
Connect-SPOService -Url $SharePointAdminCenterUrl
<サイト一覧取得>
$sites = Get-SPOSite -Limit All -IncludePersonalSite $false
false(または無指定)なら個人用サイト以外。ture なら個人用サイト以外+個人用サイトになり、個人用サイトに絞るなら例えば下記。
$sites = Get-SPOSite -Limit All -IncludePersonalSite $true -Filter "Url -like '-my.sharepoint.com/personal/'"
<サイトの棚卸>
Qiita:SharePoint Onlineサイトのうち外部共有が有効かつ現在ゲストがいないサイトをPowerShellを使ってCSVに出力する
$sites = $sites | Where-Object{$_.Template -eq "SITEPAGEPUBLISHING#0"}
$sites = $sites | Where-Object{$_.SharingCapability -ne "Disable"}
$sites = $sites | Where-Object{$group = Get-SPOSiteGroup -Site $_.Url | Where-Object{ $_.Title -Like "*閲覧者" -or $_.Title -Like "*Visitors" }; -not($group) -and ($group.Users.Count -ne 0)}
$sites に残ったものが棚卸対象。なお、Get-SPOSiteGroup はサイト管理者の権限がないと実行できない。例えば Company Administrator というグローバル管理者グループをサイト管理者に追加する。
株式会社芳和システムデザイン:グローバル管理者による SharePoint の管理
$SharePointAdminCenterUrl = "https://{initialDomain}-admin.sharepoint.com"
$CompanyAdminLoginName = (Get-SPOUser -Site $SharePointAdminCenterUrl | Where-Object{ $_.DisplayName -eq "Company Administrator"}).LoginName
(Get-SPOUser -Site $Site.Url -LoginName "c:0t.c|tenant|${CompanyAdminLoginName}").IsSiteAdmin
Set-SPOUser -Site $Site.Url -LoginName "c:0t.c|tenant|${CompanyAdminLoginName}" -IsSiteCollectionAdmin $true
<個人用サイト表示(使用容量が指定より多いもの)>
Get-SPOSite -Limit All -IncludePersonalSite $true -Filter "Url -like '-my.sharepoint.com/personal/'" | Where-Object{$_.StorageUsageCurrent -gt [MB単位で指定]} | Select-Object StorageUsageCurrent,StorageQuota,StorageQuotaWarningLevel,Owner,Url | Sort-Object -Property StorageUsageCurrent -Descending | Format-Table
Oh! 365 blog:【SPO】SharePoint Online でよく使う PowerShell コマンド一覧 (管理者向けチートシート)
<SharePoint Online Management 利用可能か確認>
Get-Module -ListAvailable -Name Microsoft.Online.SharePoint.PowerShell
<SharePoint Online Management インストール>
Install-Module -Name Microsoft.Online.SharePoint.PowerShell
<SharePoint Online Management 古いバージョンを削除>
Get-InstalledModule -Name Microsoft.Online.SharePoint.PowerShell -AllVersions | Sort-Object -Property Version -Descending | Select-Object -Skip 1 | Uninstall-Module -Confirm
<SharePoint Online Management 接続>
$SharePointAdminCenterUrl = "https://{initialDomain}-admin.sharepoint.com"
Connect-SPOService -Url $SharePointAdminCenterUrl
<サイト一覧取得>
$sites = Get-SPOSite -Limit All -IncludePersonalSite $false
false(または無指定)なら個人用サイト以外。ture なら個人用サイト以外+個人用サイトになり、個人用サイトに絞るなら例えば下記。
$sites = Get-SPOSite -Limit All -IncludePersonalSite $true -Filter "Url -like '-my.sharepoint.com/personal/'"
<サイトの棚卸>
Qiita:SharePoint Onlineサイトのうち外部共有が有効かつ現在ゲストがいないサイトをPowerShellを使ってCSVに出力する
$sites = $sites | Where-Object{$_.Template -eq "SITEPAGEPUBLISHING#0"}
$sites = $sites | Where-Object{$_.SharingCapability -ne "Disable"}
$sites = $sites | Where-Object{$group = Get-SPOSiteGroup -Site $_.Url | Where-Object{ $_.Title -Like "*閲覧者" -or $_.Title -Like "*Visitors" }; -not($group) -and ($group.Users.Count -ne 0)}
$sites に残ったものが棚卸対象。なお、Get-SPOSiteGroup はサイト管理者の権限がないと実行できない。例えば Company Administrator というグローバル管理者グループをサイト管理者に追加する。
株式会社芳和システムデザイン:グローバル管理者による SharePoint の管理
$SharePointAdminCenterUrl = "https://{initialDomain}-admin.sharepoint.com"
$CompanyAdminLoginName = (Get-SPOUser -Site $SharePointAdminCenterUrl | Where-Object{ $_.DisplayName -eq "Company Administrator"}).LoginName
(Get-SPOUser -Site $Site.Url -LoginName "c:0t.c|tenant|${CompanyAdminLoginName}").IsSiteAdmin
Set-SPOUser -Site $Site.Url -LoginName "c:0t.c|tenant|${CompanyAdminLoginName}" -IsSiteCollectionAdmin $true
<個人用サイト表示(使用容量が指定より多いもの)>
Get-SPOSite -Limit All -IncludePersonalSite $true -Filter "Url -like '-my.sharepoint.com/personal/'" | Where-Object{$_.StorageUsageCurrent -gt [MB単位で指定]} | Select-Object StorageUsageCurrent,StorageQuota,StorageQuotaWarningLevel,Owner,Url | Sort-Object -Property StorageUsageCurrent -Descending | Format-Table
Oh! 365 blog:【SPO】SharePoint Online でよく使う PowerShell コマンド一覧 (管理者向けチートシート)
※コメント投稿者のブログIDはブログ作成者のみに通知されます