La gestion d’un Active Directory n’ayant désormais plus de secrets pour vous, vous allez pouvoir passer à l’automatisation d’une tâche très importante : la sauvegarde de fichiers.
Créez votre premier script PowerShell de sauvegarde
Pour ce chapitre, il vous faudra d’un côté une machine cliente, sous Windows 11, et d’un autre côté un serveur Active Directory, sous Windows Server 2022.
Si vous n’avez pas encore de machine virtuelle avec Windows Server dessus, je vous invite à suivre ce cours dédié pour le mettre en place.
Dans le premier chapitre de cette partie, “Gérez vos fichiers avec PowerShell”, vous avez appris à partager un dossier. Nous allons repartir de ce dossier partagé comme source pour la sauvegarde.
L’objectif de votre script va être de transférer des fichiers présents sur votre poste client, dans un répertoire sur votre serveur.
Préparez la destination
Dans la mesure où vous allez devoir sauvegarder des fichiers d’un client vers un serveur de fichiers, il va vous falloir préparer votre environnement de réception.
Nous n’allons pas dans ce cours traiter de l’installation d’un serveur de fichiers, mais ce chapitre de cours sur Windows Server couvre bien le sujet. Je vous propose donc de créer un dossier Sauvegardes_clients
à la racine de votre disque, et de le partager à tout le monde, pour des raisons de simplicité.
Et bien entendu, vous pouvez le faire avec votre invite PowerShell et la cmdlet New-Item -Path “c:\Sauvegardes_clients” -ItemType Directory
.
Et ensuite, créez le partage avec New-SmbShare -Name Sauvegardes_clients -Path C:\Sauvegardes_clients\ -FullAccess “Tout le monde”
Vous avez désormais tout ce qu’il faut pour commencer les sauvegardes.
Démarrez votre script de sauvegarde
Si vous vous rappelez bien, une cmdlet PowerShell existe pour la copie de fichier. Cette cmdlet est Copy-Item
.
Vous allez pouvoir l’utiliser pour copier des fichiers de votre machine client vers votre serveur.
Copy-Item -Path C:\Sauvegardes\ -Destination \\WIN-BTGFNG24A91\Sauvegardes_clients -Recurse
Allez maintenant vérifier côté serveur. Vous allez retrouver votre dossier Sauvegardes
avec vos fichiers. Et tant qu’à faire, prenez l’habitude de le faire avec l’invite PowerShell avec la cmdlet Get-ChilItem -Path C:\Sauvegardes_clients\
.
Votre commande fonctionne bien, mais hélas, il lui manque quelque chose pour être plus optimale : pouvoir identifier l’ordinateur sauvegardé dans le dossier de destination. Je vous propose donc de modifier votre commande pour utiliser dedans une variable d’environnement !Copy-Item -Path C:\Sauvegardes\ -Destination \\WIN-BTGFNG24A91\Sauvegardes_clients\$env:COMPUTERNAME\ -Recurse
Il ne vous reste plus qu’à mettre tout ça dans un vrai script PowerShell.
Planifiez le lancement d'un script avec le planificateur de tâches
Pour faire cette partie, nous allons travailler avec l’outil Planificateur de tâches qui se trouve dans les outils d’administration Windows de notre poste client :
Voici notre planificateur de tâches :
Cliquez sur Créer une tâche de base et remplissez la fenêtre comme suit pour planifier une tâche qui se lancera toutes les nuits à 22 h 00. Il faudra penser à copier le script créé précédemment dans C:\Scripts
, que vous créerez également :
Nous pouvons voir notre tâche planifiée, et nous pouvons l’exécuter maintenant en faisant un clic droit et en cliquant sur Exécuter :
Si vous supprimez le contenu du dossier correspondant à votre machine virtuelle dans le dossier partagé Sauvegarde, et que vous lancez l’exécution de ce script, vous verrez que tous les fichiers et tous les sous-dossiers ont bien été copiés.
Planifiez un script de sauvegarde sur un poste client avec une GPO
Vous savez exécuter un script via l’utilisation de tâches planifiées, mais étant donné que vous avez un domaine Windows Server, autant utiliser une GPO (Group Policy Objects, en anglais ou Stratégie de groupe, en français) pour l’exécution du script. Alors, allez-y !
Ouvrez la console de gestion des stratégies de groupe sur le serveur :
Vous allez créer une nouvelle stratégie de groupe que vous pourrez nommer par exemple Sav_client
comme ceci :
Vous pouvez planifier une tâche planifiée dans la configuration ordinateur si vous voulez planifier une tâche pour tous les utilisateurs, ou alors dans la configuration utilisateur si vous voulez planifier une tâche pour un utilisateur en particulier :
Mettez les propriétés affichées dans les captures d’écran qui suivent pour la tâche planifiée (vous penserez à créer un répertoire C:\Scripts
sur le serveur, et vous copierez votre script backupClient.ps1 dans ce dossier).
Planifiez la tâche tous les jours à 22 h 00 :
Et vous n’oublierez pas de rajouter l’utilisateur (ou l’ordinateur) sur lequel vous voulez que la stratégie de groupe s’applique :
Bon, vous pouvez tester cette configuration maintenant, mais il faudra attendre la nuit pour la tester.
Eh bien voilà ! Vous êtes tout à fait outillé pour automatiser et planifier des actions avec PowerShell. Merci d’avoir suivi ce cours, j’espère qu’il vous a plu et qu’il vous fera gagner un maximum de temps au quotidien !
En résumé
La création d’un script PowerShell vous permet d’automatiser les sauvegardes.
L’outil “Planificateur de tâches” vous permet de lancer des scripts PowerShell à certains moments de la journée.
La planification de l’exécution d’un script peut être faite par une GPO.
Et vous voilà maintenant prêt à administrer des postes, automatiser des actions et les planifier grâce à Microsoft PowerShell ! Mais pas si vite, un dernier quiz vous attend avant d’en avoir complètement fini avec ce cours. Bonne chance !