Start-Process
Yerel bilgisayarda bir veya daha fazla işlem başlatır.
Sözdizimi
Start-Process
[-FilePath] <string>
[[-ArgumentList] <string[]>]
[-Credential <pscredential>]
[-WorkingDirectory <string>]
[-LoadUserProfile]
[-NoNewWindow]
[-PassThru]
[-RedirectStandardError <string>]
[-RedirectStandardInput <string>]
[-RedirectStandardOutput <string>]
[-WindowStyle <ProcessWindowStyle>]
[-Wait]
[-UseNewEnvironment]
[-Environment <hashtable>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Start-Process
[-FilePath] <string>
[[-ArgumentList] <string[]>]
[-WorkingDirectory <string>]
[-PassThru]
[-Verb <string>]
[-WindowStyle <ProcessWindowStyle>]
[-Wait]
[-Environment <hashtable>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Start-Process
Cmdlet, yerel bilgisayarda bir veya daha fazla işlem başlatır. Varsayılan olarak, Start-Process
geçerli işlemde tanımlanan tüm ortam değişkenlerini devralan yeni bir işlem oluşturur.
İşlemde çalıştırılacak programı belirtmek için yürütülebilir bir dosya veya betik dosyası ya da bilgisayardaki bir program kullanılarak açılabilir bir dosya girin. Yürütülemeyen bir dosya belirtirseniz, Start-Process
cmdlet'ine benzer şekilde Invoke-Item
dosyayla ilişkili programı başlatır.
kullanıcı profili yükleme, işlemi yeni bir pencerede başlatma veya alternatif kimlik bilgileri kullanma gibi seçenekleri belirtmek için parametresini Start-Process
kullanabilirsiniz.
Örnekler
Örnek 1: Varsayılan değerleri kullanan bir işlem başlatma
Bu örnek, geçerli klasördeki Sort.exe
dosyayı kullanan bir işlem başlatır. Komut, varsayılan pencere stili, çalışma klasörü ve kimlik bilgileri de dahil olmak üzere tüm varsayılan değerleri kullanır.
Start-Process -FilePath "sort.exe"
Örnek 2: Metin dosyasını yazdırma
Bu örnek, dosyayı yazdıran C:\PS-Test\MyFile.txt
bir işlem başlatır.
Start-Process -FilePath "myfile.txt" -WorkingDirectory "C:\PS-Test" -Verb Print
Örnek 3: Öğeleri yeni bir dosyaya sıralama işlemi başlatma
Bu örnek, dosyadaki öğeleri sıralayan ve dosyalardaki TestSort.txt
sıralanmış öğeleri Sorted.txt
döndüren bir işlem başlatır. Tüm hatalar dosyaya SortError.txt
yazılır. UseNewEnvironment parametresi, işlemin kendi ortam değişkenleriyle çalıştığını belirtir.
$processOptions = @{
FilePath = "sort.exe"
RedirectStandardInput = "TestSort.txt"
RedirectStandardOutput = "Sorted.txt"
RedirectStandardError = "SortError.txt"
UseNewEnvironment = $true
}
Start-Process @processOptions
Bu örnek, cmdlet'ine parametre geçirmek için splatting kullanır. Daha fazla bilgi için bkz . about_Splatting.
Örnek 4: Ekranı kaplamış bir pencerede işlem başlatma
Bu örnek işlemi başlatır Notepad.exe
. Pencere ekranı kaplar ve işlem tamamlanana kadar pencereyi korur.
Start-Process -FilePath "notepad" -Wait -WindowStyle Maximized
Örnek 5: PowerShell'i yönetici olarak başlatma
Bu örnek, PowerShell'i Yönetici olarak çalıştır seçeneğini kullanarak başlatır.
Start-Process -FilePath "powershell" -Verb RunAs
Örnek 6: İşlem başlatmak için farklı fiiller kullanma
Bu örnekte, bir işlem başlatılırken kullanılabilecek fiillerin nasıl bulunacağı gösterilmektedir. Kullanılabilir fiiller, işlemde çalışan dosyanın dosya adı uzantısı tarafından belirlenir.
$startExe = New-Object System.Diagnostics.ProcessStartInfo -Args powershell.exe
$startExe.verbs
open
runas
runasuser
Örnek, PowerShell işleminde çalışan dosyası için bir System.Diagnostics.ProcessStartInfo nesnesi oluşturmak için powershell.exe
kullanırNew-Object
. ProcessStartInfo nesnesinin Fiiller özelliği, ile veya bir dosya çalıştıran herhangi bir .exe
işlemle powershell.exe
Aç ve RunAs
fiilleri kullanabileceğinizi gösterir.
Örnek 7: İşlemin bağımsız değişkenlerini belirtme
Her iki komut da Windows komut yorumlayıcısını Program Files
başlatır ve klasörde bir dir
komut yayınlar. Bu klasör adı bir boşluk içerdiğinden, değerin kaçış tırnaklarıyla çevrelenmesi gerekir.
İlk komutun ArgumentList olarak bir dize belirttiğini unutmayın. İkinci komut bir dize dizisidir.
Start-Process -FilePath "$env:comspec" -ArgumentList "/c dir `"%SystemDrive%\Program Files`""
Start-Process -FilePath "$env:comspec" -ArgumentList "/c","dir","`"%SystemDrive%\Program Files`""
Örnek 8: Linux'ta ayrılmış işlem oluşturma
Windows'ta, Start-Process
başlatma kabuğundan bağımsız olarak çalışmaya devam eden bağımsız bir işlem oluşturur. Windows olmayan platformlarda, yeni başlatılan işlem başlatılan kabuğa eklenir. Başlatan kabuk kapatılırsa alt işlem sonlandırılır.
Unix benzeri platformlarda alt işlemin sonlandırılmasını önlemek için ile nohup
birleştirebilirsinizStart-Process
. Aşağıdaki örnek, başlatma oturumunu kapattıktan sonra bile canlı kalan Linux üzerinde PowerShell'in arka plan örneğini başlatır. komutu, nohup
geçerli dizindeki dosyada nohup.out
çıktı toplar.
# Runs for 2 minutes and appends output to ./nohup.out
Start-Process nohup 'pwsh -noprofile -c "1..120 | % { Write-Host . -NoNewline; sleep 1 }"'
Bu örnekte, Start-Process
ayrılmış bir işlem olarak başlatılan pwsh
Linux nohup
komutunu çalıştırmaktır. Daha fazla bilgi için Wikipedia'da nohup makalesine bakın.
Örnek 9: Bir işlem için ortam değişkenlerini geçersiz kılma
Varsayılan olarak, kullandığınızda Start-Process
yeni işlem geçerli oturumla aynı ortam değişkenleriyle oluşturulur. Ortam parametresini kullanarak bu değişkenlerin değerlerini geçersiz kılabilirsiniz.
Bu örnekte, ortam değişkeni FOO
ile oturuma foo
değer olarak eklenir.
Örnek üç kez çalıştırılır Start-Process
ve her seferinde değerini FOO
döndürür. İlk komut ortam değişkenini geçersiz kılmaz. İkinci komutta olarak FOO
ayarlanır bar
. Üçüncü komutta, FOO
olarak ayarlanır $null
ve bu da bunu kaldırır.
$env:FOO = 'foo'
Start-Process pwsh -NoNewWindow -ArgumentList '-c', '$env:FOO'
Start-Process pwsh -NoNewWindow -ArgumentList '-c', '$env:FOO' -Environment @{
FOO = 'bar'
}
Start-Process pwsh -NoNewWindow -ArgumentList '-c', '$env:FOO' -Environment @{
FOO = $null
}
foo
bar
Parametreler
-ArgumentList
Bu cmdlet işlemi başlatırken kullanılacak parametreleri veya parametre değerlerini belirtir. Bağımsız değişkenler boşluklarla ayrılmış tek bir dize veya virgülle ayrılmış bir dize dizisi olarak kabul edilebilir. cmdlet,diziyi tek bir dizede birleştirir ve dizinin her öğesi tek bir boşlukla ayrılır.
ArgumentList değerleri yeni işleme geçirildiğinde PowerShell dizelerinin dış tırnak işaretleri dahil değildir. Parametreler veya parametre değerleri boşluk veya tırnak işareti içeriyorsa, bunların kaçış çift tırnak içine alınması gerekir. Daha fazla bilgi için bkz . about_Quoting_Rules.
En iyi sonuçlar için, tüm bağımsız değişkenleri ve gerekli tırnak karakterlerini içeren tek bir ArgumentList değeri kullanın.
Tür: | String[] |
Diğer adlar: | Args |
Position: | 1 |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Confirm
Cmdlet'i çalıştırmadan önce sizden onay ister.
Tür: | SwitchParameter |
Diğer adlar: | cf |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Credential
Bu eylemi gerçekleştirme iznine sahip bir kullanıcı hesabı belirtir. Varsayılan olarak, cmdlet geçerli kullanıcının kimlik bilgilerini kullanır.
User01 veya Domain01\User01 gibi bir kullanıcı adı yazın veya cmdlet tarafından Get-Credential
oluşturulan bir PSCredential nesnesi girin. Bir kullanıcı adı yazarsanız parolayı girmeniz istenir.
Kimlik bilgileri bir PSCredential nesnesinde depolanır ve parola SecureString olarak depolanır.
Not
SecureString veri koruması hakkında daha fazla bilgi için bkz. SecureString ne kadar güvenli?.
Tür: | PSCredential |
Diğer adlar: | RunAs |
Position: | Named |
Default value: | Current user |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Environment
İşlem için karma tablo olarak geçersiz kılınacak bir veya daha fazla ortam değişkeni belirtir. Karma tabloda bir ortam değişkeninin adını anahtar olarak ve istenen değeri belirtin. Ortam değişkenini ayarlamak için değerini olarak $null
belirtin.
Belirtilen değişkenler işlemde değiştirilir. Ortam değişkenini belirttiğinizde PATH
, bu değişkenin değeri $PSHOME
ve ardından bu parametreden belirtilen değer ile değiştirilir. Windows'da komutu, yeni değerden sonra Machine ve User kapsamlarındaki değerlerini PATH
ekler.
Bu parametre PowerShell 7.4'e eklendi.
Tür: | Hashtable |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-FilePath
İşlemde çalışan programın isteğe bağlı yolunu ve dosya adını belirtir. Bilgisayardaki bir programla ilişkilendirilmiş yürütülebilir dosyanın veya veya dosyası gibi .txt
.doc
bir belgenin adını girin. Bu parametre zorunludur.
Yalnızca sistem komutuna karşılık olmayan bir dosya adı belirtirseniz, yolu belirtmek için WorkingDirectory parametresini kullanın.
Tür: | String |
Diğer adlar: | PSPath, Path |
Position: | 0 |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-LoadUserProfile
Bu cmdlet'in geçerli kullanıcının kayıt defteri anahtarında HKEY_USERS
depolanan Windows kullanıcı profilini yüklediğini gösterir. parametresi Windows dışı sistemler için geçerli değildir.
Bu parametre PowerShell profillerini etkilemez. Daha fazla bilgi için bkz . about_Profiles.
Tür: | SwitchParameter |
Diğer adlar: | Lup |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-NoNewWindow
Geçerli konsol penceresinde yeni işlemi başlatın. Varsayılan olarak Windows'ta PowerShell yeni bir pencere açar. Windows dışı sistemlerde yeni bir pencere asla elde etmezsiniz.
Aynı komutta NoNewWindow ve WindowStyle parametrelerini kullanamazsınız.
parametresi Windows dışı sistemler için geçerli değildir.
Tür: | SwitchParameter |
Diğer adlar: | nnw |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-PassThru
Cmdlet'in başlattığı her işlem için bir işlem nesnesi döndürür. Varsayılan olarak, bu cmdlet herhangi bir çıkış oluşturmaz.
Tür: | SwitchParameter |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-RedirectStandardError
Bir dosya belirtir. Bu cmdlet, işlem tarafından oluşturulan hataları belirttiğiniz bir dosyaya gönderir. Yolu ve dosya adını girin. Varsayılan olarak, hatalar konsolda görüntülenir.
Tür: | String |
Diğer adlar: | RSE |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-RedirectStandardInput
Bir dosya belirtir. Bu cmdlet, belirtilen dosyadan girişi okur. Giriş dosyasının yolunu ve dosya adını girin. Varsayılan olarak, işlem girdisini klavyeden alır.
Tür: | String |
Diğer adlar: | RSI |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-RedirectStandardOutput
Bir dosya belirtir. Bu cmdlet, işlem tarafından oluşturulan çıkışı belirttiğiniz bir dosyaya gönderir. Yolu ve dosya adını girin. Varsayılan olarak, çıkış konsolda görüntülenir.
Tür: | String |
Diğer adlar: | RSO |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-UseNewEnvironment
Bu cmdlet'in işlem için belirtilen yeni ortam değişkenlerini kullandığını gösterir. Varsayılan olarak, başlatılan işlem üst işlemden devralınan ortam değişkenleriyle çalışır.
Windows'da UseNewEnvironment kullandığınızda, yeni işlem yalnızca Makine kapsamı için tanımlanan varsayılan ortam değişkenlerini içerecek şekilde başlar. Bu, öğesinin SYSTEM olarak ayarlandığı yan etkiye $env:USERNAME
sahiptir. Kullanıcı kapsamındaki değişkenlerin hiçbiri dahil değil.
Tür: | SwitchParameter |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Verb
Bu cmdlet işlemi başlatırken kullanılacak bir fiil belirtir. Kullanılabilir fiiller, işlemde çalışan dosyanın dosya adı uzantısı tarafından belirlenir.
Aşağıdaki tabloda bazı yaygın işlem dosyası türlerine yönelik fiiller gösterilmektedir.
Dosya türü | Fiiller |
---|---|
.cmd | Edit , Open , Print , RunAs , , RunAsUser |
.exe | Open , RunAs , RunAsUser |
.txt | Open , Print , PrintTo |
.wav | Open , Play |
Bir işlemde çalıştırılan dosyayla kullanılabilecek fiilleri bulmak için cmdlet'ini New-Object
kullanarak dosya için bir System.Diagnostics.ProcessStartInfo nesnesi oluşturun. Kullanılabilir fiiller, ProcessStartInfo nesnesinin Fiiller özelliğindedir. Ayrıntılar için örneklere bakın.
parametresi Windows dışı sistemler için geçerli değildir.
Tür: | String |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Wait
Bu cmdlet'in daha fazla giriş kabul etmeden önce belirtilen işlemin ve alt öğelerinin tamamlanmasını beklediğini gösterir. Bu parametre komut istemini gizler veya işlemler bitene kadar pencereyi korur.
Tür: | SwitchParameter |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-WhatIf
Cmdlet çalıştırılıyorsa ne olacağını gösterir. Cmdlet çalıştırılmıyor.
Bu parametre PowerShell 6.0'da kullanıma sunulmuştur.
Tür: | SwitchParameter |
Diğer adlar: | wi |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-WindowStyle
Yeni işlem için kullanılan pencerenin durumunu belirtir. Varsayılan değer şudur: Normal
.
Bu parametrenin kabul edilebilir değerleri şunlardır:
Normal
Hidden
Minimized
Maximized
Aynı komutta WindowStyle ve NoNewWindow parametrelerini kullanamazsınız.
parametresi Windows dışı sistemler için geçerli değildir. Windows olmayan sistemlerde kullanırken, hiçbir zaman yeni bir pencere elde etmezsiniz.
Tür: | ProcessWindowStyle |
Kabul edilen değerler: | Normal, Hidden, Minimized, Maximized |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-WorkingDirectory
Yeni işlemin başlaması gereken konumu belirtir.
Belirtilmediğinde, cmdlet varsayılan olarak FilePath parametresinde belirtilen tam konumu kullanır. FilePath parametresinin değeri tam olarak nitelenmiş değilse, varsayılan olarak çağırma işleminin geçerli çalışma dizinine ayarlanır.
Joker karakterler desteklenmez. Yol, joker karakter olarak yorumlanacak karakterler içermemelidir.
Tür: | String |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
Girişler
None
Nesneleri bu cmdlet'e yöneltemezsiniz.
Çıkışlar
None
Varsayılan olarak, bu cmdlet çıkış döndürmez.
PassThru parametresini kullandığınızda, bu cmdlet bir İşlem nesnesi döndürür.
Notlar
PowerShell için aşağıdaki diğer adları Start-Process
içerir:
- Tüm platformlar
saps
- Windows
start
Yerel komutlar, işletim sisteminde yüklü yürütülebilir dosyalardır. Bu yürütülebilir dosyalar PowerShell gibi herhangi bir komut satırı kabuğundan çalıştırılabilir. Genellikle komutunu veya içinde bash
cmd.exe
yaptığınız gibi tam olarak çalıştırırsınız. Start-Process
Cmdlet herhangi bir yerel komutu çalıştırmak için kullanılabilir, ancak yalnızca komutun nasıl yürütülebileceğini denetlemeniz gerektiğinde kullanılmalıdır.
Start-Process
Windows dışı platformlarda GUI programları çalıştırmak için kullanışlıdır. Örneğin, GNOME Desktop ortamlarında yaygın olarak kullanılan grafik metin düzenleyicisini başlatmak için komutunu çalıştırın Start-Process gedit
.
Varsayılan olarak, Start-Process
zaman uyumsuz olarak bir işlem başlatır. Yeni işlem çalışmaya devam ediyor olsa bile denetim anında PowerShell'e döndürülür.
- Yerel sistemde, başlatılan işlem çağrı işleminden bağımsız olarak devam ediyor.
- Uzak bir sistemde, uzak oturum sona erdiğinde, komutun hemen ardından
Start-Process
yeni işlem sonlandırılır. Bu nedenle, başlatılan işlemin oturumdan daha uzun süre beklemesini beklerken uzak bir oturumda kullanamazsınızStart-Process
.
Uzak oturumda kullanmanız Start-Process
gerekiyorsa Wait parametresiyle çağırın. Veya uzak sistemde yeni bir işlem oluşturmak için başka yöntemler de kullanabilirsiniz.
Wait parametresini kullanırken, Start-Process
denetimi döndürmeden önce işlem ağacının (işlem ve tüm alt öğeleri) çıkışını bekler. Bu, yalnızca belirtilen işlemlerin Wait-Process
çıkışını bekleyen cmdlet'in davranışından farklıdır.
Windows'da için en yaygın kullanım örneği Start-Process
, yeni işlem çıkana kadar ilerlemeyi engellemek için Wait parametresini kullanmaktır. Windows dışı sistemlerde, komut satırı uygulamaları için varsayılan davranış ile eşdeğer Start-Process -Wait
olduğundan bu nadiren gereklidir.
Bu cmdlet, System.Diagnostics.Process sınıfının Start yöntemi kullanılarak uygulanır. Bu yöntem hakkında daha fazla bilgi için bkz . Process.Start Yöntemi.
İlişkili Bağlantılar
PowerShell