Passing named arguments to a script using -Argumentlist


I want to execute a script on a remote machine using Invoke-command. My script file accepts name arguments. Can someone help me how to use the Invoke-command with -Argumentlist and named parameters.

Invoke-command -computername localhost -filepath .\sample.ps1 -argumentlist (Need this part)

My script file accepts two parameters: .\sample.ps1 -foo “abc” -bar “xyz”

Tulasi Krishna.

Please check out “Example 11” in the help of Invoke-Command.

Get-Help Invoke-Command -Examples

It explains how this scenario works and shows the ArgumentList parameter in action.


Hi Daniel,

The example shows only normal parameters. But my script takes named parameters. How to pass named parameters there?

If I try like the below, I get an error

Invoke-command -ComputerName localhost -FilePath C:\scripts\Simple1.ps1 -ArgumentList -foo “C:\Temp\a.txt” -bar “C:\Temp\b.txt”


Invoke-Command : A positional parameter cannot be found that accepts argument ‘C:\Temp\a.txt’.
At line:1 char:15

  • Invoke-Command <<<< -ComputerName localhost -FilePath C:\scripts\Simple1.ps1 -ArgumentList -foo C:\Temp\a.txt -bar C
    • CategoryInfo : InvalidArgument: (:slight_smile: [Invoke-Command], ParameterBindingException
    • FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.InvokeCommandCommand

Tulasi Krishna.

Sorry I didn’t read that you want to pass named parameter earlier this morning. Unfortunately Invoke-Command does not support this out of the box. I found a thread on StackOverflow with possible workarounds.