Start-Process
Uruchamia co najmniej jeden proces na komputerze lokalnym.
Składnia
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>]
Opis
Polecenie Start-Process
cmdlet uruchamia co najmniej jeden proces na komputerze lokalnym. Aby określić program uruchamiany w procesie, wprowadź plik wykonywalny lub plik skryptu albo plik, który można otworzyć za pomocą programu na komputerze. Jeśli określisz plik nie wykonywalny, Start-Process
uruchamia program skojarzony z plikiem, podobny do Invoke-Item
polecenia cmdlet .
Możesz użyć parametrów Start-Process
, aby określić opcje, takie jak ładowanie profilu użytkownika, uruchamianie procesu w nowym oknie lub używanie alternatywnych poświadczeń.
Przykłady
Przykład 1. Uruchamianie procesu, który używa wartości domyślnych
W tym przykładzie jest uruchamiany proces, który używa pliku Sort.exe w bieżącym folderze. Polecenie używa wszystkich wartości domyślnych, w tym domyślnego stylu okna, folderu roboczego i poświadczeń.
Start-Process -FilePath "sort.exe"
Przykład 2. Drukowanie pliku tekstowego
W tym przykładzie zostanie uruchomiony proces, który drukuje plik C:\PS-Test\MyFile.txt.
Start-Process -FilePath "myfile.txt" -WorkingDirectory "C:\PS-Test" -Verb Print
Przykład 3. Rozpoczęcie procesu sortowania elementów do nowego pliku
W tym przykładzie rozpoczyna się proces sortowania elementów w pliku Testsort.txt i zwraca posortowane elementy w plikach Sorted.txt. Wszelkie błędy są zapisywane w pliku SortError.txt.
Start-Process -FilePath "Sort.exe" -RedirectStandardInput "Testsort.txt" -RedirectStandardOutput "Sorted.txt" -RedirectStandardError "SortError.txt" -UseNewEnvironment
Parametr UseNewEnvironment określa, że proces jest uruchamiany z własnymi zmiennymi środowiskowymi.
Przykład 4. Uruchamianie procesu w zmaksymalizowanym oknie
W tym przykładzie rozpoczyna się proces Notepad.exe . Maksymalizuje okno i zachowuje okno do momentu zakończenia procesu.
Start-Process -FilePath "notepad" -Wait -WindowStyle Maximized
Przykład 5. Uruchamianie programu PowerShell jako administrator
W tym przykładzie program PowerShell jest uruchamiany przy użyciu opcji "Uruchom jako administrator".
Start-Process -FilePath "powershell" -Verb RunAs
Przykład 6. Używanie różnych czasowników do rozpoczęcia procesu
W tym przykładzie pokazano, jak znaleźć czasowniki, które mogą być używane podczas uruchamiania procesu. Dostępne czasowniki są określane przez rozszerzenie nazwy pliku, który jest uruchamiany w procesie.
$startExe = New-Object System.Diagnostics.ProcessStartInfo -Args PowerShell.exe
$startExe.verbs
open
runas
W tym przykładzie użyto New-Object
metody do utworzenia obiektu System.Diagnostics.ProcessStartInfo dla PowerShell.exepliku uruchamianego w procesie programu PowerShell. Właściwość Verbs obiektu ProcessStartInfo pokazuje, że można użyć czasowników Open and RunAs z PowerShell.exelub z dowolnym procesem, który uruchamia plik .exe.
Przykład 7. Określanie argumentów procesu
Oba polecenia uruchamiają interpreter poleceń systemu Windows, wydając polecenie dir w folderze "Program Files". Ponieważ ta nazwa folderu zawiera spację, wartość musi być otoczona cudzysłowami ucieczki. Należy pamiętać, że pierwsze polecenie określa ciąg jako ArgumentList. Drugie polecenie tablicy ciągów.
Start-Process -FilePath "$env:comspec" -ArgumentList "/c dir `"%systemdrive%\program files`""
Start-Process -FilePath "$env:comspec" -ArgumentList "/c","dir","`"%systemdrive%\program files`""
Parametry
-ArgumentList
Określa parametry lub wartości parametrów do użycia, gdy to polecenie cmdlet uruchamia proces. Jeśli parametry lub wartości parametrów zawierają spację, muszą być otoczone podwójnymi cudzysłowami.
Type: | String[] |
Aliases: | Args |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Określa konto użytkownika, które ma uprawnienia do wykonania tej akcji. Wpisz nazwę użytkownika, taką jak User01 lub Domain01\User01, lub wprowadź obiekt PSCredential , taki jak jeden z Get-Credential
polecenia cmdlet. Domyślnie polecenie cmdlet używa poświadczeń bieżącego użytkownika.
Type: | PSCredential |
Aliases: | RunAs |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Określa opcjonalną ścieżkę i nazwę pliku programu, który jest uruchamiany w procesie. Wprowadź nazwę pliku wykonywalnego lub dokumentu, takiego jak .txt lub .doc plik skojarzony z programem na komputerze. Ten parametr jest wymagany.
Jeśli określisz tylko nazwę pliku, użyj parametru WorkingDirectory , aby określić ścieżkę.
Type: | String |
Aliases: | PSPath |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LoadUserProfile
Wskazuje, że to polecenie cmdlet ładuje profil użytkownika systemu Windows przechowywany w kluczu rejestru HKEY_USERS dla bieżącego użytkownika.
Ten parametr nie ma wpływu na profile programu PowerShell. Aby uzyskać więcej informacji, zobacz about_Profiles.
Type: | SwitchParameter |
Aliases: | Lup |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoNewWindow
Uruchom nowy proces w bieżącym oknie konsoli. Domyślnie program PowerShell otwiera nowe okno.
Nie można użyć parametrów NoNewWindow i WindowStyle w tym samym poleceniu.
Type: | SwitchParameter |
Aliases: | nnw |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PassThru
Zwraca obiekt procesu dla każdego procesu, który został uruchomiony przez polecenie cmdlet. Domyślnie to polecenie cmdlet nie generuje żadnego wyniku.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RedirectStandardError
Określa plik. To polecenie cmdlet wysyła wszelkie błędy wygenerowane przez proces do określonego pliku. Wprowadź ścieżkę i nazwę pliku. Domyślnie błędy są wyświetlane w konsoli programu .
Type: | String |
Aliases: | RSE |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RedirectStandardInput
Określa plik. To polecenie cmdlet odczytuje dane wejściowe z określonego pliku. Wprowadź ścieżkę i nazwę pliku wejściowego. Domyślnie proces pobiera dane wejściowe z klawiatury.
Type: | String |
Aliases: | RSI |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RedirectStandardOutput
Określa plik. To polecenie cmdlet wysyła dane wyjściowe wygenerowane przez proces do określonego pliku. Wprowadź ścieżkę i nazwę pliku. Domyślnie dane wyjściowe są wyświetlane w konsoli programu .
Type: | String |
Aliases: | RSO |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseNewEnvironment
Wskazuje, że to polecenie cmdlet używa nowych zmiennych środowiskowych określonych dla tego procesu. Domyślnie rozpoczęty proces jest uruchamiany ze zmiennymi środowiskowymi określonymi dla komputera i użytkownika.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Verb
Określa czasownik, który ma być używany, gdy to polecenie cmdlet uruchamia proces. Czasowniki, które są dostępne, są określane przez rozszerzenie nazwy pliku, który jest uruchamiany w procesie.
W poniższej tabeli przedstawiono czasowniki niektórych typowych typów plików procesu.
Typ pliku | zlecenia |
---|---|
cmd | Edytuj, Otwórz, Drukuj, Uruchom jako, RunAsUser |
.exe | Open, RunAs, RunAsUser |
txt | Otwieranie, drukowanie, drukowanie |
wav | Otwórz, odtwórz |
Aby znaleźć czasowniki, których można użyć z plikiem uruchamianym w procesie, użyj New-Object
polecenia cmdlet , aby utworzyć obiekt System.Diagnostics.ProcessStartInfo dla pliku. Dostępne czasowniki znajdują się we właściwości Verbs obiektu ProcessStartInfo . Aby uzyskać szczegółowe informacje, zobacz przykłady.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Wait
Wskazuje, że to polecenie cmdlet czeka na ukończenie określonego procesu i jego elementów podrzędnych przed zaakceptowaniem większej liczby danych wejściowych. Ten parametr pomija wiersz polecenia lub zachowuje okno do momentu zakończenia procesów.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WindowStyle
Określa stan okna, który jest używany do nowego procesu. Dopuszczalne wartości tego parametru to: Normalny, Ukryty, Zminimalizowany i Zmaksymalizowany. Wartość domyślna to Normal.
Nie można użyć parametrów WindowStyle i NoNewWindow w tym samym poleceniu.
Type: | ProcessWindowStyle |
Accepted values: | Normal, Hidden, Minimized, Maximized |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WorkingDirectory
Określa lokalizację pliku wykonywalnego lub dokumentu, który jest uruchamiany w procesie. Wartość domyślna to folder dla nowego procesu.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Dane wejściowe
None
Nie można przekazać potoku danych wejściowych do tego polecenia cmdlet.
Dane wyjściowe
None, System.Diagnostics.Process
To polecenie cmdlet generuje obiekt System.Diagnostics.Process , jeśli określisz parametr PassThru . W przeciwnym razie to polecenie cmdlet nie zwraca żadnych danych wyjściowych.
Uwagi
- To polecenie cmdlet jest implementowane przy użyciu metody Start klasy System.Diagnostics.Process . Aby uzyskać więcej informacji na temat tej metody, zobacz Process.Start Method (Metoda Process.Start).