Bonjour à tous,
J'ai un petit soucis, on m'a chargé dans ma boite de faire un script qui détruirait automatiquement les fichier non sauvegardé sur un lecteur spécial scripté.
En gros les utilisateurs de l'entreprise on tous un lecteur sur leur session pour sauvegarder des fichiers. Une nouvelle politique de notre client donneur d'ordre nous interdit de garder ces fichiers plus de 48H Sans qu'ils soient sauvegardé sur un lecteur scripté.
Je dois donc faire un script qui s'appliquerait à l'ouverture de session qui vérifierais la date d'ancienneté des ses fichiers et les supprimes si il dépasse les 48H.
Je cherche sur internet mais je trouve pas et j'ai pas trop le niveau dans ce domaine pour savoir si c'est ce qu'il me correspond.
Pour info le serveur de fichier est sous Windows Server 2012 R2 et les utilisateurs sont sous Windows 7 SP1.
Si quelqu'un en connait/utilise déjà un dans sa boîte ce serais sympa de m'aider.. La personnes qui s'en charge est en congé et j'ai jusqu'au 20/02...
(Si vous voulez plus de détails demandez!)
Merci
Wah se serait grave top c'est justement là que je veux le foutre. J'avais vu que des GPO à la con pas envie d'en créer et ça correspond pas à ce que veux le chef de service. J'ai zéro niveau en script je change à peine de taf.. Merci beaucoup
J'y ai pensé mais j'ai vu que les questions techniques étaient plus a poser ici.. Merci je vais changer le groupe
Plutôt simple, tu fais script qui check la date du fichier, la comparé à la date d'aujourd'hui, si le résultat est supérieur ou égale à 2 jours tu supprimes le fichier.
Tu place ensuite le script en tâche planifier du serveur, exécution tous les jours, la nuit (genre 00h00 ou 1h00)
C'est plutot simple avec Powershell :
Supprimer les fichiers dont la date de création est de plus de 2 jours :
Get-ChildItem -Path C:\\repertoire -Recurse | Where-Object {$_.CreationTime -lt (Get-Date).AddDays(-2)} | Remove-Item -Force
Supprimer les fichiers dont la date de dernière modification est de plus de 2 jours :
Get-ChildItem -Path C:\\repertoire -Recurse | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-2)} | Remove-Item -Force
Si tu veux combiner les 2 (la date de création ET la date de dernière modification sont TOUTES les 2 de plus de 2 jours)
Get-ChildItem -Path C:\\repertoire -Recurse | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-2) -And $_.CreationTime -lt (Get-Date).AddDays(-2)} | Remove-Item -Force
Si tu veux te baser sur la date la plus ancienne (que ce soit celle de création OU celle de la dernière modification)
Get-ChildItem -Path C:\\repertoire -Recurse | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-2) -Or $_.CreationTime -lt (Get-Date).AddDays(-2)} | Remove-Item -Force
Après, tu lances la commande que tu veux avec un simple appel :
powershell -Command "La commande Powershell ICI"
Edit : Pouki a été plus rapide
Ok! Après est-ce que ces commandes peuvent être rajouté sur le script du NETLOGON? Ou je devrais les lancer en manuelle? Je suis en train de voir par mp avec Pouki mais merci pour ton aide ça pourra toujours me servir sur mon nas perso ce genre de commandes je pense!
Tu peux le mettre dans le Logon Script sans soucis.
Le script sera exécuté avec les droits de l'utilisateur donc il doit pouvoir supprimer les fichiers ou ils se trouvent.
Faudra que je check les droits jsuis plus très sûr.. Quand le contrôle total sur le gestionnaire du partage est désactiver ça inclus la suppression de leurs propres fichier? Je sais qu'ils ont lecture et modification de sélectionné dans l'AD mais contrôle total est réservé aux admin local+domaine.
Edit : Cela dépend aussi de ou sont stocké les fichiers de ce client particulier.
Est ce que ces fichiers sont tous sur un même serveur ?
Est il possible que ces fichiers arrivent en local sur la machine ?
Est ce que ces fichiers sont dans un répertoire dédié ?
Si non, comment distinguer ces fichiers des autres ?
Avec ces réponses, tu devrais pouvoir savoir d'ou lancer le script, par quel utilisateur et a quel moment.