Clique no banner para conhecer e adquirir o meu treinamento de Bancos de Dados no Azure

SQL Server – Como ler, listar, criar, alterar e apagar chaves do Registro do Windows (Regedit) pelo CLR (C#)

Visualizações: 1.062 views
Tempo de Leitura: 6 minutos

OlĂ¡ pessoal,
Boa tarde!

No post de hoje, vou demonstrar como gerenciar (ler, listar, criar, alterar e apagar) chaves do registro do Windows (Windows Registry) atravĂ©s do banco de dados, utilizando o SQL CLR e a linguagem de programaĂ§Ă£o C# (CSharp), que nos permite estender em muito, as capacidades e funcionalidades do banco de dados SQL Server.

Esse tipo de funcionalidade Ă© muito Ăºtil quando vocĂª precisa consultar rapidamente alguma informaĂ§Ă£o no registro do Windows de algum servidor ou realizar alguma alteraĂ§Ă£o no registro sem precisar conectar no servidor, apenas executando uma Stored Procedure, ou mesmo para aplicar uma alteraĂ§Ă£o de registro em vĂ¡rias mĂ¡quinas ou servidores de forma automatizada.

Vale lembrar que eu jĂ¡ havia feito um post (SQL Server – Consultando informações da instĂ¢ncia no Windows Registry utilizando sys.dm_server_registry e xp_instance_regread) onde era possĂ­vel ler algumas informações do registro do Windows sem utilizar o CLR, mas relativos apenas a informações da instĂ¢ncia do SQL Server e nĂ£o a leitura geral de qualquer chave do registro e muito menos a manipulaĂ§Ă£o dessas informações, o que me motivou a criar este novo post para essa necessidade.

Algumas Stored Procedures abaixo requerem o uso da classe Retorno, que utilizo para enviar mensagens de alerta e/ou erro do CLR para o banco de dados. O cĂ³digo-fonte dessa classe pode ser visualizado no post SQL Server – Como enviar avisos e mensagens de erro para o banco pelo CLR (C#)

Como ler e listar chaves de registros do Windows

Como ler e listar chaves de registros do Windows

sql-server-how-to-list-windows-registry-regedit-with-sql-clr

Para listar os registros do Windows, vou utilizar a classe RegistryRow, que encapsula vĂ¡rios mĂ©todos da biblioteca Microsoft.Win32.RegistryKey e a utilizo na funĂ§Ă£o table-valued fncRegEdit_Listar, conforme exemplo acima, onde informo como parĂ¢metros, o nome da mĂ¡quina e a chave de registro que serĂ¡ lida.

RegEdit.cs

fncRegEdit_Listar.cs

Como criar pastas de registros do Windows

Como criar pastas de registros do Windows

sql-server-how-to-list-windows-registry-regedit-with-sql-clr-2

sql-server-how-to-list-windows-registry-regedit-with-sql-clr-3

Para criar pastas nos registros do Windows, eu utilizo a Stored Procedure stpRegEdit_Pasta_Criar, conforme no exemplo acima, que permite criar diretĂ³rios em uma chave de registro do Windows.

stpRegEdit_Pasta_Criar.cs

Como apagar pastas de registros do Windows

Como apagar pastas de registros do Windows

sql-server-how-to-list-windows-registry-regedit-with-sql-clr-4

Para apagar pastas nos registros do Windows, eu utilizo a Stored Procedure stpRegEdit_Pasta_Apagar, conforme no exemplo acima, que permite apagar diretĂ³rios do registro do Windows. A flag binĂ¡ria @Fl_Recursivo = 1, permite apagar as chaves e sub-diretĂ³rios recursivamente de um determinado diretĂ³rio.

Caso a flag @Fl_Recursivo = 0, sĂ³ serĂ¡ possĂ­vel apagar diretĂ³rios que nĂ£o possuem sem sub-diretĂ³rios e se vocĂª tentar, irĂ¡ se deparar a com a mensagem de erro “System.ApplicationException: Erro : Registry key has subkeys and recursive removes are not supported by this method.”.

stpRegEdit_Pasta_Apagar.cs

Como criar/alterar chaves de registros do Windows

Como criar/alterar chaves de registros do Windows

Como criar chaves e valores no Registro do Windows:
sql-server-how-to-list-windows-registry-regedit-with-sql-clr-5

Como alterar chaves e valores no Registro do Windows:
sql-server-how-to-list-windows-registry-regedit-with-sql-clr-6

Para criar/alterar os registros do Windows, eu utilizo a Stored Procedure stpRegEdit_Chave_Criar, conforme exemplificado acima e o cĂ³digo-fonte estĂ¡ disponĂ­vel logo abaixo:

stpRegEdit_Chave_Criar.cs

Como apagar chaves de registros do Windows

Como apagar chaves de registros do Windows

sql-server-how-to-list-windows-registry-regedit-with-sql-clr-7

Para apagar as chaves de registros do Windows, utilizo a Stored Procedure stpRegEdit_Chave_Apagar, no mesmos padrões das Stored Procedures acima.

stpRegEdit_Chave_Apagar.cs

Caso vocĂª nĂ£o sabia o que Ă© o CLR e gostaria de saber mais sobre o assunto, visite o meu post IntroduĂ§Ă£o ao SQL CLR (Common Language Runtime) no SQL Server.

É isso aí, pessoal!
AtĂ© o prĂ³ximo post.

sql server c# csharp access acessar listar list view visualizar read registro do windows registry regedit

sql server c# csharp access acessar listar list view visualizar read registro do windows registry regedit