使用参数在SSIS中执行powershell脚本未成功

使用参数在SSIS中执行powershell脚本未成功,powershell,ssis,powershell-remoting,ssis-2012,Powershell,Ssis,Powershell Remoting,Ssis 2012,我有以下Powershell脚本: #Set up server and AC parameters param([string]$DBServer, [string]$ACString1, [string]$AcString2, [string]$ACString3, [string]$ACString4, [string]$ACString5, [string]$ACString6, [string]$ACString7, [string]$ACString8, [string]$ACStr

我有以下Powershell脚本:

#Set up server and AC parameters
param([string]$DBServer, [string]$ACString1, [string]$AcString2, [string]$ACString3, [string]$ACString4, [string]$ACString5, [string]$ACString6, [string]$ACString7, [string]$ACString8, [string]$ACString9, [string]$ACString10)

$ACString1 = $ACString1 -replace "'", ""
$ACString2 = $ACString2 -replace "'", ""
$ACString3 = $ACString3 -replace "'", ""
$ACString4 = $ACString4 -replace "'", ""

#Set up new session object for accessing production
$sess = new-pssession -computer $DBserver

#Execute AC
#invoke-command -session $sess -ScriptBlock {param($scriptACString)& 'C:\Program Files (x86)\LexisNexis\InterAction\IAAppCol\INTIATBC.EXE' Our Personnel/Personnel Bus Addr}  -args $ACString invoke-command -session $sess -ScriptBlock {param($a, $b, $c, $d, $e, $f, $g, $h, $i, $j)& 'C:\Program Files (x86)\LexisNexis\InterAction\IAAppCol\INTIATBC.EXE' $a $b $c $d $e $f $g $h $i $j} -ArgumentList($ACString1, $AcString2, $AcString3, $AcString4, $AcString5, $AcString6, $AcString7, $AcString8, $AcString9, $AcString10) 
这是这样设置的,因为如果将单引号或双引号与任何参数一起传递,它调用的可执行文件将不起作用。所以我分别传递每个令牌,因为将其作为一个参数传递会导致每个令牌周围都有单引号

从powershell命令提示符执行时,成功:

PS C:\users\mp071663_e> ./executeac.ps1 stvsqld08 our personnel
当我尝试在SSIS中执行此操作时,我无法使其成功执行。使用执行流程任务。配置如下:

Executable: C:\Windows\System32\WindowsPowerShell\v1.0\PowerShell.exe 
Arguments: -ExecutionPolicy ByPass -command  ". 'C:\Users\mp071663_e\ExecuteAC.ps1' stvsqld08 Our Personnel"
我还尝试了以下方法:

Arguments: -ExecutionPolicy ByPass -command  ". 'C:\Users\mp071663_e\ExecuteAC.ps1' 'stvsqld08' 'Our' 'Personnel'"
Arguments: -ExecutionPolicy ByPass -command  ". 'C:\Users\mp071663_e\ExecuteAC.ps1' -$DBServer 'stvsqld08' -$ACString1 'Our' -$ACString2 'Personnel'"
Arguments: -ExecutionPolicy ByPass -command  ". 'C:\Users\mp071663_e\ExecuteAC.ps1' -$DBServer stvsqld08 -$ACString1 Our -$ACString2 Personnel"

非常感谢您的帮助。

可能是32/64位的问题吗?SSIS包从Visual Studio运行,作为32位应用程序运行,您的脚本在32位PowerShell中工作吗


还设置了工作目录吗?

可能是32/64位的问题?SSIS包从Visual Studio运行,作为32位应用程序运行,您的脚本在32位PowerShell中工作吗


您还设置了工作目录吗?

一个好主意。我试了32和64,但都没用。我设置了工作目录(即使所有关于该主题的博客都将其保留为空),但仍然没有设置任何内容。谢谢你的尝试。一个好主意。我试了32和64,但都没用。我设置了工作目录(即使所有关于该主题的博客都将其保留为空),但仍然没有设置任何内容。谢谢你的尝试。