0% encontró este documento útil (0 votos)
55 vistas38 páginas

Sesión 3

Este documento describe los procesos en PowerShell y cómo obtener información sobre ellos. Explica que un proceso es un programa en ejecución y que el sistema operativo crea, destruye, suspende y reanuda procesos. Luego proporciona instrucciones para obtener información detallada sobre los procesos mediante cmdlets como Get-Process y Get-WmiObject.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
55 vistas38 páginas

Sesión 3

Este documento describe los procesos en PowerShell y cómo obtener información sobre ellos. Explica que un proceso es un programa en ejecución y que el sistema operativo crea, destruye, suspende y reanuda procesos. Luego proporciona instrucciones para obtener información detallada sobre los procesos mediante cmdlets como Get-Process y Get-WmiObject.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 38

Procesos con PowerShell

Magister Víctor Andrade Soto


Uno de los conceptos más importantes en los sistemas
operativos es el proceso. Se define como un programa en
ejecución. Los programas son un conjunto de archivos que
están almacenados en algún dispositivo de almacenamiento
(disco duro, USB, etc.) y que por sí solos no tienen ningún
funcionamiento, pero cuando ese conjunto de archivos se
ejecutan entonces pasan a ser un proceso.
Procesos
El sistema operativo se encarga de: crear y destruir procesos,
suspender y reanudar procesos, y sincronizar y comunicar
procesos.
Información sobre procesos
Get-Process
Parámetros y alias de los parámetros
Obtener información ampliada de procesos
1. Listar procesos de WMI
2. Listar información de procesos de Windows
3. Listar algunas propiedades
4. Usar alias para listar propiedades
5. Obtener los 5 primeros procesos ordenados
6. Listar los procesos que tengan consumo alto de tiempo
7. Listar el directorio de los procesos
8. Listar los procesos que se ejecutan desde que arranca el Sistema
operativo
Instrucciones
1. Get-WmiObject -Class win32_process
2. Get-Process | Select Object * o
3. gps | Select Object * o
4. gps | Select-Object Name, Id, Company
5. gps | Select-Object Name, Id, Company | Sort-Object Name | Select-Object
-First 5
6. Get-Process | select cpu,id,name | sort cpu -Descending
7. (ps) | %{if($_.path){(Get-ChildItem $_.path | select VersionInfo)}}
8. Get-WmiObject win32_process | Sort-Object Processid | Select-Object
Processid,Name,CommandLine
¿Qué es WMI? Acercamiento al concepto
WMI (siglas de Windows Management Instrumentation o, en español,
Instrumentación de Administración Windows) es una invención
tecnológica de Microsoft, cuyo fin es encargarse de los diferentes
ambientes operacionales de Windows.
La Instrumentación de Administración Windows (WMI) consiste en un
conjunto de extensiones al Windows Driver Model, que proporcionan
una interfaz de sistema operativo a través del cual sus componentes
nos dan información y distintos tipos de notificaciones.
Por decirlo de alguna manera, WMI es la implementación de Microsoft
de los estándares de gestión empresarial basados en la web (WBEM),
del modelo de información común (CIM) y del Grupo de trabajo de
administración distribuida (DMTF).
WMI permite que los lenguajes de script (como VBScript o Windows
PowerShell) administren las computadoras personales y los servidores
de Microsoft Windows, tanto de forma local como remota. WMI viene
preinstalado en Windows 2000 y en los sistemas operativos más
nuevos de Microsoft. También está disponible como descarga para Wi
Microsoft, que está en todo, también proporciona una interfaz de línea
de comandos para WMI llamada Windows Management
Instrumentation Command-line (WMIC).ndows NT, Windows 95 y
Windows 98.
¿Qué podemos hacer con WMI?
Ahora que ya hemos asimilado e interiorizado qué es WMI, vamos con
algunas cosillas fáciles para las que podremos utilizarlo.
Como hemos mencionado, a través de WMI será factible gestionar tanto
las computadoras inmediatas como remotas, pudiendo programar
procesos que se ejecutarán en momentos indicados y escogidos; iniciarlo
y comenzar a operar en un ordenador remoto; también reiniciarlos
desde la distancia, si es necesario; conseguir listas de las aplicaciones
que se encuentran instaladas en nuestra computadora, el resto de
ordenadores locales y también los remotos; informarnos de los registros
de eventos de Windows, tanto en las computadoras locales como en las
remotas…
Otros comando para información sobre
Procesos
• Mostrar información sobre un proceso indicando el nombre del
proceso
• Buscar procesos que no responden
• Buscar un proceso que se está ejecutando
• Módulos que se ejecutan en los procesos
• Listar las dll que están cargadas cuando un programa está en
ejecución, ver la ruta dónde se ejecutan
• Información sobre la ruta de los módulos de los procesos
• Contar los procesos en ejecución
Instrucciones
• Get-Process –Name notepad (ejecutar antes el notepad)
• (Get-Process).Where{-not $_.Responding}
• (Get-Process).Where{$_.Name -like "chrome"}
• Get-Process –Module (no tendremos privilegios para todos)
• Get-Process -Name notepad –Module
• ls (ps -Module | Select-Object Filename).Filename | Select
VersionInfo | Format-Custom
• (Get-Process).count
Tabla de procesos
Cuando un proceso se ejecuta, el sistema operativo le asigna un
espacio de direcciones y lo añade a una tabla de procesos. El espacio
de direcciones de cada proceso contiene las instrucciones y datos del
programa, además tiene una pila que lleva la cuenta de las llamadas a
procedimientos.

