Bonjour à tous,

J'ai besoin de faire un test conditionnel en PowerShell V5 sur du Windows 2016 Standard dont le resultat d'une valeur qui ne doit pas être au bon format.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
# Capacité totale du disque F:\ 
$SizeF = Get-WmiObject win32_volume | where {$_.Name -eq "F:\"} |
 Select-Object @{ e={[math]::round($_.Capacity/1GB,2) } ;l="Size(GB)" } | Format-Table -HideTableHeaders
Le but est de pouvoir effectuer un test du style suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
If ($SizeF -ge "20") {
Write-host "Vrai"}
} Elseif ($SizeF -lt "20") {
Write-host "/!\ Faux"
}
Nom : Capture2.JPG
Affichages : 2094
Taille : 18,2 Ko

La valeur de mon résultat n'est pas sur une valeur numerique

Nom : Capture3.JPG
Affichages : 2085
Taille : 16,2 Ko


J'ai essayé de convertir ma valeur de plusieurs façon, voir ci-dessous quelques exemple, mais je ne dois pas faire ce qu'il faut, j'ai un message d'erreur
Impossible de convertir la valeur « System.Object[] » du type « System.Object[] » en type « System.Int32 ».

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
[int]$SizeF
$SizeF.gettype()
ou

Code : Sélectionner tout - Visualiser dans une fenêtre à part
[System.Int32]$SizeF = $SizeF
J'ai le même message d'erreur sur un pb de conversion
Nom : Capture4.JPG
Affichages : 2165
Taille : 28,0 Ko


Je suis un peu perdu, je n'arrive pas à trouver une solution viable. Es ce que quelqu'un pourrait m'aider, SVP.

Merci pour votre aide.