Start-Process
Yerel bilgisayarda bir veya daha fazla işlem başlatır.
Sözdizimi
UseShellExecute
Start-Process
[-FilePath] <string>
[[-ArgumentList] <string[]>]
[-WorkingDirectory <string>]
[-PassThru]
[-Verb <string>]
[-WindowStyle <ProcessWindowStyle>]
[-Wait]
[-Environment <hashtable>]
[-WhatIf]
[-Confirm]
[<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`""
Örnek 8: Linux'ta ayrılmış işlem oluşturma
Windows'da 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 Start-Processnohupile birleştirebilirsiniz. Aşağıdaki örnek, başlatma oturumunu kapattıktan sonra bile canlı kalan Linux üzerinde PowerShell'in arka plan örneğini başlatır.
nohup komutu, geçerli dizindeki dosya 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 nohup başlatan Linux pwsh komutunu çalıştırmaktadı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, Start-Processkullandığınızda, yeni işlem geçerli oturumla aynı ortam değişkenleriyle oluşturulur. bu değişkenlerin değerlerini geçersiz kılmak için Ortam parametresini kullanabilirsiniz.
Bu örnekte, FOO ortam değişkeni foo değer olarak oturuma eklenir.
Örnek Start-Process üç kez çalıştırılır ve her seferinde FOO değerini döndürür. İlk komut ortam değişkenini geçersiz kılmaz. İkinci komutta FOObarolarak ayarlanır. Üçüncü komutta, FOO$nullolarak ayarlanır 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.
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 |
-Confirm
Cmdlet'i çalıştırmadan önce sizden onay ister.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
| Diğer adlar: | Cf |
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 |
-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 |
-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 $nullolarak belirtin.
Belirtilen değişkenler işlemde değiştirilir.
PATH ortam değişkenini belirttiğinizde, $PSHOME değeriyle ve ardından bu parametreden belirtilen değerle değiştirilir. Windows'da komut, yeni değerden sonra Makine ve Kullanıcı kapsamlarında PATH değerlerini ekler.
Bu parametre PowerShell 7.4'e eklendi.
Parametre özellikleri
| Tür: | Hashtable |
| 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 |
-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 sistem komutuna karşılık olmayan bir dosya adı belirtirseniz, yolu belirtmek için WorkingDirectory parametresini kullanın.
Parametre özellikleri
| Tür: | String |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
| Diğer adlar: | PSPath, Yol |
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. parametresi Windows dışı sistemler için geçerli değildir.
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. 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.
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.
Windows'da UseNewEnvironment kullandığınızda, yeni işlem yalnızca Machine kapsamı için tanımlanan varsayılan ortam değişkenlerini içerir. Bu, $Env:USERNAMESYSTEMolarak ayarlanmasının yan etkisine sahiptir.
Kullanıcı kapsamındaki değişkenlerin hiçbiri dahil değil.
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.
parametresi Windows dışı sistemler için geçerli değildir.
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 |
-WhatIf
Cmdlet çalıştırılırsa ne olacağını gösterir. Cmdlet çalıştırılmıyor.
Bu parametre PowerShell 6.0'da kullanıma sunulmuştur.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
| Diğer adlar: | Wi |
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.
parametresi Windows dışı sistemler için geçerli değildir. Windows olmayan sistemlerde kullanırken, hiçbir zaman yeni bir pencere elde etmezsiniz.
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.
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.
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
PowerShell, Start-Processiçin aşağıdaki diğer adları 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 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.
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 Start-Process gedit çalıştırın.
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.