Пример сценария 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
}
}
# Этот файл предназначен только для образовательных целей и информационных целей.
# Можно использовать в качестве справочного материала при записи сценариев автоматизации 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, CloudLinkArticle 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.