저는 Sysinternals의 PsTools를 좋아하고 자주 활용하는 편입니다. 특히 요즘은 PsExec를 애용하고 있는데요, PsTools는 최초 실행시 라이선스 동의 창이 뜹니다. 뭐 이정도야 Agree 버튼을 한번 눌러 주는 일이 그리 힘든 것도 아닌데 뭐... 라고 생각하시겠지만, 문제는 일괄 배치파일에 넣어서 대량으로 실행해야 할 경우 발생합니다.

CLI 기반의 툴은 일반적으로 뒤에 /? 붙이면 옵션을 설명해 주는데, PsTools는 EULA 창을 스킵하는 옵션을 설명해놓지 않았습니다. 그런데 두둥... 위 그림을 보면 창 제목 바로 아래에 깨알같이(?) 설명되어 있습니다.

You can also use the /accepteula command-line switch to accept the EULA.

따라서 PsTools 실행시 뒤에 /accepteula 옵션을 붙여주시면 문제는 해결됩니다.

제가 이 글을 작성하기 시작할 때는 위 깨알같은 문장을 발견하지 못했습니다. 그래서 어떻게 처리했냐 하면... 최초 실행시 뜨는 EULA 창에 동의 버튼을 누르면 그 다음부터 뜨지 않는다는 점에 착안하여, 레지스트리 비교를 해보니 레지스트리에 키가 생성되더군요. 예를 들어 PsExec의 경우 아래와 같은 키가 생성됩니다.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Sysinternals\PsExec]
"EulaAccepted"=dword:00000001


따라서 아래와 같이 REG 명령어로 미리 EULA 동의를 처리하도록 했습니다.

REG ADD "HKCU\Software\Sysinternals\PsExec" /v EulaAccepted /t REG_DWORD /d 1 /f

물론 먼저 설명드린 /accepteula 옵션을 붙여줘도 동일한 효과가 발생하므로, /accepteula 옵션을 사용하는 편이 더 낫겠습니다.

이상입니다.