Please notice that the Restore class moved assembly with SQL Server 2008 from "Microsoft.SqlServer.Smo" to the namespace "Microsoft.SqlServer.SmoExtended".
Using PowerShell the assembly can be loaded like this:
[void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMOExtended')
A Restore object is - still - created like this:
$restore = New-Object 'Microsoft.SqlServer.Management.Smo.Restore'