SharepointPowerShellの実行には、SharePoint管理者のみではなく、取得、変更を行うサイトのサイト管理者(サイトコレクション管理者)まで権限を求められることがある。すべてのサイトに対してSharePointPowerShellから情報の取得・変更をする場合は、事前に本記事参考にサイト管理者の権限を付与すること。
検証環境について
動作確認した検証環境は以下の通り。
OS:Microsoft Windows 11 Enterprise
OSbuildバージョン:10.0.22621
PowerShellのバージョン:5.1.22621.2506
SharePointPowershellのモジュール名とバージョン
Microsoft.Online.SharePoint.PowerShell 16.0.24524.12000サインインアカウントの権限はグローバル管理者。
使用するコマンド
Get-SPOUser
使用例
Get-SPOUser -Site https://****.sharepoint.com/sites/12345取得できる情報例
Display Name Login Name Groups User Type
------------ ---------- ------ ---------
12345 Members fc1d000b-ee6f-4aa1-9357-5dc82683b017 {12345 Members} Member
12345 Owners fc1d000b-ee6f-4aa1-9357-5dc82683b017_o {12345 Owners} Member
Everyone true {} Member
Everyone except external users spo-grid-all-users/5bb01870-ac2a-4aa5-a80d-01e5ea98abc4 {12345 Members} Member
NT Service\spsearch nt service\spsearch {} Member
SharePoint App app@sharepoint {} Member
System Account SHAREPOINT\system {12345 Owners} Member
田中 太郎 ****@****.onmicrosoft.com {} MemberGet-SPOSite
使用例
Get-SPOSite -IncludePersonalSite:$false -Limit ALL取得できる情報例
Url Owner Storage Quota
--- ----- -------------
https://0vzhl.sharepoint.com/sites/project 26214400
https://0vzhl.sharepoint.com/sites/knowledge 1048576
https://0vzhl.sharepoint.com/sites/Mark8ProjectTeam 26214400すべてのサイトにサイト管理者として追加する
#サイト管理者に追加するアカウント
$siteAdmin = "****@*****.onmicrosoft.com"
#SharepointPowerShellに接続する
Connect-SPOService -Url https://***-admin.sharepoint.com/
#個人サイトと読み取り専用を除いたすべてのSharepointサイトを取得する
$allSite = Get-SPOSite -IncludePersonalSite:$false -Limit ALL | ?{$_.LockState -ne "ReadOnly"}
#取得したサイトの数だけ繰り返す
foreach($site in $allSite){
#該当サイトのサイト管理者にユーザーを追加する
Set-SPOUser -Site $site.Url `
-LoginName $siteAdmin `
-IsSiteCollectionAdmin $true
}
#SharepointPowerShellから切断する
Disconnect-SPOService問い合わせフォーム
リンク切れのご報告や、記載内容に不備がありましたら、お手数をおかけしますが
以下お問い合わせフォームからご報告をお願い致します。
コマンドの仕様確認やエラー内容の確認、対処方法については、ご契約されているMicrosoftかCSPへお問い合わせください。
※いただきました内容は確認させていただきますが、必ずしも回答をお約束するものではございません。





