从 linux 终端关闭 Windows 机器

新手上路,请多包涵

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

原文由 ganesshkumar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.6k
2 个回答

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

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

此命令可以从 bash 发出,甚至可以在 cron 作业中设置以在特定时间关闭计算机,并且默认情况下,此命令随许多发行版一起提供。

原文由 ganesshkumar 发布,翻译遵循 CC BY-SA 3.0 许可协议

可能需要进行更多设置,尤其是对于 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

  1. 要从 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地址。

原文由 nouknouk 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题