我在连接到本地网络的虚拟机中运行 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 服务器的软件包之一)