Start-Process
로컬 컴퓨터에서 하나 이상의 프로세스를 시작합니다.
구문
Default (기본값)
Start-Process
[-FilePath] <String>
[[-ArgumentList] <String[]>]
[-Credential <PSCredential>]
[-WorkingDirectory <String>]
[-LoadUserProfile]
[-NoNewWindow]
[-PassThru]
[-RedirectStandardError <String>]
[-RedirectStandardInput <String>]
[-RedirectStandardOutput <String>]
[-WindowStyle <ProcessWindowStyle>]
[-Wait]
[-UseNewEnvironment]
[<CommonParameters>]
UseShellExecute
Start-Process
[-FilePath] <String>
[[-ArgumentList] <String[]>]
[-WorkingDirectory <String>]
[-PassThru]
[-Verb <String>]
[-WindowStyle <ProcessWindowStyle>]
[-Wait]
[<CommonParameters>]
Description
Start-Process cmdlet은 로컬 컴퓨터에서 하나 이상의 프로세스를 시작합니다. 프로세스에서 실행되는 프로그램을 지정하려면 실행 파일 또는 스크립트 파일 또는 컴퓨터의 프로그램을 사용하여 열 수 있는 파일을 입력합니다. 실행 불가능한 파일을 지정하는 경우 Start-ProcessInvoke-Item cmdlet과 유사하게 파일과 연결된 프로그램을 시작합니다.
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.exe대한 System.Diagnostics.ProcessStartInfo 개체를 만듭니다.
ProcessStartInfo 개체의 동사 속성은 PowerShell.exe또는 .exe 파일을 실행하는 모든 프로세스에서 Open 및 RunAs 동사를 사용할 수 있음을 보여 줍니다.
예제 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이 프로세스를 시작할 때 사용할 매개 변수 또는 매개 변수 값을 지정합니다. 매개 변수 또는 매개 변수 값에 공백이 포함된 경우 이스케이프된 큰따옴표로 묶어야 합니다.
매개 변수 속성
| 형식: | String[] |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | 매개변수(Args) |
매개 변수 집합
(All)
| Position: | 1 |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Credential
이 작업을 수행할 수 있는 권한이 있는 사용자 계정을 지정합니다. User01 또는 Domain01\User01과 같은 사용자 이름을 입력하거나 cmdlet에서 Get-Credential 개체를 입력합니다. 기본적으로 cmdlet은 현재 사용자의 자격 증명을 사용합니다.
매개 변수 속성
| 형식: | PSCredential |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | RunAs |
매개 변수 집합
Default
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-FilePath
프로세스에서 실행되는 프로그램의 선택적 경로 및 파일 이름을 지정합니다. 컴퓨터의 프로그램과 연결된 실행 파일 또는 문서 이름(예: .txt 또는 .doc 파일)을 입력합니다. 이 매개 변수는 필수입니다.
파일 이름만 지정하는 경우 WorkingDirectory 매개 변수를 사용하여 경로를 지정합니다.
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | PSPath |
매개 변수 집합
(All)
| Position: | 0 |
| 필수: | True |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-LoadUserProfile
이 cmdlet은 현재 사용자의 HKEY_USERS 레지스트리 키에 저장된 Windows 사용자 프로필을 로드한다는 것을 나타냅니다.
이 매개 변수는 PowerShell 프로필에 영향을 주지 않습니다. 자세한 내용은 about_Profiles참조하세요.
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | Lup |
매개 변수 집합
Default
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-NoNewWindow
현재 콘솔 창에서 새 프로세스를 시작합니다. 기본적으로 PowerShell은 새 창을 엽니다.
동일한 명령에서 NoNewWindow 및 WindowStyle 매개 변수를 사용할 수 없습니다.
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | 북북서 |
매개 변수 집합
Default
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-PassThru
cmdlet이 시작된 각 프로세스에 대한 프로세스 개체를 반환합니다. 기본적으로 이 cmdlet은 출력을 생성하지 않습니다.
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-RedirectStandardError
파일을 지정합니다. 이 cmdlet은 프로세스에서 생성된 오류를 지정한 파일로 보냅니다. 경로 및 파일 이름을 입력합니다. 기본적으로 오류는 콘솔에 표시됩니다.
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | RSE |
매개 변수 집합
Default
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-RedirectStandardInput
파일을 지정합니다. 이 cmdlet은 지정된 파일에서 입력을 읽습니다. 입력 파일의 경로와 파일 이름을 입력합니다. 기본적으로 프로세스는 키보드에서 해당 입력을 가져옵니다.
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | RSI |
매개 변수 집합
Default
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-RedirectStandardOutput
파일을 지정합니다. 이 cmdlet은 프로세스에서 생성된 출력을 지정한 파일로 보냅니다. 경로 및 파일 이름을 입력합니다. 기본적으로 출력은 콘솔에 표시됩니다.
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | RSO |
매개 변수 집합
Default
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-UseNewEnvironment
이 cmdlet은 프로세스에 지정된 새 환경 변수를 사용한다는 것을 나타냅니다. 기본적으로 시작 프로세스는 컴퓨터 및 사용자에 대해 지정된 환경 변수를 사용하여 실행됩니다.
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
Default
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Verb
이 cmdlet이 프로세스를 시작할 때 사용할 동사를 지정합니다. 사용 가능한 동사는 프로세스에서 실행되는 파일의 파일 이름 확장명에서 결정됩니다.
다음 표에서는 몇 가지 일반적인 프로세스 파일 형식에 대한 동사를 보여 줍니다.
| 파일 형식 | 동사 |
|---|---|
| .cmd | 편집, 열기, 인쇄, RunAs, RunAsUser |
| .exe | 열기, RunAs, RunAsUser |
| .txt | 열기, 인쇄, 인쇄하기 |
| .wav | 열기, 재생 |
프로세스에서 실행되는 파일과 함께 사용할 수 있는 동사를 찾으려면 New-Object cmdlet을 사용하여 파일에 대한 System.Diagnostics.ProcessStartInfo 개체를 만듭니다. 사용 가능한 동사는 ProcessStartInfo 개체의 동사 속성에 있습니다. 자세한 내용은 예제를 참조하세요.
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
UseShellExecute
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Wait
이 cmdlet은 지정된 프로세스와 해당 하위 항목이 완료될 때까지 기다렸다가 더 많은 입력을 수락했음을 나타냅니다. 이 매개 변수는 명령 프롬프트를 표시하지 않거나 프로세스가 완료될 때까지 창을 유지합니다.
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-WindowStyle
새 프로세스에 사용되는 창의 상태를 지정합니다. 이 매개 변수에 허용되는 값은 Normal, Hidden, Minimized및 Maximized입니다. 기본값은 Normal.
동일한 명령에서
매개 변수 속성
| 형식: | ProcessWindowStyle |
| Default value: | None |
| 허용되는 값: | Normal, Hidden, Minimized, Maximized |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-WorkingDirectory
프로세스에서 실행되는 실행 파일 또는 문서의 위치를 지정합니다. 기본값은 새 프로세스의 폴더입니다.
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
CommonParameters
이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.
입력
None
이 cmdlet에 입력을 파이프할 수 없습니다.
출력
None, System.Diagnostics.Process
이 cmdlet은 PassThru 매개 변수를 지정하는 경우 System.Diagnostics.Process 개체를 생성합니다. 그렇지 않으면 이 cmdlet은 출력을 반환하지 않습니다.
참고
- 이 cmdlet은 System.Diagnostics.Process 클래스의 Start 메서드를 사용하여 구현됩니다. 이 메서드에 대한 자세한 내용은 Process.Start 메서드참조하세요.