다음을 통해 공유


Start-Process

로컬 컴퓨터에서 하나 이상의 프로세스를 시작합니다.

Syntax

Start-Process
     [-FilePath] <String>
     [[-ArgumentList] <String[]>]
     [-Credential <PSCredential>]
     [-WorkingDirectory <String>]
     [-LoadUserProfile]
     [-NoNewWindow]
     [-PassThru]
     [-RedirectStandardError <String>]
     [-RedirectStandardInput <String>]
     [-RedirectStandardOutput <String>]
     [-WindowStyle <ProcessWindowStyle>]
     [-Wait]
     [-UseNewEnvironment]
     [<CommonParameters>]
Start-Process
     [-FilePath] <String>
     [[-ArgumentList] <String[]>]
     [-WorkingDirectory <String>]
     [-PassThru]
     [-Verb <String>]
     [-WindowStyle <ProcessWindowStyle>]
     [-Wait]
     [<CommonParameters>]

Description

cmdlet은 Start-Process 로컬 컴퓨터에서 하나 이상의 프로세스를 시작합니다. 프로세스에서 실행되는 프로그램을 지정하려면 실행 파일 또는 스크립트 파일을 입력하거나 컴퓨터의 프로그램을 사용하여 열 수 있는 파일을 입력합니다. 실행 불가능 파일을 Start-Process 지정하는 경우 는 cmdlet과 유사하게 Invoke-Item 파일과 연결된 프로그램을 시작합니다.

Start-Process 매개 변수를 사용하여 사용자 프로필 로드, 새 창에서 프로세스 시작 또는 대체 자격 증명 사용과 같은 옵션을 지정할 수 있습니다.

예제

예제 1: 기본값을 사용하는 프로세스 시작

다음은 현재 폴더의 Sort.exe 파일을 사용하는 프로세스를 시작하는 예제입니다. 명령은 기본 창 스타일, 작업 폴더 및 자격 증명을 포함하여 모든 기본값을 사용합니다.

Start-Process -FilePath "sort.exe"

예제 2: 텍스트 파일 인쇄

다음은 C:\PS-Test\MyFile.txt 파일을 인쇄하는 프로세스를 시작하는 예제입니다.

Start-Process -FilePath "myfile.txt" -WorkingDirectory "C:\PS-Test" -Verb Print

예제 3: 항목을 새 파일로 정렬하는 프로세스 시작

다음은 Testsort.txt 파일의 항목을 정렬하고 Sorted.txt 파일에서 정렬된 항목을 반환하는 프로세스를 시작하는 예제입니다. 모든 오류는 SortError.txt 파일에 기록됩니다.

Start-Process -FilePath "Sort.exe" -RedirectStandardInput "Testsort.txt" -RedirectStandardOutput "Sorted.txt" -RedirectStandardError "SortError.txt" -UseNewEnvironment

UseNewEnvironment 매개 변수는 프로세스가 자체 환경 변수로 실행되도록 지정합니다.

예제 4: 최대화된 창에서 프로세스 시작

이 예제에서는 Notepad.exe 프로세스를 시작합니다. 창을 최대화하고 프로세스가 완료될 때까지 창을 유지합니다.

Start-Process -FilePath "notepad" -Wait -WindowStyle Maximized

예제 5: 관리자 권한으로 PowerShell 시작

이 예제에서는 "관리자 권한으로 실행" 옵션을 사용하여 PowerShell을 시작합니다.

Start-Process -FilePath "powershell" -Verb RunAs

예제 6: 다른 동사를 사용하여 프로세스 시작

이 예제에서는 프로세스를 시작할 때 사용할 수 있는 동사를 찾는 방법을 보여줍니다. 사용 가능한 동사는 프로세스에서 실행되는 파일의 파일 이름 확장명에서 결정됩니다.

$startExe = New-Object System.Diagnostics.ProcessStartInfo -Args PowerShell.exe
$startExe.verbs

open
runas

이 예제에서는 를 사용하여 New-Object PowerShell 프로세스에서 실행되는 파일인 PowerShell.exeSystem.Diagnostics.ProcessStartInfo 개체를 만듭니다. ProcessStartInfo 개체의 Verbs 속성은 PowerShell.exe또는 .exe 파일을 실행하는 모든 프로세스에서 OpenRunAs 동사를 사용할 수 있음을 보여줍니다.

예제 7: 프로세스에 대한 인수 지정

두 명령 모두 Windows 명령 인터프리터를 시작하여 'Program Files' 폴더에서 dir 명령을 실행합니다. 이 폴더 이름에는 공백이 포함되어 있으므로 값은 이스케이프된 따옴표로 묶어야 합니다. 첫 번째 명령은 문자열을 ArgumentList로 지정합니다. 두 번째 명령 문자열 배열입니다.

Start-Process -FilePath "$env:comspec" -ArgumentList "/c dir `"%systemdrive%\program files`""
Start-Process -FilePath "$env:comspec" -ArgumentList "/c","dir","`"%systemdrive%\program files`""

매개 변수

-ArgumentList

이 cmdlet이 프로세스를 시작할 때 사용할 매개 변수 또는 매개 변수 값을 지정합니다. 매개 변수 또는 매개 변수 값에 공백이 포함된 경우 이스케이프된 큰따옴표로 묶어야 합니다.

Type:String[]
Aliases:Args
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

이 작업을 수행할 권한이 있는 사용자 계정을 지정합니다. User01 또는 Domain01\User01과 같은 사용자 이름을 입력하거나 cmdlet의 것과 같은 PSCredential 개체를 Get-Credential 입력합니다. 기본적으로 이 cmdlet은 현재 사용자의 자격 증명을 사용합니다.

Type:PSCredential
Aliases:RunAs
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FilePath

프로세스에서 실행되는 프로그램의 선택적 경로 및 파일 이름을 지정합니다. 컴퓨터의 프로그램과 연결된 실행 파일 또는 문서(예: .txt 또는 .doc 파일)의 이름을 입력합니다. 이 매개 변수는 필수입니다.

파일 이름만 지정하는 경우 WorkingDirectory 매개 변수를 사용하여 경로를 지정합니다.

Type:String
Aliases:PSPath
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-LoadUserProfile

이 cmdlet은 현재 사용자의 HKEY_USERS 레지스트리 키에 저장된 Windows 사용자 프로필을 로드한다는 것을 나타냅니다.

이 매개 변수는 PowerShell 프로필에 영향을 주지 않습니다. 자세한 내용은 about_Profiles를 참조하세요.

Type:SwitchParameter
Aliases:Lup
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NoNewWindow

현재 콘솔 창에서 새 프로세스를 시작합니다. 기본적으로 PowerShell은 새 창을 엽니다.

동일한 명령에서는 NoNewWindowWindowStyle 매개 변수를 사용할 수 없습니다.

Type:SwitchParameter
Aliases:nnw
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

cmdlet이 시작한 각 프로세스에 대한 프로세스 개체를 반환합니다. 기본적으로 이 cmdlet은 출력을 생성하지 않습니다.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RedirectStandardError

파일을 지정합니다. 이 cmdlet은 프로세스에서 생성된 오류를 지정한 파일로 보냅니다. 경로 및 파일 이름을 입력합니다. 기본적으로 오류는 콘솔에 표시됩니다.

Type:String
Aliases:RSE
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RedirectStandardInput

파일을 지정합니다. 이 cmdlet은 지정된 파일에서 입력을 읽습니다. 입력 파일의 경로와 파일 이름을 입력합니다. 기본적으로 프로세스는 키보드에서 입력을 가져옵니다.

Type:String
Aliases:RSI
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RedirectStandardOutput

파일을 지정합니다. 이 cmdlet은 프로세스에서 생성된 출력을 지정한 파일로 보냅니다. 경로 및 파일 이름을 입력합니다. 기본적으로 출력은 콘솔에 표시됩니다.

Type:String
Aliases:RSO
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseNewEnvironment

이 cmdlet은 프로세스에 지정된 새 환경 변수를 사용한다는 것을 나타냅니다. 기본적으로 시작된 프로세스는 컴퓨터 및 사용자에 대해 지정된 환경 변수를 사용하여 실행됩니다.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Verb

이 cmdlet이 프로세스를 시작할 때 사용할 동사를 지정합니다. 사용할 수 있는 동사는 프로세스에서 실행되는 파일의 파일 이름 확장명에서 결정됩니다.

다음 표에서는 몇 가지 일반적인 프로세스 파일 형식에 대한 동사를 보여 줍니다.

파일 형식 동사
.cmd 편집, 열기, 인쇄, 실행, RunAsUser
.exe Open, RunAs, RunAsUser
.txt 열기, 인쇄, PrintTo
.wav 열기, 재생

프로세스에서 실행되는 파일과 함께 사용할 수 있는 동사를 찾으려면 cmdlet을 사용하여 New-Object 파일에 대한 System.Diagnostics.ProcessStartInfo 개체를 만듭니다. 사용 가능한 동사는 ProcessStartInfo 개체의 Verbs 속성에 있습니다. 자세한 내용은 예제를 참조하세요.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Wait

이 cmdlet은 지정된 프로세스와 해당 하위 항목이 완료될 때까지 기다렸다가 더 많은 입력을 수락했음을 나타냅니다. 이 매개 변수는 명령 프롬프트를 표시하지 않거나 프로세스가 완료될 때까지 창을 유지합니다.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WindowStyle

새 프로세스에 사용되는 창의 상태를 지정합니다. 이 매개 변수에 허용되는 값은 Normal, Hidden, MinimizedMaximized입니다. 기본값은 Normal입니다.

동일한 명령에서는 WindowStyleNoNewWindow 매개 변수를 사용할 수 없습니다.

Type:ProcessWindowStyle
Accepted values:Normal, Hidden, Minimized, Maximized
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WorkingDirectory

프로세스에서 실행되는 실행 파일이나 문서의 위치를 지정합니다. 기본값은 새 프로세스의 폴더입니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

입력

None

이 cmdlet에 입력을 파이프할 수 없습니다.

출력

None, System.Diagnostics.Process

PassThru 매개 변수를 지정하면 이 cmdlet은 System.Diagnostics.Process 개체를 생성합니다. 그러지 않으면 아무 출력도 반환하지 않습니다.

참고

  • 이 cmdlet은 System.Diagnostics.Process 클래스의 Start 메서드를 사용하여 구현됩니다. 이 메서드에 대한 자세한 내용은 Process.Start 메서드를 참조하세요.