Friday, 13 October 2017

Regwrite Binære Alternativer


Beskrivelse RegWrite-metoden brukes til å skrive en verdi til Windows-registeret. Parametre Navnparameteren er en streng som angir verdien eller nøkkelen som skal skrives. Verdi-parameteren angir dataene som skal skrives til registret. Verdien konverteres automatisk til en streng når Type er REGSZ eller REGEXPANDSZ, og til et helt tall når Type er REGDWORD eller REGBINARY. Den valgfrie Type-parameteren angir datatypen for verdien, gyldige alternativer er REGSZ, REGEXPANDSZ, REGDWORD og REGBINARY. Last tid jeg postet Jeg ga deg en funksjon som ga en enkel måte å lese registret med VBScript. i denne meldingen bruker we8217ll det samme Wscript. shell-objektet som sist, bare bruk en annen metode8211 RegWrite-metoden Husk at å skrive til registret kan være farlig for stabiliteten til systemet ditt. Hvis du ikke spesifikt vet at du må skrive registret, og med hvilken verdi, anbefaler jeg at du ikke skriver til registret. Jeg har brukt en opprettet registerplassering så kjører dette skriptet skal være så trygt som jeg kan gjøre det. Dette eksemplet skriver til HKeyCurrentUserVBScriptAdmin nøkkel Teststring. som er en REGSZ-verdi (eller streng). You8217ll legg merke til at denne verdien sannsynligvis ikke eksisterer før du kjører skriptet. Metoden lager hele banen hvis den ikke finnes8282 som eksisterer8211 som er veldig fin (Eller ikke så fint hvis du skriver inn banen.) På slutten av skriptet bør du se ReadReg-funksjonen leser verdien tilbake og skriver verdien som leses, hvilken bør være suksess. Så, kan vi se på koden. 8216HKEYCURRENTUSER HKCU 8216HKEYLOCALMACHINE påHKLM 8216HKEYCLASSESROOT HKCR 8216HKEYUSERS HKEYUSERS 8216HKEYCURRENTCONFIG HKEYCURRENTCONFIG Temp WriteReg (8220HKCUVBSriptAdminTeststring8221,8221Success8221,8221REGSZ8221) Temp ReadReg (8220HKCUVBSriptAdminTeststring8221) WScript. Echo Temp Funksjon WriteReg (RegPath, verdi, RegType) 8216Regtype bør være 8220REGSZ8221 for streng, 8220REGDWORD8221 for et heltall, 8230 82168221REGBINARY8221 for en binær eller boolesk, og 8220REGEXPANDSZ8221 for en utvidbar streng Dim objRegistry, Nøkkelsett objRegistry CreateObject (8220Wscript. shell8221) Nøkkel objRegistry. RegWrite (RegPath, Value, RegType) WriteReg Nøkkel Funksjon Funksjon ReadReg (RegPath) Dim objRegistry, Key Set objRegistry CreateObject (8220Wscript. shell8221) Nøkkel objRegistry. RegRead (RegPath) ReadReg Key End Function Som alltid fungerer denne koden perfekt. Noen ganger bryter formateringen av bloggen koden hvis du kopierer og limer den inn i editoren din. Så, hvis du ikke liker å skrive eller feilsøke noen syntaksfeil på grunn av kopiering og lime problemer8211 ga jeg koden for nedlasting, pluss eksempelvis utdatafiler fra mine endelige tester for deg. Du finner koden og andre filer som er tilgjengelige for nedlasting fra mine nettsteder (websystemsadministration) File Depot under kategorien ITKE Blog Scripts. Nyt og fornøyd skript nbsp Kommenter denne PostRegistry redigering ved hjelp av VBScript 1. VBScript Dette er bare en kort introduksjon til bruk av VBScript for å lese og redigere registret. VBScript er basert på Microsofts Visual Basic. Det finnes andre alternativer, inkludert JScript, Console Registry Tool reg. exe og inf-filer for redigering av registret. Dette er alle kraftige metoder for å redigere registret, og VBS og JS brukes til kapring av Windows og IE-innstillingene, inkludert låsing av registeret. Dermed kan du bruke et skript for å låse opp registeret ditt, som påloggingsskript og automatisere repeterende oppgaver i distribusjon. Se artikkelen om kvotepostkurs for mer informasjon om opplåsing av regedit. Windows XPs Windows Script Host støtter VBScript (og JScript). Bare lag tekstfilen som er opprettet i Notisblokk som vbs og dobbeltklikk for å kjøre den. Du kan også bruke kommandolinjeversjonen cscript. exe. Sikkerhetsverktøyene fra tredjepart (for eksempel Script Defender og anti-virus) bør dukke opp advarsler om skadelig skript og tilby å stoppe det. Hvis du vet at skriptet er trygt, klikker du OK eller lar deg kjøre det. Hvis du ønsker å lære mer om VBS og skallobjekter, les noen bøker og online opplæringsprogrammer. Men du kan raskt lære VBS-syntaksen å redigere registeret uten å lære VBS i detalj, som du finner ut her. 2. Skallobjektene De tre skallobjektene for registret er: RegRead. RegWrite og RegDelete. Ikke alle dataverdier støttes, og binære verdier utgjør vanskeligheter som forklares nedenfor. I følgende syntaks refererer strName til nøkkelen eller verdien i anførselstegn. Bruk en full sti eller en standard forkortelse (HKCR, HKCU, HKLM resten av den fulle banen). Stien som slutter med en indikerer en nøkkel og det som ender med et verdinavn et verdi navn. quotHKCUTestingSubkeyquot refererer til nøkkelen eller standardverdien til nøkkelen og quotHKCUTestingSubkeyMy Documentsquot refererer til verdienavnet Mine dokumenter på undernøkkel-tasten. Vær forsiktig når du prøver på skript. Åpne regedit slik at du kan spore hva som skjer. Sikkerhetskopieres på forhånd på forhånd. Test alltid skriptene dine grundig. 2.1. RegWrite Object. RegWrite (strName, anyvalue, strType) RegWrite kan ikke skrive til REGMULTISZ strenger og er begrenset til å skrive bare fire bytes eller en DWORD i REGBINARY. Følgende enkle VBS vil opprette fire registerundernøkler med forskjellige strengtyper i en testnøkkel i HKCU-bikupen. For klarhet skilt Ive kodene med linjeskift. Det er ingen spørsmål (unntatt antivirusprogrammet) eller bekreftelsesdialog. Den første linjen med kode definerer skallobjektet. Den første RegWrite-koden skriver en standardverdi til undernøkkelen. Hvis nøkkelen er fraværende, vil den opprette den. Hvis den allerede er til stede, men har en annen verdi, endres den. Den andre koden er alt i en linje (som angitt av). Sett Shell Create (quotWScript. Shellquot) Shell. RegWrite quotHKCUTestingSubkeyquot, 0, quotREGDWORDquot Shell. RegWrite quotHKCUTestingSubkeyMy Documentsquot, quotUSERPROFILEMy Documentsquot, quotREGEXPANDSZquot Shell. RegWrite quotHKCUTestingSubkeyValueNamequot, quotHelloquot, quotREGSZquot Shell. RegWrite quotHKCUTestingSubkeyValueName2quot, 1, quotREGBINARYquot Du kan også bruke denne WshShell objekt format : Set WshShell Create (quotWScript. Shellquot) WshShell. RegWrite quotHKCUTestingSubkeyquot, 0, quotREGDWORDquot WshShell. RegWrite quotHKCUTestingSubkeyMy Documentsquot, quotUSERPROFILEMy Documentsquot, quotREGEXPANDSZquot WshShell. RegWrite quotHKCUTestingSubkeyValueNamequot, quotHelloquot, quotREGSZquot WshShell. RegWrite quotHKCUTestingSubkeyValueName2quot, 1, er quotREGBINARYquot den resulterende nøkkel i registeret vist her (figur 1). Fig. 1. Den nye registernøkkelen opprettet med de ovennevnte skriptene. Merk at binærverdien bare har fire byte. 2.2. RegRead Object. RegRead (strName) Hvis nøkkelnavnet er spesifisert, leser RegRead standardverdien. Hvis nøkkelen er fraværende, returneres det en feil. Følgende skript leser den ovennevnte registernøkkelen bortsett fra binærverdien. I motsetning til de to andre objektene, må du legge inn banen i parentes. Angi WshShell CreateObject (quotWScript. Shellquot) Wscript. Echo WshShell. RegRead (quotHKCUTestingSubkeyquot) Wscript. Echo WshShell. RegRead (quotHKCUTestingSubkeyMy Documentsquot) Wscript. Echo WshShell. RegRead (quotHKCUTestingSubkeyValueNamequot) Echo-objektet viser verdien i et WSH-vindu en for en. Det første ekkoet gir dette (figur 2). Fig. 2. WSH-meldingsboks som viser 0. Du kan legge til en meningsfull setning for verdien og ekko alle tre sammen (figur 3) med et modifisert skript som dette. Angi WshShell CreateObject (quotWScript. Shellquot) en WshShell. RegRead (quotHKCUTestingSubkeyquot) b WshShell. RegRead (quotHKCUTestingSubkeyMy Documentsquot) c WshShell. RegRead (quotHKCUTestingSubkeyValueNamequot) Wscript. Echo quotThe HKCUTestingSubkeys standardverdien isquot, a, quot, quothe My Documents value isquot , b, quot, quote ValueName isquot, c, quot. quot Fig. 3. WSH-meldingsboks med full melding som leser alle tre tastene. Du kan også finne et annet eksempel på min VBS å lese og låse opp registeret hvis det er deaktivert. Se denne artikkelen for detaljer. Last ned og undersøk scriptet. 2.2.1. RegRead REGBINARY verdier For å lese binære verdier (binære eller heksadesimale data), må skriptet lese og delta i oppstillingen. Følgende skript leser denne registernøkkelen: HKEYCURRENTUSERSoftwareMicrosoft WindowsCurrentVersionPoliciesExplorer NoDriveTypeAutoRun REGBINARY 5f 00 00 00 Angi Shell CreateObject (quotWScript. Shellquot) arr Shell. RegRead (quotHKCUSoftwareMicrosoftWindows CurrentVersionPoliciesExplorerNoDriveTypeAutoRunquot) For I LBound (arr) Til Ubound (arr) a (I) CInt (I)) b (I) Hex (CInt (arr (I))) Neste Wscript. Echo quotEnregistreringsnøkkelnavn desimalverdien isquot, Bli med (a), quot, quotthe hex value isquot, Bli med (b).quot msgbox Bli med (a) ,, quotThe desimalverdien isquot msgbox Bli med (b) ,, quotThe hexadecimal value isquot Du kan tilpasse meldingsboksen. Wscript. Echo-objektet ovenfor gir deg denne utgangen (figur 4) med tanke på at 5f er 95 i desimal (5x1615): Fig. 4. WSH-meldingsboks som gir registertastene desimal og hex-verdier i arrayet. Msgbox gir deg disse to i tur (Fig. 5 og 6): Fig. 5. WSH-boks som gir desimalverdien på 95 i arrayet. Fig. 6. WSH-boks gir hex-verdien på 5F i matrisen. Dette er en annen måte å gjøre det, denne gangen leser du en annen heksesnøkkel. Angi Shell CreateObject (quotWScript. Shellquot) arrRegValue Shell. RegRead (quotHKCoftwareMicrosoftInternet ExplorerDocument WindowsWidthquot) strRegValue StrPad (Hex (arrRegValue (0)), 2, kvotquot) amp kvittering StrPad (Hex (arrRegValue (1)), 2, kvotquot) forsterker StrPad (Hex (arrRegValue (2)), 2, kvotquot amp amp kvadrat StrPad (Hex (arrRegValue (3)), 2, kvotquot) Wscript. Echo quotEnregistreringsnøkkelnavn heksadesimale verdi isquot, strRegValue Private Funksjon StrPad (Unpadded, Lengde, Padding) StrPad String ((Lengde Len (Unpadded)), Padding) Amp Unpadded End Function 2.3. RegDelete Vær veldig forsiktig med dette da det ikke er noen ledig eller angre. Bare nøkkel eller verdi navn er nødvendig, ikke data eller streng type. Denne VBS sletter verdienavnet (hei) fra den ovennevnte testnøkkelen. Sett Shell CreateObject (quotWScript. Shellquot) Denne VBS sletter følgende undernøkkel quotSubkeyquot med alt innholdet under det forlater testnøkkelen intakt. Sett Shell CreateObject (quotWScript. Shellquot) Honeycutt, Jerry, Microsoft Windows XP Registry Guide (Redmond: Microsoft Press, 2003) Knittel, Brian, Windows XP Under hetten. Hardcore Windows Scripting og Command Line Power (Indianapolis: Que, 2003) Microsoft Windows Resource Kit Scripting Team, Windows 2000 Scripting Guide (Redmond: Microsoft Press, 2003) En spesiell takk til de som hjalp meg i offentlige fora om RegRead binære data . Opphavsrett 2003-2005 av Kilian. Alle mine artikler, inkludert grafikk, tilbys kvoter isquot uten garantier av noe slag. Jeg frasier herved alle garantier med hensyn til informasjonen som er oppgitt. I intet tilfelle skal jeg være ansvarlig for eventuelle skader av noe slag som følge av informasjonen. Artikklene er gitt i god tro og etter noen grad av verifisering, men de kan inneholde tekniske eller typografiske feil. Lenker til andre nettressurser kan endres når som helst og er utenfor forfatterens kontroll. Artikler kan legges til, fjernes, redigeres eller forbedres når som helst. Ingen støtte er gitt av forfatteren. Dette er ikke en offisiell støtteside for noen nevnte produkter. Alle de nevnte produktene er varemerker for sine selskaper. Rediger registret på egen risiko og sikkerhetskopiere først. Sist oppdatert 22. mars 2005

No comments:

Post a Comment