Might want to add some error handling. I tried it on my Win7 laptop that has an SSD (even though I know you said it wouldn't work on Win7). Got a kixtart error "expected ')'!" on line 15. Which is the below line in my script...
 Code:
  $Instances = $oWMI.InstancesOf("MSFT_PhysicalDisk", 1)