Unfortunately, the MS specifiction says that the return type should be a Collection:
http://msdn.microsoft.com/en-us/library/system.management.automation.drivemanagementintrinsics.getall(v=vs.85).aspx

I'm relatively new in C#, but from what I tried and what I read I assume that return type must be directly an Enumerable type and not just implement a proper interface? Trying to use yield but returning a collection (which implements one of the Enumerable interfaces) leads to the error:
error CS1624: The body of `System.Management.Automation.DriveManagementIntrinsics.GetAll()' cannot be an iterator block becaManagement.Automation.PSDriveInfo>' is not an iterator interface type