- forum
- PowerShell
- Entraide pour les débutants
- obtenir des détails vm sur un certain nombre d'hôtes sur le réseau
Question
obtenir des détails vm sur un certain nombre d'hôtes sur le réseau
- boulbul
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 1 an 1 mois - il y a 1 an 1 mois #32578
par boulbul
Je voudrais utiliser la commande invoke pour obtenir les détails de tous les vms installés sur chaque hôte de serveur sur le réseau dans un format de liste.
J'ai cherché sur internet mais je n'ai rien trouvé qui corresponde à mes besoins.
Le meilleur que j'ai eu jusqu'à présent est le suivant:
#Type Hyper-V host server names in $hosts variable
$hosts = "SRV1", "SRV2, SRV3"
Get-VM -ComputerName $hosts | select-object -ExpandProperty NetworkAdapters
Cela fonctionne un peu , mais nulle part où je voudrais qu'il soit.
J'ai besoin que la sortie ressemble à ceci:
Server Name/host, Host IP, Host MAC, VM Name/Guest, Guest OS Name, VM IPv4, VM IPv6, VM MAC, VM Note
Merci pour ton aide.
Salutations,
Boulbul
J'ai cherché sur internet mais je n'ai rien trouvé qui corresponde à mes besoins.
Le meilleur que j'ai eu jusqu'à présent est le suivant:
#Type Hyper-V host server names in $hosts variable
$hosts = "SRV1", "SRV2, SRV3"
Get-VM -ComputerName $hosts | select-object -ExpandProperty NetworkAdapters
Cela fonctionne un peu , mais nulle part où je voudrais qu'il soit.
J'ai besoin que la sortie ressemble à ceci:
Server Name/host, Host IP, Host MAC, VM Name/Guest, Guest OS Name, VM IPv4, VM IPv6, VM MAC, VM Note
Merci pour ton aide.
Salutations,
Boulbul
Dernière édition: il y a 1 an 1 mois par boulbul.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6298
- Remerciements reçus 68
il y a 1 an 1 mois #32579
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet obtenir des détails vm sur un certain nombre d'hôtes sur le réseau
Salut,
récupère déjà les données d'un serveur.
Ensuite analyse ses propriétés pour retrouver les informations nécessaire à ton résultat.
Je ne pense pas que la propriété 'NetworkAdapters' puisse contenir cette info 'Server Name/host'.
Construit un objet intermédiaire pour chaque serveur:
récupère déjà les données d'un serveur.
Ensuite analyse ses propriétés pour retrouver les informations nécessaire à ton résultat.
Je ne pense pas que la propriété 'NetworkAdapters' puisse contenir cette info 'Server Name/host'.
Construit un objet intermédiaire pour chaque serveur:
$VMDatas=Get-VM -ComputerName 'srv1'
$Resultat=[pscustomobject]@{
'Server'=$VMDatas.Hostname # un exemple
'IPv4'=$VMDatas.NetworkAdapters.IPV4 #ici aussi c'est un exemple car à priori c'est un tableau
#etc
}
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- boulbul
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 1 an 1 mois - il y a 1 an 1 mois #32581
par boulbul
Réponse de boulbul sur le sujet obtenir des détails vm sur un certain nombre d'hôtes sur le réseau
Merci de m'avoir répondu...
Avec vortre script, seul le titre "NetAdapters" est sorti mais rien d'autre... cependant, si je le supprime du script que vous avez envoyé, j'obtiens ce qui suit :
{VirtualMachine (Name = 'Nom de VM (Os Installe') [Id = 'UUID' de Vm]
Oui, vous avez raison, je peux m'occuper de la chose à ce moment-là, les détails de l'hôte puis les détails de la vm comme vous l'avez suggéré, mais cela ne m'aidera pas lorsque je mettrai en place.
c'est tout, j'ai vraiment besoin de montrer dans ce format.
Server Name/host, Host IP, Host MAC, VM Name/Guest, Guest OS Name, VM IPv4, VM IPv6, VM MAC, VM Note
Avec vortre script, seul le titre "NetAdapters" est sorti mais rien d'autre... cependant, si je le supprime du script que vous avez envoyé, j'obtiens ce qui suit :
{VirtualMachine (Name = 'Nom de VM (Os Installe') [Id = 'UUID' de Vm]
Oui, vous avez raison, je peux m'occuper de la chose à ce moment-là, les détails de l'hôte puis les détails de la vm comme vous l'avez suggéré, mais cela ne m'aidera pas lorsque je mettrai en place.
c'est tout, j'ai vraiment besoin de montrer dans ce format.
Server Name/host, Host IP, Host MAC, VM Name/Guest, Guest OS Name, VM IPv4, VM IPv6, VM MAC, VM Note
Dernière édition: il y a 1 an 1 mois par boulbul.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6298
- Remerciements reçus 68
il y a 1 an 1 mois #32583
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet obtenir des détails vm sur un certain nombre d'hôtes sur le réseau
>>Avec votre script,
c'est plus une piste.
>>mais cela ne m'aidera pas lorsque je mettrai en place.
Essai.
Un extrait d'un de mes projets pro de gestion de VM hyper VSi cette approche fonctionne pour moi je ne vois pas ce qui poserait pb dans ton cas.
c'est plus une piste.
>>mais cela ne m'aidera pas lorsque je mettrai en place.
Essai.
Un extrait d'un de mes projets pro de gestion de VM hyper V
function New-VMExtractReporting{
#Crée un compte rendu d'extraction d'une VM
param(
[Parameter(Position=0,Mandatory=$True)]
[ValidateNotNullOrEmpty()]
[String]$ComputerName,
[Parameter(Position=1,Mandatory=$True)]
[ValidateNotNullOrEmpty()]
[String]$VolumeName,
[Parameter(Position=2,Mandatory=$True)]
[ValidateNotNullOrEmpty()]
[string] $VMName,
[Parameter(Position=3,Mandatory=$True)]
[boolean] $Error
)
$Result=New-Object PSObject -Property @{
#Contient le nom du serveur interrogé
ComputerName=$ComputerName;
#Contient le sommaire du texte de la notification
Volume=$VolumeName;
#Contient le nom de la VM
VMName=$VMName;
#Indique si une erreur a eu lieu
Error=$Error
}
$Result.PsObject.TypeNames[0] = "VMExtractReporting"
$Result
} #New-VMExtractReporting
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- boulbul
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 1 an 1 mois - il y a 1 an 1 mois #32584
par boulbul
Réponse de boulbul sur le sujet obtenir des détails vm sur un certain nombre d'hôtes sur le réseau
Bonjour Laurent,
Merci encore une fois pour votre réponse rapide.
Corrigez-moi si je me suis trompé, je pense que vous avez oublié de mettre "New-" avant "VMExtractReporting" sur la 3ème dernière ligne de votre code ?
Votre code crée une fonction qui invitera l'utilisateur à entrer des valeurs qui seront ensuite affichées dans le bon format... cela fait partie de ce que je veux... laissez-moi clarifier avec le code... Votre code m'a déjà aidé à avancer un peu.....
Voici mon code:
<
get-vm | Select-Object ComputerName,Name,Id,Notes,State,NetworkAdapters|Format-Table
/>
Et c'est la sortie.
<
ComputerName Name Id Notes State NetworkAdapters
---- --
New-vm c1 8b89c96-d5a5-4c61-b63c-232d2133f192 Running {Carte réseau}
Boulbul test1 81de770f-54cb-4d1a-beed-097e0cc1155a Running {Carte réseau}
Boulbul test2 83551f8f-59e3-4681-bf5d-0f76c940a333 Off {Carte réseau}
/>
Comme vous pouvez le voir, il n'affiche pas les détails de la carte réseau, mais uniquement le texte "Carte réseau" à la place.
Ce que je voudrais faire, c'est ajouter au résultat ci-dessus IPv4, IPv6, Iterface Name of the VM.
Merci
Merci encore une fois pour votre réponse rapide.
Corrigez-moi si je me suis trompé, je pense que vous avez oublié de mettre "New-" avant "VMExtractReporting" sur la 3ème dernière ligne de votre code ?
Votre code crée une fonction qui invitera l'utilisateur à entrer des valeurs qui seront ensuite affichées dans le bon format... cela fait partie de ce que je veux... laissez-moi clarifier avec le code... Votre code m'a déjà aidé à avancer un peu.....
Voici mon code:
<
get-vm | Select-Object ComputerName,Name,Id,Notes,State,NetworkAdapters|Format-Table
/>
Et c'est la sortie.
<
ComputerName Name Id Notes State NetworkAdapters
---- --
New-vm c1 8b89c96-d5a5-4c61-b63c-232d2133f192 Running {Carte réseau}
Boulbul test1 81de770f-54cb-4d1a-beed-097e0cc1155a Running {Carte réseau}
Boulbul test2 83551f8f-59e3-4681-bf5d-0f76c940a333 Off {Carte réseau}
/>
Comme vous pouvez le voir, il n'affiche pas les détails de la carte réseau, mais uniquement le texte "Carte réseau" à la place.
Ce que je voudrais faire, c'est ajouter au résultat ci-dessus IPv4, IPv6, Iterface Name of the VM.
Merci
Dernière édition: il y a 1 an 1 mois par boulbul.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6298
- Remerciements reçus 68
il y a 1 an 1 mois #32585
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet obtenir des détails vm sur un certain nombre d'hôtes sur le réseau
>>vous avez oublié de mettre "New-" avant "VMExtractReporting"
Non, c'est le type de l'objet personnalisé créée par la fonction. Nom que l'on retrouve via Get-Member. le principe de nommage de fonction de Powershell est verbe-nom, 'NEW' est le verbe et 'VMExtractReporting' le nom de la ressource ou de l'objet que l'on manipule/crée.
>>il n'affiche pas les détails de la carte réseau,
Non puisque tu demandes le formatage d'un tableau de carte réseau (NetworkAdapters) et pas les éléments contenu dans le tableau. A aucun moment tu ne précises les propriétés qui t'intéresse. C'est un peu comme dire à Powershell 'prend ça et débrouille toi avec', alors il se débrouille mais pas autant que tu le souhaites.
C'est pour cela qu'il faut construire un second objet composé de différentes propriété du premier objet qui est déjà un objet composé.
Tu décomposes l'objet d'origine (une VM) source pour recomposer un objet de reporting ou d'affichage.
Enfin le format table est la dernière opération à effectuer, car ton objet recomposé pourrait être enregistré dans un pdf, un docs ou xls.
Format-table crée un objet spécialisé de formatage dédié à la console Powershell uniquement.
Non, c'est le type de l'objet personnalisé créée par la fonction. Nom que l'on retrouve via Get-Member. le principe de nommage de fonction de Powershell est verbe-nom, 'NEW' est le verbe et 'VMExtractReporting' le nom de la ressource ou de l'objet que l'on manipule/crée.
>>il n'affiche pas les détails de la carte réseau,
Non puisque tu demandes le formatage d'un tableau de carte réseau (NetworkAdapters) et pas les éléments contenu dans le tableau. A aucun moment tu ne précises les propriétés qui t'intéresse. C'est un peu comme dire à Powershell 'prend ça et débrouille toi avec', alors il se débrouille mais pas autant que tu le souhaites.
C'est pour cela qu'il faut construire un second objet composé de différentes propriété du premier objet qui est déjà un objet composé.
Tu décomposes l'objet d'origine (une VM) source pour recomposer un objet de reporting ou d'affichage.
Enfin le format table est la dernière opération à effectuer, car ton objet recomposé pourrait être enregistré dans un pdf, un docs ou xls.
Format-table crée un objet spécialisé de formatage dédié à la console Powershell uniquement.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- forum
- PowerShell
- Entraide pour les débutants
- obtenir des détails vm sur un certain nombre d'hôtes sur le réseau
Temps de génération de la page : 0.054 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- obtenir des détails vm sur un certain nombre d'hôtes sur le réseau