【发布时间】:2015-11-07 23:27:22
【问题描述】:
我们最近收购了一家拥有 1500 台服务器的小公司,尽管它们在域中,但我们的团队目前无法访问这些服务器。我们需要找出运行 Windows 2k3 的服务器数量以及运行 Windows 2k8 的服务器数量。 我知道这两个版本的 RDP 屏幕是不同的,例如:如果我们 RDP 一台 Win2k3 机器,它会先发出警告通知,一旦我们单击确定,它会将我们带到凭据屏幕,但在 Win2k8 的情况下,它直接将我们带到 Crendentials,这是服务器上操作系统的证明。为 1500 台服务器手动执行此操作是一项耗时的任务。 我们能否使用脚本来实现这个 RDP 屏幕逻辑以找出 Windows 操作系统版本。
我可以想象一个类似的算法:
- 输入服务器名称。
- 为该服务器调用
mstsc - 验证对话框是否直接提示输入凭据?
- 如果是,则打印 Windows 2k8,否则打印 2k3/2k。
如果此逻辑在一台服务器上成功,我可以在 foreach 循环中为所有服务器使用它并在 Excel 中导出。
【问题讨论】:
-
他们使用不同版本的 RDP 协议,因此可能更容易检测到这种差异。如果没有可以为您执行此操作的现有网络扫描仪(例如 Nessus?),我会感到惊讶。
-
感谢您的友好回复。但由于我已经是一家公司,而且我们正处于转型期,因此目前在环境中没有访问权限和资源。除了网络扫描仪,你能推荐其他方法吗?是否可以将 RDP 逻辑(我在描述中提到)实现到 powershell 脚本中?
标签: powershell vbscript windows-server-2008 windows-server-2003 rdp