Como permitir que scripts do VB sejam executados em uma conta de administrador

2

Estou encontrando um problema com os VBscripts enquanto tento executá-los. Eu estou trabalhando no Windows 8.1 atualização 1 Enterprise, conectado a um domínio da empresa e estou logado com uma conta de domínio. Esta conta de domínio foi adicionada ao grupo Administradores.

Meu VBscript deve criar uma pasta e um arquivo de log no diretório Program Files (x86). Se eu executar este VBscript clicando duas vezes nele com a conta do administrador local, ele funcionará perfeitamente. Mas se eu tentar executar o mesmo VBscript com minha conta de domínio, recebo a mensagem de erro Acesso negado .

Uma solução é desativar totalmente o UAC (com o valor do registro enableLUA definido como 1), mas esse método bloqueia os aplicativos Modern UI, e precisamos manter a execução desses aplicativos.

É possível conceder o controle total da execução do VBScripts em qualquer conta de administrador, como é o caso da conta interna do administrador local? Ainda não encontrei nenhuma solução para esse problema e não posso acreditar que não exista nenhuma solução, especialmente na empresa.

    
por YannD 06.06.2014 / 12:21

2 respostas

3

a maneira que eu normalmente faço isso é colocar o seguinte código no topo do meu script:

If Not WScript.Arguments.Named.Exists("elevate") Then
  CreateObject("Shell.Application").ShellExecute WScript.FullName _
    , WScript.ScriptFullName & " /elevate", "", "runas", 1
  WScript.Quit
End If

Dessa forma, se eu iniciar o VBS como um não administrador - ele tenta executar, percebo que não sou um administrador e, em seguida, relança - solicitando que eu execute como administrador e vamos embora.

Eu sei que é uma dor, mas é uma solução bastante simples.

Espero que isso ajude

    
por 06.06.2014 / 12:58
0

Esse truque é útil se você estiver usando a linha de comando:

  1. Ir para System32 (ou Syswow4 para x64)
  2. Copie cscript.exe e wscript.exe e nomeie-os como csadmin.exe e wsadmin.exe
  3. Abra as propriedades, defina o sinalizador "Executar como administrador".

Agora, se você deseja executar seu script como administrador, use um destes:

csadmin myscript.vbs
wsadmin myscript.vbs

(e se você deseja executar como padrão, use wscript e cscript )

Observação: Se você quiser executar todos os scripts como admin (a janela do UAC aparecerá sempre), basta definir o sinalizador "Executar como admin" em cscript.exe e wscript.exe .

Espero que ajude.

    
por 06.06.2014 / 13:23