PowerShell-Skriptbeispiel mit Cloudlink REST API

Resumo: 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. ...

Este artigo aplica-se a Este artigo não se aplica a Este artigo não está vinculado a nenhum produto específico. Nem todas as versões do produto estão identificadas neste artigo.

Sintomas

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.

 

Causa

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.

 

Resolução

# 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
  }
}

 

Produtos afetados

CloudLink SecureVM, CloudLink
Propriedades do artigo
Número do artigo: 000202396
Tipo de artigo: Solution
Último modificado: 09 jun. 2026
Versão:  7
Encontre as respostas de outros usuários da Dell para suas perguntas.
Serviços de suporte
Verifique se o dispositivo está coberto pelos serviços de suporte.