How can I past only a selection of fields from an object to show in out-gridview, but still keep the whole object as a result.
For example, I retrieve an object that gives me:
$listcreds = get-listofcredentials
Id : 03c0e0c0-0951-4698-9ba9-a70508b5467f
IsLocalProtect : True
Name : vsphere.local\Administrator
CurrentUser : False
UserName : vsphere.local\Administrator
UserNameAtNotation : [email protected]
UserNameSlashNotation : vsphere.local\Administrator
UserNameOnly : Administrator
DomainName : vsphere.local
EncryptedPassword : Veeam.Backup.Common.CCodedPassword
In the gridview I want to only see Name and ID. After the user selects the row desired, I would like to have the result as the same type of object again.
When I use select-object,
$selectedcred = $listofcredentials | select-object Name, Id | out-gridview -passthru
I get the result back but I would now have to search the original object again to get the other properties of that row.
What better way to do this?
You need to find the full object again in the list with
Where-Object
This answer assumes the
Id
property is unique for every item in$listcreds
I don't think there's a better solution here. If performance is a concern, you can convert the
Where-Object
into aforeach
as below:However, the performance difference may be negligible or even negative.