运行任务计划程序时,PowerShell脚本停止工作

我将下面的脚本作为用户login到服务器的计划任务运行。 它使用Excel.Application COM对象将xls文件转换为csv。 转换工作,但最终打破,我不知道为什么。

我有任务运行下面的命令,理论上应该允许它不断运行:

powershell.exe -noexit -file "filename.ps1"

任何想什么尝试?

 $server = "\\server" $xls = "\path\XLS\" $csv = "\path\CSV\" $folder = $server + $xls $destination = $server + $csv $filter = "*.xls" # <-- set this according to your requirements $fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{ IncludeSubdirectories = $true # <-- set this according to your requirements NotifyFilter = [IO.NotifyFilters]"FileName, LastWrite" } Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action { $path = $Event.SourceEventArgs.FullPath $name = $Event.SourceEventArgs.Name $changeType = $Event.SourceEventArgs.ChangeType $timeStamp = $Event.TimeGenerated $excelFile = $folder + $name $E = New-Object -ComObject Excel.Application $E.Visible = $false $E.DisplayAlerts = $false $wb = $E.Workbooks.Open($excelFile) foreach ($ws in $wb.Worksheets) { $n = "output_" + $name -replace ".XLS" $ws.SaveAs($destination + $n + ".csv", 6) } $E.Quit() } 

我正在做一些类似的词。 我不能单独使用Quit 。 我想使用Quit隐藏Excel。 尝试使用以下命令释放com对象:

 $E.Quit() [System.Runtime.Interopservices.Marshal]::ReleaseComObject($E) Remove-Variable E 

我不知道你是否打开Excel应用程序,但如果你是你可以使用

 $wb.close($false) 

让我知道它是否工作…

参考: https : //technet.microsoft.com/en-us/library/ff730962.aspx? f = 255 & MSPPError =-2147217396