none
Script para Desligamento das estações Windows XP RRS feed

  • Pergunta

  •  

    Bom dia amigos TechNet ...

     

    A minha empresa quer que as estações de trabalho (Cerca de 55 maquinas XP) desliguem em um determinado horário após as 18:00 para que os funcionários não fiquem na empresa depois do horario, então procurei por Scrips para colocar nas propriedades de cada usuário no AD (AD com windows 2000 server) achei muitos ... mas não funcionam.

    tentei primeiro fazendo um teste.bat para ser executada no logon do usuário com o comando para agendar uma tarefa pelo AT do windows:

     

    @echo off

    at 18:10 shutdown -s /f /t 10

    end

     

    Sem êxito ... quando executa na maquina cliente aparece como acesso negado.

    então procurei uma forma de autênticar com privilégios administrativos no script (Criei uma conta administrativa para isso) e encontrei uma solução em .vbs para executar no logon do usuário:

     

    Option explicit
    Dim oShell
    set oShell = Wscript.CreateObject("Wscript.Shell")
    oShell.Run "runas /user: dominio\usuario ""at 18:10 shutdown -s /f /t 20"""
    WScript.Sleep 100
    oShell.Sendkeys "senha~"
    Wscript.Quit

     

    mas quando executa na maquina cliente ele fica parado no prompt pedindo a senha do usuário.

    alguem já passou por isso antes ? não encontro outra forma de programar estações clientes para desligarem em determinado horario pelo servidor.

     

    Obrigado pela atenção.

     

    Wagner

    segunda-feira, 18 de agosto de 2008 18:37

Respostas

  • Olá Wagner, blza ...

     

    Amigo para ajuda-lo usaremos a seguinte solução, testada e aprovada.

     

    No Servidor crie uma pasta chamada script, dentro desta pasta criaremos dois arquivos:

     

    1º - Criaremos o arquivo chamado micros.txt, dentro deste arquivo coloque os nomes da estações na seguinte ordem.

     

    micro1

    micro2

    micro3

     

    Ou seja, cada estação em uma linha, e salve este arquivo dentro da pasta script.

     

    2º - Agora vamos criar o script que irá ler o conteúdo do arquivo micros.txt, vamos dar o nome de desliga.bat e vamos salva-lo dentro da pasta script que criamos no começo.

     

    Conteúdo do arquivo desliga.bat

     

    for /F %%i in (micros.txt) do shutdown /r /t 01 /m %%i

     

    Neste scritp iremos desliga as estações em um segundo.

     

    3º - E para finalizar ao agendar o arquivo desliga.bat agende para ser executado com a conta que tem privilégio de administrador nas estações, um exemplo seria usar a conta de administrador do domínio, visto que o grupo Domain Admins se encontra em todas as estações que estão no domínio.

     

    Att.

     

    Leonardo Duarte (BH) - MCP - MCSA

     

    Obs: Caso este post tenha te ajudado, marque como útil.

    terça-feira, 19 de agosto de 2008 03:31

