Voorbeeld van PowerShell-script met Behulp van Cloudlink REST API
摘要: Dit bestand is alleen bedoeld voor onderwijs-/informatiedoeleinden. Kan worden gebruikt als referentie bij het schrijven van Cloudlink automatiseringsscripts met PowerShell-scripttaal. Dell is niet verantwoordelijk voor het uitvoeren van dit bestand als een PowerShell-script in de omgeving van de dell klant Het script toont een manier om machines die zijn geregistreerd met Cloudlink en hun schijven uit een PowerShell-script weer te geven met behulp van Cloudlink RestAPI-oproepen. Het script wijzigt de status van geen enkel systeem, maar geeft alleen informatie weer. Toegang tot het Cloudlink-knooppunt (aangegeven door IP-adres) wordt verleend met referenties van een CloudLink-gebruiker van het type 'client'. ...
本文适用于
本文不适用于
本文并非针对某种特定的产品。
本文并非包含所有产品版本。
症状
Het script kan worden gebruikt om Cloudlink-bewerkingen te automatiseren. In dit voorbeeld vermeldt het script machines die zijn geregistreerd bij Cloudlink Center.
原因
Het script kan handig zijn voor klanten die verschillende Cloudlink Centers hebben of hun Cloudlink Center willen beheren met behulp van een PowerShell-script.
解决方案
# Copyright Dell © 2021, 2022
# Dit bestand is alleen bedoeld voor onderwijs/ informatiedoeleinden.
# Kan worden gebruikt als referentie bij het schrijven van Cloudlink automatiseringsscripts met PowerShell-scripttaal.
# Dell neemt geen verantwoordelijkheid voor het uitvoeren van dit bestand als een PowerShell-script in de omgeving
van de klant van Dell. Het script toont een manier om machines die zijn geregistreerd met Cloudlink en hun schijven uit een PowerShell-script
# weer te geven met behulp van Cloudlink RestAPI-oproepen.
# Het script wijzigt de status van geen enkel systeem, maar geeft alleen informatie weer.
# Toegang tot het Cloudlink-knooppunt (aangegeven door IP-adres) wordt verleend met referenties van een CloudLink-gebruiker van het type 'client'.
# Het volgende onderdeel maakt gebruik van de certificaatvalidatie, certificaat altijd geldig
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
if (-not ([System.Management.Automation.PSTypeName]'ServerCertificateValidation Callback'). Typ)
{
$certCallback = @"
met behulp van het systeem;
met behulp van System.Net;
met behulp van System.Net.Security;
met behulp van System.Security.Cryptography.X509Certificates;
public class ServerCertificateValidation Callback
{
public static void Ignore()
{
if(ServicePointManager.ServerCertificateValidation Callback ==null)
{
ServicePointManager.ServerCertificateValidation Callback +=
delegate
(
Object obj,
X509Certificate certificaat,
X509Chain-keten,
SslPolicyErrors-fouten
)
{
return true;
};
}
}
}
"@
Add-Type $certCallback
}
[ServerCertificateValidation Callback]:Ignore()
$server=''
$client_id=''
$client_secret=''
if ($args[2]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"}
# Query for the machines 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
Write-Host "Machine list:" -Voorgrondkleur geel
$machine_list_txt = $machine_list | ConvertFrom-Json
$machine_list_txt | FT
#For elke machine, vermeld de stations
foreach ($machine in $machine_list_txt)
{
$drives_list = $($machine.resources)
Write-Host "$($machine.name) $($machine.ip_address) ($($machine.os_name)) group $($machine.group)" -Voorgrondkleur geel
$drives_list | FT
}
# Dit bestand is alleen bedoeld voor onderwijs/ informatiedoeleinden.
# Kan worden gebruikt als referentie bij het schrijven van Cloudlink automatiseringsscripts met PowerShell-scripttaal.
# Dell neemt geen verantwoordelijkheid voor het uitvoeren van dit bestand als een PowerShell-script in de omgeving
van de klant van Dell. Het script toont een manier om machines die zijn geregistreerd met Cloudlink en hun schijven uit een PowerShell-script
# weer te geven met behulp van Cloudlink RestAPI-oproepen.
# Het script wijzigt de status van geen enkel systeem, maar geeft alleen informatie weer.
# Toegang tot het Cloudlink-knooppunt (aangegeven door IP-adres) wordt verleend met referenties van een CloudLink-gebruiker van het type 'client'.
# Het volgende onderdeel maakt gebruik van de certificaatvalidatie, certificaat altijd geldig
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
if (-not ([System.Management.Automation.PSTypeName]'ServerCertificateValidation Callback'). Typ)
{
$certCallback = @"
met behulp van het systeem;
met behulp van System.Net;
met behulp van System.Net.Security;
met behulp van System.Security.Cryptography.X509Certificates;
public class ServerCertificateValidation Callback
{
public static void Ignore()
{
if(ServicePointManager.ServerCertificateValidation Callback ==null)
{
ServicePointManager.ServerCertificateValidation Callback +=
delegate
(
Object obj,
X509Certificate certificaat,
X509Chain-keten,
SslPolicyErrors-fouten
)
{
return true;
};
}
}
}
"@
Add-Type $certCallback
}
[ServerCertificateValidation Callback]:Ignore()
$server=''
$client_id=''
$client_secret=''
if ($args[2]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"}
# Query for the machines 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
Write-Host "Machine list:" -Voorgrondkleur geel
$machine_list_txt = $machine_list | ConvertFrom-Json
$machine_list_txt | FT
#For elke machine, vermeld de stations
foreach ($machine in $machine_list_txt)
{
$drives_list = $($machine.resources)
Write-Host "$($machine.name) $($machine.ip_address) ($($machine.os_name)) group $($machine.group)" -Voorgrondkleur geel
$drives_list | FT
}
受影响的产品
CloudLink SecureVM, CloudLink文章属性
文章编号: 000202396
文章类型: Solution
上次修改时间: 13 3月 2023
版本: 5
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。