Windows 10: Запланированные задачи с блокировкой / разблокировкой рабочей станции, не запускаемой

Я запускаю Windows 10 и пытаюсь запустить пару запланированных задач. Эти задачи устанавливаются для запуска блокировки рабочей станции и разблокировки рабочей станции и выполнения сценария, который удаленно блокирует или разблокирует соседнюю рабочую станцию ​​arch-linux. Это достигается с помощью интерфейса командной строки WinSCP, WinSCP.com и его встроенных возможностей сценариев. Эти скрипты работают очень хорошо – я могу вызвать их вручную для желаемого эффекта. Я могу даже щелкнуть правой кнопкой мыши по задачам, которые я настроил, и нажать «запустить» и понаблюдать за желаемым эффектом. Проблема в том, что события блокировки рабочих станций и рабочих станций не отображаются, когда они фактически блокируются и отпираются на рабочей станции. Этот же набор запланированных задач работал как ожидается в Windows 7.

Обзор задач блокировки / разблокировки

Окно «Планировщик заданий»

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

ОС – Windows 10 Enterprise LTSB 2016 (x64). Будут оценены любые идеи или идеи.

Вещи, которые я уже пробовал:

  • Использование объекта групповой политики для включения аудита событий блокировки / разблокировки рабочей станции – никакого эффекта. (События блокировки / разблокировки отображаются в средстве просмотра событий, как ожидалось)

  • Создание альтернативного пользователя Windows и установка задачи для запуска в качестве этого принципала.

  • Обертка вызова WinSCP.com в пакетном скрипте.

  • Изменение локального объекта групповой политики для обеспечения включенности входа в систему.

Другая релевантная информация: Другие запланированные задачи (например, те, которые работают в заданное время или интервал) работают нормально. Только эти две задачи не срабатывают.

Редактировать: По словам Твисти, я включил историю задач и получил фактическое сообщение об ошибке: Сообщение о планировщике задач

Таким образом, похоже, что задача действительно инициирована, но не запускается. Интересно, что это не обновляет свойство «Last Run Time» для задачи.

Некоторые беглые поисковые запросы указывают на то, что эта ошибка может быть связана с информацией о входе / пароле. Я проверил, что сохраненный пароль верен, но та же проблема сохраняется. Вот скриншот вкладки «Общие» в соответствии с запросом. Вкладка "Общие

Вот сценарий WINSCP, выполняемый (ключевой цензуре):

# Connect open sftp://charles@192.168.0.1:2222/ -hostkey="ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx" call cinnamon-screensaver-command -d close exit 

Я просто попробовал обернуть это в очень простой командный файл:

 @ECHO ON SET prgwinscp="C:\Program Files (x86)\WinSCP\WinSCP.com" %prgwinscp% /script=lock-arch.winscp 

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

В соответствии с запросом, вот скриншот вкладки действий: Панель действий

