python, pywinrm. ошибка при работе из под системы
всем привет.
собственно такая проблема, имеем код(под сообщением) подключение к winrm серверу и выполнение команды. код скомпилирован с помощью pyinstaller в .exe приложение. нужно чтоб приложение запускалось с помощью планировщика задач с периодичностью в час, отправляло на сервер команду по средствам winrm и завершалось. все отлично работает, подключается если запустить приложение просто двойным щелчком пользователя, НО когда же приложение выполняется от имени системы(хоть планировщик задач, хоть как служба при помощи nssm.exe) то при подключении к серверу выдает ошибку: SpnegoError (4294967295): [WinError -2146893043] The credentials supplied to the package were not recognized, Context: Processing security token
понимаю что скорее всего где то проблема в пользовательском пк, какая то настройка скорее всего, ведь из под юзера работает, из под системы нет.
подскажите пожалуйста кто может как и куда смотреть, возможно как исправить.
код:
import winrm
try:
host = 'http://192.168.1.110:5985'
box1 = winrm.Session(host,
auth=("admin", "password"),
transport='ntlm',
server_cert_validation='ignore',
read_timeout_sec='6',
operation_timeout_sec='5')
stat = box1.run_cmd('echo net')
print(str(stat.std_out))
except Exception as ex:
print(str(ex))
Ответы (1 шт):
на деле все оказалось просто. при работе от имени пользователя в строку авторизации автоматически подставляется домен по умолчанию, даже если компьютер не находится в домене, а при работе от имени системы домен не подставлялся и аутентификация не проходила, так как недостаточно данных для неё.
добавил
auth=("WORKGROUP\\admin", "password")
и все заработало:)