PowerShell-Skriptbeispiel mit Cloudlink REST API

Samenvatting: 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. ...

Dit artikel is van toepassing op Dit artikel is niet van toepassing op Dit artikel is niet gebonden aan een specifiek product. Niet alle productversies worden in dit artikel vermeld.

Symptomen

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.

 

Oorzaak

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.

 

Oplossing

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

 

Getroffen producten

CloudLink SecureVM, CloudLink
Artikeleigenschappen
Artikelnummer: 000202396
Artikeltype: Solution
Laatst aangepast: 09 jun. 2026
Versie:  7
Vind antwoorden op uw vragen via andere Dell gebruikers
Support Services
Controleer of uw apparaat wordt gedekt door Support Services.