尤其是安装选项服务器核心在 Server 2008 及更高版本中,通过 连接到 Windows 服务器CLI
是一项越来越有用的功能,即使这项功能在 Windows 管理员中并不十分普遍。
实际上每个 Windows管理工具都有一个连接到远程计算机的选项,但是内置的 Windows ( )GUI
中没有这样的选项,这给人的第一印象是这可能是不可能的。CLI
cmd.exe
是否可以使用 CLI 远程管理或管理 Windows Server?如果可以,有哪些选项可以实现此目的?
答案1
有几种相当简单的选项可用于使用命令行远程管理远程 Windows Server,其中包括一些本机选项。
本机选项:
- 温RS /温RM
- Windows 远程 Shell/管理工具是在命令行实用程序中远程管理远程 Windows 服务器的最简单方法,与大多数 Windows 命令行实用程序一样,ss64 有一个很好的页面介绍其选项和语法。
- 尽管 Microsoft 文档中没有明确说明,但这可用于启动的远程实例
cmd.exe
,从而在远程系统上创建交互式命令行,而不是作为命令行选项在远程服务器上执行单个命令。- 例如:
winrs -r:myserver.mydomain.tld cmd
- 例如:
BSD
这也是本机支持的选项,对于主要基于的其他系统(*nix、等)的管理员来说可能最为熟悉CLI
。
- 电源外壳
- 希望
PowerShell
不需要介绍,并且可以用来从CLI
使用WMI
(Windows 管理规范)管理远程计算机。 - PowerShell 远程处理允许在远程计算机上执行 Powershell 脚本和命令。
- 有许多关于使用
WMI
+PowerShell
进行远程管理的优秀资源,例如脚本专家的博客, 这MSDN WMI 参考和ss64.com,其中包含 PowerShell 2.0 命令索引。
- 希望
- 远程桌面
- 这可能并不是 Windows 选项中首先想到的
CLI
,但当然,使用mstsc.exe
远程桌面协议 () 连接到服务器RDP
确实允许在远程服务器上使用命令行。 - 连接到服务器核心安装
RDP
实际上是可能的,并且将提供与连接到控制台相同的界面 - 的一个实例cmd.exe
。- 这可能有点违反直觉,因为服务器核心缺少桌面或其他正常的 Windows shell 选项,但是petri.co.il 上有一篇关于如何管理服务器核心的简短文章
RDP
,如果有人愿意的话。
- 这可能有点违反直觉,因为服务器核心缺少桌面或其他正常的 Windows shell 选项,但是petri.co.il 上有一篇关于如何管理服务器核心的简短文章
- 这可能并不是 Windows 选项中首先想到的
热门的非本地选项:
尽管 Windows 现在提供了一些通过 访问远程服务器的本地选项CLI
,但情况并非总是如此,因此,出现了许多相当流行的第三方解决方案。下面是三个最值得注意的解决方案。
安装SSH在 Windows Server 上
- 如果你必须有
SSH
,这也是一个选择,而且还有social.technet 上有关如何在 Server 2008 上安装 OpenSSH 的指南。 BSD
对于大量使用终端仿真器客户端的其他系统(*nix、等)的管理员来说,SSH
这可能最有用,尽管对于只使用 Windows 的管理员来说,拥有一个终端仿真器客户端也有好处(如油灰) 存储多个目标计算机以及每个目标计算机的定制(或标准化)设置。
- 如果你必须有
-
- 通过 Windows 在 Windows 框上执行远程命令的原始选项
CLI
,这是优秀的一部分SysInternals 套件SysInternals 工具是 Windows 管理员为数不多的“必备”软件包之一,受到广泛尊重和使用,因此 SyInternals 被 Microsoft 收购,并且该工具现在在某种程度上得到了 Microsoft 的官方支持。 WinRS
与/类似RM
,PSExec
可用于向远程服务器发出单个命令,或cmd.exe
在远程计算机上启动的交互式实例。- 例如:
psexec \\myserver.mydomain.tld cmd
- 例如:
- 与其他选择一样,必须先采取一些步骤来确保PSExec 实际上能够连接到目标机器。
- 通过 Windows 在 Windows 框上执行远程命令的原始选项
将实用程序文件夹添加到服务器并将其值存储在 %PATH% 系统变量中
- 正如评论中所指出的,有许多优秀的 SysInternals 程序可以在命令行上执行并针对远程系统,而且不仅仅是 SysInternals 如此。
- 基本上,将一组你最喜欢的 Windows 实用程序打包到一个文件夹中,然后推送到你的所有服务器,将该文件夹添加到
%PATH%
系统的环境变量中. 两者都可以通过 轻松完成GPO
。- (我包括SysInternals 套件,油灰,目录统计以及一堆我发现自己重复使用的自定义脚本)放到一个文件夹中,然后推送到我所有的服务器
- 显然,这不仅仅对于通过 管理 Windows 系统有用
CLI
,但我发现它非常有用,我认为无论如何都值得将其包括在内。
答案2
仅仅为了完整性:尽管由于各种原因它可能不是最好的解决方案,但每个 Windows 系统都支持 Telnet 服务,可以从功能列表中启用该服务。
Microsoft 的 telnet 实现也支持 NTLM 身份验证,因此,与 Unix 系统的标准 telnet 不同,使用它时不会在网络上发送明文密码。