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.
- Para obtener información sobre cómo configurar el tamaño de almacenamiento predeterminado, consulte Establecer el espacio de almacenamiento predeterminado para los usuarios de OneDrive .
- Para obtener información sobre el almacenamiento que obtiene con cada plan, consulte Descripción del servicio de OneDrive .
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
}