Questo è il comando virt-win-reg che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
virt-win-reg - Esporta e unisci le voci del registro di Windows da un guest Windows
SINOSSI
virt-win-reg domname 'HKLM\Path\To\Subkey'
virt-win-reg domname 'HKLM\Path\To\Subkey' nome
virt-win-reg domname 'HKLM\Path\To\Subkey' @
virt-win-reg --merge nomedom [input.reg ...]
virt-win-reg [--options] disk.img ... # invece di domname
AVVERTIMENTO
È necessario non è un usa "virt-win-reg" con il --unisci opzione su macchine virtuali live. Se tu
fai questo, tu andrete a ottenere un danneggiamento irreversibile del disco nella VM. "virt-win-reg" cerca di
ti impedisce di farlo, ma non rileva tutti i casi.
La modifica del registro di Windows è un'operazione intrinsecamente rischiosa. Il formato è
deliberatamente oscuri e non documentati e le modifiche al Registro di sistema possono lasciare il sistema
non avviabile. Pertanto, quando si utilizza il --unisci opzione, assicurati di avere un backup affidabile
prima.
DESCRIZIONE
Questo programma può esportare e unire le voci del registro di Windows da un guest Windows.
Il primo parametro è il nome del guest libvirt o l'immagine del disco non elaborato di un guest Windows.
If --unisci is non è un specificato, quindi la chiave di registro scelta viene visualizzata/esportata
(ricorsivamente). Per esempio:
$ virt-win-reg Windows7 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft'
Puoi anche visualizzare singoli valori all'interno delle chiavi di registro, ad esempio:
$ cvkey='HKLM\SOFTWARE\Microsoft\Windows NT\Versione Corrente'
$ virt-win-reg Windows7 $cvkey NomeProdotto
7 Windows Enterprise
Con --unisci, puoi unire un file regedit di testo nel registro di Windows:
$ virt-win-reg --merge Windows7 modifiche.reg
NOTA
Questo programma è pensato solo per un semplice accesso al registro. Se vuoi fare
cose complicate con il registro, ti suggeriamo di scaricare i file hive del registro da
l'ospite che usa libguestfs(3) o pesce ospite(1) e accedervi localmente, ad es. usando alveare(3),
hivexsh(1) o hivexregedit(1).
VERSIONI
--Aiuto
Visualizza un breve aiuto.
--versione
Visualizza il numero di versione ed esci.
- debug
Abilita messaggi di debug.
-c URI
--Collegare URI
Se usi libvirt, connettiti al dato URI. Se omesso, allora ci colleghiamo al
hypervisor libvirt predefinito.
Se specifichi direttamente i dispositivi a blocchi guest, libvirt non viene utilizzato affatto.
--formato crudo
Specificare il formato delle immagini disco fornite sulla riga di comando. Se questo viene omesso allora
il formato viene rilevato automaticamente dal contenuto dell'immagine del disco.
Se le immagini del disco sono richieste da libvirt, questo programma richiede libvirt per questo
informazione. In questo caso, il valore del parametro format viene ignorato.
Se si lavora con immagini del disco guest in formato raw non attendibili, è necessario assicurarsi che il formato
è sempre specificato.
--unisci
In modalità unione, questo unisce un file regedit testuale nel registro di Windows del
macchina virtuale. Se questa bandiera è non è un dato che virt-win-reg visualizza o esporta
Voci di registro invece.
Si noti che --unisci is pericoloso da utilizzare su macchine virtuali live e risulterà in disk
corruzione. Tuttavia, l'esportazione (senza questo flag) è sempre sicura.
- codifica UTF-16LE|ASCII
Durante l'unione (solo), potrebbe essere necessario specificare la codifica per le stringhe da utilizzare in
il file dell'alveare. Questo è spiegato in dettaglio in "CODIFICA STRINGHE" in
Vinci::Hivex::Regedit(3).
L'impostazione predefinita prevede l'utilizzo di UTF-16LE, che dovrebbe funzionare con le versioni recenti di Windows.
--stringhe-stampabili-non sicure
Quando esporti (solo), supponi che le stringhe siano UTF-16LE e stampale invece come stringhe
di sequenze esadecimali. Rimuovere il punto di codice zero finale dalle stringhe, se presente.
Questo non è sicuro e non preserva la fedeltà delle stringhe nel registro originale
per vari motivi:
· Presuppone che la codifica originale sia UTF-16LE. Stringhe ASCII e stringhe in altro
le codifiche saranno danneggiate da questa trasformazione.
· Presuppone che tutto ciò che ha il tipo 1 o 2 sia in realtà una stringa e che
tutto il resto non è una stringa, ma il campo del tipo nei registri reali non lo è
affidabile.
· Perde informazioni sul fatto che un punto di codice zero abbia seguito la stringa nel
Registro o no.
Tutto questo accade perché il registro stesso non contiene informazioni su come le stringhe
sono codificati (vedi "CODIFICA STRINGHE" in Vinci::Hivex::Regedit(3)).
Dovresti usare questa opzione solo per l'hacking rapido e il debug del registro
contenuto, e mai usalo se l'output sta per essere passato a un altro programma o
memorizzato in un altro Registro.
SUPPORTATI TEGOLE
Il programma attualmente supporta guest derivati da Windows NT a partire da Windows XP fino a
almeno a Windows 8.
Sono supportate le seguenti chiavi di registro:
"HKEY_LOCAL_MACHINE\SAM"
"HKEY_LOCAL_MACHINE\SECURITY"
"HKEY_LOCAL_MACHINE\SOFTWARE"
"HKEY_LOCAL_MACHINE\SYSTEM"
"HKEY_USERS\.DEFAULT"
"HKEY_USERS\SID"
where SID è un SID utente di Windows (es. "S-1-5-18").
"HKEY_USERS\nome utente"
where nome utente è un nome utente locale (questa è un'estensione libguestfs).
Puoi usare "HKLM" come abbreviazione per "HKEY_LOCAL_MACHINE" e "HKU" per "HKEY_USERS".
Le chiavi letterali "HKEY_USERS\$SID" e "HKEY_CURRENT_USER" non sono supportate (non esiste
"utente attuale").
FINESTRE 8
L'"avvio rapido" di Windows 8 può impedire a virt-win-reg di modificare il registro.
Vedere "IBERNAZIONE DI WINDOWS E AVVIO RAPIDO DI WINDOWS 8" in ospiti(3).
CODIFICA
"virt-win-reg" si aspetta che i file regedit siano già stati ricodificati nel locale
codifica. Di solito su host Linux, questo significa UTF-8 con terminazioni di linea in stile Unix. Da quando
I file regedit di Windows sono spesso in UTF-16LE con terminazioni di riga in stile Windows, potrebbe essere necessario
per ricodificare l'intero file prima o dopo l'elaborazione.
Per ricodificare un file dal formato Windows a Linux (prima di elaborarlo con il --unisci
opzione), faresti qualcosa del genere:
iconv -f utf-16le -t utf-8 < win.reg | dos2unix > linux.reg
Per andare nella direzione opposta, dopo l'esportazione e prima di inviare il file a Windows
utente, fai qualcosa del genere:
unix2dos linux.reg | iconv -f utf-8 -t utf-16le > win.reg
Per ulteriori informazioni sulla codifica, vedere Vinci::Hivex::Regedit(3).
Se non sei sicuro della codifica corrente, usa il filetto(1) comando. Versioni recenti di
Windows regedit.exe produce un file UTF-16LE con terminazioni di riga in stile Windows (CRLF), come
Questo:
$filesoftware.reg
software.reg: testo Unicode UTF-16 Little-endian, con righe molto lunghe,
con terminatori di linea CRLF
Questo file dovrebbe essere convertito prima che tu possa --unisci esso.
CurrentControlSet ecc.
Le chiavi di registro come "CurrentControlSet" non esistono realmente nel registro di Windows al
livello del file hive e quindi non è possibile modificarli.
"CurrentControlSet" è in genere un alias per "ControlSet001". In alcune circostanze è
potrebbe fare riferimento a un altro set di controllo. Il modo per scoprirlo è guardare il
Tasto "HKLM\SYSTEM\Select":
# virt-win-reg WindowsGuest 'HKLM\SYSTEM\Select'
[HKEY_LOCAL_MACHINE\SYSTEM\Seleziona]
"Corrente"=dword:00000001
"Predefinito"=dword:00000001
"Fallito"=dword:00000000
"LastKnownGood"=dword:00000002
"Corrente" è quello che Windows sceglierà all'avvio.
Allo stesso modo, potrebbe essere necessario sostituire altre chiavi "Corrente..." nel percorso.
CANCELLAZIONE REGISTRO CHIAVI E VALORI
Per eliminare un'intera chiave di registro, utilizzare la sintassi:
[-HKEY_LOCAL_MACHINE\Pippo]
Per eliminare un singolo valore all'interno di una chiave, usa la sintassi:
[HKEY_LOCAL_MACHINE\Pippo]
"Valore"=-
FINESTRE CONSIGLI
Tieni presente che alcuni di questi suggerimenti modificano l'immagine del disco guest. L'ospite devono obbligatoriamente: essere spento,
altrimenti otterrai la corruzione del disco.
JOGGING vs RUNNING A LOTTO SCRIPT QUANDO A UTENTE TRONCHI IN
Prepara uno script batch DOS, VBScript o eseguibile. Carica questo usando pesce ospite(1). Per
questo esempio lo script si chiama "test.bat" e viene caricato in "C:\":
guestfish -i -d WindowsGuest caricare test.bat /test.bat
Prepara un file regedit contenente la modifica del registro:
cat > test.reg <<'EOF'
[HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce]
"Test"="c:\\test.bat"
EOF
In questo esempio usiamo la chiave "RunOnce" che significa che lo script verrà eseguito con precisione
una volta quando il primo utente effettua l'accesso. Se vuoi che venga eseguito ogni volta che un utente effettua l'accesso,
sostituire "RunOnce" con "Run".
Ora aggiorna il registro:
virt-win-reg --merge WindowsGuest test.reg
INSTALLAZIONE A SERVIZIO
Questa sezione presuppone che tu abbia familiarità con i servizi Windows e che tu abbia un programma
che gestisce direttamente il protocollo di controllo dei servizi di Windows o si desidera eseguire qualsiasi programma
utilizzando un wrapper di servizi come SrvAny o il RHSrvAny gratuito.
Caricare prima il programma e, facoltativamente, il wrapper del servizio. In questo caso il test
programma si chiama "test.exe" e stiamo usando il wrapper RHSrvAny:
guestfish -i -d WindowsGuest <
carica rhsrvany.exe /rhsrvany.exe
carica test.exe /test.exe
EOF
Preparare un file regedit contenente le modifiche al registro. In questo esempio, il primo
la modifica del registro è necessaria per il servizio stesso o per il wrapper del servizio (se utilizzato). Il
la seconda modifica del registro è necessaria solo perché sto utilizzando il wrapper del servizio RHSrvAny.
cat > service.reg <<'EOF'
[HKLM\SISTEMA\ControlSet001\servizi\RHSrvAny]
"Tipo"=dword:00000010
"Inizio"=dword:00000002
"ErrorControl"=dword:00000001
"ImagePath"="c:\\rhsrvany.exe"
"DisplayName"="RHSrvAny"
"NomeOggetto"="ServizioRete"
[HKLM\SYSTEM\ControlSet001\services\RHSrvAny\Parameters]
"CommandLine"="c:\\test.exe"
"PWD"="c:\\Temp"
EOF
Note:
· Per l'uso di "ControlSet001" vedere la sezione precedente in questa pagina di manuale. Potrebbe essere necessario
regolarlo in base al set di controllo utilizzato dall'ospite.
· "NomeOggetto" controlla i privilegi che avrà il servizio. Un'alternativa è
"ObjectName"="LocalSystem" che sarebbe l'account più privilegiato.
· Per il significato dei numeri magici, vedere questo articolo Microsoft KB:
http://support.microsoft.com/kb/103000.
Aggiorna il registro:
virt-win-reg --merge WindowsGuest service.reg
SHELL CITAZIONE
Prestare attenzione quando si passano parametri contenenti "\" (barra rovesciata) nella shell. Di solito tu
dovranno usare "virgolette singole" o doppie barre rovesciate (ma non entrambe) per proteggerle da
il guscio.
I percorsi e i nomi dei valori non fanno distinzione tra maiuscole e minuscole.
Usa virt-win-reg online utilizzando i servizi onworks.net