Voorbeeld van een PowerShell-script met CloudLink REST API

Oversigt: Dit bestand is alleen bedoeld voor onderwijs-/informatiedoeleinden. Kan worden gebruikt als referentie bij het schrijven van Cloudlink-automatiseringsscripts met PowerShell-scripttaal. Dell is er niet verantwoordelijk voor dat dit bestand wordt uitgevoerd als een PowerShell-script in de omgeving van de klant van Dell. Het script toont een manier om een lijst te maken van machines die zijn geregistreerd bij Cloudlink en hun schijven vanuit een PowerShell-script met behulp van Cloudlink RestAPI-aanroepen. Het script verandert niets aan de status van een systeem, het geeft alleen informatie weer. Toegang tot het Cloudlink-knooppunt (aangegeven met IP-adres) wordt verleend met de inloggegevens van een Cloudlink-gebruiker van het type 'client'. ...

Denne artikel gælder for Denne artikel gælder ikke for Denne artikel er ikke knyttet til et bestemt produkt. Det er ikke alle produktversioner, der er identificeret i denne artikel.

Symptomer

Het script kan worden gebruikt om Cloudlink-bewerkingen te automatiseren. In dit voorbeeld vermeldt het script machines die zijn geregistreerd bij Cloudlink Center.

 

Årsag

Het script kan nuttig zijn voor klanten met meerdere CloudLink Centers of die hun CloudLink Center willen beheren met behulp van een PowerShell-script.

 

Løsning

# Copyright Dell © 2021, 2022
# Dit bestand is alleen bedoeld voor onderwijs-/informatiedoeleinden.
# Kan worden gebruikt als referentie bij het schrijven van Cloudlink-automatiseringsscripts met PowerShell-scripttaal.
# Dell is er niet verantwoordelijk voor dat dit bestand wordt uitgevoerd als een PowerShell-script in de omgeving van de klant van Dell.

# Het script toont een manier om een lijst te maken van machines die zijn geregistreerd bij Cloudlink en hun schijven vanuit een PowerShell-script met behulp van Cloudlink RestAPI-aanroepen.
# Het script verandert niets aan de status van een systeem, het geeft alleen informatie weer.
# Toegang tot het Cloudlink-knooppunt (aangegeven met IP-adres) wordt verleend met de inloggegevens van een Cloudlink-gebruiker van het type 'client'.

# Het volgende deel drijft de spot met de certificaatvalidatie, het certificaat is altijd geldig.

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

# Query voor de lijst met machines

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

# Maak een lijst van de machines op de console.

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

Geef #For elk apparaat de lijst met schijven.

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

 

Berørte produkter

CloudLink SecureVM, CloudLink
Artikelegenskaber
Artikelnummer: 000202396
Artikeltype: Solution
Senest ændret: 09 jun. 2026
Version:  7
Find svar på dine spørgsmål fra andre Dell-brugere
Supportservices
Kontrollér, om din enhed er dækket af supportservices.