Programaticamente descobrir se um computador é um servidor

0

Desejo saber programaticamente qual versão do Windows um computador está executando.

No shell CMD, pode-se digitar ver , que para meu computador retorna:

Microsoft Windows [Version 6.2.9200]

Mas isso pode ser o mesmo em um servidor. Existe um comando (talvez VBScript?) Para descobrir a versão exata do Windows, como Windows Server 2008 ?

    
por user261082 09.10.2013 / 13:52

7 respostas

3

Uma maneira fácil de usar comandos em lotes ou do Windows.

Você pode usar o WMIC na linha de comando.

wmic os get caption

Para minha área de trabalho, ele retorna

Microsoft Windows 7 Professional

E em um servidor eu tenho

Microsoft Windows Server 2012 Standard

Outra opção é verificar as funções do servidor (para ver se realmente é um servidor, ou apenas executando o sistema operacional do servidor)

    
por 09.10.2013 / 14:03
0

A classe WMI OperatingSystem expõe o membro 'OperatingSystemSKU', que deve fornecer a resposta que você precisa, mas não resolve todas as versões do sistema operacional: link

On Error Resume Next 
' Connect to WMI and obtain instances of Win32_OperatingSystem
For Each objOS in GetObject( _
    "winmgmts:").InstancesOf ("Win32_OperatingSystem")

WScript.Echo "Name = " & objOS.Caption _
    & "Version = " & objOS.Version &VBCR _
    & "SKU = " & objOS.OperatingSystemSKU
Next

if Err <> 0 Then
    WScript.Echo Err.Description
    Err.Clear
End if
    
por 09.10.2013 / 14:01
0

Sim

Isso funciona (e testado) no Windows Server 2008 e no W7.

No prompt de comando, digite

systeminfo | findstr /C:"OS"

E você receberá muitas informações, como

VersõesanterioresdoWindowspodemexigir

systeminfo|findstr/B/C:"OS Name" /C:"OS Version"
    
por 09.10.2013 / 13:59
0

A maneira rápida de encontrar o tipo de sistema operacional do Windows é:

  1. Abrir prompt de comando
  2. systeminfo | findstr "OS Name"

Nota: Estou adicionando a minha resposta, embora haja algumas respostas semelhantes, porque sinto que a que eu postei é mais fácil de ler, tornando mais fácil de lembrar na hora. Também parece que é preciso menos digitação para inicializar.

Além disso, dependendo das convenções de nomenclatura que estão sendo usadas para sua rede, você também pode tentar inserir hostname . Por exemplo, os computadores em meu ambiente tendem a ser nomeados como "BLD ## - SRV / WK-Sect ##", tornando bastante fácil descobrir o que é uma máquina e onde ela está localizada.

    
por 09.10.2013 / 14:33
0

Tente:

wmic os get name

O resultado saiu (para o meu sistema):

C:\Users\superuser>wmic os get name
Name
Microsoft Windows 8 Enterprise|C:\Windows|\Device\Harddisk2\Partition1
    
por 09.10.2013 / 13:59
0

Você pode usar a função php_uname() .

Exemplo de script PHP:

<?php
echo php_name();

Exemplo de saída:

Windows NT #### 6.1 build 7601 (Windows 7 Ultimate Edition Service Pack 1) i586

Não estou familiarizado com uma implementação do VBScript, desculpe.

    
por 09.10.2013 / 13:59
-1

Tente aqui para o powershell, a menos que você precise usar o VBScript

Como posso determinar qual versão do Windows está sendo executada em um servidor usando o PowerShell?

link

    
por 09.10.2013 / 14:03