none
Alterar arquivo de host nas estações via Script de logon, logoff com windows 2008 R2 server RRS feed

  • Pergunta

  • Olá a todos,

    Ai vai pessoal,

    Meu problema é o seguinte:

    Preciso que via gpo mudar alterar o arquivo de hosts nas estações com permissão de usuários padrão e não como administrador, como administrador sei que funciona, segue o script que tenho

    Const OverwriteExisting = TRUE

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    objFSO.CopyFile "\\200.210.220.100\arquivos\*" , "C:\Windows\System32\drivers\etc" , OverwriteExisting

    ESTE SCRIPT PODE SER SALVO COMO .VBS, FUNCIONA APENAS PARA ADMINISTRADOR LOGADO NAS ESTAÇÕES PORÉM PARA USUÁRIOS DAS ESTAÇÕES COM PERMISSÃO PADRÃO, NÃO FUNCIONA O SCRIPT, PRECISO DO SCRIPT PARA BLOQUEAR SITES, MAS NÃO QUE IR NAS 200 MÁQUINAS QUE TENHO.

    ALGUÉM PODERIA ME JUDAR?





    • Tipo Alterado Robson_Lima quarta-feira, 2 de maio de 2012 23:26 Estudo
    • Editado Robson_Lima quinta-feira, 3 de maio de 2012 15:00
    • Movido Paul Haro sexta-feira, 4 de maio de 2012 00:22 Fórum incorreto (De:Windows Server 2008)
    • Tipo Alterado Fábio JrModerator sexta-feira, 4 de maio de 2012 12:35 É pergunta
    quarta-feira, 2 de maio de 2012 23:18