Todas as Respostas

  • Olá Wagner, blza ...

     

    Amigo para ajuda-lo usaremos a seguinte solução, testada e aprovada.

     

    No Servidor crie uma pasta chamada script, dentro desta pasta criaremos dois arquivos:

     

    1º - Criaremos o arquivo chamado micros.txt, dentro deste arquivo coloque os nomes da estações na seguinte ordem.

     

    micro1

    micro2

    micro3

     

    Ou seja, cada estação em uma linha, e salve este arquivo dentro da pasta script.

     

    2º - Agora vamos criar o script que irá ler o conteúdo do arquivo micros.txt, vamos dar o nome de desliga.bat e vamos salva-lo dentro da pasta script que criamos no começo.

     

    Conteúdo do arquivo desliga.bat

     

    for /F %%i in (micros.txt) do shutdown /r /t 01 /m %%i

     

    Neste scritp iremos desliga as estações em um segundo.

     

    3º - E para finalizar ao agendar o arquivo desliga.bat agende para ser executado com a conta que tem privilégio de administrador nas estações, um exemplo seria usar a conta de administrador do domínio, visto que o grupo Domain Admins se encontra em todas as estações que estão no domínio.

     

    Att.

     

    Leonardo Duarte (BH) - MCP - MCSA

     

    Obs: Caso este post tenha te ajudado, marque como útil.

    terça-feira, 19 de agosto de 2008 03:31
  • E ae Leonardo ... blz amigo e contigo ?????

     

    Cara ... obrigado pela dica ... é extremamente funcional, fiz os testes na rede e teve um grande êxito na execução .... parabéns ...

     

    só um comentário, no código:

    for /F %%i in (micros.txt) do shutdown /r /t 01 /m %%i

     

    a opção "/r" restarta a maquina .... apenas mudei para "/s" para o shutdown das mesmas.

     

    mais uma vez obrigado e parabens pela dica.

     

    Wagner Panfilli

    terça-feira, 19 de agosto de 2008 11:56
  •  

    Olá Wagner, desculpe eu esqueci na hora de digitar de alterar o parametro de /r para /s . Segue abaixo então versão corrigida ...

     

     

    for /F %%i in (micros.txt) do shutdown /s /t 01 /m %%i

     

    Att.

     

    Leonardo Duarte - BH .

    • Sugerido como Resposta Cjanuzi sexta-feira, 19 de junho de 2009 06:59
    terça-feira, 19 de agosto de 2008 12:04
  • Esta perfeito Leonardo,

     

    Obrigado ...

     

     

    Wagner Panfilli

    terça-feira, 19 de agosto de 2008 12:31
  •  

    Olá Wagner, desculpe eu esqueci na hora de digitar de alterar o parametro de /r para /s . Segue abaixo então versão corrigida ...

     

     

    for /F %%i in (micros.txt) do shutdown /s /t 01 /m %%i

     

    Att.

     

    Leonardo Duarte - BH .

    Leonardo, td bem!
    Utilizamos a dica, porem seria interessante guardar o log dos desligamentos, voce saberia como imprimir a partir do SHELL o resultado da execussao do script?
    sexta-feira, 19 de junho de 2009 07:01
  • Leo bom dia

    vi seu post é muito show,

    gsotaria de saber se vc pode respoder uma duvida:

    estou precisando pingar uma maquina para ver se ela está ligada, caso ñ esteja ligada executo o comando para desligar

    se saberia me dizer como consigo fazer isso?

     

     

    obrigado

    mario

    segunda-feira, 23 de maio de 2011 14:45
  • Léo tudo bem, bom dia , meu nome é bruno pereira alves sou leigo nesses assunto de script

    mas sei de que seu uso e extremamente importante numa adm de rede nao é?

    como sou um leigo no assunto gostaria que voce deferisse algun livro , ou algun blog no

    qual eu possa tar aprendendo desde o primórdio. sabe léo eu so quero fixa isso na minha mente

    quero aperfeiçoar esse tipo de manuseio, quero poder construir um script em sequencia correta

    quero entender as variaves e seus significados, seus propositos, por que esta ali entende amigo.

    e léo finalizando é preciso ter ingles em vista para entender essa arte-manha? acho que sim nao é?

            léo a voce um muito obrigado      ATT:bruno pereira alves   Imail: bruno689@hotmail.com

     Hrs 20:03 P.M        26/07/11   RJ

     

    terça-feira, 26 de julho de 2011 23:03
  • Normalmente quando crio um bat com comando em DoS, para gerar um log do que foi feito eu coloco os comandos no final da linha assim "> log.txt"

     

    Exemplo neste caso seria: for /F %%i in (micros.txt) do shutdown /s /t 01 /m %%i >> Log.txt

    Assim será criado um arquivo log.txt na mesma pasta do bast ou na pasta que eu desejar exemplo "> E:\Backup\logs\log.txt"

    > = Cria um arquivo ou sobre escreve o existente
    >> = Adiciona o resultado dos comandos a um arquivo se ele não existir ele Cria

     

    quarta-feira, 27 de julho de 2011 00:21
  • Boa tarde, Seria possivel alem do comando, enviar uma mensagem ao usuário antes da maquina desligar.
    sexta-feira, 10 de outubro de 2014 21:04
  • Bom Dia, Leonardo.

    Eu fiz exatamente como informado, porém, as estações não foram desligadas, criei a pasta script, o arquivo *.txt que consta o comando e fiz o agendamento com privilégios de admnistrador, se a estação que será desligada estiver em uso interfere na execução do comando?

    Abraços.

    quinta-feira, 5 de março de 2015 12:35
  • Olá Leonardo.

    Qual seria o comando equivalente a esse só que ao invés de desligar as máquinas, as bloqueassem?

    quarta-feira, 3 de junho de 2020 15:45