{"id":79,"date":"2024-09-19T10:50:45","date_gmt":"2024-09-19T08:50:45","guid":{"rendered":"https:\/\/cienciaytecnology.com\/wordpress\/?p=79"},"modified":"2026-04-30T21:32:27","modified_gmt":"2026-04-30T19:32:27","slug":"powershell","status":"publish","type":"post","link":"https:\/\/cienciaytecnology.com\/wordpress\/powershell\/","title":{"rendered":"Powershell"},"content":{"rendered":"\n<p>Para manejar PowerShell de manera b\u00e1sica, aqu\u00ed tienes c\u00f3mo se aplican los conceptos fundamentales que mencionamos antes:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Variables y Tipos de Datos<\/strong>:\n<ul class=\"wp-block-list\">\n<li><strong>Variables<\/strong>: En PowerShell, puedes definir variables usando el s\u00edmbolo&nbsp;<code>$<\/code>. Ejemplo:&nbsp;<code>$nombre = \"Juan\"<\/code>.<\/li>\n\n\n\n<li><strong>Tipos de Datos<\/strong>: PowerShell maneja varios tipos de datos como cadenas (<code>\"texto\"<\/code>), enteros (<code>123<\/code>), booleanos (<code>$true<\/code>&nbsp;o&nbsp;<code>$false<\/code>), y m\u00e1s.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Operadores<\/strong>:\n<ul class=\"wp-block-list\">\n<li><strong>Aritm\u00e9ticos<\/strong>:&nbsp;<code>+<\/code>,&nbsp;<code>-<\/code>,&nbsp;<code>*<\/code>,&nbsp;<code>\/<\/code>.<\/li>\n\n\n\n<li><strong>Comparaci\u00f3n<\/strong>:&nbsp;<code>-eq<\/code>&nbsp;(igual),&nbsp;<code>-ne<\/code>&nbsp;(no igual),&nbsp;<code>-gt<\/code>&nbsp;(mayor que),&nbsp;<code>-lt<\/code>&nbsp;(menor que).<\/li>\n\n\n\n<li><strong>L\u00f3gicos<\/strong>:&nbsp;<code>-and<\/code>,&nbsp;<code>-or<\/code>,&nbsp;<code>-not<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Estructuras de Control<\/strong>:\n<ul class=\"wp-block-list\">\n<li><strong>Condicionales<\/strong>:&nbsp;<code>if ($condicion) { # c\u00f3digo } else { # c\u00f3digo }<\/code>.<\/li>\n\n\n\n<li><strong>Bucles<\/strong>:&nbsp;<code>for ($i = 0; $i -lt 10; $i++) { # c\u00f3digo }<\/code>&nbsp;y&nbsp;<code>while ($condicion) { # c\u00f3digo }<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Funciones<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Definici\u00f3n de funciones:&nbsp;<code>function NombreFuncion { param($param1, $param2) # c\u00f3digo }<\/code>.<\/li>\n\n\n\n<li>Ejemplo:&nbsp;<code>function Saludar { param($nombre) Write-Output \"Hola, $nombre\" }<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Estructuras de Datos<\/strong>:\n<ul class=\"wp-block-list\">\n<li><strong>Arreglos<\/strong>:&nbsp;<code>$array = @(1, 2, 3)<\/code>.<\/li>\n\n\n\n<li><strong>HashTables<\/strong>:&nbsp;<code>$hash = @{clave1=\"valor1\"; clave2=\"valor2\"}<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Clases y Objetos<\/strong>:\n<ul class=\"wp-block-list\">\n<li>PowerShell permite la creaci\u00f3n de clases y objetos desde la versi\u00f3n 5.0. Ejemplo:&nbsp;<code>class Persona { [string]$Nombre; [int]$Edad }<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>M\u00f3dulos y Librer\u00edas<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Importar m\u00f3dulos:&nbsp;<code>Import-Module -Name NombreModulo<\/code>.<\/li>\n\n\n\n<li>Ejemplo:&nbsp;<code>Import-Module -Name ActiveDirectory<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Manejo de Archivos<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Leer archivos:&nbsp;<code>Get-Content -Path \"ruta\\archivo.txt\"<\/code>.<\/li>\n\n\n\n<li>Escribir archivos:&nbsp;<code>Set-Content -Path \"ruta\\archivo.txt\" -Value \"Contenido\"<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Depuraci\u00f3n y Manejo de Errores<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Manejo de errores:&nbsp;<code>try { # c\u00f3digo } catch { # manejo de error }<\/code>.<\/li>\n\n\n\n<li>Ejemplo:&nbsp;<code>try { Get-Item \"C:\\archivo.txt\" } catch { Write-Output \"Archivo no encontrado\" }<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Documentaci\u00f3n y Comentarios<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Comentarios de una l\u00ednea:&nbsp;<code># Esto es un comentario<\/code>.<\/li>\n\n\n\n<li>Comentarios de m\u00faltiples l\u00edneas:\u00a0<code>&lt;# Esto es un comentario de m\u00faltiples l\u00edneas #><\/code>.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>Para manejarte de manera b\u00e1sica en PowerShell, es \u00fatil conocer algunos cmdlets fundamentales. Aqu\u00ed tienes una lista de los principales cmdlets que deber\u00edas aprender:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Get-Help<\/strong>: Proporciona informaci\u00f3n sobre otros cmdlets y c\u00f3mo usarlos.<code>Get-Help Get-Process<\/code><\/li>\n\n\n\n<li><strong>Get-Command<\/strong>: Muestra una lista de todos los cmdlets disponibles.<code>Get-Command<\/code><\/li>\n\n\n\n<li><strong>Get-Process<\/strong>: Muestra los procesos en ejecuci\u00f3n en el sistema.<code>Get-Process<\/code><\/li>\n\n\n\n<li><strong>Stop-Process<\/strong>: Detiene un proceso en ejecuci\u00f3n.<code>Stop-Process -Name \"notepad\"<\/code><\/li>\n\n\n\n<li><strong>Get-Service<\/strong>: Muestra los servicios en el sistema.<code>Get-Service<\/code><\/li>\n\n\n\n<li><strong>Start-Service<\/strong>&nbsp;y&nbsp;<strong>Stop-Service<\/strong>: Inicia y detiene servicios respectivamente.<code>Start-Service -Name \"wuauserv\" Stop-Service -Name \"wuauserv\"<\/code><\/li>\n\n\n\n<li><strong>Set-ExecutionPolicy<\/strong>: Cambia la pol\u00edtica de ejecuci\u00f3n de scripts en PowerShell.<code>Set-ExecutionPolicy RemoteSigned<\/code><\/li>\n\n\n\n<li><strong>Get-Content<\/strong>: Lee el contenido de un archivo.<code>Get-Content -Path \"C:\\ruta\\archivo.txt\"<\/code><\/li>\n\n\n\n<li><strong>Set-Content<\/strong>: Escribe contenido en un archivo.<code>Set-Content -Path \"C:\\ruta\\archivo.txt\" -Value \"Nuevo contenido\"<\/code><\/li>\n\n\n\n<li><strong>New-Item<\/strong>: Crea un nuevo archivo o directorio.<code>New-Item -Path \"C:\\ruta\\nuevoarchivo.txt\" -ItemType \"file\"<\/code><\/li>\n\n\n\n<li><strong>Remove-Item<\/strong>: Elimina archivos o directorios.<code>Remove-Item -Path \"C:\\ruta\\archivo.txt\"<\/code><\/li>\n\n\n\n<li><strong>Get-ChildItem<\/strong>: Lista los archivos y directorios en una ubicaci\u00f3n espec\u00edfica.<code>Get-ChildItem -Path \"C:\\ruta\"<\/code><\/li>\n\n\n\n<li><strong>Copy-Item<\/strong>: Copia archivos o directorios.<code>Copy-Item -Path \"C:\\ruta\\archivo.txt\" -Destination \"C:\\nueva_ruta\\archivo.txt\"<\/code><\/li>\n\n\n\n<li><strong>Move-Item<\/strong>: Mueve archivos o directorios.<code>Move-Item -Path \"C:\\ruta\\archivo.txt\" -Destination \"C:\\nueva_ruta\\archivo.txt\"<\/code><\/li>\n\n\n\n<li><strong>Rename-Item<\/strong>: Renombra archivos o directorios.<code>Rename-Item -Path \"C:\\ruta\\archivo.txt\" -NewName \"nuevo_nombre.txt\"<\/code><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">M\u00e1s Cmdlets \u00datiles<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Get-EventLog<\/strong>: Obtiene eventos de los registros de eventos.<code>Get-EventLog -LogName Application<\/code><\/li>\n\n\n\n<li><strong>Get-WmiObject<\/strong>: Obtiene informaci\u00f3n del Instrumental de Administraci\u00f3n de Windows (WMI).<code>Get-WmiObject -Class Win32_OperatingSystem<\/code><\/li>\n\n\n\n<li><strong>Invoke-Command<\/strong>: Ejecuta comandos en equipos locales o remotos.<code>Invoke-Command -ComputerName \"Servidor01\" -ScriptBlock { Get-Process }<\/code><\/li>\n\n\n\n<li><strong>Get-ADUser<\/strong>: Obtiene informaci\u00f3n de usuarios en Active Directory.<code>Get-ADUser -Filter *<\/code><\/li>\n\n\n\n<li><strong>Export-Csv<\/strong>: Exporta objetos a un archivo CSV.<code>Get-Process | Export-Csv -Path \"procesos.csv\"<\/code><\/li>\n\n\n\n<li><strong>Import-Csv<\/strong>: Importa datos de un archivo CSV.<code>Import-Csv -Path \"datos.csv\"<\/code><\/li>\n\n\n\n<li><strong>Send-MailMessage<\/strong>: Env\u00eda correos electr\u00f3nicos.<code>Send-MailMessage -From \"tu@correo.com\" -To \"destino@correo.com\" -Subject \"Asunto\" -Body \"Mensaje\" -SmtpServer \"smtp.servidor.com\"<\/code><\/li>\n\n\n\n<li><strong>Test-Connection<\/strong>: Realiza una prueba de conexi\u00f3n (ping).<code>Test-Connection -ComputerName \"google.com\"<\/code><\/li>\n\n\n\n<li><strong>Get-History<\/strong>: Muestra el historial de comandos ejecutados.<code>Get-History<\/code><\/li>\n\n\n\n<li><strong>Clear-History<\/strong>: Limpia el historial de comandos.<code>Clear-History<\/code><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Uso de Tuber\u00edas (Pipelines)<\/h3>\n\n\n\n<p>Las tuber\u00edas en PowerShell permiten pasar la salida de un cmdlet como entrada a otro cmdlet. Esto se hace utilizando el operador&nbsp;<code>|<\/code>. Aqu\u00ed tienes algunos ejemplos:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Filtrar procesos y ordenarlos<\/strong>:<code>Get-Process | Where-Object { $_.CPU -gt 100 } | Sort-Object -Property CPU<\/code><\/li>\n\n\n\n<li><strong>Obtener servicios y detener los que est\u00e1n en ejecuci\u00f3n<\/strong>:<code>Get-Service | Where-Object { $_.Status -eq 'Running' } | Stop-Service<\/code><\/li>\n\n\n\n<li><strong>Listar archivos grandes en un directorio y mostrarlos en una tabla<\/strong>:<code>Get-ChildItem -Path \"C:\\ruta\" | Where-Object { $_.Length -gt 100MB } | Format-Table -Property Name, Length<\/code><\/li>\n\n\n\n<li><strong>Exportar usuarios de Active Directory a un archivo CSV<\/strong>:<code>Get-ADUser -Filter * | Select-Object Name, EmailAddress | Export-Csv -Path \"usuarios.csv\"<\/code><\/li>\n<\/ol>\n\n\n\n<p>Variables:<\/p>\n\n\n\n<p>&nbsp;las variables son fundamentales para almacenar y manipular datos. Aqu\u00ed tienes un resumen de lo m\u00e1s importante sobre las variables en PowerShell:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Creaci\u00f3n y Uso de Variables<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Declaraci\u00f3n<\/strong>: No necesitas declarar una variable antes de usarla. Simplemente asigna un valor usando el signo&nbsp;<code>$<\/code>.<code>$miVariable = \"Hola, mundo\"<\/code><\/li>\n\n\n\n<li><strong>Tipos de Datos<\/strong>: Las variables pueden almacenar cualquier tipo de dato, como cadenas, enteros, arrays, objetos, etc.<code>$numero = 42 $lista = @(1, 2, 3, 4, 5)<\/code><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Tipos de Variables<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Variables de Usuario<\/strong>: Son creadas y mantenidas por el usuario.&nbsp;<a href=\"https:\/\/learn.microsoft.com\/en-us\/powershell\/module\/microsoft.powershell.core\/about\/about_variables?view=powershell-7.4\" target=\"_blank\" rel=\"noreferrer noopener\">Existen solo mientras la sesi\u00f3n de PowerShell est\u00e1 abierta, a menos que se guarden en el perfil de PowerShell<\/a><a href=\"https:\/\/learn.microsoft.com\/en-us\/powershell\/module\/microsoft.powershell.core\/about\/about_variables?view=powershell-7.4\" target=\"_blank\" rel=\"noreferrer noopener\"><sup>1<\/sup><\/a>.<\/li>\n\n\n\n<li><strong>Variables Autom\u00e1ticas<\/strong>: Son creadas y gestionadas por PowerShell para almacenar el estado del entorno.&nbsp;<a href=\"https:\/\/learn.microsoft.com\/en-us\/powershell\/module\/microsoft.powershell.core\/about\/about_variables?view=powershell-7.4\" target=\"_blank\" rel=\"noreferrer noopener\">Ejemplo:&nbsp;<code>$PSHOME<\/code>&nbsp;almacena la ruta de instalaci\u00f3n de PowerShell<\/a><a href=\"https:\/\/learn.microsoft.com\/es-es\/powershell\/module\/microsoft.powershell.core\/about\/about_variables?view=powershell-7.4\" target=\"_blank\" rel=\"noreferrer noopener\"><sup>2<\/sup><\/a>.<\/li>\n\n\n\n<li><strong>Variables de Preferencia<\/strong>: Almacenan preferencias del usuario para PowerShell.&nbsp;<a href=\"https:\/\/learn.microsoft.com\/en-us\/powershell\/module\/microsoft.powershell.core\/about\/about_variables?view=powershell-7.4\" target=\"_blank\" rel=\"noreferrer noopener\">Ejemplo:&nbsp;<code>$MaximumHistoryCount<\/code>&nbsp;determina el n\u00famero m\u00e1ximo de entradas en el historial de la sesi\u00f3n<\/a><a href=\"https:\/\/learn.microsoft.com\/es-es\/powershell\/module\/microsoft.powershell.core\/about\/about_variables?view=powershell-7.4\" target=\"_blank\" rel=\"noreferrer noopener\"><sup>2<\/sup><\/a>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Alcance de las Variables<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Global<\/strong>: Disponible en toda la sesi\u00f3n de PowerShell.<\/li>\n\n\n\n<li><strong>Local<\/strong>: Disponible solo en el bloque de c\u00f3digo actual.<\/li>\n\n\n\n<li><strong>Script<\/strong>: Disponible en todo el script donde se define.<\/li>\n\n\n\n<li><strong>Private<\/strong>: Disponible solo en el bloque de c\u00f3digo donde se define.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. Comandos \u00datiles<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Asignar Valor<\/strong>:<code>$miVariable = \"Nuevo valor\"<\/code><\/li>\n\n\n\n<li><strong>Mostrar Valor<\/strong>:<code>Write-Output $miVariable<\/code><\/li>\n\n\n\n<li><strong>Listar Variables<\/strong>:<code>Get-Variable<\/code><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5. Ejemplos Pr\u00e1cticos<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Almacenar Resultados de Comandos<\/strong>:<code>$procesos = Get-Process $fechaHoy = (Get-Date).DateTime<\/code><\/li>\n<\/ul>\n\n\n\n<p>&nbsp;El alcance de las variables en PowerShell determina d\u00f3nde y c\u00f3mo se pueden acceder y modificar las variables. Aqu\u00ed tienes una explicaci\u00f3n m\u00e1s detallada sobre los diferentes tipos de alcance y c\u00f3mo se pueden modificar:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Tipos de Alcance<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Global<\/strong>: Las variables definidas en el alcance global est\u00e1n disponibles en toda la sesi\u00f3n de PowerShell.<code>$Global:miVariableGlobal = \"Valor Global\"<\/code><\/li>\n\n\n\n<li><strong>Local<\/strong>: Las variables locales est\u00e1n disponibles solo en el bloque de c\u00f3digo actual, como una funci\u00f3n o un script.<code>function MiFuncion { $miVariableLocal = \"Valor Local\" Write-Output $miVariableLocal }<\/code><\/li>\n\n\n\n<li><strong>Script<\/strong>: Las variables de script est\u00e1n disponibles en todo el script donde se definen.<code>$Script:miVariableScript = \"Valor de Script\"<\/code><\/li>\n\n\n\n<li><strong>Private<\/strong>: Las variables privadas est\u00e1n disponibles solo en el bloque de c\u00f3digo donde se definen y no son accesibles desde otros bloques.<code>$Private:miVariablePrivada = \"Valor Privado\"<\/code><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Modificaci\u00f3n del Alcance<\/strong><\/h3>\n\n\n\n<p>Para modificar el alcance de una variable, puedes usar los modificadores de alcance (<code>Global<\/code>,&nbsp;<code>Local<\/code>,&nbsp;<code>Script<\/code>,&nbsp;<code>Private<\/code>) al definir o acceder a la variable. Aqu\u00ed tienes algunos ejemplos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Crear una variable en el alcance global<\/strong>:<code>$Global:miVariable = \"Valor Global\"<\/code><\/li>\n\n\n\n<li><strong>Acceder a una variable de script desde una funci\u00f3n<\/strong>:<code>$Script:miVariable = \"Valor de Script\" function MostrarVariable { Write-Output $Script:miVariable } MostrarVariable<\/code><\/li>\n\n\n\n<li><strong>Crear una variable privada dentro de una funci\u00f3n<\/strong>:<code>function MiFuncion { $Private:miVariablePrivada = \"Valor Privado\" Write-Output $Private:miVariablePrivada } MiFuncion<\/code><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Reglas de Alcance<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Herencia de Alcance<\/strong>: Un \u00e1mbito hijo (como una funci\u00f3n o un script llamado) hereda las variables del \u00e1mbito padre, a menos que se declaren como privadas.<\/li>\n\n\n\n<li><strong>Modificaci\u00f3n de Variables en Diferentes \u00c1mbitos<\/strong>: Puedes modificar una variable en un \u00e1mbito espec\u00edfico usando el modificador de alcance adecuado.<code>$Global:miVariable = \"Nuevo Valor Global\"<\/code><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Comandos \u00datiles<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Listar Variables en un \u00c1mbito Espec\u00edfico<\/strong>:<code>Get-Variable -Scope Global Get-Variable -Scope Local<\/code><\/li>\n\n\n\n<li><strong>Crear una Variable en un \u00c1mbito Espec\u00edfico<\/strong>:<code>New-Variable -Scope Global -Name miVariable -Value \"Valor\"<\/code><\/li>\n<\/ul>\n\n\n\n<p>El manejo adecuado del alcance de las variables es crucial para evitar conflictos y asegurar que tus scripts funcionen como esperas.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Condicionales en PowerShell<\/h3>\n\n\n\n<p>Los condicionales son estructuras de control que permiten ejecutar bloques de c\u00f3digo basados en ciertas condiciones. En PowerShell, la instrucci\u00f3n m\u00e1s com\u00fan para esto es&nbsp;<code>if<\/code>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Sintaxis B\u00e1sica<\/h4>\n\n\n\n<p>La sintaxis b\u00e1sica de un condicional&nbsp;<code>if<\/code>&nbsp;en PowerShell es la siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if (condici\u00f3n) {\n    # C\u00f3digo a ejecutar si la condici\u00f3n es verdadera\n}\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Ejemplo B\u00e1sico<\/h4>\n\n\n\n<p>Supongamos que queremos verificar si un n\u00famero es mayor que 10:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$numero = 15\n\nif ($numero -gt 10) {\n    Write-Output \"El n\u00famero es mayor que 10\"\n}\n<\/code><\/pre>\n\n\n\n<p>En este ejemplo,&nbsp;<code>$numero<\/code>&nbsp;es 15, y como 15 es mayor que 10, se ejecutar\u00e1 el bloque de c\u00f3digo dentro del&nbsp;<code>if<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Operadores de Comparaci\u00f3n<\/h3>\n\n\n\n<p>PowerShell utiliza varios operadores de comparaci\u00f3n para evaluar condiciones:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>-eq<\/code>: Igual a<\/li>\n\n\n\n<li><code>-ne<\/code>: No igual a<\/li>\n\n\n\n<li><code>-gt<\/code>: Mayor que<\/li>\n\n\n\n<li><code>-lt<\/code>: Menor que<\/li>\n\n\n\n<li><code>-ge<\/code>: Mayor o igual que<\/li>\n\n\n\n<li><code>-le<\/code>: Menor o igual que<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Ejemplo con Operadores de Comparaci\u00f3n<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>$edad = 18\n\nif ($edad -ge 18) {\n    Write-Output \"Eres mayor de edad.\"\n} else {\n    Write-Output \"Eres menor de edad.\"\n}\n<\/code><\/pre>\n\n\n\n<p>En este caso, si&nbsp;<code>$edad<\/code>&nbsp;es mayor o igual a 18, se imprimir\u00e1 \u201cEres mayor de edad.\u201d De lo contrario, se imprimir\u00e1 \u201cEres menor de edad.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Condicionales Anidados y M\u00faltiples Condiciones<\/h3>\n\n\n\n<p>Puedes anidar condicionales y usar m\u00faltiples condiciones con los operadores l\u00f3gicos&nbsp;<code>-and<\/code>,&nbsp;<code>-or<\/code>, y&nbsp;<code>-not<\/code>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Ejemplo de Condicionales Anidados<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>$numero = 25\n\nif ($numero -gt 10) {\n    if ($numero -lt 30) {\n        Write-Output \"El n\u00famero est\u00e1 entre 10 y 30\"\n    }\n}\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Ejemplo con M\u00faltiples Condiciones<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>$edad = 20\n$ciudad = \"Madrid\"\n\nif ($edad -ge 18 -and $ciudad -eq \"Madrid\") {\n    Write-Output \"Eres mayor de edad y vives en Madrid.\"\n}\n<\/code><\/pre>\n\n\n\n<p>En este ejemplo, ambas condiciones deben ser verdaderas para que se ejecute el bloque de c\u00f3digo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo Completo<\/h3>\n\n\n\n<p>Aqu\u00ed tienes un ejemplo m\u00e1s completo que incluye varias estructuras condicionales:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$usuario = \"Juan\"\n$edad = 25\n$ciudad = \"Barcelona\"\n\nif ($usuario -eq \"Juan\" -and $edad -ge 18) {\n    if ($ciudad -eq \"Madrid\") {\n        Write-Output \"Hola Juan, eres mayor de edad y vives en Madrid.\"\n    } elseif ($ciudad -eq \"Barcelona\") {\n        Write-Output \"Hola Juan, eres mayor de edad y vives en Barcelona.\"\n    } else {\n        Write-Output \"Hola Juan, eres mayor de edad.\"\n    }\n} else {\n    Write-Output \"No eres Juan o no eres mayor de edad.\"\n}\n<\/code><\/pre>\n\n\n\n<p>Este script verifica el nombre del usuario, su edad y su ciudad, y responde con un mensaje adecuado basado en esas condiciones.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Bucles en PowerShell<\/h3>\n\n\n\n<p>Los bucles son estructuras de control que permiten ejecutar un bloque de c\u00f3digo varias veces. En PowerShell, hay varios tipos de bucles:&nbsp;<code>while<\/code>,&nbsp;<code>do-while<\/code>,&nbsp;<code>do-until<\/code>,&nbsp;<code>for<\/code>, y&nbsp;<code>foreach<\/code>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Bucle&nbsp;<code>while<\/code><\/h4>\n\n\n\n<p>El bucle&nbsp;<code>while<\/code>&nbsp;ejecuta un bloque de c\u00f3digo mientras una condici\u00f3n sea verdadera.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$contador = 0\n\nwhile ($contador -lt 5) {\n    Write-Output \"El contador es $contador\"\n    $contador++\n}\n<\/code><\/pre>\n\n\n\n<p>En este ejemplo, el bucle se ejecutar\u00e1 mientras&nbsp;<code>$contador<\/code>&nbsp;sea menor que 5.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Bucle&nbsp;<code>do-while<\/code><\/h4>\n\n\n\n<p>El bucle&nbsp;<code>do-while<\/code>&nbsp;es similar al&nbsp;<code>while<\/code>, pero garantiza que el bloque de c\u00f3digo se ejecute al menos una vez.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$contador = 0\n\ndo {\n    Write-Output \"El contador es $contador\"\n    $contador++\n} while ($contador -lt 5)\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Bucle&nbsp;<code>do-until<\/code><\/h4>\n\n\n\n<p>El bucle&nbsp;<code>do-until<\/code>&nbsp;es similar al&nbsp;<code>do-while<\/code>, pero se ejecuta hasta que la condici\u00f3n sea verdadera.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$contador = 0\n\ndo {\n    Write-Output \"El contador es $contador\"\n    $contador++\n} until ($contador -ge 5)\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Bucle&nbsp;<code>for<\/code><\/h4>\n\n\n\n<p>El bucle&nbsp;<code>for<\/code>&nbsp;es \u00fatil cuando sabes cu\u00e1ntas veces quieres que se ejecute el bloque de c\u00f3digo.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for ($i = 0; $i -lt 5; $i++) {\n    Write-Output \"El valor de i es $i\"\n}\n<\/code><\/pre>\n\n\n\n<p>En este ejemplo, el bucle se ejecutar\u00e1 5 veces, incrementando&nbsp;<code>$i<\/code>&nbsp;en cada iteraci\u00f3n.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Bucle&nbsp;<code>foreach<\/code><\/h4>\n\n\n\n<p>El bucle&nbsp;<code>foreach<\/code>&nbsp;se utiliza para iterar sobre una colecci\u00f3n de elementos.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$numeros = 1..5\n\nforeach ($numero in $numeros) {\n    Write-Output \"El n\u00famero es $numero\"\n}\n<\/code><\/pre>\n\n\n\n<p>En este ejemplo, el bucle iterar\u00e1 sobre cada n\u00famero en la colecci\u00f3n&nbsp;<code>$numeros<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo Completo<\/h3>\n\n\n\n<p>Aqu\u00ed tienes un ejemplo m\u00e1s completo que utiliza varios tipos de bucles:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Bucle while\n$contador = 0\nwhile ($contador -lt 3) {\n    Write-Output \"While: El contador es $contador\"\n    $contador++\n}\n\n# Bucle do-while\n$contador = 0\ndo {\n    Write-Output \"Do-While: El contador es $contador\"\n    $contador++\n} while ($contador -lt 3)\n\n# Bucle do-until\n$contador = 0\ndo {\n    Write-Output \"Do-Until: El contador es $contador\"\n    $contador++\n} until ($contador -ge 3)\n\n# Bucle for\nfor ($i = 0; $i -lt 3; $i++) {\n    Write-Output \"For: El valor de i es $i\"\n}\n\n# Bucle foreach\n$colores = @(\"Rojo\", \"Verde\", \"Azul\")\nforeach ($color in $colores) {\n    Write-Output \"Foreach: El color es $color\"\n}\n<\/code><\/pre>\n\n\n\n<p>Este script muestra c\u00f3mo usar cada tipo de bucle en PowerShell para realizar tareas repetitivas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 es una Funci\u00f3n en PowerShell?<\/h3>\n\n\n\n<p>Una funci\u00f3n en PowerShell es un bloque de c\u00f3digo que tiene un nombre y puede ser llamado en cualquier momento para ejecutar ese bloque de c\u00f3digo. Las funciones pueden aceptar par\u00e1metros de entrada y devolver valores.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sintaxis B\u00e1sica<\/h3>\n\n\n\n<p>La sintaxis b\u00e1sica para definir una funci\u00f3n en PowerShell es la siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function Nombre-Funcion {\n    Param (\n        # Definici\u00f3n de par\u00e1metros\n    )\n    # Cuerpo de la funci\u00f3n\n}\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo B\u00e1sico<\/h3>\n\n\n\n<p>Vamos a crear una funci\u00f3n simple que saluda al usuario:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function Saludar-Usuario {\n    Param (\n        &#91;string]$Nombre\n    )\n    Write-Output \"Hola, $Nombre!\"\n}\n\n# Llamar a la funci\u00f3n\nSaludar-Usuario -Nombre \"Juan\"\n<\/code><\/pre>\n\n\n\n<p>En este ejemplo, la funci\u00f3n&nbsp;<code>Saludar-Usuario<\/code>&nbsp;toma un par\u00e1metro&nbsp;<code>$Nombre<\/code>&nbsp;y imprime un saludo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Funciones con M\u00faltiples Par\u00e1metros<\/h3>\n\n\n\n<p>Las funciones pueden aceptar m\u00faltiples par\u00e1metros. Aqu\u00ed tienes un ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function Sumar-Numeros {\n    Param (\n        &#91;int]$Numero1,\n        &#91;int]$Numero2\n    )\n    $Resultado = $Numero1 + $Numero2\n    Write-Output \"La suma de $Numero1 y $Numero2 es $Resultado\"\n}\n\n# Llamar a la funci\u00f3n\nSumar-Numeros -Numero1 5 -Numero2 10\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Funciones con Par\u00e1metros Opcionales y Valores Predeterminados<\/h3>\n\n\n\n<p>Puedes definir par\u00e1metros opcionales y establecer valores predeterminados:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function Saludar-Usuario {\n    Param (\n        &#91;string]$Nombre = \"Usuario\"\n    )\n    Write-Output \"Hola, $Nombre!\"\n}\n\n# Llamar a la funci\u00f3n sin par\u00e1metro\nSaludar-Usuario\n\n# Llamar a la funci\u00f3n con par\u00e1metro\nSaludar-Usuario -Nombre \"Ana\"\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Funciones Avanzadas<\/h3>\n\n\n\n<p>Las funciones avanzadas en PowerShell permiten un mayor control y funcionalidad, como la validaci\u00f3n de par\u00e1metros y la gesti\u00f3n de errores. Aqu\u00ed tienes un ejemplo de una funci\u00f3n avanzada:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function Obtener-Archivo {\n    &#91;CmdletBinding()]\n    Param (\n        &#91;Parameter(Mandatory=$true)]\n        &#91;string]$Ruta\n    )\n    if (Test-Path $Ruta) {\n        Get-ChildItem -Path $Ruta\n    } else {\n        Write-Error \"La ruta especificada no existe.\"\n    }\n}\n\n# Llamar a la funci\u00f3n\nObtener-Archivo -Ruta \"C:\\MiCarpeta\"\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo Completo<\/h3>\n\n\n\n<p>Aqu\u00ed tienes un ejemplo m\u00e1s completo que combina varios conceptos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function Procesar-Archivos {\n    &#91;CmdletBinding()]\n    Param (\n        &#91;Parameter(Mandatory=$true)]\n        &#91;string]$Ruta,\n        \n        &#91;Parameter(Mandatory=$false)]\n        &#91;string]$Extension = \"*.*\"\n    )\n    \n    if (Test-Path $Ruta) {\n        $Archivos = Get-ChildItem -Path $Ruta -Filter $Extension\n        foreach ($Archivo in $Archivos) {\n            Write-Output \"Procesando archivo: $($Archivo.Name)\"\n            # Aqu\u00ed puedes agregar m\u00e1s l\u00f3gica para procesar cada archivo\n        }\n    } else {\n        Write-Error \"La ruta especificada no existe.\"\n    }\n}\n\n# Llamar a la funci\u00f3n\nProcesar-Archivos -Ruta \"C:\\MiCarpeta\" -Extension \"*.txt\"\n<\/code><\/pre>\n\n\n\n<p>En este ejemplo, la funci\u00f3n&nbsp;<code>Procesar-Archivos<\/code>&nbsp;toma una ruta y una extensi\u00f3n de archivo como par\u00e1metros, verifica si la ruta existe y luego procesa cada archivo que coincide con la extensi\u00f3n especificada.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Estructura de datos<\/h2>\n\n\n\n<p>En PowerShell, hay varias estructuras de datos que puedes utilizar para almacenar y manipular informaci\u00f3n. Las m\u00e1s comunes son las matrices (arrays), las tablas hash (hash tables), y las listas (lists). Vamos a ver cada una de ellas en detalle con ejemplos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Matrices (Arrays)<\/h3>\n\n\n\n<p>Una matriz es una colecci\u00f3n de elementos del mismo tipo. Puedes crear una matriz utilizando el operador&nbsp;<code>@()<\/code>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Ejemplo B\u00e1sico<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code># Crear una matriz de n\u00fameros\n$numeros = @(1, 2, 3, 4, 5)\n\n# Acceder a un elemento de la matriz\nWrite-Output $numeros&#91;0]  # Salida: 1\n\n# Recorrer la matriz\nforeach ($numero in $numeros) {\n    Write-Output $numero\n}\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. Tablas Hash (Hash Tables)<\/h3>\n\n\n\n<p>Una tabla hash es una colecci\u00f3n de pares clave-valor. Es \u00fatil para almacenar datos que necesitan ser recuperados r\u00e1pidamente mediante una clave.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Ejemplo B\u00e1sico<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code># Crear una tabla hash\n$edades = @{\n    \"Juan\" = 25\n    \"Ana\" = 30\n    \"Pedro\" = 35\n}\n\n# Acceder a un valor mediante su clave\nWrite-Output $edades&#91;\"Juan\"]  # Salida: 25\n\n# Agregar un nuevo par clave-valor\n$edades&#91;\"Maria\"] = 28\n\n# Recorrer la tabla hash\nforeach ($nombre in $edades.Keys) {\n    Write-Output \"$nombre tiene $($edades&#91;$nombre]) a\u00f1os\"\n}\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">3. Listas (Lists)<\/h3>\n\n\n\n<p>Las listas son similares a las matrices, pero ofrecen m\u00e1s flexibilidad. Puedes agregar y eliminar elementos f\u00e1cilmente.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Ejemplo B\u00e1sico<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code># Crear una lista\n$lista = New-Object System.Collections.Generic.List&#91;System.Object]\n\n# Agregar elementos a la lista\n$lista.Add(1)\n$lista.Add(\"Hola\")\n$lista.Add($true)\n\n# Acceder a un elemento de la lista\nWrite-Output $lista&#91;1]  # Salida: Hola\n\n# Recorrer la lista\nforeach ($elemento in $lista) {\n    Write-Output $elemento\n}\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">4. Pilas (Stacks) y Colas (Queues)<\/h3>\n\n\n\n<p>Las pilas y colas son estructuras de datos que permiten almacenar elementos de manera ordenada. Las pilas siguen el principio LIFO (Last In, First Out) y las colas siguen el principio FIFO (First In, First Out).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Ejemplo de Pila<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code># Crear una pila\n$pila = New-Object System.Collections.Stack\n\n# Agregar elementos a la pila\n$pila.Push(1)\n$pila.Push(2)\n$pila.Push(3)\n\n# Eliminar y obtener el elemento superior de la pila\nWrite-Output $pila.Pop()  # Salida: 3\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Ejemplo de Cola<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code># Crear una cola\n$cola = New-Object System.Collections.Queue\n\n# Agregar elementos a la cola\n$cola.Enqueue(1)\n$cola.Enqueue(2)\n$cola.Enqueue(3)\n\n# Eliminar y obtener el primer elemento de la cola\nWrite-Output $cola.Dequeue()  # Salida: 1\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">5. Diccionarios Ordenados (Ordered Dictionaries)<\/h3>\n\n\n\n<p>Los diccionarios ordenados son similares a las tablas hash, pero mantienen el orden de los elementos seg\u00fan se agregan.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Ejemplo B\u00e1sico<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code># Crear un diccionario ordenado\n$diccionario = &#91;ordered]@{\n    \"Uno\" = 1\n    \"Dos\" = 2\n    \"Tres\" = 3\n}\n\n# Acceder a un valor mediante su clave\nWrite-Output $diccionario&#91;\"Dos\"]  # Salida: 2\n\n# Recorrer el diccionario ordenado\nforeach ($clave in $diccionario.Keys) {\n    Write-Output \"$clave: $($diccionario&#91;$clave])\"\n}\n<\/code><\/pre>\n\n\n\n<p>Estas son algunas de las estructuras de datos m\u00e1s comunes en PowerShell. Cada una tiene sus propias ventajas y se utiliza en diferentes escenarios seg\u00fan las necesidades del script o programa que est\u00e9s desarrollando.&nbsp;<\/p>\n\n\n\n<p>En PowerShell, las clases y los objetos se utilizan para aplicar conceptos de programaci\u00f3n orientada a objetos. A continuaci\u00f3n, te explico c\u00f3mo se crean y utilizan, con ejemplos para cada paso.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Clases y Objetos<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Creaci\u00f3n de Clases<\/h3>\n\n\n\n<p>Una clase es un plano para crear objetos. Define las propiedades y m\u00e9todos que los objetos de esa clase tendr\u00e1n. Aqu\u00ed tienes un ejemplo b\u00e1sico de c\u00f3mo definir una clase en PowerShell:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Persona {\n    &#91;string]$Nombre\n    &#91;int]$Edad\n\n    Persona(&#91;string]$nombre, &#91;int]$edad) {\n        $this.Nombre = $nombre\n        $this.Edad = $edad\n    }\n\n    &#91;void]Saludar() {\n        Write-Output \"Hola, mi nombre es $($this.Nombre) y tengo $($this.Edad) a\u00f1os.\"\n    }\n}\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Creaci\u00f3n de Objetos<\/h3>\n\n\n\n<p>Una vez que tienes una clase, puedes crear objetos (instancias de la clase) utilizando el constructor definido en la clase. Aqu\u00ed tienes un ejemplo de c\u00f3mo crear un objeto de la clase&nbsp;<code>Persona<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$persona1 = &#91;Persona]::new(\"Juan\", 30)\n$persona1.Saludar()\n<\/code><\/pre>\n\n\n\n<p>Este c\u00f3digo crear\u00e1 un objeto&nbsp;<code>persona1<\/code>&nbsp;con el nombre \u201cJuan\u201d y la edad de 30 a\u00f1os, y luego llamar\u00e1 al m\u00e9todo&nbsp;<code>Saludar<\/code>&nbsp;que imprimir\u00e1 un saludo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Propiedades y M\u00e9todos<\/h3>\n\n\n\n<p>Las propiedades son variables que pertenecen a una clase, y los m\u00e9todos son funciones que pertenecen a una clase. En el ejemplo anterior,&nbsp;<code>Nombre<\/code>&nbsp;y&nbsp;<code>Edad<\/code>&nbsp;son propiedades, y&nbsp;<code>Saludar<\/code>&nbsp;es un m\u00e9todo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Herencia<\/h3>\n\n\n\n<p>PowerShell tambi\u00e9n soporta la herencia, lo que significa que puedes crear una nueva clase basada en una clase existente. Aqu\u00ed tienes un ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Empleado : Persona {\n    &#91;string]$Puesto\n\n    Empleado(&#91;string]$nombre, &#91;int]$edad, &#91;string]$puesto) : base($nombre, $edad) {\n        $this.Puesto = $puesto\n    }\n\n    &#91;void]MostrarPuesto() {\n        Write-Output \"Soy $($this.Nombre) y trabajo como $($this.Puesto).\"\n    }\n}\n\n$empleado1 = &#91;Empleado]::new(\"Ana\", 28, \"Desarrolladora\")\n$empleado1.Saludar()\n$empleado1.MostrarPuesto()\n<\/code><\/pre>\n\n\n\n<p>En este ejemplo,&nbsp;<code>Empleado<\/code>&nbsp;hereda de&nbsp;<code>Persona<\/code>, por lo que&nbsp;<code>Empleado<\/code>&nbsp;tiene todas las propiedades y m\u00e9todos de&nbsp;<code>Persona<\/code>, adem\u00e1s de su propia propiedad&nbsp;<code>Puesto<\/code>&nbsp;y el m\u00e9todo&nbsp;<code>MostrarPuesto<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Clases Est\u00e1ticas<\/h3>\n\n\n\n<p>Las clases est\u00e1ticas son clases que no se pueden instanciar. Se utilizan para agrupar m\u00e9todos y propiedades que no dependen de una instancia espec\u00edfica. Aqu\u00ed tienes un ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Utilidades {\n    static &#91;void]MostrarFecha() {\n        Write-Output (Get-Date)\n    }\n}\n\n&#91;Utilidades]::MostrarFecha()\n<\/code><\/pre>\n\n\n\n<p>En este caso,&nbsp;<code>Utilidades<\/code>&nbsp;es una clase est\u00e1tica con un m\u00e9todo&nbsp;<code>MostrarFecha<\/code>&nbsp;que imprime la fecha actual.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Resumen<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Definir una clase<\/strong>: Utiliza la palabra clave\u00a0<code>class<\/code>.<\/li>\n\n\n\n<li><strong>Crear un objeto<\/strong>: Utiliza el constructor de la clase con\u00a0<code>::new()<\/code>.<\/li>\n\n\n\n<li><strong>Propiedades y m\u00e9todos<\/strong>: Define variables y funciones dentro de la clase.<\/li>\n\n\n\n<li><strong>Herencia<\/strong>: Utiliza\u00a0<code>: base()<\/code>\u00a0para heredar de otra clase.<\/li>\n\n\n\n<li><strong>Clases est\u00e1ticas<\/strong>: Define m\u00e9todos y propiedades que no dependen de una instancia.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>PowerShell es mucho m\u00e1s que una consola de comandos; es un potente framework de automatizaci\u00f3n y gesti\u00f3n de configuraci\u00f3n de Microsoft. En este art\u00edculo exploramos su arquitectura basada en objetos, el uso de cmdlets y scripts, y c\u00f3mo puede facilitar enormemente las tareas administrativas en entornos Windows y la integraci\u00f3n en flujos de trabajo DevOps modernos.<\/p>\n","protected":false},"author":1,"featured_media":830,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[565],"tags":[164,126,24,170,167,154,169,125,155,124,109,165,29,158,159,26,157,156,34,153,162,25,163,168,31],"class_list":["post-79","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacion","tag-arreglos","tag-bucles","tag-clases","tag-clases-estaticas","tag-cmdlets","tag-colas","tag-comandos","tag-condicionales","tag-diccionarios","tag-estructuras-de-control","tag-funciones","tag-hashtables","tag-herencia","tag-librerias","tag-manejo-de-archivos","tag-metodos","tag-modulos","tag-objetos","tag-operadores","tag-pilas","tag-powershell","tag-propiedades","tag-tipos-de-datos","tag-tuberias","tag-variables"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Powershell - Ciencia y Tecnologia<\/title>\n<meta name=\"description\" content=\"PowerShell es una plataforma de automatizaci\u00f3n y configuraci\u00f3n de tareas, compuesta por un shell de l\u00ednea de comandos y un lenguaje de scripting asociado. Desarrollado por Microsoft, PowerShell es utilizado principalmente para la administraci\u00f3n de sistemas y automatizaci\u00f3n de tareas en entornos Windows, aunque tambi\u00e9n es compatible con otras plataformas como macOS y Linux.Caracter\u00edsticas Clave:Cmdlets: Comandos espec\u00edficos de PowerShell dise\u00f1ados para realizar tareas particulares, como la gesti\u00f3n de archivos y directorios, configuraci\u00f3n de sistemas y administraci\u00f3n de servicios.Pipeline: Permite encadenar cmdlets y pasar datos entre ellos de manera eficiente, facilitando la manipulaci\u00f3n y transformaci\u00f3n de datos.Automatizaci\u00f3n: Ideal para scripts de automatizaci\u00f3n que gestionan tareas repetitivas, implementaciones y configuraci\u00f3n de sistemas.Acceso a .NET: Integraci\u00f3n completa con .NET Framework y .NET Core, permitiendo a los usuarios acceder y utilizar clases y m\u00e9todos .NET en sus scripts.Administraci\u00f3n Remota: Posibilita la ejecuci\u00f3n de comandos y scripts en sistemas remotos, facilitando la gesti\u00f3n de m\u00faltiples m\u00e1quinas desde una ubicaci\u00f3n central.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cienciaytecnology.com\/wordpress\/powershell\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Powershell - Ciencia y Tecnologia\" \/>\n<meta property=\"og:description\" content=\"PowerShell es una plataforma de automatizaci\u00f3n y configuraci\u00f3n de tareas, compuesta por un shell de l\u00ednea de comandos y un lenguaje de scripting asociado. Desarrollado por Microsoft, PowerShell es utilizado principalmente para la administraci\u00f3n de sistemas y automatizaci\u00f3n de tareas en entornos Windows, aunque tambi\u00e9n es compatible con otras plataformas como macOS y Linux.Caracter\u00edsticas Clave:Cmdlets: Comandos espec\u00edficos de PowerShell dise\u00f1ados para realizar tareas particulares, como la gesti\u00f3n de archivos y directorios, configuraci\u00f3n de sistemas y administraci\u00f3n de servicios.Pipeline: Permite encadenar cmdlets y pasar datos entre ellos de manera eficiente, facilitando la manipulaci\u00f3n y transformaci\u00f3n de datos.Automatizaci\u00f3n: Ideal para scripts de automatizaci\u00f3n que gestionan tareas repetitivas, implementaciones y configuraci\u00f3n de sistemas.Acceso a .NET: Integraci\u00f3n completa con .NET Framework y .NET Core, permitiendo a los usuarios acceder y utilizar clases y m\u00e9todos .NET en sus scripts.Administraci\u00f3n Remota: Posibilita la ejecuci\u00f3n de comandos y scripts en sistemas remotos, facilitando la gesti\u00f3n de m\u00faltiples m\u00e1quinas desde una ubicaci\u00f3n central.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cienciaytecnology.com\/wordpress\/powershell\/\" \/>\n<meta property=\"og:site_name\" content=\"Ciencia y Tecnologia\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-19T08:50:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-30T19:32:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2024\/09\/powershell.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1408\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"david\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"david\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/powershell\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/powershell\\\/\"},\"author\":{\"name\":\"david\",\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/b76777e3c0d2d08ea263068461c90d4b\"},\"headline\":\"Powershell\",\"datePublished\":\"2024-09-19T08:50:45+00:00\",\"dateModified\":\"2026-04-30T19:32:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/powershell\\\/\"},\"wordCount\":2202,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/b76777e3c0d2d08ea263068461c90d4b\"},\"image\":{\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/powershell\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/powershell.jpg\",\"keywords\":[\"arreglos\",\"Bucles\",\"Clases\",\"clases est\u00e1ticas\",\"Cmdlets\",\"colas\",\"comandos\",\"Condicionales\",\"diccionarios\",\"Estructuras de control\",\"Funciones\",\"hashtables\",\"Herencia\",\"librerias\",\"manejo de archivos\",\"metodos\",\"m\u00f3dulos\",\"objetos\",\"Operadores\",\"pilas\",\"powershell\",\"Propiedades\",\"tipos de datos\",\"tuberias\",\"variables\"],\"articleSection\":[\"Programaci\u00f3n\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/powershell\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/powershell\\\/\",\"url\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/powershell\\\/\",\"name\":\"Powershell - Ciencia y Tecnologia\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/powershell\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/powershell\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/powershell.jpg\",\"datePublished\":\"2024-09-19T08:50:45+00:00\",\"dateModified\":\"2026-04-30T19:32:27+00:00\",\"description\":\"PowerShell es una plataforma de automatizaci\u00f3n y configuraci\u00f3n de tareas, compuesta por un shell de l\u00ednea de comandos y un lenguaje de scripting asociado. Desarrollado por Microsoft, PowerShell es utilizado principalmente para la administraci\u00f3n de sistemas y automatizaci\u00f3n de tareas en entornos Windows, aunque tambi\u00e9n es compatible con otras plataformas como macOS y Linux.Caracter\u00edsticas Clave:Cmdlets: Comandos espec\u00edficos de PowerShell dise\u00f1ados para realizar tareas particulares, como la gesti\u00f3n de archivos y directorios, configuraci\u00f3n de sistemas y administraci\u00f3n de servicios.Pipeline: Permite encadenar cmdlets y pasar datos entre ellos de manera eficiente, facilitando la manipulaci\u00f3n y transformaci\u00f3n de datos.Automatizaci\u00f3n: Ideal para scripts de automatizaci\u00f3n que gestionan tareas repetitivas, implementaciones y configuraci\u00f3n de sistemas.Acceso a .NET: Integraci\u00f3n completa con .NET Framework y .NET Core, permitiendo a los usuarios acceder y utilizar clases y m\u00e9todos .NET en sus scripts.Administraci\u00f3n Remota: Posibilita la ejecuci\u00f3n de comandos y scripts en sistemas remotos, facilitando la gesti\u00f3n de m\u00faltiples m\u00e1quinas desde una ubicaci\u00f3n central.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/powershell\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/powershell\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/powershell\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/powershell.jpg\",\"contentUrl\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/powershell.jpg\",\"width\":1408,\"height\":768},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/powershell\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Powershell\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/\",\"name\":\"Ciencia y Tecnologia\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/b76777e3c0d2d08ea263068461c90d4b\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/b76777e3c0d2d08ea263068461c90d4b\",\"name\":\"david\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a9d8ccd92847e24d772422bc56934157f705784123e5b11a9724d44add16e6bb?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a9d8ccd92847e24d772422bc56934157f705784123e5b11a9724d44add16e6bb?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a9d8ccd92847e24d772422bc56934157f705784123e5b11a9724d44add16e6bb?s=96&d=mm&r=g\",\"caption\":\"david\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a9d8ccd92847e24d772422bc56934157f705784123e5b11a9724d44add16e6bb?s=96&d=mm&r=g\"},\"sameAs\":[\"https:\\\/\\\/cienciaytecnology.com\\\/wordpress\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Powershell - Ciencia y Tecnologia","description":"PowerShell es una plataforma de automatizaci\u00f3n y configuraci\u00f3n de tareas, compuesta por un shell de l\u00ednea de comandos y un lenguaje de scripting asociado. Desarrollado por Microsoft, PowerShell es utilizado principalmente para la administraci\u00f3n de sistemas y automatizaci\u00f3n de tareas en entornos Windows, aunque tambi\u00e9n es compatible con otras plataformas como macOS y Linux.Caracter\u00edsticas Clave:Cmdlets: Comandos espec\u00edficos de PowerShell dise\u00f1ados para realizar tareas particulares, como la gesti\u00f3n de archivos y directorios, configuraci\u00f3n de sistemas y administraci\u00f3n de servicios.Pipeline: Permite encadenar cmdlets y pasar datos entre ellos de manera eficiente, facilitando la manipulaci\u00f3n y transformaci\u00f3n de datos.Automatizaci\u00f3n: Ideal para scripts de automatizaci\u00f3n que gestionan tareas repetitivas, implementaciones y configuraci\u00f3n de sistemas.Acceso a .NET: Integraci\u00f3n completa con .NET Framework y .NET Core, permitiendo a los usuarios acceder y utilizar clases y m\u00e9todos .NET en sus scripts.Administraci\u00f3n Remota: Posibilita la ejecuci\u00f3n de comandos y scripts en sistemas remotos, facilitando la gesti\u00f3n de m\u00faltiples m\u00e1quinas desde una ubicaci\u00f3n central.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cienciaytecnology.com\/wordpress\/powershell\/","og_locale":"es_ES","og_type":"article","og_title":"Powershell - Ciencia y Tecnologia","og_description":"PowerShell es una plataforma de automatizaci\u00f3n y configuraci\u00f3n de tareas, compuesta por un shell de l\u00ednea de comandos y un lenguaje de scripting asociado. Desarrollado por Microsoft, PowerShell es utilizado principalmente para la administraci\u00f3n de sistemas y automatizaci\u00f3n de tareas en entornos Windows, aunque tambi\u00e9n es compatible con otras plataformas como macOS y Linux.Caracter\u00edsticas Clave:Cmdlets: Comandos espec\u00edficos de PowerShell dise\u00f1ados para realizar tareas particulares, como la gesti\u00f3n de archivos y directorios, configuraci\u00f3n de sistemas y administraci\u00f3n de servicios.Pipeline: Permite encadenar cmdlets y pasar datos entre ellos de manera eficiente, facilitando la manipulaci\u00f3n y transformaci\u00f3n de datos.Automatizaci\u00f3n: Ideal para scripts de automatizaci\u00f3n que gestionan tareas repetitivas, implementaciones y configuraci\u00f3n de sistemas.Acceso a .NET: Integraci\u00f3n completa con .NET Framework y .NET Core, permitiendo a los usuarios acceder y utilizar clases y m\u00e9todos .NET en sus scripts.Administraci\u00f3n Remota: Posibilita la ejecuci\u00f3n de comandos y scripts en sistemas remotos, facilitando la gesti\u00f3n de m\u00faltiples m\u00e1quinas desde una ubicaci\u00f3n central.","og_url":"https:\/\/cienciaytecnology.com\/wordpress\/powershell\/","og_site_name":"Ciencia y Tecnologia","article_published_time":"2024-09-19T08:50:45+00:00","article_modified_time":"2026-04-30T19:32:27+00:00","og_image":[{"width":1408,"height":768,"url":"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2024\/09\/powershell.jpg","type":"image\/jpeg"}],"author":"david","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"david","Tiempo de lectura":"10 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cienciaytecnology.com\/wordpress\/powershell\/#article","isPartOf":{"@id":"https:\/\/cienciaytecnology.com\/wordpress\/powershell\/"},"author":{"name":"david","@id":"https:\/\/cienciaytecnology.com\/wordpress\/#\/schema\/person\/b76777e3c0d2d08ea263068461c90d4b"},"headline":"Powershell","datePublished":"2024-09-19T08:50:45+00:00","dateModified":"2026-04-30T19:32:27+00:00","mainEntityOfPage":{"@id":"https:\/\/cienciaytecnology.com\/wordpress\/powershell\/"},"wordCount":2202,"commentCount":0,"publisher":{"@id":"https:\/\/cienciaytecnology.com\/wordpress\/#\/schema\/person\/b76777e3c0d2d08ea263068461c90d4b"},"image":{"@id":"https:\/\/cienciaytecnology.com\/wordpress\/powershell\/#primaryimage"},"thumbnailUrl":"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2024\/09\/powershell.jpg","keywords":["arreglos","Bucles","Clases","clases est\u00e1ticas","Cmdlets","colas","comandos","Condicionales","diccionarios","Estructuras de control","Funciones","hashtables","Herencia","librerias","manejo de archivos","metodos","m\u00f3dulos","objetos","Operadores","pilas","powershell","Propiedades","tipos de datos","tuberias","variables"],"articleSection":["Programaci\u00f3n"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/cienciaytecnology.com\/wordpress\/powershell\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/cienciaytecnology.com\/wordpress\/powershell\/","url":"https:\/\/cienciaytecnology.com\/wordpress\/powershell\/","name":"Powershell - Ciencia y Tecnologia","isPartOf":{"@id":"https:\/\/cienciaytecnology.com\/wordpress\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cienciaytecnology.com\/wordpress\/powershell\/#primaryimage"},"image":{"@id":"https:\/\/cienciaytecnology.com\/wordpress\/powershell\/#primaryimage"},"thumbnailUrl":"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2024\/09\/powershell.jpg","datePublished":"2024-09-19T08:50:45+00:00","dateModified":"2026-04-30T19:32:27+00:00","description":"PowerShell es una plataforma de automatizaci\u00f3n y configuraci\u00f3n de tareas, compuesta por un shell de l\u00ednea de comandos y un lenguaje de scripting asociado. Desarrollado por Microsoft, PowerShell es utilizado principalmente para la administraci\u00f3n de sistemas y automatizaci\u00f3n de tareas en entornos Windows, aunque tambi\u00e9n es compatible con otras plataformas como macOS y Linux.Caracter\u00edsticas Clave:Cmdlets: Comandos espec\u00edficos de PowerShell dise\u00f1ados para realizar tareas particulares, como la gesti\u00f3n de archivos y directorios, configuraci\u00f3n de sistemas y administraci\u00f3n de servicios.Pipeline: Permite encadenar cmdlets y pasar datos entre ellos de manera eficiente, facilitando la manipulaci\u00f3n y transformaci\u00f3n de datos.Automatizaci\u00f3n: Ideal para scripts de automatizaci\u00f3n que gestionan tareas repetitivas, implementaciones y configuraci\u00f3n de sistemas.Acceso a .NET: Integraci\u00f3n completa con .NET Framework y .NET Core, permitiendo a los usuarios acceder y utilizar clases y m\u00e9todos .NET en sus scripts.Administraci\u00f3n Remota: Posibilita la ejecuci\u00f3n de comandos y scripts en sistemas remotos, facilitando la gesti\u00f3n de m\u00faltiples m\u00e1quinas desde una ubicaci\u00f3n central.","breadcrumb":{"@id":"https:\/\/cienciaytecnology.com\/wordpress\/powershell\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cienciaytecnology.com\/wordpress\/powershell\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/cienciaytecnology.com\/wordpress\/powershell\/#primaryimage","url":"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2024\/09\/powershell.jpg","contentUrl":"https:\/\/cienciaytecnology.com\/wordpress\/wp-content\/uploads\/2024\/09\/powershell.jpg","width":1408,"height":768},{"@type":"BreadcrumbList","@id":"https:\/\/cienciaytecnology.com\/wordpress\/powershell\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/cienciaytecnology.com\/wordpress\/"},{"@type":"ListItem","position":2,"name":"Powershell"}]},{"@type":"WebSite","@id":"https:\/\/cienciaytecnology.com\/wordpress\/#website","url":"https:\/\/cienciaytecnology.com\/wordpress\/","name":"Ciencia y Tecnologia","description":"","publisher":{"@id":"https:\/\/cienciaytecnology.com\/wordpress\/#\/schema\/person\/b76777e3c0d2d08ea263068461c90d4b"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cienciaytecnology.com\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":["Person","Organization"],"@id":"https:\/\/cienciaytecnology.com\/wordpress\/#\/schema\/person\/b76777e3c0d2d08ea263068461c90d4b","name":"david","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/a9d8ccd92847e24d772422bc56934157f705784123e5b11a9724d44add16e6bb?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a9d8ccd92847e24d772422bc56934157f705784123e5b11a9724d44add16e6bb?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a9d8ccd92847e24d772422bc56934157f705784123e5b11a9724d44add16e6bb?s=96&d=mm&r=g","caption":"david"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/a9d8ccd92847e24d772422bc56934157f705784123e5b11a9724d44add16e6bb?s=96&d=mm&r=g"},"sameAs":["https:\/\/cienciaytecnology.com\/wordpress"]}]}},"_links":{"self":[{"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/posts\/79","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/comments?post=79"}],"version-history":[{"count":6,"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/posts\/79\/revisions"}],"predecessor-version":[{"id":831,"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/posts\/79\/revisions\/831"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/media\/830"}],"wp:attachment":[{"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/media?parent=79"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/categories?post=79"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cienciaytecnology.com\/wordpress\/wp-json\/wp\/v2\/tags?post=79"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}