Excel 计划任务未使用x86版本的Powershell运行
我编写了一个Powershell脚本,它保存在Excel 计划任务未使用x86版本的Powershell运行,excel,powershell,scheduled-tasks,Excel,Powershell,Scheduled Tasks,我编写了一个Powershell脚本,它保存在.ps1文件中。它仅适用于位于中的32位版本的Powershell %SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe 当我手动运行脚本时,它可以工作,但它不是通过Windows任务计划程序运行的。我以运行脚本的用户身份运行任务。在任务的操作部分,我将上面的地址作为程序/脚本,并将.ps1文件的完整路径作为Add参数(可选)写入。但它似乎不起作用。我也尝试过将我的.ps1文件的父文件
.ps1
文件中。它仅适用于位于中的32位版本的Powershell
%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe
当我手动运行脚本时,它可以工作,但它不是通过Windows任务计划程序运行的。我以运行脚本的用户身份运行任务。在任务的操作部分,我将上面的地址作为程序/脚本,并将.ps1文件的完整路径作为Add参数(可选)写入。但它似乎不起作用。我也尝试过将我的.ps1文件的父文件夹作为起始值,但没有成功
如何让任务计划程序使用32位版本运行Powershell脚本
更新:我必须在这里添加,我的脚本实际上打开了一个Excel文件,刷新它,然后关闭它。我知道在非交互式环境中使用Excel是个坏主意。但我仍然不知道这是否是我的脚本未运行的原因。您可以采用您的脚本来确定当前的powershell版本,并在必要时使用32位版本调用相同的脚本。将以下行放在脚本顶部:
# ensure the script is running with the 32bit powershell
if ($env:Processor_Architecture -ne "x86")
{
$psx86 = Join-Path $env:SystemRoot '\syswow64\WindowsPowerShell\v1.0\powershell.exe'
& $psx86 -noprofile -file $myinvocation.Mycommand.path -executionpolicy bypass
exit
}
注意:如果脚本需要,您可以将参数附加到powershell调用中。高度怀疑Excel是这似乎不起作用的原因。让脚本执行非Excel的操作(例如创建文件),并检查此部分是否执行良好 在自动化Excel时,我遇到了两个主要问题:
但恐怕这不是问题所在。问题是这整件事都不喜欢被安排。您可以使用任务计划程序中的
powershell-file…
调用您的常规脚本。