Peter Plott
Peter Plott

Reputation: 21

PowerShell SCript to Execute CMD.exe with Arguments

SO I have surfed this site and the web and I feel as though I am missing something simple.

I find related questions but none that combine a scriptblock and remote calling of a 3rd party app (not a simply windows function or app)

I have the following string that I can copy into a command window and run without issue

"C:\Program Files (x86)\Vizient\Vizient Secure Channel v2.1\VizientSC.exe" [email protected] PWD=XXXXXXXXX HCOID=123456 PRODTYPE=PRO-UHCSECURECHANNEL-CDB PACKAGETYPE=OTH FOLDERPATH="\\da\db5\MyFiles\Viz\20180413"

To simplify this, lets just assume I want to run this same String every time BUT with a REMOTE call.

I have written this many different ways but to no avail using

Invoke-Command -ComputerName "edwsql" -ScriptBlock { .........

I simply want to run the designated string using cmd.exe on a remote machine.

The EXE being run in the string is a 3rd party software that I do not want to install all all possible locations. Much simpler to run remote form the box it is already installed and is secure.

Can someone point me in the right direction???? Pls???? I'm new to PowerShell. I am trying to phase out some old PERL as the folks who can support that on the client site are few and far between these days.

Upvotes: 2

Views: 5222

Answers (1)

Bill_Stewart
Bill_Stewart

Reputation: 24515

You don't need to try so hard. PowerShell can run commands. If the command you want to run contains spaces, enclose in " (as you have done) and invoke it with the & (call or invocation) operator. This is all you need to do:

& "C:\Program Files (x86)\Vizient\Vizient Secure Channel v2.1\VizientSC.exe" [email protected] PWD=XXXXXXXXX HCOID=123456 PRODTYPE=PRO-UHCSECURECHANNEL-CDB PACKAGETYPE=OTH FOLDERPATH="\\da\db5\MyFiles\Viz\20180413"

If a parameter on the executable's command line contains any characters that PowerShell interprets in a special way, you will need to quote it.

Upvotes: 5

Related Questions