user7986342
user7986342

Reputation: 77

Invoke Remote Batch File

I am struggling to invoke a batch file stored on a remote server

$out = "c:\temp\test.txt"
$sessions = New-PSSession -ComputerName "COMPUTER01"
$cmd = 'C:\Program Files\tool\bin\sc.bat'
$arg1 = "list files >> $out"
Invoke-Command -Session $sessions -ScriptBlock {
    param([string]$arg1)
      & $cmd $arg1
} -ArgumentList ($arg1)
Exit-PSSession

What am I missing?

Thanks!

--- UPDATE ---- solution:

$out = "c:\temp\test.txt"
$session = New-PSSession -ComputerName "COMPUTER01"
$cmd = "C:\Program Files\tool\bin\sc.bat"
Invoke-Command -Session $session -ScriptBlock {
    param($cmd,$out)
    Invoke-Expression "&'$cmd' list files >> $out"
} -ArgumentList ($cmd,$out)
Remove-PSSession $session

Upvotes: 0

Views: 813

Answers (1)

Sid
Sid

Reputation: 2676

Have you tried using Invoke-Expression inside the scriptblock? Like:

Invoke-Expression "& $cmd $arg1"

And also you can directly use the -ComputerName parameter of Invoke-Command instead of using a session.

Upvotes: 1

Related Questions