Migrar las unidades de inicio de los usuarios a OneDrive para empresas con PowerShell

Tenemos Office 365 desde hace casi 3 años y una de las cosas en mi lista de tareas pendientes era migrar las carpetas de inicio de los usuarios a OneDrive para empresas. Lo intenté el año pasado, pidiéndoles a todos que copiaran o movieran los archivos ellos mismos, pero eso no funcionó según lo planeado.

Así que esta vez tuve que cambiar mis tácticas, claramente, los usuarios (más de 150) no iban a mover los archivos por sí mismos. Ahora sé que OneDrive tiene la capacidad de mover las carpetas conocidas (Escritorio, Documentos e Imágenes), pero esos no son los archivos personales que se almacenan en el servidor de archivos. Así que para mover los archivos vamos a usar PowerShell.

El almacenamiento del servidor es costoso, por lo que es una pérdida de dinero comprar almacenamiento para las carpetas de inicio cuando cada usuario obtiene almacenamiento ilimitado en la nube. Otra ventaja para los usuarios es que pueden acceder a sus archivos desde cualquier ubicación, por supuesto.

Índice

Preparando el movimiento de la carpeta de inicio

Antes de que podamos mover los archivos, debemos preparar algunas cosas. Hay algunas configuraciones de GPO que podemos configurar, revise la configuración de administración de OneDrive, debemos informar a nuestros usuarios y debemos implementar el script.

Otro problema potencial son los nombres de archivo no válidos o las rutas demasiado largas. Al igual que SharePoint, OneDrive para empresas tiene algunas limitaciones de archivos:

  • Nombres de archivos o carpetas no válidos
  • Caracteres inválidos ( ” * : < > ? / |)
  • Tamaño máximo de archivo de 15 Gb
  • Límite de ruta de 400 caracteres

Lea la lista completa de limitaciones aquí.

Comprobación del centro de administración de OneDrive para empresas

Siempre es bueno consultar el Centro de administración de Office 365 antes de ejecutar este tipo de migraciones. Se agregan nuevas configuraciones regularmente y es posible que desee limitar, por ejemplo, las opciones de uso compartido de OneDrive para la Empresa.

Asegúrese de que la configuración esté en línea con las políticas de seguridad de su empresa.

Mover carpeta conocida de OneDrive para la empresa

Mover las carpetas conocidas (Escritorio, Documentos e Imágenes) a OneDrive es algo que realmente debería habilitar. Solo requiere dos configuraciones de GPO para configurarlo y se implementará solo. Sus usuarios pueden trabajar y almacenar los archivos como solían hacerlo, pero tienen una copia de seguridad segura en la nube.

Cuando cambiamos de un entorno completo de Citrix a uno independiente, una de mis preocupaciones era mantener seguros los datos del usuario. Por supuesto, almacenan los archivos relacionados con el trabajo en los controladores de red y ahora en SharePoint. Pero todos sabemos que a los usuarios les gusta mantener los archivos relacionados con el trabajo en su escritorio o pueden guardarlos sin saberlo en su carpeta de documentos.

Y sí, necesitamos educar a nuestros usuarios, pero al configurar carpetas conocidas, tenemos un problema menos de qué preocuparnos.

Obtenga su ID de inquilino de Office 365

Antes de que podamos configurar los GPO, necesitamos obtener nuestra ID de inquilino. Con PowerShell podemos conseguirlo con un solo comando:

# Connect to the Azure AD
connect-azuread

# result:
Account                Environment Tenant
-------                ----------- ------
[email protected]   AzureCloud  <your tenant ID>

# Optional - Get your tenant details
get-azureadtenantdetail

Después de conectarse con éxito a Azure AD, obtendrá el ID de inquilino en los resultados. Si no lo entiende, siempre puede usar el cmdlet Get-AzureAdTenantDetail donde objectid es su identificación de inquilino.

Configurando los GPO

Hay un par de GPO que necesitamos configurar. Tenga en cuenta que si habilita este GPO para toda su organización a la vez, tendrá un gran pico de tráfico de red debido a la sincronización de OneDrive. Por lo tanto, es posible que desee utilizar un grupo de seguridad temporal para orientar el GPO.

Cree un nuevo GPO y navegue a las siguientes políticas:

Computer configurationPoliciesAdministrative TemplatesOneDrive

Si no puede encontrar las Políticas de grupo de OneDrive, es posible que primero deba copiar los archivos adml y admx:

  1. Copie el archivo .adml y .admx de %localappdata%MicrosoftOneDriveNúmero de compilaciónadm en una estación de trabajo
  2. Pegue el .admx en el almacén central del controlador de dominio: \dominiosysvoldomainPoliciesPolicyDefinitions
  3. Pegue el .adml en la carpeta de idioma correcta en la tienda central

