PowerShell execute Sqlpackage.exe remotely

I am trying to execute the sqlpackage.exe remotely as follows
$SqlPackage = “C:\SqlPackage.exe”
[string[]] $Properties = @("/p:DropObjectsNotInSource=true","/p:ScriptDatabaseCompatibility=true","/p:CommandTimeout=0", “/p:RegisterDataTierApplication=true”)

$Params=@("/Action:Publish","/TargetServerName:""$ServerInstance""","/TargetDatabaseName:""$TargetDatabaseName""","/SourceFile:""$SourceFile""","$Variables")

$p="$Params $Properties"
Invoke-Command -ScriptBlock {& $SqlPackage } -ArgumentList @p -Session $session

But I got an exception as follows

A positional parameter cannot be found that accepts argument ‘A’.
So can some one help me how to resolve

Please try below:

Invoke-Command -Session $session -ScriptBlock { Start-Process -NoNewWindow -Wait -FilePath ${Using:SqlPackage} -ArgumentList "${Using:Params} ${Using:Properties}" }

Hi Daniel I am getting an error as file not found, to be more clear I need to install on B machine and I am running the script from A machine where the two machines are remotely connected.

$SqlPackage = "C:\SqlPackage.exe"
this path is from A machine