[참고 사이트] http://efreedom.com/Question/1-7112259/Execute-Windows-Commands-Using-Java-Change-Network-Settings

 

자바를 사용 하 여 창 명령을 실행할 수 있을 싶어요. 문제의 명령 netsh는입니다. 이 설정/리셋 내 IP 주소를 날 수 있게 된다.

참조:

참고 내가 배치 파일을 실행 하 고 싶지 않아 .

참조:

배치 파일을 사용 하는 대신 직접 그러한 명령을 실행 하 고 싶습니다. 이것은 가능?

감사.


나중에 참조할-구현된 솔루션

public class JavaRunCommand {
   
private static final String CMD =
       
"netsh int ip set address name = \"Local Area Connection\" source = static addr = 192.168.222.3 mask = 255.255.255.0";
   
public static void main(String args[]) {

       
try {
           
// Run "netsh" Windows command
           
Process process = Runtime.getRuntime().exec(CMD);

           
// Get input streams
           
BufferedReader stdInput = new BufferedReader(new InputStreamReader(process.getInputStream()));
           
BufferedReader stdError = new BufferedReader(new InputStreamReader(process.getErrorStream()));

           
// Read command standard output
           
String s;
           
System.out.println("Standard output: ");
           
while ((s = stdInput.readLine()) != null) {
               
System.out.println(s);
           
}

           
// Read command errors
           
System.out.println("Standard error: ");
           
while ((s = stdError.readLine()) != null) {
               
System.out.println(s);
           
}
       
} catch (Exception e) {
            e
.printStackTrace(System.err);
       
}
   
}
}

"/C" 는 관리자 권한 실행 옵션

"/S" 는 하위 파일, 폴더 포함 삭제옵션

"/q" 는 묻지않고 삭제 옵션

 

아마 누구나 당면하는 첫번째 win8에서의 난관이 아닌가 생각해봅니다

 

win7에서처럼 관리자 권한 tip을 적용해도 완전히 uac가 없어지지 않습니다.

(아니, 완전히 없앨 수는 있습니다. 그러면 win8의 메트로 앱을 사용하지 못 합니다 ;;)

 

이것때문에 관리자계정으로 로그인도 해봤고 그런 분들도 많이 계십니다.

이러면 역시 메트로 앱을 사용하지 못 하죠. 여기서 진퇴양난이죠

 

도대체 이 난국을 어떻게 타개할 것인가? MS는 도대체 왜 이 따위로 만들었나? 투덜투덜.궁시렁궁시렁...

(보안 때문이라고 합니다. 메트로 앱 보안..)

 

여기서 제가 여기 저기서 주워 얻은 tip들을 종합해봅니다.

 

일단, 일반 사용자를 이용하세요. 관리자 계정으로는 답이 없습니다.

관리자 계정 tip은 일반사용자로 되어버리는 답이죠.

 

이제 본격적으로 해결책입니다.

 

@echo  *   UAC 알림만 끄기(관리자권한이 필요할때 바로 승인됨)+인터넷 알림 사용안함
@pause > nul & cls & echo.

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "ConsentPromptBehaviorAdmin" /t REG_DWORD /d 0 /f

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "PromptOnSecureDesktop" /t REG_DWORD /d 0 /f


:: BAT, CMD 파일 관리자 권한으로 실행
reg add "HKLM\SOFTWARE\Classes\batfile\shell" /ve /d "runas" /f
reg add "HKLM\SOFTWARE\Classes\cmdfile\shell" /ve /d "runas" /f


:: 인터넷 옵션 - 보안 - 인터넷 영역 - 보호모드 해제
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3" /v "2500" /t REG_DWORD /d 3 /f

:: 보호모드 알림 사용 안함
reg add "HKCU\Software\Microsoft\Internet Explorer\Main" /v "NoProtectedModeBanner" /t REG_DWORD /d 1 /f

 ------------------------- 일단 여기까지만 저장하시고 사용하세요 ------------------

 

 

이 정도만 해주시면 대체로 관리자권한으로 실행됩니다

 

일부분 안 되는 것만 직접 지정을 해주면 됩니다.

 

reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v exe파일경로 /d "~ RUNASADMIN" /f

 

이렇게 특별한 것만 추가해주시면 되겠습니다.

항상 관리자권한으로  실행을 체크한 것과 같은 reg입니다.

이건 재부팅해야 적용되더군요. 나머지 위의 것들은 바로 적용되었던 걸로 기억합니다.

 

 

시작때 실행하는 것이 안 되는 문제가 남았군요. 흠;

 

SCHTASKS /Create  /f  /tn 스케줄이름  /sc ONLOGON /tr 실행경로 /rL HIGHEST

 

 

이걸 전부 확장자 bat파일로 저장하셔서 다음 윈도 설치후에 클릭만 해주시면 그대로 사용하실 수 있습니다.

 

지금 당장은 관리자권한으로 cmd창을 여셔서 붙여넣기 하시면 됩니다 

 

[참고] http://windowsforum.kr/3861316

 

+ Recent posts