Como modificar o Registro via script - Parte 2

A segunda parte desta série continua falando sobre como modificar o Registro em scripts, mas agora com uma abordagem mais moderna.

O primeiro da fila é o Windows Powershell. Ele possui um Provider específico para trabalhar com o Registro, o que torna possível navegar no registro da mesma forma que você navegaria num diretório, por exemplo. É possível utilizar os mesmos comandos CD e DIR (set-location e get-childItem, na verdade) para entrar e sair das chaves, além do comando get-ItemProperty para obter o conteúdo dos valores e seus dados. Note que um valor não equivale à um arquivo (ou ítem) do sistema de arquivos. Ele corresponde sim à uma propriedade, e por isso não usamos get-ItemProperty para obter os valores, e não o get-Item comum. O get-Item retorna somente subchaves.

Veja um exemplo:

PS HKLM:\> cd HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
PS HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run> dir


   Hive: Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

SKC  VC Name                           Property
---  -- ----                           --------
  0   5 AutorunsDisabled               {LanguageShortcut, RemoteControl, VAIO Update 2, IntelZeroConfig...}
  3   0 OptionalComponents             {}


PS HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run> Get-ItemProperty .


PSPath            : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Ru
                    n
PSParentPath      : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
PSChildName       : Run
PSDrive           : HKLM
PSProvider        : Microsoft.PowerShell.Core\Registry
igfxtray          : C:\WINDOWS\system32\igfxtray.exe
igfxhkcmd         : C:\WINDOWS\system32\hkcmd.exe
igfxpers          : C:\WINDOWS\system32\igfxpers.exe
Apoint            : C:\Program Files\Apoint\Apoint.exe
EOUApp            : "C:\Program Files\Intel\Wireless\Bin\EOUWiz.exe"
NvCplDaemon       : RUNDLL32.EXE C:\WINDOWS\system32\NvCpl.dll,NvStartup
VAIO Recovery     : C:\WINDOWS\Sonysys\VAIO Recovery\PartSeal.exe
SonyPowerCfg      : "C:\Program Files\Sony\VAIO Power Management\SPMgr.exe"
ISBMgr.exe        : C:\Program Files\Sony\ISB Utility\ISBMgr.exe
Biomenu           : "C:\Program Files\Protector Suite QL\menusw.exe"
VAIOCameraUtility : "C:\Program Files\Sony\VAIO Camera Utility\VCUServe.exe"
WCULauncher       : C:\Program Files\Sony\SmartWi Connection Utility\WCULauncher.exe
PartSeal          : C:\WINDOWS\Sonysys\VAIO Recovery\PartSeal.exe

PS HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run>

No exemplo acima, eu navego até a chave HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run e listo todos os valores contidos nela. Para quem já conhece um pouco do Registro, sabe que esta é uma das principais chaves (mas não a única) em que ficam os programas executados durante a inicialização do computador. Vírus, trojans e malwares mais simples (para não dizer babacas) se alojam aqui. A remoção, pelo Powershell, pode ser feita então com uma linha (e o comando del).

Observação Importante: Não se assuste se, navegando pelo Registro, começar a observar algumas mensagens de erro. O problema está no fato do Powershell tentar obter o objeto inteiro correspondente à chave de Registro e falha, caso você não tenha permissões adequadas para navegação nas chaves. 

Há ainda várias alternativas, que consistem, por exemplo, na combinação de técnicas apresentadas no artigo anterior com técnicas para execução remota de programas. Basta pegar qualquer uma das técnicas e combinar com o comando PSexec, por exemplo. Vale também criar tarefas agendadas ou executar remotamente também com o WMI, que já foi discutido por mim num post anterior. O céu é o limite.

O próximo post continua sobre Registro. Me empolguei e escrevi um terceiro ítem da série.

Até mais!

Categorias dessa postagem:

Comentários

Anônimo : Bom dia Vinicius Canto li seus posts sobre modificar registro via script, muito construtivo para quem está começando essa área.

Tenho uma dúvida a respeito de como de vo salvar os scripts?
(.bat .vbs? como?)

obrigado pela atenção

abraços [12/6/08 10:43 - link]