none
Verificar versão do sistema operacional e arquitetura RRS feed

  • Pergunta

  • Olá, boa tarde, estou tentando criar um Script.BAT capaz de verificar a versão do sistema operacional e a arquitetura.

    Por exemplo, eu quero executar o comando Shutdown apenas para as versões com arquitetura de 32 Bits, e o comando ipconfig apenas nas versões com arquitetura de 64 bits, para isso preciso de um comando que possa mostrar qual a arquitetura em uma do sistema em uma linha e executar o comando para a versão desejada em outra linha.

    Alguém ai tem alguma ideia?

    Obrigado.


    quinta-feira, 24 de julho de 2014 19:44

Respostas

  • Obrigado pela ajuda pessoal.

    Mas eu conseguir deste jeito aqui ó:

    @echo off
    :CheckOS
    IF EXIST "%PROGRAMFILES(X86)%" (GOTO 64BIT) ELSE (GOTO 32BIT)

    :32BIT
    echo Desligando
    shutdown -s -t 0
    GOTO END

    :64BIT
    echo Testando IP
    ipconfig
    GOTO END

    :END
    exit

    Mais ou menos era isto que eu estava querendo. Obrigado.


    segunda-feira, 28 de julho de 2014 19:30

Todas as Respostas

  • Vê se isso ajuda, não testei, mas acho que deve funcionar. :)

    $computerList = Get-Content "C:\computers.txt"
    
    foreach($computer in $computerList)
        {
            $HostName = hostname
            $Caption = (Get-WmiObject -ComputerName $computer -class Win32_OperatingSystem).Caption
            $OSArchitecture = (Get-WmiObject -ComputerName $computer -class Win32_OperatingSystem).OSArchitecture
    
            if ($OSArchitecture -eq "64-bit")
                {
                    $HostName
                    psexec \\$computer ipconfig
                }
            if($OSArchitecture -eq "32-bit")
                {
                    $HostName
                    shutdown -m $HostName -s -t 0
                }
        }

    • Sugerido como Resposta Paulo R S Rocha sexta-feira, 25 de julho de 2014 14:52
    quinta-feira, 24 de julho de 2014 22:42
  • Ranniery,

    Apenas uma observação nesse script, a variável $HostName não tem função nenhuma pois irá atribuir o nome da máquina que está executando o script, e não o computador desejado.
    Neste caso então o último comando ficaria assim:

    shutdown -m $computer -s -t 0
    Lembrando que não é um Batch, mas sim um script em PowerShell.

    Em um .bat pode ser utilizado esse comando para adquirir a arquitetura do SO:

    wmic OS get OSArchitecture


    Att, Paulo Rocha MCP | MCDST | MCSA Server 2012

    sexta-feira, 25 de julho de 2014 14:57
  • Sobre a arquitetura, veja este link, já tem exemplo até com "IF" que provavelmente você vai precisar.

    batch file to check 64bit or 32bit OS

    http://stackoverflow.com/questions/12322308/batch-file-to-check-64bit-or-32bit-os


    Fábio de Paula Junior

    sexta-feira, 25 de julho de 2014 17:38
    Moderador
  • Obrigado pela ajuda pessoal.

    Mas eu conseguir deste jeito aqui ó:

    @echo off
    :CheckOS
    IF EXIST "%PROGRAMFILES(X86)%" (GOTO 64BIT) ELSE (GOTO 32BIT)

    :32BIT
    echo Desligando
    shutdown -s -t 0
    GOTO END

    :64BIT
    echo Testando IP
    ipconfig
    GOTO END

    :END
    exit

    Mais ou menos era isto que eu estava querendo. Obrigado.


    segunda-feira, 28 de julho de 2014 19:30