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

Summary: 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". ...

Acest articol se aplică pentru Acest articol nu se aplică pentru Acest articol nu este legat de un produs specific. Acest articol nu acoperă toate versiunile de produs existente.

Symptoms

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

 

Cause

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.

 

Resolution

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

 

Produse afectate

CloudLink SecureVM, CloudLink
Proprietăți articol
Article Number: 000202396
Article Type: Solution
Ultima modificare: 09 Jun 2026
Version:  7
Găsiți răspunsuri la întrebările dvs. de la alți utilizatori Dell
Servicii de asistență
Verificați dacă dispozitivul dvs. este acoperit de serviciile de asistență.