Aceasta este comanda virt-win-reg care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
virt-win-reg - Exportați și îmbinați intrările din Registrul Windows de la un invitat Windows
REZUMAT
virt-win-reg nume de domeniu „HKLM\Path\To\Subkey”
virt-win-reg nume de domeniu „HKLM\Path\To\Subkey”.
virt-win-reg nume de domeniu „HKLM\Path\To\Subkey” @
virt-win-reg --merge domname [input.reg ...]
virt-win-reg [--options] disk.img ... # în loc de domname
AVERTISMENT
Trebuie să nu utilizați „virt-win-reg” cu --combina opțiune pe mașinile virtuale live. daca tu
fă asta, tu voi obțineți corupție ireversibilă a discului în VM. „virt-win-reg” încearcă să
te împiedică să faci asta, dar nu prinde toate cazurile.
Modificarea registrului Windows este o operațiune inerent riscantă. Formatul este
în mod deliberat obscur și nedocumentat, iar modificările Registrului pot părăsi sistemul
de nepornit. Prin urmare, atunci când utilizați --combina opțiunea, asigurați-vă că aveți o copie de siguranță de încredere
mai întâi.
DESCRIERE
Acest program poate exporta și îmbina intrările din Registrul Windows de la un oaspete Windows.
Primul parametru este numele invitatului libvirt sau imaginea de disc brută a unui oaspete Windows.
If --combina is nu specificat, atunci cheia de registry aleasă este afișată/exportată
(recursiv). De exemplu:
$ virt-win-reg Windows7 „HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft”
De asemenea, puteți afișa valori individuale din cheile de registry, de exemplu:
$ cvkey='HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
$ virt-win-reg Windows7 $cvkey ProductName
Windows 7 Enterprise
cu --combina, puteți îmbina un fișier regedit textual în Registrul Windows:
$ virt-win-reg --merge Windows7 changes.reg
NOTĂ
Acest program este destinat doar accesului simplu la registru. Daca vrei sa faci
lucruri complicate cu registry, vă sugerăm să descărcați fișierele Registry hive din
oaspetele care folosește libguestfs(3) sau pește oaspete(1) și accesați-le local, de ex. folosind stup(3),
hivexsh(1) sau hivexregedit(1).
OPŢIUNI
--Ajutor
Afișează ajutor scurt.
--versiune
Afișați numărul versiunii și ieșiți.
--depanare
Activați mesajele de depanare.
-c URI
--conectați URI
Dacă utilizați libvirt, conectați-vă la data URI. Dacă este omis, atunci ne conectăm la
hypervisor implicit libvirt.
Dacă specificați direct dispozitive de blocare a invitaților, atunci libvirt nu este folosit deloc.
--format crud
Specificați formatul imaginilor de disc date pe linia de comandă. Dacă acest lucru este omis atunci
formatul este detectat automat din conținutul imaginii de disc.
Dacă imaginile de disc sunt solicitate de la libvirt, atunci acest program îi cere libvirt acest lucru
informație. În acest caz, valoarea parametrului format este ignorată.
Dacă lucrați cu imagini de disc oaspeți în format brut care nu sunt de încredere, ar trebui să vă asigurați formatul
este întotdeauna specificat.
--combina
În modul de îmbinare, acesta îmbină un fișier regedit textual în Registrul Windows al
mașină virtuală. Dacă acest steag este nu date apoi virt-win-reg afișări sau exporturi
În schimb, intrările de registru.
Rețineți că --combina is nesigur de utilizat pe mașinile virtuale live și va avea ca rezultat un disc
corupţie. Cu toate acestea, exportul (fără acest steag) este întotdeauna sigur.
--codare UTF-16LE|ASCII
Când îmbinați (numai), poate fi necesar să specificați codificarea șirurilor în care vor fi utilizate
dosarul stupului. Acest lucru este explicat în detaliu în „CODIFICAREA ȘIRURILOR” în
Win::Hivex::Regedit(3).
Implicit este utilizarea UTF-16LE, care ar trebui să funcționeze cu versiunile recente de Windows.
--unsafe-printable-strings
Când exportați (numai), presupuneți că șirurile sunt UTF-16LE și imprimați-le ca șiruri
de secvențe hexadecimale. Eliminați punctul de cod zero final din șiruri, dacă este prezent.
Acest lucru este nesigur și nu păstrează fidelitatea șirurilor din Registrul original
din diferite motive:
· Se presupune că codificarea originală este UTF-16LE. Șiruri ASCII și șiruri în altele
codificările vor fi corupte de această transformare.
· Presupune că tot ceea ce are tipul 1 sau 2 este într-adevăr un șir și asta
orice altceva nu este un șir, dar câmpul de tip din registrele reale nu este
de încredere.
· Pierde informații despre dacă un punct de cod zero a urmat șirul din
Registrul sau nu.
Toate acestea se întâmplă deoarece Registrul în sine nu conține informații despre cum sunt șirurile
sunt codificate (consultați „CODIFICAREA ȘIRURILOR” în Win::Hivex::Regedit(3)).
Ar trebui să utilizați această opțiune numai pentru piratarea și depanarea rapidă a Registrului
continut si nu folosiți-l dacă rezultatul va fi transmis într-un alt program sau
stocate într-un alt Registry.
SPRIJINIT SISTEME
Programul acceptă în prezent oaspeți derivați de Windows NT, începând cu Windows XP până la
la cel puțin Windows 8.
Sunt acceptate următoarele chei de registry:
„HKEY_LOCAL_MACHINE\SAM”
„HKEY_LOCAL_MACHINE\SECURITY”
„HKEY_LOCAL_MACHINE\SOFTWARE”
„HKEY_LOCAL_MACHINE\SYSTEM”
„HKEY_USERS\.DEFAULT”
„HKEY_USERS\SID"
Unde SID este un SID de utilizator Windows (de exemplu, „S-1-5-18”).
„HKEY_USERS\nume de utilizator"
Unde nume de utilizator este un nume de utilizator local (aceasta este o extensie libguestfs).
Puteți folosi „HKLM” ca prescurtare pentru „HKEY_LOCAL_MACHINE” și „HKU” pentru „HKEY_USERS”.
Cheile literale „HKEY_USERS\$SID” și „HKEY_CURRENT_USER” nu sunt acceptate (nu există
"utilizator curent").
WINDOWS 8
„Pornirea rapidă” Windows 8 poate împiedica virt-win-reg să poată edita Registrul.
Consultați „HIBERNARE WINDOWS ȘI PORNIRE RAPIDĂ WINDOWS 8” în guestfs(3).
CODIFICARE
„virt-win-reg” se așteaptă ca fișierele regedit să fi fost deja recodificate în local
codificare. De obicei, pe gazdele Linux, aceasta înseamnă UTF-8 cu terminații de linie în stil Unix. De cand
Fișierele regedit Windows sunt adesea în UTF-16LE cu sfârșituri de linie în stil Windows, este posibil să aveți nevoie
pentru a recoda întregul fișier înainte sau după procesare.
Pentru a recoda un fișier din format Windows în Linux (înainte de a-l procesa cu --combina
opțiune), ați face ceva de genul acesta:
iconv -f utf-16le -t utf-8 < win.reg | dos2unix > linux.reg
Pentru a merge în direcția opusă, după export și înainte de a trimite fișierul la un Windows
utilizator, faceți ceva de genul acesta:
unix2dos linux.reg | iconv -f utf-8 -t utf-16le > win.reg
Pentru mai multe informații despre codificare, consultați Win::Hivex::Regedit(3).
Dacă nu sunteți sigur de codificarea curentă, utilizați fişier(1) comanda. Versiunile recente ale
Windows regedit.exe produce un fișier UTF-16LE cu terminații de linie în stil Windows (CRLF), cum ar fi
acest:
$ fisier software.reg
software.reg: text Unicode Little-endian UTF-16, cu linii foarte lungi,
cu terminatoare de linie CRLF
Acest fișier ar avea nevoie de conversie înainte ca dvs --combina aceasta.
CurrentControlSet etc
Cheile de registry precum „CurrentControlSet” nu există cu adevărat în Registrul Windows la
nivelul fișierului stup și, prin urmare, nu le puteți modifica.
„CurrentControlSet” este de obicei un alias pentru „ControlSet001”. În unele împrejurări ea
s-ar putea referi la un alt set de control. Modul de a afla este să te uiți la
Tasta „HKLM\SYSTEM\Select”:
# virt-win-reg WindowsGuest „HKLM\SYSTEM\Select”
[HKEY_LOCAL_MACHINE\SYSTEM\Select]
„Actual”=dword:00000001
„Implicit”=dword:00000001
„Eșuat”=dword:00000000
„LastKnownGood”=dword:00000002
„Actual” este cel pe care Windows îl va alege când pornește.
În mod similar, alte chei „Actual...” din cale ar putea fi nevoie să fie înlocuite.
ȘTERGEREA REGISTRU CHEI AND VALORI
Pentru a șterge o întreagă cheie de registry, utilizați sintaxa:
[-HKEY_LOCAL_MACHINE\Foo]
Pentru a șterge o singură valoare dintr-o cheie, utilizați sintaxa:
[HKEY_LOCAL_MACHINE\Foo]
„Valoare”=-
WINDOWS SFATURI
Rețineți că unele dintre aceste sfaturi modifică imaginea discului pentru invitați. Oaspetele trebuie sa fi închis,
altfel veți obține corupție de disc.
ALERGARE A LOT SCRIPT CÂND A USER JURNI IN
Pregătiți un script batch DOS, VBScript sau executabil. Încărcați acest lucru folosind pește oaspete(1). Pentru
acest exemplu, scriptul se numește „test.bat” și este încărcat în „C:\”:
guestfish -i -d WindowsGuest upload test.bat /test.bat
Pregătiți un fișier regedit care conține modificarea registrului:
cat > test.reg <<'EOF'
[HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce]
"Test"="c:\\test.bat"
EOF
În acest exemplu folosim tasta „RunOnce”, ceea ce înseamnă că scriptul va rula precis
o dată când primul utilizator se conectează. Dacă doriți să ruleze de fiecare dată când un utilizator se conectează,
înlocuiți „RunOnce” cu „Run”.
Acum actualizați registrul:
virt-win-reg --merge WindowsGuest test.reg
INSTALARE A SERVICIU
Această secțiune presupune că sunteți familiarizat cu serviciile Windows și fie aveți un program
care se ocupă direct de Protocolul de control al serviciului Windows sau doriți să rulați orice program
folosind un pachet de servicii precum SrvAny sau RHSrvAny gratuit.
Încărcați mai întâi programul și opțional pachetul de servicii. În acest caz, testul
programul se numește „test.exe” și folosim wrapper-ul RHSrvAny:
guestfish -i -d WindowsGuest <
încărcați rhsrvany.exe /rhsrvany.exe
încărcați test.exe /test.exe
EOF
Pregătiți un fișier regedit care conține modificările din registry. În acest exemplu, primul
modificarea registrului este necesară pentru serviciul în sine sau pentru pachetul de servicii (dacă este utilizat). The
a doua modificare a registrului este necesară doar pentru că folosesc pachetul de servicii RHSrvAny.
cat > service.reg <<'EOF'
[HKLM\SYSTEM\ControlSet001\services\RHSrvAny]
„Tip”=dword:00000010
„Start”=dword:00000002
„ErrorControl”=dword:00000001
"ImagePath"="c:\\rhsrvany.exe"
"DisplayName"="RHSrvAny"
"ObjectName"="NetworkService"
[HKLM\SYSTEM\ControlSet001\services\RHSrvAny\Parameters]
"CommandLine"="c:\\test.exe"
"PWD"="c:\\Temp"
EOF
note:
· Pentru utilizarea „ControlSet001”, consultați secțiunea de mai sus din această pagină de manual. Poate ai nevoie
reglați acest lucru în funcție de setul de control utilizat de oaspete.
· „ObjectName” controlează privilegiile pe care le va avea serviciul. O alternativă este
"ObjectName"="LocalSystem" care ar fi cel mai privilegiat cont.
· Pentru semnificația numerelor magice, consultați acest articol Microsoft KB:
http://support.microsoft.com/kb/103000.
Actualizați registrul:
virt-win-reg --merge WindowsGuest service.reg
COAJĂ CITAREA
Fiți atenți când treceți parametrii care conțin „\” (backslash) în shell. De obicei tu
va trebui să folosească „ghilimele simple” sau barele oblice inverse duble (dar nu ambele) pentru a le proteja de
cochilia.
Căile și numele valorilor nu fac distincție între majuscule și minuscule.
Utilizați virt-win-reg online folosind serviciile onworks.net