Respuestas:
Como señaló Josh King, puede usar srvinfouna herramienta del Kit de recursos de Windows 2003 .
En Windows 7 puedes usar systeminfo
systeminfo /s remote_computer_name
nmappuede realizar la detección remota del sistema operativo .
No es 100% preciso, pero tendrás que verlo por ti mismo.
Aquí hay un resultado de ejemplo. Elegí específicamente un resultado que no era 100% exacto, pero esta máquina es un Windows Server 2008.
Advertencia: los resultados de OSScan pueden no ser confiables porque no pudimos encontrar al menos 1 puerto abierto y 1 cerrado
Tipo de dispositivo: propósito general
Ejecución (SOLO ADORNOS): Microsoft Windows Vista | 2008 | 7 (98%)
Suposiciones agresivas del sistema operativo: Microsoft Windows Vista SP0 o SP1, Server 2008 SP1 o Windows 7 (98%), Microsoft Windows Server 2008 (98%), Microsoft Windows 7 Professional (97%), Microsoft Windows Vista Business SP1 (93%), Microsoft Windows Vista Home Premium SP1 ( 93%), Microsoft Windows Server 2008 SP2 (91%), Microsoft Windows Vista Home Premium SP1, Windows 7 o Server 2008 (91%), Microsoft Windows 7 (90%)
No hay coincidencias exactas del sistema operativo para el host (condiciones de prueba no ideal).
Gracias [squillman] :)
Si bien tiene tantas máquinas para inspeccionar, simplemente haga esto:
(1) Crear archivo TXT contiene todos los nombres de host de sus máquinas. Por ejemplo: ALL-MACHINES.TXT
machine_number_0001
machine_number_0002
machine_number_0013
machine_number_0101
machine_number_0111
(2) Realiza instrucciones FOR dentro de CMD:
C:\Users\MrCMD> FOR /F %S IN ('TYPE ALL-MACHINES.TXT') DO SYSTEMINFO /S %S [enter]
(3) Cualquier comentario de mejora es bienvenido. :)
Si tiene acceso a uno de los kits de recursos de Windows Server (2003 seguro, no estoy seguro acerca de las versiones más recientes), puede usar el comando Srvinfo.
Srvinfo \\remote_compute_rname
Obtendrá una gran cantidad de información, pero lo que le interesa es:
Nombre del producto: Microsoft Windows XP Opciones del producto: Profesional
Para aquellos que vienen aquí que necesitan hacer muchas máquinas y quieren usar PowerShell:
Máquina individual: Get-CimInstance Win32_OperatingSystem -ComputerName Nombre de la máquina | Seleccionar CSName de objeto, título, número de compilación, arquitectura de sistema operativo
Todas las máquinas: Get-ADComputer -filter * | Foreach-Object {Get-CimInstance Win32_OperatingSystem -ComputerName $ _. Name -ErrorAction SilentlyContinue | Seleccionar CSName de objeto, título, número de compilación, arquitectura de sistema operativo} | Format-Table -Property * -AutoSize
Suponiendo, por supuesto, que tiene WinRM habilitado. También puede habilitar WinRM por lotes a través de PS, pero ese es otro tema.