如何确定远程计算机的操作系统?


22

给定远程计算机的操作系统名称,如何确定其操作系统?


您可以更具体地说明要完成的工作吗?
Keltari

2
我有计算机名。我想知道它正在运行什么操作系统。魔术或使用某种形式的软件工具。
史蒂夫

2
您不能用它的名字做任何事情,但是可以使用操作系统指纹识别工具(例如NMAP
Nate Koppenhaver

Answers:


16

您可以nmap用来探测远程计算机,并基于它对TCP数据包的响应(有效或无效请求)nmap可以推断出它正在使用的操作系统。

这不是100%准确的,但在一般情况下可能是最好的。

如果仅将自己限制为Windows,并且在远程计算机上具有管理员帐户的凭据,则可以改用此方法

查看系统属性

要在远程计算机上执行此过程,请右键单击“计算机管理(本地)”,单击“连接到另一台计算机”,选择“另一台计算机”,然后键入远程计算机的名称。然后,您可以按照此过程中的步骤操作,从步骤2开始,用“计算机管理”(远程计算机名)替换“计算机管理(本地)”。在为远程计算机名指定的计算机上,您必须是Administrators组的成员,或者必须已委派了适当的权限。

此外,如果您的计算机已加入域,则可以查看Active Directory中的计算机帐户。这些应该告诉您有关机器的信息。


如果我以域管理员身份运行“计算机管理”,连接到远程计算机,然后右键单击树中的“计算机管理”(远程主机),则有“连接到另一台计算机”,“所有任务”(连接),“视图”(标准资源管理器视图选项) ,导出列表和帮助。右键单击菜单中没有“属性”。
史蒂夫

如果我在自己的计算机上运行“计算机管理”,则树中“计算机管理”的右键菜单中没有“属性”。我的电脑正在运行32位Win7 SP1。
史蒂夫

我相信这是/是正确的方法。其他文档引用了它-microsoft.com/resources/documentation/windows/xp/all/proddocs/…-但我尝试在Win7盒上获得与您相同的结果。我发现右键单击“服务和应用程序”下的“ WMI控件”为我提供了远程计算机的简短摘要。
ta.speot。是2011年

3
nmap只是要给港口一个拥抱...
ta.speot.is


3

在给出您所提供的信息之后,答案是您无法通过其名称确定计算机的操作系统。


如果我们将可能性限制为MS Windows计算机呢?
史蒂夫

'指定远程计算机的NetBIOS名称。strComputer =“ TestComputer”设置objWMIService = GetObject(“ winmgmts:” _&“ {impersonationLevel = impersonate}!\\” _&strComputer&“ \ root \ cimv2”)设置colOSes = objWMIService.ExecQuery(“从Win32_OperatingSystem中选择*” )对于colOSes中的每个objOS,Wscript.Echo“版本:”和objOS.Version'版本并构建Wscript.Echo“ OS类型:”和objOS.OSType接下来
Keltari 2011年

1
有很多原因导致此脚本可能无法运行的原因
Keltari 2011年

您有此脚本的源URL吗?尝试运行它时,我收到“无效字符”。
史蒂夫



3

使用cmd(Windows Vista,XP等中的命令提示符)

systeminfo /s IP.ADDRESS /u UserOnRemotePc

例如:

systeminfo /s 172.16.23.108 /u Student

2
仅当远程操作系统是Windows时,此方法才有效。
Ramhound

2
WMIC /NODE:hostname OS

*您也可以提供其他凭据。

wmic /NODE:hostname OS > C:\OS.txt

2

快速简单,您可以使用Windows库存界面

wmic /node: HOST_NAME os get caption

4
您的答案与旧答案有何不同
双关语

1

您可以使用Windows PowerShell(默认安装在Windows 7中)执行此操作。可以从“系统”菜单的“附件”下找到它。

您可以使用的命令是...

Get-WmiObject -Class Win32_OperatingSystem -Namespace root/cimv2 -ComputerName <ipaddr_or_hostname> | Format-List -Property *

通过为ComputerName属性指定正确的值,可以在本地或远程系统上运行此命令。

您可以通过指定要显示的属性来过滤特定信息的输出...

Get-WmiObject -Class Win32_OperatingSystem -Namespace root/cimv2 -ComputerName <ipaddr_or_hostname> | Format-List -Property Name, OSArchitecture, SerialNumber

我收到消息:Get-WmiObject:找不到与参数名称“ computername”匹配的参数。如果我使用完全限定的hostname.domainname,也会发生同样的事情
Steve

尝试127.0.0.1对ComputerName 使用,并验证它是否可以在localhost上正确运行。如果是这样,请尝试使用远程计算机的ipaddress。
Joe Internet,

+1这正是我所需要的。别忘了加上决赛*
马克·库珀

这是假设它是Windows OS。
Saher Ahwal

1

最简便的方法:

  1. 单击Windows“开始”按钮,然后键入msinfo32,然后按Enter。
  2. 单击查看 > 远程计算机 > 网络上的远程计算机
  3. 输入机器名称,然后单击确定。

-1

一个不全面的解决方案是在Windows资源管理器中简单地打开远程计算机的C驱动器。文档和设置的存在表明它是WinXP,因为我们没有Win2K。


Windows Server 2003呢?
Synetech

我对不赞成票表示赞赏。确实有帮助。
史蒂夫

好吧,别看着我。检查时间表 ; 我看到这个问题两天后,您就知道了。
Synetech 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.