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

Summary: Этот файл предназначен только для образовательных целей и информационных целей. Можно использовать в качестве справочного материала при записи сценариев автоматизации Cloudlink на языке сценариев PowerShell. Dell не несет ответственности за выполнение этого файла в среде заказчика Dell с помощью сценария PowerShell Сценарий отображает список компьютеров, зарегистрированных в 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 Center с помощью сценария PowerShell.

Resolution

# 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'). введите)
{
$certCallback = @"
с помощью системы;
    с помощью System.Net;
    с помощью System.Net.Security;
    с помощью System.Security.Cryptography.X509Certificates;
    сервер общедоступного классаValidateValidationCallback
{
public static void Ignore()
{
if(ServicePointManager.ServerCertificateValidationCallback ==null)
{
ServicePointManager.ServerCertificateValidationCallback +=
delegate
(
Object obj,
X509Certificate certificate,
                        X509Цепцепирование,
ошибки SslPolicyErrors
)
{
возврат true;
                    };
            }
} }

"@
Add-Type $certCallback
}
[ServerCertificateValidationCallback]::Ignore()Ignore()


$server=''
$client_id=''
$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"
Параметры вывода записи: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' = "Пользователь-носитель $mytoken"}

# Запрос для компьютеров list
$machine_list_query='' https://$serverport/cloudlink/rest/securevm'
$machine_list=Invoke-WebRequest -Method Get -Uri $machine_list_query -Headers $resolveSessionHeader -ContentType $Type

# List the machines on the console

  Запись хоста «Список машин:»   -ForegroundColor Желтая
$machine_list_txt = $machine_list | ConvertFrom-Json
$machine_list_txt | FT

#For
на каждой машине выведите список дисков для выполнения ($machine в $machine_list_txt)
{
$drives_list = $($machine.resources)
Write-Host "$($machine.name) $($machine.ip_address) ($($machine.os_name)) group $($machine.group)" -ForegroundColor Yellow
$drives_list | list | FT
}
}

Affected Products

CloudLink SecureVM, CloudLink
Article Properties
Article Number: 000202396
Article Type: Solution
Last Modified: 13 Mar 2023
Version:  5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.