如何安排powershell脚本通过Windows调度程序自动化wack进程?

时间:2013-04-22 22:22:20

标签: powershell scripting batch-file scheduler

我可以从PowerShell提示符和命令提示符执行以下命令,但我无法使用Windows调度程序安排它。

powershell脚本代码:

appcert.exe test -apptype metrostyle -packagefullname abc_somename -reportoutputpath C:\result.xml

appcert.exe是Microsoft提供的用于在我的Windows 8应用程序上执行认证测试的exe。我做了以下事情:

  1. 我正在使用代码

    制作文件ABC.ps1
    appcert.exe test -apptype metrostyle -packagefullname abc_somename -reportoutputpath C:\result.xml
    
  2. 我使用以下代码创建批处理文件PQR.bat

    powershell -command "& 'PathOfABC\ABC.ps1' "
    
  3. 我正在通过Windows调度程序安排它。

  4. 在“操作”选项卡下创建任务时,我选择以下详细信息:

    • 操作:启动程序

    • 程序/脚本:批处理文件的路径

    • 开始于:包含批处理文件的文件夹的路径

    我安排它每15分钟运行一次。任务完成,但我在C驱动器中看不到任何result.xml。你能指出我如何安排这个批处理文件每15分钟执行一次?

1 个答案:

答案 0 :(得分:0)

使用powershell -File "C:\path\to\ABC.ps1"运行powershell脚本。或者将appcert.exe命令直接放在批处理脚本中。运行批处理脚本来运行PowerShell脚本以运行可执行文件是没有意义的。

假设appcert.exe在您手动运行脚本时创建C:\result.xml

  • 您是否已将执行政策设定为至少RemoteSigned
  • 运行任务的用户是否具有Log on as batch job权限?
  • 计划任务是否配置为以最高权限运行(假设启用了UAC)?

您是否尝试在脚本中添加一些调试代码,例如

appcert.exe test ... >"%USERPROFILE%\appcert.log" 2>&1
exit /b %errorlevel%

尝试运行任务时是否会创建appcert.log?这是什么意思?