PowerShell脚本手动运行,但不通过任务计划程序运行

时间:2020-03-06 17:59:52

标签: powershell sqlcmd taskscheduler

我有一个简单的PowerShell脚本,其中有1行。它登录到数据库,并运行查询的sql脚本,该脚本会删除旧数据。

sqlcmd -U myUser -P myPassword -S localHost -i .\deleteOldData.sql

当我在PowerShell窗口中手动运行脚本时,它运行良好。它将登录到数据库并清除旧数据。但是,当我在任务计划程序中创建一个基本任务并从那里运行它时,它说它已成功完成,但是看起来它什么都没做。它不会删除任何旧数据。

我的基本任务是像这样设置

Action: Start a program

Program/script: PowerShell

Add Arguments: C:\Users\Administrator\Desktop\script.ps1

1 个答案:

答案 0 :(得分:0)

Windows 10 64位。 PowerShell 5.1

如果是安全/权限问题:

运行任务时,请使用以下用户帐户,以便可以观察正在运行的任务:“仅在用户登录时运行”和“以最高特权运行”。查找错误消息。

screenshot task scheduler"Run only when user is logged on"

或者,创建任务的日志文件,以便您可以查找错误。通过这种方式创建日志文件时,您将在控制台窗口中看到减少的/无输出。日志文件将被锁定,直到操作完成。如果您不能等到操作完成,请重复打开和关闭日志文件以查看操作的进度。

-file C:\Users\Administrator\Desktop\script.ps1> %userprofile%\desktop\logfile.txt

PowerShell脚本操作:

-file C:\Users\Administrator\Desktop\script.ps1