Я пытаюсь выполнить сценарий PowerShell из SSIS. Мой скрипт начинается с Add-Type -Path "WinSCPnet.dll"
и выдает ошибку, потому что не может найти WinSCP.exe
в папке, в которой находится мой скрипт PowerShell. Приходите, чтобы узнать, что администратор сервера НЕ устанавливал WinSCP в GAC. Создает ли это мою проблему?
Если да, то как и где я могу сослаться на WinSCP.exe
в своем сценарии, используя $session.ExecutablePath
? Любая помощь/направление будет оценена по достоинству. Спасибо.
Вот мой скрипт ниже:
# Load WinSCP .NET assembly
Add-Type -Path "WinSCPnet.dll"
# Declare variables
$date = Get-Date
$dateStr = $date.ToString("yyyyMMdd")
#$fileDirectory = "\\abicfs2\apps\CoverageVerifier\"
#$filePath = "\\abicfs2\apps\CoverageVerifier\cvgver." + $dateStr + ".0101"
$filePath = "\\empqaapp1\coverageverifier_scripts\CoverageVerifier\cvgver.20190121.0101"
# Write-Output $filePath
# Set up session options
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
Protocol = [WinSCP.Protocol]::Sftp
HostName = "secureftp.iso.com"
UserName = "account"
Password = "password"
SshHostKeyFingerprint = "ssh-rsa 2048 8C1lwAjxCNRF6B4kbPIeW52/GB+98FmLMt0AJNf/Sf4="
}
#$sessionOptions.AddRawSettings("FSProtocol", "2")
$session = New-Object WinSCP.Session
# $session.SessionLogPath = "\\share\apps\CoverageVerifier\UploadLog.log"
try
{
# Connect
$session.Open($sessionOptions)
# Transfer files
$session.PutFiles($filePath,"/").Check()
}
finally
{
$session.Dispose()
}