none
Comando xp_cmdshell para executar um .bat - shutdown / permissão RRS feed

  • Pergunta

  • Pessoal,

    Tive que criar um script para o SQL onde, todo dia em determinado horário ele lista os IPs gravados no banco de dados, gera um arquivo .bat pelo "bpc" com a lista de ips com comando de shutdown para desligar as maquinas...

    Porem estou com o problema: Executando o bat manualmente, no meu pc, as maquinas desligam... mas via SQL sempre me retorna um erro de "Acesso Negado", e só a minha, local, que desliga.

    O estranho é que a unica coisa que muda é a forma de acesso:

    - Via SQL: Acesso Negado, só desliga minha máquina local, as demais não.

    - Via "Manual, abrindo o arquivo": Desliga normalmente.

    Seria alguma limitação do xp_cmdshell que não deixa executar isso?

    Att.

    Diego.

    quinta-feira, 17 de novembro de 2011 16:37

Respostas

  • Olá Diego, verifica com qual user roda este processo todo dia.

    Se for um Job o user é o mesmo que esta no serviço, provavelmente este user ou existe somente no teu pc ou não ter permissão de admin da rede e o shutdown não consegue desligar as outras por falta de permissão.

     

    Espero que ajude.

    Vlew.

    quinta-feira, 17 de novembro de 2011 17:24

Todas as Respostas

  • Olá Diego, verifica com qual user roda este processo todo dia.

    Se for um Job o user é o mesmo que esta no serviço, provavelmente este user ou existe somente no teu pc ou não ter permissão de admin da rede e o shutdown não consegue desligar as outras por falta de permissão.

     

    Espero que ajude.

    Vlew.

    quinta-feira, 17 de novembro de 2011 17:24
  • Ola Marcus!

    Decidimos deixar para executar esse bat como tarefa agendada do Windows do que executar via SQL.

    Creio que seja um modo mais facil, ja que basta somente um usuario de rede com poderes administrativos sob as demais.

    Agradeço.

    Abs

    • Marcado como Resposta Diego Ronan sexta-feira, 18 de novembro de 2011 16:11
    • Não Marcado como Resposta Diego Ronan sexta-feira, 18 de novembro de 2011 16:11
    sexta-feira, 18 de novembro de 2011 16:11
  • Boa Tarde,

    Foi uma decisão acertada... O agendador do SQL Server deve ser para executar tarefas pertinentes a ele. Não devemos transformar o AGENT em um schedulador oficial, pois, não compete a ele fazer isso (nem foi designado para tal)

    A questão é que o xp_cmdshell no Agent vai rodar com a conta do agent e talvez ela não seja tão poderosa quanto a utilizada nos outros testes.

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
    sexta-feira, 18 de novembro de 2011 16:16