예약 할 PowerShell 스크립트가 있습니다. 작업 스케줄러에서 실행되는 것으로 보일지라도 스크립트를 실제로 실행하지는 않습니다. 나는 이것이 "사용자가 로그온했는지 여부에 관계없이"작업을 설정했기 때문에 이것이 발견되었습니다. 이 기능을 해제하면 작업이 스크립트를 실행합니다."사용자가 로그온했는지 여부를 실행하십시오"가 설정되어 있으면 PowerShell이 예약 된 작업으로 실행되지 않습니다.
나는 사용자 기반 변수를 사용하고 있었기 때문에 이것을 제안했지만 지난주에는 어떻게 얻을 수 있는지 제안하지 않았습니다.
누구든지 내 스크립트에 도움이 될 수 있습니까? 과거에 Scheduled Task
를 통해 Microsoft.Office.Interop.Excel
를 사용하는 동안
#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()
안녕하세요, 실제로 로그온 한 사용자없이이 작업을 실행할 수 있기를 원하십니까? – sodawillow
개인적으로 필자는 Try/Catch ($ ErrorActionPreference = "Stop"을 설정해야 함)에 많은 내용을 넣을 것이고 catch에서'$ Error | Out-File C : \ Debug \ Error.txt -Append' -하지만 DarkLite는 Excel 및 예약 된 작업에 대한 몇 가지 문제를 기억하고 있습니다. –
예 로그온 한 사용자없이이 프로그램을 실행해야합니다. – Christian