Этот скрипт позволяет выполнить команду на удаленном компьютере с операционной системой Windows с использованием протокола WinRM. Он устанавливает соединение с удаленным хостом, выполняет команду и возвращает результат.
-
Установите Python 3, если он еще не установлен.
-
Установите модуль
winrm, если он еще не установлен, с помощью следующей команды:
pip install pywinrm-
Загрузите скрипт
remote_execution.pyв свою рабочую директорию. -
Укажите параметры удаленного компьютера в следующих переменных:
remote_host: IP-адрес или имя удаленного компьютера.username: Имя пользователя для удаленного входа.password: Пароль пользователя для удаленного входа.
-
Укажите команду, которую нужно выполнить на удаленном компьютере, в переменной
command. -
Запустите скрипт следующей командой:
python remote_execution.py-
Скрипт установит соединение с удаленным компьютером и выполнит указанную команду.
-
Результат выполнения команды будет выведен в консоль и сохранен в текстовом файле
remote_info.txt, который будет создан на рабочем столе.
Скрипт зависит от следующих зависимостей:
winrm- модуль Python для взаимодействия с удаленными компьютерами по протоколу WinRM. Он может быть установлен с помощью командыpip install pywinrm.
-
Перед использованием скрипта убедитесь, что на удаленном компьютере включен протокол WinRM и настроены соответствующие права доступа для удаленного входа.
-
Убедитесь, что указанные учетные данные (имя пользователя и пароль) для удаленного входа верны и имеют необходимые привилегии на удаленном компьютере.
-
Проверьте соединение с удаленным компьютером, чтобы убедиться, что он доступен и может быть достигнут из вашей сети.
-
Рекомендуется внимательно изучить код скрипта и проверить его на соответствие требованиям и безопасности вашей системы перед использованием в боевом окружении.
- Импортирование необходимых модулей:
winrm.Protocol: модуль для работы с удаленным выполнением команд на компьютере Windows по протоколу WS-Management.os: модуль для взаимодействия с операционной системой, в данном случае используется для работы с файловой системой.
- Определение функции
run_remote_command, которая выполняет удаленную команду на компьютере Windows с помощью протокола WinRM:- Создание объекта
Protocolдля установки соединения с удаленным компьютером, используя указанные параметры (хост, имя пользователя, пароль). - Открытие нового сеанса командной оболочки (
shell) на удаленном компьютере. - Запуск команды на удаленном компьютере с помощью метода
run_command, который возвращает идентификатор команды (command_id). - Получение вывода команды, кода статуса и ошибок с помощью метода
get_command_output, используя идентификатор команды. - Очистка команды с помощью метода
cleanup_command. - Закрытие сеанса командной оболочки (
shell). - Возврат вывода команды (
std_out) после декодирования из кодировкиcp866и удаления пробельных символов (strip).
- Создание объекта
- Задание параметров удаленного компьютера:
remote_host: IP-адрес или имя хоста удаленного компьютера.username: имя пользователя для аутентификации на удаленном компьютере.password: пароль для аутентификации на удаленном компьютере.
- Задание команд для получения информации о версии операционной системы и установленных патчах:
os_version_command: команда для получения данных о версии операционной системы с помощью инструментаwmic.installed_patches_command: команда для получения списка установленных патчей с помощью инструментаwmic.
- Выполнение команд на удаленном компьютере с помощью функции
run_remote_command:- Получение информации о версии операционной системы и установленных патчах с помощью соответствующих команд.
- Вывод результатов в терминал:
- Вывод информации о версии операционной системы.
- Вывод списка установленных патчей.
- Создание текстового файла на рабочем столе и запись в него полученной информации:
- Формирование пути к файлу
remote_info.txtна рабочем столе с помощью функцииos.path.join. - Открытие файла в режиме записи (
'w') с помощью оператораwith. - Запись заголовков и полученной информации о версии операционной системы и установленных патчах в файл.
- Закрытие файла.
- Формирование пути к файлу
- Вывод сообщения о пути сохраненного файла в терминал