Пример сценария PowerShell с использованием API-интерфейса REST CloudLink

Summary: Этот файл предназначен только для образовательных/информационных целей. Может использоваться в качестве справочника при написании сценариев автоматизации CloudLink с помощью языка сценариев PowerShell. Dell не несет ответственности за то, что этот файл используется в качестве сценария PowerShell в среде Заказчика Dell. В этом сценарии показан способ получения списка компьютеров, зарегистрированных в CloudLink, и их накопителей из сценария PowerShell с помощью вызовов CloudLink RestAPI. Скрипт не изменяет состояние какой-либо системы, а только отображает информацию. Доступ к узлу CloudLink (определяется IP-адресом) предоставляется с помощью учетных данных пользователя CloudLink типа 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

Сценарий можно использовать для автоматизации операций Cloudlink. В этом примере сценарий перечисляет компьютеры, зарегистрированные в CloudLink Center.

 

Cause

Этот сценарий может быть полезен заказчикам, у которых есть несколько центров CloudLink или которые хотят управлять своим центром CloudLink с помощью сценария PowerShell.

 

Resolution

# Copyright Dell © 2021, 2022
# Этот файл предназначен только для образовательных и информационных целей.
# Может использоваться в качестве справочника при написании сценариев автоматизации CloudLink с помощью языка сценариев PowerShell.
# Dell не несет ответственности за то, что этот файл используется в качестве сценария PowerShell в среде Заказчика Dell.

# В скрипте показан способ вывода списка компьютеров, зарегистрированных в CloudLink, и их накопителей из сценария PowerShell с помощью вызовов CloudLink RestAPI.
# Скрипт не изменяет состояние какой-либо системы, а только отображает информацию.
# Доступ к узлу CloudLink (определяется IP-адресом) предоставляется с помощью учетных данных пользователя CloudLink типа client.

# Следующая часть имитирует проверку сертификата, сертификат всегда действителен.

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

# Запрос списка машин

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

# Вывод списка компьютеров в консоли.

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

#For каждом компьютере перечислите диски.

  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.