Tips and Tricks
How to get value for a property from a object in Powershell Variable ?
--
PowerShell is a very unique and powerful language. Objects are the main reason behind it. It’s default use of object makes it different then any other shell or scripting language.
Objects are everywhere in PowerShell. I will not waste any more time with some random information here so lets get back to our original question.
How to get value for a property from every object in Powershell Variable?
Lets take an example ! I want to fetch object id of AD group
PS> Get-AzADGroup -DisplayName "my-group" | Select Idoutput will be like -
Id
--
2xc3cc-3frf5g-r4fe34c-xxxxx-something
However, this use of the Select-Object
cmdlet (built-in alias is select
) is not much of use here as this still returns a object that requires you to access its property again !
We can use Select-Object to extract a single property value, via
-ExpandProperty <PropertyName> parameter:PS> Get-AzADGroup -DisplayName "developers" | Select
-ExpandProperty Id
2xc3cc-3frf5g-r4fe34c-xxxxx-something
How we reach to this ?
To discover information about an object (members) in powershell, you can use the Get-Member
cmdlet.
Consider this you want to view members for a particular object returned via the Get-AzADGroup cmdlet.
PS> Get-AzADGroup -DisplayName "developers" | Get-MemberTypeName: Microsoft.Azure.Commands.ActiveDirectory.PSADGroupName MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Description Property string Description {get;set;}
DisplayName Property string DisplayName {get;set;}
Id Property string Id {get;set;}
MailNickname Property string MailNickname {get;set;}
ObjectType Property string ObjectType {get;}
SecurityEnabled Property System.Nullable[bool] SecurityEnabled {get;set;}
Type Property string Type {get;set;}
You can use another way to do this as well.
PS> $ObjId = (Get-AzADGroup -DisplayName "developers").Id
PS> Write-Host $ObjId
2xc3cc-3frf5g-r4fe34c-xxxxx-something
Thanks !