2017-09-26 19 views
2

사용자 지정 대상 컴퓨터에서 .exe 실행을 원격으로 시작하기 위해 winrs 호출이 포함 된 스크립트가 있습니다.winrs 명령 후 일괄 처리 스크립트 실행이 중지됩니다.

나는 다음과 같은 기능을 원하는 :

  • 시작 스크립트
  • winrs 대상 PC에 대상 PC의 이름을
  • 프롬프트 사용자 한 .exe을 실행하고이되고 있다는 스크립트를 실행 사용자에게 끝난.
  • winrs의 실행을 중지하고 완료된 스크립트를 실행 한 사용자에게 알려줍니다.
  • 종료.
  • 스크립트가 실행 된 컴퓨터의 모든 출력을 원하고 대상 컴퓨터에서 어떤 활동 표시도 원하지 않습니다. 다음과 같이

내가 가진 코드는 다음과 같습니다

@echo off 

echo ------------------------------------------------------- 
echo PLEASE ENTER PC NAME OF DISCONNECTED MACHINE 
echo ------------------------------------------------------- 
SET /p pcToReconnect= 
echo Attempting to contact Agent. 

call winrs -r:%pcToReconnect% "C:\Path\To The\exe that I want\toExecute.exe" >> logfile.txt 2>>&1 

echo Agent reconnected. Please allow ~5mins for your management console to update. 

winrs이 호출 할 때까지 코드가 실행하고 그것을 가리키고 대상 컴퓨터에서 .EXE를 실행 않지만, 그 다음 보인다 원격 쉘 이 후에 아무 것도하지 않으면 열리게됩니다.

이 시점에서 "쉘 종료 (y/n)"가 로그 파일에 저장되지만 (cmd 프롬프트의 출력 없음) "y"를 입력하고 입력하면이 시점에서 ctrl + 원격 쉘이 종료되고 "일괄 작업 종료 (Y/N)"가 cmd 프롬프트에 표시되지만 마지막 에코 문은 실행되지 않습니다.

.exe가 실행 된 후 원격 셸이 자동으로 닫히도록 설정하고 실행 한 사람의 프롬프트에서 스크립트가 완료되었다는 확인 메시지를 표시 할 수 있습니까?

모두에게 감사드립니다!

답변

0

call을 사용 중입니다. 새로운 cmd.exe 창을 실행하고 해당 새 창에서 winrs를 실행하고 종료합니다. 제거하면 제대로 작동합니다. 배치를 두 번 클릭하여 실행하는 경우에 대비하여 마지막에 일시 중지를 추가했습니다.

는 프로그램이 끝날 때까지 배치가 기다리고 있음을 보인다 일부 분석 후

편집

을 @echo, 그래서 그것을 호출해야하는 단지 시작에 호출 할 수있을 것입니다 원래의 프롬프트로 되돌아갑니다.

start winrs -r:%pcToReconnect% "C:\Path\To The\exe that I want\toExecute.exe" >> logfile.txt 2>>&1 
+0

이 동작은 완전히 동일합니다. 전화가 지정된 명령을 호출 한 후 스크립트가 자체적으로 반환되었는지 확인했다고 생각 했습니까? 일시 중지는 감사하지만 두 번 클릭하여 실행하는 데 유용한 팁입니다. –

+0

@CiaranMcKenzie 어떤 명령을 실행하고 있습니까? 그것은 명령이 실행 된 후에 종료되어야합니다. 명령 자체를 테스트 할 수 있으므로 명령을 ping 명령과 같은 것으로 바꾸십시오. 그리고 그것이 반환되는지보십시오? –

+0

.exe 파일을 원격으로 실행하여 원격 cmd에 경로/이름을 입력하고 싶습니다. 여기에 두 개의 PC가 있으므로 코드 또는 코드를 실행할 때.exe는 해당 컴퓨터에서 관련 서비스가 시작되고 로그 파일에 오류가없는 것을 볼 수 있으므로 대상 컴퓨터에서 원격으로 실행됩니다. 따라서 대상의 백그라운드에서 해당 .exe를 실행하는 실제 최종 목표가 달성됩니다. 마치 스크립트가 멈춘 것처럼 원격 시스템에서 .exe가 실행되고 오류/성공이 로그 파일에 기록 된 다음 프롬프트에 나타나고 마지막 에코가 발생하지 않습니다. –