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

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

Dieser Artikel gilt für Dieser Artikel gilt nicht für Dieser Artikel ist nicht an ein bestimmtes Produkt gebunden. In diesem Artikel werden nicht alle Produktversionen aufgeführt.

Symptome

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

 

Ursache

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

 

Lösung

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

 

Betroffene Produkte

CloudLink SecureVM, CloudLink
Artikeleigenschaften
Artikelnummer: 000202396
Artikeltyp: Solution
Zuletzt geändert: 09 Juni 2026
Version:  7
Antworten auf Ihre Fragen erhalten Sie von anderen Dell NutzerInnen
Support Services
Prüfen Sie, ob Ihr Gerät durch Support Services abgedeckt ist.