How to get sessions that are running on a machine
Use REST APIs to get sessions that are running on a machine in your Citrix Virtual Apps and Desktops site.
Follow the prerequisites and examples to get started with this API.
You can make API requests using the PowerShell code, C# code, Python, or any tool that supports invoking the REST API.
Prerequisites to get sessions that are running on a machine
- Read the Learning journey for Citrix Virtual Apps and Desktops APIs section to ensure that you have the
bearer token
. - Get
siteid
from How to get site id API. - Get
nameOrId
of machine from How to get all machines or How to perform an advanced search for machines APIs. - Invoke the API described in this document from a client host or from the API exploration tab to get sessions that are running on a machine.
Get sessions that are running on a machine using any REST API tool
Learn from the following example to get sessions that are running on a machine using any REST API tool.
Request
GET https://[DdcServerAddress]/cvad/manage/Machines/{nameOrId}/Sessions HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
Authorization: CWSAuth bearer=<token-from-prerequisites>
Citrix-CustomerId: loy6oujtu6a4
Citrix-InstanceId: 22ded57c-0306-47e4-b6e8-fed6252759e1
<!--NeedCopy-->
Response
HTTP/1.1 200 OK
citrix-transactionid: ba78d60e-eb03-4e15-83fb-55ee32be61be
content-Length: 1755
content-Type: application/json; charset=utf-8
date: "Mon, 07 Dec 2020 09:25:11 GMT"
Server: Citrix Systems, Inc.
{
"Items": [
{
"Id": "c12a6ce8-a3cf-4db5-83d4-d7b23374b575",
"Uid": 34230,
"ApplicationsInUse": [
{
...
}
],
"AppState": "Active",
"AppStateLastChangeTime": "12/7/2020 7:25:34 AM",
"Brokering": {
"AutonomouslyBrokered": false,
"DurationMilliseconds": null,
"Time": null,
"UserName": null,
"UserSid": null
},
"Client": {
...
},
"Connection": {
"ConnectedViaHostName": null,
"ConnectedViaIP": "10.0.16.11",
"ConnectionMode": "Brokered",
"LaunchedViaHostName": null,
"LaunchedViaIP": "52.151.217.206",
"Protocol": "Hdx",
"SecureIcaActive": false,
"SmartAccessTags": []
},
"ContainerScopes": [
{
"Scopes": [
{
...
}
],
"ScopeType": "MachineCatalog"
},
{
"Scopes": [
{
...
}
],
"ScopeType": "DeliveryGroup"
}
],
...
]
}
<!--NeedCopy-->
Get sessions that are running on a machine using PowerShell
Learn from the following example to get sessions that are running on a machine using any PowerShell code.
function GetMachineSessions {
param (
[Parameter(Mandatory=$true)]
[string] $customerid,
[Parameter(Mandatory=$true)]
[string] $siteid,
[Parameter(Mandatory=$true)]
[string] $nameOrId,
[Parameter(Mandatory=$true)]
[string] $bearerToken
)
$requestUri = [string]::Format("https://[DdcServerAddress]/cvad/manage/Machines/{0}/Sessions", $nameOrId)
$headers = @{
"Accept" = "application/json";
"Authorization" = "CWSAuth Bearer=$bearerToken";
"Citrix-CustomerId" = $customerid;
"Citrix-InstanceId" = $siteid;
}
$response = Invoke-RestMethod -Uri $requestUri -Method GET -Headers $headers
return $response
}
$customerId = "customer1"
$siteId = "61603f15-cdf9-4c7f-99ff-91636601a795"
$nameOrId = "56f1cbf3-1cc6-40cd-9c82-c95633ba88bb"
$bearerToken = "ey1.."
$response = GetMachineSessions $customerid $siteid $nameOrId $bearerToken
<!--NeedCopy-->
Get sessions that are running on a machine using C# code
Learn from the following example to get sessions that are running on a machine using any C# code.
public static async Task<string> GetMachineSessions(
string customerid,
string siteid,
string nameOrId,
string bearerToken)
{
var requestUri = string.Format("https://[DdcServerAddress]/cvad/manage/Machines/{0}/Sessions", nameOrId);
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.ParseAdd("application/json");
client.DefaultRequestHeaders.Add("Citrix-CustomerId", customerid);
client.DefaultRequestHeaders.Add("Citrix-InstanceId", siteid);
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("CWSAuth Bearer=" + bearerToken);
var response = await client.GetAsync(requestUri);
if (response != null)
{
var content = await response.Content.ReadAsStringAsync();
return content;
}
return null;
}
}
<!--NeedCopy-->
Get sessions that are running on a machine using Python
Learn from the following example to get sessions that are running on a machine using Python.
import requests
def get_machine_sessions(bearerToken, customerid, siteid, nameOrId):
request_uri = "https://[DdcServerAddress]/cvad/manage/Machines/{0}/Sessions".format(nameOrId)
headers = {
'Authorization': 'CWSAuth Bearer=%s' % bearerToken,
'Citrix-CustomerId': customerid,
'Citrix-InstanceId': siteid,
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.get(request_uri, headers = headers)
return response.json()
<!--NeedCopy-->