domingo, 3 de diciembre de 2023

Powershell , CMD y otras cosas más

En este post veremos:

  • ¿Qué es Powershell?
  • ¿Qué es CMD?
  • ¿Qué es HTA?
  • ¿Qué es VBScript?

Powershell es considerado tanto una herramienta administrativa como un lenguajes de programación para scripting. Se considera una mejora con respecto a CMD de Windows, con toques de Perl y Bash Linux. También tiene toques de VbScript. Con el se pueden realizar tareas de automatización y otro tipo de aplicaciones con propósito general.

¿Cómo inicio con Powershell?

Powershell viene por defecto en entornos Windows. Para MacOS y Linux deberás instalarlo. En Ubuntu puedes hacer lo siguiente. Abre una terminal y teclea esto:

sudo apt-get update
sudo apt-get upgrade
sudo snap install powershell --classic

Otra forma:

# Prerequisites

# Update the list of packages
sudo apt-get update

# Install pre-requisite packages.
sudo apt-get install -y wget apt-transport-https software-properties-common

# Get the version of Ubuntu
source /etc/os-release

# Download the Microsoft repository keys
wget -q https://packages.microsoft.com/config/ubuntu/$VERSION_ID/packages-microsoft-prod.deb

# Register the Microsoft repository keys
sudo dpkg -i packages-microsoft-prod.deb

# Delete the the Microsoft repository keys file
rm packages-microsoft-prod.deb

# Update the list of packages after we added packages.microsoft.com
sudo apt-get update

###################################
# Install PowerShell
sudo apt-get install -y powershell

# Start PowerShell
pwsh

Para comprobar que tienes instalado Powershell debes teclear:

$PSVersionTable

Hay comandos bastantes útiles:

Get-Help
Get-Process
Get-Location
Get-ChildItem
Get-Content
Start-Process
Stop-Process
Get-Psdrive
Get-Alias
Get-Start
Get-Stop

Si quieres obtener ayuda sobre algún comando puedes usar Get-Help seguido del comando a elegir. Ejemplo:

Get-Help Get-Alias -examples

Con esto obtenemos información del comando y algunos ejemplos de cómo usarlo.

Si quieres obtener información de algún programa (proceso) puedes teclear:

Get-Process powershell,chrome

En este caso queremos ver la información de Powershell y el navegador Chrome. Básicamente, con Powershell puedes administrar máquinas locales y remotas, crear scripts y hacer uso de .Net Framework para crear aplicaciones útiles.

¿Y qué pasa con CMD?

Se trata de una aplicación. Anteriormente un SO. Es un interprete de comandos. Abre una terminal con tecla Windows + R y teclea: cmd. Con esto se abrirá la terminal. Escribe ahora: help.

ASSOC          Muestra o modifica las asociaciones de las extensiones
               de archivos.
ATTRIB         Muestra o cambia los atributos del archivo.
BREAK          Establece o elimina la comprobaci¢n extendida de Ctrl+C.
BCDEDIT        Establece propiedades en la base de datos de arranque para
               controlar la carga del arranque.
CACLS          Muestra o modifica las listas de control de acceso (ACLs)
               de archivos.
CALL           Llama a un programa por lotes desde otro.
CD             Muestra el nombre del directorio actual o cambia a otro
               directorio.
CHCP           Muestra o establece el n£mero de p gina de c¢digos activa.
CHDIR          Muestra el nombre del directorio actual o cambia a otro
               directorio.
CHKDSK         Comprueba un disco y muestra un informe de su estado.
CHKNTFS        Muestra o modifica la comprobaci¢n de disco al arrancar.
CLS            Borra la pantalla.
CMD            Inicia una nueva instancia del int‚rprete de comandos
               de Windows
COLOR          Establece los colores de primer plano y fondo predeterminados
               de la consola.
COMP           Compara el contenido de dos archivos o un conjunto de archivos.
COMPACT        Muestra o cambia el estado de compresi¢n de archivos
               en particiones NTFS.
CONVERT        Convierte vol£menes FAT a vol£menes NTFS. No puede convertir
               la unidad actual.
COPY           Copia uno o m s archivos en otra ubicaci¢n.
DATE           Muestra o establece la fecha.
DEL            Elimina uno o m s archivos.
DIR            Muestra una lista de archivos y subdirectorios en un
               directorio.
