Start-Process
Yerel bilgisayarda bir veya daha fazla işlem başlatır.
Syntax
Default (Varsayılan)
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'i 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-ProcessInvoke-Item cmdlet'ine benzer şekilde 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 Start-Process parametrelerini kullanabilirsiniz.
Örnekler
Örnek 1: Varsayılan değerleri kullanan bir işlem başlatma
Bu örnek, geçerli klasördeki Sort.exe dosyasını 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, C:\PS-Test\MyFile.txt dosyasını yazdıran 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, TestSort.txt dosyasındaki öğeleri sıralayan ve Sorted.txt dosyalarındaki sıralanmış öğeleri döndüren bir işlem başlatır. Hatalar SortError.txt dosyasına 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, Notepad.exe işlemini başlatır. 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, Yönetici olarak çalıştır seçeneğini kullanarak PowerShell'i 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 dosya olan New-Objectiçin system.diagnostics.ProcessStartInfo nesnesi oluşturmak için powershell.exe kullanır.
ProcessStartInfo nesnesinin Fiilleri özelliği, Open ve RunAs fiillerini powershell.exeveya .exe dosyası çalıştıran herhangi bir işlemle kullanabileceğinizi gösterir.
Örnek 7: İşlemin bağımsız değişkenlerini belirtme
Her iki komut da Windows komut yorumlayıcısını başlatır ve dir klasöründe bir Program Files komutu yayınlar. Bu klasör adı bir boşluk içerdiğinden, değerin kaçış tırnaklarıyla çevrelenmesi gerekir.
İlk komutun bir dizeyi ArgumentListolarak belirttiğine dikkat edin. İ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`""
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.
Parametre özellikleri
| Tür: | String[] |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
| Diğer adlar: | Argümanlar |
Parametre kümeleri
(All)
| Position: | 1 |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | 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\User01gibi bir kullanıcı adı yazın veya cmdlet'i tarafından oluşturulan Get-Credential nesnesi girin. Bir kullanıcı adı yazarsanız parolayı girmeniz istenir.
Kimlik bilgileri bir PSCredential nesnesinde depolanır ve parola SecureStringolarak depolanır.
Uyarı
SecureString veri koruması hakkında daha fazla bilgi için bkz. SecureString ne kadar güvenli?.
Parametre özellikleri
| Tür: | PSCredential |
| Default value: | Current user |
| Joker karakterleri destekler: | False |
| DontShow: | False |
| Diğer adlar: | RunAs |
Parametre kümeleri
Default
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-FilePath
İşlemde çalışan programın isteğe bağlı yolunu ve dosya adını belirtir. Yürütülebilir dosyanın veya bilgisayardaki bir programla ilişkilendirilmiş .txt veya .doc dosyası gibi bir belgenin adını girin. Bu parametre gereklidir.
Yalnızca bir dosya adı belirtirseniz, yolu belirtmek için WorkingDirectory parametresini kullanın.
Önemli
Bu parametrenin güvenilmeyen verilerle kullanılması bir güvenlik riskidir. Yalnızca bu parametreyle güvenilen verileri kullanın. Daha fazla bilgi için bkz. Tüm Girişleri Doğrulama.
Parametre özellikleri
| Tür: | String |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
| Diğer adlar: | PSPath |
Parametre kümeleri
(All)
| Position: | 0 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-LoadUserProfile
Bu cmdlet'in geçerli kullanıcının HKEY_USERS kayıt defteri anahtarında depolanan Windows kullanıcı profilini yüklediğini gösterir.
Bu parametre PowerShell profillerini etkilemez. Daha fazla bilgi için bkz. about_Profiles.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
| Diğer adlar: | Lup |
Parametre kümeleri
Default
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-NoNewWindow
Geçerli konsol penceresinde yeni işlemi başlatın. Varsayılan olarak Windows'ta PowerShell yeni bir pencere açar.
Aynı komutta NoNewWindow ve WindowStyle parametrelerini kullanamazsınız.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
| Diğer adlar: | Kkb |
Parametre kümeleri
Default
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | 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.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | 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.
Parametre özellikleri
| Tür: | String |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
| Diğer adlar: | RSE |
Parametre kümeleri
Default
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | 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.
Parametre özellikleri
| Tür: | String |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
| Diğer adlar: | RSI |
Parametre kümeleri
Default
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | 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.
Parametre özellikleri
| Tür: | String |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
| Diğer adlar: | RSO |
Parametre kümeleri
Default
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | 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.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
Default
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | 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ışan dosyayla kullanılabilecek fiilleri bulmak için, New-Object cmdlet'ini kullanarak dosyaya yönelik bir System.Diagnostics.ProcessStartInfo nesnesi oluşturun. Kullanılabilir fiiller, ProcessStartInfo nesnesinin Fiiller özelliğindedir. Ayrıntılar için örneklere bakın.
Parametre özellikleri
| Tür: | String |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
UseShellExecute
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | 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.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-WindowStyle
Yeni işlem için kullanılan pencerenin durumunu belirtir. Varsayılan değer şudur: Normal.
Bu parametre için kabul edilebilir değerler şunlardır:
NormalHiddenMinimizedMaximized
Aynı komutta WindowStyle ve NoNewWindow parametrelerini kullanamazsınız.
Parametre özellikleri
| Tür: | ProcessWindowStyle |
| Default value: | None |
| Kabul edilen değerler: | Normal, Hidden, Minimized, Maximized |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-WorkingDirectory
Yeni işlemin başlaması gereken konumu belirtir. Varsayılan, başlatılmakta olan yürütülebilir dosyanın veya belgenin konumudur. Joker karakterler desteklenmez. Yol, joker karakter olarak yorumlanacak karakterler içermemelidir.
Önemli
Bu parametrenin güvenilmeyen verilerle kullanılması bir güvenlik riskidir. Yalnızca bu parametreyle güvenilen verileri kullanın. Daha fazla bilgi için bkz. Tüm Girişleri Doğrulama.
Parametre özellikleri
| Tür: | String |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
CommonParameters
Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.
Girişler
None
Nesneleri bu cmdlet'e yöneltemezsiniz.
Çıkışlar
None
Varsayılan olarak, bu cmdlet çıkış döndürmez.
Process
PassThru parametresini kullandığınızda, bu cmdlet bir İşlem nesnesi döndürür.
Notlar
Windows PowerShell, Start-Processiçin aşağıdaki diğer adları içerir:
sapsstart
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 bash veya cmd.exe'da yaptığınız gibi çalıştırırsınız.
Start-Process cmdlet'i 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.
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,
Start-Processkomutunun hemen ardından yeni işlem sonlandırılır. Bu nedenle, başlatılan işlemin oturumdan daha uzun süre devam etmesi içinStart-Processuzak oturumda kullanamazsınız.
uzak oturumda Start-Process kullanmanız 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 çıkışını bekleyen Wait-Process cmdlet'inin davranışından farklıdır.
Windows'da, Start-Process için en yaygın kullanım örneği, 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ış Start-Process -Waiteşdeğer 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 Metodu.