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

Shrnutí: 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". ...

Tento článek se vztahuje na Tento článek se nevztahuje na Tento článek není vázán na žádný konkrétní produkt. V tomto článku nejsou uvedeny všechny verze produktu.

Příznaky

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

 

Příčina

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.

 

Řešení

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

 

Dotčené produkty

CloudLink SecureVM, CloudLink
Vlastnosti článku
Číslo článku: 000202396
Typ článku: Solution
Poslední úprava: 09 čvn 2026
Verze:  7
Najděte odpovědi na své otázky od ostatních uživatelů společnosti Dell
Služby podpory
Zkontrolujte, zda se na vaše zařízení vztahují služby podpory.