2015-12-22 4 views
1

У меня есть следующий Powershell скрипт:Выполнить Powershell скрипт в SSIS с параметрами успеха не

#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" 

Любая помощь очень ценится.

ответ

0

Возможно, проблема с 32/64 бит? Пакеты SSIS запускаются из Visual Studio за 32-разрядным приложением, работает ли ваш скрипт в 32-разрядной версии PowerShell?

Также у вас установлен рабочий каталог?

+0

Хорошая мысль. Я пробовал это как 32 и 64 безрезультатно. Я устанавливаю рабочий каталог (даже если все блоги по теме оставляют пусто) и все равно ничего. Спасибо за попытку. –