Exemple de script PowerShell à l’aide de l’API REST Cloudlink

Zusammenfassung: Ce fichier est uniquement destiné à des fins d’éducation et d’information. Peut être utilisé comme référence lors de l’écriture de scripts d’automatisation Cloudlink avec le langage de script PowerShell. Dell décline toute responsabilité quant à l’exécution de ce fichier en tant que script PowerShell dans l’environnement du Client Dell. Le script montre un moyen de répertorier les machines enregistrées auprès de Cloudlink et leurs disques à partir d’un script PowerShell à l’aide des appels Cloudlink RestAPI. Le script ne modifie pas l’état d’un système, il affiche simplement des informations. L’accès au nœud Cloudlink (indiqué par l’adresse IP) est accordé avec les informations d’identification d’un utilisateur Cloudlink de type « client ». ...

Dieser Artikel gilt für Dieser Artikel gilt nicht für Dieser Artikel ist nicht an ein bestimmtes Produkt gebunden. In diesem Artikel werden nicht alle Produktversionen aufgeführt.

Symptome

Le script peut être utilisé pour automatiser les opérations Cloudlink. Dans cet exemple, le script répertorie les machines enregistrées auprès de CloudLink Center.

 

Ursache

Le script peut être utile aux clients disposant de plusieurs CloudLink Centers ou qui souhaitent gérer leur CloudLink Center à l’aide d’un script PowerShell.

 

Lösung

# Copyright Dell © 2021, 2022
# Ce fichier est uniquement destiné à des fins éducatives et informatives.
# Peut être utilisé comme référence lors de l’écriture de scripts d’automatisation Cloudlink avec le langage de script PowerShell.
# Dell décline toute responsabilité quant à l’exécution de ce fichier en tant que script PowerShell dans l’environnement du Client Dell.

# Le script montre un moyen de répertorier les machines enregistrées auprès de Cloudlink et leurs disques à partir d’un script PowerShell à l’aide des appels Cloudlink RestAPI.
# Le script ne modifie pas l’état d’un système, il affiche simplement des informations.
# L’accès au nœud Cloudlink (indiqué par l’adresse IP) est accordé avec les informations d’identification d’un utilisateur Cloudlink de type « client ».

# La partie suivante simule la validation du certificat, le certificat est toujours valide.

[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"}

# Requête pour la liste des machines

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

# Répertorie les machines sur la console.

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

#For chaque machine, répertoriez les disques.

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

 

Betroffene Produkte

CloudLink SecureVM, CloudLink
Artikeleigenschaften
Artikelnummer: 000202396
Artikeltyp: Solution
Zuletzt geändert: 09 Juni 2026
Version:  7
Antworten auf Ihre Fragen erhalten Sie von anderen Dell NutzerInnen
Support Services
Prüfen Sie, ob Ihr Gerät durch Support Services abgedeckt ist.