윈도우에서도 유닉스처럼 명령행으로 원격 접속하는 방법
예전에도 이에 대해서 잠깐 소개를 드린 적이 있었는데요.
Using psExec to Open a Remote Command Window ; http://blogs.technet.com/b/systemcenteressentials/archive/2009/09/01/using-psexec-to-open-a-remote-command-window.aspx
그렇습니다. psexec.exe 를 사용하여 유닉스처럼 명령행으로 원격 접속하는 것이 가능합니다.
PsExec ; http://technet.microsoft.com/en-us/sysinternals/bb897553
방법은 다음과 같이 간단합니다.
psexec \\[주소] cmd
사실 알고만 있다가, 과연 이것을 써먹을 일이 있을까 생각하고 있었는데… 최근에 우연치 않게 기회가 되었습니다. 보통, 문제가 발생하면 윈도우에서는 “RDP” 접속을 하게 되는데요. 이렇게 되면 “클라이언트 운영체제”의 경우에는 그 컴퓨터의 주인이 아무것도 못하는 상태로 되어 비효율적인 업무 시간 낭비로 이어집니다.
그래서, psexec 를 이용하여 해당 컴퓨터에 접속하는 방법을 썼고, 이렇게 되니 그 컴퓨터의 주인도 업무를 계속 볼 수 있었고, 저도 동시에 문제 해결을 위한 테스트를 그 컴퓨터에서 진행할 수 있었습니다.
하다 보니, 약간의 팁이랄 만한 것이 생겼는데요.
우선, 테스트를 위해 이거 저거 C# 프로그램을 만들어서 대상 컴퓨터에서 실행해 봐야 할 필요가 생겼는데, 이를 위해 ‘공유 폴더’를 임시로 생성해 놓아야만 했습니다. 방법은 “net share” 명령으로 간단하게 해결했는데요. 예를 들어 “c:\temp\shareTest” 폴더를 공유하고 싶다면 다음과 같이 psexec 로 실행된 cmd 창에서 실행해 주면 됩니다.
net share shareTest=c:\temp\shareTest
물론, 위와 같이 할 필요없이 그 주인에게 공유해달라고 말하거나 직접 그 자리로 가서 처리하면 되겠지만… 차라리 제가 앉은 자리에서 그냥 처리하는 것이 속편할 때가 있습니다. ^^
그리고, 사용 후에는 반드시 지워주어야 겠지요. ^^
net share shareTest /DELETE
아울러, 방화벽을 임시로 해제하는 것이 필요하기도 했습니다. 윈도우 7 이었으므로 다음과 같이 명령어를 실행해 주면 됩니다.
[방화벽 해제] netsh advfirewall set allprofiles state off [방화벽 설정] netsh advfirewall set allprofiles state on
어떠세요? ^^ 멋지죠.
참고로, psexec.exe 로 생성된 원격 쉘(?)에서 주의할 것이 있습니다. Ctrl + C 키를 누르면 먹통이 된다는 것! 그럴 때에는 현재의 cmd 창을 닫고 다시 열어서 psexec 로 연결해 주어야 합니다. 습관적으로 Ctrl + C 키를 누르게 되어 이 점이 여간 불편한 것이 아니더군요. ^^
또 한가지 불편한 점은, 일반 cmd.exe 에서는 ‘명령어 자동 채움’ 기능이 있는데 psexec 로 만들어진 cmd.exe 에서는 그런 기능이 없습니다. 그래도… 뭐… 한 사람이 아예 일을 못하는 것과 비교하면 이 정도 생산성 저하는 감수할 만한 가치가 있습니다. ^^
참고로, 다음의 글도 psexec.exe 의 기능과 관련이 있으니 한번쯤 봐두시는 것도 좋겠습니다. ^^
SYSTEM 권한으로 UI 프로그램 실행하는 방법 ; http://www.sysnet.pe.kr/2/1/1153 DOS batch - 동기 방식으로 원격 서비스 제어 ; http://www.sysnet.pe.kr/2/0/989