首页 > 解决方案 > SQL Server 代理作业未调用 Powershell 脚本

问题描述

我有将 XLS 文件转换为 CSV 文件的 Powershell 脚本。如果我手动运行此脚本,它工作正常,但它不适用于 SQL Server 代理作业。SQL Server 代理作业没有抛出任何错误,但脚本也没有做任何事情,因为它没有将 XLS 文件转换为 CSV。

Powershell 脚本代码 (Convert2CSV.ps1)

$Dir="C:\Source\TEST\Deployment\ReportOutput"
$Files =Get-Childitem $Dir -filter "*.xls"
foreach ($file in $Files)
{
    $excelFile = "$Dir\"+$File

    $Excel = New-Object -ComObject Excel.Application
    $wb = $Excel.Workbooks.Open($excelFile)

    foreach ($ws in $wb.Worksheets) 
    {
        $ws.SaveAs($excelFile.Replace(".xls","") + ".csv", 6)
    }
    $Excel.Quit()
}

SQL Server 代理作业步骤 在此处输入图像描述

下面是机器上的 Powershell ExecutionPolicy。Sql Server 和 Powershell 脚本在同一台机器上 在此处输入图像描述

标签: sql-serverpowershell

解决方案


PowerShell 脚本中没有错误处理,因此无论如何您都很难完全调试它。

由于它从 SQL 代理失败,所以我怀疑它关闭了服务帐户和权限。


推荐阅读