Затененный текст выглядит следующим образом:

 Add Arguments (Optional): /script=unlock-arch.winscp Start in (Optional): C:\Program Files (x86)\WinSCP 

  • Как изменить пользователя в WinSCP?
  • Команда «Открыть в PuTTY» WinSCP: Могу ли я скопировать файлы из Linux обратно в Windows с терминала в открывшемся экземпляре PuTTY?
  • FTP-клиент в окнах, которые сохраняют пароль сеанса в зашифрованном тексте
  • Linux: Постоянно синхронизировать файлы, в одну сторону
  • One Solution collect form web for “Windows 10: Запланированные задачи с блокировкой / разблокировкой рабочей станции, не запускаемой”

    Выполните следующие действия для устранения неполадок и решения проблемы.

    Свойства планировщика заданий. , ,

    Из Task Scheduler Windows в свойствах задания (см. Нижнюю часть снимков экрана) . , ,

    • 1. Вкладка « Общие », убедитесь, что указанные ниже параметры выбраны / отмечены или сняты, как показано на экране печати A

      • Снимите флажок Run only when user is logged on входе Run only when user is logged on
      • Проверьте, Run whether user is logged on or not
      • Проверьте Run with the highest privileges
    • 2. Вкладка « Условия », убедитесь, что указанные ниже параметры выбраны, отмечены или сняты, как показано на экране печати B

      • Проверьте Wake the computer to run this task
    • 3. Вкладка « Действия », нажмите « Редактировать» и убедитесь, что параметр « Start in (optional) установлен так, как показано в приведенном ниже примере ( НЕ помещайте вокруг него двойные кавычки) для полного пути, указывающего, где находится пакетный скрипт БЕЗ окончательного Обратная косая черта " \ " Экран печати C


    ОБСУЖДЕНИЕ БЕЗОПАСНОСТИ

    • После того, как вы нажмете ОК ( 2. выше), вам будет предложено ввести учетные данные для запуска этого как, и эти учетные данные – это то, что будет нуждаться в доступе к EXECUTE пакетному файлу там, где он существует, и ему также потребуется доступ для выполнения любого командного файла Работает, что вы сценарии.

    • Лучше всего настроить статическую учетную запись пользователя службы / прокси для этого процесса, а затем использовать его учетные данные для запуска процесса. Вам нужно будет убедиться, что его пароль силен и он никогда не истекает, и ему нужен доступ к EXECUTE партии и запуск любого процесса, запущенного в пакетном сценарии, и любых команд и ресурсов и т. Д. Он также использует.

    • Кажется, что опция « Run whether user is logged on or not вы ДОЛЖНЫ проверить параметр « Run with highest privileges чтобы он фактически выполнялся, как ожидалось, из Планировщика заданий.

    Проверка ошибок

    • Если есть проблема с фактическим пакетным скриптом, но планировщик задач Windows фактически выполняет его для его запуска, но ошибки логики сценария пакетного сценария и т. Д. По любой причине, планировщик заданий может не видеть этот сбой на этом уровне. С его точки зрения (по умолчанию большую часть времени) он выполняет командный файл, пока он может его выполнить и имеет доступ к этому, его работа выполнена успешно.

    • Добавьте проверку ошибок или протоколирование в логику пакетного сценария, чтобы уловить (или устранить неполадки ) проблемы на этом уровне, включая обеспечение того, чтобы контекст безопасности, который выполняет пакетный планировщик, имеет соответствующий доступ к командам, ресурсам и т. Д., Которые исполняются как пакетный скрипт.


    Вопросы групповой политики

    ПОЛИТИКА ПРОВЕРКИ ГРУППЫ И ВХОД В КАКИЕ РАЗРЕШЕНИЯ НА РАБОТУ

    Ответ. В Windows эта привилегия предоставляется с помощью политики безопасности Local или Domain . Чтобы сделать это с помощью локальной политики безопасности , выполните следующие действия.

    1. На панели управления откройте « Администрирование» , затем «Политика локальной безопасности» .
    2. В разделе «Параметры безопасности ниже» откройте « Локальные политики» и выделите « Назначение прав пользователя» .
    3. Локализовать вход в систему как пакетное задание . Откройте свойства и добавьте пользователей, которым это необходимо.
    4. По завершении сохраните изменения и закройте окно Local Security Settings .

    Ваши изменения должны вступить в силу немедленно. Чтобы внести изменения в Политику безопасности домена, на контроллере домена, используйте утилиту политики безопасности домена в панели управления


    Логика пакетного сценария с подключенными дисками или Полный путь UNC и проблемы. , ,

    Если ваш скрипт ссылается на сопоставленный сетевой диск, но вы хотите, чтобы он Run whether the user is logged on or not , то в этом контексте сопоставление дисков может фактически не существовать, чтобы пакетный процесс выполнял ожидаемые.

    Если это возможно, используйте UNC пути в логике пакетного сценария, а не сопоставленную букву диска, чтобы избежать проблем. В противном случае вам может понадобиться использовать PUSHD \\ServerName\ShareName в начале пакетного процесса, а затем использовать POPD в конце пакетного процесса. Вы можете сопоставить диск с NET USE X: \\ServerName\ShareName в начале пакетного процесса, а затем отключить диск с NET USE X: /DELETE в конце пакетного процесса.

    • NET USE
    • PUSHD
    • POPD

    Печатные экраны

    Экран печати A

    Введите описание изображения здесь

    Экран печати B

    Введите описание изображения здесь

    Экран печати C

    Введите описание изображения здесь


    Примеры сценариев пакетной обработки WinSCP

    Ниже приведены два очень простых и скрытых примера сценария FTP для загрузки и сценарий FTP для загрузки с FTP-сервера с использованием WinSCP.com . Убедитесь, что для переменной SET winscplogin= установлено имя FTP-соединения, которое вы определили в графическом интерфейсе WinSCP.

    Таким образом, динамически создается сценарий и вы создаете команды FTP из пакетного скрипта, но вы также можете просто просто указать его на статический скрипт WinSCP с командами FTP в них, которые тоже легко настраиваются.

    Загрузка на FTP-сервер

     @ECHO ON SET logfile=C:\folder\path\log.log ::SET WinSCP variables, etc. SET prgwinscp="C:\Program Files\WinSCP3\WinSCP.com" SET winscplogin="ABC Company" SET winscpfile=C:\folder\path\ABCompany_FTP_OUT_WinSCP.txt IF EXIST "%winscpfile%" DEL /Q /F "%winscpfile%" :ftpout ECHO. >> "%logfile%" ECHO *******************FTP OUT******************* >> "%logfile%" ECHO Delivering file(s) to ABC Company FTP server >> "%logfile%" SET ftpdir="ToABC" ECHO option batch on >> %winscpfile% ECHO option confirm off >> %winscpfile% ECHO option transfer binary >> %winscpfile% ECHO open %winscplogin% >> %winscpfile% ECHO cd %ftpdir% >> %winscpfile% ECHO put "C:\Folder\Path\*.*" >> %winscpfile% ECHO dir >> %winscpfile% ECHO close >> %winscpfile% ECHO exit >> %winscpfile% ECHO %winscpfile% >> "%logfile%" TYPE %winscpfile% >> "%logfile%" ECHO - - - - - - - - - - - - - - - - - - - - - - >> "%logfile%" %prgwinscp% /script=%winscpfile% >> "%logfile%" ECHO - - - - - - - - - - - - - - - - - - - - - - >> "%logfile%" IF EXIST "%winscpfile%" DEL /Q /F "%winscpfile%" ECHO Transmission complete >> "%logfile%" 

    Загрузка с FTP-сервера

     @ECHO ON SET logfile=C:\folder\path\log.log ::SET WinSCP variables, etc. SET prgwinscp="C:\Program Files\WinSCP3\WinSCP.com" SET winscplogin="ABC Company" SET winscpfile=C:\folder\path\ABCompany_FTP_IN_WinSCP.txt IF EXIST "%winscpfile%" DEL /Q /F "%winscpfile%" :ftpin ECHO. >> %logfile% ECHO *******************FTP IN******************* >> %logfile% ECHO Retrieving files from ABC Company server >> %logfile% SET ftpdir="FromABC" ECHO option batch on >> %winscpfile% ECHO option confirm off >> %winscpfile% ECHO option transfer binary >> %winscpfile% ECHO open %winscplogin% >> %winscpfile% ECHO cd %ftpdir% >> %winscpfile% ECHO ls >> %winscpfile% ECHO get "*.*" "C:\Folder\path\" >> %winscpfile% ECHO close >> %winscpfile% ECHO exit >> %winscpfile% ECHO %winscpfile% >> %logfile% TYPE %winscpfile% >> %logfile% ECHO ------------------------------------------- >> %logfile% %prgwinscp% /script=%winscpfile% >> %logfile% ECHO ------------------------------------------- >> %logfile% IF EXIST "%winscpfile%" DEL /Q /F "%winscpfile%" ECHO FTP Downloading Complete >> %logfile% ECHO Transmission complete >> %logfile% 

    Пользовательские примеры скриптов

    Обязательно используйте обе опции « Run whether user is logged on or not и « Run with the highest privileges при планировании пакетного сценария. После применения этих изменений вам нужно будет ввести учетные данные для выполнения задачи как явно. Обязательно используйте учетную запись, которая имеет доступ к файлам C:\Program Files (x86)\WinSCP\WinSCP.com а также соответствует другим общим предварительным требованиям, перечисленным выше.

    Если у вас все еще есть проблемы и вы хотите подтвердить, что это не касается безопасности ОС, создайте новую локальную учетную запись на компьютере и дайте ей надежный пароль, установите его, чтобы он никогда не истекал, и чтобы запуск выполнялся в виде пакетных разрешений. Вы также можете сделать это локальным администратором и проверить только, чтобы быть точным, чтобы увидеть, дает ли доступ к локальному администратору учетной записи на компьютере, имеет какое-либо значение.

    Это означает, что у вас есть два файла: пакетный скрипт и WinSCP. Пакетный скрипт передаст сценарий WinSCP на WinSCP.com, и вы можете просто выполнить его для запуска процесса. Убедитесь, что этот скрипт работает как один и тот же пользователь во время входа в систему, просто выполнив его, чтобы протестировать его, а затем проверить его с помощью той же учетной записи, когда вы вошли в компьютерный сеанс с помощью Run only when user is logged on чтобы подтвердить, что он также работает с планировщиком заданий Перед тем, как вы установите его для запуска независимо от того, вошли ли он в систему или нет, и т. Д.

    На вкладке « Actions планировщика заданий» будет использоваться поле « Program/Script: а все остальные поля остаются пустыми, а поле « Program/Script: будет иметь значение C:\folder\path\yourbatchscript.cmd .

    Пакетный сценарий

     @ECHO ON SET prgwinscp="C:\Program Files (x86)\WinSCP\WinSCP.com" %prgwinscp% /script=lock-arch.winscp EXIT 

    Скрипт WinSCP

     open sftp://charles@192.168.0.1:2222/ -hostkey="ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx" call cinnamon-screensaver-command -d close exit 
    Interesting Posts

    Имеет ли 64-битное Windows 8 «предупреждение о низкой памяти» те же ограничения, что и в Windows 7 x64?

    Что вызывает chkdsk?

    Как остановить ноутбук от разгона?

    Как контролировать импорт CSV в Excel 2010

    Как настроить загрузочный сервер PXE?

    Точка входа в систему EncodePointer не может находиться в файле kernel32.dll

    Можно ли использовать собственный домен для электронной почты с помощью MS Office 365 Home?

    Программное обеспечение для очистки фотографий досок и документов?

    Как восстановить удаленные файлы?

    Как просмотреть все символические ссылки, точки соединения, жесткие ссылки в папке с помощью dir?

    Размер файла для файла ftp-сервера vs фактический размер файла

    Надежные пользовательские сочетания клавиш Windows?

    Как использовать символ рупии на клавиатуре Dell?

    Коррумпированный MFT-раздел раздела NTFS. Какой инструмент прав? Какой инструмент исправить?

    Как создать журнал действий robocopy и сохранить в текстовом файле с сегодняшней датой?

    Давайте будем гением компьютера.