winexe – реально полезный инструмент

Lindows.pngПраздники прошли, икра закончилась 🙂
Вот и я решил, что пора написать о чём-нибудь полезном.
Недавно Виталик, мой напарник, открыл для меня очень полезную тулзень, имя которой winexe
Как вы уже наверное догадались, переведя с аглицкой педивикии, эта мегаполезная утилита позволяет пользователям GNU/Linux удалённо запускать процессы на компьютерах под управлением Windows и, конечно же, что интересует нас в первую очередь, на серверах Win2k3, Win2k8.
Скачать winexe можно здесь либо попробовать поискать winexe в репозитории своего дистрибутива.

Как пример применения утилиты, привожу написанный им же скрипт сброса терминальной сессии конкретного доменного пользователя из указанного списка серверов. Если скрипт вам пригодится – не стесняйтесь, выражайте ему всяческие благодарности в его блоге про Linux/BSD 🙂
#!/bin/bash
DOMAIN="MYDOM"
DOMAIN_USER="admin"
DOMAIN_PASS="password"
SERVERS="server1 server2 server3 server4 server5"
if [ -n "$1" ]; then
for SERVER in $SERVERS
do
SESSION_ID=`winexe -U $DOMAIN/$DOMAIN_USER%$DOMAIN_PASS //$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/$DOMAIN_USER%$DOMAIN_PASS //$SERVER "reset session $SESSION_ID" && echo OK
break
fi
done
else
echo "Задайте хотя бы одного пользователя! Например $0 vasya.pupkin"
fi

Скрипт будет весьма полезен, если у вас много терминальных серверов на которых работает мегаглючное поделко типа 1С и часто приходится сбрасывать зависшие сессии.