我在多台服务器上运行两个 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
。