所以我浏览了这个网站和网页,我觉得好像缺少一些简单的东西。
我发现相关问题,但没有结合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,因为在这些日子里,能够在客户端网站上提供支持的人很少而且很远。
答案 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以特殊方式解释的任何字符,则需要引用它。