Question
Addition de Valeurs
- POLFER
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 10 ans 9 mois #20035
par POLFER
Addition de Valeurs a été créé par POLFER
Bonjour,
Juste pour prévenir, je suis un débutant ++ (au sens vraiment pas doué
)
Voila mon besoin, je remplis un tableau csv avec des valeurs que je récupère en PowerCLI VMware.
Le but étant d'avoir pour chaque client un récapitulatif de pas mal de chose. Mon problème concerne la mémoire associée à chaque VM.
En effet, on me demande d’additionner la RAM de chaque VM pour renseigner le total dans le csv.
J'arrive bien a récupérer les infos des noms de client, le nombre de VM par OS etc donc je pense avoir une bonne base de départ.
Pour mon problème, j'en suis la :
[code:1] foreach ( $VM in $Liste_VM_ESS)
{
write-host $VM.name \"`t\" $VM.MemoryMB
}[/code:1]
Cela m'affiche bien un résultat tel que celui-ci :
SRV-CLIENT-01 2048
SRV-CLIENT-02 4096
et mon besoin serait de pouvoir additionner les 2 valeurs \"2048 + 4096\" puis diviser cela par 1024 pour obtenir \"6\"
Je vous avoue que je ne sais pas du tout comment faire ni par ou commencer.
J'espere avoir été assez exhaustif et que vous pourrez m'aiguiller.
Merci d'avance.<br><br>Message édité par: spolfer, à: 11/06/15 10:25
Juste pour prévenir, je suis un débutant ++ (au sens vraiment pas doué
Voila mon besoin, je remplis un tableau csv avec des valeurs que je récupère en PowerCLI VMware.
Le but étant d'avoir pour chaque client un récapitulatif de pas mal de chose. Mon problème concerne la mémoire associée à chaque VM.
En effet, on me demande d’additionner la RAM de chaque VM pour renseigner le total dans le csv.
J'arrive bien a récupérer les infos des noms de client, le nombre de VM par OS etc donc je pense avoir une bonne base de départ.
Pour mon problème, j'en suis la :
[code:1] foreach ( $VM in $Liste_VM_ESS)
{
write-host $VM.name \"`t\" $VM.MemoryMB
}[/code:1]
Cela m'affiche bien un résultat tel que celui-ci :
SRV-CLIENT-01 2048
SRV-CLIENT-02 4096
et mon besoin serait de pouvoir additionner les 2 valeurs \"2048 + 4096\" puis diviser cela par 1024 pour obtenir \"6\"
Je vous avoue que je ne sais pas du tout comment faire ni par ou commencer.
J'espere avoir été assez exhaustif et que vous pourrez m'aiguiller.
Merci d'avance.<br><br>Message édité par: spolfer, à: 11/06/15 10:25
Connexion ou Créer un compte pour participer à la conversation.
- Axel
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 176
- Remerciements reçus 0
il y a 10 ans 9 mois #20036
par Axel
Réponse de Axel sur le sujet Re:Addition de Valeurs
tu as un tableau avec
SRV-CLIENT-01 2048
SRV-CLIENT-02 4096
dans une colonne ?
SRV-CLIENT-01 2048
SRV-CLIENT-02 4096
dans une colonne ?
Connexion ou Créer un compte pour participer à la conversation.
- Axel
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 176
- Remerciements reçus 0
il y a 10 ans 9 mois #20038
par Axel
Réponse de Axel sur le sujet Re:Addition de Valeurs
ta version ?
Connexion ou Créer un compte pour participer à la conversation.
- POLFER
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 10 ans 9 mois #20040
par POLFER
Réponse de POLFER sur le sujet Re:Addition de Valeurs
Merci de ta réponse.
Version 2 pardon.
Non je n'ai pas un tableau avec ces valeurs.
Je ne sais pas comment expliquer mais lorsque je lance mon script complet avec PowerShell ISE, je récupère ce que j'ai noté dans le message précédent.
Je ne sais pas comment l'exploiter en fait...
Version 2 pardon.
Non je n'ai pas un tableau avec ces valeurs.
Je ne sais pas comment expliquer mais lorsque je lance mon script complet avec PowerShell ISE, je récupère ce que j'ai noté dans le message précédent.
Je ne sais pas comment l'exploiter en fait...
Connexion ou Créer un compte pour participer à la conversation.
- POLFER
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 10 ans 9 mois #20041
par POLFER
Réponse de POLFER sur le sujet Re:Addition de Valeurs
Peut etre est ce plus simple si je post l'intégralité du script...
Je l'ai épuré pour faciliter la lecture et cacher les infos confidentielles.
[code:1]#############################################################################
# List all VM
# Run as scheduled task with a user with rights to view all VMs
#
Add-PSSnapin VMware.VimAutomation.Core
Connect-VIServer vcenter
$date=Get-Date -uFormat \"%d-%m-%Y\"
$strOutFile = \"EXPORT_VMWARE_$date.CSV\"
$strSubject = “VM list - ” + (get-date -DisplayHint date)
### Integralite de la plateforme
$Liste_Folder = get-folder -Name \"Machine de PROD\" |get-folder |where {$_.name -like \"*(X*)\" -or $_.name -like \"*(Z*)\"} |where {$_.name -notlike \"*(*SAAS360*)\"} |select name, @{NAME=\"CodeClient\";EXPRESSION={ [REGEX]::match($_.name,'[a-zA-Z0-9\(\) ]*\(([xX-zZ0-9]*)\)').groups[1].value }}
$csv=\"Code_client,Nom_client,Quantite_VM_MS,Quantite_VM_Unix,FW,Essential,Entreprise,Premium`r`n\"
foreach ($Folder in $Liste_Folder)
{
write-host -BackgroundColor Green $Folder.name
# Identification de l'os
$Liste_VM_MS = get-folder $Folder.name |get-Vm |Where { $_.powerstate -like \"PoweredOn\" } |Where { $_.guest.OsFullName -like \"*Microsoft*\" } | Where {$_.Name -like \"*PROD*\"} | select *
$Liste_VM_LX = get-folder $Folder.name |get-Vm |Where { $_.powerstate -like \"PoweredOn\" } |Where { $_.guest.OsFullName -notlike \"*Microsoft*\" } | Where {$_.Name -notlike \"*FW-*\"} | Where {$_.Name -notlike \"*TEST*\"} | select *
$Liste_VM_FW = get-folder $Folder.name |get-Vm |Where { $_.powerstate -like \"PoweredOn\" } |Where { $_.guest.OsFullName -notlike \"*Microsoft*\" } |where { $_.name -like \"*FW-*PROD*\" } | select *
# Identification du niveau de service
$Liste_VM_ESS = get-folder $Folder.name |get-Vm |Where { $_.powerstate -like \"PoweredOn\" } |Where {$_.Name -like \"*PROD-LC*\"} |Where {$_.Name -notlike \"FW*\"} |select *
$Liste_VM_ENT = get-folder $Folder.name |get-Vm |Where { $_.powerstate -like \"PoweredOn\" } |Where {$_.Name -like \"*PROD]*\"} |Where {$_.Name -notlike \"FW*\"} | select *
$Liste_VM_PRE = get-folder $Folder.name |get-Vm |Where { $_.powerstate -like \"PoweredOn\" } |Where {$_.Name -like \"*PROD-PRA*\"} |Where {$_.Name -notlike \"FW*\"} | select *
# Pour les VMs Crosoft
foreach ( $VM in $Liste_VM_MS)
{
write-host $VM.name \"`t\" $VM.Guest.OsFullName
}
$QTE_MS=0
if ($Liste_VM_MS.count -gt 0 )
{
$QTE_MS = $($Liste_VM_MS.count)
}
else
{ if ($Liste_VM_MS -ne $NULL)
{
$QTE_MS=1
}
}
# Pour les VMs Tux
foreach ( $VM in $Liste_VM_LX)
{
write-host $VM.name \"`t\" $VM.Guest.OsFullName
}
$QTE_LX=0
if ($Liste_VM_LX.count -gt 0 )
{
$QTE_LX = $($Liste_VM_LX.count)
}
else
{ if ($Liste_VM_LX -ne $NULL)
{
$QTE_LX=1
}
}
# Pour les VMs Pfsense
foreach ( $VM in $Liste_VM_FW)
{
write-host $VM.name \"`t\" $VM.Guest.OsFullName
}
$QTE_FW=0
if ($Liste_VM_FW.count -gt 0 )
{
$QTE_FW = $($Liste_VM_FW.count)
}
else
{ if ($Liste_VM_FW -ne $NULL)
{
$QTE_FW=1
}
}
### Pour les VMs Essential [PROD-LC]
foreach ( $VM in $Liste_VM_ESS)
{
write-host $VM.name \"`t\" $VM.MemoryMB
}
# Creation du CSV
$csv+=$Folder.CodeClient+\",\"+$Folder.name+\",\"+$QTE_MS+\",\"+$QTE_LX+\",\"+$QTE_FW+\",\"+$nbrePart_ESS+\",\"+$nbrePart_ENT+\",\"+$nbrePart_PRE+\"`r`n\"
}
# $csv |out-file $strOutFile
# DisConnect-VIServer -Server * -Force -Confirm:$false[/code:1]
Je l'ai épuré pour faciliter la lecture et cacher les infos confidentielles.
[code:1]#############################################################################
# List all VM
# Run as scheduled task with a user with rights to view all VMs
#
Add-PSSnapin VMware.VimAutomation.Core
Connect-VIServer vcenter
$date=Get-Date -uFormat \"%d-%m-%Y\"
$strOutFile = \"EXPORT_VMWARE_$date.CSV\"
$strSubject = “VM list - ” + (get-date -DisplayHint date)
### Integralite de la plateforme
$Liste_Folder = get-folder -Name \"Machine de PROD\" |get-folder |where {$_.name -like \"*(X*)\" -or $_.name -like \"*(Z*)\"} |where {$_.name -notlike \"*(*SAAS360*)\"} |select name, @{NAME=\"CodeClient\";EXPRESSION={ [REGEX]::match($_.name,'[a-zA-Z0-9\(\) ]*\(([xX-zZ0-9]*)\)').groups[1].value }}
$csv=\"Code_client,Nom_client,Quantite_VM_MS,Quantite_VM_Unix,FW,Essential,Entreprise,Premium`r`n\"
foreach ($Folder in $Liste_Folder)
{
write-host -BackgroundColor Green $Folder.name
# Identification de l'os
$Liste_VM_MS = get-folder $Folder.name |get-Vm |Where { $_.powerstate -like \"PoweredOn\" } |Where { $_.guest.OsFullName -like \"*Microsoft*\" } | Where {$_.Name -like \"*PROD*\"} | select *
$Liste_VM_LX = get-folder $Folder.name |get-Vm |Where { $_.powerstate -like \"PoweredOn\" } |Where { $_.guest.OsFullName -notlike \"*Microsoft*\" } | Where {$_.Name -notlike \"*FW-*\"} | Where {$_.Name -notlike \"*TEST*\"} | select *
$Liste_VM_FW = get-folder $Folder.name |get-Vm |Where { $_.powerstate -like \"PoweredOn\" } |Where { $_.guest.OsFullName -notlike \"*Microsoft*\" } |where { $_.name -like \"*FW-*PROD*\" } | select *
# Identification du niveau de service
$Liste_VM_ESS = get-folder $Folder.name |get-Vm |Where { $_.powerstate -like \"PoweredOn\" } |Where {$_.Name -like \"*PROD-LC*\"} |Where {$_.Name -notlike \"FW*\"} |select *
$Liste_VM_ENT = get-folder $Folder.name |get-Vm |Where { $_.powerstate -like \"PoweredOn\" } |Where {$_.Name -like \"*PROD]*\"} |Where {$_.Name -notlike \"FW*\"} | select *
$Liste_VM_PRE = get-folder $Folder.name |get-Vm |Where { $_.powerstate -like \"PoweredOn\" } |Where {$_.Name -like \"*PROD-PRA*\"} |Where {$_.Name -notlike \"FW*\"} | select *
# Pour les VMs Crosoft
foreach ( $VM in $Liste_VM_MS)
{
write-host $VM.name \"`t\" $VM.Guest.OsFullName
}
$QTE_MS=0
if ($Liste_VM_MS.count -gt 0 )
{
$QTE_MS = $($Liste_VM_MS.count)
}
else
{ if ($Liste_VM_MS -ne $NULL)
{
$QTE_MS=1
}
}
# Pour les VMs Tux
foreach ( $VM in $Liste_VM_LX)
{
write-host $VM.name \"`t\" $VM.Guest.OsFullName
}
$QTE_LX=0
if ($Liste_VM_LX.count -gt 0 )
{
$QTE_LX = $($Liste_VM_LX.count)
}
else
{ if ($Liste_VM_LX -ne $NULL)
{
$QTE_LX=1
}
}
# Pour les VMs Pfsense
foreach ( $VM in $Liste_VM_FW)
{
write-host $VM.name \"`t\" $VM.Guest.OsFullName
}
$QTE_FW=0
if ($Liste_VM_FW.count -gt 0 )
{
$QTE_FW = $($Liste_VM_FW.count)
}
else
{ if ($Liste_VM_FW -ne $NULL)
{
$QTE_FW=1
}
}
### Pour les VMs Essential [PROD-LC]
foreach ( $VM in $Liste_VM_ESS)
{
write-host $VM.name \"`t\" $VM.MemoryMB
}
# Creation du CSV
$csv+=$Folder.CodeClient+\",\"+$Folder.name+\",\"+$QTE_MS+\",\"+$QTE_LX+\",\"+$QTE_FW+\",\"+$nbrePart_ESS+\",\"+$nbrePart_ENT+\",\"+$nbrePart_PRE+\"`r`n\"
}
# $csv |out-file $strOutFile
# DisConnect-VIServer -Server * -Force -Confirm:$false[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Axel
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 176
- Remerciements reçus 0
il y a 10 ans 9 mois #20042
par Axel
Réponse de Axel sur le sujet Re:Addition de Valeurs
je pense qu'il faut que tu utilise les objets avec un tableau, tu range toute tes info dans name, avec tout tes serveurs ensuite tu fais une deuxieme colonne avec RAM, ensuite tu pourra plus facilement faire tes calculs
utlise new-object PSObject
utlise new-object PSObject
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.046 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Addition de Valeurs