Знакомство с winexe или как рулить виндой из по Linux
Недавно совершенно случайно узнал о чудесной проге под названием winexe. Прелесть программы в том что она позволяет рулить виндовым сервером удаленно прямо из Linux/UNIX shell (проще говоря, линуховой консоли). Короче, наткнувшись гдето в инете на подобное описание сразу захотелось покрутить. Но проблема номер раз — в репозитариях моего горячо любимого Debian программы нету 🙁 Ну чтож, в опенсорс прелесть в том что этот самый сорс можно найти и скомпились, коли руки ростут одтуда одкуда надо 😀 Но честно говоря, проверять собственную пряморукость не пришлось, так как в гугле довольно быстро нашелся готовый deb пакет (правда под Ubuntu) которые вмиг установился командой
updated: Подсказка коллеги — есть репозитарий под разные дистры по адресу
Пробуем заюзать:
Password for [DOMAIN\black]:
Microsoft Windows [������ 5.2.3790]
(�) ��௮����� ����������, 1985-2003.
C:\WINDOWS\system32>ipconfig
ipconfig
��������� ��������� IP ��� Windows
����������� �� ��������� ���� - Ethernet �������:
DNS-������� ����� ����������� . . :
IP-����� . . . . . . . . . . . . : 10.0.100.3
����� ������� . . . . . . . . . . : 255.255.255.0
�������� ���� . . . . . . . . . . : 10.0.100.1
C:\WINDOWS\system32>exit
exit
black@black:~$
Есть проблема с кодировкой, так как у меня локаль UTF8, а выхлоп от виндосервака возвращается в CP1251, но в общем видим как оно работает 🙂
Использование программы — это уже отдельный разговор. Тут все зависит от уровня знаний виндового cmd и полета фантазий админа.
К примеру у меня на предприятии 2 сервера где народ по RDP ходит в 1С, бывает там подвисают сессии или некорректно отрабатывает подключение локальных принтеров и приходится сбрасывать сессию для того чтобы дать возможность пользователю перезайти. Раньше для этого приходилось заходить на сервер и килять мышкой из Диспетчера задач сессию определенного пользователя. Теперь же я эту процедуру упростил до выполнения одной простой команды из линуксовой консоли:
srv1 - Для пользователя black номер сессии - 95
srv1 - Выполняем команду reset session 95
black@black:~/work/scripts$
А под капотом у этого скриптика написано вот такое:
#!/bin/bash
SERVERS="srv1 srv2"
if [ -n "$1" ]; then
for SERVER in $SERVERS
do
SESSION_ID=`winexe -U DOMAIN/black%_my_domain_password_ //$SERVER "query session $1" 2>/dev/null |grep $1 |awk '{print $3}'`
if [[ $SESSION_ID = [0-9]* ]]; then
echo "$SERVER - Для пользователя $1 номер сессии - $SESSION_ID"
echo "$SERVER - Выполняем команду reset session $SESSION_ID"
winexe -U DOMAIN/black%_my_domain_password_ //$SERVER "reset session $SESSION_ID" && echo OK
break
fi
done
else
echo "Задайте хотябы одного пользователя! Например $0 rdp_user_1"
fi
black@black:~/work/scripts$
Как вы понимаете, данная прога дает вам возможность рулить в винде всем тем что можно настроить через штатный cmd, а это довольно много. Тут и системные настройки, и сервисы и службы и процессы и тд и тп.
Както мне на семерке надо было полностью застопить firewall … удалось такой командой с линуксовой машины:
Но это уже отдельная история …. но в целом прога очень полезная — поэтому рекомендую 😉
русский язык можно получить прописутив через luit отлуп от winexe, если luit в вашей ОС не понимает 866 кодировку — то бубен в руки.
Я побеждал вот так
http://admin.hashcode.ru/questions/501/luit-cp866-%D0%BA%D0%B0%D0%BA-%D0%BF%D0%BE%D0%B4%D1%80%D1%83%D0%B6%D0%B8%D1%82%D1%8C