Fix ps1
This commit is contained in:
317
getDatosPost.ps1
317
getDatosPost.ps1
@@ -1,248 +1,119 @@
|
||||
# =================================================================================
|
||||
# SCRIPT DE INVENTARIO AUTOMÁTICO PARA INVENTARIO-IT
|
||||
#
|
||||
# Descripción:
|
||||
# Este script recopila información de hardware y software del equipo y la envía
|
||||
# a la API del sistema de inventario. Es compatible con Windows 7 y versiones
|
||||
# superiores (Windows 10, 11, Server 2012+).
|
||||
# =================================================================================
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Recopila información de hardware y software y la envía a la API de Inventario IT.
|
||||
.DESCRIPTION
|
||||
Este script utiliza la lógica de recopilación de discos original y probada, adaptada para
|
||||
funcionar con los nuevos endpoints y la estructura de datos de la API de Inventario IT.
|
||||
.NOTES
|
||||
Versión: 2.4
|
||||
Fecha: 08/10/2025
|
||||
- Revertida la lógica de detección de discos para W10+ a la versión original para máxima compatibilidad.
|
||||
#>
|
||||
|
||||
# =================================================================================
|
||||
# --- CONFIGURACIÓN ---
|
||||
# Host/IP del servidor de API.
|
||||
$baseUrl = "http://equipos.eldia.net"
|
||||
# ---------------------
|
||||
|
||||
|
||||
# --- DETECCIÓN DE VERSIÓN DE WINDOWS Y FUNCIONES AUXILIARES ---
|
||||
$apiBaseUrl = "http://equipos.eldia.net/api"
|
||||
# =================================================================================
|
||||
|
||||
# Verificar versión de Windows
|
||||
$osInfo = Get-WmiObject Win32_OperatingSystem
|
||||
$isWindows7 = [version]$osInfo.Version -lt [version]"6.2"
|
||||
|
||||
if ($isWindows7) {
|
||||
Write-Host "Ejecutando en modo de compatibilidad para Windows 7 (PowerShell 2.0)..."
|
||||
|
||||
# Función de conversión a JSON para PowerShell 2.0
|
||||
function ConvertTo-BasicJson {
|
||||
param($InputObject)
|
||||
if ($null -eq $InputObject) { return "null" }
|
||||
if ($InputObject -is [array]) {
|
||||
$json = @()
|
||||
foreach ($item in $InputObject) { $json += ConvertTo-BasicJson -InputObject $item }
|
||||
return "[$($json -join ',')]"
|
||||
}
|
||||
elseif ($InputObject -is [System.Collections.IDictionary]) {
|
||||
$props = @()
|
||||
foreach ($key in $InputObject.Keys) { $props += "`"$key`":$(ConvertTo-BasicJson -InputObject $InputObject[$key])" }
|
||||
return "{$($props -join ',')}"
|
||||
}
|
||||
elseif ($InputObject -is [string]) {
|
||||
return "`"$($InputObject.ToString().Replace('\', '\\').Replace('"', '\"'))`""
|
||||
}
|
||||
elseif ($InputObject -is [bool]) {
|
||||
return $InputObject.ToString().ToLower()
|
||||
}
|
||||
else { # Números y otros tipos
|
||||
return $InputObject.ToString()
|
||||
}
|
||||
}
|
||||
|
||||
# Función de envío de datos para PowerShell 2.0
|
||||
function Send-Data {
|
||||
param($Url, $Method, $Body)
|
||||
try {
|
||||
$webClient = New-Object System.Net.WebClient
|
||||
$webClient.Headers.Add("Content-Type", "application/json")
|
||||
return $webClient.UploadString($Url, $Method, $Body)
|
||||
} catch {
|
||||
Write-Host "Error en el envío a ${Url}: $($_.Exception.Message)"
|
||||
return $null
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Write-Host "Ejecutando en modo estándar (PowerShell 5+)..."
|
||||
}
|
||||
|
||||
|
||||
# --- RECOPILACIÓN DE DATOS ---
|
||||
|
||||
Write-Host "Recopilando información del sistema..."
|
||||
|
||||
if ($isWindows7) {
|
||||
# --- Lógica para Windows 7 ---
|
||||
$hostname = $env:COMPUTERNAME
|
||||
$username = $env:USERNAME
|
||||
|
||||
Write-Host "Ejecutando versión adaptada para Windows 7..."
|
||||
# Función de conversión JSON básica
|
||||
function ConvertTo-BasicJson { param($InputObject); if ($InputObject -is [array]) { $json = @(); foreach ($item in $InputObject) { $json += ConvertTo-BasicJson -InputObject $item }; return "[$($json -join ',')]" } elseif ($InputObject -is [System.Collections.IDictionary]) { $props = @(); foreach ($key in $InputObject.Keys) { $props += "`"$key`":$(ConvertTo-BasicJson -InputObject $InputObject[$key])" }; return "{$($props -join ',')}" } else { return "`"$($InputObject.ToString().Replace('"','\"'))`"" } }
|
||||
# Obtener información del sistema
|
||||
$hostname = $env:COMPUTERNAME; $username = $env:USERNAME
|
||||
$activeInterface = Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object { $_.IPEnabled -eq $true -and $_.DefaultIPGateway -ne $null } | Sort-Object InterfaceIndex | Select-Object -First 1
|
||||
$ip = if ($activeInterface) { $activeInterface.IPAddress[0] } else { "N/A" }
|
||||
$mac = if ($activeInterface) { $activeInterface.MACAddress } else { "N/A" }
|
||||
|
||||
$cpu = (Get-WmiObject Win32_Processor).Name
|
||||
$motherboard = (Get-WmiObject Win32_BaseBoard).Product
|
||||
$ramSlots = (Get-WmiObject Win32_PhysicalMemoryArray).MemoryDevices
|
||||
$osName = $osInfo.Caption
|
||||
$osArchitecture = $osInfo.OSArchitecture
|
||||
|
||||
# Discos (WMI)
|
||||
$disks = @(Get-WmiObject Win32_DiskDrive | Where-Object { $_.MediaType -like "*hard disk*" } | ForEach-Object {
|
||||
[PSCustomObject]@{
|
||||
mediatype = if ((Get-WmiObject -Query "ASSOCIATORS OF {Win32_DiskDrive.DeviceID='$($_.DeviceID)'} WHERE AssocClass=Win32_DiskDriveToDiskPartition" | Get-WmiObject -Query "ASSOCIATORS OF {Win32_DiskPartition.DeviceID='$($_.DeviceID)'} WHERE AssocClass=Win32_LogicalDiskToPartition" | Select-Object -First 1).Description -like "*SSD*") { "SSD" } else { "HDD" }
|
||||
size = [math]::Round($_.Size / 1GB, 0)
|
||||
}
|
||||
})
|
||||
|
||||
# Módulos de RAM (WMI) - ¡NUEVO!
|
||||
$ramModules = @(Get-WmiObject Win32_PhysicalMemory | ForEach-Object {
|
||||
[PSCustomObject]@{
|
||||
partNumber = $_.PartNumber.Trim()
|
||||
fabricante = $_.Manufacturer.Trim()
|
||||
tamano = [math]::Round($_.Capacity / 1GB, 0)
|
||||
velocidad = $_.Speed
|
||||
slot = $_.DeviceLocator.Trim()
|
||||
}
|
||||
})
|
||||
$installedRAMGB = ($ramModules | Measure-Object -Property tamano -Sum).Sum
|
||||
|
||||
$ip = if ($activeInterface) { $activeInterface.IPAddress[0] } else { "No IP" }; $mac = if ($activeInterface) { ($activeInterface.MACAddress) -replace '-',':' } else { "No MAC" }
|
||||
$cpu = (Get-WmiObject Win32_Processor).Name; $motherboard = (Get-WmiObject Win32_BaseBoard).Product
|
||||
$installedRAM = (Get-WmiObject Win32_PhysicalMemory | Measure-Object -Property Capacity -Sum).Sum; $installedRAMGB = [math]::Round($installedRAM / 1GB, 0)
|
||||
$ram_slots = (Get-WmiObject Win32_PhysicalMemoryArray).MemoryDevices
|
||||
$osName = $osInfo.Caption; $osArchitecture = $osInfo.OSArchitecture
|
||||
$memoriasRam = @(Get-WmiObject Win32_PhysicalMemory | ForEach-Object { [PSCustomObject]@{ partNumber = $_.PartNumber.Trim(); fabricante = $_.Manufacturer.Trim(); tamano = [math]::Round($_.Capacity / 1GB, 0); velocidad = $_.Speed; slot = $_.BankLabel } })
|
||||
$jsonDataEquipo = ConvertTo-BasicJson @{ hostname = $hostname; ip = $ip; mac = $mac; cpu = $cpu -join ","; motherboard = $motherboard; ram_installed = $installedRAMGB; ram_slots = $ram_slots; os = $osName; architecture = $osArchitecture }
|
||||
$jsonDataUsuario = ConvertTo-BasicJson @{ username = $username }
|
||||
$jsonMemoriasRam = ConvertTo-BasicJson -InputObject $memoriasRam
|
||||
$memoriasRamMaestra = $memoriasRam | ForEach-Object { $obj = New-Object PSCustomObject; Add-Member -InputObject $obj -MemberType NoteProperty -Name "partNumber" -Value $_.partNumber; Add-Member -InputObject $obj -MemberType NoteProperty -Name "fabricante" -Value $_.fabricante; Add-Member -InputObject $obj -MemberType NoteProperty -Name "tamano" -Value $_.tamano; Add-Member -InputObject $obj -MemberType NoteProperty -Name "velocidad" -Value $_.velocidad; $obj }
|
||||
$jsonMemoriasRamMaestra = ConvertTo-BasicJson -InputObject $memoriasRamMaestra
|
||||
# Función de envío WebClient
|
||||
function Send-Data { param($Url, $Body, $Method = "POST"); try { $webClient = New-Object System.Net.WebClient; $webClient.Headers.Add("Content-Type", "application/json"); return $webClient.UploadString($Url, $Method, $Body) } catch { Write-Host "Error en el envío a $Url : $($_.Exception.Message)"; return $null } }
|
||||
} else {
|
||||
# --- Lógica para Windows moderno ---
|
||||
$hostname = $env:COMPUTERNAME
|
||||
$username = $env:USERNAME
|
||||
|
||||
Write-Host "Ejecutando versión estándar para Windows 8/10/11..."
|
||||
# Obtener información del sistema
|
||||
$hostname = $env:COMPUTERNAME; $username = $env:USERNAME
|
||||
$activeInterface = Get-NetIPConfiguration | Where-Object { $_.IPv4DefaultGateway -ne $null -and $_.NetAdapter.Status -eq 'Up' } | Sort-Object InterfaceMetric | Select-Object -First 1
|
||||
$ip = if ($activeInterface) { $activeInterface.IPv4Address.IPAddress } else { "N/A" }
|
||||
$mac = if ($activeInterface) { $activeInterface.NetAdapter.MacAddress } else { "N/A" }
|
||||
$ip = if ($activeInterface) { $activeInterface.IPv4Address.IPAddress } else { "No IP" }; $mac = if ($activeInterface) { ($activeInterface.NetAdapter.MacAddress) -replace '-',':' } else { "No MAC" }
|
||||
$cpu = (Get-CimInstance Win32_Processor).Name; $motherboard = (Get-CimInstance Win32_BaseBoard).Product
|
||||
$installedRAM = (Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property Capacity -Sum).Sum; $installedRAMGB = [math]::Round($installedRAM / 1GB, 0)
|
||||
$os = Get-CimInstance Win32_OperatingSystem; $osName = $os.Caption; $osArchitecture = $os.OSArchitecture
|
||||
$memoriasRam = @(Get-CimInstance Win32_PhysicalMemory | ForEach-Object { [PSCustomObject]@{ partNumber = $_.PartNumber.Trim(); fabricante = $_.Manufacturer.Trim(); tamano = [math]::Round($_.Capacity / 1GB, 0); velocidad = $_.Speed; slot = $_.DeviceLocator } })
|
||||
$jsonDataEquipo = @{ hostname = $hostname; ip = $ip; mac = $mac; cpu = $cpu; motherboard = $motherboard; ram_installed = $installedRAMGB; ram_slots = (Get-CimInstance -ClassName Win32_PhysicalMemoryArray | Measure-Object -Property MemoryDevices -Sum).Sum; os = $osName; architecture = $osArchitecture } | ConvertTo-Json -Depth 10 -Compress
|
||||
$jsonDataUsuario = @{ username = $username } | ConvertTo-Json -Compress
|
||||
$jsonMemoriasRam = $memoriasRam | ConvertTo-Json -Depth 10 -Compress
|
||||
$jsonMemoriasRamMaestra = $memoriasRam | Select-Object -ExcludeProperty slot | ConvertTo-Json -Depth 10 -Compress
|
||||
}
|
||||
|
||||
$cpu = (Get-CimInstance Win32_Processor).Name
|
||||
$motherboard = (Get-CimInstance Win32_BaseBoard).Product
|
||||
$ramSlots = (Get-CimInstance Win32_PhysicalMemoryArray).MemoryDevices
|
||||
$os = Get-CimInstance Win32_OperatingSystem
|
||||
$osName = $os.Caption
|
||||
$osArchitecture = $os.OSArchitecture
|
||||
|
||||
# Discos (CIM)
|
||||
$disks = @(Get-PhysicalDisk | Where-Object {$_.MediaType -ne "Unspecified"} | ForEach-Object {
|
||||
[PSCustomObject]@{
|
||||
mediatype = $_.MediaType.ToString()
|
||||
size = [math]::Round($_.Size / 1GB, 0)
|
||||
###################################################################
|
||||
# CÓDIGO COMÚN PARA OBTENCIÓN DE DISCOS (MÉTODO UNIVERSAL)
|
||||
###################################################################
|
||||
Write-Host "Obteniendo información de discos (método compatible)..."
|
||||
$disks = @(Get-WmiObject Win32_DiskDrive | Where-Object { $_.Size -gt 0 } | ForEach-Object {
|
||||
$model = $_.Model
|
||||
$mediaType = "HDD"
|
||||
if ($model -like "*SSD*" -or $model -like "KINGSTON SA400S37*") {
|
||||
$mediaType = "SSD"
|
||||
}
|
||||
})
|
||||
[PSCustomObject]@{ mediatype = $mediaType; size = [math]::Round($_.Size / 1GB, 0) }
|
||||
})
|
||||
|
||||
# Módulos de RAM (CIM) - ¡NUEVO!
|
||||
$ramModules = @(Get-CimInstance Win32_PhysicalMemory | ForEach-Object {
|
||||
[PSCustomObject]@{
|
||||
partNumber = $_.PartNumber.Trim()
|
||||
fabricante = $_.Manufacturer.Trim()
|
||||
tamano = [math]::Round($_.Capacity / 1GB, 0)
|
||||
velocidad = $_.Speed
|
||||
slot = $_.DeviceLocator.Trim()
|
||||
}
|
||||
})
|
||||
$installedRAMGB = ($ramModules | Measure-Object -Property tamano -Sum).Sum
|
||||
}
|
||||
|
||||
|
||||
# --- CONSTRUCCIÓN DE PAYLOADS JSON ---
|
||||
|
||||
$equipoPayload = @{
|
||||
hostname = $hostname
|
||||
ip = $ip
|
||||
mac = $mac
|
||||
cpu = if ($cpu -is [array]) { $cpu -join ', ' } else { $cpu }
|
||||
motherboard = $motherboard
|
||||
ram_installed = $installedRAMGB
|
||||
ram_slots = $ramSlots
|
||||
os = $osName
|
||||
architecture = $osArchitecture
|
||||
}
|
||||
|
||||
$usuarioPayload = @{
|
||||
username = $username
|
||||
}
|
||||
|
||||
# La API espera una lista de discos
|
||||
$discosPayload = $disks
|
||||
|
||||
# La API espera una lista de módulos de RAM
|
||||
$ramModulesPayload = $ramModules
|
||||
|
||||
|
||||
# --- CONVERSIÓN A JSON ---
|
||||
|
||||
if ($isWindows7) {
|
||||
$jsonEquipo = ConvertTo-BasicJson -InputObject $equipoPayload
|
||||
$jsonUsuario = ConvertTo-BasicJson -InputObject $usuarioPayload
|
||||
$jsonDiscos = ConvertTo-BasicJson -InputObject $discosPayload
|
||||
$jsonRamModules = ConvertTo-BasicJson -InputObject $ramModulesPayload
|
||||
if ($null -eq $disks -or $disks.Count -eq 0) {
|
||||
Write-Host "[ADVERTENCIA] No se pudo obtener información de los discos. Se enviará una lista vacía."
|
||||
$jsonDiscos = "[]"
|
||||
} else {
|
||||
$jsonEquipo = $equipoPayload | ConvertTo-Json -Depth 5 -Compress
|
||||
$jsonUsuario = $usuarioPayload | ConvertTo-Json -Compress
|
||||
$jsonDiscos = $discosPayload | ConvertTo-Json -Depth 5 -Compress
|
||||
$jsonRamModules = $ramModulesPayload | ConvertTo-Json -Depth 5 -Compress
|
||||
# 1. Convertimos la colección a JSON.
|
||||
$tempJson = $disks | ConvertTo-Json -Depth 10 -Compress
|
||||
|
||||
# 2. Verificamos si el texto resultante NO empieza con '[', lo que significa que es un objeto único.
|
||||
if (-not $tempJson.StartsWith("[")) {
|
||||
# 3. Si es un objeto único, lo envolvemos en corchetes para convertirlo en un array de un solo elemento.
|
||||
$jsonDiscos = "[$tempJson]"
|
||||
} else {
|
||||
# 4. Si ya es un array, lo usamos tal cual.
|
||||
$jsonDiscos = $tempJson
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# --- ENVÍO DE DATOS A LA API ---
|
||||
|
||||
Write-Host "Enviando datos a la API en $baseUrl..."
|
||||
|
||||
# Definición de las rutas de la API
|
||||
$rutaEquipo = "$baseUrl/api/equipos/$hostname"
|
||||
$rutaAsociarUsuario = "$baseUrl/api/equipos/$hostname/asociarusuario"
|
||||
$rutaCrearUsuario = "$baseUrl/api/usuarios" # Para asegurar que el usuario exista
|
||||
$rutaCrearDiscos = "$baseUrl/api/discos" # Para asegurar que los discos existan
|
||||
$rutaAsociarDiscos = "$baseUrl/api/equipos/$hostname/asociardiscos"
|
||||
$rutaAsociarRam = "$baseUrl/api/equipos/$hostname/ram" # ¡NUEVA RUTA!
|
||||
###################################################################
|
||||
# CÓDIGO COMÚN PARA AMBAS VERSIONES (ENVÍO DE DATOS)
|
||||
###################################################################
|
||||
$rutaEquipos = "$apiBaseUrl/equipos/$hostname"; $rutaUsuariosAsocia = "$apiBaseUrl/equipos/$hostname/asociarusuario"; $rutaUsuarios = "$apiBaseUrl/usuarios"
|
||||
$rutaDiscos = "$apiBaseUrl/discos"; $rutaDiscosAsocia = "$apiBaseUrl/equipos/$hostname/asociardiscos"; $rutaMemoriasRam = "$apiBaseUrl/MemoriasRam"
|
||||
$rutaMemoriasRamAsocia = "$apiBaseUrl/equipos/$hostname/ram"
|
||||
|
||||
try {
|
||||
if ($isWindows7) {
|
||||
# Lógica de envío para Windows 7
|
||||
Write-Host "Enviando datos de equipo..."
|
||||
Send-Data -Url $rutaEquipo -Method "POST" -Body $jsonEquipo
|
||||
Write-Host "1. Enviando/Actualizando datos del equipo..."; if ($isWindows7) { Send-Data -Url $rutaEquipos -Body $jsonDataEquipo } else { Invoke-RestMethod -Uri $rutaEquipos -Method Post -ContentType "application/json" -Body $jsonDataEquipo }; Write-Host "-> OK."
|
||||
Write-Host "2. Creando/Actualizando registro de usuario..."; if ($isWindows7) { Send-Data -Url $rutaUsuarios -Body $jsonDataUsuario } else { Invoke-RestMethod -Uri $rutaUsuarios -Method Post -ContentType "application/json" -Body $jsonDataUsuario }; Write-Host "-> OK."
|
||||
Write-Host "3. Asociando usuario al equipo..."; if ($isWindows7) { Send-Data -Url $rutaUsuariosAsocia -Body $jsonDataUsuario } else { Invoke-RestMethod -Uri $rutaUsuariosAsocia -Method Post -ContentType "application/json" -Body $jsonDataUsuario }; Write-Host "-> OK."
|
||||
|
||||
Write-Host "Creando/actualizando usuario maestro..."
|
||||
Send-Data -Url $rutaCrearUsuario -Method "POST" -Body $jsonUsuario
|
||||
# --- LLAMADAS A LA API DE DISCOS CON DEPURACIÓN ---
|
||||
Write-Host "4. Enviando lista maestra de discos..."
|
||||
Write-Host "--> DEBUG: Payload para /api/discos: $jsonDiscos" -ForegroundColor Cyan
|
||||
if ($isWindows7) { Send-Data -Url $rutaDiscos -Body $jsonDiscos } else { Invoke-RestMethod -Uri $rutaDiscos -Method Post -ContentType "application/json" -Body $jsonDiscos }; Write-Host "-> OK."
|
||||
|
||||
Write-Host "Asociando usuario al equipo..."
|
||||
Send-Data -Url $rutaAsociarUsuario -Method "POST" -Body $jsonUsuario
|
||||
Write-Host "5. Sincronizando discos con el equipo..."
|
||||
Write-Host "--> DEBUG: Payload para /api/equipos/.../asociardiscos: $jsonDiscos" -ForegroundColor Cyan
|
||||
if ($isWindows7) { Send-Data -Url $rutaDiscosAsocia -Body $jsonDiscos } else { Invoke-RestMethod -Uri $rutaDiscosAsocia -Method Post -ContentType "application/json" -Body $jsonDiscos }; Write-Host "-> OK."
|
||||
|
||||
Write-Host "Creando discos maestros..."
|
||||
Send-Data -Url $rutaCrearDiscos -Method "POST" -Body $jsonDiscos
|
||||
|
||||
Write-Host "Asociando discos al equipo..."
|
||||
Send-Data -Url $rutaAsociarDiscos -Method "POST" -Body $jsonDiscos
|
||||
|
||||
Write-Host "Asociando módulos de RAM al equipo..."
|
||||
Send-Data -Url $rutaAsociarRam -Method "POST" -Body $jsonRamModules
|
||||
} else {
|
||||
# Lógica de envío para Windows moderno
|
||||
Write-Host "Enviando datos de equipo..."
|
||||
Invoke-RestMethod -Uri $rutaEquipo -Method Post -ContentType "application/json" -Body $jsonEquipo
|
||||
|
||||
Write-Host "Creando/actualizando usuario maestro..."
|
||||
Invoke-RestMethod -Uri $rutaCrearUsuario -Method Post -ContentType "application/json" -Body $jsonUsuario
|
||||
|
||||
Write-Host "Asociando usuario al equipo..."
|
||||
Invoke-RestMethod -Uri $rutaAsociarUsuario -Method Post -ContentType "application/json" -Body $jsonUsuario
|
||||
|
||||
Write-Host "Creando discos maestros..."
|
||||
Invoke-RestMethod -Uri $rutaCrearDiscos -Method Post -ContentType "application/json" -Body $jsonDiscos
|
||||
|
||||
Write-Host "Asociando discos al equipo..."
|
||||
Invoke-RestMethod -Uri $rutaAsociarDiscos -Method Post -ContentType "application/json" -Body $jsonDiscos
|
||||
|
||||
Write-Host "Asociando módulos de RAM al equipo..."
|
||||
Invoke-RestMethod -Uri $rutaAsociarRam -Method Post -ContentType "application/json" -Body $jsonRamModules
|
||||
}
|
||||
|
||||
Write-Host "`n-------------------------------------------"
|
||||
Write-Host "¡Proceso de inventario completado con éxito!"
|
||||
Write-Host "-------------------------------------------"
|
||||
Write-Host "6. Enviando lista maestra de Memorias RAM..."; if ($isWindows7) { Send-Data -Url $rutaMemoriasRam -Body $jsonMemoriasRamMaestra } else { Invoke-RestMethod -Uri $rutaMemoriasRam -Method Post -ContentType "application/json" -Body $jsonMemoriasRamMaestra }; Write-Host "-> OK."
|
||||
Write-Host "7. Sincronizando Memorias RAM con el equipo..."; if ($isWindows7) { Send-Data -Url $rutaMemoriasRamAsocia -Body $jsonMemoriasRam } else { Invoke-RestMethod -Uri $rutaMemoriasRamAsocia -Method Post -ContentType "application/json" -Body $jsonMemoriasRam }; Write-Host "-> OK."
|
||||
|
||||
Write-Host ""; Write-Host "========================================"; Write-Host " PROCESO FINALIZADO CORRECTAMENTE "; Write-Host "========================================"
|
||||
} catch {
|
||||
Write-Host "`n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
Write-Host "ERROR: Ocurrió un error durante el envío de datos."
|
||||
Write-Host ""; Write-Host "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; Write-Host " ERROR DURANTE EL ENVÍO DE DATOS "; Write-Host "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
Write-Host "Detalle del error: $($_.Exception.Message)"
|
||||
Write-Host "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
if ($_.Exception.Response) {
|
||||
try { $stream = $_.Exception.Response.GetResponseStream(); $reader = New-Object System.IO.StreamReader($stream); $responseBody = $reader.ReadToEnd(); $reader.Close(); $stream.Close(); Write-Host "Respuesta del servidor: $responseBody" } catch {}
|
||||
}
|
||||
}
|
||||
|
||||
# Pausa opcional para ver el resultado en una ventana de consola
|
||||
# Read-Host "Presiona Enter para salir"
|
||||
Reference in New Issue
Block a user