У меня есть требование, согласно которому навигация и управление унаследованным приложением должны быть автоматизированы - этот автоматизированный метод, упакованный в виде сценария, необходимо будет развернуть через SCCM для нашей пользовательской базы.
Через некоторое времяВ исследованиях я решил использовать PythonAuto модуль Python для достижения своей цели.
Мне удалось создать скрипт, который автоматизирует все шаги графического интерфейса в соответствии с требованиями, и я также упаковал этот скрипт как exe, используямодуль Pyinstaller, но проблема, с которой я сейчас сталкиваюсь, заключается в следующем: при локальном запуске на компьютерах с Windows 7 и Windows 10 исполняемый файл выполняется успешно.Однако, при удаленном запуске exe-файла через SCCM или PSEXEC, exe-файл не выполняется.
Я также включил exe-файл в сценарий powershell, но то же самое происходит при выполнении сценария через PSEXEC или SCCM..
Я использую PSEXEC как системный пользователь, у которого есть полные права администратора.Пользователь SCCM также имеет полные права администратора.
Это пример сценария Pyinstaller, который я упаковал в исполняемый файл, просто для целей тестирования:
from __future__ import print_function
import logging
from pywinauto import actionlogger
from pywinauto import Application
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--log", help = "enable logging", type=str, required = False)
args = parser.parse_args()
actionlogger.enable()
logger = logging.getLogger('pywinauto')
if args.log:
logger.handlers[0] = logging.FileHandler(args.log)
app = Application(backend='uia').start(r'mspaint.exe')
dlg = app.window(title_re='.* - Paint')
dlg.close()
При локальном запуске exe из командной строки появляется следующее сообщение об успешном выполнении:
c: \ Temp> pywinauto_test 2019-05-11 07: 47: 14,215 ИНФОРМАЦИЯ: ЗапущеноПриложение mspaint.exe.2019-05-11 07: 47: 14,344 ИНФОРМАЦИЯ: Закрытое окно «Без названия - Paint»
При удаленном запуске через psexec появляется следующее:
C: \ Temp> pywinauto_test.exe 2019-05-11 07: 29: 38,221 ИНФОРМАЦИЯ: Запущено приложение mspaint.exe.[5516] Не удалось выполнить сценарий C: \ Temp> e. Отслеживание Pywinautopaint (последний вызов был последним): файл «site-packages \ pywinauto \ application.py», строка 256, в файле __resolve_control. Site-packages \ pywinauto \ timings.py", строка 458, в wait_until_passes pywinauto.timings.TimeoutError
Во время обработки вышеуказанного исключения произошло другое исключение:
Traceback (последний вызов был последним): файл" Pywinautopaint.py ",строка 59, в файле "site-packages \ pywinauto \ application.py", строка 378, в getattribute Файл "site-packages \ pywinauto \ application.py", строка 259, в __resolve_control File "site-packages \ pywinauto \ timings.py ", строка 436, в файле wait_until_passes, файл" site-packages \ pywinauto \ application.py ", строка 201, в файле __get_ctrl
, файл" site-packages \ pywinauto \ findwindows.py ", строка 87, в find_element pywinauto.findwindows.ElementNotFoundError: {'title_re': '. * - Paint', 'backend': 'uia', 'process': 2844}