Я запускаю приложение на Linux-машине. Предоставляя ip-адрес машины Windows как входной, приложение должно завершить работу Windows-машины. Если машины работают с одной и той же ОС, это очень просто, но я смущен, как это сделать в перекрестной ОС.
Завершение работы Windows-машины с терминала linux
Ответ 1
Команда для выключения системы windows из linux -:
$ net rpc -S <ip address> -U <username>%<password> shutdown -t 1 -f
Эта команда может быть выпущена из bash или даже задана в задании cron для выключения компьютера в определенное время, и по умолчанию эта команда поставляется со многими дистрибутивами.
Ответ 2
Там может быть больше настроек, особенно для Windows Vista, Windows 7 и других версий Windows, чтобы разрешить удаленное выключение:
Часть A) На машине Windows:
1) Добавьте политику безопасности удаленного завершения:
-
run
secpol.msc
-
в дереве программ, откройте
Security Settings
>Local Policies
>User rights Assignment
-
Найти запись
Force shutdown from a remote system
-
Отредактируйте запись, добавьте учетную запись пользователя Windows, которая будет использоваться для выключения (например: nouknouk)
2) Добавьте ключи реестра, чтобы отключить удаленные ограничения UAC:
-
Запустите
regedit.exe
в качестве администратора -
Найти
HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System
-
Создайте новое значение реестра
DWORD(32)
с именемLocalAccountTokenFilterPolicy
, а затем присвойте ему значение1
3) Запустите службу удаленного реестра:
-
Откройте
cmd.exe
в качестве администратора -
Выполните следующие две команды:
sc config RemoteRegistry start= auto
sc start RemoteRegistry
Часть B) На машине Linux:
1) установите пакет samba-common
:
Это зависит от вашего дистрибутива Linux, но для Debian и деривации (Ubuntu, Linux Mint,...) команда apt-get может быть выполнена следующим образом:
apt-get install samba-common
2) Чтобы фактически завершить работу вашей Windows-машины с Linux, выполните следующую команду:
net rpc shutdown -f -t 0 -C 'message' -U userName%password -I xxx.yyy.zzz.ttt
Где:
-
-f
означает принудительное завершение работы всех приложений (может быть обязательно) -
-t 0
- это задержка перед выполнением (0 означает "прямо сейчас" ). -
-U user%password
- это локальный пользователь и его пароль на компьютере Windows (тот, которому разрешено удаленное завершение работы в части A). -
-I
- это IP-адрес компьютера Windows для завершения работы.
Ответ 3
Это зависит от вашей инфраструктуры - как вы выполняете аутентификацию на машинах Windows, можете ли вы их самостоятельно настроить и т.д. Если бы это был я, я бы поставил Cygwin в окнах Windows, затем ssh
к ним и запустите shutdown -h
. Конечно, есть и другие способы сделать это.
Ответ 4
Вам нужен способ запуска оболочки в окне Windows, чтобы вы могли запустить команду shutdown, встроенную в Windows.
Вы можете установить Cygwin для этого, а затем установить демон SSH в Windows. После этого ваш Linux-сервер может запускать команды в окне Windows так же, как если бы это была другая машина Linux.
Вот несколько инструкций по настройке Cygwin sshd в Windows.
Ответ 5
Вариант 1: Установите SSH-сервер на окна. Войдите на этот сервер из любого окна и выйдите из системы. Мы используем Interix (среда UNIX, подобранная Microsoft). Он поставляется с сервером telnet - позволяет вызывать команды Windows с других компьютеров.
Другой вариант: Если вы установили samba в windows, он может подключиться к окнам и вызвать команды windows
net rpc SHUTDOWN ...
Другой вариант: попробуйте rdesktop для Windows-машины с командой shutdown (я использую его для запуска пакета windows script, который отключился в нем, не уверен, что вы можете напрямую вызвать shutodwn)
Ответ 6
Важно отметить, что вышеупомянутое решение не будет работать, если у рассматриваемого имени пользователя не установлен пароль (по крайней мере, так, как это было в моем случае).
Для пользователей Windows 10 (и ниже, возможно, не проверял) необходимо перейти в настройки брандмауэра и включить "Удаленное управление службами", чтобы окно linux могло подключаться через rpc.
Ответ 7
Используйте telnet в Linux
, убедитесь, что telnet is enabled in Windows system