다음을 통해 공유


PsExec v2.43

Mark Russinovich 작성

게시일: 2023년 4월 11일

DownloadPsTools 다운로드(5MB)

소개

Telnet과 같은 유틸리티 및 Symantec의 PC Anywhere와 같은 원격 제어 프로그램을 사용하면 원격 시스템에서 프로그램을 실행할 수 있지만 설정이 까다로울 수 있으며 액세스하려는 원격 시스템에 클라이언트 소프트웨어를 설치해야 합니다. PsExec은 클라이언트 소프트웨어를 수동으로 설치하지 않고도 다른 시스템에서 프로세스를 실행할 수 있게 해주는 가벼운 텔넷 대체품으로, 콘솔 애플리케이션에 대한 완전한 상호 작용이 가능합니다. PsExec의 가장 강력한 용도에는 원격 시스템에서 대화형 명령 프롬프트 실행과 원격 시스템에 대한 정보를 표시할 수 없는 IpConfig와 같은 원격 활성화 도구가 포함됩니다.

참고: 일부 바이러스 백신 스캐너는 하나 이상의 도구가 "원격 관리자" 바이러스에 감염되었다고 보고합니다. PsTools에는 바이러스가 포함되어 있지 않지만 바이러스에 의해 사용되었기 때문에 바이러스 알림을 트리거합니다.

설치

PsExec을 실행 가능한 경로에 복사하기만 하면 됩니다. "psexec"를 입력하면 사용법 구문이 표시됩니다.

PsExec 사용

PsExec의 고급 사용법에 대한 Mark의 문서Windows IT Pro Magazine 2004년 7월호를 참조하세요.

사용법:

psexec [\\\\computer[,computer2[,...] | @file]][-u user [-p psswd]][-n s][-r servicename][-h][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>][-g n][-a n,n,...][-accepteula][-nobanner] cmd [arguments]
매개 변수 설명
-a 애플리케이션이 실행될 수 있는 별도의 프로세서는 쉼표로 구분합니다. 여기서 1은 가장 낮은 번호의 CPU입니다. 예를 들어 CPU 2와 CPU 4에서 애플리케이션을 실행하려면 "-a 2,4"를 입력합니다.
-c 실행을 위해 지정된 실행 파일을 원격 시스템에 복사합니다. 이 옵션을 생략하면 애플리케이션이 원격 시스템의 시스템 경로에 있어야 합니다.
-d 프로세스가 종료될 때까지 기다리지 마세요(비대화형).
-e 지정된 계정의 프로필을 로드하지 않습니다.
-f 파일이 원격 시스템에 이미 존재하는 경우에도 지정된 프로그램을 복사합니다.
-i 원격 시스템에서 지정된 세션의 데스크톱과 상호 작용하도록 프로그램을 실행합니다. 세션이 지정되지 않은 경우 프로세스는 콘솔 세션에서 실행됩니다. 이 플래그는 콘솔 애플리케이션을 대화식으로 실행하려고 할 때 필수입니다(리디렉션된 표준 IO 사용).
-h 대상 시스템이 Vista 이상인 경우 사용 가능한 경우 계정의 상승된 토큰으로 프로세스를 실행합니다.
-l 제한된 사용자로 프로세스를 실행합니다(관리자 그룹을 제거하고 사용자 그룹에 할당된 권한만 허용). Windows Vista에서 프로세스는 낮은 무결성으로 실행됩니다.
-n 원격 컴퓨터에 연결하는 시간 제한을 초 단위로 지정합니다.
-p 사용자 이름에 대한 선택적 암호를 지정합니다. 생략하면 숨겨진 암호를 입력하라는 메시지가 표시됩니다.
-r 만들거나 상호 작용할 원격 서비스의 이름을 지정합니다.
-s 시스템 계정에서 원격 프로세스를 실행하세요.
-u 원격 컴퓨터에 로그인하기 위한 선택적 사용자 이름을 지정합니다.
-v 지정된 파일의 버전 번호가 높거나 원격 시스템의 파일보다 최신인 경우에만 지정된 파일을 복사하세요.
-w 프로세스의 작업 디렉터리를 설정합니다(원격 컴퓨터 기준).
-x Winlogon 보안 데스크톱에 UI를 표시합니다(로컬 시스템만 해당).
-priority 다른 우선 순위에서 프로세스를 실행하려면 -low, -belownormal, -abovenormal, -high 또는 -realtime을 지정합니다. Vista에서 낮은 메모리 및 I/O 우선 순위로 실행하려면 -background를 사용하세요.
컴퓨터 원격 컴퓨터 또는 지정된 컴퓨터에서 애플리케이션을 실행하도록 PsExec에 지시합니다. 컴퓨터 이름을 생략하면 PsExec은 로컬 시스템에서 애플리케이션을 실행하고 와일드카드(\\*)를 지정하면 PsExec은 현재 도메인의 모든 컴퓨터에서 명령을 실행합니다.
@파일 PsExec은 파일에 나열된 각 컴퓨터에서 명령을 실행합니다.
cmd 실행할 애플리케이션의 이름입니다.
인수 전달할 인수(파일 경로는 대상 시스템의 절대 경로여야 함).
-accepteula 이 플래그는 라이선스 대화 상자의 표시를 억제합니다.
-노배너 이 플래그는 시작 배너 및 저작권 메시지를 억제합니다.

