PowerShell SCript使用参数执行CMD.exe

时间:2018-04-24 18:45:33

标签: powershell cmd invoke-command

所以我浏览了这个网站和网页,我觉得好像缺少一些简单的东西。

我发现相关问题,但没有结合scriptblock和远程调用第三方应用(不是简单的Windows功能或应用

我有以下字符串,我可以将其复制到命令窗口并无问题地运行

"C:\Program Files (x86)\Vizient\Vizient Secure Channel v2.1\VizientSC.exe" UID=me@musc.edu PWD=XXXXXXXXX HCOID=123456 PRODTYPE=PRO-UHCSECURECHANNEL-CDB PACKAGETYPE=OTH FOLDERPATH="\\da\db5\MyFiles\Viz\20180413"

为了简化这一点,我们假设我希望每次使用REMOTE调用时都运行相同的字符串。

我写了很多不同的方法,但无法使用

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

我只想在远程计算机上使用cmd.exe运行指定的字符串。

在字符串中运行的EXE是第三方软件,我不想安装所有可能的位置。更简单的是在盒子上运行遥控器已经安装并且是安全的。

有人能指出我正确的方向吗???? PLS ????我是PowerShell的新手。我正试图逐步淘汰一些旧的PERL,因为在这些日子里,能够在客户端网站上提供支持的人很少而且很远。

1 个答案:

答案 0 :(得分:4)

你不需要这么努力。 PowerShell可以运行命令。如果要运行的命令包含空格,请将"括起来(如您所做),并使用&(调用或调用)运算符调用它。这就是你需要做的所有事情:

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

如果可执行文件命令行中的参数包含PowerShell以特殊方式解释的任何字符,则需要引用它。