Recherche de site Web

Migrer les lecteurs personnels des utilisateurs vers OneDrive Entreprise avec PowerShell


Nous utilisons Office 365 depuis presque 3 ans et l'une des choses sur ma liste de choses à faire était de migrer les dossiers de départ des utilisateurs vers OneDrive Entreprise. J’ai essayé l’année dernière, en demandant à chacun de copier ou de déplacer les fichiers lui-même, mais cela n’a pas fonctionné comme prévu.

Cette fois j’ai donc dû changer de tactique, clairement, les utilisateurs (plus de 150) n’allaient pas déplacer les fichiers eux-mêmes. Maintenant, je sais que OneDrive a la capacité de déplacer les dossiers connus (bureau, documents et images), mais ce ne sont pas les fichiers personnels stockés sur le serveur de fichiers. Donc, pour déplacer les fichiers, nous allons utiliser PowerShell.

Le stockage sur serveur est coûteux, c'est donc un gaspillage d'argent d'acheter du stockage pour les dossiers personnels alors que chaque utilisateur bénéficie d'un stockage illimité dans le cloud. Un autre avantage pour les utilisateurs est qu’ils peuvent bien sûr accéder à leurs fichiers depuis n’importe quel endroit.

Préparation du déplacement du dossier personnel

Avant de pouvoir déplacer les fichiers, nous devons préparer certaines choses. Nous pouvons configurer certains paramètres GPO, revoir les paramètres d'administration OneDrive, nous devons informer nos utilisateurs et nous devons déployer le script.

Un autre problème potentiel concerne les noms de fichiers invalides ou les chemins longs. Tout comme SharePoint, OneDrive Entreprise présente certaines limitations en matière de fichiers :

  • Noms de fichiers ou de dossiers invalides
  • Caractères invalides ( ” * : < > ?/\ |)
  • Taille de fichier maximale de 15 Go
  • Limite de chemin de 400 caractères

Lisez la liste complète des limitations ici.

Vérification du centre d'administration OneDrive Entreprise

Il est toujours bon de consulter le Centre d’administration Office 365 avant d’effectuer ce type de migration. De nouveaux paramètres sont ajoutés régulièrement et vous souhaiterez peut-être limiter par exemple les options de partage pour OneDrive Entreprise.

Assurez-vous que les paramètres sont conformes aux politiques de sécurité de votre entreprise.

Déplacement de dossier connu OneDrive Entreprise

Le déplacement des dossiers connus (Bureau, Documents et Images) vers OneDrive est quelque chose que vous devriez vraiment activer. Il ne nécessite que deux paramètres GPO pour le configurer et il se déploiera tout seul. Vos utilisateurs peuvent travailler et stocker les fichiers comme ils en ont l'habitude, mais ils sont sauvegardés en toute sécurité dans le cloud.

Lorsque nous passons d’un environnement Citrix complet à un environnement autonome, l’une de mes préoccupations était de protéger les données des utilisateurs. Bien entendu, ils stockent les fichiers liés au travail sur les pilotes réseau et désormais sur SharePoint. Mais nous savons tous que les utilisateurs aiment conserver les fichiers liés au travail sur leur bureau ou qu'ils peuvent les enregistrer sans le savoir dans leur dossier de documents.

Et oui, nous devons éduquer nos utilisateurs, mais en configurant des dossiers connus, nous avons un problème de moins à craindre.

Obtenez votre ID de locataire Office 365

Avant de pouvoir configurer les GPO, nous devons obtenir notre identifiant de locataire. Avec PowerShell, nous pouvons l'obtenir avec une seule commande :

# Connect to the Azure AD
connect-azuread

# result:
Account                Environment Tenant
-------                ----------- ------
johndoe@lazyadmin.nl   AzureCloud  <your tenant ID>

# Optional - Get your tenant details
get-azureadtenantdetail

Une fois connecté avec succès à Azure AD, vous obtiendrez l’ID du locataire dans les résultats. Si vous ne l'obtenez pas, vous pouvez toujours utiliser l'applet de commande Get-AzureAdTenantDetail où l'ID objet est votre identifiant de locataire.

Configuration des GPO

Il y a quelques GPO que nous devons configurer. Gardez à l’esprit que si vous activez ce GPO pour l’ensemble de votre organisation en même temps, vous subirez un énorme pic de trafic réseau en raison de la synchronisation OneDrive. Vous souhaiterez peut-être utiliser un groupe de sécurité temporaire pour cibler le GPO.

Créez un nouveau GPO et accédez aux stratégies suivantes :

Computer configuration\Policies\Administrative Templates\OneDrive


