Voorbeeld van PowerShell-script met Behulp van Cloudlink REST API
摘要: 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'. ...
本文章適用於
本文章不適用於
本文無關於任何特定產品。
本文未識別所有產品版本。
症狀
Het script kan worden gebruikt om Cloudlink-bewerkingen te automatiseren. In dit voorbeeld vermeldt het script machines die zijn geregistreerd bij Cloudlink Center.
原因
Het script kan handig zijn voor klanten die verschillende Cloudlink Centers hebben of hun Cloudlink Center willen beheren met behulp van een PowerShell-script.
解析度
# 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
}
# 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
}
受影響的產品
CloudLink SecureVM, CloudLink文章屬性
文章編號: 000202396
文章類型: Solution
上次修改時間: 13 3月 2023
版本: 5
向其他 Dell 使用者尋求您問題的答案
支援服務
檢查您的裝置是否在支援服務的涵蓋範圍內。