Unsolved

This post is more than 5 years old

Closed

2 Intern

 • 

56 Posts

6035

April 11th, 2018 08:00

API Documentation and Samples

Does documentation or code examples exist for the WMS API?

1 Rookie

 • 

1 Message

April 8th, 2026 13:47

I know this is an old thread, but I came here a while ago trying to figure this out.  I got close but once I got access to Gemini at work it got me over the hump where I was stuck.  I needed to hook into the API to get thin client data to display on our site instead of giving people logins to WMS.  Here is my code, I hope it helps you out ...

$headerJSON = @{ "content-type" = "application/json"; "odata" = "verbose"; "Accept" = "*/*"}

$credbody = @{
    UserName  = 'apiuser'
    Password  = 'changeme'
} | ConvertTo-Json

# 1. Authenticate and get token
$gettoken = Invoke-WebRequest -Uri "https://myinternalserver.com:443/wms-api/wms/v1/SessionService/Sessions" -Method Post -Body $credbody -Headers $headerJSON -UseBasicParsing
$authHeader = @{'X-Auth-Token' = $($gettoken.Headers.'X-Auth-Token')}
$Header = $authHeader + $headerJSON

# 2. Prepare for Pagination
$baseUrl = "https://myinternalserver.com:443/wms-api"
$currentUrl = "$baseUrl/wms/v1/Systems"
$allSystems = @()

# 3. Loop through pages using the API's built-in nextLink
do {
    Write-Host "Fetching data from: $currentUrl"
    
    # Use Invoke-RestMethod so it automatically parses the JSON
    $response = Invoke-RestMethod -Uri $currentUrl -Method Get -Headers $Header

    # The actual thin client data is inside the 'Members' property
    if ($null -ne $response.Members) {
        $allSystems += $response.Members
    }

    # Look for the next page link
    $nextLink = $response.'Members@odata.nextLink'
    
    if ([string]::IsNullOrWhiteSpace($nextLink)) {
        # If there is no next link, we are done
        $currentUrl = $null 
    } else {
        # Combine the relative path with our base URL for the next request
        $currentUrl = "$baseUrl$nextLink"
    }

} while ($null -ne $currentUrl)

Write-Host "Total thin clients retrieved: $($allSystems.Count)"

# 4. Format and Output the results to HTML

# Add the <title> tag directly into the head so the browser tab displays it
$htmlHead = @"
<title>Thin Clients</title>
<style>
    body { font-family: Arial, sans-serif; margin: 20px; }
    table { border-collapse: collapse; }
    th, td { border: 1px solid #dddddd; text-align: left; padding: 8px; }
    th { background-color: #004B87; color: white; } /* Blue header */
    tr:nth-child(even) { background-color: #f2f2f2; }
</style>
"@

# Create a visible title to sit above the table on the actual webpage
$pageTitle = "<h2>Thin Client Info</h2>"

# Expand the 'Oem' property, rename the columns to what you want, and export to HTML
$allSystems | Select-Object -ExpandProperty Oem | Select-Object `
    @{Name="Group"; Expression={$_.Group}},
    @{Name="Serial"; Expression={$_.Serial}},
    @{Name="Name"; Expression={$_.SystemName}},
    @{Name="IP"; Expression={$_.IpAdddress}}, 
    @{Name="Model"; Expression={$_.PlatformType}},
    @{Name="LastConfigTime"; Expression={$_.LastCheckinTime}},
    @{Name="LastLoggedInUser"; Expression={$_.LastUser}} | 
    ConvertTo-Html -Head $htmlHead -PreContent $pageTitle | 
    Out-File D:\html\thinclients.html

Write-Host "Report generated successfully at D:\html\thinclients.html!"

(edited)

1 Message

May 7th, 2018 10:00

I second this -- I would like to be able to develop scripts that can utilize the API to control endpoints.

For example, utilizing the Citrix XenDesktop Monitor oData api, I could determine when an endpoint has been idle, and force/schedule reboots.  We are a hospital, and there aren't convenient windows to reboot some endpoints without periodically checking to make sure it isn't in use.

Moderator

 • 

967 Posts

June 6th, 2019 04:00

Not available currently.  It is on the roadmap for a future release, ETA unknown.

June 6th, 2019 04:00

Do you have the API Documentation for the Web Service?

2 Intern

 • 

56 Posts

September 23rd, 2019 11:00

Noted by @buffalobound in another post, the Web Service is expected to be a Pro Feature and not available in the Standard edition. 

I recall that the API provided in WDM was available in the Workgroup (free) edition. This seems to be a rather greedy move on Dell's part.

Moderator

 • 

967 Posts

February 11th, 2021 11:00

It was not added to the 3.1 release.  Contact your Dell Sales Executive for estimated availability.

#IWork4Dell

18 Posts

February 11th, 2021 11:00

API support added & document provided in WMS 3.1 ? 

11 Posts

March 21st, 2022 21:00

Have you ever gotten information about API support that allows you to do anything? As I understand it, API support was available in 3.2, with a major upgrade in 3.5. We are running 3.3.1, and I can enable the API on the Portal Administration page, but I can't figure out how to use it.

Moderator

 • 

967 Posts

April 27th, 2022 06:00

From the documentation.

****That link below will take you to the generic Dell API site.  You MUST have or create an account to access the site, you can then search for WYSE and find the API documentation

Prerequisites

Pro license type is required to use the Wyse Management Suite APIs.

Steps

  1. Log in as an administrator.
  2. Go to Portal Administration > Other Settings.
  3. Select the Enable WMS API check box.
  4. Click Save Settings.
    For information about the supported APIs and the relevant documentation, see Wyse Management Suite APIs at   https://api-marketplace.dell.com.

 

buffalobound_0-1651066911221.png

1 Rookie

 • 

3 Posts

April 27th, 2022 06:00

Same, unable to find github or documentation

Top