¿Que es PowerShell?

www.onlinetis.com
 

PowerShell es un shell de línea de comandos y un lenguaje de scripting desarrollado por Microsoft. A diferencia de las interfaces de línea de comandos más antiguas como cmd.exe, PowerShell está construido sobre el .NET Framework, lo que le da un poder y una flexibilidad mucho mayores. Su objetivo principal es la automatización y la gestión de la configuración en entornos Windows, aunque ahora también está disponible para Linux y macOS.


Características clave

PowerShell se diferencia de otros shells por varias razones:

  • Orientado a objetos: En lugar de manipular texto plano, PowerShell trabaja con objetos .NET. Esto significa que cuando ejecutas un comando, la salida no es solo texto, sino una colección estructurada de objetos con propiedades y métodos. Esto facilita filtrar, ordenar y manipular la información de manera mucho más eficiente.

    Por ejemplo, el comando Get-Process no solo muestra una lista de procesos, sino que devuelve una lista de objetos que representan cada proceso. Puedes acceder a las propiedades de estos objetos, como el Id o el Name, y luego usar otros comandos para interactuar con ellos.

  • Cmdlets (Comandos): Los comandos de PowerShell se llaman cmdlets (pronunciado command-lets). Siguen una estructura de "Verbo-Sustantivo" (Verbo-Noun) que los hace intuitivos de usar. Por ejemplo:

    • Get-Help (obtener ayuda)

    • Set-Location (establecer ubicación)

    • New-Item (crear un nuevo elemento)

    • Stop-Process (detener un proceso)

  • Automatización: Es una herramienta fundamental para la automatización de tareas administrativas. Puedes escribir scripts para automatizar la creación de usuarios, la gestión de servidores, la instalación de software y la configuración de sistemas. Esto es especialmente útil en grandes redes corporativas.


Usos comunes

PowerShell es ampliamente utilizado por administradores de sistemas y profesionales de TI para:

  • Gestión del sistema operativo: Instalar actualizaciones, gestionar permisos de archivos y carpetas, y monitorear el rendimiento del sistema.

  • Administración de Active Directory: Crear y modificar cuentas de usuario, grupos y unidades organizativas.

  • Gestión de servicios de Microsoft: Configurar y administrar servicios como Exchange, SQL Server y SharePoint.

  • Scripting y automatización: Escribir scripts para automatizar tareas repetitivas y estandarizar la configuración de sistemas.

     

    Aquí tienes algunos ejemplos de comandos y scripts de PowerShell para diferentes tareas comunes.


    1. Gestión de archivos y carpetas 📂

    Estos cmdlets son el equivalente a los comandos cd, ls, mkdir y rm en otros shells, pero orientados a objetos.

    • Listar archivos en una carpeta:

      PowerShell
      Get-ChildItem C:\Users\ejemplo
      

      Este comando obtiene todos los archivos y subcarpetas dentro de la ruta especificada. Puedes usar gci como alias.

    • Crear una nueva carpeta:

      PowerShell
      New-Item -Path C:\Temp\NuevaCarpeta -ItemType Directory
      

      El comando New-Item es muy versátil y se utiliza para crear nuevos archivos o carpetas.

    • Copiar un archivo:

      PowerShell
      Copy-Item C:\Temp\archivo.txt C:\Users\ejemplo\
      

      Copia el archivo archivo.txt a la carpeta de destino.


    2. Gestión de procesos ⚙️

    PowerShell es excelente para manejar procesos del sistema operativo.

    • Ver todos los procesos en ejecución:

      PowerShell
      Get-Process
      

      Esto devuelve una lista de objetos de proceso, no solo texto. Puedes filtrar la salida.

    • Filtrar y detener un proceso específico:

      PowerShell
      Get-Process | Where-Object {$_.ProcessName -eq "notepad"} | Stop-Process
      

      Este es un ejemplo clásico del poder de PowerShell:

      1. Get-Process: Obtiene todos los procesos.

      2. |: El pipe envía la salida del primer comando como entrada al siguiente.

      3. Where-Object {$_.ProcessName -eq "notepad"}: Filtra los procesos, buscando solo aquellos cuyo nombre es "notepad".

      4. Stop-Process: Detiene todos los procesos que coinciden con el filtro.


    3. Gestión de servicios de Windows 🛠️

    Puedes iniciar, detener y configurar servicios del sistema.

    • Obtener el estado de un servicio:

      PowerShell
      Get-Service -Name "Spooler"
      

      Verifica si el servicio de la cola de impresión (Spooler) está en ejecución.

    • Detener e iniciar un servicio:

      PowerShell
      Stop-Service -Name "Spooler"
      Start-Service -Name "Spooler"
      

      Detiene y luego reinicia el servicio.


    4. Gestión de usuarios y red 🌐

    PowerShell se usa mucho en entornos corporativos para la administración de usuarios y la configuración de red.

    • Obtener la configuración de red:

      PowerShell
      Get-NetIPAddress
      

      Muestra la configuración de las interfaces de red del equipo, incluyendo direcciones IP.

    • Crear un nuevo usuario local (con privilegios de administrador):

      PowerShell
      New-LocalUser -Name "NuevoUsuario" -Password (Read-Host -AsSecureString "Introduce una contraseña") -Description "Usuario de prueba"
      Add-LocalGroupMember -Group "Administradores" -Member "NuevoUsuario"
      

      Este script crea un nuevo usuario y luego lo añade al grupo de Administradores. Read-Host -AsSecureString solicita una contraseña de forma segura.

     

Entradas populares de este blog

Ciberseguridad y hacking con Whatweb

Como robar contraseñas haciendo un phishing web

Arsenal software hacking NFC