在 SQL 服务器代理上找不到路径 Powershell 脚本

Cannot find path Powershell script on SQL Server Agent

我一直在搜索所有互联网和 stackOF 以解决此问题。 我正在尝试使用 SQL 服务器代理自动执行数据库还原。 sql 服务器代理作业包括四个步骤 3,其中 tsql 和一个 powershell 脚本。

我已经创建了一个具有管理员凭据的代理,以便脚本可以 运行 作为管理员。

    cd c:;
$backuppath="Microsoft.PowerShell.Core\FileSystem::\sharedcomputer\backup";
$destpath="c:\tmp\";
get-childitem -path $backuppath | where-object { -not $_.PSIsContainer } |

    sort-object -Property $_.CreationTime |

    select-object -last 1 | copy-item -Destination (join-path $destpath "byte.BAK");

它从源共享文件夹复制 .bak 文件并将其放入目标上的 tmp 文件夹。 每当我通过常规 Powershell 运行 时,它都可以正常工作。 每当我尝试从 SQL 服务器代理 运行 执行此操作时,我都会收到一条错误消息,指出找不到路径。

我什至尝试使用 net use 来传递共享文件夹的凭据。我认为这与文件夹需要凭据这一事实有关。

我在源服务器上也关闭了密码文件共享,但出于某种原因,当我使用 windows 资源管理器定位共享文件时,它最初仍要求提供凭据。保存并缓存后,我可以使用 powershell 将其放入该文件夹。但是当它从 sql 服务器代理

执行时,none 有效

在 Windows 服务器人员的帮助下,我终于能够解决这个问题...... 回过头来回答问题。当我创建代理程序时,我使用了与当前域帐户关联的凭据,即 Domain\Administrator。

为了让代理连接到远程服务器,它需要在该域上具有凭据。 所以我所做的是使用相同的名称和密码在我的目标和源服务器上创建另一个域帐户,并授予它对我需要的文件夹的权限

该帐户已在代理中使用,并且凭据设置为 .\AccountName,因此由于存在通配符,代理能够在两个服务器之间来回跳转并成功传输文件。 ..

希望对您有所帮助