[英]How to check if a server is running windows 2003 or Windows 2008 by checking its RDP screen, through script?
我们最近收购了一家小型公司,该公司拥有1500台服务器,尽管我们的团队处于域中,但我们的团队目前无法访问这些服务器。 我们需要找出运行Windows 2k3的服务器数量以及运行Windows 2k8的服务器数量。 我知道这两个版本的RDP屏幕都是不同的,例如:如果我们在Win2k3计算机上RDP,它会首先发出警告通知,一旦单击“确定”,它将带我们进入凭据屏幕,但是在Win2k8情况下,它将直接将我们带到Crendentials,这是服务器上操作系统的证明。 对于1500台服务器手动执行此操作非常耗时。 我们可以使用脚本来查找Windows操作系统版本来实现此RDP屏幕逻辑吗?
我可以想象一个算法是这样的:
mstsc
如果此逻辑在一台服务器上成功,则可以在所有服务器的foreach
循环中使用它,并在Excel中导出。
我假设有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
到Export-Csv
以创建可以导入Excel的CSV文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.