functions/taskengine/Get-PSFTaskEngineCache.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function Get-PSFTaskEngineCache
{
    <#
  .SYNOPSIS
   Retrieve values from the cache for a task engine task.
   
  .DESCRIPTION
   Retrieve values from the cache for a task engine task.
   Tasks scheduled under the PSFramework task engine do not have a way to directly pass information to the primary runspace.
   Using Set-PSFTaskEngineCache, they can store the information somewhere where the main runspace can retrieve it using this function.
   
  .PARAMETER Module
   The name of the module that generated the task.
   Use scriptname in case of using this within a script.
   Note: Must be the same as the name used within the task when calling 'Set-PSFTaskEngineCache'
   
  .PARAMETER Name
   The name of the task for which the cache is.
   Note: Must be the same as the name used within the task when calling 'Set-PSFTaskEngineCache'
   
  .EXAMPLE
   PS C:\> Get-PSFTaskEngineCache -Module 'mymodule' -Name 'maintenancetask'
 #>

    [CmdletBinding()]
    Param (
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [string]
        $Module,
        
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [string]
        $Name
    )
    
    $tempModule = $Module.ToLower()
    $tempName = $Name.ToLower()
    
    try { [PSFramework.TaskEngine.TaskHost]::Cache[$tempModule][$tempName] }
    catch { }
}