PowerShell-Skriptbeispiel mit Cloudlink REST API

Summary: Diese Datei dient nur zu Bildungs-/Informationszwecken. Kann als Referenz beim Schreiben von Cloudlink-Automatisierungsskripten mit PowerShell-Skriptsprache verwendet werden. Dell übernimmt keine Verantwortung dafür, dass diese Datei als PowerShell-Skript in der Umgebung des Dell Kunden ausgeführt wird. Das Skript zeigt eine Möglichkeit, bei Cloudlink registrierte Maschinen und ihre Laufwerke aus einem PowerShell-Skript mit Cloudlink RestAPI-Aufrufen aufzulisten. Das Skript ändert nicht den Status eines Systems, sondern zeigt nur Informationen an. Der Zugriff auf den Cloudlink-Node (angegeben durch die IP-Adresse) wird mit den Zugangsdaten eines Cloudlink-Nutzers vom Typ "client" gewährt. ...

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Das Skript kann verwendet werden, um Cloudlink-Vorgänge zu automatisieren. In diesem Beispiel listet das Skript Maschinen auf, die bei CloudLink Center registriert sind.

 

Cause

Das Skript kann für Kunden nützlich sein, die über mehrere Cloudlink Center verfügen oder ihr Cloudlink Center mithilfe eines PowerShell-Skripts verwalten möchten.

 

Resolution

# Copyright Dell © 2021, 2022
# Diese Datei dient ausschließlich Bildungs-/Informationszwecken.
# Kann als Referenz beim Schreiben von Cloudlink-Automatisierungsskripten mit PowerShell-Skriptsprache verwendet werden.
# Dell übernimmt keine Verantwortung dafür, dass diese Datei als PowerShell-Skript in der Umgebung des Dell Kunden ausgeführt wird.

# Das Skript zeigt eine Möglichkeit, bei Cloudlink registrierte Maschinen und ihre Laufwerke aus einem PowerShell-Skript mit Cloudlink RestAPI-Aufrufen aufzulisten.
# Das Skript ändert nicht den Status eines Systems, sondern zeigt nur Informationen an.
# Der Zugriff auf den Cloudlink-Node (angegeben durch die IP-Adresse) wird mit den Zugangsdaten eines Cloudlink-Nutzers vom Typ "client" gewährt.

# Der folgende Teil simuliert die Zertifikatsvalidierung, das Zertifikat ist immer gültig.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
if (-not ([System.Management.Automation.PSTypeName]'ServerCertificateValidationCallback').Type)
{
$certCallback = @"
    using System;
    using System.Net;
    using System.Net.Security;
    using System.Security.Cryptography.X509Certificates;
    public class ServerCertificateValidationCallback
    {
        public static void Ignore()
        {
            if(ServicePointManager.ServerCertificateValidationCallback ==null)
            {
                ServicePointManager.ServerCertificateValidationCallback +=
                    delegate
                    (
                        Object obj,
                        X509Certificate certificate,
                        X509Chain chain,
                        SslPolicyErrors errors
                    )
                    {
                        return true;
                    };
            }
        }
    }
"@
    Add-Type $certCallback
 }
[ServerCertificateValidationCallback]::Ignore()


$server='<cloudlink node ip>'
$client_id='<client id>'
$client_secret='<client secret>'

if ($args[0] -ne $null)
{  $server=$args[0] }

if ($args[1] -ne $null)
{  $client_id=$args[1] }

if ($args[2] -ne $null)
{  $client_secret=$args[2] }



$serverport=$server+":443"

Write-Output  "parameters: server=$server, client_id=$client_id, client_secret=$client_secret"

$responsee=Invoke-RestMethod -Uri "https://$server/cloudlink/oauth/token?grant_type=client_credentials&client_id=$client_id&client_secret=$client_secret&scope=all" -Method Get -TimeoutSec 1800
Write-Output "The response received:"
Write-Output "$responsee"



if($responsee.access_token)
{
  $mytoken=$responsee.access_token

  $Type = "application/json"
  $resolveSessionHeader = @{'Authorization' = "Bearer $mytoken"}

# Abfrage für die Maschinenliste

  $machine_list_query='https://$serverport/cloudlink/rest/securevm'
  $machine_list=Invoke-WebRequest -Method Get -Uri $machine_list_query -Headers $resolveSessionHeader -ContentType $Type

# Listet die Maschinen auf der Konsole auf.

  Write-Host "Machine list:" -ForegroundColor Yellow
  $machine_list_txt = $machine_list | ConvertFrom-Json
  $machine_list_txt | FT

Listen Sie #For jedem Computer die Laufwerke auf.

  foreach ($machine in $machine_list_txt)
  {
    $drives_list = $($machine.resources)
    Write-Host "$($machine.name) $($machine.ip_address) ($($machine.os_name)) group $($machine.group)" -ForegroundColor Yellow
    $drives_list | FT
  }
}

 

Affected Products

CloudLink SecureVM, CloudLink
Article Properties
Article Number: 000202396
Article Type: Solution
Last Modified: 09 Jun 2026
Version:  7
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.