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