Obtener el valor de una clave de registro mediante PowerShell
- ¿Qué es una clave de registro?
- Copia de seguridad de claves de registro en PowerShell
-
Obtener un valor de una clave de registro mediante el cmdlet
Get-ItemProperty
en PowerShell -
Obtener un valor de una clave de registro mediante el cmdlet
Get-ItemPropertyValue
en PowerShell
Hay casos en los que corregir errores, ajustar las funciones de Windows o desinstalar completamente un software o un producto requiere que edite el registro de Windows.
Si bien usar el Editor del Registro puede ser conveniente, aún puede ocurrir un error cuando no tenemos el cuidado suficiente. La edición del registro es muy delicada y su sistema local depende de ello.
Este artículo le mostrará cómo obtener valores clave de registro de forma segura con Windows PowerShell.
¿Qué es una clave de registro?
Una clave de registro se puede considerar un poco como una carpeta de archivos estructurada, pero solo existe dentro del Registro de Windows.
Además, las claves de registro también pueden contener valores de registro, al igual que las carpetas contienen archivos. Las claves de registro también pueden incluir otras claves de registro, generalmente denominadas subclaves.
Como se mencionó, el Registro de Windows está estructurado, con las claves de registro superiores denominadas colmenas de registro. Estas se consideran claves de registro especiales con permisos especiales, pero aún tienen la misma función esencial que una clave de registro estándar.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
Si tomamos el ejemplo anterior, HKEY_LOCAL_MACHINE
o HKLM
para abreviar, es la parte superior de la ruta del registro. La clave de registro SOFTWARE
la sucede y, como se mencionó, las claves de registro pueden contener más claves que llamamos subclaves como Microsoft
.
Copia de seguridad de claves de registro en PowerShell
Es aconsejable hacer una copia de seguridad de nuestro registro antes de realizar cambios. Como se mencionó, cualquier cambio accidental dentro del registro puede causar un error en sus archivos, software o, lo que es peor, en todo el sistema operativo.
Sin embargo, con una copia de las claves que está cambiando, puede sentirse cómodo sabiendo que puede revertir cualquier cambio que pueda causar problemas en su sistema operativo.
Podemos usar los comandos heredados reg export
para hacer una copia de seguridad rápida de su registro. Por ejemplo, la siguiente sintaxis hará una copia de seguridad de todo el registro HKLM
.
reg export HKLM C:\RegBack\HKLM.Reg /y
Sus claves de registro respaldadas se exportarán en un formato de archivo .REG
. Por lo tanto, puede restaurar rápidamente las claves de registro respaldadas haciendo doble clic en el archivo de registro y siguiendo las indicaciones.
Obtener un valor de una clave de registro mediante el cmdlet Get-ItemProperty
en PowerShell
El Get-ItemProperty
es un cmdlet de PowerShell que se usa para devolver las entradas del registro en un formato más legible que su comando relativo Get-Item
. También podemos obtener el valor de una clave de registro específica utilizando el cmdlet Get-ItemProperty
.
Código de ejemplo:
$registryPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion"
Get-ItemProperty -Path $registryPath -Name ProgramFilesDir
Producción :
ProgramFilesDir : C:\Program Files
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Micr
osoft\Windows\CurrentVersion
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Micr
osoft\Windows
PSChildName : CurrentVersion
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry
""
) ya que algunas rutas de registro tienen espacios en ellas. Encerrar la ruta entre comillas dobles tomará la expresión literal de dicha ruta y no dará como resultado un error.El comando crea un objeto PSCustomObject
con PsPath
, PsParentPath
, PsChildname
, PSDrive
, PSProvider
y otra propiedad que lleva el nombre del valor clave.
Entonces, para generar solo el valor real de la clave de registro, podemos llamar a la propiedad del nombre del valor de la clave en nuestro script.
Código de ejemplo:
$registryPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion"
$keyValue = Get-ItemProperty -Path $registryPath -Name ProgramFilesDir
$keyValue.ProgramFilesDir
Producción :
C:\Program Files
El comando Get-ItemProperty
funciona en las versiones 2 a 5 de PowerShell. Sin embargo, en Windows PowerShell 5, Microsoft introdujo un nuevo cmdlet que simplifica mucho la impresión de claves de registro en la línea de comandos.
Obtener un valor de una clave de registro mediante el cmdlet Get-ItemPropertyValue
en PowerShell
Como se mencionó, el cmdlet Get-ItemPropertyValue
se introdujo en la versión 5 de Windows PowerShell para abordar la consulta de obtener el valor de las claves de registro de una manera mucho más corta y sencilla.
El cmdlet solo necesita dos parámetros para funcionar: la ruta del archivo de registro y la clave de registro que debe consultarse para obtener un valor.
Código de ejemplo:
Get-ItemPropertyValue 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion' 'ProgramFilesDir'
Producción :
C:\Program Files
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn