Bem simples que eu estou tendo problemas para encontrar uma resposta.
O serverfault me ajudou anteriormente a encontrar uma maneira de automatizar as atualizações do Windows sem usar o WSUS. Está funcionando de maneira fantástica, mas para executá-lo na rede, você deve primeiro montar uma unidade compartilhada. Isso é bastante simples, pois você monta a unidade e executa o atualizador.
No Vista e W7, porém, tudo isso deve ser feito com privilégios elevados para funcionar corretamente. A conta do UAC não pode ver as unidades de rede montadas pelo usuário comum; portanto, para que tudo funcione, preciso montar o compartilhamento via net use
um shell escalado. Gostaria de automatizar a montagem desse compartilhamento e o lançamento do atualizador por meio de um simples arquivo .bat.
Provavelmente, eu poderia instruir todo mundo a clicar com o botão direito do mouse em "Executar como Administrador" no arquivo .bat, mas gostaria de manter as coisas o mais simples possível e fazer com que o .bat solicite automaticamente que o usuário aumente seus privilégios.
Como esses computadores não nos pertencem, não posso contar com nada como o Powershell sendo instalado, de modo que as regras de qualquer solução nesse sentido e praticamente dependam de coisas que seriam incluídas em uma instalação do RTM Vista. Espero estar perdendo algo óbvio aqui. :)
fonte
elevate.cmd
eelevate.vbs
Se você estiver preparado para converter para o PowerShell, isso é muito mais fácil. Este é o meu
Elevate-Process.ps1
script " " (comsu
como apelido no meu perfil):A detecção de elevação também pode ser feita no PSH (portanto, você pode verificar a elevação e, se necessário, elevar):
fonte
Aqui está um exemplo de script que eu criei, espero que ajude outras pessoas. É um arquivo bat que solicita permissão ao usuário e, em seguida, aumenta a sua capacidade. Ele lança algum vbscript que aciona o prompt do UAC e depois executa novamente o arquivo bat elevado ... http://jagaroth.livejournal.com/63875.html
fonte
É disso que você precisa: http://sites.google.com/site/eneerge/home/BatchGotAdmin
fonte
O FusionInventory.org é uma solução de código aberto usada principalmente por pequenas oficinas. Pode ser como o seu atualizador pessoal do Windows controlado remotamente.
fonte
Nenhuma dessas soluções funciona para um arquivo .cmd que precisa estar ciente dos parâmetros da linha de comando. Coloque isso no início do arquivo .cmd e todos os seus problemas serão resolvidos. (Isto é para pessoas futuras navegando neste tópico [eu testei isso no Windows XP, 7 Vista e 8; x86 + x64]):
fonte
Como o @emilio disse, esse script está OK, mas não aceita argumentos. Aqui o script modificado para ser compatível com argumentos:
fonte
Se você não pode confiar na instalação do Powershell, pode usar esta solução no StackOverflow:
elevar automaticamente com o UAC usando o arquivo em lotes
Não requer nada para ser instalado e sai da caixa. Se você precisar preservar os argumentos da linha de comando, considere esta atualização.
fonte
Você já tentou o
runas
comando?fonte