#excel #powershell #xlsx #xls #windows-task-scheduler
#excel #powershell #xlsx #xls #windows-task-scheduler
Вопрос:
Я пытаюсь запустить следующий сценарий Powershell через планировщик задач, но, хотя он дает мне успешный запуск (0x0), ничего не происходит. Если я запускаю скрипт вручную с того же компьютера, что и обычный пользователь, скрипт выполняется без каких-либо проблем.
$folderpath = "\shared_pathexcel.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:Temppowershell.ps1 » или СИСТЕМА и текущий пользователь, вошедший в систему, но ничего не изменилось.
Моя система — это домен, подключенный к Windows 10 с неограниченным доступом к общему местоположению (доступ для всех)
Есть идеи?
Комментарии:
1. различные приложения Office запускаются только через эти вызовы, если приложение было запущено хотя бы один раз этой учетной записью в этой системе . поэтому я бы вошел в целевую систему с целевой учетной записью и запустил приложения Office один раз, чтобы они были «инициализированы». ///// кроме того, вы можете добавить ведение журнала ИЛИ
Start-Transcript
командлет, чтобы получить больше информации о том, что делает скрипт… и где он терпит неудачу. ///// кроме того, вы еще не пробовали искать на этом сайте[powershell] run with task scheduler
?
Ответ №1:
Обычно я настраиваю планировщик задач для запуска сценария PowerShell со следующими настройками:
Новое действие
Действие: «Запустить программу».
Программа / скрипт: «C:WindowsSystem32WindowsPowerShellv1.0powershell.exe «
Добавьте аргументы (необязательно): .ScriptName.ps1 -Значение Arg11
Запустите в (необязательно): Path to Script Directory