Hosts 파일의 변경 여부 확인하기(PowerShell의 Select-String 사용)


C:\Windows\System32\drivers\etc\hosts 이 파일을 컴퓨터 이름에 대한 IP 주소를 알려주는 역할을 하는 파일이다. 그런데 이 파일이 엉뚱하게 사용되면 큰 일이 발생하게 된다. 즉, http://www.shinhan.com에 대한 ip address가 잘못 설정되어 있으면 엉뚱한 웹싸이트에 들어가서 은행 거래를 하게 된다. 소위 Fishing site에 접속하게 되는 셈이다.

그래서 항상 이 파일의 수정 여부를 확인할 필요가 있다. 일일이 이 파일을 열어 보아서 확인할 수도 있지만 수십~수백대의 PC들을 어떻게 확인할 수 있을까? 이에 대한 해결책이 바로 PowerShell이다.

  • Get-Content C:\Windows\System32\drivers\etc\hosts
    (로컬 컴퓨터의 Hosts 파일의 내용을 확인한다)
  • Get-Content C:\Windows\System32\drivers\etc\hosts | Select-String -Pattern “#” –NotMatch
    (# 표시가 없는 부분만 확인한다. 즉, 이 파일의 수정된 부분만 확인한다. 여기에 결과가 나오면 hosts 파일이 수정되었다는 뜻이다)
  • Invoke-Command -ComputerName (get-content c:\computers.txt) {Get-Content C:\Windows\System32\drivers\etc\hosts | Select-String -Pattern “#” -NotMatch} | ft PSComputerName, Line -auto
    (많은 PC들(get-content c:\computers.txt)의 hosts 파일 수정 여부를 확인하는 것이다. 여기서 결과가 나오면 많은 PC들의 hosts 파일이 변경되었다는 것이므로 문제가 된다. 그래서 이 파일들을 새것으로 교체해야 한다)

This slideshow requires JavaScript.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s