Question Script: notification par mail dans un cas précis

Plus d'informations
il y a 7 ans 4 mois #22806 par apprentiPWS
Dans un premier temps bonjour à tous ceux qui passe sur ce poste.

Nouvellement inscris sur le site, je viens requérir votre assistance.

débutant en powershell et surtout en script, j'ai réussi à glaner quelques info sur le net et, ai je pense, réussi à construire une premier partie.Cependant je suis maintenant bloqué.
Bon qu'on soit d'accord, je n'ai fait que modifier quelques lignes à des morceaux pris à droite et à gauche et je n'ai plus toutes les sources.

donc venons en au fait, que dois faire ce script.
contexte :
A-
mise à disposition d'un espace de stockage à différents utilisateurs. Un dossier par utilisateurs.
B-
Chacun des utilisateurs à droit à un quota précis et différents (100Mo pour l'un 500Mo pour un autre et 2Go pour le dernier par exemple)
C-
je désire recevoir une notification d'alerte par mail, lorsqu'un de ces dossier arrive presque à saturation et une autre notification lorsque le quota autorisé est dépassé (sans blocage).
D-
ce script doit être modulable car de future dossiers utilisateurs pourront être créés dans l'avenir et ainsi être pris en compte.

voilà je pense n'avoir rien oublié.
n'hésitez pas à poser des questions.

jusqu'à maintenant j'ai trouvé de quoi obtenir les infos concernant la taille des dossiers et à m'envoyer une notification par mail.
Mais ça ne fonctionne que lorsque je le fait manuellement et il n'y a pas de condition concernant les différentes tailles. je reçois un résultat global aussi bien des dossiers vides que ceux pleins.

je vous joins ce que j'ai pu obtenir jusqu'à maintenant.

Merci d'avance et désolé du dérangement.

La pièce jointe 1er_partie.ps1 est absente ou indisponible

Pièces jointes :

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 4 mois #22812 par crogiez
bonjour

A-
tu dois faire un script pour cette partie
avec un fichier de config

B-
quota dans config

C-
quota depasse, déjà dans config
taille dossier max deja dans config

D-
on modifiera le config

Mais ça ne fonctionne que lorsque je le fait manuellement

faut le lancer avec le planificateur de taches

je vais regarder ton script

A+

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 4 mois #22813 par crogiez
a priori tu lance çà en ligne de commande
et on a pas d'exemple

#les commentaires çà sert
#les commentaires çà sert
#les commentaires çà sert

je commence toujours mes script par
[code:1]
# philippe crogiez
# 13/12/2016 creation

# chargement dll

function ecrit_log($llogf){
#rem create log
$llog=get-date -Format \"yyyy-MM-dd-HH-mm-ss\"
$llog=$llog+\";\"+$llogf
$llog
$llog >> $malog
}

#recuperation du dossier courant
\"\"
$monchemin=$MyInvocation.InvocationName
$monchemin
$mondossier=(split-path -Path $monchemin -Parent) + \"\\"
$mondossier
$monscript=split-path -path $monchemin -leaf
$monscript
#$malog=$mondossier+$monscript.Substring(0,$monscript.IndexOf(\".\"«»))+\".log.txt\"
#$malog
$malog=$mondossier+\"WEB-Taux-Dispo.log.txt\"
$malog
$maconf=$mondossier+\"WEB-Taux-Dispo.conf.xml\"
$maconf

[/code:1]

ce qui permet d'avoir un fichier de config XML

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 4 mois #22814 par crogiez
exemple de fichier de config XML

<dossiers>
<dossier>
<chemin>D:\applis\Logs</chemin>
<fichiers>*.*</fichiers>
<recursif>1</recursif>
<retention>365</retention>
</dossier>
<dossier>
<chemin>D:\BackUp</chemin>
<fichiers>*.*</fichiers>
<recursif>1</recursif>
<retention>365</retention>
</dossier>
<dossier>
<chemin>L:\Journaux</chemin>
<fichiers>*.*</fichiers>
<recursif>1</recursif>
<retention>365</retention>
</dossier>
</dossiers>

çà se lit avec çà

[code:1]
$maconf=$mondossier+$monscript.Substring(0,$monscript.IndexOf(\".\"«»))+\".conf.xml\"
$maconf

#xml config lecture
$confxml=[xml](get-content \"$maconf\"«»)

#lectures tableau chemins
foreach ($dossier in $confxml.dossiers.dossier){
$chemin=$dossier.chemin
$files=$dossier.fichiers
$recursif=$dossier.recursif
$retention=$dossier.retention

\"
\"
\"chemin=>\"+$chemin
\"files=>\"+$files
\"recursif=>\"+$recursif
\"retention=>\"+$retention

[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 4 mois #22815 par crogiez
ton fichier XML de config
pourrait etre

<dossiers>
<dossier>
<chemin>D:\user1</chemin>
<tailleMo>100</tailleMo>
<quota%>90</quota%>
</dossier>
...
</dossiers>

la taille est exprimée en nombre de Mo
le quota est % de la place occupée

on peut calculer la taille d'une arborescence avec çà

[code:1]

$tabdoss3=Get-ChildItem -Path $racine -Recurse
$tabdoss3

$taille=0
$tabdoss3 |%{
$taillfich=$_.Length
$taille=$taille+$taillfich
}
$taille

[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 4 mois #22817 par apprentiPWS
Merci Crogiez, je regarde ça et reviens vers toi dès que possible. (j'avoue ne pas tout comprendre ce que tu as répondu, il me faut étudiercela :) )

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.082 secondes
Propulsé par Kunena