이름에 공백이 있는 애플리케이션은 인용 부호로 묶을 수 있습니다.

psexec \\marklap "c:\\long name app.exe"

입력은 Enter 키를 누를 때만 원격 시스템으로 전달됩니다. Ctrl-C를 입력하면 원격 프로세스가 종료됩니다.

사용자 이름을 생략하면 프로세스가 원격 시스템의 계정 컨텍스트에서 실행되지만 네트워크 리소스에 액세스할 수 없습니다(가장하므로). 원격 프로세스가 네트워크 리소스에 액세스해야 하거나 다른 계정에서 실행해야 하는 경우 Domain\User 구문에 유효한 사용자 이름을 지정하세요. 암호와 명령은 원격 시스템으로 전송되는 동안 암호화됩니다.

PsExec에서 반환된 오류 코드는 PsExec이 아니라 실행하는 애플리케이션에 따라 다릅니다.

예제

내가 쓴 이 기사는 PsExec 작동 방식을 설명하고 사용 방법에 대한 팁을 제공합니다.

다음 명령은 \\marklap에서 대화식 명령 프롬프트를 시작합니다.

psexec -i \\marklap cmd

이 명령은 /all 스위치를 사용하여 원격 시스템에서 IpConfig를 실행하고 결과 출력을 로컬로 표시합니다.

psexec -i \\marklap ipconfig /all

이 명령은 test.exe 프로그램을 원격 시스템에 복사하고 대화형으로 실행합니다.

psexec -i \\marklap -c test.exe

시스템 경로에 있지 않은 경우 원격 시스템에 이미 설치된 프로그램의 전체 경로를 지정합니다.

psexec -i \\marklap c:\bin\test.exe

SAM 및 SECURITY 키의 내용을 보려면 시스템 계정에서 Regedit를 대화형으로 실행하세요.

psexec -i -d -s c:\windows\regedit.exe

제한된 사용자 권한으로 Internet Explorer를 실행하려면 다음 명령을 사용하세요.

psexec -l -d "c:\program files\internet explorer\iexplore.exe"

DownloadPsTools 다운로드(5MB)

PS도구

PsExecPsTools라는 로컬 및 원격 시스템의 관리를 지원하는 Sysinternals 명령줄 도구 키트의 일부입니다.

다음에서 실행:

  • 클라이언트: Windows 8.1 이상.
  • 서버: Windows Server 2012 이상.