Los procesos se dividen en partes. Estas partes son las que se llevan a la
memoria dependiendo de la técnica de gestión que se utilice:
paginación, segmentación, intercambio, memoria virtual, etc.
La tabla de procesos contiene información de cada uno de los procesos que
se están ejecutando. El contenido de una entrada (hay una entrada por cada
proceso) en la tabla de procesos puede ser el siguiente:
• Identificador del proceso. Es un número que utiliza el sistema operativo
para identificar los procesos de forma única, se conoce por la abreviatura
PID (Process ID).
• Información del estado del proceso. Preparado, en ejecución o bloqueado.
• Prioridad. El sistema operativo puede asignar distinta importancia a cada
proceso.
• Dirección de la memoria. Zona de la memoria donde se ha cargado el
proceso.
• Directorio de trabajo. Directorio del usuario que ejecuta el programa.
• Tiempo utilizado por el procesador. Tiempo que el proceso se ha estado
ejecutando en el procesador.
Ejemplos
• Listar la siguiente información sobre los procesos:
• La cantidad de memoria no paginada que el proceso está
utilizando, en kilobytes (NPM).
• La cantidad de memoria paginable que el proceso está
utilizando, en kilobytes (PM).
• El tamaño del conjunto de trabajo del proceso, en kilobytes.
El conjunto de trabajo se compone de las páginas de
memoria que hace poco se hace referencia mediante el
proceso (WS).
• La cantidad de memoria virtual que el proceso está utilizando,
en megabytes. La memoria virtual incluye el almacenamiento
de los archivos de paginación en el disco (VM).
• La cantidad de tiempo de procesador que el proceso se ha
utilizado en todos los procesadores, en cuestión de segundos
(CPU).

Get-Process | Select-Object Name,NPM,PM,WS,VM,CPU


Estados de 1 proceso
Los procesos cuando se ejecutan pueden atravesar distintos
estados desde que se inician hasta que finalizan. Cuando un
proceso se inicia, primero se mete en una cola de trabajos;
cuando es admitido por el sistema, pasa a una cola de
procesos que están preparados y esperando para ejecutarse;
cuando el procesador asigna tiempo de ejecución, el proceso
pasa de estar preparado a ejecución, y cuando el proceso
necesita alguna señal o dato, pasa al estado bloqueado (se lo
introduce en la cola de bloqueados).
Los procesos se pueden crear de varias formas:

Cuando se arranca el sistema operativo, éste ejecuta procesos


