如何从 Linux 系统远程关闭 Windows XP 系统?

如何从 Linux 系统远程关闭 Windows XP 系统?

我在连接到本地网络的虚拟机中运行 Windows XP 以进行测试。测试是远程进行的。完成后,我想从 Linux 机器远程关闭它们。

预计到达时间:请注意,Windows 系统运行的是 XP Home,因此没有安全/组策略。

对于相同设置的 Linux 系统,我执行以下操作:

#> ssh root@linux-vm123 'shutdown -h now';

对于 Windows 系统,我应该能够执行以下操作:

#> net rpc SHUTDOWN -I xx.xx.xx.xx -f -U user%pwd

但这给了我以下错误:

Could not connect to server xx.xx.xx.xx
The username or password was not correct.
Connection failed: NT_STATUS_LOGON_FAILURE

用户是管理员,账户已设置密码。我需要在 Windows 系统上设置什么吗?

预计到达时间:有没有办法可以只测试登录,即不发送可能需要其他权限或设置的关机命令?

答案1

Windows XP Home 不允许通过 Guest 帐户以外的方式进行网络登录。因此您必须先启用它。

这给了我一个新的错误,告诉我“登录类型”不被允许。登录类型是“代码 3”,我发现这意味着“网络登录”。激活文件共享解决了这个问题,但我不知道为什么。

当然,Guest 无权关闭计算机,因此必须将该帐户添加到管理员组(这当然会严重违反任何安全准则,但请记住,这是完全本地的,都在我的桌子下并留在那里),方法是在 shell 中发出以下命令:

net localgroup Administrators Guest /ADD

然后,您会发现 RPC 关机命令似乎需要目标上的 winreg 命名管道,而该管道似乎由远程注册表服务提供,而 XP Home 中没有该服务。因此,目前我无法进行远程关机。

应该注意的是,XP Home 并不适合在受管理的专业网络中工作,但我选择测试的系统是为了我在目标机器上所期望的,而不是我想要使用的。但是,如果 net/rpcclient 手册页中有一条注释就更好了...

答案2

快完成了。请在 bash 命令行上转义反斜杠。

#> net rpc SHUTDOWN -I xx.xx.xx.xx -f -U DOMAIN\\user%pwd
#> net rpc SHUTDOWN -I xx.xx.xx.xx -f -U MACHINENAME\\user%pwd

这应该有效

答案3

您是否指定了域名或机器名:

即如果机器在域中

#> net rpc SHUTDOWN -I xx.xx.xx.xx -f -U DOMAIN\user%pwd

或者

#> net rpc SHUTDOWN -I xx.xx.xx.xx -f -U [email protected]%pwd

或者如果机器在工作组中

#> net rpc SHUTDOWN -I xx.xx.xx.xx -f -U MACHINENAME\user%pwd

答案4

一个愚蠢的邪恶黑客会创建一个服务监听你选择的端口,而这个服务除了执行关机之外什么都不做(可能psshutdown来自PsTools 套件如果 XP home 没有包含这样的命令)。 任何连接到该端口的连接尝试都会触发关闭,因此如果有人对您的测试箱进行端口扫描,您当然会感到烦恼……

一个更安全的做法是让 Windows 更像 Linux,并安装一个 SSH 服务器(也许是功能齐全的 cygwin,也许是我在互联网上见过的仅支持 SSH 服务器的软件包之一)

相关内容