You're right that it doesn't work, but wrong about the reason. With a few specific exceptions, commands are not capable of accepting objects and never have been. ExpandExpression converts the object to a string before returning it, and ExpandArgs puts the string into the deref array which is used by most commands. This is one of a few limitations which are likely to remain until the underlying design is changed.