【问题标题】:How to check if a server is running windows 2003 or Windows 2008 by checking its RDP screen, through script?如何通过脚本检查服务器的 RDP 屏幕来检查服务器是否运行 Windows 2003 或 Windows 2008?
【发布时间】:2015-11-07 23:27:22
【问题描述】:

我们最近收购了一家拥有 1500 台服务器的小公司,尽管它们在域中,但我们的团队目前无法访问这些服务器。我们需要找出运行 Windows 2k3 的服务器数量以及运行 Windows 2k8 的服务器数量。 我知道这两个版本的 RDP 屏幕是不同的,例如:如果我们 RDP 一台 Win2k3 机器,它会先发出警告通知,一旦我们单击确定,它会将我们带到凭据屏幕,但在 Win2k8 的情况下,它直接将我们带到 Crendentials,这是服务器上操作系统的证明。为 1500 台服务器手动执行此操作是一项耗时的任务。 我们能否使用脚本来实现这个 RDP 屏幕逻辑以找出 Windows 操作系统版本。

我可以想象一个类似的算法:

  1. 输入服务器名称。
  2. 为该服务器调用 mstsc
  3. 验证对话框是否直接提示输入凭据?
  4. 如果是,则打印 Windows 2k8,否则打印 2k3/2k。

如果此逻辑在一台服务器上成功,我可以在 foreach 循环中为所有服务器使用它并在 Excel 中导出。

【问题讨论】:

  • 他们使用不同版本的 RDP 协议,因此可能更容易检测到这种差异。如果没有可以为您执行此操作的现有网络扫描仪(例如 Nessus?),我会感到惊讶。
  • 感谢您的友好回复。但由于我已经是一家公司,而且我们正处于转型期,因此目前在环境中没有访问权限和资源。除了网络扫描仪,你能推荐其他方法吗?是否可以将 RDP 逻辑(我在描述中提到)实现到 powershell 脚本中?

标签: powershell vbscript windows-server-2008 windows-server-2003 rdp


【解决方案1】:

如果有 1500 台服务器,我将假设您有一个 Active Directory。在这种情况下,您应该能够简单地对 AD 运行查询以检索所需的信息:

Import-Module ActiveDirectory

$server = 'somehostname'
$dc = '...'  # domain controller of trusted domain

$fltr = "OperatingSystem -like '*server*'"

Get-ADComputer -Filter $fltr -Property OperatingSystem -Server $dc |
  Where-Object { $_.Enabled } |
  Select-Object Name, OperatingSystem |
  Sort-Object OperatingSystem, Name

将结果输入Export-Csv 以创建可以导入 Excel 的 CSV 文件。

【讨论】:

  • 感谢您的回复 Ansgar。我不知道 Get-ADComputer 模块(我想它在 powershell 中),但我想这需要在登录到 DC 后运行,对吧?如果是这种情况,那么正如已经告知的那样,我们目前无权访问任何这些服务器。就我的大脑而言,通过 RDP 屏幕类型验证操作系统版本是唯一的临时解决方法,只需要在 vbs 或 PS 脚本中实现。有什么建议吗?
  • 您不需要在域控制器上,只需要在某处安装 AD PowerShell cmdlet。可以是工作站或非 DC 服务器。
  • 它是ActiveDirectory 模块的一部分。您可以在任何具有 RSAT-AD-PowerShell 功能(“Windows PowerShell 的 Active Directory 模块”)的服务器上或安装了 RSAT 的任何客户端上运行它。
  • 新公司的服务器不在我们公司的域中,只是建立了信任关系,因此它们目前只能从我们的域中ping通。您提到的方法表明它将找到在我们的域中注册的服务器的操作系统版本(在这种情况下不是)。虽然我没有尝试过你的方法,但我也会做最后的希望,让你知道结果。同时,你能找出其他的出路吗?可能有什么方法可以将 RDP 逻辑实现到 powershell 脚本中?
  • @BriteRoy Get-ADComputer -Server 允许您对其他服务器(例如不同域的 DC)运行查询。屏幕抓取 RDP 登录屏幕以确定远程主机的操作系统是一种可怕 方法,我对此的唯一建议是:不要。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-05
  • 1970-01-01
  • 1970-01-01
  • 2011-01-20
  • 1970-01-01
相关资源
最近更新 更多