> For the complete documentation index, see [llms.txt](https://b4zh.gitbook.io/b4zh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://b4zh.gitbook.io/b4zh/windows/borrador.md).

# BORRADOR

comandos: instrucciones ejecutables, cmd

cmdlets: instancias de clases .net, powershell, diseñados para interactuar con .net, ligero y procesar objetos, para tareas mas avanzadas

cmd: solo comandos

powershell: comandos y cmdlets

***

cmd y powershell

darles ordenes al sistema

cmd: command prompt, se basa en la cli de ms-dos, limitada a la manipulacion de texto y de ficheros y directorios, para tareas basicas, o con software de terceros antiguos y no compatibles con powershell

powershell: cmd destinada a la administracion y automatizacion de tareas, 2006, mas robusta y flexible, se basa en .net framework, hace lo que hace cmd y para tareas administrativas mas avanzadas, interactivo, siempre usa powershel.

diferencias: potencia y flexibilidad

***

POWER SHELL Y POWER SHELL SE

powershell: cli, caracteristicas de lenguaje de programacion, scripting

powershell ise(integrated scripting environment): gui, mas amigable, orientado a la creacion, ejecucion y depuracion de scripts hechos en powershell

***

bypassear requerimiento de creacion de cuenta microsoft para continuar con el proceso de instalacion de windows 11

* configurar el tipo de cuenta: personal

* desconectar la red

* abrimos una cmd SHIFT + F10

* omitir el requisito de red: oobe\bypassnro

  * oobe: out-of-box experience
  * bypassnro: bypass network requirement option

* el sistema se reiniciara

* volver a configurar el idioma del sistema y del teclado

* ahora aparecera la opcion de "No tengo internet"

***

Directorios importantes de Windows

C:\Windows\ = ficheros y directorios escenciales del sistema, y por lo tanto el más critico.

C:\Archivos de Programa\ = se encuentran la mayoria de aplicaciones instaladas en el sistema, que son compatibles con la arquitectura de 64 bits

C:\Archivos de Programa (x86)\ = solo en sistemas de 64 bits, igual que el de arriba, pero para aplicaciones de 32 bits en sistemas de 64 bits

C:\Users\ = antes conocido como "Documents and Settings", directorios y ficheros personales y configuraciones y datos especificos de los usuarios, como el directorio en linux

C:\Users\\%user%\AppData: en los directorios personales de cada usuario, los datos y configuraciones especificas de cada usuario.

C:\Windows\System32: fundamental para el SO, contiene fichero criticos, controladores.para el funcionamiento del siistema, dificil de eleiminar

C:\Windows\SysWOW64: solo en versiones de 64 bits, contiene los ficheros para la compatibilidad con aplicaciones de 32 bits

C:\Windows\Temp: ficheros temporales, hacer purga.

C:\Windows\Prefetch: ficher de precarga, hacer purga, que generan momentaneamente aplicaciones y servicios para poder funcionar.

C:\ProgramData: almacena configuraciones y datos compartidos que las apliciones necesitan para funcionar correctamente, para todos los usuarios

C:\Recovery: herramientas y datos utilizados para la recuperación del SO. restaurar windows a un estado anterior

C:\Windows\SoftwareDistribution\Download: almacena de forma temporal los ficheros descargados por windows update, hacer limpieza para resolver problemas con actualizaciones

C:\Windows\Tasks: almacena ficheros de tareas programadas del sistema

C:\Windows\System32\Tasks: para sistemas de 32 bits

C:\Windows\Logs: logs del sistema

C:\Windows\Resources: recursos de temas y otros elementos visuales usados por el sistema operativo, para la personalizacio a nivel visual, de windows.

***

FICHEROS IMPORTANTES DE WINDOWS

* ntldr: en versiones inferiores a windows vista, ayudan a cargar al sistema operativo

* bootmgr: gestor de arranque que llama al fichero winload. estos 2 arrancan el sistema pero ademas tiene otras funciones

* ntoskrnl: nucleo del SO, se encarga de la gestion de la memoria y los procesos

* winload: responsable de cargar windows durante el proceso de inicio

* explorer: procesos del explorador de windows, responsable de proporcionar la GUI al usuario, escritorio, barra de tareas, menu de inicio, y mas, consume muchos recursos hardware

* svchost: proceso que aloja servicios de windows, varios servicios pueden compartir un unico proceso svchost, para reducir el consumo de recursos, no es malware, es normal que consuma muchos recursos del sistema y que se reproduzca tanto, o quien sabe. pero es oficial de windows

* C:\Windows\System32\Config: base de datos del registro de Windows

* C:\Windows\System32\Drivers: controladores de dispositivos, necesarios para hacer el puente de comunicacion entre el hardware y el SO

* Pagefile: fichero de paginacion de windows, usado como memoria virtual

* hiberfil: sirve cuando windows entra en hibernacion, almacena el contenido de la memoria ram, lo que permite que cuando vuelve de la hibernacion se pueda restaurar el contenido a su estado anterior

* C:\Windows\System32\services.exe: gestiona el inicio y la terminacion de los servicios dentro de windows

* C:\Windows\System32\drivers\etc\hosts: usado para la asignacion estatica de nombres de host a direcciones ip, como el host de linux

* C:\Windows\System32\userinit.exe: se encarga de iniciar la sesion del usuario al arrancar windows, carga las perfiles y establece el Entorno de Escritorio

* C:\Windows\System32\lsass.exe: Local Security Subsystem Service, gestiona la politica de seguridad y la autenticacion de los usuarios

* C:\Windows\System32\smss.exe: Sesion Manager Subsystem, responsable de iniciar la sesión de un usuario, y gestionar el entorno de los subsistemas

* C:\Windows\memory.dmp: windows crea este fichero de volcado de memoria cuando ocurre una pantalla azul, el cual se puede analizar para buscar una solucion

***

PERMISOS EN WINDOWS

Los permisos definen que tipo de acceso se otorga a un usuario o grupo, sobre un objeto como un fichero o directorio.

Estos permisos se pueden asignar a usuarios, grupos, y a otros objetos con identificadores de seguridad en el dominio a nivel de redes empresariales

y a nivel de uso domestico se asignan permisos a usuarios y grupos locales, que estan en el mismo equipo donde esta el objeto, archivo o carptea

TIPOS DE PERMISOS

* LECTURA: ver y abrir archivos y carpetas
* ESCRITURA: modificacion de los archivos o carpetas
* EJECUCIÓN: ejecutar archivos ejecutables
* MODIFICACIÓN: lectura + escritura + ejecucion
* CONTROL TOTAL: otorga todos los permisos anteriores + la capacidad de cambiar permisos y tomar propiedad de los archivos o carpetas

OTROS CONCEPTOS

* PROPIEDAD: cada objeto en windows tiene un propietario que generalmente es el usuario usuario que creo el objeto, el propietario tiene la capacidad de cambiar los permisos de sus objetos, independientemente de los permisos establecidos

* HERENCIA: los objetos dentro de una carpeta, heredaran los permisos marcados para ser heredados

* DERECHOS DE USUARIO: privilegios especificos otorgados a usuarios o grupos, que les permite realizar acciones concretas en el sistema, solo las acciones especificadas, nada mas, por ejemplo que un usuario solo pueda entrar a un equipo en una red corporativa o que solo tenga el derecho de ejecutar un ejecutable, no los demsa ejecutables, util para capar una red

* PERMISOS: se apllican a objetos

* DERECHOS: se aplican a acciones del sistema como: que un usuario solo pueda entrar a un equipo en una red corporativa o que solo tenga el derecho de ejecutar un ejecutable, no los demsa ejecutables

* ETIQUETAS DE INTEGRIDAD: forman parte del modelo de seguridad de windows, para clasificar procesos y objetos segun su nivel de confianza, funcional principal es prevenir que los procesos de menor integridad interactuen o afecten procesos de mayor integridad, para esto existen niveles, esto en windows se definen por niveles:
  * NIVELES DE ETIQUETAS DE INTEGRIDAD
    * Sistema
    * Alto
    * Medio: los objetos o procesos sin etiqueta de integridad, por defecto se ponen como integridad media
    * Bajo

* Listas de Control de Acceso (ACL): en entornos empresariales, se basan en un conjunto de entradas de control de acceso o ACE, que definen los permisos para los usarios y grupos sobre un objeto del sistema, cada ACE especifica los permisos concedidos o denegados para un usuario o grupo sobre el objeto

Forma global de establecer permisos en el entorno completo de una red corporativa, que permite centralizar toda la gestion de permisos en un mismo lugar, lo que ahorra mucho tiempo

2 TIPOS DE ACL

* DACL:  Discretionary ACL, controla el acceso, esta controla
* SACL: System ACL, usado principalmente para auditorias y el seguimiento del acceso, esta la sigue

ACE: aqui se definen los permisos que se aplicaran posteriormente

***

ATRIBUTOS EN WINDOWS

Son marcadores que definen propiedades y comportamientos especiales para los objetos de windows.

* READ-ONLY: previene que un archivo se modificado accidentalmente, ya que este archivo solo se podra leer y no modificar
* HIDDEN: ficheros o directorios que estan ocultos, y que no se muestran en la vista del explorador o en las busquedas normales, a menos que forzemos verlos
* SYSTEM: identificar activos criticos para el funcionamiento de Windows, que generalmente no deben ser modificados por los usuarios, ej: C:\Windows\\
* ARCHIVE: marcado automaticamente por windows cuando un archivo es modificado indicando que necesita ser respaldado.
* DIRECTORY: indica que el objeto es un directorio y no un fichero individual

ATRIBUTOS ESPECIALES:

* TEMPORARY: usado para archivos que son usado temporalmente y que puedens ser eliminados despues de su uso, como los del directorio Temp
* OFFLINE: señala que los datos del archivo no estan inmediatamente disponibles, como datos almacenados en la nube o en un servidor remoto

Cambiar los atributos de un fichero o directorio, lo hacemos con Attrib desde la CLI

OTROS ATRIBUTOS:

* COMPRESSED: para directorios o ficheros comprimidos
* ENCRYPTED: para directorios o ficheros cifrados

***

COMODINES EN WINDOWS

Caracteres especiales para representar uno o mas caracteres en una cadena de texto, sirven para hacer busquedas de archivos o para hacer operaciones con comandos y cmdlets

* \*=representa cualquier caracter y cualquier cantidad de caractéres
* &#x20;? = representa un único carácter.
* \[    ] = rango de caracteres. \[1-4]
* ! = negacion de caracteres. Ej: en una busqueda buscaria todo menos x
* \~ = descativa la caracteristica del caracter, dejando de ser un comodin para convertirse en un caracter normal.

Estos comodines se pueden combinar y usarlos con comandos y cmdltes

***

PROMPT EN POWERSHELL

PS C:\Windows\system32>

PowerShell + Directorio de trabajo actual + final del prompt e indicador de que podemos empezar a ejecutar comandos

***

VARIABLES DE ENTORNO EN WINDOWS

Valores dinámicos que tienen información específica del entorno del sistema.

TIPOS DE VARIABLES DE ENTORNO

* VARIABLES DE ENTORNO DE USUARIO: afectan a un usuario en especifico
* VARIABLES DE ENTORNO DEL SISTEMA: afectan a todos los usuarios y grupos del sistema, son globales.

VARIABLES DE ENTORNO DESDE LA POWERSHELL:

El proveedor de datos $Env, nos permite acceder a las variables de entorno.

En PS las variables de entorno se representan con el símbolo $.

No es case sensitive: $Env:COMPUTERNAME = $Env=CompuTERnAme

```ps
Get-ChildItem Env:
Muestra todas las variables de entorno con sus valores, disponibles en el SO

$Env:PATH
Rutas donde el sistema buscara ficheros ejecutables

$Env:TEMP
Ruta donde se encuentran los ficheros temporales

$Env:USERPROFILE
Ruta del directorio personal del usuario actual

$Env:SYSTEMROOT
Ruta donde está instalado el SO

$Env:COMSPEC
Ruta donde se encuentra el interprete de linea de comandos

$Env:HOMEPATH
Muestra el directorio personal del usuario actual

$Env:PROGRAMFILES
Ruta del directorio donde estan instalada mayoria de aplicaciones del sistema

$Env:WINDIR
Ruta del directorio donde está instalado el SO

$Env:APPDATA
Ruta donde estan los datos de la aplicacion para el usuario actual

$Env:LOCALAPPDATA
Ruta donde esta el almacenamiento de datos de aplicación específicos

$Env:PUBLIC
Ruta del directorio compartido, entre los usuarios.

$Env:COMPUTERNAME
Muestra el nombre de la máquina

$Env:USERNAME
Muestra el nombre del usuario actual

$Env:USERDOMAIN
Muestra el dominio donde se encuentra el usuario actual

$Env:null
Valor Nulo
---

$Env:admin = "m4m"
Cambia el valor de una variable, y si no existe, crea la variable.

$Env:admin = "$Env:admin;b4zh"
Agregar un nuevo valor a una variable ya existente

$Env:admin = $null
$Env:admin = "$Env:null"
$Env:admin = "$null"
Elimina la variable, al pasarle el valor nulo de la variable $null

Algo curioso, es que una variable inexistente vendría siendo un valor nulo también
Por ejemplo, la variable $noexisto no existe, por lo que el siguiente resultado
eliminaría la variable existente
$Env:admin = $noexisto

```

VARIABLES DE ENTORNO EN CMD

Las variables de entorno se representan con %variable\_de\_entorno%. Cualquier cambio en las variables de entorno, surtiran efecto en la proxima sesion del cmd.

No es case sensitive: echo %PATH% = echo %pATh%

```ps1
set
Muestra las variables de entorno del sistema

echo %USERNAME%
Ver el valor de una variable de entorno

setx b4zh "m4m"
Cambia el valor de una variable, y si la variable no existe, la crea.

setx PATH "%PATH%;C:\Users\b4zh\Desktop\scripts"
Agregar un valor a una variable ya existente

set b4zh ""
Una varible sin valor no puede existir, por lo que para eliminar una variable
simplemente le asignamos un valor nulo
```

***

COMANDOS Y CMDLETS DE GESTION, NAVEGACION, FICHEROS Y DIRECTORIOS

```cmd
cd = cambiar de directorio
    . directorio actual
    .. directorio padre del directorio actual

pwd = imprimr el directorio actual

mdkir = crear directorio, también con subdirectorios

ren = renombrar ficheros o directorios

copy = copiar solo ficheros
    /b verificar que los ficheros nuevos se hayan escrito correctamente
    /z copiar ficheros en modo reiniciable, si se interrumpe el copiado, se reanuda
    
xcopy = copiar ficheros y directorios y subdirectorios completos
    /e copiar directorios y subdirectorios (aunque esten vacios)
    /d de date permite copiar ficheros cambiados en una fecha o despues de una fecha
        en especifico: /d:01/31/2001
    /u copiar solo ficheros que ya existen el directorio de destino
        util para sincronizar directorios

move = mover ficheros o directorios

del = eliminar ficheros o directorios. Se usan muchos los comodines * y ?
        desde la PS la eliminacion con el comodin ?, si es "correcta"
    /p pedir confirmacion antes de eliminar
    /f forzar eliminacion de ficheros de solo lectura
    /s eliminacion recursiva y especifica
    /q modo silencioso, no pide confirmacion para la eliminacion
        de un directorio con ficheros dentro
    

  dir = lista el contenido dentro de un directorio
      /a muestro los objetos con sus atributos
      /b formato de lista simple
      /s lista de forma recursiva
      /x acortar nombres largos
      /o listar en un orden en especifico
          /on ordenar por nombre
          /os ordenar por tamaño
          /oe ordenar por extension
          /o-[x] ordenar de forma descendente
          se pueden combinar: /oe /os
      
  atrrib = ver o modificar los atributos de ficheros o directorios
      +R: Establece el fichero como solo lectura
      -R: Elimina el atributo de solo lectura
      +H: Activa el atributo oculto
      -H: Quita el atributo ocutlo
      +S: Establece el atributo sistema
      -S: Quita el atributo sistema
      +A: Establece el atributo de archivar
      -A: Elimina el atributo de archivar
      
  findstr = buscar cadenas de texto especificas dentro de ficheros
      findstr "patron" fichero.txt
      findstr "patron" *.txt
      /i desactiva case sensitive
      /n muestra el numero de linea donde encontro el patron
      
  type = leer ficheros
```

***

COMANDOS DE AYUDA Y SOPORTE

```cmd
Para comandos
[comando] /?
help [comando]

Para cmdlets
Get-Help [cmdlet]
```

***

COMANDOS Y CMDLETS DE GESTIÓN DE USUARIOS

```cmd
COMANDOS:
     Listar usuarios disponibles en el SO
          net user

    Crear usuario:
        net user [username] [password] /add -> inseguro porque con el comando history
                                                se puede ver el historial de comandos.
        
        net user [username] * /add -> con * forzamos a que nos pida la contraseña
                                       en la salida del comando.
        
   Borrar usuario:
        net user [username] /delete
        
   Activar cuenta de usuario:
        net user [username] /active:yes
   
   Desactivar cuenta de usuario:
        net user [username] /active:no
   
   
   Requerir que la cuenta de usuario tenga una contraseña:
        net user [username] /passwordreq:yes
   
   No requerir que la cuenta de usuario tenga una contaseña:
        net user [username] /passwordreq:no
        
```

```ps1
CMDLETS: PS ofrece el módulo Local-Accounts para la gestión de usuarios y grupos
      Listar los usuarios disponibles en el SO:
           Get-LocalUser
      
      Crear usuario
           New-LocalUser -Name [username/"user name"] -Password [password] -> inseguro
      
           New-LocalUser -Name [username/"user name"] -> recomendado
      
     Modificar la cuenta de un usuario ya existente:
           Set-LocalUser -Name [username] -PasswordNeverExpires $true
                Hacer que la contraseña de un usuario ya existente nunca expire
       
    Borrar usuario:
         Remove-LocalUser -Name [username]       
      
OJO: Ejecutar los cmdlets desde la PS como Administrador

```

***

COMANDOS Y CMDLETS DE GESTIÓN DE GRUPOS

```ps1
COMANDOS:
    Listar todos los grupos disponibles en el SO:
        net localgroup
    
    Crear un nuevo grupo:
        net localgroup [groupname] /add
        
    Eliminar un grupo:
        net localgroup [groupname] /delete
    
    Añadir un usuario a un grupo:
        net localgroup [groupname] [username] /add
    
    Eliminar un usuario de un grupo:
        net localgroup [groupname] [username] /delete
        
```

```ps1
CMDLETS: PS ofrece el módulo ya visto antes, Local-Accounts
    
    Listar los grupos:
        Get-LocalGroup
    
   Crear un nuevo grupo:
        New-LocalGroup -Name [groupname] 
        
    Eliminar grupo:
        Remove-LocalGroup -Name [groupname]
        
    Añadir un miembro a un grupo:
        Add-LocalGroupMember -Group [groupname] -Member [username]
    
    Eliminar un miembro de un grupo:
        Remove-LocalGroupMember -Group [groupname] -Member [username]
        
```

***

COMANDOS Y CMDLETS DE GESTIÓN DE PERMISOS

```ps1
COMANDOS:
    CACLS: Mostrar o modificar permisos de acceso a ficheros o directorios
        Listar los permisos actuales del objeto:
            cacls [objeto]
                Permisos:
                    R = Read
                    F = Full
        
        Reemplazar los permisos existentes:
            cacls [objeto] /p [username]:[Permiso]
            
        Conceder permisos adicionales a un usuario o aun grupo:
            cacls [objeto] /g [username]:[Permiso]
               
        Revocar los permisos de un usuario o grupo:
            cacls [objeto] /r [username] -> Revocar todos los permisos
            cacls [objeto] /r [username]:[Permiso] -> Revocar un permiso en específico
            
        Denegamos todos los permisos a un usuario o a un grupo.
        Negación activa de permisos:
            cacls [objeto] /d [username]
            
    _______________________________________________________________________        
    
    ICACLS: Gestionar permisos de ficheros y directorios + funcionalidades
            adicionales, como la HERENCIA de permisos
        
        Herencia de permisos:
            icacls [directorio] /inheritance:[e/d/r]
                e = enable, habilita la herencia
                d = disable, deshabilita la herencia
                r = remove, remueve la herencia
            
       Asignar los permisos que se Heredaran
           icacls [directorio] /grant "[username/groupname]:[flags]:[Permiso]"
               Flags:
                   (OI) = Object Inherit, Los permisos se aplicarán a los
                           archivos dentro del contenedor
                   (CI) = Container Inherit, Los permisos se aplicarán a las
                           subcarpetas dentro del contenedor
                   (IO) = Inherit Only, La ACE (Entrada de Control de Acceso) solo
                           se aplican a los objetos y/o contenedores que se creen
                           después de esta ACE; no afecta al objeto o contenedor al
                           que se adjunta esta ACE
                   (NP) = No Propagate Inherit, Esta marca indica que la ACE no se
                           propagará a objetos secundarios como se define normalmente
                           por la herencia
                   
                   (I) = Inherited, Indica que la ACE es heredada de una carpeta padre
                         en lugar de ser definida explicitamente en el objeto actual.
                      
                           
         Establecer un propietario:
             icacls [directorio] /setowner [username]
             
         Eliminar un permisos de un usuario en específico:
             icacls [directorio] /remove [username]      
             
```

```ps1
CMDLETS: Get-Acl y Set-Acl. Gestionar permisos en ficheros y directorios.

    Ver los permisos actuales de un recuro:
        Get-Acl [recurso]
        
    Modificar permisos, con $variables:
        Ej: Clonar permisos (ACL) de un fichero para asignarselos a otro fichero
        - $Env:SUI = "Get-Acl [recurso]"
        - Set-Acl [recurso] $SUI
    
```

***

COMANDOS DE GESTIÓN DE REDES

```ps1
COMANDOS:

    ipconfig = muestra la configuración de red actual de la máquina.
        /all = muestra toda información de la configuración de red en el SO.
        /release = Liberar la dirección IP asignada por el DHCP.
        /renew = solicitar al DHCP que nos de una dirección IP.
        /flushdns = eliminar caché del DNS que se almacena en el SO.
        
    hostname = muestra el nombre de la máquina a nivel de la red.
    
    arp = mapear las direcciones IP a direcciones MAC
        /a = muestra la tabla ARP de la caché actual
        
    nslookup = consultar DNS
        nslookup [ip/dominio]
    
    tracert = determina la ruta tomada por los paquetes cuando intentan llegar
                a un destino específico en una red
                Útil para diagnosticar problemas de red y determinar en que punto
                llega a fallar un paquete que no se entrega. O posibles retrasos
                que existan en la ruta de red.
        tracert [ip/dominio]
            /h = establecer número máximo de saltos en la ruta de rastreo
                tracert /h 33 [ip/dominio]
            -4 = indicar queremos usar IPv4
                tracert -/h -33 -4 [ip/dominio]
    
    netstat = muestra estadísticas de red, conexiones activas, puertos y
                protocolos. Ver con quien o que se está comunicando nuestra
                máquina. Ver conexiones entrantes y salientes, y los puertos y
                protocolos que estamos utilizando.
            -a = ver todas las conexiones y puertos en escucha
            -s = ver estadisticas por protocolo
            -o = ver el PID del proceso asociado a cada conexión
            -o [s] = indicar tiempo segundos para la actualización de la información
            -n = ver direcciones IP y número de puertos en formato numerico
            -p [Protocolo] = indicar el protocolo que usan las conexiones que
                            que queremos ver
            -t = muestra las rutas de ejecución para cada conexión
            netstat -ano = combinando parámetros
            
    ping = enviar paquetes icmp a un host en específico para comprobar la
            conectividad o para medir la latencia de la conexión.
      ping [ip/dominio]
          -n [n] = establecer número de solicitudes echo a enviar
          -l [b] = establecer tamaño en bytes del paquete ICMP a enviar.
          EJ: ping -n 5 -l 44 hixec.com
          
     getmac = muestra las direcciones MAC de las NICs en nuestra máquina.
         /v = muestra información detallado
         /fo list = mostrar la información en formato de lista
    
    route = gestiona tablas de enrutamiento, dirige tráfico y muestra rutas.
        print = muestra la tabla de enrutamiento configurada en el sistema
        - route print
        
        add = añadir una nueva ruta
        - route add [dirección_de_red_destino] mask [netmask] [puerta_de_enlace_por_la_cual_queremos_entrar_a_la_red]
         - route 192.168.4.0 mask 255.255.255.0 10.0.2.2
         
         delete = eliminar una ruta
         - route delete [dirección_de_red]
         - route 192.168.4.0
         
   pathping = ping + tracert. Rastrea rutas, mide pérdida y latencia de paquetes
     pathping [ip/dominio]
            
```

***

COMANDOS Y CMDLETS DE GESTIÓN DE PROCESOS

```ps1
COMANDOS:

----------

    tasklist = ver lista de todos los procesos en ejecución.
        /fo [list,csv,table] = indicar el formato de salida.
        /fi = aplicar filtro en el formato
            Ej: tasklist /fi "STATUS eq RUNNING" -> solo ver procesos que están
                                                    corriendo a nivel de la consola
                Operadores de comparación
                    -eq = igual a
                    -ne = no igual a
                    -gt = mayor que
                    -ge = mayor o igual que
                    -lt = menor que
                    -le = menor o igual que
                    -like = compara una cadena con un patrón (admite comodines)
                    -notlike = lo opuesto a -like
                    -match = compara una cadena con una expresión regular
                    -notmatch = lo opuesto a -match
                    -contains = verifica si una colección contiene un valor específico
                    -notcontains = lo opuesto a -contains
                    -in = verifica si una valor se encuentra en una colección
                    -notin = lo opuesto a -in
                    -replace = reemplaza una cadena por otra utilizando una
                                expresión regular
                    
        /svc = ver los servicios en ejecución
        /v = información más detallada de los procesos

----------
        
    taskill = permite finalizar procesos en ejecución
                a través de su PID o su Process Name (Nombre de la imagen del proceso)
            
        /im, -im = especificar nombre de la imagen del proceso
        /pid, -pid = especficar el Process ID
        /f = forzar eliminación del proceso
            
```

```ps1
CMDLETS:

    Get-Process = muestra una lista de procesos en ejecución
    Filtrar Procesos por su Nombre
        Ej: Get-Process note*
        
    
    Start-Process = Iniciar un proceso
        EJ: Start-Process "notepad"
        -FilePath = indicar ruta (relataiva/absoluta/path) del ejecutable 
                    responsable del proceso que queremos iniciar
            Ej: Start-Process -FilePath ping
        -ArgumentList = especificar los argumentos que se le van a enviar
                        al ejecutable
            Ej: Start-Process -FilePath ping -ArgumentLista "-n 5 -l 22 hixec.com"
        
    Stop-Process = Para procesos
        -Name = indicar el nombre del proceso
        -Id = indicar el PID del proceso
    
    
```

***

REDIRECCIONES EN POWERSHELL

```ps1
ESTÁNDARES EN POWER SHELL
    0 : STDIN
    1 : STDOUT
    2 : STDERR
    3 : Salida de Advertencia (situación no grave, pero se debe poner atención)
    4 : Salida de verbose (información detallada)
    5 : Salida de información (mensajes menos técnicos)
    6 : Salida de depuración (mensajes de depuración)

OPERADORES DE REDIRECCIÓN:
    > : redirige el STDOUT
    >> : redirige el STDOUT sin sobreescribir la información
    | : redirige el STDOUT de un comando como el STDIN del siguiente comando
    
OPERADORES LÓGICOS: Disponible desde la versión 7 de Power Shell
    && = AND, ejecuta el segundo comando solo si el primero se ejecuta exitosamente.
    || = OR, ejecuta el segundo comando solo si el primer comando falla.
    ! = NOT, invierte el estado de un comando o cmdlet o expresión booleana
    
```

```ps1
CMDLETS:
    Get-Date = muestra la fecha y hora actual del sistema.

    Sort-Object = para ordenar información.
        Ej: Get-Process | Sort-Object CPU --Descending
            Ordena la lista de procesos por el uso de la CPU de forma descendente.
    
    Test-Path = verificar si un fichero existe. Devuelve True o False.
    
    Write-Host = echo hecho cmdlet.
    
    Get-ChildItem = listar recursos del sistema.
    
```

```ps1
Ver la versión de la PowerShell:

$PSVersionTable
```

***

ALIAS EN POWERSHELL

Alias: palara clave que representa un acción personalizada.&#x20;

```ps1
CMDLETS:
    
    Get-Alias = muestra una listas de todos los alias disponibles en la sesión actual
        -Definition [cmdlet/funcionPS] = mostrar la información de los alias 
                                    establecidos para un cmdlet o para una función
                                    preestablecida en la PS.
        
    New-Alias = crear un nuevo alias. Solo estará disponible en la sesión actual.
        -Name [aliasname] = indicar el nombre del nuevo alias
        -Value [cmdlet/funcionPS] = indicar el cmdlet o la funcion en la que nos vamos
                                    a basar para crear el alias.
   
   Set-Alias = Modificar un alias ya existente, y si no existe, lo crea
        -Name [aliasname] = nombre del alias
        -Value[cmdlet/funcionPS] = Indicar el cambio de cmdlet o funcion.
        
    Remove-Alias = Eliminar un alias existente. No disponible en PS 5.1.19041.2673
        -Name [aliasname] = nombre del alias
    
    Export-Alias = Exportar/Guardar todos los alias de la sesión actual en un fichero
                    con extensión .txt o .csv
        -Path [ruta.txt/.csv] = indicar la ruta donde va a guardar el fichero.
    
    Import-Alias = importar alias a la sesión actual, a través de un fichero.
        -Path [fichero-alias.txt/.csv] = indicar la ruta donde esta el fichero
                                        con los alias.
    
```
