- 06/05/2017
- 5 minutos para leer
-
- j
- s
- k
- m
- b
Debido a que las entradas del registro son las propiedades de las claves y, como tal, no puede ser directamente navegado, tenemos que tomar un enfoque ligeramente diferente cuando se trabaja con ellos.
Listar entradas de registro
Hay muchas maneras diferentes de examinar las entradas de registro. La forma más sencilla es obtener los nombres de propiedad asociados a una clave. Por ejemplo, para ver los nombres de las entradas en la clave de registroHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
, use Get-Item
. Claves de registro tiene una propiedad con el nombre genérico de «Propiedad» que es una lista de entradas de registro en la clave.El siguiente comando selecciona la propiedad propiedad y expande los elementos para que se muestren en una lista:
DevicePathMediaPathUnexpandedProgramFilesDirCommonFilesDirProductId
Para ver las entradas del registro de una forma más legible, use Get-ItemProperty
:
Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
Todas las propiedades relacionadas con Windows PowerShell para la clave tienen el prefijo «PS», como asPSPath, PSParentPath, PSChildName, y PSProvider.
Puede usar la notación *.*
para referirse a la ubicación actual. Puede usar Set-Location
para cambiar primero al contenedor de registro de conversión actual:
Set-Location -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
Alternativamente, puede usar el HKLM PSDrive incorporado con Set-Location
:
Set-Location -Path hklm:\SOFTWARE\Microsoft\Windows\CurrentVersion
A continuación, puede usar la notación *.*
para la notación ubicación actual para listar las propiedades sin especificar una ruta de acceso completa:
Get-ItemProperty -Path .
...DevicePath : C:\WINDOWS\infMediaPathUnexpanded : C:\WINDOWS\MediaProgramFilesDir : C:\Program Files...
La expansión de la ruta funciona de la misma manera que en el sistema de archivos, por lo que desde esta ubicación puede obtener la lista de propiedades de HKLM:\SOFTWARE\Microsoft\Windows\Help
utilizandoGet-ItemProperty -Path ..\Help
.
Obtener una sola entrada de registro
Si desea recuperar una entrada específica de una clave de registro, puede utilizar uno de los varios enfoques posibles. Este ejemplo encuentra el valor de DevicePath enHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
.
UsandoGet-ItemProperty
, utilice el parámetro Path para especificar el nombre de la clave y el parámetro NombrePara especificar el nombre de la entrada DevicePath.
Get-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion -Name DevicePath
Este comando devuelve las propiedades estándar de Windows PowerShell, así como la propiedad DevicePath.
Nota
Aunque Get-ItemProperty
tiene parámetros de Filtro, Inclusión y exclusión, no se pueden usar para filtrar por nombre de propiedad. Estos parámetros se refieren a claves de registro, que son itempaths y no entradas de registro, que son propiedades de elementos.
Otra opción es usar el Reg.herramienta de línea de comandos exe. Por ayuda con reg.exe, escriba reg.exe /?
en un símbolo del sistema. Para encontrar la entrada DevicePath, utilice reg.exe como se muestra en el siguiente comando:
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion /v DevicePath
También puede usar el objeto COM de WshShell para encontrar algunas entradas de registro, aunque este método no funciona con datos binarios grandes ni con nombres de entrada de registro que incluyan caracteres como «\»). Añada el nombre de la propiedad a la ruta de acceso del elemento con un \ separator:
(New-Object -ComObject WScript.Shell).RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DevicePath")
%SystemRoot%\inf
Establecer una sola entrada de registro
Si desea cambiar una entrada específica en una clave de registro, puede utilizar uno de los varios métodos posibles. Este ejemplo modifica la entrada de ruta en HKEY_CURRENT_USER\Environment
. La entrada Path especifica dónde encontrar los archivos ejecutables.
- Recupere el valor actual de la entrada de ruta usando
Get-ItemProperty
. - Agregue el nuevo valor, separándolo con un
;
. - Use
Set-ItemProperty
con la clave, el nombre de entrada y el valor especificados para modificar la entrada de registro.
Nota
Aunque Set-ItemProperty
tiene parámetros de Filtro, Inclusión y exclusión, no se pueden usar para filtrar por nombre de propiedad. Estos parámetros se refieren a claves de registro, que son itempaths, y no a entradas de registro, que son propiedades de elementos.
Otra opción es usar el Reg.herramienta de línea de comandos exe. Por ayuda con reg.exe, escribe reg.¿exe?en un símbolo del sistema.
El siguiente ejemplo cambia la entrada de ruta eliminando la ruta añadida en el ejemplo anterior.Get-ItemProperty
se sigue utilizando para recuperar el valor actual para evitar tener que analizar la cadena devuelta de reg query
. Los métodos SubString y lastIndexOf se utilizan para recuperar la última ruta añadida a la entrada de ruta.
The operation completed successfully.
la Creación de Nuevas Entradas de Registro
Para agregar una nueva entrada llamada «PowerShellPath» a la CurrentVersion clave, utilice New-ItemProperty
con la ruta de la clave, el nombre de la entrada, y el valor de la entrada. En este ejemplo, tomaremos el valor de la variable de Windows PowerShell $PSHome
, que almacena la ruta de acceso al directorio de instalación de Windows PowerShell.
Puede agregar la nueva entrada a la clave utilizando el siguiente comando, y el comando también devuelve información sobre la nueva entrada:
El tipo de propiedad debe ser el nombre de un Microsoft.Win32.RegistryValueKind miembro de la enumeración de la siguiente tabla:
PropertyType Value | Meaning |
---|---|
Binary | Binary data |
DWord | A number that is a valid UInt32 |
ExpandString | A string that can contain environment variables that are dynamically expanded |
MultiString | A multiline string |
String | Any string value |
QWord | 8 bytes of binary data |
Nota
Puede agregar una entrada de registro a varias ubicaciones especificando una matriz de valores para el parámetro Path:
También puede sobrescribir un valor de entrada de registro preexistente agregando el parámetro Force a cualquier.
Cambiar el nombre de las entradas del registro
Para cambiar el nombre de la entrada PowerShellPath a «PSHome», use Rename-ItemProperty
:
Rename-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -NewName PSHome
Para mostrar el valor renombrado, agregue el parámetro PassThru al comando.
Rename-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -NewName PSHome -passthru
Eliminar Entradas de Registro
eliminar el PSHome y PowerShellPath entradas del registro, utilice Remove-ItemProperty
: