A conexão à área de trabalho remota usando a ferramenta Psexec funciona com Powershell e Cmd, mas não funciona no PowerShell ISE

A conexão à área de trabalho remota usando a ferramenta Psexec funciona com Powershell e Cmd, mas não funciona no PowerShell ISE

Eu uso este comando psexec \\ip_address -u user_name -p psw cmd para conectar-me à área de trabalho remota para executar comandos, ele funciona quando você usa isso no Power shell ou no prompt de comando, mas não funciona no Power shell ISE. Não receberei nenhum erro no ISE, mas uma vez iniciada a execução, ela nunca termina até que você a interrompa.

Uma vez iniciada a execução, ela nunca termina e não se conecta à área de trabalho remota. Você também não receberá erros, mas funciona perfeitamente no PowerShell ou no CMD.

Responder1

Em primeiro lugar, capturas de tela de código realmente não são úteis para nós. Isso força as pessoas a redigitar o que você fez, o que a maioria não está disposta a fazer.

Porque psexec é uma ferramenta de comando interativa. Você pode usá-lo no ISE, mas precisa passar todos os parâmetros necessários.

Esta não é uma limitação do psexec, tente, digamos, nslookup e veja o mesmo problema. Você não pode usar muitos comandos DOS/CMD interativos no console ISE ou no painel de script IDE como faz no cmd/console. Esse não é o seu design.

Isso foi documentado desde o lançamento do ISE.

Suporte (não) para aplicativos de console no ISE

Existem algumas limitações sobre como o ISE interage com aplicativos de console que você precisa conhecer, para aplicativos como ftp e netsh.

Em primeiro lugar, o ISE executa aplicativos de console que não exigem entrada do usuário perfeitamente. Por exemplo, “ping www.microsoft.com” e “cmd /c dir /s”

A tubulação também funciona bem no ISE, por exemplo, PS C:\Users\ibrar> “show mode” | netsh netsh>online

A automação em scripts, que não requer intervenções do usuário, deve servir.

No entanto, se você executar “cmd /k” que requer entrada, o ISE ficará travado e você terá que interromper o pipeline, usando Ctrl-Break ou pressionando o botão parar.

Você pode pagar ao host do console conforme necessário para fazer essas coisas usando oCmdlet Iniciar-Processo.ou um dos outros métodos de início.

Ver:

Executando executáveis ​​no PowerShell | Profissional de TI

  1. A operadora de chamadas e Technet

Por quê: Usado para tratar uma string como um comando ÚNICO. Útil para lidar com espaços.

No PowerShell V2.0, se você estiver executando 7z.exe (7-Zip.exe) ou outro comando que comece com um número, será necessário usar o operador de invocação de comando &.

O analisador PowerShell V3.0 agora faz isso de maneira mais inteligente; nesse caso, você não precisa mais do & .

Detalhes: executa um comando, script ou bloco de script. O operador de chamada, também conhecido como “operador de invocação”, permite executar comandos armazenados em variáveis ​​e representados por strings. Como o operador de chamada não analisa o comando, ele não pode interpretar os parâmetros do comando

Example: 

& 'C:\Program Files\Windows Media Player\wmplayer.exe' "c:\videos\my home video.avi" /fullscreen

Então seu psexec ..

& 'C:\Tools\psexec.exe' "Your command arguments" /accepteula

informação relacionada