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 파일을 실행하는 모든 프로세스에서 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이 프로세스를 시작할 때 사용할 매개 변수 또는 매개 변수 값을 지정합니다. 매개 변수 또는 매개 변수 값에 공백이 포함된 경우 이스케이프된 큰따옴표로 묶어야 합니다.
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은 새 창을 엽니다.
동일한 명령에서는 NoNewWindow 및 WindowStyle 매개 변수를 사용할 수 없습니다.
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, Minimized 및 Maximized입니다. 기본값은 Normal입니다.
동일한 명령에서는 WindowStyle 및 NoNewWindow 매개 변수를 사용할 수 없습니다.
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 메서드를 참조하세요.