从linux终端关闭Windows机器

gan*_*mar 10 linux windows shutdown

我在linux机器上运行一个应用程序.通过将Windows机器的IP地址作为输入,应用程序必须关闭Windows机器.如果机器运行相同的操作系统很容易,但我很困惑如何在跨操作系统中执行此操作.

gan*_*mar 15

从linux关闭Windows系统的命令 - :

$ net rpc -S <ip address> -U <username>%<password> shutdown -t 1 -f

此命令可以从bash发出,甚至可以在cron作业中设置,以在特定时间关闭计算机,默认情况下,此命令附带许多发行版.

  • 要重新启动,请在末尾添加`-r`开关. (3认同)
  • 您需要正确配置Windows和Linux才能使此解决方案正常工作.如果net命令不可用或者它不起作用,请查看nouknouk的答案 (2认同)

小智 13

可能有更多设置要做,特别是对于Windows Vista,Windows 7和更多Windows版本,以允许远程关闭:

A部分)在Windows机器上:

1)添加远程关闭安全策略:

  • 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)要从Linux系统中实际关闭Windows计算机,请运行以下命令:

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 是要关闭的Windows机器的IP地址.