Question [Script] Monitoring Espace Libre
- Alan Pinard
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 77
- Remerciements reçus 0
il y a 14 ans 11 mois #5511
par Alan Pinard
Alan Pinard
Version A
[Script] Monitoring Espace Libre a été créé par Alan Pinard
Bonjour,
Voici un script qui monitore l'espace disque restant sur des serveur distants. Il envoie une alerte de notification basée sur un paramètre en pourcentage d'espace restant.
Un autre de plus!
[code:1]
#FreeSpace_Monitoring.ps1
#Powershell V1
#
#Auteur: Alan Pinard
#Date: 21-10-2009
#Modfi Date: 21-10-2009
#Description:
# Script qui vérifie si l'espace disque libre est inférieur à \"PercentFreeSpaceAlert\".Si oui, il envoie une alerte
# par courriel spécifier dans \"Users\". Ce script utilise WMI pour ce connecter et faire la vérification
#Param:
# PercentFreeSpaceAlert : Indicateur sur lequel l'alerte est basée (pourcentage de l'espace restant)
# SmtpServer : Serveur SMTP
# Users : Compte de courriel que l'on doit notifier
# EmailFrom : Courriel du quel provient l'alerte
# Computers : Ordinateur sur lesquels la vérification ce fera
#
########################################################
$DDate = Get-Date -Format g
[int]$PercentFreeSpaceAlert = 90
$SmtpServer = \"smtp.domain.com\"
$Users = @(\"user1@domain.com\",\"user2@domain.com\")
$EmailFrom = \"lowdiskspace@domain.com\"
$Computers = @(\"computer1\",\"computer2\")
########################################################
$Body = (\"Hostname\").PadRight(15) + \"`t\" + (\"Name\").PadRight(15) + \"`t\" + (\"Size\").PadRight(15) + \"`t\" + (\"FreeSpace\").PadRight(15) + \"`tPourcent`n\"
$Body += \"
`n\"
$StringInitialCount = $Body.Length
ForEach ($Computer in $Computers) {
$Drives = Get-WmiObject -ComputerName $computer Win32_LogicalDisk | Where-Object {$_.DriveType -eq 3}
$Drives -as [PSOBject] | Out-Null
$Drives | Add-Member NoteProperty VAFreeSpaceGb \"\" -PassThru | Out-Null
$Drives | Add-Member NoteProperty VASizeGb \"\" -PassThru | Out-Null
$Drives | Add-Member NoteProperty VAPourcentFree \"\" -PassThru | Out-Null
$Drives | Add-Member NoteProperty VAComputer \"\" -PassThru | Out-Null
$Drives | ForEach{
$_.VASizeGB = [Math]::Round($_.Size/1Gb,2)
$_.VAFreeSpaceGb = [Math]::Round($_.FreeSpace/1Gb,2)
$_.VAPourcentFree = [math]::Round(([Double]$_.FreeSpace/[Double]$_.Size) * 100)
$_.VAComputer = $Computer
###################################################
If ($_.VAPourcentFree -lt $PercentFreeSpaceAlert){
$Body += $_.VAComputer.PadRight(15) + \"`t\" + $_.Name.PadRight(15) + \"`t\" + ($_.VASizeGB.ToString()).PadRight(15) + \"`t\" + ($_.VAFreeSpaceGB.ToString()).PadRight(15) + \"`t\" + ($_.VAPourcentFree).ToString() + \"%`n\"
}
}
}
####################################################
If ($Body.length -gt $StringInitialCount) {
ForEach ($User in $Users) {
Write-Host -ForegroundColor Cyan \"Sending Email notification to $user\"
$Smtp = New-Object Net.Mail.SmtpClient($SmtpServer)
$Subject = \"[Alerts] Low Disk space - Less than $PercentFreeSpaceAlert % free space - $DDate\"
$Smtp.Send($EmailFrom,$User,$Subject,$Body)
}
}
[/code:1]
Si cela peut aider quelqu'un.
Alan Pinard
Version A
Message édité par: Versiona, à: 21/10/09 23:13
Message édité par: Versiona, à: 3/11/09 15:57
Message édité par: Versiona, à: 26/08/11 16:00<br><br>Message édité par: Versiona, à: 26/08/11 16:10
Voici un script qui monitore l'espace disque restant sur des serveur distants. Il envoie une alerte de notification basée sur un paramètre en pourcentage d'espace restant.
Un autre de plus!
[code:1]
#FreeSpace_Monitoring.ps1
#Powershell V1
#
#Auteur: Alan Pinard
#Date: 21-10-2009
#Modfi Date: 21-10-2009
#Description:
# Script qui vérifie si l'espace disque libre est inférieur à \"PercentFreeSpaceAlert\".Si oui, il envoie une alerte
# par courriel spécifier dans \"Users\". Ce script utilise WMI pour ce connecter et faire la vérification
#Param:
# PercentFreeSpaceAlert : Indicateur sur lequel l'alerte est basée (pourcentage de l'espace restant)
# SmtpServer : Serveur SMTP
# Users : Compte de courriel que l'on doit notifier
# EmailFrom : Courriel du quel provient l'alerte
# Computers : Ordinateur sur lesquels la vérification ce fera
#
########################################################
$DDate = Get-Date -Format g
[int]$PercentFreeSpaceAlert = 90
$SmtpServer = \"smtp.domain.com\"
$Users = @(\"user1@domain.com\",\"user2@domain.com\")
$EmailFrom = \"lowdiskspace@domain.com\"
$Computers = @(\"computer1\",\"computer2\")
########################################################
$Body = (\"Hostname\").PadRight(15) + \"`t\" + (\"Name\").PadRight(15) + \"`t\" + (\"Size\").PadRight(15) + \"`t\" + (\"FreeSpace\").PadRight(15) + \"`tPourcent`n\"
$Body += \"
`n\"
$StringInitialCount = $Body.Length
ForEach ($Computer in $Computers) {
$Drives = Get-WmiObject -ComputerName $computer Win32_LogicalDisk | Where-Object {$_.DriveType -eq 3}
$Drives -as [PSOBject] | Out-Null
$Drives | Add-Member NoteProperty VAFreeSpaceGb \"\" -PassThru | Out-Null
$Drives | Add-Member NoteProperty VASizeGb \"\" -PassThru | Out-Null
$Drives | Add-Member NoteProperty VAPourcentFree \"\" -PassThru | Out-Null
$Drives | Add-Member NoteProperty VAComputer \"\" -PassThru | Out-Null
$Drives | ForEach{
$_.VASizeGB = [Math]::Round($_.Size/1Gb,2)
$_.VAFreeSpaceGb = [Math]::Round($_.FreeSpace/1Gb,2)
$_.VAPourcentFree = [math]::Round(([Double]$_.FreeSpace/[Double]$_.Size) * 100)
$_.VAComputer = $Computer
###################################################
If ($_.VAPourcentFree -lt $PercentFreeSpaceAlert){
$Body += $_.VAComputer.PadRight(15) + \"`t\" + $_.Name.PadRight(15) + \"`t\" + ($_.VASizeGB.ToString()).PadRight(15) + \"`t\" + ($_.VAFreeSpaceGB.ToString()).PadRight(15) + \"`t\" + ($_.VAPourcentFree).ToString() + \"%`n\"
}
}
}
####################################################
If ($Body.length -gt $StringInitialCount) {
ForEach ($User in $Users) {
Write-Host -ForegroundColor Cyan \"Sending Email notification to $user\"
$Smtp = New-Object Net.Mail.SmtpClient($SmtpServer)
$Subject = \"[Alerts] Low Disk space - Less than $PercentFreeSpaceAlert % free space - $DDate\"
$Smtp.Send($EmailFrom,$User,$Subject,$Body)
}
}
[/code:1]
Si cela peut aider quelqu'un.
Alan Pinard
Version A
Message édité par: Versiona, à: 21/10/09 23:13
Message édité par: Versiona, à: 3/11/09 15:57
Message édité par: Versiona, à: 26/08/11 16:00<br><br>Message édité par: Versiona, à: 26/08/11 16:10
Alan Pinard
Version A
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 14 ans 11 mois #5512
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:[Script] Monitoring Espace Libre
Salut,
sous XP sp3 la ligne suivante
[code:1] $_.VAPourcentFree = [math]::Round(($_.FreeSpace/$_.Size) * 100)[/code:1]
Provoque l'erreur :
[code:1]
$_.VAPourcentFree = [math]::Round(([Double]$_.FreeSpace/[Double]$_.Size) * 100)[/code:1]
cause :
sous XP sp3 la ligne suivante
[code:1] $_.VAPourcentFree = [math]::Round(($_.FreeSpace/$_.Size) * 100)[/code:1]
Provoque l'erreur :
Je dois faire :L'opération « [System.UInt64] / [System.UInt64] » n'est pas définie.
[code:1]
$_.VAPourcentFree = [math]::Round(([Double]$_.FreeSpace/[Double]$_.Size) * 100)[/code:1]
cause :
Uint64 is not a Managed type so not much functionality implemented (.net 3.0
has BigInteger )
Greetings /\/\o\/\/
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Alan Pinard
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 77
- Remerciements reçus 0
il y a 14 ans 11 mois #5518
par Alan Pinard
Alan Pinard
Version A
Réponse de Alan Pinard sur le sujet Re:[Script] Monitoring Espace Libre
Bonjour Laurent,
Merci pour l'information,j'avais testé le script sur Windows Vista et 7 en 64 Bits.
La prochaine fois je testerai sur Windows XP!
Alan Pinard
Version A
Merci pour l'information,j'avais testé le script sur Windows Vista et 7 en 64 Bits.
La prochaine fois je testerai sur Windows XP!
Alan Pinard
Version A
Alan Pinard
Version A
Connexion ou Créer un compte pour participer à la conversation.
- yahway
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 18
- Remerciements reçus 0
il y a 13 ans 1 mois #10134
par yahway
Réponse de yahway sur le sujet Re:[Script] Monitoring Espace Libre
Bonjour,
désolé de déterrer ce sujet, mais j'ai une erreur générée par $i++ à la fin du script.
L'opérateur « ++ » ne fonctionne que sur des nombres. L'opérande est un « System.String ».
Au niveau de D:\Scripts\Powershell\Taille Disk\Get-TailleDisk.ps1 : 33 Caractère : 18
+ $i++ <<<<
+ CategoryInfo : InvalidOperation: (name:String) [], RuntimeException
+ FullyQualifiedErrorId : OperatorRequiresNumber
Par avance merci de votre aide.
désolé de déterrer ce sujet, mais j'ai une erreur générée par $i++ à la fin du script.
L'opérateur « ++ » ne fonctionne que sur des nombres. L'opérande est un « System.String ».
Au niveau de D:\Scripts\Powershell\Taille Disk\Get-TailleDisk.ps1 : 33 Caractère : 18
+ $i++ <<<<
+ CategoryInfo : InvalidOperation: (name:String) [], RuntimeException
+ FullyQualifiedErrorId : OperatorRequiresNumber
Par avance merci de votre aide.
Connexion ou Créer un compte pour participer à la conversation.
- Alan Pinard
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 77
- Remerciements reçus 0
il y a 13 ans 1 mois #10135
par Alan Pinard
Alan Pinard
Version A
Réponse de Alan Pinard sur le sujet Re:[Script] Monitoring Espace Libre
Bonjour Yahway,
Je te reviens avec une solution d'ici heure.
Je te reviens avec une solution d'ici heure.
Alan Pinard
Version A
Connexion ou Créer un compte pour participer à la conversation.
- Alan Pinard
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 77
- Remerciements reçus 0
il y a 13 ans 1 mois #10136
par Alan Pinard
Alan Pinard
Version A
Réponse de Alan Pinard sur le sujet Re:[Script] Monitoring Espace Libre
C'est bon, j'ai corrigé le code en suivant la recommandation de Laurent.
De mon côté, je l'ai testé sur un Windows XP SP3 Powershell V2 + Framework .NEt 2.0 SP2.
De mon côté, je l'ai testé sur un Windows XP SP3 Powershell V2 + Framework .NEt 2.0 SP2.
Alan Pinard
Version A
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.110 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Contributions à la communauté
- [Script] Monitoring Espace Libre