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

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

Dit artikel is van toepassing op Dit artikel is niet van toepassing op Dit artikel is niet gebonden aan een specifiek product. Niet alle productversies worden in dit artikel vermeld.

Symptomen

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

 

Oorzaak

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

 

Oplossing

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

 

Getroffen producten

CloudLink SecureVM, CloudLink
Artikeleigenschappen
Artikelnummer: 000202396
Artikeltype: Solution
Laatst aangepast: 09 jun. 2026
Versie:  7
Vind antwoorden op uw vragen via andere Dell gebruikers
Support Services
Controleer of uw apparaat wordt gedekt door Support Services.