Maven works in cmd but not powershell
You don't need Invoke-Expression, see my blog post: http://blogs.msdn.com/b/powershell/archive/2011/06/03/invoke-expression-considered-harmful.aspx
In your case, just run the command almost exactly like you would in cmd (it turns out you probably need to add some quotes):
mvn assembly:assembly -P prod "-Dmaven.test.skip=true"