PowerShell没有';“当”时,不能按计划任务运行;无论用户是否登录,都要运行";设定
我想安排一个PowerShell脚本。虽然它似乎在任务调度器中运行,但实际上并没有运行我的脚本。我发现这是因为我将任务设置为“无论用户是否登录都运行”。如果禁用此选项,任务将运行脚本 上周我发现一篇文章指出,这是因为我使用了基于用户的变量,但并没有建议如何绕过它 有人能帮我写下面的脚本吗PowerShell没有';“当”时,不能按计划任务运行;无论用户是否登录,都要运行";设定,powershell,Powershell,我想安排一个PowerShell脚本。虽然它似乎在任务调度器中运行,但实际上并没有运行我的脚本。我发现这是因为我将任务设置为“无论用户是否登录都运行”。如果禁用此选项,任务将运行脚本 上周我发现一篇文章指出,这是因为我使用了基于用户的变量,但并没有建议如何绕过它 有人能帮我写下面的脚本吗 #UPDATE DATA IN EXCEL FILES #THEN CREATE PDF FILE [string]$path = "\\server\folder\" #Path to Excel spre
#UPDATE DATA IN EXCEL FILES
#THEN CREATE PDF FILE
[string]$path = "\\server\folder\" #Path to Excel spreadsheets to save to PDF
[string]$savepath = "\\server\folder\Reports\"
[string]$dToday = Get-Date -Format "yyyyMMdd"
$xlFixedFormat = "Microsoft.Office.Interop.Excel.xlFixedFormatType" -as [type]
$excelFiles = Get-ChildItem -Path $path -include *.xls, *.xlsx -recurse
# Create the Excel application object
$objExcel = New-Object -ComObject excel.application
$objExcel.visible = $false #Do not open individual windows
foreach($wb in $excelFiles)
{
# Path to new PDF with date
$filepath = Join-Path -Path $savepath -ChildPath ($wb.BaseName + "_" + $dtoday + ".pdf")
# Open workbook - 3 refreshes links
$workbook = $objExcel.workbooks.open($wb.fullname, 3)
$workbook.RefreshAll()
# Give delay to save
Start-Sleep -s 5
# Save Workbook
$workbook.Saved = $true
"saving $filepath"
#Export as PDF
$workbook.ExportAsFixedFormat($xlFixedFormat::xlTypePDF, $filepath)
$objExcel.Workbooks.close()
}
$objExcel.Quit()
过去,我通过
计划任务使用Microsoft.Office.Interop.Excel
时也遇到一些问题。因此,我们转而使用以下模块:
此模块利用,可在计划任务中轻松使用,因为不需要安装Microsoft Excel的版本,这在任何情况下都不是服务器上理想的解决方案
所以我建议你看看这个,因为它肯定会对你有所帮助
如果仍希望使用Microsoft.Office.Interop.Excel对象,则需要阅读,以便知道需要手动创建以下两个文件夹:
C:\Windows\System32\config\systemprofile\Desktop
C:\Windows\SysWOW64\config\systemprofile\Desktop
当这些文件夹在您的系统上可用时,计划任务
很可能会正确运行。您好,您真的想在没有任何登录用户的情况下运行此任务吗?我个人会用Try/Catch(需要设置$ErrorActionPreference=“Stop”
)在catch中,比如说$Error | Out File C:\Debug\Error.txt-Append
——但正如DarkLite所说,我还记得Excel和计划任务中的一些问题。是的,我需要在没有任何用户登录的情况下运行此程序。