У меня есть скрипт powershell, который запускает макрос Excel для обновления sh сводных таблиц и источников данных, он отлично работает при запуске вручную или из cmd.
при запуске из Sql Задание агента успешно завершается без выполнения Excel refre sh.
Я вызываю скрипт с помощью этой команды на шаге задания:
powershell -command "&'C:\rapport_declaratif\REFRESH_3.ps1'"
Я пытался вызвать его с powershell, с cmd, с xp_cmdshell, но ничего кажется, работает.
Я даже назвал его по-другому, потому что exp, когда я вызываю его с помощью этой команды:
cmd.exe /c "C:\rapport_declaratif\REFRESH_3.ps1"
, он работает вечно.
Я также гуглил и нашел что я должен создать эту папку:
C:\Windows\SysWOW64\config\systemprofile\DeskTop
Я сделал, и это не решило проблему.
Ниже мой сценарий powershell:
# Open Excel file
$excel = new-object -comobject excel.application
$filePath = "C:\rapport_declaratif\Rapport_Declaratif.xlsm"
$workbook = $excel.Workbooks.Open($FilePath)
$excel.Visible = $true
$excel.DisplayAlerts = $false
$worksheet = $workbook.worksheets.item(1)
#Write-Host "Running macro in excel to refresh data."#
$excel.Run("Refresh_ALL")
Start-Sleep -s 30
#Write-Host "data refreshed."#
$workbook.save()
# Write-Host "saved."#
$workbook.close()
$excel.quit()
#Write-Host "Closed Excel"#