计划任务中的 PowerShell 脚本错误

计划任务中的 PowerShell 脚本错误

我在多台服务器上运行两个 PowerShell 脚本作为计划任务。一个脚本 (#1) 将文件夹从一个应用程序移动到另一个文件夹 (垃圾),另一个脚本 (#2) 重新启动服务。

脚本 #1 通过将文件夹复制到目标路径,然后删除源路径中的文件夹来移动文件夹。该脚本在 PowerShell 控制台中手动运行时有效,但当它作为计划任务运行时,它不会将文件夹复制到目标路径,但会删除源路径中的文件夹。

脚本 #2 在两台服务器上重新启动 MySQL 和 IIS,但通常无法在第三台服务器上重新启动 MSSQL。当我检查计划任务历史记录时,该脚本运行了 30 分钟,然后被调度程序强制停止。它重新启动单个 MSSQL 实例,因此最多只需几分钟。

两个脚本都以最高权限运行,并带有 -ExecutionPolicy Bypass,并且 Start In 文件夹设置为其安装路径。我在 History 中收到操作代码错误 (2)。这是一条文件未找到消息。每个脚本都使用 XML 文件进行设置。

有谁知道我可能会遗漏什么以使脚本无人值守运行?

谢谢。

答案1

计划任务使用哪种凭据运行?系统和其他本地帐户仅在本地系统上运行。如果脚本通过网络访问其他计算机,则任务需要使用对其他网络资源具有足够权限的域帐户运行。

在每个脚本的第一行/最后一行添加以下内容:

start-transcript c:\temp\something.log
stop-transcript

这样您就可以查看脚本执行期间引发了哪些错误。

在删除源之前,请验证复制是否成功。如果复制是使用 cmdLet 完成的,例如copy-item查看$?。如果是 EXE,例如robocopy查看$lastExitCode

相关内容