Сбой нового объекта Powershell при запуске планировщиком задач Windows - PullRequest
0 голосов
/ 28 января 2019

Я почти уверен, что это должно быть какая-то странная проблема с разрешениями, но я не смог найти ничего, что работает.

Вот проблема:

У меня естьсценарий PowerShell, который выполняет передачу по FTP на удаленный сайт.Он использует объект переноса CuteFTP.Сценарий вызывается из однострочного пакетного файла.Если я запускаю командный файл из командной строки Windows, он работает отлично.Однако если пакетный файл вызывается из планировщика задач Windows, то сценарий PowerShell завершается ошибкой при попытке создания объекта CuteFTP.В обоих случаях пакетный файл запускается с использованием учетной записи администратора на локальном сервере.

Соответствующие части:

Пакетный файл:

powershell.exe -File "D:\FTPToHost.ps1"

Сценарий PowerShell:

$oSite = New-Object -ComObject CuteFTPPro.TEConnection
$oSite.Protocol = 'FTP'
$oSite.Host = "99.999.9.999"
$oSite.Login = 'UserID'
$oSite.Password = 'MyPassword'

Планировщик задач Windows выполняет это с помощью команды:

D:\FTPToHost.cmd

Выполнение пакетного файла работает в планировщике задач, однако сценарий PowerShell завершается неудачно сошибка:

New-Object : Retrieving the COM class factory for component with CLSID
{112EA537-7AB9-4E22-8BFB-7FD5FCB19849} failed due to the following error:
80080005 Server execution failed (Exception from HRESULT: 0x80080005
(CO_E_SERVER_EXEC_FAILURE)).
At D:\FTPToHost.ps1:6 char:10
+ $oSite = New-Object -ComObject CuteFTPPro.TEConnection
+          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (:) [New-Object], COMException
    + FullyQualifiedErrorId : NoCOMClassIdentified,Microsoft.PowerShell.Commands.NewObjectCommand

Насколько я вижу, проблема выглядит как сбой при установке правильной системной среды, когда PowerShell запускается планировщиком задач, поэтому ComObject ненайден или создан правильно.Как я уже говорил, если я просто открою командную строку и запусту файл .CMD из командной строки, все будет работать, как и ожидалось.

Системная среда - Windows Server 2016. Любые идеи приветствуются.

Norm

...