Eu lutei com isso no passado, e isso não pode ser feito. A única maneira é criar uma tarefa agendada que você execute a partir da sua sessão cmd.
Eu tenho conectado remotamente a um computador com Windows 7 via psexec e estou executando um prompt de comando remoto no computador com Windows 7. O comando que estou tentando executar requer que ele seja executado em um prompt de comando elevado para que ele funcione.
Como faço para chegar a um prompt de comando elevado se meu ponto de partida é um prompt de comando que não é elevado e não tenho acesso à GUI?
Parece difícil de fazer depois de se conectar. A Microsoft tem um Powertoy para instalar para forçar a elevação em um comando, mas como o prompt precisa ser exibido e aceito, não entendo como isso funcionaria no seu cenário (acho que nem um pouco).
elevate cmd.exe
No entanto, usar o comando de voz Powershell, em vez disso, provavelmente resolveria isso, pois ele se elevará ao conectar remotamente o afaik. Eu acho que o psexec deve ser capaz de implementar esse tipo de suporte também - mas você teria que solicitar um contexto elevado na conexão - não depois.
Claro, o truque de tarefas agendadas parece funcionar ... ^^
O PSExec tem opções para especificar um nome de usuário e senha, o que é necessário ao executar uma tarefa em um computador remoto que requer acesso a recursos de rede (caso contrário, o PSExec é limitado a recursos locais). Conectar-se à conta apropriada deve fornecer o acesso necessário: tente psexec -u < nome de usuário > -p
Além disso, o comando runas executa um comando (até cmd) com os privilégios especificados. Eu não sei o quão bem ele joga com o PSExec devido ao problema mencionado acima, mas use a seguinte sintaxe para elevar os privilégios:
runas /user:<domain>\<username> cmd
Você será solicitado a fornecer uma senha; se digitado corretamente, você estará executando em um novo prompt de comando com os privilégios da conta especificada. Os privilégios podem ser limitados pelos privilégios com que o PSExec está sendo executado.
No vista você pode desabilitar o UAC do cmdline usando um script. Usamos isso para desabilitar o UAC, reinicializar o computador, executar nossos scripts / instalações e, em seguida, habilitar o UAC novamente antes de dar ao computador uma última reinicialização.
Aposto que o Win7 tem uma maneira semelhante de fazer isso, embora eu ache que o comando mudou. Mas são apenas configurações do registro, portanto, seria bastante fácil roteirá-las diretamente no registro.
Desde que o seu script reconheça as informações, isso não deve ser muito difícil de implementar ...
-Trond