첨부파일을 서버로 보내서 처리를 해야하는데
서버로 보내기전에 바이러스검사를 실시해야한다는 과제가 주어졌다.
이번에 사용해야하는 프로그램은 Symantec Endpoint Protection
요놈을 첨부파일을 대상으로 바이러스 체크를 실시해서
문제가 없을 경우에만 해당파일을 첨부해서 후속처리를 해야한다.
- C:\Program Files\Symantec\Symantec Endpoint Protection\Doscan.exe – 32bit OS
- C:\Program Files (x86)\Symantec\Symantec Endpoint Protection\Doscan.exe – 64bit OS
이것을 이용해서 스캔을 실시할수있다고 한다.
(*필자가 일본에 거주하고있어서 간혹 일어가 나오는점 양해바랍니다.)
Doscan.exe /cmdlinescan [/LOGFILE="<로그파일의 경로와 파일명>"] [/SCANALLDRIVES]
옵션 | 설명 |
/cmdlinescan | 액티브스캔을 실행한다. |
/logfile="<로그파일의 경로와 파일명>" | 로그파일을 작성한 장소와 파일명입니다. 지정한 파일명의 파일이 존재하는 경우는 덮어씁니다. |
/scanalldrives | 이 옵션은 /cmdlinescan 옵션과 연동되어 사용하면, 디폴트 액티브스캔에 더해져서 디스크전체 스캔을 실시합니다. |
[ SEP 11.0 RU6 이후버젼 ]
옵션 | 설명 |
/scanname "<스캔명>" | 설정된 스캔 중에서 지정한 검색 이름 검색을 수행합니다. |
/scandrive "<드라이브리스트>" | 지정한 드라이브에 대해 기본 활성 검사를 수행합니다. 드라이브 목록의 예 : "A, C-E, V-S, Z" |
/scandir "<디렉토리>" | 지정한 디렉토리에 대해 기본 활성 검사를 수행합니다. 이 옵션은 반복 할 수 있습니다. |
/scanfile "<파일명>" | 지정한 파일 이름에 대해 기본 활성 검사를 수행합니다. 이 옵션은 반복마다 수 있습니다. |
/list | 콘솔 창에 설정된 스캔 목록을 표시합니다. |
/cmdlinescan | 기본 활성 검사를 수행합니다. |
/scanalldrives | 이 옵션은 / cmdlinescan 옵션과 함께 사용하면 기본 활성 검사 이외에 모든 디스크 드라이브를 검색합니다. |
/startupscans | 이 옵션은 / cmdlinescan 옵션과 함께 사용하면 부팅시 기본 활성 검사를 수행합니다. |
일단 사용법을 대충 알았으니
바이러스 검사를 한번 실시해보자.
프로젝트를 하나 생성해서, 버튼을 하나 배치한다.
그리고 디자이너에서 버튼을 더블클릭해서 클릭이벤트를 생성한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | private void btnJustOne_Click(object sender, EventArgs e) { Process p = new Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardInput = false; p.StartInfo.CreateNoWindow = true; p.StartInfo.Arguments = @"/C C:\DoScan.exe.lnk /scanfile D:\VirusTest\b.pdf"; p.Start(); p.WaitForExit(); } | cs |
코드를 이렇게 짜서 실행을 하면,
아래와같은 Manual Scan started on 윈도우가 표시된다.
1개의 파일을 스캔완료 했습니다~
문제가 있는경우는 Risks found 의 카운터가 0이 아닌 다른값이 셋팅된다고 한다.
※문제가 있는경우를 테스트하기 위해서 문제가 있을수있는 파일을 일부러 집어넣을 용기가 나에게는 생기지않으므로.. 생략하겠다..
p.StartInfo.Arguments = @"/C C:\DoScan.exe.lnk D:\VirusTest\b.pdf"; |
DoScan.exe 는 상단에 설명했듯이,
C:\Program Files\Symantec\Symantec Endpoint Protection\
아래에 위치하지만, 설명을 위해서 lnk(쇼트컷)를 생성해서 간략화 하였으니, 혼돈이 없도록 주의하자.
/scanfile 를 넣으면 스캔시작~ 완료의 symantec 윈도우가 표시되지않고, 비하인드에서 실행된다.
p.StartInfo.Arguments = @"/C C:\DoScan.exe.lnk /scanfile D:\VirusTest\b.pdf"; |
<스캔실시 로그를보면 스캔은 실행되고있다.>
이후는 위에 설명해둔 다양한 옵션을 써가면서 프로그램을 만들어보면 되겠다.
다음편에서는 실행한 로그를 바탕으로 스캔결과를 제어하는 방법을 다뤄보도록 하겠다.
'C#' 카테고리의 다른 글
[질답] C# 서버에 파일 존재 유무확인방법 (0) | 2018.08.27 |
---|---|
[질답] C# 서버 파일 업로드 WebClient (0) | 2018.08.27 |
콘솔프로그램으로 리스트출력 (0) | 2018.05.28 |
이전 폼 호출하는 방법 (0) | 2018.02.07 |
C# 리스트박스 항목 가져오는방법 (0) | 2018.01.22 |