m_jssln Posté(e) 23 mai 2019 Signaler Share Posté(e) 23 mai 2019 Hello, (J'ai un doute sur le classement de ce poste, je me suis tâté avec la section windows, je m'excuse si jamais j'ai eu tord) Je rencontre un problème avec un disque saturé par des sauvegardes. Le logiciel est un peu nul, mais c'était a priori le seul rentrant dans le budget à l'époque. Celui ci ne supprime plus les anciennes sauvegardes. J'ai aujourd'hui mon "Z:" avec des dossiers du style "d$ 2019-05-23 17-45-00;" et "Logiciel 2019-05-23 17-45-00;". Le nom du dossier est donc créé sous la forme "d$ AAAA-MM-DD HH-mm-ss;". Mon script est adapté pour récupérer la date dans le nom du dossier, jusque là, tout est ok ! $now = Get-Date Get-ChildItem -Force "z:\" | foreach { if ($_.basename -match "$d (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) (?<hour>\d{2});(?<minute>\d{2});(?<second>\d{2})$") { $fileData = Get-Date -Year $Matches.year -Month $Matches.month -Day $Matches.day ` -Hour $Matches.hour -Minute $matches.minute -Second $Matches.second $_ | Add-Member -MemberType NoteProperty -Name 'DateFromName' -Value $fileData -PassThru } } | Where-Object {($_.DateFromName) -lt $now.addDays(-7)} | Remove-Item -Force -Recurse (J'ai également dupliqué ce début de code pour le deuxième nom de dossier qui commence par "Logiciel ...". Le problème : lorsque j'execute mon script, celui ci me sort Citation Le répertoire n’est pas vide. Au caractère C:\Users\Administrateur\Desktop\suppression-sauvegarde+7.ps1:10 : 61 + } | Where-Object {($_.DateFromName) -lt $now.addDays(-7)} | Remove-Item -Force - ... + ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : WriteError: (comptabilite:DirectoryInfo) [Remove-Item], IOException + FullyQualifiedErrorId : RemoveFileSystemItemIOError,Microsoft.PowerShell.Commands.RemoveItemComman Pourriez vous m'aider s'il vous plait ? Je vous remercie d'avance, Lien vers le commentaire Partager sur d’autres sites More sharing options...
TheCyberSeb Posté(e) 20 juin 2019 Signaler Share Posté(e) 20 juin 2019 Bonjour, Le script est lancé avec un compte ayant des droits d'admin ? Les fichiers dans le répertoire ne sont pas locker par le logiciel de sauvegarde ? Au vu des exemples sur la doc officielle : https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/remove-item?view=powershell-6 Je dirais que la ligne suivante ne doit pas être correcte : Where-Object {($_.DateFromName) -lt $now.addDays(-7)} | Remove-Item -Force -Recurse Lien vers le commentaire Partager sur d’autres sites More sharing options...
m_jssln Posté(e) 21 juin 2019 Auteur Signaler Share Posté(e) 21 juin 2019 Bonjour, Merci pour le retour ! Oui le script est lancé en tant qu'admin ! Le logiciel de sauvegarde est installé sur le serveur A et stock sur le serveur A. LA sauvegarde est celle du serveur B. En fait ce qui poserait problème avec la ligne c'est que ma boucle continuait sur les dossiers enfants! mais ceux ci ne comportent pas la date dans le nom comme le fichier parent. Il faudrait que je casse la boucle au dernier dossier, du premier niveau de / et qu'ensuite le script descende au niveau suivant et supprime les dossiers présents ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés