次の方法で共有


組織内のユーザーのために OneDrive を事前プロビジョニングする

既定では、ユーザーが初めて OneDrive を参照すると、自動的に作成 (プロビジョニング) されます。 以下のような場合には、ユーザーの OneDrive の場所を事前に準備する、つまり、事前プロビジョニングすることもできます。

  • 新しい従業員を追加するカスタム プロセスが組織にあり、新しい従業員を追加するときに OneDrive を作成したい場合。

  • organizationは、オンプレミスの SharePoint Server から Microsoft 365 に移行する予定です。

  • 組織が別のオンライン ストレージ サービスからの移行を計画している場合。

この記事では、PowerShell を使用してユーザー向けの OneDrive を事前プロビジョニングする方法を説明します。

重要

事前プロビジョニングしているユーザー アカウントはサインインを許可する必要があり、SharePoint ライセンスも割り当てられている必要があります。 このコマンドレットを使用して OneDrive をプロビジョニングするには、SharePoint 管理者であり、SharePoint ライセンスを割り当てる必要があります。

注:

多数のユーザーに対して OneDrive を事前プロビジョニングする場合、OneDrive の場所が作成されるまでに数日かかる場合があります。

ユーザー向けの OneDrive の事前プロビジョニング

  1. 多数のユーザーに OneDrive を事前プロビジョニングしている場合は、これらのユーザーのリストを作成してファイルとして保存します。 たとえば、次を含む、Users.txt という名前のテキスト ファイルを作成します。

    user1@contoso.com
    user2@contoso.com
    user3@contoso.com
    
  2. 最新の SharePoint Online 管理シェルをダウンロードします

    注:

    SharePoint Online 管理シェルの以前のバージョンがインストールされている場合は、[プログラムの追加と削除] に移動して、"SharePoint Online 管理シェル" をアンインストールします。

  3. Microsoft 365 で SharePoint 管理者として SharePoint に接続します。 方法の詳細については、「SharePoint Online 管理シェルの使用を開始する」を参照してください。

    注:

    PowerShell コマンド Request-SPOPersonalSite は、サインインが許可されているユーザーに対してのみ機能します。 ユーザーのサインインをブロックした場合は、手順 1 で作成したテキスト ファイルを使用して PowerShell コマンド Update-MgUser を 実行して、ユーザーのサインインを許可できます。

    Get-Content -path "C:\Users.txt" | ForEach-Object { Update-MgUser -UserPrincipalName $_ -BlockCredential $False }
    
  4. PowerShell コマンド Request-SPOPersonalSite を実行し、手順 1 で以前作成したテキスト ファイルを使用します。

    $users = Get-Content -path "C:\Users.txt"
    Request-SPOPersonalSite -UserEmails $users
    

OneDrive がユーザー用に作成されたことを確認するには、「組織内のすべてのユーザーの OneDrive URL のリストを取得する」を参照してください。

organization内のすべてのライセンスユーザーに対して OneDrive を事前プロビジョニングする

次のコード スニペットは、199 のバッチで OneDrive を事前プロビジョニングします。

注:

Microsoft 365 テナント ID を指定する必要があります。 詳細については、「 ID とドメイン名を検索する」を参照してください。

Param(
    [Parameter(Mandatory = $True)]
    [String]
    $SharepointURL,
    [Parameter(Mandatory = $True)]
    [String]
    $tenantID
)

$scope = 'User.Read.All'
Connect-MgGraph -TenantId $tenantId -Scopes $scope
Connect-SPOService -Url $SharepointURL;

$list = @() #list of UPN to pass to the SP command
$Totalusers = 0 #total user provisioned.

#Get licensed users
$users = Get-MgUser -Filter 'assignedLicenses/$count ne 0' -ConsistencyLevel eventual -CountVariable licensedUserCount -All -Select UserPrincipalName

foreach ($u in $users) {
    $Totalusers++
    Write-Host "$Totalusers/$($users.Count)"
    $list += $u.userprincipalname

    if ($list.Count -eq 199) {
        #We reached the limit
        Write-Host "Batch limit reached, requesting provision for the current batch"
        Request-SPOPersonalSite -UserEmails $list -NoWait
        Start-Sleep -Milliseconds 655
        $list = @()
    }
}

if ($list.Count -gt 0) {
    Request-SPOPersonalSite -UserEmails $list -NoWait
}
Disconnect-SPOService
Disconnect-MgGraph
Write-Host "Completed OneDrive Provisioning for $Totalusers users"

ハイブリッド OneDrive の計画