73
[Linux] 윈도우즈에 원격 커맨드를 먹이고 싶을 때...
Admin
여러가지 방법이 있겠으나, 우선 조건은 윈도우즈에 새로운 프로그램(ssh Server등 각종 쉘서버)을 설치하지 않는다는 조건을 먼저 달자.(툴설치 최소화하고 오로지 윈도우 기본기능에서 명령어만으로 접근할 수 있게...)
아래와 같은 방법이 있음.
1. 자바에서 바로 프로그래밍으로 연결하는 법(현재로선 거의 유일함)
WindowsRemoteProcessLauncher
2. 유틸을 활용하여 직접 커맨드하는 법(자바로 활용하려면 Runtime.getRuntime().exec 사용)
1) rdesktop: -s옵션을 활용
2) winexe:
다운받아서 컴파일부터 하고...
tar -xvf winexe-X.XX.tar.gz
cd winexe-X.XX/source4/
./autogen.sh
./configure
make basics bin/winexe(for X32 bit)
make “CPP=gcc -E -ffreestanding” basics bin/winexe (for X64 bit)
중요)
* 윈도우즈의 139, 445포트를 열어줘야한다.
* 윈도우즈의 레지스트리의 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System에서 'LocalAccountTokenFilterPolicy'이름으로 32bit-DWORD를 생성하여 값을 1로 해야한다.(C$를 공유하는 역할 이것 안하면 엑세스 불가에러 발생)
사용예) ./winexe -U administrator //192.168.0.2 "cmd.exe /K dir&exit"
3) net: net rpc command를 활용
net rpc shutdown -s -f -I 192.168.0.2 -U userid%password
net rpc service stop winexesvc -I 192.168.0.2 -U administrator
by createall in http://hwangji.kr
Re
winexe 실행 시 winexesvc 서비스 설치 실패 오류가 발생된다면...
Admin
잘되다가 황당하게도 이런 에러가 발생되는 경우가 있다.(windows7)
아래와 같이 서비스를 제거하고 다시 시도해보면 잘 됨.
sc delete winexesvc
자동실행에 한치의 실수도 용납 못하는 작업을 위해서는 winexe는 좋은 대안이 되지 못함T_T
편법으로 net rpc service 명령을 미리 사용하여 서비스를 stop했다가 start한 후 winexe를 사용하면 됨
dos명령 또는 자체 프로그램명령을 활용할 일이 없다면 net명령으로 처리하는 것을 추천