Управління windows комп'ютерами з консолі linux

Управління Windows комп'ютерами з консолі Linux +11

  • 03.06.15 4:23 •
  • rrrav •
  • # 259469 •
  • Хабрахабр •
  • 26 •
  • 16463

- такий же як Forbes, тільки краще.

Тут розглядалася задача управління комп'ютером на Windows з Linux. Вирішувалася за допомогою winexe.

Подібне завдання віддаленої установки софта, перевірки стану, дистанційного вимикання / перезавантаження великої групи Windows комп'ютерів (навчальні класи) нижче вирішується за допомогою freeSSHd - ssh-сервера для Windows.

На сайті лежить тільки остання версія freeSSHd - 1.3.1. У мене вона працює нестійкий (іноді падає сервіс). Попередня версія - 1.2.4 - працює прекрасно від XP до Win8.1, хоча і є невеликий експлоїт - але начебто нічого крім, як завалити сервіс FreeSSHDService не виходить, тому можна закрити на це очі. Про всяк випадок поклав цю версію тут (розмір - 782 456)

Запускаємо інсталятор, в процесі міняємо шлях установки ( «C: \ Program Files (x86) \ FreeSSHD») на C: \ bin \ FreeSSHD - так простіше його знайти на системах з різною архітектурою і конфіг буде скрізь однаковий. (C: \ bin треба попередньо створити.)

Далі все за замовчуванням - в кінці запускається сервіс FreeSSHDService. Його можна налаштувати, клацнувши значок в треї, але простіше скопіювати готові настройки в файл настройок C: \ bin \ FreeSSHD \ FreeSSHDService.ini і рестарту сервіс.


Тепер треба дооформити оголошеного користувача admin - створити файл C: \ bin \ FreeSSHD \ admin і записати туди публічний ключ.

Або використовуємо вже наявний id_dsa.pub, або в консолі Linux набираємо

і отримуємо пару ключів - id_dsa і id_dsa.pub
На Windows копіюємо id_dsa.pub в каталог C: \ bin \ FreeSSHD і перейменовуємо в C: \ bin \ FreeSSHD \ admin

Рестарт сервіс FreeSSHDService:


На Linux перевіряємо підключення (лістинг кореня C: \):

Якщо хост відкинув підключення (на win7-win8 ймовірно), налаштовуємо Брандмауер в «Центрі управління мережами. »:
Брандмауер Windows -> усунення неполадок в мережі -> підключення до вашого комп'ютера -> щось інше -> огляд -> C: \ bin \ FreeSSHD \ FreeSSHDService.exe

Якщо все вийшло, копіюємо каталог C: \ bin \ FreeSSHD \ на всі інші комп'ютери - тоді під час установки FreeSSHD задасть набагато менше питань і запуститься вже налаштований. Можна, звичайно, це все і настройку брандмауера реалізувати через Group Policy, але я цим не морочився - все комп'ютери клонувати з одного вдалого образу.

Тепер на будь-якому комп'ютері можна виконати будь-яку (майже) команду.
Наприклад, перезавантаження:


Установка 1с (тиха):

Оскільки доступ консольний, то при спробі запуску програми з GUI треба використовувати запуск з нового вікна - «start». Хоча тиха установка 1C і не вимагає GUI.

Коли комп'ютерів багато, запуск команд по черзі неефективний, треба Форкал сесії.
Демо-програма на Python, яка опитує комп'ютери в діапазоні 192.168.0.210-192.168.0.220 і записує їх імена в лог /tmp/rexec.log. Чи не відповіли позначаються як NA, а завислі сесії -? T:

(Початкова програма була CGI-скриптом, звідси такий мінімалізм виведення)

Складні і довгі команди краще оформляти у вигляді пакетного файлу і розміщувати в доступному мережевому шляху. На Samba ресурсі треба дати файлу права на виконання і оформити кінці рядків в стилі Windows.

Схожі статті