- 06/05/2017
- 5 minutos para ler
-
- j
- s
- k
- m
- b
Devido a entradas de registo são propriedades de chaves e, como tal, não pode ser diretamente consultada, nós needto tomar uma abordagem um pouco diferente quando se trabalha com eles.
na lista de entradas do registo
Existem muitas maneiras diferentes de examinar as entradas do registo. A maneira mais simples é obter os nomes próprios associados a uma chave. Por exemplo, para ver os nomes das entradas na chave de registoHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
, use Get-Item
. As chaves de registro possuem uma propriedade com o nome genérico de “propriedade” que é uma lista de entradas de registro na chave.O seguinte comando selecciona a propriedade e expande os itens de modo a que sejam reproduzidos numa lista:
DevicePathMediaPathUnexpandedProgramFilesDirCommonFilesDirProductId
Para visualizar as entradas do registro em um formulário mais legível, use Get-ItemProperty
:
Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
O Windows PowerShell relacionados com propriedades de chave são todos com o prefixo “PS”, tais asPSPath, PSParentPath, PSChildName, e PSProvider.
pode utilizar a notação*.*
para se referir à localização actual. Você pode usar Set-Location
para mudar primeiro para o container do registo CurrentVersion:
Set-Location -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
como Alternativa, você pode usar o built-in HKLM PSDrive com Set-Location
:
Set-Location -Path hklm:\SOFTWARE\Microsoft\Windows\CurrentVersion
em seguida, Você pode usar o *.*
notação para o local atual para listar as propriedades withoutspecifying um caminho completo:
Get-ItemProperty -Path .
...DevicePath : C:\WINDOWS\infMediaPathUnexpanded : C:\WINDOWS\MediaProgramFilesDir : C:\Program Files...
Caminho obras de expansão, o mesmo que ele faz dentro do sistema de arquivos, então a partir deste local pode getthe ItemProperty listagem de HKLM:\SOFTWARE\Microsoft\Windows\Help
usandoGet-ItemProperty -Path ..\Help
.
obter uma única entrada no Registo
Se quiser obter uma entrada específica numa chave de Registo, pode usar uma de várias abordagens possíveis. Este exemplo encontra o valor de DevicePath emHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
.
Usando Get-ItemProperty
, use o parâmetro caminho para especificar o nome da chave, e o parâmetro nome para especificar o nome do item DevicePath.
Get-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion -Name DevicePath
Este comando devolve as propriedades PowerShell padrão do Windows, bem como a propriedade DevicePathproperty.
Nota
emboraGet-ItemProperty
tenha Filtro, inclua e exclua parâmetros, eles não podem ser usados para filtrar pelo nome da propriedade. Estes parâmetros referem-se a Chaves de registro, que são itempaths e não entradas de registro, que são propriedades do item.
outra opção é usar o Reg.ferramenta da linha de comandos exe. Por ajuda com o reg.exe, type reg.exe /?
at a command prompt. Para encontrar a entrada DevicePath, use reg.exe como é mostrado no seguinte comando:
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion /v DevicePath
Você também pode usar o objeto WshShell COM também para encontrar algumas entradas de registro, embora thismethod não funciona com grandes dados binários ou com nomes de entradas de registro que incluem caracteres como “\”). Acrescentar o nome da propriedade para o item caminho com um \ separador:
(New-Object -ComObject WScript.Shell).RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DevicePath")
%SystemRoot%\inf
a criação de uma Única Entrada de Registo
Se você deseja alterar uma entrada específica em uma chave do registro, você pode usar um dos vários possibleapproaches. Este exemplo modifica o item Path sob HKEY_CURRENT_USER\Environment
. O item do ‘ThePath’ indica onde encontrar os ficheiros executáveis.
- recupera o valor actual da entrada do canal horário usando
Get-ItemProperty
. - adicione o novo valor, separando-o com um
;
. - Use
Set-ItemProperty
com a chave especificada, o nome do item e o valor para modificar a matrícula.
Nota
emboraSet-ItemProperty
tenha Filtro, inclua e exclua parâmetros, não pode ser usado para filtrar pelo nome da propriedade. Estes parâmetros referem—se a Chaves de registro—que são itempaths—e não entradas de registro-que são propriedades do item.
outra opção é usar o Reg.ferramenta da linha de comandos exe. Por ajuda com o reg.exe, tipo reg.exe /?a uma ordem de comando.
o exemplo seguinte altera o item do caminho, removendo o caminho adicionado no exemplo acima.Get-ItemProperty
ainda é usado para recuperar o valor atual para evitar ter que analisar o stringreturned dereg query
. O sub-texto e o último Índicexo dos métodos são usados para obter a última localização adicionada ao item Path.
The operation completed successfully.
a Criação de Novas Entradas de Registo
Para adicionar uma nova entrada com o nome “PowerShellPath” para o CurrentVersion chave, use New-ItemProperty
com o caminho para a chave, o nome da entrada e o valor da entrada. For this example, we willtake the value of the Windows PowerShell variable $PSHome
, which storeses the path to theinstallation directory for Windows PowerShell.
pode adicionar o novo item à chave usando o seguinte comando, e o comando também devolve informações sobre o novo item:
O PropertyType deve ser o nome de uma Microsoft.Win32.RegistryValueKind enumeration member from the following table:
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
Você pode adicionar uma entrada de registro para vários locais especificando uma matriz de valores para thePath parâmetro:
Você também pode substituir uma pré-existentes, valor de entrada de registo adicionando o parâmetro Force para qualquerNew-ItemProperty
comando.
Renomear Entradas de Registo
Para mudar o nome do PowerShellPath entrada para “PSHome,” use Rename-ItemProperty
:
Rename-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -NewName PSHome
Para exibir o nome do valor, adicione o parâmetro PassThru para o comando.
apagar as entradas do registo
para apagar as entradas do registo PSHome e PowerShellPath, utilizar Remove-ItemProperty
: