2017-07-26 6 views
0

S'il vous plaît aider à formater la sortie de la commande: Get- AzureRmVMUsage -Emplacement "Ouest américain"Powershell filtrage/mise en forme lors de l'interrogation Azure

En ce moment, il montre:

Name        Current Value Limit Unit 

Availability Sets       77 322000 Count 
Total Regional Cores      4159 323000 Count 
Virtual Machines       999 32220000 Count 

Comment puis-je tuyau/le filtrer pour qu'il ne montre que la valeur des cœurs régionaux totaux?

nom Sélection: spectacles suivants

Get-AzureRmVMUsage -Location "East US" -Verbose | Select Name 

Name            
----            
Microsoft.Azure.Management.Compute.Models.UsageName 
Microsoft.Azure.Management.Compute.Models.UsageName 

Merci, Dmitry

+0

Lorsque add -eq, il indique l'erreur 'Get-AzureRmVMUsage -Emplacement "Est des États-Unis" -Verbose | Sélectionnez le nom -eq 'Total Regional Cores'' 'Select-Object: Un paramètre ne peut pas être trouvé correspondant au nom du paramètre' eq '.' 'Au niveau de la ligne: 1 caractère: 64' – Dmitry

+0

Vous devriez utiliser | Where-Object au lieu de Select-Object, et l'encapsulant dans une instruction filter. S'il vous plaît faire des recherches en utilisant ces termes pour voir si elles aident. En ce qui concerne le second problème, où vous voyez Types lors de la sélection du nom, vous devrez peut-être envoyer une instruction For Each, puis extraire certaines des propriétés des objets UsageName renvoyés. –

+0

Ne montre rien, essayé avant. La recherche est une bonne chose, mais j'ai besoin d'un exemple comment cela fonctionnerait. 'Get-AzureRmVMUsage -Location" Est des États-Unis "-Verbose | Where-Object $ _. Name -eq 'Total Regional Cores'} – Dmitry

Répondre

1

Vous pouvez utiliser la commande suivante.

(Get-AzureRmVMUsage -Location "East US"|select -ExpandProperty Name).LocalizedValue 

Voici le résultat.

enter image description here

La raison racine est Name contiennent deux valeurs de l'enfant: Value et LocalizedValue. Si vous les sélectionnez directement, vous obtiendrez Microsoft.Azure.Management.Compute.Models.UsageName.

Mise à jour:

Alors, comment puis-je obtenir la valeur exacte qui correspond au total des Regonal Cores

Il suffit d'utiliser la commande suivante.

$names= Get-AzureRmVMUsage -Location "East US" 
foreach($name in $names) {$results = [pscustomobject]@{'name'=$name.name.LocalizedValue;'value'=$name.CurrentValue};$results} 

enter image description here

Update2:

Il est une variable totale Cores régionale qui détient la valeur de 5 à votre exemple. Je veux que le formatage de montrer que cette valeur sans montrer quoi que ce soit d'autre

foreach($name in $names) {$results = [pscustomobject]@{'name'=$name.name.LocalizedValue;'value'=$name.CurrentValue};$results | ?{$_.name -eq 'Total Regional Cores'}} 

enter image description here

+0

Alors, comment puis-je obtenir la valeur exacte qui correspond à Total Regonal Cores – Dmitry

+0

Walter, merci pour votre aide, et non ce n'est pas 100% de ce dont j'ai besoin .Je voudrais que la commande montre seulement le nombre de noyaux régionaux totaux, est-ce que ceci peut être fait? – Dmitry

+0

@Dmitry 'Cœurs régionaux totaux' Voulez-vous dire les cœurs qui pourraient être utilisés dans une région ou les cœurs utilisés? –