sql-server - 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()
}
下面是机器上的 Powershell ExecutionPolicy。Sql Server 和 Powershell 脚本在同一台机器上
解决方案
PowerShell 脚本中没有错误处理,因此无论如何您都很难完全调试它。
由于它从 SQL 代理失败,所以我怀疑它关闭了服务帐户和权限。
推荐阅读
- java - SpEL:当使用 SpEL 编译时,表达式求值的性能没有明显差异
- c++ - 如何正确实现与基类不同的版本?
- javascript - jquery:我可以使用启用和禁用的伪选择器与 javascript 中的 css 方法吗?
- python - 我应该如何组织大部分相同的脚本?
- realitykit - 我想 addChild RealityComposer 创建的实体
- mediarecorder - Android9录屏时保存为3gp文件的问题
- html - 为带有网格区域的图像添加边距时,图像会折叠吗?
- php - 在 WooCommerce 结帐中选中复选框时显示必填文本字段
- css - 为旋转 CSS 设置动画时文本模糊
- javascript - 在分组 JSON 属性之后循环