Respostas

  • Fábio,

    Fiz assim:

    @echo off
    SET NOVO=#  127.0.0.1 http://pt-br.youtube.com/
    find /i "%NOVO%" %systemroot%\system32\drivers\etc\hosts
    if NOT %ERRORLEVEL% EQU 0 (
     ECHO %NOVO% >>  %systemroot%\system32\drivers\etc\hosts
    )
    @echo off
    SET NOVO=#  127.0.0.1 http://pt-br.facebook.com/

    find /i "%NOVO%" %systemroot%\system32\drivers\etc\hosts
    if NOT %ERRORLEVEL% EQU 0 (
     ECHO %NOVO% >>  %systemroot%\system32\drivers\etc\hosts
    )

    ok, adicionou a entrada, mas continua com o mesmo problema, no usuário padrão não altera o arquivo de hosts somente no administrador quando faz o logoff, e outra coisa que notei é que no internet explorer os endereços não funcionaram, mas no mozilla ta liberado a pessoa consegue navegar nos links,

    metade resolvido, vamos lá?

    • Editado Robson_Lima sexta-feira, 4 de maio de 2012 19:01
    • Marcado como Resposta Robson_Lima sexta-feira, 4 de maio de 2012 19:01
    sexta-feira, 4 de maio de 2012 18:22
  • Deu certo, funcionou.

    Muito obrigado Fábio, ficou assim então o script funcionando,

    @echo off
    SET NOVO=#  127.0.0.1 http://pt-br.youtube.com/
    find /i "%NOVO%" %systemroot%\system32\drivers\etc\hosts
    if NOT %ERRORLEVEL% EQU 0 (
     ECHO %NOVO% >>  %systemroot%\system32\drivers\etc\hosts
    )
    SET NOVO=#  127.0.0.1 http://pt-br.facebook.com/
    find /i "%NOVO%" %systemroot%\system32\drivers\etc\hosts
    if NOT %ERRORLEVEL% EQU 0 (
     ECHO %NOVO% >>  %systemroot%\system32\drivers\etc\hosts
    )
    SET NOVO=#  127.0.0.1 https://https://accounts.google.com/ServiceLogin?service=mail&passive=true&rm=false&continue=http://mail.google.com/mail/&scc=1&ltmpl=default&ltmplcache=2
    find /i "%NOVO%" %systemroot%\system32\drivers\etc\hosts
    if NOT %ERRORLEVEL% EQU 0 (
     ECHO %NOVO% >>  %systemroot%\system32\drivers\etc\hosts
    )
    SET NOVO=#  127.0.0.1 gmail.com
    find /i "%NOVO%" %systemroot%\system32\drivers\etc\hosts
    if NOT %ERRORLEVEL% EQU 0 (
     ECHO %NOVO% >>  %systemroot%\system32\drivers\etc\hosts
    )
    salvei como bloquear.bat, ai pronto já está bloqueando tudo, valeu obrigado.

    • Marcado como Resposta Robson_Lima sábado, 5 de maio de 2012 00:47
    sábado, 5 de maio de 2012 00:47
  • Robson,

    Vc tem que colocar o script com script de Startup, isto é, ele vai rodar na inicialização da estação.

    Segue o script que criei para um problema semelhante, o meu faz alteração de um registro no existente.

    Adicionar entrada no arquivo host

    http://gallery.technet.microsoft.com/scriptcenter/Adicionar-entrada-no-72918271

    Remover entrada no arquivo hosts

    http://gallery.technet.microsoft.com/scriptcenter/Remover-entrada-no-arquivo-7575d463

    Observação:

    Se forem várias alterações e precisar substituir o arquivo, utilize um .BAT com o COPY, lembrando de coloca-lo como script de Startup(inicialização).

    O seu script .VBS já deve funcionar se colocá-lo como startup.


    Fábio de Paula Junior



    sexta-feira, 4 de maio de 2012 12:34
    Moderador
  • São 4 tipos de script, vou listar na ordem que eles são executados.

    1-Startup (inicialização), é executado quando a maquina inicia, roda com conta de sistema (seu script funciona)

    2-Logon, é executado quando o usuário faz logon, roda com a conta do usuário (seu script não funciona aqui, funciona com o administrador, usuário comum não)

    3-Logoff, é executado quando o usuário faz logff, roda com a conta do usuário (seu script não funciona aqui, funciona com o administrador, usuário comum não)

    4-Desligamento, é executado quando a maquina é desligada, roda com conta de sistema (seu script funciona)

    Observação muito importante:

    Scripts de Starut e desligamento devem ser colocadas em OU que contém as contas das máquinas onde o script deve ser executado.

    Scripts de Logon e Logoff devem ser colocadas em OUs que contém as contas de usuários.

    Você não esclareceu se conseguiu colocar o script como startup,....não era pra ter dificuldade se você consegue colocar como logon o startup é parecido.


    Fábio de Paula Junior


    sexta-feira, 4 de maio de 2012 20:02
    Moderador

