Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Polecenia cmdlet mogą wykonywać akcję wewnętrznie lub jako zadanie programu Windows PowerShellw tle. Gdy polecenie cmdlet jest uruchamiane jako zadanie w tle, praca jest wykonywana asynchronicznie we własnym wątku niezależnie od wątku potoku używanego przez polecenie cmdlet. Z punktu widzenia użytkownika, gdy polecenie cmdlet jest uruchamiane jako zadanie w tle, wiersz polecenia zwraca natychmiast, nawet jeśli zadanie zajmuje dłuższy czas, a użytkownik może kontynuować bez przerwy podczas uruchamiania zadania.
Zadania w tle, zadania podrzędne i repozytorium zadań
Obiekt zadania zwracany przez polecenia cmdlet obsługujące zadania w tle definiuje zadanie. (Polecenie cmdlet start-job zwraca również obiekt zadania). Nazwa zadania, identyfikator używany do określania zadania, informacje o stanie i zadania podrzędne są uwzględnione w tej definicji. Zadanie nie wykonuje żadnej pracy. Każde zadanie w tle ma co najmniej jedno zadanie podrzędne, ponieważ zadanie podrzędne wykonuje rzeczywistą pracę. Po uruchomieniu polecenia cmdlet w celu wykonania pracy jako zadania w tle polecenie cmdlet musi dodać zadanie i zadania podrzędne do wspólnego repozytorium, nazywane repozytorium zadań .
Aby uzyskać więcej informacji na temat obsługi zadań w tle w wierszu polecenia, zobacz następujące tematy:
Pisanie polecenia cmdlet uruchamianego jako zadanie w tle
Aby napisać polecenie cmdlet, które można uruchomić jako zadanie w tle, należy wykonać następujące zadania:
Zdefiniuj parametr przełącznika
asJob, aby użytkownik mógł zdecydować, czy uruchomić polecenie cmdlet jako zadanie w tle.Utwórz obiekt pochodzący z klasy System.Management.Automation.Job. Ten obiekt może być obiektem zadania niestandardowego lub obiektem zadania dostarczonym przez program Windows PowerShell, taki jak obiekt System.Management.Automation.PSEventJob.
W metodzie przetwarzania rekordów dodaj instrukcję
if, która wykrywa, czy polecenie cmdlet powinno być uruchamiane jako zadanie w tle.W przypadku obiektów zadań niestandardowych zaimplementuj klasę zadań.
Zwróć odpowiednie obiekty, w zależności od tego, czy polecenie cmdlet jest uruchamiane jako zadanie w tle.
Aby zapoznać się z przykładem kodu, zobacz How to Support Jobs.
Interfejsy API Job-Related w tle
Następujące interfejsy API są udostępniane przez program Windows PowerShell do zarządzania zadaniami w tle.
System.Management.Automation.Job Pochodne niestandardowe obiekty zadań. Jest to abstrakcyjna klasa.
System.Management.Automation.JobRepository Zarządza i udostępnia informacje o bieżących aktywnych zadaniach w tle.
System.Management.Automation.JobState Definiuje stan zadania w tle. Stany obejmują uruchomione, uruchomione i zatrzymane.
System.Management.Automation.JobStateInfo Zawiera informacje o stanie zadania w tle i, jeśli ostatnia zmiana stanu została spowodowana błędem, przyczyną wprowadzenia bieżącego stanu zadania.
System.Management.Automation.JobStateEventArgs Zawiera argumenty zdarzenia zgłaszanego podczas zmiany stanu zadania w tle.
Polecenia cmdlet zadań programu Windows PowerShell
Następujące polecenia cmdlet są udostępniane przez program Windows PowerShell do zarządzania zadaniami w tle.
Pobiera zadania w tle programu Windows PowerShell uruchomione w bieżącej sesji.
Pobiera wyniki zadań w tle programu Windows PowerShell w bieżącej sesji.
Usuwa zadanie w tle programu Windows PowerShell.
Uruchamia zadanie w tle programu Windows PowerShell.
Zatrzymuje zadanie w tle programu Windows PowerShell.
Pomija wiersz polecenia do momentu ukończenia jednego lub wszystkich zadań w tle programu Windows PowerShell uruchomionych w sesji.