• 6 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 23/03/2023

Automatisez des tâches de sauvegarde avec des scripts PowerShell

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.

Les fichiers passent de \\VM\Sauvegarde à \\serveur\Sauvegardes
Transfert de fichiers vers un répertoire 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  .

Créez un dossier Sauvegardes_clients à la racine du disque
Créez un dossier Sauvegardes_clients à la racine du disque

Et ensuite, créez le partage avec New-SmbShare -Name Sauvegardes_clients -Path C:\Sauvegardes_clients\ -FullAccess “Tout le monde”

Créez un partage avec une cmdlet
Créez un partage avec une cmdlet

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

Utilisez Copy-Item pour copier des fichiers vers le serveur
Utilisez Copy-Item pour copier des fichiers vers le serveur

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\   .

Notre dossier Sauvegardes depuis le serveur
Notre dossier Sauvegardes depuis le serveur

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

Utilisez une variable d'environnement pour identifier l'ordinateur sauvegardé dans le dossier de destination
Utilisez une variable d'environnement pour identifier l'ordinateur sauvegardé dans le dossier de destination
Affichage de votre variable d'environnement dans l'invite de commandes
Affichage de votre variable d'environnement dans l'invite de commandes

Il ne vous reste plus qu’à mettre tout ça dans un vrai script PowerShell.

Les fichiers ont bien été sauvegardés
Les fichiers ont bien été sauvegardés

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 :

Une horloge indiquant 12h15
L'icône du planificateur de tâche

Voici notre planificateur de tâches :

On retrouve une section Vue d'ensemble, une section Statut, une section Tâches actives et à droite les Actions possibles
Interface du 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 : 

Dans le champ Nom, indiquez Sauvegarde du PC, dans le champ Description, indiquez Tâche planifiée pour la sauvegarde du PC toutes les nuits
Créez une tâche de base
Tous les jours, toutes les semaines, tous les mois, une seule fois, au démarrage, à l'ouverture de session, lors d'un événement spécifique ?
Indiquez quand vous souhaitez que la tâche démarre
Démarrer le 11/11/2022 à 22:00, répéter tous les 1 jours
Indiquez les dates et paramètres de répétition du déclencheur
Cochez Démarrer un programme
Cochez Démarrer un programme

Cliquez sur terminer quand vous avez terminé !
Cliquez sur terminer quand vous avez terminé !

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 :

Exécutez votre script Sauvegarde du PC
Exécutez votre script

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.

Vous retrouvez le dossier VM dans ce PC, Disque Local (C:) Sauvegardes_clients
Vos dossiers ont bien été sauvegardé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 :

Gestionnaire de stratégie de groupe
Gestionnaire de stratégie de groupe

Vous allez créer une nouvelle stratégie de groupe que vous pourrez nommer par exemple   Sav_client  comme ceci : 

Nom : Sav_client Objet Starter GPO Source : (aucun)
Créez votre nouveau GPO

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 :

Dans le dossier Tâches planifiées, aucun élément à afficher dans cet aperçu.
Créez la tâche planifiée

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). 

Action : Mettre à jour Nom : Script de sauvegarde
Configurez la tâche planifiée

Planifiez la tâche tous les jours à 22 h 00 :

La tâche est planifiée tous les jours à 22h00
Configurez la fréquence d'exécution de la tâche

Et vous n’oublierez pas de rajouter l’utilisateur (ou l’ordinateur) sur lequel vous voulez que la stratégie de groupe s’applique :

l'objet GPO est lié à l'emplacement etcomment.fr Le filtrage de sécurité indique qu'on peut ajouter Stiven Guillaume ou d'autres utilisateurs authentifiés
Ajout de l'utilisateur sur lequel s'applique la stratégie

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 !

Exemple de certificat de réussite
Exemple de certificat de réussite