DISKPART       Muestra o configura las propiedades de partici¢n de disco.
DOSKEY         Edita l¡neas de comando, recupera comandos de Windows y
               crea macros.
DRIVERQUERY    Muestra el estado y las propiedades actuales del controlador de dispositivo.
ECHO           Muestra mensajes, o activa y desactiva el eco.
ENDLOCAL       Termina la b£squeda de cambios de entorno en un archivo por lotes.
ERASE          Elimina uno o m s archivos.
EXIT           Sale del programa CMD.EXE (int‚rprete de comandos).
FC             Compara dos archivos o conjunto de archivos y muestra las
               diferencias entre ellos.
FIND           Busca una cadena de texto en uno o m s archivos.
FINDSTR        Busca cadenas en archivos.
FOR            Ejecuta el comando especificado para cada archivo en un conjunto de archivos.
FORMAT         Formatea un disco para usarse con Windows.
FSUTIL         Muestra o configura las propiedades del sistema de archivos.
FTYPE          Muestra o modifica los tipos de archivo usados en
               asociaciones de extensi¢n de archivo.
GOTO           Direcciona el int‚rprete de comandos de Windows a una l¡nea con etiqueta
               en un programa por lotes.
GPRESULT       Muestra informaci¢n de directiva de grupo por equipo o usuario.
GRAFTABL       Permite a Windows mostrar un juego de caracteres extendidos
               en modo gr fico.
HELP           Proporciona informaci¢n de Ayuda para los comandos de Windows.
ICACLS         Muestra, modifica, hace copias de seguridad o restaura listas de control de acceso (ACL) para archivos y 
               directorios.
IF             Ejecuta procesos condicionales en programas por lotes.
LABEL          Crea, cambia o elimina la etiqueta del volumen de un disco.
MD             Crea un directorio.
MKDIR          Crea un directorio.
MKLINK         Crea v¡nculos simb¢licos y v¡nculos f¡sicos
MODE           Configura un dispositivo de sistema.
MORE           Muestra la informaci¢n pantalla por pantalla.
MOVE           Mueve uno o m s archivos de un directorio a otro en la 
               misma unidad.
OPENFILES      Muestra archivos compartidos abiertos por usuarios remotos como recurso compartido de archivos.
PATH           Muestra o establece una ruta de b£squeda para archivos ejecutables.
PAUSE          Suspende el proceso de un archivo por lotes y muestra un mensaje.
POPD           Restaura el valor anterior del directorio actual guardado
               por PUSHD.
PRINT          Imprime un archivo de texto.
PROMPT         Cambia el s¡mbolo de comandos de Windows.
PUSHD          Guarda el directorio actual y despu‚s lo cambia.
RD             Quita un directorio.
RECOVER        Recupera la informaci¢n legible de un disco da¤ado o defectuoso.
REM            Registra comentarios (notas) en archivos por lotes o CONFIG.SYS.
REN            Cambia el nombre de uno o m s archivos.
RENAME         Cambia el nombre de uno o m s archivos.
REPLACE        Reemplaza archivos.
RMDIR          Quita un directorio.
ROBOCOPY       Utilidad avanzada para copiar archivos y  rboles de directorios
SET            Muestra, establece o quita variables de entorno de Windows.
SETLOCAL       Inicia la localizaci¢n de los cambios de entorno en un archivo por lotes.
SC             Muestra o configura servicios (procesos en segundo plano).
SCHTASKS       Programa comandos y programas para ejecutarse en un equipo.
SHIFT          Cambia la posici¢n de par metros reemplazables en archivos por lotes.
SHUTDOWN       Permite el apagado local o remoto de un equipo.
SORT           Ordena la salida.
START          Inicia otra ventana para ejecutar un programa o comando especificado.
SUBST          Asocia una ruta de acceso con una letra de unidad.
SYSTEMINFO     Muestra las propiedades y la configuraci¢n espec¡ficas del equipo.
TASKLIST       Muestra todas las tareas en ejecuci¢n, incluidos los servicios.
TASKKILL       Termina o interrumpe un proceso o aplicaci¢n que se est  ejecutando.
TIME           Muestra o establece la hora del sistema.
TITLE          Establece el t¡tulo de la ventana de una sesi¢n de CMD.EXE.
TREE           Muestra gr ficamente la estructura de directorios de una unidad o 
               ruta de acceso.
