Start-Process
在本機計算機上啟動一或多個進程。
語法
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
Start-Process
Cmdlet 會在本機電腦上啟動一或多個進程。 若要指定程式中執行的程式,請輸入可執行檔或腳本檔案,或在計算機上使用程式開啟的檔案。 如果您指定非可執行檔,Start-Process
會啟動與檔案相關聯的程式,類似於 Invoke-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
建立 System.Diagnostics.ProcessStartInfo 物件,以用於 powerShell 進程中執行的檔案 PowerShell.exe。
ProcessStartInfo 物件的 Verbs 屬性會顯示您可以使用 Open 和 RunAs 動詞命令搭配 PowerShell.exe,或任何執行 .exe 檔案的進程。
範例 7:指定進程的自變數
這兩個命令都會啟動 Windows 命令解釋器,並在 『Program Files' 資料夾中發出 dir 命令。 因為這個 foldername 包含空格,因此值需要以逸出引號括住。 請注意,第一個命令會將字串指定為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[] |
別名: | Args |
Position: | 1 |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Credential
指定具有執行此動作許可權的用戶帳戶。 輸入用戶名稱,例如User01或Domain01\User01,或輸入 PSCredential 物件,例如 Get-Credential
Cmdlet 中的一個。 根據預設,Cmdlet 會使用目前用戶的認證。
類型: | PSCredential |
別名: | RunAs |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-FilePath
指定程式在程式中執行的選擇性路徑和檔名。 輸入與計算機上程式相關聯的可執行檔或文件名稱,例如 .txt 或.doc檔案。 這是必要參數。
如果您只指定檔名,請使用 WorkingDirectory 參數來指定路徑。
類型: | String |
別名: | PSPath |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-LoadUserProfile
指出此 Cmdlet 會載入儲存在目前使用者的 HKEY_USERS 登錄機碼中的 Windows 使用者設定檔。
此參數不會影響 PowerShell 配置檔。 如需詳細資訊,請參閱 about_Profiles。
類型: | SwitchParameter |
別名: | Lup |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-NoNewWindow
在目前的主控台視窗中啟動新的程式。 根據預設,PowerShell 會開啟新的視窗。
您不能在相同的命令中使用 NoNewWindow 和 WindowStyle 參數。
類型: | SwitchParameter |
別名: | nnw |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-PassThru
針對 Cmdlet 啟動的每個進程,傳回進程物件。 根據預設,此 Cmdlet 不會產生任何輸出。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-RedirectStandardError
指定檔案。 此 Cmdlet 會將進程所產生的任何錯誤傳送至您指定的檔案。 輸入路徑和檔名。 根據預設,錯誤會顯示在控制台中。
類型: | String |
別名: | RSE |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-RedirectStandardInput
指定檔案。 此 Cmdlet 會從指定的檔案讀取輸入。 輸入輸入檔的路徑和檔名。 根據預設,進程會從鍵盤取得其輸入。
類型: | String |
別名: | RSI |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-RedirectStandardOutput
指定檔案。 此 Cmdlet 會將進程所產生的輸出傳送至您指定的檔案。 輸入路徑和檔名。 根據預設,輸出會顯示在控制台中。
類型: | String |
別名: | RSO |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-UseNewEnvironment
指出此 Cmdlet 會使用為進程指定的新環境變數。 根據預設,啟動的進程會使用為計算機和使用者指定的環境變數來執行。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Verb
指定此 Cmdlet 啟動行程時要使用的動詞。 可用的動詞是由處理程序中執行之檔案的擴展名所決定。
下表顯示一些常見進程檔類型的動詞。
檔案類型 | 動詞 |
---|---|
.cmd | Edit、Open、Print、RunAs、RunAsUser |
.exe | Open、RunAs、RunAsUser |
.txt | Open、Print、PrintTo |
.wav | Open、Play |
若要尋找可與進程中執行的檔案搭配使用的動詞,請使用 New-Object
Cmdlet 來建立檔案的 System.Diagnostics.ProcessStartInfo 物件。 可用的動詞命令位於 ProcessStartInfo 物件的 Verbs 屬性中。 如需詳細資訊,請參閱範例。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Wait
表示此 Cmdlet 會先等候指定的進程及其子系完成,再接受更多輸入。 此參數會隱藏命令提示字元,或保留視窗,直到進程完成為止。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-WindowStyle
指定用於新進程的窗口狀態。 此參數可接受的值為:Normal、Hidden、Minimized和 Maximized。 預設值為 Normal。
您不能在相同的命令中使用 WindowStyle 和 NoNewWindow 參數。
類型: | ProcessWindowStyle |
接受的值: | Normal, Hidden, Minimized, Maximized |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-WorkingDirectory
指定執行於進程中之可執行檔或檔的位置。 預設為新進程的資料夾。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
None
您無法使用管線將輸入傳送至此 Cmdlet。
輸出
None, System.Diagnostics.Process
如果您 指定 passThru 參數,此 Cmdlet 會產生 System.Diagnostics.Process 物件。 否則,此 Cmdlet 不會傳回任何輸出。
備註
- 這個 Cmdlet 是使用 System.Diagnostics.Process 類別的 Start 方法實作。 如需此方法的詳細資訊,請參閱 Process.Start 方法。