Przykład skryptu PowerShell przy użyciu interfejsu API REST CloudLink

Podsumowanie: Ten plik służy wyłącznie do celów edukacyjnych/informacyjnych. Może być używany jako odniesienie podczas pisania skryptów automatyzacji CloudLink za pomocą języka skryptów PowerShell. Firma Dell nie ponosi odpowiedzialności za wykonywanie tego pliku jako skryptu PowerShell w środowisku Klienta firmy Dell. Skrypt przedstawia sposób wyświetlania listy maszyn zarejestrowanych w CloudLink i ich dysków ze skryptu PowerShell przy użyciu wywołań CloudLink RestAPI. Skrypt nie zmienia stanu żadnego systemu, a jedynie wyświetla informacje. Dostęp do węzła CloudLink (wskazywanego przez adres IP) jest przyznawany przy użyciu poświadczeń użytkownika CloudLink typu "klient". ...

Ten artykuł dotyczy Ten artykuł nie dotyczy Ten artykuł nie jest powiązany z żadnym konkretnym produktem. Nie wszystkie wersje produktu zostały zidentyfikowane w tym artykule.

Objawy

Skrypt może być używany do automatyzacji operacji CloudLink. W tym przykładzie skrypt zawiera listę komputerów zarejestrowanych w CloudLink Center.

 

Przyczyna

Skrypt może być przydatny dla klientów, którzy mają kilka centrów CloudLink Center lub chcą zarządzać swoim centrum Cloudlink Center za pomocą skryptu PowerShell.

 

Rozwiązanie

# Copyright Dell © 2021, 2022
# Ten plik jest przeznaczony wyłącznie do celów edukacyjnych/informacyjnych.
# Może być używany jako odniesienie podczas pisania skryptów automatyzacji CloudLink za pomocą języka skryptów PowerShell.
# Firma Dell nie ponosi odpowiedzialności za wykonywanie tego pliku jako skryptu PowerShell w środowisku Klienta firmy Dell.

# Skrypt pokazuje sposób wyświetlania listy maszyn zarejestrowanych w CloudLink i ich dysków ze skryptu PowerShell przy użyciu wywołań CloudLink RestAPI.
# Skrypt nie zmienia stanu żadnego systemu, a jedynie wyświetla informacje.
# Dostęp do węzła CloudLink (wskazywanego przez adres IP) jest przyznawany przy użyciu poświadczeń użytkownika CloudLink typu "klient".

# Poniższa część to mockowanie walidacji certyfikatu, certyfikat jest zawsze ważny.

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

# Zapytanie o listę maszyn

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

# Wymień maszyny w konsoli.

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

#For każdego komputera wymień dyski.

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

 

Produkty, których dotyczy problem

CloudLink SecureVM, CloudLink
Właściwości artykułu
Numer artykułu: 000202396
Typ artykułu: Solution
Ostatnia modyfikacja: 09 cze 2026
Wersja:  7
Znajdź odpowiedzi na swoje pytania u innych użytkowników produktów Dell
Usługi pomocy technicznej
Sprawdź, czy Twoje urządzenie jest objęte usługą pomocy technicznej.