Excel宏通过powershell运行,但在windows任务计划程序运行时不运行
我有一个脚本,用于检查文件夹中的excel文件,如果此“阈值”大于0,则会运行另一个excel文件中的宏,该宏与这些excel文件夹交互 当我通过powershell ISE手动运行该进程时,它工作正常,但当我使用windows任务调度器时,powershell脚本会运行,但调用的excel宏不会运行。为什么会出现这种情况,有什么建议吗?此进程以前在windows 2008服务器上运行,但已迁移到windows server 2012,无法正常运行Excel宏通过powershell运行,但在windows任务计划程序运行时不运行,excel,vba,powershell,windows-server-2012,Excel,Vba,Powershell,Windows Server 2012,我有一个脚本,用于检查文件夹中的excel文件,如果此“阈值”大于0,则会运行另一个excel文件中的宏,该宏与这些excel文件夹交互 当我通过powershell ISE手动运行该进程时,它工作正常,但当我使用windows任务调度器时,powershell脚本会运行,但调用的excel宏不会运行。为什么会出现这种情况,有什么建议吗?此进程以前在windows 2008服务器上运行,但已迁移到windows server 2012,无法正常运行 if ($count -gt $thres
if ($count -gt $threshold){
$excel = new-object -comobject excel.application
$workbook = $excel.workbooks.open("D:\TimesheetService\IS-FS - AutoTimesheetLoader v2.3 - UAT.xlsm")
$worksheet = $workbook.worksheets.item(1)
$excel.Run("ImportTime")
$workbook.close($false)
$excel.quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)
Remove-Variable excel
}
不能从计划任务中使用COM Automation Excel库(
新对象-comobject Excel.application
),除非该任务在当前登录用户的窗口站(会话)中运行
也就是说,为了从计划任务中使用COM Excel库,您必须选择“仅当用户登录时才运行”选项,出于两个原因,您可能不希望该选项:
- 它限制您的任务仅在有人登录时运行
- 当前登录的用户将在任务运行时看到该任务的窗口,除非您采取额外步骤将其隐藏(这不能通过
本身完成)powershell.exe
有关背景信息,请参见。除非该任务在当前登录用户的窗口站(会话)中运行,否则您无法从计划任务中使用COM Automation Excel库(
新建对象-comobject Excel.application
)
也就是说,为了从计划任务中使用COM Excel库,您必须选择“仅当用户登录时才运行”选项,出于两个原因,您可能不希望该选项:
- 它限制您的任务仅在有人登录时运行
- 当前登录的用户将在任务运行时看到该任务的窗口,除非您采取额外步骤将其隐藏(这不能通过
本身完成)powershell.exe
有关背景信息,请参阅。我也在尝试做同样的事情。这让它为我工作 最后两步是我需要的。检查以确保这些文件夹存在 在32位和64位操作系统上: C:\Windows\System32\config\systemprofile\Desktop 在64位操作系统上:
C:\Windows\SysWOW64\config\systemprofile\Desktop我也在尝试做同样的事情。这让它为我工作 最后两步是我需要的。检查以确保这些文件夹存在 在32位和64位操作系统上: C:\Windows\System32\config\systemprofile\Desktop 在64位操作系统上: C:\Windows\SysWOW64\config\systemprofile\Desktop请查看。顺便说一句:你为什么要使用
MacOS
-标签?看看。顺便问一下:为什么要使用MacOS
-标签?