【发布时间】:2021-02-26 09:42:06
【问题描述】:
我正在尝试通过任务计划程序运行以下 Powershell 脚本,但尽管它让我成功运行 (0x0),但没有任何反应。如果我从与标准用户相同的机器手动运行脚本,则脚本执行没有任何问题。
$folderpath = "\\shared_path\excel.xls"
Add-Type -AssemblyName Microsoft.Office.Interop.Excel
$xlFixedFormat = [Microsoft.Office.Interop.Excel.XlFileFormat]::xlOpenXMLWorkbook
write-host $xlFixedFormat
$excel = New-Object -ComObject excel.application
$excel.visible = $false
$filetype ="*xls"
Get-ChildItem -Path $folderpath -Include $filetype -recurse |
ForEach-Object `
{
$path = ($_.fullname).substring(0, ($_.FullName).lastindexOf("."))
$workbook = $excel.workbooks.open($_.fullname)
$path += ".xlsx"
$excel.DisplayAlerts = $false;
$workbook.saveas($path, $xlFixedFormat)
$workbook.close()
}
$excel.Quit()
$excel = $null
[gc]::collect()
[gc]::WaitForPendingFinalizers()
澄清一下,我在任务调度程序中尝试了不同的选项,例如在“-WindowStyle Hidden -NonInteractive -ExecutionPolicy Bypass -File "C:\Temp\powershell.ps1" 或 SYSTEM 等参数下运行它,并且当前登录用户但没有任何改变。
我的系统是加入了 Windows 10 的域,可以不受限制地访问共享位置(所有人都可以访问)
有什么想法吗?
【问题讨论】:
-
各种办公应用程序仅通过这些调用运行如果该应用程序已由该系统上的该帐户至少运行一次。所以我会使用目标帐户登录目标系统并运行一次办公应用程序以使它们“初始化”。 ///// 此外,您可以添加日志记录或
Start-Transcriptcmdlet 以获取有关脚本正在执行的操作的更多信息......以及失败的位置。 ///// 还有,你试过在这个网站上搜索[powershell] run with task scheduler吗?
标签: excel powershell xlsx xls windows-task-scheduler