Script em lote - Executar como administrador altera o parâmetro% username%

0

Eu fiz um script em lote, que contém vários campos% username%. Ele precisa de privilégios de administrador para executar alguns comandos, mas quando faço isso, todos os campos% username% que precisam de admin para serem executados são alterados para o nome de usuário do administrador, em vez do usuário logado. não muda?

    
por user3560464 08.10.2018 / 15:57

1 resposta

1

Você pode passar %username% como um parâmetro para seu script em lote e usar o parâmetro em seu script em lote em vez de %username%

digamos que o seu script.bat seja assim:

echo %username%
echo my name is %username%
pause

você pode alterá-lo para isso:

set SomeVar=%1
echo %SomeVar%
echo my name is %SomeVar%
pause

isto irá definir a Variável %SomeVar% com o primeiro argumento ( %1 ) que é passado para o seu Script.

Salve o script em algum lugar e crie um atalho para a área de trabalho do usuário que não é do administrador.

Faça o seguinte (veja a tela abaixo, desculpe pelo idioma alemão)

  1. Abra as propriedades de atalho
  2. adicione %username% ao destino (esse é o argumento %1 )
  3. clique em advanced
  4. verifique run as admin
  5. clique em ok

quando você clica duas vezes no atalho agora e o usuário não é um administrador, ele pedirá credenciais e executará o script com seu argumento

    
por 08.10.2018 / 17:12