PowerShell-Skriptbeispiel mit cloudlink-REST-API
Сводка: Diese Datei dient nur zu Schulungs-/Informationszwecken. Kann als Referenz beim Schreiben von Cloudlink-Automatisierungsskripten mit PowerShell-Skriptsprache verwendet werden. Dell übernimmt keine Verantwortung für die Ausführung dieser Datei als PowerShell-Skript in der Umgebung des Dell Kunden. Das Skript zeigt eine Möglichkeit, maschinen aufzulisten, die mit Cloudlink und ihren Laufwerken über ein PowerShell-Skript mithilfe von Cloudlink RestAPI-Aufrufen registriert sind. Das Skript ändert den Status eines Systems nicht, sondern zeigt nur Informationen an. Der Zugriff auf den Cloudlink-Node (durch IP-Adresse angegeben) wird mit den Anmeldedaten eines Cloudlink-Benutzers vom Typ "Client" gewährt. ...
Данная статья применяется к
Данная статья не применяется к
Эта статья не привязана к какому-либо конкретному продукту.
В этой статье указаны не все версии продуктов.
Симптомы
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.
Причина
Das Skript kann für Kunden nützlich sein, die mehrere Cloudlink Center haben oder ihr Cloudlink Center mit einem PowerShell-Skript verwalten möchten.
Разрешение
# Copyright Dell © 2021, 2022
# 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, maschinen aufzulisten, die mit Cloudlink und ihren Laufwerken über ein PowerShell-Skript
# mithilfe von Cloudlink RestAPI-Aufrufen registriert sind.
# Das Skript ändert den Status eines Systems nicht, sondern zeigt nur Informationen an.
# Der Zugriff auf den Cloudlink-Node (durch IP-Adresse angegeben) wird mit den Anmeldedaten eines Cloudlink-Benutzers vom Typ "Client" gewährt.
# Im folgenden Teil wird die Zertifikatvalidierung simuliert. Das Zertifikat ist immer gültig
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
if (-not ([System.Management.Automation.PSTypeName]'ServerCertificateValidationCallback'). Geben Sie)
{
$certCallback = @"
unter Verwendung des Systems ein.
mit System.Net;
unter Verwendung von System.Net.Security
mit System.Security.Cryptography.X509Certificates;
public class ServerCertificateValidationCallback
{
public static void Ignore()
{
if(ServicePointManager.ServerCertificateValidationCallback ==null)
{
ServicePointManager.ServerCertificateValidationCallback +=
delegate
(
Object obj,
X509Certificate certificate,
X509Chain-Kette,
SslPolicyErrors-Fehler
)
{
true zurückgeben;
};
}
}
}
"@
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"
, wenn$.
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 Rechner in der Konsole auf
Write-Host "Machine list:" Gelbes $machine_list_txt mit Farbe "Vordergrundfarbe
" = $machine_list | ConvertFrom-Json
$machine_list_txt | FT
#For jeder Maschine, listet die Laufwerke
auf ($machine in $machine_list_txt)
{
$drives_list = $($machine.resources)
Write-Host "$($machine.name) $($machine.ip_address) ($($machine.os_name)) group $($machine.group)" -VordergrundColor Yellow
$drives_list | FT
}
# 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, maschinen aufzulisten, die mit Cloudlink und ihren Laufwerken über ein PowerShell-Skript
# mithilfe von Cloudlink RestAPI-Aufrufen registriert sind.
# Das Skript ändert den Status eines Systems nicht, sondern zeigt nur Informationen an.
# Der Zugriff auf den Cloudlink-Node (durch IP-Adresse angegeben) wird mit den Anmeldedaten eines Cloudlink-Benutzers vom Typ "Client" gewährt.
# Im folgenden Teil wird die Zertifikatvalidierung simuliert. Das Zertifikat ist immer gültig
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
if (-not ([System.Management.Automation.PSTypeName]'ServerCertificateValidationCallback'). Geben Sie)
{
$certCallback = @"
unter Verwendung des Systems ein.
mit System.Net;
unter Verwendung von System.Net.Security
mit System.Security.Cryptography.X509Certificates;
public class ServerCertificateValidationCallback
{
public static void Ignore()
{
if(ServicePointManager.ServerCertificateValidationCallback ==null)
{
ServicePointManager.ServerCertificateValidationCallback +=
delegate
(
Object obj,
X509Certificate certificate,
X509Chain-Kette,
SslPolicyErrors-Fehler
)
{
true zurückgeben;
};
}
}
}
"@
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"
, wenn$.
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 Rechner in der Konsole auf
Write-Host "Machine list:" Gelbes $machine_list_txt mit Farbe "Vordergrundfarbe
" = $machine_list | ConvertFrom-Json
$machine_list_txt | FT
#For jeder Maschine, listet die Laufwerke
auf ($machine in $machine_list_txt)
{
$drives_list = $($machine.resources)
Write-Host "$($machine.name) $($machine.ip_address) ($($machine.os_name)) group $($machine.group)" -VordergrundColor Yellow
$drives_list | FT
}
Затронутые продукты
CloudLink SecureVM, CloudLinkСвойства статьи
Номер статьи: 000202396
Тип статьи: Solution
Последнее изменение: 13 Mar 2023
Версия: 5
Получите ответы на свои вопросы от других пользователей Dell
Услуги технической поддержки
Проверьте, распространяются ли на ваше устройство услуги технической поддержки.