TYPE           Muestra el contenido de un archivo de texto.
VER            Muestra la versi¢n de Windows.
VERIFY         Comunica a Windows si debe comprobar que los archivos se escriben
               de forma correcta en un disco.
VOL            Muestra la etiqueta del volumen y el n£mero de serie del disco.
XCOPY          Copia archivos y  rboles de directorios.
WMIC           Muestra informaci¢n de WMI en el shell de comandos interactivo.

Con este comando veremos un listado de comandos disponibles a usar. Comandos útiles para listar directorios, crear archivos, carpetas, borrar archivos y/o carpetas. Entre otras cosas más. Al igual que Powershell podemos crear scripts para automatizar (a nivel más bajo, ya que no es tan "poderoso" como Powershell) algunas tareas.

¿Y qué con HTA (HTML Application)?

Una aplicación HTML (HTA) es un programa de Microsoft Windows cuyo código fuente consta de HTML, HTML dinámico y uno o más lenguajes de secuencias de comandos compatibles con Internet Explorer, como VBScript o JScript.

El HTML se utiliza para generar la interfaz de usuario y el lenguaje de secuencias de comandos se utiliza para la lógica del programa. Una HTA se ejecuta sin las limitaciones del modelo de seguridad del navegador de Internet; de hecho, se ejecuta como una aplicación "totalmente confiable".

Un programa en HTA tiene como extensión *.hta. Es, básicamente, una ventana HTML. Y al tener las bondades de ese lenguaje (HTML) podemos hacer uso de todas sus etiquetas de marcado (p, label, button, select, etc.).

Ejemplo de ventanita simple en HTA:

Ventana.hta

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="MSThemeCompatible" content="Yes"/>
<title>::HTA en ejemplos::</title>
<HTA:APPLICATION
            ID = "admin"
            APPLICATIONNAME = "Admin"
            BORDER = "thick"
            CAPTION = "yes"
            ICON="favicon.ico"
            SHOWINTASKBAR = "yes"
            SINGLEINSTANCE = "no"
            WINDOWSTATE = "normal"
            SCROLL = "no"
            SCROLLFLAT = "yes"
            VERSION = "1.0"
            INNERBORDER = "no"
            SELECTION = "no"
            SYSMENU = "yes"
            MAXIMIZEBUTTON = "yes"
            MINIMIZEBUTTON = "yes"
            NAVIGABLE = "no"
            CONTEXTMENU = "no"
            BORDERSTYLE = "thin"
        />

		
<style type="text/css">
body{
    background-color:#EDEFEE;
    color:black;
    font-family:Helvetica;
}

h1{
    background-color:steelblue;
    color:black;
    text-align:center;
}

</style>
<script language="vbscript">
</script>
</head>

<body>
<div id="pnlPrincipal">
<h1>
Aplicacion HTA
</h1>

</div>
</body>
</html>

A primera vista se trata de tan solo una página HTML, pero con la característica de contar con una etiqueta especial:

<HTA:APPLICATION/>

A más detalle:
<HTA:APPLICATION
            ID = "admin"
            APPLICATIONNAME = "Admin"
            BORDER = "thick"
            CAPTION = "yes"
            ICON="favicon.ico"
            SHOWINTASKBAR = "yes"
            SINGLEINSTANCE = "no"
            WINDOWSTATE = "normal"
            SCROLL = "no"
            SCROLLFLAT = "yes"
            VERSION = "1.0"
            INNERBORDER = "no"
            SELECTION = "no"
            SYSMENU = "yes"
            MAXIMIZEBUTTON = "yes"
            MINIMIZEBUTTON = "yes"
            NAVIGABLE = "no"
            CONTEXTMENU = "no"
            BORDERSTYLE = "thin"
        />

Además de poder agregar código VBScript.

<script language="vbscript">
// Aquí el código VBScript
</script>

El código VBScript es una variación del lenguaje de programación Visual Basic. Posee básicamente la misma sintaxis y estructuras de control. Incluso permite la programación orientada a objetos.

En otros post continuaremos escribiendo sobre éstas herramientas.

Enlaces:

https://elpaladintecnologico.blogspot.com/2009/02/que-es-powershell-ejemplos-basicos-para.html
https://www.codeproject.com/Articles/763145/A-PowerShell-Introduction
https://www.softwaretestinghelp.com/windows-cmd-commands/