尝试通过SQL Agent作业执行Powershell代码时出现错误

时间:2019-02-07 14:37:41

标签: sql-server powershell

我已经设置了一个SQL Server 2016代理作业,该作业具有由同一服务帐户执行的2个步骤,步骤1执行一个SSIS包,该包将2个文件写出到共享中。步骤2执行嵌入式powershell代码,该代码将这2个文件组合为一个文件,并在SSIS创建2个文件的同一共享上创建一个文件。当我执行作业(第1步)时,SSIS包将成功完成并在此共享上创建2个文件。但是当执行步骤2时,出现以下错误。信息一点,当我从Windows 10框中本地运行此脚本时,我没有任何问题。

我想我的问题是,如果SSIS可以使用相同的服务帐户成功执行,这可能是Powershell脚本的权限问题吗?我不是服务器管理员,所以如果这是一个愚蠢的问题,请原谅我的无知。任何人都可以提供的任何帮助/指导将不胜感激。

  

消息   以用户身份执行:XXX \ sqlsvc02。作业脚本遇到以下错误。这些错误并未停止脚本:在PowerShell脚本中,作业步骤在第12行收到错误。对应的行是'Get-Content $ pathCounts,$ pathDetails |设置内容$ outFile'。更正脚本并重新计划作业。 PowerShell返回的错误信息是:'找不到路径'\ xxx \ shared \ MonthlyReports \ BoundPoliciewegoAtAtFaultEndorsementWithin10Days_Counts.csv',因为它不存在。'作业步骤在PowerShell中的第12行收到错误脚本。对应的行是'Get-Content $ pathCounts,$ pathDetails |设置内容$ outFile'。更正脚本并重新计划作业。 PowerShell返回的错误信息是:'找不到路径'\ xxx \ shared \ MonthlyReports \BoundPolicie⚓AtFaultEndorsementWithin10Days_Details.csv',因为它不存在。'。进程退出代码0。步骤成功。

这是我的powershell脚本:

# Define variables
$path = '\\xxx\shared\MonthlyReports'
$pathCounts = Join-Path -Path $path -ChildPath 'BoundPoliciesAddedAtFaultEndorsementWithin10Days_Counts.csv'
$pathDetails = Join-Path -Path $path -ChildPath 'BoundPoliciesAddedAtFaultEndorsementWithin10Days_Details.csv'
$date = Get-Date
$dateStr = $date.ToString("yyyyMM")

# Define combined file name
$outFile = Join-Path $path -ChildPath("BoundPoliciesAddedAtFaultEndorsementsWithin10Days_" + $dateStr + ".csv")

# Execute combine files code
Get-Content $pathCounts, $pathDetails | Set-Content $outFile

下面是步骤2的图像:

enter image description here

0 个答案:

没有答案