Планировщик заданий не запускается Ps. правильно - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть файл .bat следующим образом:

@echo off

Taskkill /IM powershell.exe /F
REM Taskkill /IM cmd.exe /F

TIMEOUT /T 2

powershell.exe -windowstyle hidden -file D:\tdp\bin\Upgrade\Services_UPGRADE.ps1

exit /b 1

Это должно запустить файл .Ps, что он делает, и все задачи выполняются правильно. Файл .Ps имеет следующие строки:

  Set-Location D:\tdp\bin\UpgradeSIGMA
### SET FOLDER TO WATCH + FILES TO WATCH + SUBFOLDERS YES/NO
    $watcher = New-Object System.IO.FileSystemWatcher
    $watcher.Path = "X:\HF\QA\Build_Archive\Servers\"
    $watcher.Filter = "*.*"
    $watcher.IncludeSubdirectories = $false
    $watcher.EnableRaisingEvents = $true  

### Monitor the folder to see if any updates are done.
    $action = { $path = $Event.SourceEventArgs.FullPath
                $changeType = $Event.SourceEventArgs.ChangeType
                $logline = "$(Get-Date), $changeType, $path"
                Add-content "D:\tdp\bin\UpgradeSIGMA\logs\PowerShellLog.log" -value $logline

              }  

    $action2 = { 
                cmd.exe /c "D:\tdp\bin\Upgrade\upgrade_700.bat"
              }  

### Logs the change in a log file specified in action procedure
    Register-ObjectEvent $watcher "Created" -Action $action
    Register-ObjectEvent $watcher "Changed" -Action $action
    Register-ObjectEvent $watcher "Deleted" -Action $action
    Register-ObjectEvent $watcher "Renamed" -Action $action
### DECIDE WHICH EVENTS SHOULD BE WATCHED 
    Register-ObjectEvent $watcher "Created" -Action $action2
    while ($true) {sleep 10}

. Это сценарий мониторинга. Он выполняет свою работу, если я запускаю командный файл вручную, и продолжает выполнять эту работу, например, если он уничтожен или сервер перезапущен.

Что я хочу сделать, это вставить задачу планировщика задач basi c, которая будет запускать файл / bat, чтобы эта задача выполнялась постоянно, чтобы в случае перезапуска сервера я не не забудьте запустить эту задачу, тогда задача будет запущена сама.

Как только я создаю планировщик задач и запускаю его, я вижу, что сеанс .Ps изменился, и новый сеанс начался. Хотя, когда создаются новые сервисы, это не происходит, как если бы я запускал файл вручную из файла bat.

Сейчас я попробовал несколько вещей:

  1. Планирование задачи с и без наивысших привилегий.
  2. Выбрал параметр «Только для запуска», когда пользователь вошел в систему и запускать ли пользователь вошел в систему или нет.
  3. установить путь к программе / скрипту к файлу .bat без аргументов.
  4. Установите начало в пути к папке, в то время как Программа / Сценарий имеет только упомянутое имя пакетного файла и путь.
  5. Добавлена ​​Программа / Сценарий как: "C: \ Windows \ system32 \ cmd.exe ", аргумент как" / c ss_ds_background.bat "и запуск как" D: \ tdp \ bin \ Upgrade \ "

Все эти случаи привели к тому же результату, что .Ps запускались (из диспетчера задач я мог видеть новую сессию), но он никогда не проходил мимо этого и никогда не обнаруживал новые случаи. Это заставляет меня думать, что это проблема с while l oop в .ps.

Есть совет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...