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 :
*******************
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!
Partager