- Procesador
- Memoria
- Memoria caché
- Acceso directo a memoria
- Discos duros
- Buses
- Dispositivos de entrada y salida
- Entrada
- Salida
- Entrada y salida
- Placa base y otros componentes
- BIOS
- Batería
- Refrigeración
El hardware es el conjunto de componentes físicos que constituyen un ordenador y que mediante conexiones con dispositivos auxiliares permiten realizar las funciones de procesamiento, almacenamiento y transferencia de datos.
El procesamiento consiste en recibir datos, realizar cálculos y operaciones con los mismos, el almacenamiento consiste en almacenar datos durante un periodo de tiempo y la transferencia consiste en enviar los resultados procesados al exterior.
El hardware son los elementos físicos que se pueden tocar. Sirven para realizar tareas que se resuelven mediante el software, algunos elementos hardware son: la caja donde está la placa base, el procesador, la memoria, el disco duro, etc. También se consideran hardware los dispositivos de entrada y salida como la pantalla, el teclado, el ratón, etc.
Una de las funciones del sistema operativo es controlar y gestionar el uso del hardware del ordenador: procesador, dispositivos de E/S, memoria principal, tarjetas gráficas y el resto de periféricos.
Los componente hardware más importantes son:
- Procesador
- Memoria
- Discos
- Buses
- Dispositivos de entrada y salida
- Placa base y otros componentes
Procesador
También conocido como CPU (Central Processing Unit, unidad central de procesamiento), es el cerebro del ordenador. Su función es leer instrucciones y ejecutarlas, estas instrucciones configuran un conjunto de datos codificados en binario que se almacena en la memoria. Todos los programas se componen de instrucciones, cada instrucción se ejecuta mediante un ciclo básico de ejecución que es el período que tarda el procesador en ejecutar una instrucción.
La CPU funciona del siguiente modo: obtiene la obtiene la primera instrucción de la memoria, la decodifica para determinar el código de operación y los datos, después la ejecuta y en algunos casos almacena el resultado. Este proceso se ejecuta continuamente hasta que se leen todas las instrucciones del programa.
Un concepto importante al hablar de CPU y que nos permite comprender algunas de sus funciones es la arquitectura. Una arquitectura indica qué hace un ordenador y define el conjunto de instrucciones y cómo se codifican, los datos que maneja, los registros internos, etc. Cada arquitectura es distinta aunque puede haber características similares entre arquitecturas.
Para una arquitectura puede haber distintas organizaciones. La organización define cómo realiza las funciones un ordenador; por último, la realización del ordenador se encarga de implantar físicamente una organización. Pongamos un ejemplo de todo esto: la arquitectura IA-32 conocida como x86, x86-32 o i386 tiene las organizaciones 8086, Pentium 4, etc. Y en el caso de Pentium 4 la realización puede ser de 2,4 GHz, 3,4 GHz, etc.
Otro ejemplo son las implementaciones de x86-64 (x86-64 está basada en la extensión del conjunto de instrucciones x86 para manejar direcciones de 64 bits): AMD64 e Intel64 en el caso de Intel64 tiene las organizaciones Core 2 Duo, Core 2 Quad, y Core 2 Extreme, etc. La realización de un Core 2 Quad puede ser de 3,40 GHz, 3,80, GHz etc.
Cmdlet con llamada WMI que muestra información sobre los procesadores
Get-WmiObject Win32_Processor
Ejemplos
Información sobre la arquitectura
(Get-WmiObject Win32_Processor).caption
Información sobre la organización
(Get-WmiObject Win32_Processor).name
Información sobre la realización
((Get-WmiObject Win32_Processor).name).split("@")[1]
Información sobre los procesadores
Get-WmiObject -Class Win32_Processor | Select -Property Name, Number*
Número de cores
Get-WmiObject -Class Win32_Processor | Select-Object NumberOfCores
Get-WmiObject -query "select NumberOfCores from Win32_Processor"
Carga del procesador
Get-WmiObject win32_processor | Select-Object LoadPercentage
Ejercicios
Información sobre el procesador
Get-WmiObject -class "Win32_Processor"| % {
Write-Host "CPU ID: "
Write-Host $_.DeviceID
Write-Host "CPU Model: "
Write-Host $_.Name
Write-Host "CPU Cores: "
Write-Host $_.NumberOfCores
Write-Host "CPU Max Speed: "
Write-Host $_.MaxClockSpeed
Write-Host "CPU Status: "
Write-Host $_.Status
Write-Host
}
Saber si el procesador es Intel o AMD
if((Get-WmiObject Win32_Processor).Caption -match "Intel"){"Intel"}else{"No es Intel"}
Memoria
Se encarga de almacenar los programas que se están ejecutando en el ordenador y los datos necesarios para la ejecución de dichos programas.
En teoría las memorias tiene que ser muy rápidas, de gran tamaño y con bajo precio, pero actualmente no existe ninguna tecnología que reúna estos requisitos, como solución a esta situación existe la jerarquía de memoria.
Dos principios sobre la memoria:
- Menor cantidad, acceso más rápido.
- Mayor cantidad, menor coste por byte.
La idea es que la memoria se organice en niveles, cuanto más cercanos al procesador, más pequeños, rápidos y caros. El objetivo de es conseguir un rendimiento de memoria a gran velocidad y de un tamaño igual al nivel más bajo de la jerarquía. A medida que bajamos en los niveles, la velocidad es menor pero el almacenamiento es mayor.
El primer nivel de la jerarquía es el de los registros que se están en el procesador, son muy rápidos pero limitados; el siguiente nivel es la caché que son zonas de gran velocidad y muy próximas a la CPU en donde se almacena la información que se utiliza con más frecuencia; el siguiente nivel es la memoria principal, a esta memoria se la conoce como RAM (Random Access Memory, memoria de acceso aleatorio) y tiene las siguientes características:
- Es una memoria de acceso aleatorio; se accede directamente a una determinada posición de la memoria sin pasar por las anteriores.
- Es una memoria volátil, mantiene los datos hasta que se corta la alimentación.
- Es una memoria de lectura/escritura, se pueden leer los datos que tiene almacenados y escribir en ella nuevos datos o resultados.
Algunos tipos de memoria RAM son DRAM (Dynamic Random Access Memory, memoria de acceso aleatorio dinámica), SRAM (Static Random Access Memory, memoria estática de acceso aleatorio), SDRAM (Synchronous Dynamic Random Access Memory, memoria de acceso aleatorio dinámica síncrona) y DDR SDRAM (Double Data Rate, doble tasa de transferencia de datos).
Cmdlets con llamadas WMI que muestran información sobre la memoria
Get-WmiObject Win32_MemoryArray
Get-WmiObject Win32_MemoryArrayLocation
Get-WmiObject Win32_MemoryDevice
Get-WmiObject Win32_MemoryDeviceArray
Get-WmiObject Win32_MemoryDeviceLocation
Get-WmiObject Win32_PhysicalMemory
Get-WmiObject Win32_PhysicalMemoryArray
Get-WmiObject Win32_PhysicalMemoryLocation
Get-WmiObject Win32_SMBIOSMemory
Ejemplos
Lugar físico en donde se encuentran las memorias
Get-WmiObject Win32_PhysicalMemory | Select-Object BankLabel
Velocidad de reloj del dispositivo de memoria en megahercios
Get-WmiObject Win32_PhysicalMemory | Select-Object ConfiguredClockSpeed
Voltaje configurado para los dispositivos de memoria en milivoltios
Get-WmiObject Win32_PhysicalMemory | Select-Object ConfiguredVoltage
Capacidad de la memoria en bytes
Get-WmiObject Win32_PhysicalMemory | ForEach-Object {$_.capacity / 1GB}
Tipo de memoria
Get-WmiObject Win32_PhysicalMemory | Select-Object MemoryType
Tipo de implementación del chip de los dispositivos de memoria
Get-WmiObject Win32_PhysicalMemory | Select-Object FormFactor
Máxima y mínima tensión soportada por los dispositivos de memoria
Get-WmiObject Win32_PhysicalMemory | Select-Object MaxVoltage,MinVoltage
Velocidad de la memoria en nanosegundos
Get-WmiObject Win32_PhysicalMemory | Select-Object Speed
Ejercicios
Saber si el fabricante de la memoria es Elpida, Kingston o Hynix
if((Get-WmiObject Win32_PhysicalMemory).Manufacturer -match "Elpida"){"Elpida"}else{"No es Elpida"}
La memoria caché es un área de almacenamiento dedicada a los datos usados o solicitados con más frecuencia para su recuperación a gran velocidad.
Cmdlets con llamadas WMI que muestran información sobre la memoria caché
Get-WmiObject Win32_AssociatedProcessorMemory
Get-WmiObject Win32_CacheMemory
DMA (Direct Memory Access, Acceso directo a memoria) es un chip se encarga de la transferencia y accede a la memoria para leer o escribir datos que recibe y envía el dispositivo sin pasar por el procesador.
Cmdlets con llamadas WMI que muestran información sobre DMA
Get-WmiObject Win32_DMAChannel
Get-WmiObject Win32_DeviceMemoryAddress
Get-WmiObject Win32_SystemMemoryResource
Discos duros
El último nivel en la jerarquía de memoria son los discos duros. Son dispositivos de almacenamiento no volátil, es decir, no se pierde la información cuando se desconecta la energía. La capacidad de almacenamiento de los discos duros es muy superior a la RAM, siendo además de menor precio; sin embargo, el problema está en que es lento acceder a la información, esto se debe a que disco es un dispositivo mecánico y tiene que moverse hasta llegar a la información.
Un disco duro consiste en uno o varios platos que están girando, mientras giran hay un componente dentro del disco que llamado brazo mecánico, que en el extremo tiene dos cabezas que leen y escriben sobre la cada una de las superficies del plato (caras), dentro de un disco hay varios platos.
Cmdlet que muestra información sobre los discos duros
Get-Disk
Cmdlet con llamada WMI que muestra información sobre los discos duros
Get-WmiObject Win32_DiskDrive
Ejemplo
Obtener información sobre los discos que hay conectados
Get-Disk
![]()
Buses
Hay un elemento muy importante que interviene en la comunicación entre procesador, memoria y dispositivos de entrada y salida denominado bus, éste se define como un conjunto de líneas por las que se transmite información entre distintos componentes hardware.
Algunos de los buses que tienen los ordenadores actuales son el PCI (Peripheral Component Interconnect, interconexión de componentes periféricos), Express, ISA (Industry Standard Architecture, Arquitectura estándar de la industria), USB (Universal Serial Bus, Bus universal en serie), IEEE 1394 (también llamado FireWire), etc.
Cmdlets con llamadas WMI que muestran información sobre los buses PCI, ISA
Get-WmiObject Win32_AllocatedResource
Get-WmiObject Win32_Bus
Get-WmiObject Win32_DeviceBus
Get-WmiObject Win32_PortResource
Cmdlets con llamadas WMI que muestran información sobre los buses IDE
Get-WmiObject Win32_IDEController
Get-WmiObject Win32_IDEControllerDevice
Cmdlets con llamadas WMI que muestran información sobre los buses SCSI
Get-WmiObject Win32_SCSIController
Get-WmiObject Win32_SCSIControllerDevice
Cmdlets con llamadas WMI que muestran información sobre los buses USB
Get-WmiObject Win32_ControllerHasHub
Get-WmiObject Win32_USBController
Get-WmiObject Win32_USBControllerDevice
Get-WmiObject Win32_USBHub
Cmdlets con llamadas WMI que muestran información sobre los buses IEEE 1394
Get-WmiObject Win32_1394Controller
Get-WmiObject Win32_1394ControllerDevice
Cmdlets con llamadas WMI que muestran información sobre otros buses y puertos
Get-WmiObject Win32_InfraredDevice
Get-WmiObject Win32_ParallelPort
Get-WmiObject Win32_PCMCIAController
Get-WmiObject Win32_SerialPort
Get-WmiObject Win32_SerialPortConfiguration
Get-WmiObject Win32_SerialPortSetting
Ejemplos
Buses conectados al sistema operativo
(Get-WmiObject Win32_Bus).DeviceID
Buses USB conectados al sistema
Get-WmiObject Win32_USBControllerDevice |%{[wmi]($_.Dependent)} | Sort Manufacturer,Description,DeviceID | Ft -GroupBy Manufacturer Description,Service,DeviceID
Las conexiones de la entrada y salida se realizan mediante interrupciones y otros tipos de conexiones.
Las IRQ son líneas que llegan al controlador de interrupciones, un componente de hardware dedicado a la gestión de las interrupciones, y que puede estar integrado en el procesador principal o ser un circuito separado conectado al mismo.
Cmdlet con llamada WMI que muestra información sobre interrupciones
Get-WmiObject Win32_IRQResource
Cmdlet que muestra información sobre conexiones de entrada y salida
Get-PnpDevice
![]()
Cmdlets con llamadas WMI que muestran información sobre otros tipos de conexiones de entrada y salida
Get-WmiObject Win32_DeviceSettings
Get-WmiObject Win32_OnBoardDevice
Get-WmiObject Win32_PNPAllocatedResource
Get-WmiObject Win32_PNPDevice
Get-WmiObject Win32_PNPEntity
Get-WmiObject Win32_SystemDriverPNPEntity
Dispositivos de entrada y salida
La transferencia de datos se realiza mediante el sistema de entrada y salida, de esta forma es posible comunicarse con el exterior y así poder recibir datos y enviar los resultados.
Los dispositivos de E/S tienen dos partes: un dispositivo controlador y el dispositivo en sí. El dispositivo controlador es un chip o un conjunto de chips que controlan físicamente el dispositivo. La comunicación entre el dispositivo controlador y el sistema operativo se realiza mediante un software llamado driver. Los dispositivos de E/S se pueden dividir en dos: dispositivos de bloque y de carácter.
Los dispositivos de bloque almacenan información en bloque de tamaño fijo, algunos ejemplos son los discos duros, CDs y memorias USB. Los dispositivos de carácter, como su propio nombre indica, envían información en forma de carácter, un ejemplo es el teclado.
Los dispositivos en sí pueden ser de entrada, salida o ambos. Se conocen como periféricos.
Cmdlet con llamada WMI que muestra información sobre el teclado
Get-WmiObject Win32_Keyboard
Cmdlet con llamada WMI que muestra información sobre el ratón
Get-WmiObject Win32_PointingDevice
Cmdlets con llamadas WMI que muestran información sobre el monitor y vídeo
Get-WmiObject Win32_DesktopMonitor
Get-WmiObject Win32_DisplayControllerConfiguration
Get-WmiObject Win32_VideoController
Get-WmiObject Win32_VideoSettings
Cmdlet con llamada WMI que muestra información sobre el dispositivo de sonido
Get-WmiObject Win32_SoundDevice
Cmdlets con llamadas WMI que muestran información sobre las impresoras
Get-WmiObject Win32_DriverForDevice
Get-WmiObject Win32_Printer
Get-WmiObject Win32_PrinterConfiguration
Get-WmiObject Win32_PrinterController
Get-WmiObject Win32_PrinterDriver
Get-WmiObject Win32_PrinterDriverDll
Get-WmiObject Win32_PrinterSetting
Get-WmiObject Win32_PrintJob
Get-WmiObject Win32_TCPIPPrinterPort
Cmdlets con llamadas WMI que muestran información sobre el CD y DVD
Get-WmiObject Win32_CDROMDrive
Get-WmiObject Win32_PhysicalMedia
Cmdlets que muestra información sobre los adaptadores de red
Get-NetAdapterHardwareInfo
Get-NetAdapter -Physical
Cmdlets con llamadas WMI que muestran información sobre los adaptadores de red
Get-WmiObject Win32_NetworkAdapter
Get-WmiObject Win32_NetworkAdapterConfiguration
Get-WmiObject Win32_NetworkAdapterSetting
Ejemplos
Impresoras en el sistema
Get-WmiObject Win32_Printer
Ver los dispositivos plug and play
Get-WmiObject -query “select Name,Status from Win32_PnPEntity”
Ver el estado de los dispositivos plug and play
Get-WmiObject -Class Win32_Processor | Select -Property Name, Number*
Ver información sobre la webcam
Get-WmiObject -query "select * from Win32_PnPEntity where caption like '%cam%'"
Get-WmiObject Win32_PnPEntity | where {$_.caption -match 'webcam'}
Ejercicio
Imprimir un texto en todas las impresoras conectadas al equipo
(Get-WmiObject Win32_Printer).name | %{"Texto"| Out-Printer}
Placa base y otros componentes
Cmdlet con llamada WMI que muestra información sobre el equipo
Get-WmiObject Win32_ComputerSystem
Cmdlet con llamada WMI que muestra información sobre el fabricante del equipo
Get-WmiObject Win32_SystemEnclosure
Cmdlets con llamadas WMI que muestran información sobre la placa base
Get-WmiObject Win32_BaseBoard
Get-WmiObject Win32_MotherboardDevice
Ejemplo
Fabricante de placa base
(Get-WmiObject Win32_BaseBoard).Manufacturer
Identificación del equipo
(Get-WmiObject Win32_SystemEnclosure).SerialNumber
Cuando un ordenador se enciende, generalmente el procesador busca la BIOS y la ejecuta, la BIOS (Basic Input-Output System) no sólo es el primer paso del proceso de arranque, sino que también proporciona una interfaz de bajo nivel para dispositivos periféricos. La BIOS comprueba los dispositivos hardware conectados al ordenador y localiza un dispositivo con el que arrancar el sistema.
En los ordenadores que utilizan la BIOS, una vez que ésta ha comprobado los dispositivos hardware, intenta localizar un dispositivo con el que arrancar. Cuando el dispositivo que arranca es el disco duro, la BIOS carga en memoria el programa que resida en el primer sector de este dispositivo, ese programa se llama MBR (Master Boot Record, Registro maestro de arranque).
A parte del MBR también se puede cargar la tabla de partición GUID (GPT), en la actualidad el MBR ha sido sustituido por la tabla de partición GUID.
Cmdlets con llamadas WMI que muestran información sobre la BIOS
Get-WmiObject Win32_BIOS
Get-WmiObject Win32_SystemBIOS
Ejemplo
Información de la BIOS
(Get-WmiObject Win32_BIOS).Version
Cmdlets con llamadas WMI que muestran información sobre la batería
Get-WmiObject Win32_Battery
Get-WmiObject Win32_CurrentProbe
Get-WmiObject Win32_PortableBattery
Get-WmiObject Win32_PowerManagementEvent
Get-WmiObject Win32_VoltageProbe
Ejemplo
Porcentaje de carga de batería restante
(Get-WmiObject Win32_Battery).EstimatedChargeRemaining
Cmdlets con llamadas WMI que muestran información sobre la refrigeración del equipo
Get-WmiObject Win32_Fan
Get-WmiObject Win32_HeatPipe
Get-WmiObject Win32_Refrigeration
Get-WmiObject Win32_TemperatureProbe
Get-WmiObject MSAcpi_ThermalZoneTemperature -Namespace "root/wmi"
Ejemplo
Temperatura de CPU (hay que ejecutar PowerShell como administrador)
$Temperatura = Get-WmiObject MSAcpi_ThermalZoneTemperature -Namespace "root/wmi"
$Kelvin = $Temperatura.CurrentTemperature / 10
$Celsius = $Kelvin - 273.15
$Celsius.ToString() + "C "
Ejercicio
Obtener la mayor cantidad de información sobre el hardware
(Get-WmiObject Win32_AutochkSetting).SettingID
(Get-WmiObject Win32_BaseBoard).Manufacturer
(Get-WmiObject Win32_BIOS).Version
(Get-WmiObject Win32_Bus).DeviceID
Get-WmiObject Win32_Processor
Get-WmiObject Win32_SystemEnclosure
Get-WmiObject Win32_Battery
Get-WmiObject Win32_Printer
The post 3. Gestión del hardware en PowerShell appeared first on Scripting and security.