resources/session.ps1
<# .SYNOPSIS Gets the current User Sessions on the specified Proxy .DESCRIPTION This returns a session object with the corresponding SessionId. https://help.qlik.com/en-US/sense-developer/November2018/apis/ProxyAPI/OpenAPI_Main.generated.html .PARAMETER id This is to return the Session Object for a Specific Session ID .PARAMETER userDirectory The userDirecotry paramater is used as part of identitying the users sessions, must be used with userID .PARAMETER userId The userID paramater is used as part of identitying the users sessions, must be used with userDirecotry .PARAMETER virtualProxyPrefix Specifies the Virtual Proxy to get the sessions from .EXAMPLE PS C:\> Get-QlikSession .EXAMPLE PS C:\> Get-QlikSession -virtualProxyPrefix "/ProxyX1" .EXAMPLE PS C:\> Get-QlikSession -userDirectory Domain -userId Marc .EXAMPLE PS C:\> Get-QlikSession -virtualProxyPrefix "/ProxyX1" -userDirectory Domain -userId Marc .NOTES Additional information about the Session API can be found https://help.qlik.com/en-US/sense-developer/November2018/apis/ProxyAPI/OpenAPI_Main.generated.html#19b1cf4a56294022A146C978a46f3a59 https://help.qlik.com/en-US/sense-developer/November2018/Subsystems/ProxyServiceAPI/Content/Sense_ProxyServiceAPI/ProxyServiceAPI-Session-Module-API-Session-Get.htm #> function Get-QlikSession { [CmdletBinding(DefaultParameterSetName = 'Default')] param ( [Parameter(ParameterSetName = 'Id', Mandatory = $true, ValueFromPipelineByPropertyName = $true, Position = 0)] [string]$id, [Parameter(ParameterSetName = 'User', Mandatory = $true, ValueFromPipelineByPropertyName = $true, Position = 0)] [string]$userDirectory, [Parameter(ParameterSetName = 'User', Mandatory = $true, ValueFromPipelineByPropertyName = $true, Position = 1)] [string]$userId, [Alias('vp')] [string]$virtualProxyPrefix ) PROCESS { $proxy = Get-QlikProxy local $prefix = "https://$($proxy.serverNodeConfiguration.hostName):$($proxy.settings.restListenPort)/qps" if ($PSBoundParameters.ContainsKey("virtualProxyPrefix")) { $prefix = "$($prefix)/$virtualProxyPrefix" } switch ($PSCmdlet.ParameterSetName) { USER{ $path = "$prefix/user/$userDirectory/$userId" } ID{ $path = "$prefix/session/$id" } Default { $path = "$prefix/session" } } try { $response = Invoke-QlikGet $path } catch { $response = $null } return $response } } |