netsh - 네트워크 설정을 위한 쉘 명령어임.
다단 컨텍스트 방식으로 사용가능.
 
ex)
1. cmd 창을 띄운 상태에서 netsh 라고 침.
2. 그럼 쉘이 netsh> 로 바뀜.
3. 이 상태에서 help 를 치면 현재 단계의 컨텍스트에서 선택할 수 있는 명령어들이 나열 됨.
4. firewall 을 치고 엔터를 누르면 쉘이 netsh firewall> 로 바뀜. (방화벽 설정이 가능한 컨텍스트)
5. 이런식으로 단계별 명령이 가능한 방식. 물론 한줄로도 가능함.
 
ex1) 방화벽의 예외에 C:\Download\Firewall_Test.exe 라는 프로그램을 등록시키는 예제.
각 단계별 컨텍스트를 help 를 통해서 확인가능. XP 기준으로 한글로 전부 설명이 나옴.
주의사항 - 경로명 등은 띄워쓰기를 포함할 경우가 많으므로 처음부터 " " 로 감싸줄 것.
 
netsh firewall set allowedprogram "C:\Download\Firewall_Test.exe" "Firewall_Test.exe" ENABLE
 
 
 
 
 
 
 
 
사용예)
자기자신의 프로세스를 OS의 방화벽 예외 프로그램에 등록.
아래와 같은 형태의 함수를 만들어서 호출하면 끝.
결국 필요한 netsh 명령어를 한줄로 늘여 실행시키는 형태.
 
 
procedure 방화벽_예외등록;
var cmd: String;
begin
  cmd:='netsh firewall set allowedprogram "'+
       Application.ExeName+'" "'+
       ExtractFileName(Application.ExeName)+'" ENABLE';
  WinExec(PChar(cmd), SW_HIDE);
end;






Posted by bloodguy
,