2014-11-12 11 views
0

네트워크에서 특정 IP로 6 패킷을 ping하기를 기다리는 배치 파일을 만들려고합니다. 기계가 6 에코 요청을 받으면 자동으로 종료해야합니다. 이 배치 파일을 시작할 때 서비스로 실행하도록하겠다.이 부분에 대해서는 도움이 필요 없다. 누군가가 청취 부분을 도와 줄 수 있습니까?배치가 ping을 종료하는 것을 듣습니다.

+0

내 머리 꼭대기에서 몇 가지 질문이 있습니다. 패킷 도착까지 걸리는 시간이 중요합니까? 보안은 얼마나 중요합니까 (IP는 위조 될 수 있습니까)? 핑 (ping)과 더 안전한 방법이 아닌 이유는 무엇입니까? – Burkhard

+0

약 10 초. 나는 보안에 신경 쓰지 않는다. 난 그냥 6 에코 요청으로 그 기계를 끄고 싶습니다. – user3785969

+0

AFAIK, CMD는 설명대로 네트워크 스택에 액세스 할 수있는 방법이 없습니다. [PowerShell 4.0] (http://technet.microsoft.com/en-us/library/dn268520.aspx)에는있을 수 있지만 사소한 것은 아닙니다. – mojo

답변

0

대안으로 "듣기"스크립트가 끊임없이 찾는 특별한 장소 (심지어 특수 컨텐츠 포함)에 파일을 만들지 말고 바로 파일을 삭제하고 컴퓨터를 종료하십시오.

적어도 일괄 처리 할 수 ​​있습니다.

SETLOCAL 
SET "HANDSHAKE=%WINDIR%\System32\SPECIAL\SHUTDOWN_NOW" 
:LOOP 
IF EXIST "%HANDSHAKE%" (
    DEL /Q "%HANDSHAKE%" 
    shutdown -s -f -t 0 
) 
PowerShell -NoProfile -Command "Sleep(60);" 
GOTO :LOOP 

Windows에는 기본 절전 명령이 없습니다. 다른 사람들이 생각한 다른 전략은 PowerShell보다 오버 헤드가 적습니다. (자고 있기 때문에 오버 헤드는별로 중요하지 않습니다.) 로컬 호스트 어댑터 시간 (예 : ping -n 60 127.0.0.1)을 Ping하는 것입니다.

물론 스크립트 전체가 PowerShell로 작성 될 수 있지만 ExecutionPolicy 및 기타 사항을 고려해야합니다.