none
Scritpt para reinicializar as um grupo de maquinas RRS feed

  • Pergunta

  • Mestres,

    Estou com uma grande urgencia. Preciso reiniciar um grupo de maquinas remotamente um total de 1000 maquinas. Para forçar as maquinas a buscar update no wsus e reiniciar para aplicar novas gpos. Preciso disparar isso remoto é possivel?

     

    Grato,

    terça-feira, 23 de janeiro de 2007 12:40

Respostas

  • Vechiatto, você pode criar um arquivo de texto com o nome maquinas.txt em C:\ contendo o nome de cada máquina que você quer desligar.

    Ex:
    maquina_01
    maquina_02
    maquina_03
    OBS:Tem que ser uma embaixo da outra.

    Após isso crie o script abaixo que lerá linha por linha e desligará as máquinas do arquvio de texto.

    dim computer

    set fso = CreateObject("Scripting.FileSystemObject")
    const ForREAding = 1
    set leia = fso.opentextFile("c:\maquinas.txt",ForREAding)
    Do until leia.AtEndOfStream
    computer=leia.readline

    set wshell = CreateObject("Wscript.Shell")
    Wshell.run "shutdown -r -f -m \\" & computer

    loop

    Qualifique a resposta caso seja útl.

    terça-feira, 23 de janeiro de 2007 13:46
  • Adriano este script aqui é bem fácil e executa que é uma maravilha, é só você colocar um arquivo txt com os nomes das máquinas num local determinado por vc e executar:


    set fso = CreateObject("Scripting.FileSystemObject")
    const ForREAding = 1
    set leia = fso.opentextFile("c:\maquinas.txt",ForREAding)
    Do until leia.AtEndOfStream

    strComputer = leia.readline
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}\\" & strComputer & "\root\cimv2")

    Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
     
    For Each objOperatingSystem in colOperatingSystems
        objOperatingSystem.Win32Shutdown(6)
    Next
    loop


    Testa aí
    Abraços
    quinta-feira, 17 de maio de 2007 17:02
  • Com Windows Powershell:

    foreach ($machine in (cat c:\maquinas.txt)) {(get-wmiobject -computer $machine win32_operatingsystem).win32shutdown(6)}

    ou

    1..254 | foreach {(get-wmiobject -computer ('192.168.0.' + $_) win32_operatingsystem).win32shutdown(6)}

    pra reiniciar todo mundo por IP

    []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
    domingo, 20 de maio de 2007 13:49
    Moderador

Todas as Respostas

  • Vechiatto, você pode criar um arquivo de texto com o nome maquinas.txt em C:\ contendo o nome de cada máquina que você quer desligar.

    Ex:
    maquina_01
    maquina_02
    maquina_03
    OBS:Tem que ser uma embaixo da outra.

    Após isso crie o script abaixo que lerá linha por linha e desligará as máquinas do arquvio de texto.

    dim computer

    set fso = CreateObject("Scripting.FileSystemObject")
    const ForREAding = 1
    set leia = fso.opentextFile("c:\maquinas.txt",ForREAding)
    Do until leia.AtEndOfStream
    computer=leia.readline

    set wshell = CreateObject("Wscript.Shell")
    Wshell.run "shutdown -r -f -m \\" & computer

    loop

    Qualifique a resposta caso seja útl.

    terça-feira, 23 de janeiro de 2007 13:46
  • O sript funciona direitinho, mas preciso logar na máquina para que ele funcione tem alguma outra forma de reiniciar a máquina sem que esteja logado com ela apenas ligada?

     

    Obrigado

     

    Adriano Mendes

    quinta-feira, 17 de maio de 2007 14:04
  •  

    Code Snippet

    Adriano tudo bem...

    Veja esse :

    Crie um arquivo chamado _MAQS_TODAS.TXT e insira o nome das maquinas que vc quer reiniciar, salve o codigo abaixo em um arquivo bat e execute a bat.

    Você po colocar uma task no agendador de tarefas.

    Tenho certeza que funciona sem ter ninguém logado na maquia.

    Boa sorte.

     

     

    @echo off

    color 3f
    for /f %%a in (_MAQS_TODAS.TXT) do call :s %%a

    :s
    set computer=%1
    :fabrica
    ping -n 1 %computer% | find /i "Resposta" > nul
    if errorlevel 1 goto desligada
    if errorlevel 0 goto ligada


    :ligada
    shutdown -m \\%computer% -r -t 30 -f

    goto fim


    :desligada

    goto fim

    :fim

     

     

    quinta-feira, 17 de maio de 2007 15:54
  • Adriano este script aqui é bem fácil e executa que é uma maravilha, é só você colocar um arquivo txt com os nomes das máquinas num local determinado por vc e executar:


    set fso = CreateObject("Scripting.FileSystemObject")
    const ForREAding = 1
    set leia = fso.opentextFile("c:\maquinas.txt",ForREAding)
    Do until leia.AtEndOfStream

    strComputer = leia.readline
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}\\" & strComputer & "\root\cimv2")

    Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
     
    For Each objOperatingSystem in colOperatingSystems
        objOperatingSystem.Win32Shutdown(6)
    Next
    loop


    Testa aí
    Abraços
    quinta-feira, 17 de maio de 2007 17:02
  • Com Windows Powershell:

    foreach ($machine in (cat c:\maquinas.txt)) {(get-wmiobject -computer $machine win32_operatingsystem).win32shutdown(6)}

    ou

    1..254 | foreach {(get-wmiobject -computer ('192.168.0.' + $_) win32_operatingsystem).win32shutdown(6)}

    pra reiniciar todo mundo por IP

    []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
    domingo, 20 de maio de 2007 13:49
    Moderador
  • Valeu pelas dicas, ao invês de colocar o nome da máquina Ex: desktop1 eu coloquei o endereço IP, ai funcionou.

     

    Valeuu

    quinta-feira, 24 de maio de 2007 00:32
  • Isso se deve ao fato do WMI usar qualquer um dos dois para fazer a conexão remota.

    []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

    domingo, 27 de maio de 2007 02:00
    Moderador