PowerShell-Skriptbeispiel mit Cloudlink REST API

Oversigt: Diese Datei dient nur zu Bildungs-/Informationszwecken. Kann als Referenz beim Schreiben von Cloudlink-Automatisierungsskripten mit PowerShell-Skriptsprache verwendet werden. Dell übernimmt keine Verantwortung dafür, dass diese Datei als PowerShell-Skript in der Umgebung des Dell Kunden ausgeführt wird. Das Skript zeigt eine Möglichkeit, bei Cloudlink registrierte Maschinen und ihre Laufwerke aus einem PowerShell-Skript mit Cloudlink RestAPI-Aufrufen aufzulisten. Das Skript ändert nicht den Status eines Systems, sondern zeigt nur Informationen an. Der Zugriff auf den Cloudlink-Node (angegeben durch die IP-Adresse) wird mit den Zugangsdaten eines Cloudlink-Nutzers vom Typ "client" gewährt. ...

Denne artikel gælder for Denne artikel gælder ikke for Denne artikel er ikke knyttet til et bestemt produkt. Det er ikke alle produktversioner, der er identificeret i denne artikel.

Symptomer

Das Skript kann verwendet werden, um Cloudlink-Vorgänge zu automatisieren. In diesem Beispiel listet das Skript Maschinen auf, die bei CloudLink Center registriert sind.

 

Årsag

Das Skript kann für Kunden nützlich sein, die über mehrere Cloudlink Center verfügen oder ihr Cloudlink Center mithilfe eines PowerShell-Skripts verwalten möchten.

 

Løsning

# Copyright Dell © 2021, 2022
# Diese Datei dient ausschließlich Bildungs-/Informationszwecken.
# Kann als Referenz beim Schreiben von Cloudlink-Automatisierungsskripten mit PowerShell-Skriptsprache verwendet werden.
# Dell übernimmt keine Verantwortung dafür, dass diese Datei als PowerShell-Skript in der Umgebung des Dell Kunden ausgeführt wird.

# Das Skript zeigt eine Möglichkeit, bei Cloudlink registrierte Maschinen und ihre Laufwerke aus einem PowerShell-Skript mit Cloudlink RestAPI-Aufrufen aufzulisten.
# Das Skript ändert nicht den Status eines Systems, sondern zeigt nur Informationen an.
# Der Zugriff auf den Cloudlink-Node (angegeben durch die IP-Adresse) wird mit den Zugangsdaten eines Cloudlink-Nutzers vom Typ "client" gewährt.

# Der folgende Teil simuliert die Zertifikatsvalidierung, das Zertifikat ist immer gültig.

[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"}

# Abfrage für die Maschinenliste

  $machine_list_query='https://$serverport/cloudlink/rest/securevm'
  $machine_list=Invoke-WebRequest -Method Get -Uri $machine_list_query -Headers $resolveSessionHeader -ContentType $Type

# Listet die Maschinen auf der Konsole auf.

  Write-Host "Machine list:" -ForegroundColor Yellow
  $machine_list_txt = $machine_list | ConvertFrom-Json
  $machine_list_txt | FT

Listen Sie #For jedem Computer die Laufwerke auf.

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

 

Berørte produkter

CloudLink SecureVM, CloudLink
Artikelegenskaber
Artikelnummer: 000202396
Artikeltype: Solution
Senest ændret: 09 jun. 2026
Version:  7
Find svar på dine spørgsmål fra andre Dell-brugere
Supportservices
Kontrollér, om din enhed er dækket af supportservices.