我在连接到本地网络的虚拟机中运行 Windows XP 以进行测试。测试是远程完成的。完成后,我想从 Linux 机器远程关闭它们。
ETA:请注意,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 系统上设置什么吗?
ETA:有没有一种方法可以只测试登录,即不发送可能需要其他权限或设置的关机命令?
Windows XP Home 不允许通过 Guest 帐户以外的网络登录。所以你必须首先启用它。
这给了我一个新错误,告诉我“登录类型”是不允许的。登录类型是“代码 3”,我发现它的意思是“网络登录”。激活文件共享解决了这个问题,但我不知道为什么。
当然,Guest 不允许关闭计算机,因此必须将帐户添加到 Administrators 组(这当然严重违反任何安全准则,但请记住这完全是本地的,都在我的办公桌下并留在那里) 通过在 shell 中发出以下命令:
然后,您会发现 RPC 关闭命令似乎需要目标上的 winreg 命名管道,这似乎是由远程注册表服务提供的,而 XP Home 中不提供该服务。所以,就目前而言,我没有远程关机。
应该注意的是,XP Home 并不意味着在托管的专业网络中工作,但我选择的系统是为了测试我对目标机器的期望,而不是我想要使用的系统。但是,net/rpcclient 联机帮助页中的注释会非常好...
差不多好了。请在 bash 命令行上转义反斜杠。
这应该工作
您是否指定域或机器名称:
即如果机器在域上
或者
或者机器是否在工作组中
根据我的经验,有两件事可能会出错。第一个也是最常见的是是否允许远程关机。在本地安全策略中(开始 -> 控制面板 -> 管理工具 -> 本地安全策略)。展开本地策略并打开安全选项。“网络访问:本地帐户的共享和安全模型”需要设置为经典。
正如另一个答案所说,机器名称是必需的,即使您已经指定了 IP 地址。尝试使用这样的东西:
一个愚蠢的恶作剧是在您选择的端口上创建一个侦听服务,该服务仅执行关闭(如果 XP 主页不包含此类命令,则可能
psshutdown
来自PsTools 套件)。任何与该端口的连接尝试都应该触发关闭,所以如果有人像端口一样扫描您的测试盒,您当然会感到烦恼......一种更注重安全的方法是让 Windows 更像 Linux 并安装一个 SSH 服务器(也许是成熟的 cygwin,也许是我在 t'internet 上看到的仅 SSH-server 软件包之一)