none
Bat para verificar versao do windows remotamente RRS feed

  • Pergunta

  • Tecnet Estou tentando criar uma bat para verificar em varias maquinas a versao do windows remotamente. Estou usando o seguinte codigo

    FOR /F %%1 in (maq.txt) do start cmd /c win.bat %%1 

    Arquivo win.bat esta assim: 

    SET M=%1 Ping -n 1 %m% IF ERRORLEVEL% EQU 1 GOTO E Echo %M% >> ligadas.log Copy reg.exe \\%M%\c$\temp Psexec \\%M% c:\temp\REG QUERY "HKLM\SOFTWARE\WINDOWS\Microsoft\Windows NT\CurrentVersion\CurrentVersion" /v do SET OSVER=%%c

    REM if /I "%OSVER%" EQU "6.1" >> Win7.log REM if /I "%OSVER%" EQU "6.2" >> Win8.log :E Echo %M% >> desligadas.log


     No caso, eu quero que ao rodar essa bat, verifique as maquinas que estao no txt e inclua no ligadas.log as maquinas que estao ligadas, depois verifique a reg da versao do windows e se for win7, colocar o nome da maquina do arquivo win7.log, a mesma coisa com o win8. O problema é que quando rodo, apos executar a linha do psexec, aparece o seguinte erro: To many command-line parameters. C:\temp\REG exited on "maquina remota"\ with error code 5000 E nao gera os arquivos win7.log e win8.log. Alguma ideia?


    • Editado Fábio JrModerator segunda-feira, 3 de junho de 2013 12:31 Correção do código
    sexta-feira, 31 de maio de 2013 13:02

Respostas

Todas as Respostas

  • Em PowerShell

    #requires -version 2
    $Maquinas = Get-Content "C:\temp\maq.txt"
    
    foreach ($maq in $Maquinas){
        if (Test-Connection -Cn $maq -BufferSize 16 -Count 1 -ea 0 -quiet){
            $maq >> C:\temp\ligadas.txt
    
            $Versao = (Get-WmiObject -class Win32_OperatingSystem -cn $maq).Version 
    
            if ( $Versao -like "6.1.*") {
                $maq >> "c:\temp\win7.log"
    
            }elseif( $Versao -like "6.2.*") {
                $maq >> "c:\temp\win8.log"
            } else {
                $maq >> "c:\temp\desconhecido.log"
            }
    
    
        }else{
            $maq >> C:\temp\desligadas.txt
        }
    
    
    }
    


    Fábio de Paula Junior

    segunda-feira, 3 de junho de 2013 12:46
    Moderador
  • Rafael.Rosa, porque ao invés de utilizar PsExec.exe você não utiliza 'reg query \\Maquina\Chave...'? Lembro que tem que ter privilégios para executar essa ação.


    Att, AJones

    segunda-feira, 3 de junho de 2013 16:04