2016-07-04 1 views
1

예약 할 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() 
+0

안녕하세요, 실제로 로그온 한 사용자없이이 작업을 실행할 수 있기를 원하십니까? – sodawillow

+0

개인적으로 필자는 Try/Catch ($ ErrorActionPreference = "Stop"을 설정해야 함)에 많은 내용을 넣을 것이고 catch에서'$ Error | Out-File C : \ Debug \ Error.txt -Append' -하지만 DarkLite는 Excel 및 예약 된 작업에 대한 몇 가지 문제를 기억하고 있습니다. –

+0

예 로그온 한 사용자없이이 프로그램을 실행해야합니다. – Christian

답변

0

나는 몇 가지 문제를 했어. Microsoft Excel의 설치 버전 필요가 없기 때문에

이 모듈은 쉽게 예약 작업 내에서 사용할 수있는 EPPLUS DLL를 사용한다 : SE는 우리가 다음과 같은 모듈을 사용으로 전환 어쨌든 서버상의 바람직한 솔루션이 아닙니다.

그럼 분명히 도움이 될 것입니다. 여전히 Microsoft.Office.Interop.Excel 객체를 사용하려면

, 당신은 그래서 당신은 수동으로 다음이 개 폴더를 생성해야한다는 것을 알고 this을 읽을 필요가 :이 폴더는 사용자의 시스템에서 사용할 수있는

C:\Windows\System32\config\systemprofile\Desktop 
C:\Windows\SysWOW64\config\systemprofile\Desktop 

Scheduled Task이 올바르게 실행됩니다.

관련 문제