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

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

Dit artikel is van toepassing op Dit artikel is niet van toepassing op Dit artikel is niet gebonden aan een specifiek product. Niet alle productversies worden in dit artikel vermeld.

Symptomen

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

 

Oorzaak

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.

 

Oplossing

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

 

Getroffen producten

CloudLink SecureVM, CloudLink
Artikeleigenschappen
Artikelnummer: 000202396
Artikeltype: Solution
Laatst aangepast: 09 jun. 2026
Versie:  7
Vind antwoorden op uw vragen via andere Dell gebruikers
Support Services
Controleer of uw apparaat wordt gedekt door Support Services.