Consolidation des serveurs de fichiers avec PowerShell et Robocopy – Serveur d’impression
Author: Titanfall —
Short summary: Serveurs de fichiers – Nous les avons tous sous une forme ou une autre. Ces serveurs ont tendance à croître de façon exponentielle plus critique que ce que nous imaginions lors de leur déploiement. Ils étaient également assez lourds à migrer jusqu'à ce que Microsoft publie son service de migration de stockage. Mais il existe […]
Quick overview
- Site
- Tutos GameServer
- Canonical URL
- https://tutos-gameserver.fr/2020/06/06/consolidation-des-serveurs-de-fichiers-avec-powershell-et-robocopy-serveur-dimpression/
- LLM HTML version
- https://tutos-gameserver.fr/2020/06/06/consolidation-des-serveurs-de-fichiers-avec-powershell-et-robocopy-serveur-dimpression/llm
- LLM JSON version
- https://tutos-gameserver.fr/2020/06/06/consolidation-des-serveurs-de-fichiers-avec-powershell-et-robocopy-serveur-dimpression/llm.json
- Manifest
- https://tutos-gameserver.fr/llm-endpoints-manifest.json
- Estimated reading time
- 12 minutes (712 seconds)
- Word count
- 2371
Key points
- Serveurs de fichiers – Nous les avons tous sous une forme ou une autre.
- Ces serveurs ont tendance à croître de façon exponentielle plus critique que ce que nous imaginions lors de leur déploiement.
- Ils étaient également assez lourds à migrer jusqu'à ce que Microsoft publie son service de migration de stockage.
- Mais il existe un scénario important qu'il ne couvre pas: la consolidation de plusieurs serveurs de fichiers en un seul.
Primary visual
Structured content
Serveurs de fichiers – Nous les avons tous sous une forme ou une autre. Ces serveurs ont tendance à croître de façon exponentielle plus critique que ce que nous imaginions lors de leur déploiement. Ils étaient également assez lourds à migrer jusqu'à ce que Microsoft publie son service de migration de stockage. Mais il existe un scénario important qu'il ne couvre pas: la consolidation de plusieurs serveurs de fichiers en un seul. Dans ce didacticiel, nous expliquerons comment éviter les versions non prises en charge de Windows et garantir la disponibilité de vos serveurs de fichiers en les consolidant. Pourquoi devrais-je consolider mes serveurs de fichiers? De nombreuses entreprises ont plusieurs (et parfois des dizaines) de serveurs de fichiers créés pour différentes raisons au fil des ans. Mais les consolider en un ou quelques serveurs a plus de sens maintenant, car la mise en réseau et le stockage sont à la fois moins chers et plus rapides que jamais. Cela diminue le temps passé à les gérer. Vous pouvez également avoir quelques serveurs de fichiers presque vides, car de nombreuses entreprises utilisent des services tels que OneDrive et SharePoint pour les données utilisateur. De plus, en les migrant vers un serveur de fichiers en cluster, vous pouvez sécuriser la disponibilité et utiliser des fonctions telles que la mise à jour adaptée aux clusters pour automatiser les correctifs sans que nos utilisateurs ne s'en rendent même compte. Commençons maintenant! Conditions préalables Dans cet article, vous apprendrez à consolider des serveurs de fichiers. Mais gardez à l'esprit que votre environnement est unique et procédez avec prudence. Les partages et les dossiers que vous souhaitez migrer dépendent de vous! Cela dit, il y a quelques conditions préalables:
Deux serveurs de fichiers ou plus à consolider (serveurs source). Cela a été testé sur Windows Server 2008 et versions ultérieures, mais pourrait fonctionner pour les anciennes versions. Un ou plusieurs serveurs de fichiers avec Windows Server 2019 pour consolider vers (serveur de destination) – de préférence un cluster
Un PC Windows 10 avec Powershell 5.1 et Microsoft Excel installé Droits d'administrateur sur les serveurs source et de destination
Gardez à l'esprit que les spécifications du nouveau serveur de fichiers doivent être capables de gérer la charge des serveurs qu'il remplace – combinées! La collecte d'informations le plus une partie importante d'une consolidation réussie est d'avoir les bonnes informations à portée de main. Vous pouvez les rassembler manuellement – bien que cela ne soit pas préféré, car il est sujet aux fautes de frappe et autres erreurs, cela fonctionne. Mais c'est sur la façon de consolider avec PowerShell – Et comme il est difficile de mettre votre expérience et vos connaissances dans un script, nous utiliserons plutôt une méthode semi-automatique. Commencer par installer ImportExcel collecter des informations sur les partages sur nos serveurs source avec PowerShell. Installer ImportExcel ImportExcel est un module PowerShell qui peut à la fois importer et exporter des données Excel. C'est un outil parfait à avoir lors de la collecte d'informations nécessitant un traitement manuel. Lancez PowerShell en tant qu'administrateur sur votre PC et tapez ce qui suit pour installer le module PowerShell:
PS51> Module d'installation ImportExcel
Collecter des informations sur les partages de fichiers Lancez Powershell en tant qu'administrateur sur votre PC disposant des autorisations d'administrateur sur les serveurs source et tapez:
# Remplacez fs01.contoso.com par le nom de l'un de vos serveurs source $ ComputerName = "fs01.contoso.com"
# Récupérer des partages via WMI sur l'ordinateur distant $ Actions = Get-WmiObject -Classe Win32_Share -Nom de l'ordinateur $ ComputerName
# Filtre les partages par défaut avec une expression rationnelle sensible à la casse ('^ (ADMIN | IPC | PRINT |[A-Z]) \ $$ ') $ Actions | ? [A-Z]) $$ ' | Sélectionner Nom,Chemin,La description
Une sortie de tous les partages configurés sur le serveur source vous sera présentée. Maintenant, faire cela pour chaque serveur source n'est pas viable dans de nombreux cas, alors créons quelque chose de mieux qui récupère les partages de tous les serveurs source et les exporte vers Excel avec le module ImportExcel:
1 2 3 4 5 6 7 8 9 dix 11 12 13 14 15 16 17 18 19 20 21 22 23 24
# Liste des serveurs sources $ SourceServers = @( «fs01.contoso.com», «fs02.contoso.com», «fs03.contoso.com» )
# Accès aux serveurs sources $ ToExcel = pour chaque($ ComputerName dans $ SourceServers) # Récupérer des partages avec WMI $ Actions = Get-WmiObject -Classe Win32_Share -Nom de l'ordinateur $ ComputerName # Filtrer les partages indésirables $ Filtré = $ Actions
# Sortie pour exceller $ ToExcel | Export-Excel -Chemin C:tempActions.xlsx -AutoSize -Nom de la table actions -ClearSheet
Ouvrez le fichier Excel que vous venez de créer dans C: temp Shares.xlsx. Il vous présentera une sortie qui peut ressembler à ceci:
Image n ° 1 Développer
Lisez attentivement et vous remarquerez peut-être quelques choses différentes avec l'exemple ci-dessus:
Le \ fs01…. Départements semble être un partage avec un dossier pour chaque service Le partage RH et informatique sur fs01 est partagé à partir du dossier de partage des départements fs02 a le CRM directement partagé même s'il réside dans E: Applications qui est partagé en tant que \ fs02… Applications \ fs02… Finance semble être un partage de service
Et ainsi de suite – une migration basée sur ces données ne serait pas du tout jolie. Il semble également que nous migrerions l'ancien partage informatique qui n'est pas utilisé.
Notre Petri Office 365 Insider est dédié au partage des connaissances détaillées des meilleurs experts d'Office 365. Livré une fois par mois dans votre boîte de réception.
Petri.com peut utiliser vos coordonnées pour fournir des mises à jour, des offres et des ressources susceptibles de vous intéresser. Vous pouvez vous désinscrire à tout moment. Pour en savoir plus sur la façon dont nous gérons vos données, vous pouvez lire notre politique de confidentialité et nos conditions d'utilisation.
!Déjà membre Petri.com? Connectez-vous ici pour vous inscrire en 1 clic.
Cela souligne combien il est important de faire des recherches et un peu de retouche manuelle avant de faire quoi que ce soit d'autre. Vous devez créer un nouveau partage sur le serveur de destination pour chaque catégorie que vous définissez avec le même nom. Nettoyage des données Faisons un peu de nettoyage manuel et classons les données en entrant une catégorie dans la colonne Catégorie. Commencez par supprimer les «partages qui se trouvent dans un partage»:
Image n ° 2 Développer
Après cela, vous appliquez une catégorie de votre choix dans la colonne «Catégorie»:
Image n ° 3 Développer
La colonne «Catégorie» décidera sur quel partage il sera copié sur le serveur de destination. c'est-à-dire \ fs10.contoso.com AppData
Enfin, vous marquez les partages dont vous souhaitez migrer les sous-dossiers au lieu d'un 1: 1 du partage lui-même. Pour ce faire, saisissez «Oui» dans la colonne MigrateSubFolders:
Image # Développer
La migration de sous-dossiers au lieu du dossier entier lui-même est utile lorsque vous migrez ensemble plusieurs partages différents avec la même catégorie de données. Étant donné que vous pouvez avoir des partages pour différents services répartis sur plusieurs serveurs en raison de la taille et d'autres limitations. Maintenant que vous avez des informations à jour, nous allons les enregistrer et les fermer Shares.xlsx et générer une dernière feuille de calcul que nous pouvons utiliser pour notre fonction PowerShell + RoboCopy plus tard. Génération de la feuille de calcul de migration Une bonne feuille de calcul de migration est au cœur d'une consolidation bien réalisée. Ce sera la base lors de l'organisation et de la communication avec les différentes parties de l'organisation au sujet de la consolidation. C'est également ici que vous trouverez et corrigerez les doublons, les anciens partages, etc. Le script qui crée le fichier * Migration.xlsx- * devra faire les choses suivantes:
Lire le nettoyage Shares.xlsx
Lire les sous-dossiers d'actions avec MigrateSubFolders
Créez un chemin de destination composé du serveur de destination, de la catégorie et du nom de partage Exportez au moins le chemin source et le chemin de destination vers une feuille Excel.
Vous pouvez commencer par lire le Shares.xlsx que nous avons créé plus tôt avec PowerShell en tant qu'administrateur:
$ ExcelData = Import-Excel -Chemin C:CertainsDossierPartager.xlsx
Vous allez maintenant les parcourir un par un et soit créer une sortie basée sur les données d'Excel, soit effectuer Get-ChildItem si la propriété MigrateSubFolders est définie sur «Oui»:
1 2 3 4 5 6 7 8 9 dix 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
# Nom du nouveau serveur $ DestinationServer = "fs10.contoso.com"
# Parcourez toutes les lignes $ MigrationList = Pour chaque($ Row dans $ ExcelData)
# Récupère tous les sous-répertoires si MigrateSubFolders = Yes # Créer un tableau d'objets avec la source et le nom de partage si($ Row.MigrateSubFolders -eq 'Oui') Pour chaque [[PSCustomObject]@ La source = $ _.Nom complet ShareName = $ _.Nom
# Si c'est un 1: 1 – Créez simplement $ ShareNames avec 1 objet autre $ ShareNames = [[PSCustomObject]@ La source = $ Row.UNC ShareName = $($ Row.UNC -Divisé "\")[[-1] # Source de sortie, destination et quelques propriétés supplémentaires que nous voulons dans notre feuille Excel sous forme de colonnes $ ShareNames
$ MigrationList
L'exécution du code ci-dessus générera une sortie qui ressemble à ceci:
La source Destination Émigrer Commentaire ––– –––––– –––– –––– fs01DépartementsInstallations fs10.contoso.comDépartementsInstallations Oui fs01DépartementsIL fs10.contoso.comDépartementsIL Oui ... ... fs03FinanceApp fs10.contoso.comDonnées d'applicationFinanceApp Oui
Notez comment nous utilisons la colonne Catégorie de la feuille de calcul précédente pour déterminer le chemin de destination. Ensuite, exportons cela pour exceller afin que nous puissions effectuer le dernier nettoyage, mais le plus crucial:
$ MigrationList | Export-Excel -Chemin C:certainsdossierMigration.xlsx -AutoSize -Nom de la table MigrationList
Cela affichera le contenu de $ MigrationList dans C: certains dossier Migration.xlsx. Maintenant, lors de l'ouverture du Migration.xlsx fichier avec Excel et en regardant de plus près, vous découvrez que nous avons beaucoup de doublons:
Image n ° 4 Développer
Ce n'est pas inhabituel – Cela peut être dû au fait que deux dossiers portent le même nom par coïncidence ou que les anciennes données n'ont pas encore été supprimées. Vous pouvez cependant rendre cela un peu plus facile et les marquer comme doublons avant de les exporter vers Excel. Fermez le fichier Excel et entrez-le dans la fenêtre PowerShell que vous avez précédemment utilisée:
$ MigrationList = $ MigrationList | Group-Object Destination | Pour chaque si($ _.Compter -gt 1) Pour chaque $ _.Émigrer = "Non" $ _.Commentaire = "A des doublons!" $ _ autre $ _.Groupe | Trier Destination
$ MigrationList | Export-Excel -Chemin C:certainsdossierMigration.xlsx -AutoSize -Nom de la table MigrationList
Cela utilise l'applet de commande PowerShell Group-Object regrouper les objets par la propriété «Destination» et ainsi détecter les doublons. Nous définissons ensuite Migrate sur no et indique que cette ligne contient des doublons. C'est un moyen simple et rapide de détecter les doublons et vous facilite la vie lorsque vous traitez des dizaines, voire des milliers de dossiers. Vous avez maintenant une feuille de calcul plus facile à trier qui ressemble à ceci:
Image n ° 5 Développer
Il est fortement recommandé de parcourir tous les partages, car il n'est pas rare de trouver des partages inutilisés, des doublons et similaires, comme illustré dans l'exemple ci-dessous. Cela peut réduire la quantité de données à transférer en téraoctets!
Image n ° 6 Développer
Vous disposez désormais d'une excellente base pour baser cette migration de données et cette consolidation de serveurs de fichiers. Enregistrez et fermez Excel pour pouvoir l'exporter vers un CSV et commencer à transférer les données Exportation vers CSV Maintenant que vous disposez de toutes les informations nécessaires pour démarrer le transfert de données, vous devez exporter la feuille de calcul vers un fichier CSV. En effet, vous voulez pouvoir le lire sur le serveur de destination sans avoir à installer Excel. Vous pouvez le faire sur l'ordinateur que vous avez créé le Migration.xslx tableur en entrant la commande suivante dans PowerShell:
Import-Excel -Chemin C:CertainsDossierMigration.xlsx | Export-CSV -NoTypeInformation -Chemin C:CertainsDossierMigration.csv
Cela lira le Migration.xlsx feuille de calcul avec le Import-Excel applet de commande et l'exporter vers Migration.csv en utilisant Export-CSV. Transférez le CSV vers le serveur de destination – Dans cet exemple, nous l'avons transféré vers C: Temp Migration.csv sur le serveur de migration. Vous disposez désormais de toutes les informations nécessaires à notre fonction PowerShell pour transférer les données. Maintenant, laissez-nous RDP au serveur de destination pour savoir comment transférer les partages de fichiers! Robocopie Pour transférer les données, votre script PowerShell va utiliser 2 composants principaux:
RoboCopy Le fichier migration.csv
Jetez un œil à RoboCopy – la commande la plus importante que vous allez utiliser en premier. La commande RoboCopy La commande ci-dessous est similaire à ce que vous allez utiliser si vous transférez vos partages de fichiers conformément à cet article.
robocopie "\ fs01.contoso.com Some Share" "\ fs10.contoso.com Some Share" /MIR /SECONDE /ZB /MT:64 /E /R:1 /W:1 /unilog:"C: certains chemin log.txt"
La commande ci-dessus:
Copiez le répertoire source \ fs01.contoso.com Some Share à \ fs10.contoso.com Some Share
/ mir mettra en miroir le répertoire source vers le répertoire de destination – tous les fichiers de la destination qui ne correspondent pas ou n'existent pas dans le répertoire source seront supprimés / remplacés.
/seconde Copiera toutes les autorisations de fichier.
/ ZB Démarre les transferts de fichiers en mode redémarrable – en cas d'échec, il les transférera en mode de sauvegarde (plus lent)
/ MT: 64 Dira à robocopy de transférer les fichiers avec 64 threads simultanés
/ E copie les sous-répertoires, y compris les sous-répertoires vides
/ R: 1 Réessayera le transfert de fichiers une fois s'il échoue
/ W: 1 Attend 1 seconde entre les tentatives
/ unilog: "
Topics and keywords
Themes: Serveur d'impression
License & attribution
License: CC BY-ND 4.0.
Attribution required: yes.
Manifest: https://tutos-gameserver.fr/llm-endpoints-manifest.json
LLM Endpoints plugin version 1.1.2.