Voorbeeld van PowerShell-script met Behulp van Cloudlink REST API

Summary: 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'. ...

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

Het script kan worden gebruikt om Cloudlink-bewerkingen te automatiseren. In dit voorbeeld vermeldt het script machines die zijn geregistreerd bij Cloudlink Center.

Cause

Het script kan handig zijn voor klanten die verschillende Cloudlink Centers hebben of hun Cloudlink Center willen beheren met behulp van een PowerShell-script.

Resolution

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

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.