Итак, мини мануал, авось кому пригодится..)
Запуск единичного приложения в windows xp, 7, 10, из линукс с помощью freerdp:
Код: Выделить всё
xfreerdp -u user -p *** -g 800x600 192.168.1.41
Как я уже говорил выше, создаем столько пользователей, сколько нужно программ для запуска из линукса.
Например, нужна программа notepad.exe.
Создаем пользователя под именем "notepad" (не обязательно такое имя, какое хотите...))
Создаем два батника:
Первый батник, на вход удаленного пользователя с таким содержанием:
Код: Выделить всё
echo off
REM Завершаем процесс: explorer.exe
taskkill /F /IM explorer.exe
REM Назначаем переменную для нужной программы
set ProcessName=notepad.exe
REM Если в диспетчере задач процесс данной программы не запущен, то запускаем
for /F %%i in ('tasklist /FI "IMAGENAME eq %ProcessName%" ^| find /C "%ProcessName%"') do (
if "%%i" == "0" (
start /max C:\windows\notepad.exe
)
)
Второй батник, на выход удаленного пользователя, с содержанием:
Код: Выделить всё
echo off
REM Назначаем переменную для нужной программы
set ProcessName=notepad.exe
REM Если в диспетчере задач процесс данной программы запущен, то завершаем этот процесс
for /F %%i in ('tasklist /FI "IMAGENAME eq %ProcessName%" ^| find /C "%ProcessName%"') do (
if "%%i" == "1" (
taskkill /f /im %ProcessName%
)
)
Код: Выделить всё
taskkill /f /im
Теперь, нужно создать две задачи в планировщике заданий.
Первое задание: выбираем триггер: при подключении к пользовательскому сеансу. Выбрать определенного пользователя, отметить Подключение с удаленного компьютера, и выбрать путь к нашему первому батнику, как на фото: Второе задание: выбираем триггер: при отключении от пользовательского сеанса. Все остальное точно так же, только путь ко второму батнику: А как же на счет этого:
Чтобы этого избежать нужно запустить редактор локальной групповой политики gpedit.msc и пройти по адресу: Конфигурация компьютера\Административные шаблоны\Компоненты Windows\Службы удаленных рабочих столов\Узел сеансов удаленных рабочих столов\Подключения - Ограничить пользователей служб удаленных рабочих столов одним сеансом служб удаленных рабочих столов. И поставить галочку на против: Отключить. Все, теперь сколько угодно человек может зайти под одной учетной записью, и при этом других не выбьет...
Что мы получаем взамен?
1. Запуск одного приложения в одном окне, ощущение что программа находится в линуксе (еще бы окно freerdp убрать, была бы ваще красота...))
2. Нет нужды устанавлить специальную серверную винду
3. В серверной винде не все приложения корректно работают, взять к примеру антивирусы...
На этом фото, команду -s "cmd.exe", можно убрать (она все равно не работает(только в серверной винде)), это с прошлых экспериментов осталась, забыл убрать...)
п.с. Еще, что бы окно с блокнотом было как у меня, нужно предварительно скрыть панель задач, иначе внизу окна будет видно черную полоску во всю ширину окна, не аккуратненько как то..)