Search code examples
powershellrunspace

Check whether a RunspacePool is already open on a machine


I have a process that runs Powersell script on a VM. This script defines a RunspacePool on the VM and sets threshold (no. of Runspaces) based on the resource capability of that VM. This process is recurring so I do not want it to keep defining and opening RunspacePools when there is already one defined and opened on that VM

At the beginning of the Powershell script, I have tried to check whether a Runspacepool is already defined\ opened by calling RunspacePoolStateInfo or RunspacePoolAvailability properties. But these are not identified as the Runspacepool object itself is not available in the new window that the process opens up to run the script

I am basically looking for a way to identify that a RunspacePool is open on a VM by using Powershell scripting


Solution

  • Answer for PowerShell V5 and newer

    You can get the Runspacess in the current processes by running

    Get-Runspace
    

    or if you know the name

    Get-Runspace -Name <name>
    

    Remote Runspaces in PowerShell V5

    If the Runspace you want to check is in another process, you must first do this.

    Enter-PSHostProcess -Id <int>
    

    or

    Enter-PSHostProcess -Process <ProcessObject>