 <p>When you pipe objects to <code>Select-Object [propertyname(s)]</code>, the <code>Select-Object</code> cmdlet creates a new object for you, with the properties from the input object that you specified. This object in turn ends up being rendered as <code>@{PropertyName1=PropertyValue1[;PropertyNameN=PropertyValue2]}</code> when converted to a string.</p> <p>To grab the value of a single property, and nothing else, use the <code>-ExpandProperty</code> parameter:</p> <pre><code>$GivenName = Get-ADUser -Identity $user |Select-Object -ExpandProperty GivenName </code></pre> <p>Since you need multiple properties from the same user, better store the the user in a variable and use the <code>.</code> dereference operator to access the <code>GivenName</code> and <code>Surname</code> properties:</p> <pre><code>$UserObject = Get-ADUser -Identity $user $GivenName = $UserObject.GivenName $Surname = $UserObject.Surname </code></pre>