Migrar la carpeta de inicio del usuario a OneDrive

Si aún no lo ha hecho, primero habilite la política Sconfigurar OneDrive de forma silenciosa usando la cuenta principal de Windows. Esto le ahorrará al usuario un inicio de sesión adicional cuando configure OneDrive por primera vez.

Además, asegúrese de limitar el ancho de banda de carga, de esta manera un usuario no puede ralentizar toda la conexión a Internet. Establecer la política Establecer el porcentaje máximo de ancho de banda de carga que usa OneDrive.exe a algo así como 70.

Para mover la carpeta conocida, habilite la política Redirigir silenciosamente la carpeta conocida de Windows a OneDrive e ingrese la ID del arrendatario. Puede habilitar una notificación de usuario si lo desea.

También se recomienda habilitar el Solicitar al usuario que mueva la carpeta conocida de Windows a OneDrive política para admitir cualquier cliente de OneDrive heredado.

Mover la carpeta de inicio de los usuarios

El último paso, y esto es lo que planeamos hacer, es mover los datos de la carpeta de inicio del usuario a su cuenta de OneDrive para empresas. En mi caso son los archivos almacenados en los servidores de archivos. Entonces, cada usuario tiene una unidad de red asignada a su carpeta.

Algunas cosas que debemos abordar en nuestro script de PowerShell son encontrar la carpeta OneDrive de los usuarios, verificar si está conectada y dejar una indicación en la carpeta de inicio para que sepamos que está copiada. No vamos a mover los archivos, solo copiarlo. Planeo mover los archivos a nuestro servidor de archivos más tarde para que siempre tengamos una copia de seguridad.

PowerShell y OneDrive

Para verificar si OneDrive está conectado, debemos importar un archivo DLL para leer el estado de OneDrive. Descargue OneDriveLib.dll de este repositorio de GitHub. Colóquelo en una ubicación a la que todos los usuarios puedan acceder, recomiendo el inicio de sesión de red, pero cualquier otro recurso compartido de red también puede funcionar.

Primero, importamos el archivo DLL:

Import-Module \contoso.localnetlogonOnedriveLib.dll

A continuación, necesitamos obtener la ruta a la carpeta OneDrive de los usuarios. La ubicación predeterminada de esta carpeta es la carpeta de perfil de los usuarios. Si tiene varias carpetas de OneDrive, puede usar la variable USERPROFILE; de lo contrario, recomendaría usar la variable OneDriveCommercial.

#Find OneDrive folder
$path = $env:OneDriveCommercial

# Alternative:
# $path = $env:USERPROFILE + 'OneDrive - LazyAdmin'

Para comprobar si tenemos la carpeta correcta y que OneDrive está conectado podemos obtener el estado de OneDrive:

#Get OneDrive status
$ODStatus = Get-ODStatus -ByPath $path

# or in short:
$ODStatus = Get-ODStatus -ByPath $env:OneDriveCommercial

Si está conectado, devolverá 'UpToDate' o 'Syncing'. Entonces verificamos el resultado y usamos robocopy para copiar los archivos.

if ($ODStatus -eq 'UpToDate' -or $ODStatus -eq 'Syncing') {
    #OneDrive is connected
    write-host 'OneDrive connected and found'
    robocopy $env:HOMESHARE $env:OneDriveCommercial /E /SEC
    new-item $env:HOMESHARE -name '_FILES COPIED TO ONEDRIVE.txt' -ItemType 'file' -Value 'Files Copied'
}

Como puede ver en la última línea, creamos un nuevo elemento, un archivo de texto. Ejecutamos un script de PowerShell, más adelante, para verificar si migramos todas las carpetas de la unidad principal antes de archivarlas.

Conclusión

Ejecute PowerShell en el modo de contexto del usuario que inició sesión, puede usar PDQ Deploy para esto, un GPO (secuencia de comandos de inicio de sesión) o SCCM. Si tiene muchos usuarios, asegúrese de distribuir la implementación para limitar el impacto en su red.

Con PowerShell, asegúrese de comprobar las variables de entorno disponibles. En mi primer intento de hacer este script, probé usando la letra de la unidad de la carpeta de inicio de los usuarios. Eso no funcionó. Mientras buscaba una alternativa, noté que podemos usar $env:HomeDrive, que devolverá la letra de la unidad, o $env:HomeShare, que devolverá la ruta real.


Si quieres conocer otros artículos similares a Migrar las unidades de inicio de los usuarios a OneDrive para empresas con PowerShell puedes visitar la categoría Office 365.

Artículos de interés

Subir

Si continuas utilizando este sitio aceptas el uso de cookies. Más información