29

How can I determine the OS of a remote computer, given its computer name?

Steve
  • 2,831
  • 17
  • 68
  • 120

9 Answers9

17

You can use nmap to probe the remote computer and based on it's responses to TCP packets (valid or invalid requests) nmap can infer what operating system it is using.

This is not 100% accurate, but probably the best you can do in the general case.

If you're limiting yourself to Windows only and you have credentials of an administrator account on the remote machine, you can use this method instead.

View system properties

To perform this procedure on a remote computer, right-click Computer Management (Local), click Connect to another computer, select Another computer, and then type in the name of the remote computer. You can then follow the steps in this procedure, starting at step 2, and substituting Computer Management (remote computername) for Computer Management (Local). You must be a member of the Administrators group, or you must have been delegated the appropriate authority, on the computer that you specify for remote computername.

And further to this, if your computers are joined to a domain then you can look at the computer accounts in Active Directory. These should tell you about the machine.

ta.speot.is
  • 14,233
  • If I run Computer Management as a domain admin, connect to the remote computer, and right-click on Computer Management (remotehost) in the tree, I have Connect to Another Computer, All Tasks (connect), View (standard Explorer view choices), Export List, and Help. There is no Properties in the right-click menu. – Steve Aug 15 '11 at 03:33
  • If I run Computer Management on my own computer, I don't have Properties in the right-click menu of Computer Management in the tree.

    My PC is running Win7 SP1 32-bit.

    – Steve Aug 15 '11 at 03:35
  • I believe this is/was the correct method. Other documentation references it - http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/sysprop_to_perform_a_remote_reboot.mspx?mfr=true - but I tried and got the same result as you on my Win7 box. I found right clicking on "WMI Control" under "Services And Applications" gave me a short summary of the remote machine. – ta.speot.is Aug 16 '11 at 04:34
  • Note that many admins consider running nmap against a machine to be a hostile action, on the assumption that you're scanning for potential vulnerabilities. – Dave Sherohman Aug 24 '11 at 09:52
  • 4
    nmap is just coming to give the ports a hug... – ta.speot.is Aug 24 '11 at 10:53
  • 2
    nmap -O -v IPADDRESS https://nmap.org/book/osdetect-usage.html – Ivan Chau Apr 26 '16 at 03:59
7

Using cmd (Command prompt in windows Vista, XP, etc)

systeminfo /s IP.ADDRESS /u UserOnRemotePc

eg:

systeminfo /s 172.16.23.108 /u Student
phuclv
  • 27,773
Pratik
  • 79
5

Systeminfo command shows os name and service pack number. you can run this command on the remote computer using psexec.

Source: Find Windows Version from command line

Giri
  • 559
3

Given then information you have given, the answer is you can not determine a machine's OS by its name.

Keltari
  • 73,243
  • What about if we limit the possibilities to MS Windows machines? – Steve Aug 15 '11 at 03:37
  • ' Specify NetBIOS name of the remote computer. strComputer = "TestComputer" Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\" _ & strComputer & "\root\cimv2") Set colOSes = objWMIService.ExecQuery("Select * from Win32_OperatingSystem") For Each objOS in colOSes Wscript.Echo "Version: " & objOS.Version 'Version & build Wscript.Echo "OS Type: " & objOS.OSType Next – Keltari Aug 15 '11 at 03:50
  • 1
    there are a lot of reasons why this script might not work though... – Keltari Aug 15 '11 at 03:50
  • Do you have a source URL for this script? I get "Invalid Character" when I try and run it. – Steve Aug 15 '11 at 04:31
  • http://www.vistax64.com/vb-script/179297-retrieve-information-remote-machine-vbscript.html – Keltari Aug 15 '11 at 04:35
2

Quick and simple, you can use the Windows Inventory interface

wmic /node: HOST_NAME os get caption
phuclv
  • 27,773
Neo
  • 21
2

EASIEST METHOD:

  1. Click the Windows Start button and type msinfo32 and press Enter
  2. Click View > Remote Computer > Remote Computer on the Network
  3. Type machine name and click OK
2

You can do this with Windows PowerShell, which is installed by default in Windows 7. You can get to it from the system menu, under Accessories.

The command that you can use is...

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

You can run this against a local or remote system by specifying the correct value for the ComputerName property.

You can filter the output for specific info by specifying which properties to display...

Get-WmiObject -Class Win32_OperatingSystem -Namespace root/cimv2 -ComputerName <ipaddr_or_hostname> | Format-List -Property Name, OSArchitecture, SerialNumber
Joe Internet
  • 5,335
  • I receive the message: Get-WmiObject : A parameter cannot be found that matches parameter name 'computername'. Same thing happens if I use the fully qualified hostname.domainname – Steve Aug 16 '11 at 04:05
  • Try using 127.0.0.1 for ComputerName, and verifying that it runs correctly on localhost. If it does, try using the ipaddress of the remote machine. – Joe Internet Aug 16 '11 at 04:25
  • +1 This was exactly what I needed. Don't forget to include the final * – Mark Cooper Jun 11 '15 at 13:48
  • This is assuming it is windows OS. – Saher Ahwal Jul 20 '17 at 01:25
2
WMIC /NODE:hostname OS

*you can supply alternative credentials as well.

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

A non-comprehensive solution was to simply open the C drive of the remote computer in Windows Explorer. The presence of Documents and Settings showed it to be WinXP, as we have no Win2K.

Steve
  • 2,831
  • 17
  • 68
  • 120