Przykład skryptu PowerShell przy użyciu interfejsu API REST Cloudlink

Résumé: Plik jest przeznaczony wyłącznie do celów edukacyjnych/informacyjnych. Może być używany jako punkt odniesienia podczas pisania skryptów automatyzacji CloudLink przy użyciu języka skryptu PowerShell. Firma Dell nie ponosi żadnej odpowiedzialności za ten plik wykonywany jako skrypt PowerShell w środowisku klienta firmy Dell Skrypt przedstawia sposób wyświetlenia listy komputerów zarejestrowanych w cloudlink i ich dyskach ze skryptu PowerShell przy użyciu wywołań Cloudlink RestAPI. Skrypt nie zmienia stanu żadnego systemu, wyświetla tylko informacje. Dostęp do węzła Cloudlink (wskazanego przez adres IP) jest przyznawany przy użyciu poświadczeń użytkownika CloudLink typu "client". ...

Cet article concerne Cet article ne concerne pas Cet article n’est associé à aucun produit spécifique. Toutes les versions du produit ne sont pas identifiées dans cet article.

Symptômes

Skrypt może być używany do automatyzacji operacji CloudLink. W tym przykładzie skrypt wyświetla listę komputerów zarejestrowanych w Cloudlink Center.

Cause

Skrypt może być przydatny dla klientów, którzy mają kilka centrów Cloudlink lub chcą zarządzać swoim centrum Cloudlink Center przy użyciu skryptu PowerShell.

Résolution

# Copyright Dell © 2021, 2022
# Ten plik jest przeznaczony wyłącznie do celów edukacyjnych/informacyjnych.
# Może być używany jako punkt odniesienia podczas pisania skryptów automatyzacji CloudLink przy użyciu języka skryptu PowerShell.
# Firma Dell nie ponosi żadnej odpowiedzialności za ten plik wykonywany jako skrypt PowerShell w środowisku

klienta Firmy Dell# Skrypt ten umożliwia wyświetlanie listy komputerów zarejestrowanych w Cloudlink i ich dysków ze skryptu
PowerShell # przy użyciu wywołań RestAPI Cloudlink.
# Skrypt nie zmienia stanu żadnego systemu, wyświetla tylko informacje.
# Dostęp do węzła Cloudlink (wskazanego przez adres IP) jest przyznawany przy użyciu poświadczeń użytkownika CloudLink typu "client".

# Poniższa część makietę sprawdzania poprawności certyfikatu, certyfikat jest zawsze prawidłowy
[Net.ServicePointManager]:SecurityProtocol = [Net.SecurityProtocolType]::Tls12
if (-not ([System.Management.Automation.PSTypeName]'ServerCertificateValidationCallback'). Wpisz)
{
$certCallback = @"
przy użyciu systemu;
    korzystanie z System.Net;
    korzystanie z oprogramowania System.Net.Security;
    korzystanie z System.Security.Cryptography.X509Certificates;
    public class ServerCertificateValidationCallback
{
public static void Ignore()
{
if(ServicePointManager.ServerCertificateValidationCallback ==null)
{
ServicePointManager.ServerCertificateValidationCallback +=
delegate
(
obiekt obj,
certyfikat certyfikatu X509,
                        Łańcuch X509Chain,
błędy
SslPolicyErrors)
{
return true;
                    };
            }
}
"@
Add-Type $certCallback
}
[ServerCertificateValidationCallback]: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"
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

# Lista komputerów w konsoli

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

#For każdego komputera, wyświetl listę napędów
foreach ($machine w $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
} }

Produits concernés

CloudLink SecureVM, CloudLink
Propriétés de l’article
Numéro d’article: 000202396
Type d’article: Solution
Dernière modification: 13 mars 2023
Version:  5
Trouvez des réponses à vos questions auprès d’autres utilisateurs Dell
Services de support
Vérifiez si votre appareil est couvert par les services de support.