Я запускаю puttysftp для загрузки файлов, но процесс иногда зависает, поэтому я также собираю идентификатор процесса и уничтожу его через 2 минуты, если он застрянет, чтобы другие процессы могли продолжаться.
Проблема -нет протокола SFTP передачи, поэтому я не знаю, что произошло.перенаправление в -ArgumentList не дает никаких результатов.Есть ли другой способ достижения тех же результатов, например, завершить процесс за 2 минуты и получить полный вход в PowerShell?Большое спасибо!
$logfile = Get-Date -UFormat "%Y-%m-%d"
Start-Transcript -Append -Path C:\Scripts\FTPs-PS\FTP-PS_logs\FTP-$logfile.txt
$process = Start-Process "C:\Program Files (x86)\PuTTY\psftp.exe" -ArgumentList "username@localhost -pw StrongPassword -batch -b C:\Scripts\sft.txt" -NoNewWindow -PassThru -Verbose
do {
start-sleep 5
if (-Not (Get-Process -Id ($process.Id))) {break}
$date = $process.StartTime | Out-String
$total = New-TimeSpan -Start $date -End (Get-Date)
} while ($total.TotalSeconds -lt 120)
if ((Get-Process -Id ($process.Id))) {Stop-Process -id ($process.Id)}
Stop-Transcript