Todas as Respostas

  • Olá a todos,

    Ai vai pessoal,

    Meu problema é o seguinte:

    Preciso que via gpo mudar alterar o arquivo de hosts nas estações com permissão de usuários padrão e não como administrador, como administrador sei que funciona, segue o script que tenho

    Const OverwriteExisting = TRUE

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    objFSO.CopyFile "\\200.210.220.100\arquivos\*" , "C:\Windows\System32\drivers\etc" , OverwriteExisting

    ESTE SCRIPT PODE SER SALVO COMO .VBS, FUNCIONA APENAS PARA ADMINISTRADOR LOGADO NAS ESTAÇÕES PORÉM PARA USUÁRIOS DAS ESTAÇÕES COM PERMISSÃO PADRÃO, NÃO FUNCIONA O SCRIPT, PRECISO DO SCRIPT PARA BLOQUEAR SITES, MAS NÃO QUE IR NAS 200 MÁQUINAS QUE TENHO.

    ALGUÉM PODERIA ME JUDAR?





    quinta-feira, 3 de maio de 2012 14:50
  • Robson,

    Vc tem que colocar o script com script de Startup, isto é, ele vai rodar na inicialização da estação.

    Segue o script que criei para um problema semelhante, o meu faz alteração de um registro no existente.

    Adicionar entrada no arquivo host

    http://gallery.technet.microsoft.com/scriptcenter/Adicionar-entrada-no-72918271

    Remover entrada no arquivo hosts

    http://gallery.technet.microsoft.com/scriptcenter/Remover-entrada-no-arquivo-7575d463

    Observação:

    Se forem várias alterações e precisar substituir o arquivo, utilize um .BAT com o COPY, lembrando de coloca-lo como script de Startup(inicialização).

    O seu script .VBS já deve funcionar se colocá-lo como startup.


    Fábio de Paula Junior



    sexta-feira, 4 de maio de 2012 12:34
    Moderador
  • Caro Fábio,

    Desde já agradeço pela atenção,

    Vamos lá: tenho 200 máquina que substituir o arquivo de HOSTS pelo um meu com bloqueio as comunidades sociais, o script seguinte já faz isso:

    Const OverwriteExisting = TRUE

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    objFSO.CopyFile "\\200.210.220.100\arquivos\*" , "C:\Windows\System32\drivers\etc" , OverwriteExisting

    Porém somente com conta de administrador, gostaria de saber como persolanisar o mesmo script para funcionar para usuário da rede que não são administrador?

    • Marcado como Resposta Robson_Lima sexta-feira, 4 de maio de 2012 17:21
    • Não Marcado como Resposta Fábio JrModerator sexta-feira, 4 de maio de 2012 17:27
    sexta-feira, 4 de maio de 2012 17:17
  • Robson,

    Vc tem que colocar o script com script de Startup, isto é, ele vai rodar na inicialização da estação.

    Segue o script que criei para um problema semelhante, o meu faz alteração de um registro no existente.

    Adicionar entrada no arquivo host

    http://gallery.technet.microsoft.com/scriptcenter/Adicionar-entrada-no-72918271

    Remover entrada no arquivo hosts

    http://gallery.technet.microsoft.com/scriptcenter/Remover-entrada-no-arquivo-7575d463

    Observação:

    Se forem várias alterações e precisar substituir o arquivo, utilize um .BAT com o COPY, lembrando de coloca-lo como script de Startup(inicialização).

    O seu script .VBS já deve funcionar se colocá-lo como startup.


    Fábio de Paula Junior




    sexta-feira, 4 de maio de 2012 17:20
  • Não vai funcionar utilizando como script de logon porque no logon os script são executados com a conta do usuário e os usuários comuns não tem acesso de gravação no arquivo hosts.

    Solução I) Use seu script como script de Startup(Inicialização) assim ele vai rodar com a conta de sistema.

    Verifique se a conta de sistema tem pelo menos permissão de leitura na origem onde estão seus arquivos.

    Solução II) Coloque um .bat no script de startup (nunca se esqueça STARTUP) e dentro da batch dê echos para dentro do arquivo host

    A primeira linha apaga o arquivo e insere a primeira linha (porque está utilizando >)

    A segunda e terceira adicionam as linhas (porque está utilizando >>)

    echo 10.1.1.1 teste > %windir%\system32\drivers\etc\hosts
    echo 10.1.1.2 teste2 >> %windir%\system32\drivers\etc\hosts
    echo 10.1.1.3 teste2 >> %windir%\system32\drivers\etc\hosts


    Fábio de Paula Junior

    sexta-feira, 4 de maio de 2012 17:26
    Moderador
  • O caminho C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup Não existe para colocar o script.

    tem um passo a passo como fazer o procedimento?
    • Editado Robson_Lima sexta-feira, 4 de maio de 2012 17:58
    sexta-feira, 4 de maio de 2012 17:55
  • Quando vc clica em Adicionar e depois da browser ele já cai na pasta onde você pode copiar o script.


    Fábio de Paula Junior

    sexta-feira, 4 de maio de 2012 18:04
    Moderador
  • Fábio,

    Fiz assim:

    @echo off
    SET NOVO=#  127.0.0.1 http://pt-br.youtube.com/
    find /i "%NOVO%" %systemroot%\system32\drivers\etc\hosts
    if NOT %ERRORLEVEL% EQU 0 (
     ECHO %NOVO% >>  %systemroot%\system32\drivers\etc\hosts
    )
    @echo off
    SET NOVO=#  127.0.0.1 http://pt-br.facebook.com/

    find /i "%NOVO%" %systemroot%\system32\drivers\etc\hosts
    if NOT %ERRORLEVEL% EQU 0 (
     ECHO %NOVO% >>  %systemroot%\system32\drivers\etc\hosts
    )

    ok, adicionou a entrada, mas continua com o mesmo problema, no usuário padrão não altera o arquivo de hosts somente no administrador quando faz o logoff, e outra coisa que notei é que no internet explorer os endereços não funcionaram, mas no mozilla ta liberado a pessoa consegue navegar nos links,

    metade resolvido, vamos lá?

    • Editado Robson_Lima sexta-feira, 4 de maio de 2012 19:01
    • Marcado como Resposta Robson_Lima sexta-feira, 4 de maio de 2012 19:01
    sexta-feira, 4 de maio de 2012 18:22
  • Quando vc manda adicionar o script ele começa a pesquisa a partir de qual pasta?

    Já tentou fazer uma GPO do zero?(não utilize uma que já existe).


    Fábio de Paula Junior

    sexta-feira, 4 de maio de 2012 18:58
    Moderador
  • Fábio,

    Fiz assim:

    @echo off
    SET NOVO=#  127.0.0.1 http://pt-br.youtube.com/
    find /i "%NOVO%" %systemroot%\system32\drivers\etc\hosts
    if NOT %ERRORLEVEL% EQU 0 (
     ECHO %NOVO% >>  %systemroot%\system32\drivers\etc\hosts
    )
    @echo off
    SET NOVO=#  127.0.0.1 http://pt-br.facebook.com/

    find /i "%NOVO%" %systemroot%\system32\drivers\etc\hosts
    if NOT %ERRORLEVEL% EQU 0 (
     ECHO %NOVO% >>  %systemroot%\system32\drivers\etc\hosts
    )

    ok, adicionou a entrada, mas continua com o mesmo problema, no usuário padrão não altera o arquivo de hosts somente no administrador quando faz o logoff, e outra coisa que notei é que no internet explorer os endereços não funcionaram, mas no mozilla ta liberado a pessoa consegue navegar nos links,

    Ou seja: quando um funcionário qualquer loga na máquina o arquivo de host não altera, mas quando o administrador loga na mesma máquina que o funcionário ai o arquivo altera, queria que quando o funcionário logar o arquivo alterasse, sei que é uma questão de permissão, e sim já fiz uma gpo nova.

    metade resolvido, vamos lá?


    • Marcado como Resposta Robson_Lima sexta-feira, 4 de maio de 2012 19:35
    • Editado Robson_Lima sexta-feira, 4 de maio de 2012 19:38
    • Não Marcado como Resposta Robson_Lima sexta-feira, 4 de maio de 2012 19:38
    sexta-feira, 4 de maio de 2012 19:35
  • São 4 tipos de script, vou listar na ordem que eles são executados.

    1-Startup (inicialização), é executado quando a maquina inicia, roda com conta de sistema (seu script funciona)

    2-Logon, é executado quando o usuário faz logon, roda com a conta do usuário (seu script não funciona aqui, funciona com o administrador, usuário comum não)

    3-Logoff, é executado quando o usuário faz logff, roda com a conta do usuário (seu script não funciona aqui, funciona com o administrador, usuário comum não)

    4-Desligamento, é executado quando a maquina é desligada, roda com conta de sistema (seu script funciona)

    Observação muito importante:

    Scripts de Starut e desligamento devem ser colocadas em OU que contém as contas das máquinas onde o script deve ser executado.

    Scripts de Logon e Logoff devem ser colocadas em OUs que contém as contas de usuários.

    Você não esclareceu se conseguiu colocar o script como startup,....não era pra ter dificuldade se você consegue colocar como logon o startup é parecido.


    Fábio de Paula Junior


    sexta-feira, 4 de maio de 2012 20:02
    Moderador
  • Opá,

    Então poderia me descrever como coloco o script como startup, desculpa por não responder a pergunta anteriormente é que sou iniciante no assunto,

    Obrigado

    • Marcado como Resposta Robson_Lima sexta-feira, 4 de maio de 2012 20:18
    • Não Marcado como Resposta Fábio JrModerator sexta-feira, 4 de maio de 2012 23:48
    sexta-feira, 4 de maio de 2012 20:17
  • Opá Fábio,

    DEU CERTO ENFIM, meu problema era que eu estava colocando o script como logoff ou logon e não de inicialização, mais uma dúvia, para que o script não fique desta forma:

    @echo off
    SET NOVO=#  127.0.0.1 http://pt-br.youtube.com/
    find /i "%NOVO%" %systemroot%\system32\drivers\etc\hosts
    if NOT %ERRORLEVEL% EQU 0 (
     ECHO %NOVO% >>  %systemroot%\system32\drivers\etc\hosts
    )
    @echo off
    SET NOVO=#  127.0.0.1 http://pt-br.facebook.com/

    find /i "%NOVO%" %systemroot%\system32\drivers\etc\hosts
    if NOT %ERRORLEVEL% EQU 0 (
     ECHO %NOVO% >>  %systemroot%\system32\drivers\etc\hosts
    )

    qual a melhor forma, para não ficar muito grande, ou é assim mesmo?

    • Marcado como Resposta Robson_Lima sexta-feira, 4 de maio de 2012 21:17
    • Não Marcado como Resposta Fábio JrModerator domingo, 6 de maio de 2012 01:58
    sexta-feira, 4 de maio de 2012 21:17
  • É assim mesmo.

    agora o comando @echo off só precisa na primeira linha, não precisar repeti-lo durante o resto do script.


    Fábio de Paula Junior

    sexta-feira, 4 de maio de 2012 23:47
    Moderador
  • Deu certo, funcionou.

    Muito obrigado Fábio, ficou assim então o script funcionando,

    @echo off
    SET NOVO=#  127.0.0.1 http://pt-br.youtube.com/
    find /i "%NOVO%" %systemroot%\system32\drivers\etc\hosts
    if NOT %ERRORLEVEL% EQU 0 (
     ECHO %NOVO% >>  %systemroot%\system32\drivers\etc\hosts
    )
    SET NOVO=#  127.0.0.1 http://pt-br.facebook.com/
    find /i "%NOVO%" %systemroot%\system32\drivers\etc\hosts
    if NOT %ERRORLEVEL% EQU 0 (
     ECHO %NOVO% >>  %systemroot%\system32\drivers\etc\hosts
    )
    SET NOVO=#  127.0.0.1 https://https://accounts.google.com/ServiceLogin?service=mail&passive=true&rm=false&continue=http://mail.google.com/mail/&scc=1&ltmpl=default&ltmplcache=2
    find /i "%NOVO%" %systemroot%\system32\drivers\etc\hosts
    if NOT %ERRORLEVEL% EQU 0 (
     ECHO %NOVO% >>  %systemroot%\system32\drivers\etc\hosts
    )
    SET NOVO=#  127.0.0.1 gmail.com
    find /i "%NOVO%" %systemroot%\system32\drivers\etc\hosts
    if NOT %ERRORLEVEL% EQU 0 (
     ECHO %NOVO% >>  %systemroot%\system32\drivers\etc\hosts
    )
    salvei como bloquear.bat, ai pronto já está bloqueando tudo, valeu obrigado.

    • Marcado como Resposta Robson_Lima sábado, 5 de maio de 2012 00:47
    sábado, 5 de maio de 2012 00:47