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

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

Este artículo se aplica a Este artículo no se aplica a Este artículo no está vinculado a ningún producto específico. No se identifican todas las versiones del producto en este artículo.

Síntomas

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

 

Causa

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

 

Resolución

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

 

Productos afectados

CloudLink SecureVM, CloudLink
Propiedades del artículo
Número del artículo: 000202396
Tipo de artículo: Solution
Última modificación: 09 jun 2026
Versión:  7
Encuentre respuestas a sus preguntas de otros usuarios de Dell
Servicios de soporte
Compruebe si el dispositivo está cubierto por los servicios de soporte.