Aprovisionamiento previo de OneDrive para los usuarios de la organización

De forma predeterminada, la primera vez que un usuario navega a su OneDrive, se crea (aprovisiona) automáticamente para él. En algunos casos, como el siguiente, es posible que desee que las ubicaciones de OneDrive de sus usuarios estén listas de antemano o preaprovisionadas:

  • Su organización tiene un proceso personalizado para agregar nuevos empleados y desea crear un OneDrive cuando agrega un nuevo empleado.
  • Su organización planea migrar de SharePoint Server local a Microsoft 365.
  • Su organización planea migrar desde otro servicio de almacenamiento en línea.

Este artículo describe cómo preaprovisionar OneDrive para sus usuarios mediante PowerShell.

Importante

Las cuentas de usuario que está aprovisionando previamente deben poder iniciar sesión y también deben tener asignada una licencia de SharePoint. 

Para aprovisionar OneDrive con este cmdlet, debe ser un administrador global o de SharePoint y debe tener asignada una licencia de SharePoint.

Nota

Si está preaprovisionando OneDrive para una gran cantidad de usuarios, es posible que se tarden varios días en crear las ubicaciones de OneDrive.

Primero se debe instalar SharePoint Online Management Shell. Puede descargar e instalar SharePoint Online Management Shell en su máquina cliente desde

https://www.microsoft.com/en-us/download/confirmation.aspx?id=35588

Luego debemos instalar las librerías necesarias de Power Shell

# Install the MSOnline module if this is first use
Install-Module MSOnline
# Add the MSOnline module to the PowerShell session
Import-Module MSOnline

El siguiente fragmento de código preaprovisionará OneDrive en lotes de 199.

Connect-MsolService
Connect-SPOService -Url https://tenant-admin.sharepoint.com

$list = @()
#Counters
$i = 0


#Get licensed users
$users = Get-MsolUser -All | Where-Object { $_.islicensed -eq $true }
#total licensed users
$count = $users.count

foreach ($u in $users) {
    $i++
    Write-Host "$i/$count"

    $upn = $u.userprincipalname
    $list += $upn

    if ($i -eq 199) {
        #We reached the limit
        Request-SPOPersonalSite -UserEmails $list -NoWait
        Start-Sleep -Milliseconds 655
        $list = @()
        $i = 0
    }
}

if ($i -gt 0) {
    Request-SPOPersonalSite -UserEmails $list -NoWait
}