Psexec 도구를 사용하여 원격 데스크톱에 연결하면 Powershell 및 Cmd에서는 작동하지만 PowerShell ISE에서는 작동하지 않습니다.

Psexec 도구를 사용하여 원격 데스크톱에 연결하면 Powershell 및 Cmd에서는 작동하지만 PowerShell ISE에서는 작동하지 않습니다.

이 명령을 사용하여 psexec \\ip_address -u user_name -p psw cmd 명령을 실행하기 위해 원격 데스크톱에 연결합니다. Power Shell 또는 명령 프롬프트에서 이 명령을 사용할 때는 작동하지만 Power Shell ISE에서는 작동하지 않습니다. ISE에서는 오류가 발생하지 않지만 일단 실행이 시작되면 중지할 때까지 끝나지 않습니다.

실행이 시작되면 끝나지 않고 원격 데스크톱에 연결되지 않으며 오류가 발생하지 않지만 PowerShell 또는 CMD에서는 완벽하게 작동합니다.

답변1

첫째, 코드 스크린샷은 실제로 우리에게 유용하지 않습니다. 그것은 사람들이 당신이 한 일을 다시 입력하도록 강요하는데, 대부분은 그것을 원하지 않습니다.

psexec는 대화형 명령 도구이기 때문입니다. ISE에서 사용할 수 있지만 필요한 모든 매개변수를 전달해야 합니다.

이것은 psexec 제한이 아닙니다. 예를 들어 nslookup을 시도하고 동일한 문제를 확인하십시오. cmd/콘솔에서와 같이 ISE 콘솔 또는 IDE 스크립트 창에서는 많은 대화형 DOS/CMD 명령을 사용할 수 없습니다. 그것은 디자인이 아닙니다.

이는 ISE 릴리스 이후 문서화되었습니다.

ISE의 콘솔 애플리케이션(비) 지원

ISE가 ftp 및 netsh와 같은 앱의 경우 알아야 할 콘솔 애플리케이션과 상호 작용하는 방식에는 몇 가지 제한 사항이 있습니다.

우선, ISE는 사용자 입력이 필요하지 않은 콘솔 앱을 제대로 실행합니다. 예를 들어, “ping www.microsoft.com” 및 “cmd /c dir /s”

파이프는 ISE에서도 잘 작동합니다. 예를 들어 PS C:\Users\ibrar> “show mode” | netsh netsh>온라인

사용자 개입이 필요하지 않은 스크립트 자동화는 괜찮습니다.

그러나 입력이 필요한 "cmd /k"를 실행하면 ISE가 중단되고 Ctrl-Break를 사용하거나 중지 버튼을 눌러 파이프라인을 중지해야 합니다.

필요에 따라 콘솔 호스트로 쉘아웃하여 이러한 작업을 수행할 수 있습니다.시작 프로세스 cmdlet.또는 다른 시작 방법 중 하나입니다.

보다:

PowerShell에서 실행 파일 실행 | IT 전문가

  1. 통화 교환원 및 Technet

이유: 문자열을 SINGLE 명령으로 처리하는 데 사용됩니다. 공간을 처리하는 데 유용합니다.

PowerShell V2.0에서는 7z.exe(7-Zip.exe) 또는 숫자로 시작하는 다른 명령을 실행하는 경우 명령 호출 연산자 &를 사용해야 합니다.

PowerShell V3.0 파서가 이제 더 똑똑해졌습니다. 이 경우 &가 더 이상 필요하지 않습니다.

세부 정보: 명령, 스크립트 또는 스크립트 블록을 실행합니다. "호출 연산자"라고도 알려진 호출 연산자를 사용하면 변수에 저장되고 문자열로 표시되는 명령을 실행할 수 있습니다. 호출 연산자는 명령을 구문 분석하지 않으므로 명령 매개변수를 해석할 수 없습니다.

Example: 

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

그럼 당신의 psexec..

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

관련 정보