Příklad skriptu PowerShellu s využitím rozhraní Cloudlink REST API

Summary: Tento soubor je určen pouze pro vzdělávací a informační účely. Dá se použít jako referenci při psaní skriptů pro automatizaci Cloudlink pomocí skriptovacího jazyka PowerShell. Společnost Dell nenese žádnou odpovědnost za to, že tento soubor bude v prostředí zákazníka Dell vytvořen jako skript aplikace PowerShell. Skript ukazuje způsob, jak zobrazit seznam počítačů registrovaných v Cloudlinku a jejich jednotek ze skriptu PowerShellu pomocí volání Cloudlink RestAPI. Skript nemění stav žádného systému, pouze zobrazuje informace. Přístup k uzlu Cloudlink (označený IP adresou) je udělen pomocí přihlašovacích údajů uživatele Cloudlink typu "client". ...

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Skript lze použít k automatizaci operací Cloudlink. V tomto příkladu skript zobrazí seznam počítačů zaregistrovaných v nástroji Cloudlink Center.

 

Cause

Skript může být užitečný pro zákazníky, kteří mají několik center Cloudlink Center nebo kteří chtějí spravovat své Cloudlink Center pomocí skriptu PowerShellu.

 

Resolution

# Autorská práva Dell © 2021, 2022
# Tento soubor je určen pouze pro vzdělávací/informační účely.
# Dá se použít jako referenci při psaní skriptů pro automatizaci Cloudlink pomocí skriptovacího jazyka PowerShell.
# Společnost Dell nenese žádnou odpovědnost za to, že tento soubor bude v prostředí zákazníka Dell vytvořen jako skript aplikace PowerShell.

# Skript ukazuje způsob, jak vypsat počítače registrované pomocí Cloudlink a jejich jednotky ze skriptu PowerShellu pomocí volání Cloudlink RestAPI.
# Skript nemění stav žádného systému, pouze zobrazuje informace.
# Přístup k uzlu Cloudlink (označený IP adresou) je udělen pomocí přihlašovacích údajů uživatele Cloudlink typu "client".

# Následující část zesměšňuje ověření certifikátu, certifikát je vždy platný.

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

# Dotaz na seznam počítačů

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

# Vypíše počítače v konzoli.

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

#For každém počítači vypište disky.

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

 

Affected Products

CloudLink SecureVM, CloudLink
Article Properties
Article Number: 000202396
Article Type: Solution
Last Modified: 09 Jun 2026
Version:  7
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.