necesarios para llevar a cabo distintas funciones.
Por petición de un usuario del sistema, escribiendo un
comando en una línea de comandos o pulsando encima de
algún icono.
Cuando un proceso hace una llamada al sistema para crear un
nuevo proceso (para crear un proceso en Windows se utiliza
función «CreateProcess()», en Linux se utiliza la llamada
«fork()»).
Cmdlet :
Start-Process

Alias:
saps
Start
Ejecutar procesos
• Iniciar Block de notas: Start-Process notepad
• Invocar la ejecución del programa Ping: Invoke-Command {IP}
• Invocar una instancia a partir de wmi:
([Wmiclass]'Win32_Process').GetMethodParameters('Create')
Invoke-WmiMethod -Path win32_process -Name create -ArgumentList
notepad.exe
Parar procesos
Igual que existen formas de crear procesos, también existen varias formas
de acabar con los procesos:

• El proceso acaba de ejecutarse de forma normal.


• El proceso ha sufrido un error.
• Por petición de un usuario del sistema, escribiendo un comando en una
línea de comandos o pulsando encima de algún icono.
• Cuando un proceso hace una llamada al sistema para acabar con un
proceso (para terminar con un proceso en Windows se utiliza la función
«ExitProcess()» y en Linux la llamada «kill()»).
Parar procesos
CmdLets:
Stop-Process

Alias:
spps
Kill
Para un proceso son Stop: Het-Process -Name notepad | Stop-Process
Parar un proceso con kill (Linux): Get-Process -Name notepad |
ForEach-Object -Process {$_.Kill()}
En un gridView: Get-Process | Out-GridView -PassThru | Stop-Process
Process Start y Kill
Primer Ejemplo

Modificar tamaño del form y arrastrar 2 buttons.


Propiedad Text Button1= Iniciar calculadora
Propiedad Text Button2= Iniciar Block de Notas
Propiedad Text Form1= Iniciar y Terminar Procesos
Segundo Ejemplo
Mas sobre Process.Start
Abrir Microsoft Word, navegadores web, archivos de texto, el
explorador de windows.
Proceso. Un proceso comienza, realiza una tarea y termina. Con el tipo
de proceso, desde System.Diagnostics, lanzamos procesos
directamente dentro de los programas.
Con Start creamos un proceso. Con GetProcesses verificamos los
existentes.
Archivo de texto. Cuando especifica un archivo determinado
para Process.Start para abrir, se abrirá el visor de archivos
predeterminado de Windows para el tipo de archivo. Esto es
útil para muchos archivos.
Consejo: en lugar de simplemente pasar "example.txt", puede
pasar "C: \ Users \ Sam \ example.txt" para especificar el
directorio absoluto.
Buscar. Se pueden proporcionar recursos al usuario en forma
de URL. Puede decirle a Windows que inicie una ventana del
navegador web con una URL específica. Enviamos
Process.Start la URL.
Microsoft Word. Muchas aplicaciones necesitan lanzar
documentos de Word para editar o ver. Es mejor iniciar
Word en un proceso externo. Utilizamos un campo de
nombre de archivo personalizado y argumentos.
OpenMicrosoftWord: este código asigna
WINWORD.EXE como FileName. Luego establece la
ruta del archivo DOCX como la propiedad Argumentos.
Resultado: Microsoft Word abre el archivo. Deberá
ajustar las rutas para que funcione correctamente.
GetProcesses. Un sistema operativo gestiona muchos
procesos. Podemos recuperar una matriz de estos
procesos con la función Process.GetProcesses.
Ejemplo: Mostramos el número de procesos en la
matriz usando la propiedad Longitud.
Luego: Usamos el ciclo For-Each para enumerar los
objetos del Proceso. Mostramos el ProcessName y el Id
de cada proceso.
Ejecución y eliminación de procesos

Son 6 tareas individuales. Cada una corresponde al botón respectivo. El subproceso


inicial está asociado al botón 3
Tarea
• Desarrolle una aplicación que permita ejecutar y cerrar los siguientes
programas:
• Excel
• Word
• PowerPoint
• Block de notas
• Explorer
• Crome
• Los nombre deben estar en un ListBox. Al hacer doble click en el
control debe ejecutarse la tarea.

También podría gustarte