Try like this
It uses the PipelineVariable to have access to the Datastore object.
Note that the provisioned and used properties are the values over all datastores, provided the VM has files on multiple datastores.
If you want to see these values per datastore, the logic of the script will need to be changed
Get-Folder -Name stc03-lab | Get-Datastore -PipelineVariable ds | Get-VM |
Select Name,@{N='Datastore';E={$ds.Name}},PowerState,NumCpu,MemoryGB,
@{N='ProvisionedSpaceGB';E={[math]::Round($_.ProvisionedSpaceGB,1)}},
@{N='UsedSpaceGB';E={[math]::Round($_.UsedSpaceGB,1)}}