Powershell Invoke-Command with Variable for Script Name
===

I need to execute a Powershell script on a remote machine from a local script. Problem is, I don't know the path or filename of the remote script until runitime.

I've tried the following line in my local script:

    Invoke-Command -ComputerName $TargetServer -ScriptBlock { & ($TargetMSI) '$MSI' 'C:\Program Files (x86)\Vasanta.Int.MIS' 'Dev' }

Problem is this returns the error: *The expression after '&' in a pipeline element produced an invalid object.* 

If replace the $TargetMSI with a hard-coded string literal then it works fine.

Can anyone please tell me what I need to change?