PSExec传递带有powershell空格的参数

时间:2015-04-30 07:42:18

标签: powershell jenkins psexec

使用PSexec工具,我在远程计算机上调用PowerShell会话并执行PS1脚本。我需要将参数传递给这个powershell脚本文件。如果参数不包含空格,它可以正常工作。如果参数确实包含空格,则修剪空格后的所有内容。

以下是我的命令:

$script="<PATH>"
$args = "%ProjectSourcePath%"

cmd /c %psexecpath% \\<REMOTE SERVER>   -u <UNAME> -p <PASSWORD> -h  "c:\windows\system32\windowspowershell\v1.0\powershell.exe" $script $args

其中"%ProjectSourcePath%"是环境变量。

背景:我在Jenkins Automated Build工具中使用此命令。并在Windows Powershell脚本块中添加了此脚本。

1 个答案:

答案 0 :(得分:1)

首先,为了直接从命令行运行psexec,使用此cmd将sysinternals(或psexec位置的任何位置)文件夹添加到PATH

SET PATH=%PATH%;[FOLDER]

接下来,运行命令行......

我创建了一个非常简单的脚本创建文件,其名称为传递

的参数
param (
    [string]$name = "defaultname"
 )

$array = "string"

$array | out-file "C:\Temp\Script Location\$name.txt"

从远程服务器运行时,我执行以下操作:

psexec \\build -h "C:\windows\system32\windowspowershell\v1.0\powershell.exe" "-File" "C:\temp\script location\script.ps1" "argument with space"

以名为“with space.txt的参数”的文件结束