none
Identificando versão do Windows RRS feed

  • Pergunta

  • Bom dia para todos ...

    Em minha instalação, possuo várias versões de Windows, W2K SE, W2K3 SE, W2K3 SE X-64, W2K3 EE X64.

    Estou montando um script em que algumas funções só funcionam em W2K3 e preciso identificar qual SO durante a execução do script.

    Procurei no Script Center e não achei, pesquisei a classe win32_OperatinSystem e não achei ou não entendi bem.

    Agradeço antecipadamente qualquer ajuda.

    PS : Sou iniciante no assunto.

     

    sexta-feira, 17 de novembro de 2006 13:20

Respostas

  • Coloque esse comando dentro do seu script

    set objwmiservice = GetObject("winmgmts:\\")
    set colitens = objwmiservice.Execquery("Select * from win32_OperatingSystem")
    For Each objItem in colitens
             so = objitem.caption
    next

    Ele retorna qual é o sistema operacional ativo na variavel "so", depois é só manipular a variavel

    sexta-feira, 17 de novembro de 2006 13:47
  • Olá,


    ainda sobre a Win32_OperatingSystem, você pode pegar pela propriedade Version, que contém o número da versão do SO.

    Outra alternativa é pegar uma variável de ambiente chamada OS, mas também não informa muita coisa. O melhor é sair mesmo por WMI para obter informações exatas.


    []s,

    --
    Vinicius Canto <scripterbr_at_gmail_dot_com>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre Scripting: http://viniciuscanto.blogspot.com

    sexta-feira, 17 de novembro de 2006 17:07
    Moderador

Todas as Respostas

  • Coloque esse comando dentro do seu script

    set objwmiservice = GetObject("winmgmts:\\")
    set colitens = objwmiservice.Execquery("Select * from win32_OperatingSystem")
    For Each objItem in colitens
             so = objitem.caption
    next

    Ele retorna qual é o sistema operacional ativo na variavel "so", depois é só manipular a variavel

    sexta-feira, 17 de novembro de 2006 13:47
  • Obrigado pela resposta.

    Esta opção já tinha visto na classe win32_OperatingSystem. Acho que esta classe retorna valores não muito exatos.

    "Microsoft Windows XP Professional", "Microsoft Windows 2000 Server" é o que retorna em testes que fiz com um script do Script Center e acho não ser valores adequados para fazer comparações, pois a documentação não mostra quais os valores possíveis esta propriedade retorna.  Assim teria que rodar o script em cada Server da empresa para verificar os possíveis valores de retorno.

    Busco algo como a propriedade OStype. O problema é que essa classe retorna o valor 18 para WINNT, que pode ser diversos SO da família Server.

     

     

     

     

     

    sexta-feira, 17 de novembro de 2006 16:13
  • Olá,


    ainda sobre a Win32_OperatingSystem, você pode pegar pela propriedade Version, que contém o número da versão do SO.

    Outra alternativa é pegar uma variável de ambiente chamada OS, mas também não informa muita coisa. O melhor é sair mesmo por WMI para obter informações exatas.


    []s,

    --
    Vinicius Canto <scripterbr_at_gmail_dot_com>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre Scripting: http://viniciuscanto.blogspot.com

    sexta-feira, 17 de novembro de 2006 17:07
    Moderador
  • É ...Meu início no script está sendo meio penoso ...

    Primeiro não encontrei suporte para detectar quais volumes em plataformas anteriores a W2K3.

    Então para continuar meu primeiro script, tentei recuperar informações exatas para as versões de SO, para tentar trabalhar corretamente com os volumes usando win32_volumes, sem o script cancelar.

    Então deparo com mais 1 problema.

    Será que estou indo no caminho errado, ou estou levando azar mesmo ?

    BTW, poderia me informar como recupero esta informação por WMI ?

    sexta-feira, 17 de novembro de 2006 19:52