PowerShell Jobs: Asynchronous Execution, WMI, and Scheduling

Jobs in PowerShell are extension points that allow tasks to run asynchronously in the background. Introduced in v3, jobs fall into three main categories: Remoting-based jobs, WMI/CIM jobs, and Scheduled jobs. Each type has unique mechanics but shares the same purpose—executing units of work without blocking the interactive session. Administrators can start jobs, monitor their status, retrieve results, and manage failures, making jobs a powerful tool for automation and remote management.

PowerShell JobsStart-Job and Invoke-CommandWMI JobsScheduled Jobs

~2 min read · Updated Dec 21, 2025

1. Remoting-Based Jobs


Two primary ways to start jobs:


  • Start-Job: Runs locally in the background.
  • Invoke-Command -AsJob: Executes commands on remote computers, tracked locally.

Jobs consist of a parent and child jobs. Use Get-Job to check status, Receive-Job to retrieve results, Wait-Job to pause until completion, and Stop-Job to terminate jobs.


2. Managing Job Results


  • Results are cached temporarily; -Keep preserves them for multiple retrievals.
  • Jobs expose streams: Error, Progress, Verbose, Debug, and Warning.
  • Failed jobs can be investigated via JobStateInfo and Reason properties.

3. WMI Jobs


WMI cmdlets such as Get-WmiObject support -AsJob, enabling parallel execution across multiple computers. These jobs communicate via RPC, not Remoting. Use -ThrottleLimit to control concurrency.


4. Scheduled Jobs


Introduced in PowerShell v3, scheduled jobs persist beyond the console session and integrate with Windows Task Scheduler.


  • Register-ScheduledJob: Creates jobs with triggers and options.
  • New-JobTrigger: Defines when jobs run (e.g., daily at 3 a.m.).
  • New-ScheduledJobOption: Configures behavior (e.g., require network).

Results are stored on disk in \AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs. Use Receive-Job to retrieve outputs and Remove-Job to clear history.


5. Job Processes


  • Start-Job: Creates child PowerShell.exe processes.
  • Invoke-Command -AsJob: Runs under wsmprovhost.exe via WSMAN.
  • WMI Jobs: Execute through RPC with child jobs per computer.

Conclusion


PowerShell Jobs provide robust asynchronous execution, remote management, and scheduling capabilities. By mastering job creation, monitoring, and troubleshooting, administrators can automate complex tasks efficiently across local and remote environments.


Written & researched by Dr. Shahin Siami

Related Articles

Advanced PowerShell Tips and Tricks: Expert Techniques

PowerShell includes a set of concise, high‑impact features that experienced users rely on to write cleaner, faster, and more maintainable scripts. These expert‑level techniques—such as splatting, default parameter values, subexpressions, parenthetical execution, and custom formatting—don’t change what PowerShell does, but dramatically improve how efficiently you can work. This chapter highlights the most valuable “pro” tricks that streamline automation and reduce repetitive code.

Continue

PowerShell Security: Goals, Mechanisms, and Script Execution Policies

PowerShell Security: Goals, Mechanisms, and Script Execution Policies

Continue

Variables, Arrays, Hash Tables, and Scriptblocks in PowerShell

Variables are the foundation of data handling in PowerShell. They store values—numbers, strings, objects, and more—allowing scripts to reuse information without recalculating it. Building on variables, PowerShell provides richer structures such as arrays, hash tables, and scriptblocks, enabling powerful automation, data manipulation, and dynamic execution. Understanding these constructs is essential for writing clean, efficient, and scalable PowerShell scripts

Continue

PSDrives and PSProviders in PowerShell: Navigating Beyond the File System

Summary: In PowerShell, modules and snap-ins don’t just add cmdlets—they often introduce PSProviders, adapters that expose hierarchical data stores (such as the Registry, IIS, Active Directory, or SQL Server) as drive‑like structures. This allows administrators to navigate and manage diverse systems using familiar file‑system commands. Alongside providers, PSDrives represent active connections to these data stores. Together, they create a unified, intuitive way to work with complex environments using consistent PowerShell syntax.

Continue

Working with HTML and XML Data in PowerShell

PowerShell provides robust capabilities for handling structured data formats such as HTML and XML. HTML is useful for generating professional-looking reports, while XML is widely used for configuration, serialization, and data persistence. PowerShell cmdlets like Invoke-WebRequest, ConvertTo-HTML, Export-Clixml, and Select-XML make it easy to retrieve, parse, generate, and query these formats. By mastering these tools, administrators can automate reporting, preserve complex data structures, and integrate PowerShell with web and enterprise systems.

Continue

Regular Expressions in PowerShell: Patterns, Operators, and Applications

Regular expressions (Regex) are a powerful language for describing data patterns. PowerShell integrates industry-standard regex syntax through the .NET library, enabling pattern matching, searching, and replacing across text and structured data. From validating emails and IP addresses to parsing logs and file paths, regex provides flexible tools for administrators. PowerShell supports regex through operators like -match, cmdlets such as Select-String, and constructs like Switch -regex, as well as the dedicated [regex] object for advanced operations.

Continue