使用定义文件名的选项运行脚本块

时间:2019-06-17 21:32:20

标签: rundeck

我试图创建一个rundeck作业,在其中指定要在该远程服务器上执行的远程服务器上的.bat文件的名称。该服务器上没有执行节点,因此我正在使用invoke-command在该(Windows)服务器上运行作业。如果在命令窗口中对文件路径进行硬编码,则可以很好地完成工作。

我想添加一个选项,以允许用户指定.bat文件的位置,以使其更容易创建新作业(我们可能必须创建许多此类作业)。

现在我的工作流程是单个命令:

Invoke-command -Authentication kerberos -ComputerName <servername> -ScriptBlock{<filename>}

可以,但是我不知道如何获得选项(${option.prog_run})来进行交互;我收到一个powershell错误,说我指定了错误的代码,或者它实际上没有运行任何东西。

这将“成功”,但实际上不会运行文件:

Invoke-command -Authentication kerberos -ComputerName s12zapap01880 -ScriptBlock{start-process ${option.prog_run} }

这将失败,并出现如下错误:

 16:28:00   At line:1 char:123 
 16:28:00   + ... <servername>'-ScriptBlock{<filename.bat>' } 
 16:28:00   +                                               ~ 
 16:28:00   Unexpected token '}' in expression or statement.

这表明我可能没有正确地转义{},但是我不确定如何转义。在此处包含选项的正确方法是什么?

0 个答案:

没有答案