powershell - PSExec Pass参数带有Powershell空格

标签 powershell jenkins psexec

使用PSexec工具,我正在远程计算机上调用powershell session 并执行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自动构建工具中使用此命令。并已在Windows Powershell脚本块中添加了此脚本。

最佳答案

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

SET PATH=%PATH%;[FOLDER]

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

我创建了一个非常简单的脚本,创建了一个文件,名称为im
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"

最后以名为“带有space.txt的参数”的文件结尾

关于powershell - PSExec Pass参数带有Powershell空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29961857/

相关文章:

windows - 电源外壳 3.0 : Alternative to "Get-Volume"

powershell - 多写输出

jenkins - 管道 Jenkins 作业中的指纹

powershell - 使用Psexec运行Powershell脚本时出错

C# 屏幕截图 winlogon 以及用户桌面

PsExec 以可见模式运行远程批处理文件

c# - 如何将特定输出值从 exe (c#) 发送到 powershell 脚本

powershell - 使用 “invoke-command”捕获命令的返回码-Powershell 2

Jenkins windows slave离线

ios - Jenkins - 命令行构建 iOS 项目