IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Script alerte espace disk


Sujet :

Scripts/Batch

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Script alerte espace disk
    Bonjour à tous!

    Je me suis lancé dans le scripting Powershell c'est passionnant mais compliqué...

    Je souhaiterais faire un script qui check l'espace disque des mes pc et me donne une alerte si l'espace disque est inférieur a 10%.

    Voila ce que j'ai réussi à faire pour le moment :

    *******************
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    $inputFile = "C:\Data\Power_shell\Bases\List-Traitement.txt"
    $computers = Get-Content $inputFile
      foreach ($computer in $computers)
      {
      $percent = {[math]::round(([int64]$_.freespace/[int64]$_.size*100),0)}
     # récupérer tous les disques logiques de l'ordinateur:
     get-wmiobject -computer $computer win32_logicaldisk | where {$_.drivetype -eq 3} |
          tee-object -variable disques |
                select-object @{e={$_.systemname};n="Système"},
                   @{e={$_.name};n="Disque"},
                   @{e={[math]::round($_.freespace/1GB,1)};n="Disponible (Go)"},
                   @{e=$percent;n="% restant"} 
     
     if ($percent -lt 10) {
     "alerte espace disk"}
     else{
     "ok"
     
      }}
    ***************

    Mais quand je lance le scripte j'ai cette erreur :

    Cannot compare "[math]::round(([int64]$_.freespace/[int64]$_.size*100),0)" because it is not IComparable.
    At C:\Temp\Power_shell\Scripts\test-disk-spacetestribo.ps1:15 char:6
    +  if ($percent -lt 10) {
    +      ~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
        + FullyQualifiedErrorId : NotIcomparable
    
    ***********
    Pourtant quand je mets la commande [math]::round(([int64]$_.freespace/[int64]$_.size*100),0) dans mon tableau j'ai bien une valeur qui s'affiche.

    Pourriez vous m'expliquer comment faire pour pouvoir comparer cette valeur?

    ps: j'ai vu que l'on pouvait afficher du code PowerShell mais je ne connais pas les quotes a mettre??? Du coup j'ai afficher mon code PowerShell avec les quote code classique...

    Merci pour votre aide!

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    ceci fonctionne sans erreur, mais je te laisse vérifier si le résultat correspond bien à ce que tu veux faire :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    $debugpreference='continue'
      foreach ($computer in $computers)
      {
     write-debug "get wmi"
     # récupérer tous les disques logiques de l'ordinateur:
     get-wmiobject -computer $computer win32_logicaldisk | 
       where {$_.drivetype -eq 3} |
       foreach-object {
        $percent = [math]::round(([int64]$_.freespace/[int64]$_.size*100),0)
        write-debug "set percent $percent"
        $_
       }|
       tee-object -variable disques |
       select-object @{n="Système";e={$_.systemname}},
                     @{n="Disque";e={$_.name}},
                     @{n="Disponible (Go)";e={[math]::round($_.freespace/1GB,1)}},
                     @{n="% restant";e={$percent}} 
     write-debug "Call percent"
     if ($percent -lt 10) {
     "alerte espace disk"}
     else{
     "ok"
     
      }}
    je ne sais pas trop si ici :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $percent = {[math]::round(([int64]$_.freespace/[int64]$_.size*100),0)}
    Tu voulais définir un scriptblock, du code, ou récupérer le résultat de l'exécution de Round, une donnée.
    En tout cas c'est un bon exemple à proposer lors d'une formation :-)

    Edit:
    la balise code se place à l'aide du bouton #

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci Laurent pour la réponse rapide!

    Ca fonctionne!

    Maintenant je vais essayer de configurer tout ca pour envoyer un mail en cas d'espace disque trop faible.

    Je risque de faire appel à vous encore une fois

Discussions similaires

  1. [Sécurité] Proposition de script d'espace membre
    Par wamania dans le forum Langage
    Réponses: 62
    Dernier message: 18/07/2012, 15h10
  2. Script gestion espace membre
    Par debutant_linux dans le forum Langage
    Réponses: 5
    Dernier message: 05/04/2007, 10h48
  3. script pour espace administrateur
    Par d_tun dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 28/03/2007, 10h01
  4. [2K] Alerte espace disque agent SQLServer
    Par Débéa dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 21/12/2006, 10h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo