SQL Server代理作业失败“Move-Item:访问被拒绝”

时间:2016-06-09 19:59:46

标签: sql sql-server excel powershell sharepoint

我正在尝试刷新Excel文档并将其发布到sharepoint站点。我试图将文档保存到sharepoint站点。我试图创建一个植根于sharepoint站点目录的新驱动器。最后,我尝试使用System.Net.Webclient上传项目。

这是我的代码:

    $networklocation = "URL"
$filename = "FILEPATH.xlsx"
$fileforsharepoint = "FILEFORSHAREPOINT.XLSX"

# To view Excel file open need to set below property to True

$excel = new-object -comobject Excel.Application
$excel.visible = $false
$excel.DisplayAlerts = $false

# Give delay to open
 Start-Sleep -s 5

# Open the Excel 
 $excelworkbook = $excel.workbooks.Open($filename, $null, $false)

 Start-Sleep -s 5

# This will Refresh All the pivot tables data.
 $excelworkbook.RefreshAll()
 Start-Sleep -s 5


 $excelworkbook.Save()
 $excelworkbook.SaveAS($fileforsharepoint)

 Start-Sleep -s 5

 $excel.quit()


 Start-Sleep -s 5

#New-PSDrive -Name "T" -Root $networklocation -PSProvider FileSystem

Move-item $fileforsharepoint $networklocation

##$webclient = New-Object System.Net.WebClient
##$webclient.UseDefaultCredentials=$true
##$webclient.UploadFile($networklocation + "/" + "FILEFORSHAREPOINT.xlsx", "PUT", $fileforsharepoint)

它将在powershell GUI中运行。它不会在SQL Server管理工作室作业中运行。

  

失败消息:以用户身份执行:USER。名称
  使用(GB)免费(GB)提供商根----   --------- --------- -------- ---- T FileSystem \ $ networklocation ...作业脚本   遇到以下错误。这些错误并未阻止   脚本:作业步骤在PowerShell的第4行收到错误   脚本。相应的行是'powershell.exe -File   '$ filename''。更正脚本并重新安排   工作。 PowerShell返回的错误信息是:'移动项:   访问被拒绝'作业步骤在第4行收到错误   PowerShell脚本。相应的行是'powershell.exe -File   '$ filename''。更正脚本并重新安排   工作。 PowerShell返回的错误信息是:'At   $ filename:36 char:1'工作步骤收到了   PowerShell脚本中第4行的错误。相应的行是   'powershell.exe -File'$ filename'。纠正   脚本并重新安排工作。返回的错误信息   PowerShell是:'+ Move-item $ fileforsharepoint'T:“'一个工作步骤   在PowerShell脚本的第4行收到错误。相应的   line是'powershell.exe -File'$ filename'。   更正脚本并重新安排作业。错误信息   PowerShell返回的是:'+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   作业步骤在PowerShell脚本的第4行收到错误。该   对应的行是'powershell.exe -File   '$文件名'。更正脚本并重新安排   工作。 PowerShell返回的错误信息是:'+   CategoryInfo:PermissionDenied:($ filename ...和   去掉。 '作业步骤在PowerShell的第4行收到错误   脚本。相应的行是'powershell.exe -File   '$文件名'。更正脚本并重新安排   工作。 PowerShell返回的错误信息是:'
  xlsx:String)[Move-Item],UnauthorizedAccessException'一个工作步骤   在PowerShell脚本的第4行收到错误。相应的   line是'powershell.exe -File'$ filename'。   更正脚本并重新安排作业。错误信息   PowerShell返回的是:'+ FullyQualifiedErrorId:   MoveItemUnauthorizedAccessError,Microsoft.PowerS'一个工作步骤   在PowerShell脚本的第4行收到错误。相应的   line是'powershell.exe -File'$ filename'。   更正脚本并重新安排作业。错误信息   PowerShell返回的是:'hell.Commands.MoveItemCommand'A   作业步骤在PowerShell脚本的第4行收到错误。该   对应的行是'powershell.exe -File   '$文件名'。更正脚本并重新安排   工作。 PowerShell返回的错误信息是:''。   处理退出代码0.步骤成功。

在您建议修复Excel错误(在C:路径中创建文件夹)之前,我已经这样做了。似乎是一个与Excel相关的问题,但我对如何上传此文件感到困惑。

1 个答案:

答案 0 :(得分:0)

  1. 转到服务,找到 SQL Server 代理。看看它说的登录身份。
  2. 右键单击文件夹,属性,安全性,添加,输入登录身份。给它完全权限。

现在 SQL JOB 可以使用 powershell 移动文件了。

相关问题