2017-09-12 4 views
0

Je suis nouveau à PWSH, cela peut sembler facile pour vous les gars mais je ne peux pas trouver le moyen de montrer le résultat comme prévu.Powershell: montrer la valeur seulement au lieu de @ {} dans le résultat

$vm2 = Get-VM VM1234 
$vmMemUsageAvg = get-VM $vm2.Name | Select @{N="Mem.Usage.Average";E={[Math]::Round((($_ |Get-Stat -Stat mem.usage.average -Start (Get-Date).AddHours(-24)-IntervalMins 5 -MaxSamples (12) |Measure-Object Value -Average).Average),2)}} 

maintenant, à titre d'exemple, lors de la demande le résultat de $vmMemUsageAvg je reçois cette sortie:

C:\Windows\system32> $vmMemUsageAvg 
Mem.Usage.Average 
----------------- 
       5.9 

mais je veux seulement vous voulez que la sortie de la valeur, comme: 5.9

mettre cette dans la cellule Excel avec

$Sheet.Cells.Item($intRow, 13) = [String]$vmMemUsageAvg 

me donne un stri ng comme ceci:

@{Mem.Usage.Average=5.9} 

Toute aide bienvenue à avoir cette valeur uniquement affichée

+0

mettant que dans une cellule Excel avec Sheet.Cells.Item $ (intRow, 13) = [chaîne] $ vmMemUsageAvg me donner une chaîne comme ceci: @ {Mem. Usage.Average = 5.9} – VinceD

+0

Vous avez créé un objet avec la propriété 'Mem.Usage.Average' et une valeur de 5,9 dans cette propriété. Pour voir juste la valeur de cette propriété, vous devez demander juste cette propriété. '$ vmMemUsageAvg." Mem.Usage.Average "'. Oui, c'est un peu idiot d'envelopper 5.9 dans une propriété d'un objet, puis de le déballer tout de suite après. – TessellatingHeckler

+0

Oui! J'ai essayé $ vmMemUsageAvg.Mem.Usage.Average mais n'a pas été un succès. LE DEVIS FAIRE FONCTIONNER. MERCI ! – VinceD

Répondre

1

En utilisant Select-Object @{N="Mem.Usage.Average";E={...}} vous faites un objet avec une propriété Mem.Usage.Average, mais il semble juste veulent une chaîne. Il suffit donc de prendre le Select

$vm2 = Get-VM VM1234 
$vmMemUsageAvg = [Math]::Round(((get-VM $vm2.Name | Get-Stat -Stat mem.usage.average -Start (Get-Date).AddHours(-24)-IntervalMins 5 -MaxSamples (12) | Measure-Object Value -Average).Average),2) 
+0

Oui, merci! Apprendre tous les jours :-) – VinceD