1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
###Variables
$TabResult_Infos=@()
$TabInfos=@()
$File_Infos=Get-Content -Path C:\infos.txt
$VMs=Get-VM -Name * -WarningAction SilentlyContinue
foreach ($Info in $File_Infos){
$TabInfos+=$Info
}
$Object=$TabInfos
#Region Init tab
$Pso_Init = New-Object psobject
ForEach ($Line in $Object){
Add-Member -Value "Init" -Name $Line -MemberType NoteProperty -InputObject $Pso_Init
}
$TabResult_Infos+=$Pso_Init
#EndRegion
# Variable pour la barre de progression
$i=0
$incre=100/$VMs.Count
foreach ($VM in $VMs){
$i=$i+$incre
Write-Progress -Activity "Récupération des données ..." -CurrentOperation $VM.Name -PercentComplete $i -Status "En cours "
###Creation du tableau des infos générales
$Pso_Infos = New-Object psobject
foreach ($Info in $TabInfos){
if ($Info -eq "DatastoreIdList"){
switch (($VM.DatastoreIdList)[0]){
"Datastore-datastore-2853" { Add-Member -Value "NFS-STO-001-PROD" -Name "DatastoreIdList" -MemberType NoteProperty -InputObject $Pso_Infos }
"Datastore-datastore-2852" { Add-Member -Value "NFS-STO-002-PROD" -Name "DatastoreIdList" -MemberType NoteProperty -InputObject $Pso_Infos }
default { Add-Member -Value "Autres" -Name "DatastoreIdList" -MemberType NoteProperty -InputObject $Pso_Infos }
}
}
else{
Add-Member -Value $VM.$Info -Name $info -MemberType NoteProperty -InputObject $Pso_Infos
}
}
$Pso_Infos.Notes=$Pso_Infos.Notes -replace "\n",""
$TabResult_Infos+=$Pso_Infos
} |
Partager