Perché regedit mostra valori errati?


1

Una delle app su cui lavoro memorizza la stringa di connessione al database nel registro. Ho cambiato il valore (tramite regedit) per puntare a un DB diverso. La mia applicazione stava ancora raccogliendo il vecchio valore. Abbastanza sicuro di aver fatto qualcosa di sbagliato, quindi ho controllato il codice, riavviato, cercato nel registro per verificare che non ci fosse un'altra chiave con lo stesso nome. Nessuna gioia. Ho persino cancellato la chiave, riavviata e la mia app stava ancora leggendo il valore.

Quindi ho usato PowerShell per elencare i valori (tramite Get-ItemProperty) e che mostrava anche il vecchio valore. Usato Set-ItemProperty per aggiornare il valore, e quindi il mio codice lo ha preso bene. Tuttavia, regedit mostra ancora i vecchi dati. Persino un altro sviluppatore e un ingegnere di sistema hanno dato un'occhiata a un controllo di integrità. Nessuna idea

Qualche idea sul perché regedit non sembra mostrare le stesse informazioni di Get-ItemProperty?


Regedit mostra ancora il valore sbagliato? Sistema operativo a 32 o 64 bit? Fornire la posizione all'interno del registro. Questo potrebbe trasformarsi in una domanda StackOverflow basata sui miei pensieri iniziali sul problema.
Ramhound

Sì, regedit mostra ancora il valore sbagliato. È 64 bit. La posizione è HKLM \ Software \ LivingNaturally \ AppConnectionString - che è una chiave personalizzata.
Mike Hildner

1
Scommetterei un sacco di soldi che regedit va bene. Stai leggendo la chiave sbagliata o la tua app non si sta comportando come ti aspetteresti
Keltari

@ MikeHildner - Presumo che il tuo software legga specificamente il 64-bit HKLM\Software posizione ed è un'applicazione a 64 bit? Se è un'applicazione a 32 bit, tenterà automaticamente di leggere il registro a 32 bit HKLM\Software. Se il problema è quello che penso che sia allora Powershell più probabilmente lo ha gestito automaticamente e ti è stato nascosto? Carica una versione a 32 bit del sistema operativo in una macchina virtuale, ripeti quello che hai fatto, vengo dalla scommessa di Keltari che non sarai in grado di replicare il problema.
Ramhound

Anche se la chiave di registro è personalizzata, la posizione sarà trasparente a Windows, a seconda che si parli di processo a 32 o 64 bit.
Ramhound

Risposte:


4

Risulta la ragione per cui regedit non mostrava o modificava le stesse informazioni di PowerShell perché, a me ignoto al momento, stavo eseguendo regedit da c: \ Windows \ SysWOW64 e non da c: \ Windows.


Sapevo che era qualcosa di simile :-)
Ramhound

0

Quindi non sta solo leggendo cosa c'è in HKLM \ Software \ Wow6432Node? Esegui anche C: \ Windows \ SysWOW64 \ Odbcad32.exe e verifica se raccoglie le impostazioni da lì.


Bene, quello è qualcos'altro che è strano. Non ho un HKLM \ Software \ Wow6432Node. Doppio controllo sotto le proprietà del computer e Windows mi sta dicendo che è a 64 bit.
Mike Hildner
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.