OneDrive for BusinessにREST API経由でアクセスするWebアプリケーションを開発しています。 多くのユーザーがいるため、ユーザーはシステムにユーザーの更新トークンを構成するのが難しいです。OneDrive for Business APIを使用したユーザーのファイルへの管理アクセス
私は、1人の管理者トークンですべてのユーザーのファイルにアクセスしたいと思います。 しかし、OneDrive APIにはこのような機能がないようです。 どうすればよいですか?事前
OneDrive for BusinessにREST API経由でアクセスするWebアプリケーションを開発しています。 多くのユーザーがいるため、ユーザーはシステムにユーザーの更新トークンを構成するのが難しいです。OneDrive for Business APIを使用したユーザーのファイルへの管理アクセス
私は、1人の管理者トークンですべてのユーザーのファイルにアクセスしたいと思います。 しかし、OneDrive APIにはこのような機能がないようです。 どうすればよいですか?事前
で
おかげで直接ボタンを有効にし、すべてのユーザーがファイルにアクセスするには、そのような機能はありませんが。しかし、はい、方法があります。 私も同じ問題があり、マイクロソフトのサポートに連絡しました。
他のすべてのユーザーMySitesにセカンダリ管理者としてユーザーを追加するように指示しました。 2つの方法があります。
1)1つのドライブアカウントを作成する前に。 - >ユーザーがまだOneDriveアカウントを作成していない場合、次の設定は、今後アカウントを作成するすべてのユーザーに二次管理者として管理者を設定するのに役立ちます。 - > Go to SharePoint admin center->ユーザープロファイルに移動します。 - >そこに自分のサイト設定が表示されます。私のサイトのセカンダリ管理者を見つけるためには、設定をクリックしてください。表示されたフィールドに管理ユーザーを追加し、チェックボックスをオンにすると、セカンダリ管理者が有効になります。
2)ユーザーアカウントが既に終了している場合は、セカンダリ管理者を個々のアカウントに明示的に設定する必要があります。 - >これはユーザープロファイルで、ユーザーの下でユーザープロファイルを管理するをクリックします。そして、私を探してください。 - >使用可能なすべてのユーザーのリストが入力されます。ユーザー名にマウスを移動すると下矢印ボタンが表示され、クリックするとメニューが開き、サイトコレクション管理者をクリックします。管理者ユーザーをサイトコレクション管理者フィールドに追加して保存します。
これら2つの方法は、uiとapiからすべてのユーザードライブにアクセスするのに役立ちます。
2番目の手順では、ユーザーをセカンダリ管理者として設定するカスタムMicrosoft SharePointオンラインスクリプト(実際はパワーシェルスクリプト)を書くことができます。
これを行うには、以下のpowershellスクリプトを使用してください。以下のスニペットをfile.ps1に保存し、sharepoint online management shellで実行してください。
Import-module msonline
Write-Host "Please input credential of administrator"
$cred = Get-Credential
Connect-MsolService -Credential $cred
Write-Host "Please enter tenant"
$tenant = Read-Host
$adminsite = "https://"+ $tenant +"-admin.sharepoint.com"
Connect-SPOService -Credential $cred -url $adminsite
Write-Host "Please specify the administrator user principal name which will be the admin member for all personal sites"
$admin = Read-Host
$usersLogin = Get-MsolUser |ForEach-Object {$_.UserPrincipalName}
foreach($user in $usersLogin)
{
$account,$domain = $user.Split("@",2)
if ($account.Contains("."))
{
$account= $account.Replace(".","_")
}
ElseIf ($domain.Contains("."))
{
$domain= $domain.Replace(".","_")
}
$site = "https://" + $tenant + "-my.sharepoint.com/personal/"+ $account +"_" + $domain
Set-SPOUser -Site $site -LoginName $admin -IsSiteCollectionAdmin $true
Write-Host $admin " has been added as an administrator for personal site " $site`n
}