Start-Process
Memulai satu atau beberapa proses pada komputer lokal.
Sintaks
Start-Process
[-FilePath] <String>
[[-ArgumentList] <String[]>]
[-Credential <PSCredential>]
[-WorkingDirectory <String>]
[-LoadUserProfile]
[-NoNewWindow]
[-PassThru]
[-RedirectStandardError <String>]
[-RedirectStandardInput <String>]
[-RedirectStandardOutput <String>]
[-WindowStyle <ProcessWindowStyle>]
[-Wait]
[-UseNewEnvironment]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Start-Process
[-FilePath] <String>
[[-ArgumentList] <String[]>]
[-WorkingDirectory <String>]
[-PassThru]
[-Verb <String>]
[-WindowStyle <ProcessWindowStyle>]
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Deskripsi
Start-Process
Cmdlet memulai satu atau beberapa proses pada komputer lokal. Secara default, Start-Process
membuat proses baru yang mewarisi semua variabel lingkungan yang ditentukan dalam proses saat ini.
Untuk menentukan program yang berjalan dalam proses, masukkan file atau file skrip yang dapat dieksekusi, atau file yang dapat dibuka menggunakan program di komputer. Jika Anda menentukan file yang tidak dapat dieksekusi, Start-Process
memulai program yang terkait dengan file, mirip Invoke-Item
dengan cmdlet.
Anda dapat menggunakan parameter Start-Process
untuk menentukan opsi, seperti memuat profil pengguna, memulai proses di jendela baru, atau menggunakan kredensial alternatif.
Contoh
Contoh 1: Memulai proses yang menggunakan nilai default
Contoh ini memulai proses yang menggunakan Sort.exe
file di folder saat ini. Perintah menggunakan semua nilai default, termasuk gaya jendela default, folder kerja, dan kredensial.
Start-Process -FilePath "sort.exe"
Contoh 2: Mencetak file teks
Contoh ini memulai proses yang mencetak C:\PS-Test\MyFile.txt
file.
Start-Process -FilePath "myfile.txt" -WorkingDirectory "C:\PS-Test" -Verb Print
Contoh 3: Memulai proses untuk mengurutkan item ke file baru
Contoh ini memulai proses yang mengurutkan item dalam TestSort.txt
file dan mengembalikan item yang diurutkan dalam Sorted.txt
file. Kesalahan apa pun ditulis ke SortError.txt
file. Parameter UseNewEnvironment menentukan bahwa proses berjalan dengan variabel lingkungannya sendiri.
$processOptions = @{
FilePath = "sort.exe"
RedirectStandardInput = "TestSort.txt"
RedirectStandardOutput = "Sorted.txt"
RedirectStandardError = "SortError.txt"
UseNewEnvironment = $true
}
Start-Process @processOptions
Contoh ini menggunakan splatting untuk meneruskan parameter ke cmdlet. Untuk informasi selengkapnya, lihat about_Splatting.
Contoh 4: Memulai proses di jendela yang dimaksimalkan
Contoh ini memulai Notepad.exe
proses. Ini memaksimalkan jendela dan mempertahankan jendela hingga proses selesai.
Start-Process -FilePath "notepad" -Wait -WindowStyle Maximized
Contoh 5: Memulai PowerShell sebagai administrator
Contoh ini memulai PowerShell menggunakan opsi Jalankan sebagai administrator .
Start-Process -FilePath "powershell" -Verb RunAs
Contoh 6: Menggunakan kata kerja yang berbeda untuk memulai proses
Contoh ini menunjukkan cara menemukan kata kerja yang dapat digunakan saat memulai proses. Kata kerja yang tersedia ditentukan oleh ekstensi nama file file yang berjalan dalam proses.
$startExe = New-Object System.Diagnostics.ProcessStartInfo -Args powershell.exe
$startExe.verbs
open
runas
runasuser
Contoh menggunakan New-Object
untuk membuat objek System.Diagnostics.ProcessStartInfo untuk powershell.exe
, file yang berjalan dalam proses PowerShell. Properti Kata Kerja dari objek ProcessStartInfo menunjukkan bahwa Anda dapat menggunakan Buka dan RunAs
kata kerja dengan powershell.exe
, atau dengan proses apa pun yang menjalankan .exe
file.
Contoh 7: Menentukan argumen ke proses
Kedua perintah memulai penerjemah perintah Windows, mengeluarkan dir
perintah pada Program Files
folder . Karena nama folder ini berisi spasi, nilai perlu dikelilingi dengan tanda kutip yang lolos.
Perhatikan bahwa perintah pertama menentukan string sebagai ArgumentList. Perintah kedua adalah array string.
Start-Process -FilePath "$env:comspec" -ArgumentList "/c dir `"%SystemDrive%\Program Files`""
Start-Process -FilePath "$env:comspec" -ArgumentList "/c","dir","`"%SystemDrive%\Program Files`""
Contoh 8: Membuat proses yang dilepaskan di Linux
Pada Windows, Start-Process
membuat proses independen yang tetap berjalan secara independen dari shell peluncuran. Pada platform non-Windows, proses yang baru dimulai dilampirkan ke shell yang diluncurkan. Jika shell peluncuran ditutup, proses anak dihentikan.
Untuk menghindari penghentian proses anak pada platform seperti Unix, Anda dapat menggabungkan Start-Process
dengan nohup
. Contoh berikut meluncurkan instans latar belakang PowerShell di Linux yang tetap hidup bahkan setelah Anda menutup sesi peluncuran. Perintah nohup
mengumpulkan output dalam file nohup.out
di direktori saat ini.
# Runs for 2 minutes and appends output to ./nohup.out
Start-Process nohup 'pwsh -noprofile -c "1..120 | % { Write-Host . -NoNewline; sleep 1 }"'
Dalam contoh ini, Start-Process
menjalankan perintah Linux nohup
, yang diluncurkan pwsh
sebagai proses yang dilepaskan. Untuk informasi selengkapnya, lihat artikel nohup di Wikipedia.
Parameter
-ArgumentList
Menentukan parameter atau nilai parameter yang akan digunakan saat cmdlet ini memulai proses. Argumen dapat diterima sebagai string tunggal dengan argumen yang dipisahkan oleh spasi, atau sebagai array string yang dipisahkan oleh koma. Cmdlet menggabungkan array ke dalam satu string dengan setiap elemen array yang dipisahkan oleh satu spasi.
Kutipan luar string PowerShell tidak disertakan saat nilai ArgumentList diteruskan ke proses baru. Jika parameter atau nilai parameter berisi spasi atau tanda kutip, parameter atau parameter perlu dikelilingi dengan tanda kutip ganda yang lolos. Untuk informasi selengkapnya, lihat about_Quoting_Rules.
Untuk hasil terbaik, gunakan satu nilai ArgumentList yang berisi semua argumen dan karakter kutipan yang diperlukan.
Type: | String[] |
Aliases: | Args |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Meminta Anda mengonfirmasi sebelum menjalankan cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Menentukan akun pengguna yang memiliki izin untuk melakukan tindakan ini. Secara default, cmdlet menggunakan kredensial pengguna saat ini.
Ketik nama pengguna, seperti User01 atau Domain01\User01, atau masukkan objek PSCredential yang dihasilkan oleh Get-Credential
cmdlet. Jika Anda mengetikkan nama pengguna, Anda akan diminta untuk memasukkan kata sandi.
Kredensial disimpan dalam objek PSCredential dan kata sandi disimpan sebagai SecureString.
Catatan
Untuk informasi selengkapnya tentang perlindungan data SecureString , lihat Seberapa aman SecureString?.
Type: | PSCredential |
Aliases: | RunAs |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Menentukan jalur opsional dan nama file program yang berjalan dalam proses. Masukkan nama file yang dapat dieksekusi atau dokumen, seperti .txt
file atau .doc
, yang terkait dengan program di komputer. Parameter ini diperlukan.
Jika Anda hanya menentukan nama file yang tidak sesuai dengan perintah sistem, gunakan parameter WorkingDirectory untuk menentukan jalur.
Type: | String |
Aliases: | PSPath, Path |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LoadUserProfile
Menunjukkan bahwa cmdlet ini memuat profil pengguna Windows yang disimpan dalam HKEY_USERS
kunci registri untuk pengguna saat ini. Parameter tidak berlaku untuk sistem non-Windows.
Parameter ini tidak memengaruhi profil PowerShell. Untuk informasi selengkapnya, lihat about_Profiles.
Type: | SwitchParameter |
Aliases: | Lup |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoNewWindow
Mulai proses baru di jendela konsol saat ini. Secara default di Windows, PowerShell membuka jendela baru. Pada sistem non-Windows, Anda tidak pernah mendapatkan jendela baru.
Anda tidak dapat menggunakan parameter NoNewWindow dan WindowStyle dalam perintah yang sama.
Parameter tidak berlaku untuk sistem non-Windows.
Type: | SwitchParameter |
Aliases: | nnw |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PassThru
Mengembalikan objek proses untuk setiap proses yang dimulai cmdlet. Secara default, cmdlet ini tidak menghasilkan output apa pun.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RedirectStandardError
Menentukan file. Cmdlet ini mengirimkan kesalahan apa pun yang dihasilkan oleh proses ke file yang Anda tentukan. Masukkan jalur dan nama file. Secara default, kesalahan ditampilkan di konsol.
Type: | String |
Aliases: | RSE |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RedirectStandardInput
Menentukan file. Cmdlet ini membaca input dari file yang ditentukan. Masukkan jalur dan nama file file input. Secara default, proses mendapatkan inputnya dari keyboard.
Type: | String |
Aliases: | RSI |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RedirectStandardOutput
Menentukan file. Cmdlet ini mengirimkan output yang dihasilkan oleh proses ke file yang Anda tentukan. Masukkan jalur dan nama file. Secara default, output ditampilkan di konsol.
Type: | String |
Aliases: | RSO |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseNewEnvironment
Menunjukkan bahwa cmdlet ini menggunakan variabel lingkungan baru yang ditentukan untuk proses tersebut. Secara default, proses dimulai berjalan dengan variabel lingkungan yang diwarisi dari proses induk.
Di Windows, saat Anda menggunakan UseNewEnvironment, proses baru hanya dimulai berisi variabel lingkungan default yang ditentukan untuk cakupan Komputer . Ini memiliki efek samping yang $env:USERNAME
diatur ke SYSTEM. Tidak ada variabel dari cakupan Pengguna yang disertakan.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Verb
Menentukan kata kerja yang akan digunakan ketika cmdlet ini memulai proses. Kata kerja yang tersedia ditentukan oleh ekstensi nama file file yang berjalan dalam proses.
Tabel berikut ini memperlihatkan kata kerja untuk beberapa jenis file proses umum.
Jenis file | Kata kerja |
---|---|
.cmd | Edit , , Open Print , , RunAs ,RunAsUser |
.exe | Open , , RunAs RunAsUser |
.txt | Open , , Print PrintTo |
.Wav | Open , Play |
Untuk menemukan kata kerja yang dapat digunakan dengan file yang berjalan dalam proses, gunakan New-Object
cmdlet untuk membuat objek System.Diagnostics.ProcessStartInfo untuk file. Kata kerja yang tersedia ada di properti Kata Kerja objek ProcessStartInfo . Untuk detailnya, lihat contohnya.
Parameter tidak berlaku untuk sistem non-Windows.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Wait
Menunjukkan bahwa cmdlet ini menunggu proses yang ditentukan dan turunannya selesai sebelum menerima lebih banyak input. Parameter ini menekan prompt perintah atau mempertahankan jendela hingga proses selesai.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.
Parameter ini diperkenalkan di PowerShell 6.0.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WindowStyle
Menentukan status jendela yang digunakan untuk proses baru. Nilai defaultnya adalah Normal
.
Nilai yang dapat diterima untuk parameter ini adalah:
Normal
Hidden
Minimized
Maximized
Anda tidak dapat menggunakan parameter WindowStyle dan NoNewWindow dalam perintah yang sama.
Parameter tidak berlaku untuk sistem non-Windows. Saat menggunakan pada sistem non-Windows, Anda tidak pernah mendapatkan jendela baru.
Type: | ProcessWindowStyle |
Accepted values: | Normal, Hidden, Minimized, Maximized |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WorkingDirectory
Menentukan lokasi tempat proses baru harus dimulai.
Ketika tidak ditentukan, cmdlet default ke lokasi yang sepenuhnya memenuhi syarat yang ditentukan dalam parameter FilePath . Jika nilai parameter FilePath tidak sepenuhnya memenuhi syarat, nilai tersebut default ke direktori kerja saat ini dari proses panggilan.
Kartubebas tidak didukung. Jalur tidak boleh berisi karakter yang akan ditafsirkan sebagai kartubebas.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
None
Anda tidak dapat menyalurkan objek ke cmdlet ini.
Output
None
Secara default, cmdlet ini tidak mengembalikan output.
Saat Anda menggunakan parameter PassThru , cmdlet ini mengembalikan objek Proses .
Catatan
PowerShell menyertakan alias berikut untuk Start-Process
:
- Semua platform
saps
- Windows
start
Perintah asli adalah file yang dapat dieksekusi yang diinstal dalam sistem operasi. Executable ini dapat dijalankan dari shell baris perintah apa pun, seperti PowerShell. Biasanya Anda menjalankan perintah persis seperti yang Anda lakukan di bash
atau cmd.exe
. Start-Process
Cmdlet dapat digunakan untuk menjalankan perintah asli apa pun, tetapi hanya boleh digunakan ketika Anda perlu mengontrol bagaimana perintah dijalankan.
Start-Process
berguna untuk menjalankan program GUI pada platform non-Windows. Misalnya, jalankan Start-Proces gedit
untuk meluncurkan editor teks grafis umum lingkungan Desktop GNOME.
Secara default, Start-Process
meluncurkan proses secara asinkron. Kontrol langsung dikembalikan ke PowerShell meskipun proses baru masih berjalan.
- Pada sistem lokal, proses yang diluncurkan hidup secara independen dari proses panggilan.
- Pada sistem jarak jauh, proses baru dihentikan ketika sesi jarak jauh berakhir, segera mengikuti
Start-Process
perintah. Oleh karena itu, Anda tidak dapat menggunakanStart-Process
dalam sesi jarak jauh yang mengharapkan proses yang diluncurkan untuk mengungguli sesi.
Jika Anda perlu menggunakan Start-Process
dalam sesi jarak jauh, panggil dengan parameter Tunggu . Atau Anda dapat menggunakan metode lain untuk membuat proses baru pada sistem jarak jauh.
Saat menggunakan parameter Tunggu , Start-Process
menunggu pohon proses (proses dan semua turunannya) keluar sebelum mengembalikan kontrol. Ini berbeda dari Wait-Process
perilaku cmdlet, yang hanya menunggu proses yang ditentukan keluar.
Di Windows, kasus Start-Process
penggunaan yang paling umum adalah menggunakan parameter Tunggu untuk memblokir kemajuan hingga proses baru keluar. Pada sistem non-Windows, ini jarang diperlukan karena perilaku default untuk aplikasi baris perintah setara dengan Start-Process -Wait
.
Cmdlet ini diimplementasikan menggunakan metode Mulai kelas System.Diagnostics.Process . Untuk informasi selengkapnya tentang metode ini, lihat Metode Process.Start.
Link Terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk