Como você tentou várias tentativas diferentes, na verdade existem vários problemas apontados em sua postagem que podem exigir uma resposta. Você não deixou claro como está executando esses comandos remotamente. Nenhum dos comandos que você mostrou realmente faz alguma coisa em um computador remoto. Todos eles são executados no computador local. No entanto, você mencionou tentar o PSExec.
Eu também não estou ciente de qualquer situação em que o UAC interfira na execução de comandos remotos. Portanto, só posso presumir que você esteja executando os comandos em seu computador local e experimentando prompts do UAC. Mas, você está fazendo isso na preparação para executar os comandos remotamente.
Por isso, vou tentar dar-lhe um suporte básico de execução remota que o irá colocar no caminho certo. Toda execução remota de comandos requer a abertura de certas portas de firewall. Então, tenha isso em mente enquanto você avança.
O Powershell já possui um mecanismo de execução remota de comandos / scripts.
- Você pode usar a opção
-ComputerName
para determinados comandos para executá-los em um sistema remoto. - Você pode iniciar uma sessão remota interativa com
Enter-PSSession <ComputerName>
eExit-PSSession
. - Você pode usar o comando
Invoke-Command -ComputerName <ComputerName>
para executar qualquer script ou comando remotamente.
Nenhum desses métodos está sujeito à restrição da Política de Execução, a menos que você inicie uma sessão interativa do Powershell e prossiga para tentar executar um script.
Esses comandos serão executados no computador remoto usando sua conta de usuário atual conectada. Se você não for um administrador na máquina remota, precisará fornecer adicionalmente um objeto PSCredential
que seja um administrador usando a opção -Credential
.
Como alternativa, você também pode usar o PSExec para executar comandos ou executáveis remotos. É preferível executá-los no contexto SYSTEM para evitar QUAISQUER problemas de permissão, mas eles geralmente são bem-sucedidos se você simplesmente executá-los no contexto de um administrador na máquina remota.
- Ignorar o aviso de EULA com a opção
-accepteula
- Executar no contexto SYSTEM com o
-s
switch - Às vezes, a utilização da opção
-i
(interativa) é necessária para executar determinados EXEcutables de terceiros corretamente.
Comandos executados via PSExec não estão sujeitos a restrições do UAC. No entanto, se você tentar executar o Powershell remotamente por meio do PSExec, que por sua vez tenta executar um script, a política de execução ficará no caminho, a menos que você também utilize a opção -ExecutionPolicy Bypass
. No entanto, usar o PSExec para executar o Powershell remotamente, que por sua vez executa um script, é uma maneira muito longa de realizar o que você precisa fazer.
Novamente, o PSExec estabelecerá uma conexão com o computador remoto usando seu contexto de usuário conectado no momento. Se você não for um administrador no computador remoto, precisará especificar um nome de usuário / senha que esteja usando as opções -u
e -p
.
Uma última coisa, você deve sempre lembrar onde o comando está sendo executado (local ou remotamente) e perceber que qualquer recurso que você tente acessar está sendo feito da perspectiva de onde o comando está sendo executado. Por exemplo, se eu executar o comando C:\MyBatch.bat
em um computador remoto, então C:\MyBatch.bat
deve existir no computador remoto.