Si vous ne trouvez pas les stratégies de groupe OneDrive, vous devrez peut-être d'abord copier les fichiers adml et admx :

  1. Copiez les fichiers .adml et .admx depuis %localappdata%\Microsoft\OneDrive\BuildNumber\adm\ sur un poste de travail.
  2. Collez le .admx dans le magasin central du contrôleur de domaine : \\domain\sysvol\domain\Policies\PolicyDefinitions
  3. Collez le .adml dans le dossier de langue correct dans le magasin central


Si vous ne l'avez pas déjà fait, activez d'abord la stratégieConfigurer silencieusement OneDrive à l'aide du compte Windows principal. Cela permettra à l'utilisateur d'économiser une connexion supplémentaire lors de la première configuration de OneDrive.

Assurez-vous également de limiter la bande passante de téléchargement, de cette façon, un utilisateur ne peut pas ralentir l’ensemble de la connexion Internet. Définissez la stratégie Définissez le pourcentage maximum de bande passante de téléchargement utilisée par OneDrive.exe sur quelque chose comme 70.

Pour déplacer le dossier connu, activez la stratégie Rediriger silencieusement le dossier connu Windows vers OneDrive et entrez l'ID du locataire. Vous pouvez activer une notification utilisateur si vous le souhaitez.

Il est également recommandé d’activer la stratégie Inviter l’utilisateur à déplacer le dossier connu Windows vers OneDrive pour prendre en charge tous les anciens clients OneDrive.

Déplacer le dossier de départ des utilisateurs

La dernière étape, et c'est ce que nous avions prévu de faire, consiste à déplacer les données du dossier de départ de l'utilisateur vers son compte OneDrive Entreprise. Dans mon cas, ce sont les fichiers stockés sur les serveurs de fichiers. Ainsi, chaque utilisateur dispose d'un lecteur réseau mappé à son dossier.

Quelques choses que nous devons aborder dans notre script PowerShell sont de trouver le dossier OneDrive de l'utilisateur, de vérifier s'il est connecté et de laisser une indication dans le dossier de départ afin que nous sachions qu'il est copié. Nous n'allons pas déplacer les fichiers, il suffit de les copier. Je prévois de déplacer les fichiers vers notre serveur d'archives plus tard afin que nous ayons toujours une sauvegarde.

PowerShell et OneDrive

Pour vérifier si OneDrive est connecté, nous devons importer un fichier DLL pour lire l'état de OneDrive. Téléchargez le OneDriveLib.dll à partir de ce référentiel GitHub. Placez-le dans un emplacement accessible à tous les utilisateurs, je recommande le netlogon mais tout autre partage réseau peut également fonctionner.

Tout d'abord, nous importons le fichier DLL :

Import-Module \\contoso.local\netlogon\OnedriveLib.dll

Ensuite, nous devons obtenir le chemin d’accès au dossier OneDrive des utilisateurs. L'emplacement par défaut de ce dossier est le dossier du profil de l'utilisateur. Si vous disposez de plusieurs dossiers OneDrive, vous pouvez utiliser la variable USERPROFILE, sinon je recommanderais d'utiliser la variable OneDriveCommercial.

#Find OneDrive folder
$path = $env:OneDriveCommercial

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

Pour vérifier si nous avons le bon dossier et que OneDrive est connecté, nous pouvons obtenir l'état de OneDrive :

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

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

S'il est connecté, il renverra soit « UpToDate » soit « Synchronisation ». Nous vérifions donc le résultat et utilisons robocopy pour copier les fichiers.

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'
}

Comme vous pouvez le voir sur la dernière ligne, nous créons un nouvel élément, un fichier texte. Nous exécutons plus tard un script PowerShell pour vérifier si nous avons migré chaque dossier du lecteur personnel avant de les archiver.

Conclusion

Exécutez PowerShell en mode contextuel de l'utilisateur connecté, vous pouvez utiliser PDQ Deploy pour cela, un GPO (script de connexion) ou SCCM. Si vous avez de nombreux utilisateurs, veillez à répartir le déploiement pour limiter l'impact sur votre réseau.

Avec PowerShell, assurez-vous de vérifier les variables d'environnement disponibles. Lors de ma première tentative de création de ce script, j'ai essayé d'utiliser la lettre de lecteur du dossier de départ de l'utilisateur. Cela n’a pas fonctionné. En cherchant une alternative, j'ai remarqué que nous pouvons utiliser $env:HomeDrive qui renverra la lettre du lecteur ou $env:HomeShare qui renverra le chemin réel.

Articles connexes