相互投稿が禁止されている場合は申し訳ありませんが、ServerFault.com で注目を集めていなかったので、ここで試してみようと思いました。エラーは、これがスクリプト構文の問題であることを示唆しています。
コンソール (PSVersion 2.0) から正常に実行される単純な PowerShell スクリプトがあります。
$psftpPath = "C:\Program Files (x86)\PuTTY\psftp.exe"
$sftpHost = "foo.baa.com"
$userName = "myusername"
$userPassword = "mypassword"
$todate = Get-Date -format yyMMdd;
$fromdate = (get-date).AddDays(-7).ToString("yyyMMdd")
$filename = "RawData_Extract_$($fromdate)_$($todate).zip"
$cmd = @("lcd D:\Healthstream", "get $($filename)", "bye")
$cmd | & $psftpPath -pw $userPassword "$userName@$sftpHost"
SQL Server のスケジュールされたジョブとしてスケジュールしたいと考えています。ジョブの "Type:" を PowerShell に設定すると、$cmd 行 (9 行目) 上 (またはその周辺) で構文エラーが発生して失敗します。「Run as: SQL Server Agent Service Account」のキー チェーンの問題を解決するために、「Job Owner」を自分として実行しようとしました。
誰かが私が間違っていることを理解するのを手伝ってくれますか?