endpoints/GET/Invoke-GetProcess.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
<#
 .DESCRIPTION
  This script will return the body passed to the RestEndpoint.
 .EXAMPLE
        Invoke-GetProcess.ps1 -RequestArgs "Name=PowerShell&MainWindowTitle=RestPS"
 .NOTES
        This will return a json object
#>


param(
    $RequestArgs
)

if ($RequestArgs -like "*&*")
{
    $ArgumentPairs = $RequestArgs.split("&")

    $Property0, $Value0 = $ArgumentPairs[0].split("=")
    $Property1, $Value1 = $ArgumentPairs[1].split("=")
    if ($Property0 -eq "Name")
    {
        $Message = Get-Process -Name $Value0 | Where-Object {$_.($Property1) -like "*$Value1*"} | Select-Object ProcessName, Id, MainWindowTitle
    }
    else
    {
        $Message = Get-Process -Name $Value1 | Where-Object {$_.($Property0) -like "*$Value0*"} | Select-Object ProcessName, Id, MainWindowTitle
    }
}
else
{
    $Property, $Value = $RequestArgs.split("=")
    $Message = Get-Process -Name $Value | Select-Object ProcessName, Id, MainWindowTitle
}


return $Message