159 votes

Impression des propriétés des objets dans Powershell

Lorsque je travaille dans la console interactive, si je définis un nouvel objet et que je lui attribue des valeurs de propriétés comme ceci :

$obj = New-Object System.String
$obj | Add-Member NoteProperty SomeProperty "Test"

Ensuite, lorsque je tape le nom de ma variable dans la fenêtre interactive, Powershell me donne un résumé des propriétés et des valeurs de l'objet :

PS C:\demo> $obj
SomeProperty                                                                                                                                                                                  
------------                                                                                                                                                                                  
Test

Je veux faire exactement cela, mais à partir d'une fonction dans un script. La fonction crée un objet et définit certaines valeurs de propriété et je veux qu'elle imprime un résumé des valeurs de l'objet dans la fenêtre Powershell avant de revenir. J'ai essayé d'utiliser Write-Host dans la fonction :

Write-Host $obj

Mais cela ne fait qu'indiquer le type d'objet et non le résumé :

System.Object

Comment puis-je faire en sorte que ma fonction produise un résumé des valeurs des propriétés de l'objet dans la fenêtre Powershell ?

1voto

Fractal Points 571

Ce qui suit a très bien fonctionné pour moi. J'ai rassemblé toutes les réponses ci-dessus et lu des informations sur l'affichage des propriétés des objets dans le lien suivant, et j'ai obtenu le résultat suivant brève lecture sur l'impression d'objets

ajoutez le texte suivant à un fichier nommé print_object.ps1 :

$date = New-Object System.DateTime
Write-Output $date | Get-Member
Write-Output $date | Select-Object -Property *

Ouvrez l'invite de commande powershell, allez dans le répertoire où ce fichier existe et tapez ce qui suit :

powershell -ExecutionPolicy ByPass -File is_port_in_use.ps1 -Elevated

Remplacez simplement 'System.DateTime' par l'objet que vous souhaitez imprimer. Si l'objet est nul, rien ne sera imprimé.

0voto

Ramanujam Allam Points 414
# Json to object
$obj = $obj | ConvertFrom-Json
Write-host $obj.PropertyName

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X