Friday 24 January 2020

Regwrite binário opções


Descrição O método RegWrite é usado para gravar um valor para o registro do Windows. Parâmetros O parâmetro Name é uma string que especifica o valor ou a chave a ser escrita. O parâmetro Value especifica os dados a serem gravados no registro. O valor é convertido automaticamente para uma seqüência de caracteres quando Type é REGSZ ou REGEXPANDSZ e para um inteiro quando Type é REGDWORD ou REGBINARY. O parâmetro Tipo opcional especifica o tipo de dados para o valor, as opções válidas são REGSZ, REGEXPANDSZ, REGDWORD e REGBINARY. Last tempo eu postei eu lhe dei uma função que forneceu Uma maneira simples de ler o registro com VBScript. Nesta postagem we8217ll usar o mesmo objeto Wscript. shell da última vez, basta usar um método diferente8211 o método RegWrite Tenha em mente, escrever para o registro pode ser perigoso para a estabilidade do seu sistema. Se você não sabe especificamente que você precisa para escrever o local do registro, e com que valor, eu recomendo não escrever para o registro. Eu usei um local de registro feito para executar este script deve ser tão seguro quanto eu posso fazê-lo. Este exemplo escreve para HKeyCurrentUserVBScriptAdmin a chave Teststring. Que é um valor REGSZ (ou seqüência de caracteres). Observe que esse valor provavelmente não existe antes de executar o script. O método cria o caminho inteiro se ele doesn8217t exist8211 que é muito agradável (Ou não tão bom se você typo o caminho.) No final do script você deve ver a função ReadReg lê o valor de volta e escreve o valor lido, que Deve ser sucesso. Então, vamos olhar para o código. 8216HKEYCURRENTUSER HKCU 8216HKEYLOCALMACHINE HKLM 8216HKEYCLASSESROOT HKCR 8216HKEYUSERS HKEYUSERS 8216HKEYCURRENTCONFIG HKEYCURRENTCONFIG Temp WriteReg (8220HKCUVBSriptAdminTeststring8221,8221Success8221,8221REGSZ8221) Temp ReadReg (8220HKCUVBSriptAdminTeststring8221) WScript. Echo Temp Função WriteReg (RegPath, Valor, RegType) 8216Regtype deve ser 8220REGSZ8221 de corda, 8220REGDWORD8221 para um número inteiro, 8230 82168221REGBINARY8221 para um binário ou booleano e 8220REGEXPANDSZ8221 para uma cadeia expansível Dim objRegistry, Conjunto de chaves objRegistry CreateObject (8220Wscript. shell8221) Chave objRegistry. RegWrite (RegPath, Value, RegType) WriteReg Key End Function Função ReadReg (RegPath) Dim objRegistry, Key Set ObjRegistry CreateObject (8220Wscript. shell8221) Chave objRegistry. RegRead (RegPath) ReadReg Key End Function Como sempre, este código funciona perfeitamente. No entanto, às vezes a formatação do blog quebra o código se você copiar e colá-lo em seu editor. Então, se você gostaria de não digitar ou solucionar quaisquer erros de sintaxe devido à cópia e colar problems8211 Ive forneceu o código para download, além de arquivos de saída de exemplo de meus testes finais para você. Você vai encontrar o código e outros arquivos disponíveis para download de meus sites (websystemsadministration) File Depot sob a categoria ITKE Blog Scripts. Desfrute e script feliz nbsp Comente sobre este PostRegistry edição usando VBScript 1. VBScript Esta é apenas uma breve introdução ao uso do VBScript para ler e editar o registro. VBScript é baseado em Microsofts Visual Basic. Há outras alternativas, incluindo JScript, Reg. exe ferramenta de registro de console e arquivos inf para editar o registro. Estes são todos os métodos poderosos para editar o registro e VBS e JS são usados ​​no seqüestro do seu Windows e configurações do IE, incluindo o bloqueio do registro. Assim, você pode usar um script para desbloquear seu registro, como scripts de logon e automatizar tarefas repetitivas na implantação. Consulte o meu artigo sobre quotlock registro quot para obter mais detalhes sobre desbloqueio regedit. Windows XPs Windows Script Host suporta VBScript (e JScript). Basta salvar o arquivo de texto criado no Bloco de notas como vbs e clique duas vezes para executá-lo. Você também pode usar a versão de linha de comando cscript. exe. Suas ferramentas de segurança de terceiros (por exemplo, Script Defender e anti-vírus) devem exibir avisos sobre script mal-intencionado e oferecer para interrompê-lo. Se souber que o script é seguro, clique em OK ou permita que ele seja executado. Se você quiser saber mais sobre VBS e objetos shell, leia alguns livros e tutoriais on-line. Mas você pode rapidamente aprender a sintaxe VBS para editar o registro sem aprender VBS em grande detalhe, como você vai descobrir aqui. 2. Os objetos de shell Os três objetos de shell para o registro são: RegRead. RegWrite e RegDelete. Nem todos os valores de dados são suportados e os valores binários apresentam dificuldades que serão explicadas abaixo. Na seguinte sintaxe, strName refere-se à chave ou valor entre aspas. Use um caminho completo ou uma abreviatura padrão (HKCR, HKCU, HKLM o restante caminho completo somente). O caminho que termina com um indica uma chave e que termina com um nome de valor um nome de valor. QuotHKCUTestingSubkeyquot refere-se à chave ou o valor padrão da chave e quotHKCUTestingSubkeyMy Documentsquot refere-se ao nome de valor Meus Documentos da chave Subchave. Tenha cuidado ao tentar scripts. Abra o regedit para que você possa acompanhar o que está acontecendo. Faça backup adequadamente antecipadamente. Sempre teste seus scripts completamente. 2.1. RegWrite Object. RegWrite (strName, anyvalue, strType) O RegWrite não pode gravar para cadeias REGMULTISZ e está limitado a escrever apenas quatro bytes ou um DWORD em REGBINARY. O VBS simples a seguir criará quatro subchaves de registro com diferentes tipos de seqüência de caracteres dentro de uma chave de teste na seção HKCU. Para maior clareza, separei os códigos com quebras de linha. Não há nenhum prompt (exceto seu anti-vírus) ou diálogo de confirmação. A primeira linha de código define o objeto shell. O primeiro código RegWrite escreve um valor predefinido para a subchave. Se a chave estiver ausente ele irá criá-lo. Se ele já está presente, mas tem um valor diferente, ele irá alterá-lo. O segundo código é tudo em uma linha (como indicado por). Definir Shell CreateObject (quotWScript. Shellquot) Shell. RegWrite quotHKCUTestingSubkeyquot, 0, quotREGDWORDquot Shell. RegWrite quotHKCUTestingSubkeyMy Documentsquot, quotUSERPROFILEMy Documentsquot, quotREGEXPANDSZquot Shell. RegWrite quotHKCUTestingSubkeyValueNamequot, quotHelloquot, quotREGSZquot Shell. RegWrite quotHKCUTestingSubkeyValueName2quot, 1, quotREGBINARYquot Você também pode usar este WshShell objeto formato : Conjunto WshShell CreateObject (quotWScript. Shellquot) WSHShell. RegWrite quotHKCUTestingSubkeyquot, 0, quotREGDWORDquot WSHShell. RegWrite quotHKCUTestingSubkeyMy Documentsquot, quotUSERPROFILEMy Documentsquot, quotREGEXPANDSZquot WSHShell. RegWrite quotHKCUTestingSubkeyValueNamequot, quotHelloquot, quotREGSZquot WSHShell. RegWrite quotHKCUTestingSubkeyValueName2quot, 1, quotREGBINARYquot a chave resultante é no registo Mostrado aqui (figura 1). FIG. 1. A nova chave de registro criada com os scripts acima. Observe que o valor binário tem apenas quatro bytes. 2.2. RegRead Object. RegRead (strName) Se o nome da chave for especificado, o RegRead lê seu valor padrão. Se a chave estiver ausente, ela retornará um erro. O script a seguir lê a chave de registro acima, exceto o valor binário. Ao contrário dos outros dois objetos, você precisa incluir o caminho entre parênteses. Definir WshShell CreateObject (quotWScript. Shellquot) Wscript. Echo WshShell. RegRead (quotHKCUTestingSubkeyquot) Wscript. Echo WshShell. RegRead (quotHKCUTestingSubkeyMy Documentsquot) Wscript. Echo WshShell. RegRead (quotHKCUTestingSubkeyValueNamequot) O objeto Echo exibir o valor em uma janela WSH um por um. O primeiro eco dá isto (figura 2). FIG. 2. Caixa de mensagem WSH mostrando 0. Você pode adicionar uma frase significativa para o valor e ecoar todos os três juntos (figura 3) com um script modificado como este. Definir WshShell CreateObject (quotWScript. Shellquot) um WshShell. RegRead (quotHKCUTestingSubkeyquot) b WshShell. RegRead (quotHKCUTestingSubkeyMy Documentsquot) c WshShell. RegRead (quotHKCUTestingSubkeyValueNamequot) Wscript. Echo quotThe HKCUTestingSubkeys valor padrão isquot, a, quot, quot, quotthe My Documents valor isquot , B, quot, quothe ValueName isquot, c, fig. 3. Caixa de mensagem WSH com mensagem cheia lendo todas as três chaves. Você também pode encontrar um outro exemplo do meu VBS para ler e desbloquear o registro se ele estiver desativado consulte este artigo para obter detalhes. Faça o download e examine o script. 2.2.1. RegRead REGBINARY valores Para ler valores binários (dados binários ou hexadecimais), o script precisa ler e juntar a matriz. O script de acompanhamento lê esta chave de registo: HKEYCURRENTUSERSoftwareMicrosoft WindowsCurrentVersionPoliciesExplorer NoDriveTypeAutoRun REGBINARY 5f 00 00 00 Definir Shell CreateObject (quotWScript. Shellquot) arr Shell. RegRead (quotHKCUSoftwareMicrosoftWindows CurrentVersionPoliciesExplorerNoDriveTypeAutoRunquot) Para I LBound (arr) Para UBound (arr) a (I) CInt (arr (I)) Hex (CInt (arr (I))) Next Wscript. Echo quotThe nomes de chave de registro de valor decimal isquot, Join (a), quot, quot, quotthe hex valor isquot, Join (b), quot. quot msgbox Participar (a) ,, quotO valor decimal isquot msgbox Juntar (b) ,, quotO valor hexadecimal isquot Você pode personalizar a caixa de mensagem. O Wscript. Echo objeto acima dá-lhe esta saída (Fig. 4) tendo em mente que 5f é 95 em decimal (5x1615): Fig. 4. Caixa de mensagens WSH dando as chaves de registo valores decimais e hexadecimais na matriz. O msgbox dá-lhe estes dois por sua vez (Fig. 5 e 6): Fig. 5. Caixa WSH que dá o valor decimal de 95 na matriz. FIG. 6. Caixa WSH dando o valor hexadecimal de 5F na matriz. Esta é outra maneira de fazê-lo, desta vez lendo outra chave hexadecimal. Definir Shell CreateObject (quotWScript. Shellquot) arrRegValue Shell. RegRead (quotHKCUSoftwareMicrosoftInternet ExplorerDocument WindowsWidthquot) strRegValue StrPad (Hex (arrRegValue (0)), 2, quot0quot) amp quot quot amp StrPad (Hex (arrRegValue (1)), 2, quot0quot) Amp quot quot amp StrPad (Hex (arrRegValue (2)), 2, quot0quot) amp quot quot amp StrPad (Hex (arrRegValue (3)), 2, quot0quot) Wscript. Echo quotThe nomes de chave de registro hexadecimal valor isquot, strRegValue Private Function StrPad (Unpadded, Comprimento, Padding) StrPad String ((Comprimento-Len (Unpadded)), Padding) amp Unpadded End Function 2.3. RegDelete Tenha muito cuidado com isso, pois não há prompt ou desfazer. Somente o nome da chave ou valor é necessário, não o tipo de dados ou seqüência de caracteres. Este VBS exclui o ValueName (Hello) da chave de teste acima. Set Shell CreateObject (quotWScript. Shellquot) Este VBS exclui a seguinte subchave quotSubkeyquot com todo o conteúdo sob ele deixando a chave de teste intacta. Definir Shell CreateObject (quotWScript. Shellquot) Honeycutt, Jerry, Microsoft Windows XP Registro Guia (Redmond: Microsoft Press, 2003) Knittel, Brian, Windows XP sob o capô. (Redmond: Microsoft Press, 2003) Um agradecimento especial às pessoas que me ajudaram em fóruns públicos com relação aos dados binários do RegRead . Copyright 2003-2005 por Kilian. Todos os meus artigos, incluindo gráficos são fornecidos quotas isquot sem garantias de qualquer tipo. Renuncio a todas as garantias relativas às informações fornecidas. Em nenhum caso eu serei responsável por qualquer dano de qualquer tipo resultante da informação. Os artigos são fornecidos de boa fé e após algum grau de verificação, mas podem conter erros técnicos ou tipográficos. Links para outros recursos da web podem ser alterados a qualquer momento e estão fora do controle do autor. Os artigos podem ser adicionados, removidos, editados ou aperfeiçoados a qualquer momento. Nenhum suporte é fornecido pelo autor. Esta não é uma página de suporte oficial para quaisquer produtos mencionados. Todos os produtos mencionados são marcas registradas de suas empresas. Edite o registro por sua conta e risco e faça o backup primeiro. Última atualização em 22 Mar 2005

No comments:

Post a Comment