Consulta de la API de Cyberwatch en PowerShell

El uso de la API, sea cual sea la ruta consultada, requiere autenticarse siguiendo este procedimiento.

Las palabras clave username y password deben ser reemplazadas respectivamente por los valores ID de la clave de acceso API y Secreto de la clave de acceso API del identificador previamente generado, en los ejemplos de código a continuación. Lo mismo aplica para el valor url, que debe corresponder a la dirección IP de su instancia de Cyberwatch.

De manera general, basta con modificar la URL consultada, el método utilizado y el contenido del body de los siguientes snippets para poder realizar una consulta API específica mediante esta cmdlet.

En caso de que el certificado TLS del servidor Cyberwatch no pueda ser reconocido por la máquina en la que se ejecuta este script, es necesario ejecutar el siguiente snippet de código antes de estos snippets:

add-type @"
    using System.Net;
    using System.Security.Cryptography.X509Certificates;
    public class TrustAllCertsPolicy : ICertificatePolicy {
        public bool CheckValidationResult(
            ServicePoint srvPoint, X509Certificate certificate,
            WebRequest request, int certificateProblem) {
            return true;
        }
    }
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy

Snippet de autenticación básica vía Invoke-WebRequest

Este código le permite ejecutar una prueba de conexión a la API de su instancia de Cyberwatch:

$api_url = "https://localhost"
$credentials = "access_key:secret_key"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($credentials))

$response = Invoke-WebRequest -URI $api_url/api/v3/ping -Method Get -Headers @{
    "Accept" = "application/json; charset=utf-8"
    Authorization = "Basic $encodedCreds"}

$response.Content

Snippet de creación de un grupo mediante Invoke-WebRequest con atributo POST

Este código le permite crear un nuevo grupo en su instancia de Cyberwatch:

$api_url = "https://localhost"
$credentials = "access_key:secret_key"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($credentials))

$body = @{
    "name" = "nom_du_groupe"
    "description" = "description_du_groupe"
    "color" = "#da13b4"
} | ConvertTo-Json

$response = Invoke-WebRequest -URI $api_url/api/v3/groups -Method POST -Body $body -Headers @{
    "Accept"      = "application/json; charset=utf-8"
    "Content-Type" = "application/json"
    Authorization = "Basic $encodedCreds"
}

$response.Content

Volver arriba

English Français Español