Как удаленно перезапустить службу на защищенном паролем компьютере с помощью Python?

StackOverflow https://stackoverflow.com/questions/1332853

  •  19-09-2019
  •  | 
  •  

Вопрос

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

Редактировать:Все удаленные компьютеры используют Windows 2003

Это было полезно?

Решение

Люди обычно рекомендуют парамико в качестве библиотеки для работы по ssh (и я предполагаю, что вам понадобится ssh для доступа к удаленной машине).Есть хороший руководство для этого.

Редактировать:В Windows, вероятно, самый простой способ — использовать SysInternals. psservice утилита, вызываемая с помощью os.system;это может запустить удаленную службу и принять учетные данные для входа.

Если вы хотите сделать это непосредственно в Python, вам нужно win32service.StartService.Перед этим вам нужно открыть диспетчер удаленных служб, а затем удаленный сервис.Перед этим вам необходимо выдать себя за пользователя, под которым вы хотите выполнить операцию, см. пример.

Другие советы

Взгляни на Ткань который основан на парамико.Это действительно хороший инструмент для автоматизации удаленных задач с помощью Python.

Документация по ткани покажет вам, как легко им пользоваться.

Какая операционная система установлена на вашем удаленном компьютере?Если это linux, запустите ssh(1) используя subprocess модуль.

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

Какая ОС для целевых машин?Если «служба» — это «служба Windows NT», а ваш локальный компьютер также является Windows, я бы использовал IronPython в качестве реализации языка Python и вызывал бы прямо средства WMI в пространстве имен .net System.Management — они подразумеваются для удаленного администратора вроде этого.

В Windows модуль WMI сейчас это фантастика.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top