MS Access 2010 Store Password DSNs


Hidden Tables in Your Microsoft Access Database

Any sophisticated piece of software like Microsoft Access will have many hidden and internal files which are archived to maintain the application’s environment and user customisations. In Access, we are talking about System Objects; in particular theMSysObjects Table which is a hidden table that can be used to extract information about your Access database.

Microsoft Access System Objects consist of several tables that gives you important and useful information about your database application. In this post, I’m going to focus on MSysObjects Table. It contains a list of all object types, when it was created, last updated and other related ID’s which link to other system tables.

A health warning should be included here. DO NOT attempt to delete or modify this table, its records (if you can)! It will potentially kill the system and corrupt a lot more than you may think.

First of all, you need to show the hidden system tables but ticking the ‘Show System Objects‘ option checkbox control which is found in different locations based on the version of Microsoft Access you use.

In Access 2003 (and earlier), you need to go to the ‘Options…‘ command via the ‘Tools‘ menu and click on the ‘View‘ tab.

In later versions, this feature is found from the ‘Navigation Options…‘ of the Navigation Pane (by right mouse clicking the header).

Microsoft Access 2010 Navigation Pane - System ObjectsOne of the key fields in this table is the ‘Type‘ field which has a unique value for each type of object and can be used to interrogate and extract recordsets. An example may well be to list tables in the current database to populate a combo-box control on a form or to list queries in a list-box control for a form.

MSysObjects.Type field has the following values representing the following objects:

Tables 1
Linked Tables 6
Forms -32768
Queries 5
Reports -32764
Modules -32761
Macros -32766
Relationships 8

Don’t ask me why the values assigned are not obvious – just accept it!

You use system tables to create additionally functionality for your Access database and help manage user controlled environments that otherwise could be exposed to all users and make your database un-user-friendly.

For example, I want to view all forms in a combo-box so that the chosen item can be used as a parameter setting for the default loading of a form (very much like setting the ‘Start-Up’ of a selected form in Microsoft Access).

SELECT MSysObjects.Name FROM MSysObjects
WHERE (Left$([Name],1)<>"~") AND (MSysObjects.Type)=-32768
ORDER BY MSysObjects.Name;

Note the MSysObjects.Name is also set in the WHERE clause to exclude the ~ (tilde) as this refers to internal settings namely indexes and other non essential references for our purpose.

Copy the above SQL statement to either the combo-box control (or save it first as a new query) and then you can start to add functionality to your form.

There are other system objects which will also be visible. Don’t forget to hide these tables when done though in a polished database application you will probably have hidden the ‘backstage‘ view inclusing the Navigation Pane.

I welcome your comments in the form below. Keep up to date with Access Database Tutorial free weekly tips loated at the top (right) of this page.


Power Tip: Improve the security of database connections

This post about making ODBC connections more secure is provided by Access MVP Ben Clothier.

Now and then, we come to a point where we decide to upsize an Access database to a server-based RDBMS. The reasons for upsizing can vary, but a common theme is security. With a server-based RDBMS, we have more options for security than when we are working with a file-based data source. Even if security wasn’t the reason for upsizing, we do have an obligation to ensure that we develop a “good citizen” application and protect the company’s assets contained in the RDBMS. When our RDBMS supports Windows authentication (e.g., SQL Server, Oracle, FireBird), we have it easy – no username or password needs to be stored. But unfortunately, we don’t always have Windows authentication available, and even when it is supported, it may not be practical. This article focuses on the case where we have to pass in a username and password as a part of the connection string and we want to do so in a secure manner. The article also assumes we are using ODBC and DAO.

Holes in Data Source Names

By default, Access offers to set up a Data Source Name (DSN) when we want to create a new linked table. As a matter of development, the DSN is quite convenient, giving us a graphic method to quickly build and specify an ODBC connection string without having to remember all of the syntax and parameters. Unfortunately, when the time comes for deployment, using DSNs has a host of problems, especially security. Let’s quickly review a few of the security holes associated with using DSNs.

Save password check box in Link Tables dialog box
Figure 1

When we link a new ODBC table, Access defaults to not saving the password when we select a DSN. We have to select Save Password to do so, as seen in Figure 1. Recent versions of Access warn that the password will be saved as plaintext. If we ignore the warning and save the password anyway, the password is saved in the Access system table, MSysObjects, as plaintext. You can see an example of this in Figure 2.

Passwords saved as plain text in the MSysObjects table
Figure 2

Not saving passwords is not good enough

So, let’s elect not to save the password. Does that resolve the problem? Unfortunately, not necessarily. When we create a DSN, the data used to build connection strings is stored in a registry entry. Let’s see how the DSN for a MySQL database is structured. You can find it in the registry node shown in Figure 3.

Password saved as plain text in the system registry
Figure 3

Here, the password is stored in the registry as plaintext, so even though we didn’t check the Save Password option, and our Connect wouldn’t list Password anywhere in the database itself, it’s still there for the taking. Yikes. Even worse, storing passwords is a vendor-specific implementation. The PostgreSQL ODBC driver also stores passwords as plaintext, but the Firebird ODBC driver always encrypts the password. SQL Server ODBC drivers will never try to store a SQL Server authentication password, no matter what. Considering the large number of different ODBC drivers, including third-party drivers for the same RDBMS, I’d rather not have to track the specific oddities of each ODBC driver and accommodate each one of them as I move from RDBMS to RDBMS.

We can say, “Let’s not define the password in the DSN, requiring the user to complete the connection at runtime.” Indeed, we can do that, but we now run into a new problem that also plagues the SQL Server ODBC driver. Every time a user opens an Access object that either is, or depends on, an ODBC object, the user will be prompted to enter their password for that ODBC connection. This does not make for a great user experience, not to mention several additional issues raised by showing users the dialog box for configuring the ODBC driver, which exposes options you may not want users to tinker with.

Using DSN-less connection instead

So in short, using DSNs may be convenient, but it can be problematic to implement in a secure manner. Moreover, because the specifics of implementation vary by ODBC driver, there is no good general solution for designing a secure DSN. Therefore, we should consider DSN-less connection strings. Though DSN-less connections per se are not necessarily more secure, the additional security comes from the fact that they can be disposable, which becomes very important, as we’ll see shortly.

Access MVP Douglas J. Steele has posted a sample of building a DSN-less connection in VBA for a SQL Server backend. Doug recently updated the material, incorporating modifications suggested by George Hepworth, another Access MVP, to support both trusted connections and SQL Server authentication. This document provides us an excellent starting point to learn how we can build DSN-less connections. We’ll also learn how we can ensure that all linked tables will be updatable by adding a unique index local to Access.

Cached connection

There is an interesting behavior in Access we want to take advantage of. When Access opens an ODBC connection, it caches that connection. Any subsequent ODBC objects that happen to match on three parameters—ODBC driver, server, and database—will reuse that cached connection. This means we don’t have to specify the full connection string for all ODBC objects each time. We only need to supply the complete connection string once at startup and store only the incomplete connection string. We can then leave it up to Access to match subsequent ODBC objects to that cached connection string. This helps immensely in simplifying the security setup.

During application startup, we want to call a routine that will create a temporary query that contains the complete connection. Then we can discard that query at end of the routine. Procedure InitConnect demonstrates this crucial step.

Public Function InitConnect(UserName As String, Password As String) As Boolean
‘ Description:  Should be called in the application’s startup
‘               to ensure that Access has a cached connection
‘               for all other ODBC objects’ use.
On Error GoTo ErrHandler

Dim dbCurrent As DAO.Database
Dim qdf As DAO.QueryDef
Dim rst As DAO.Recordset

‘<configuration specific to MySQL ODBC driver>

strConnection = “ODBC;DRIVER={MySQL ODBC 5.1 Driver};” & _
“Server=” & ServerAddress & “;” & _
“Port=” & PortNum & “;” & _
“Option=” & Opt & “;” & _  ‘MySql-specific configuration
“Stmt=;” & _
“Database=” & DbName & “;”

Set dbCurrent = DBEngine(0)(0)
Set qdf = dbCurrent.CreateQueryDef(“”)

With qdf
.Connect = strConnection & _
“Uid=” & UserName & “;” & _
“Pwd=” & Password
Set rst = .OpenRecordset(dbOpenSnapshot, dbSQLPassThrough)
End With
InitConnect = True

On Error Resume Next
Set rst = Nothing
Set qdf = Nothing
Set dbCurrent = Nothing
Exit Function
InitConnect = False
MsgBox Err.Description & ” (” & Err.Number & “) encountered”, _
vbOKOnly + vbCritical, “InitConnect”
Resume ExitProcedure
End Function

Even though we discard the query at the end of the procedure, Access holds onto the connection it created behind the scenes. As far as I know, there is no programmatic access to this cached connection.  However, once it exists, you can open any other ODBC objects that match on driver, server, and database parameters and interact with it as if it did have the complete connection string. Figure 4 shows a table opened without any additional prompt after we run the procedure at startup. Even though it does not have the complete connection string, Access used the cached connection created by InitConnect so there’s no need to prompt the user for missing information.

Linked table with connect string displayed as a tooltip
Figure 4

With this technique, you can now implement a custom login form to have users enter their username and credentials at runtime and call the InitConnect procedure. That information is passed to the code snippet illustrated above to create the connection. You now have an application that does not store the password anywhere, inside or outside the file. Although that won’t stop your users from penciling their password on a note taped to their monitor, you can be confident that, if the file was copied and taken outside the building, it would be useless; more so if the connection requires being within a certain network. (Certain IP addresses such as 192.168.*.* are not world-accessible and require a physical connection to a particular DHCP server or at least VPN or similar tunneling software.)

Passthrough queries have a connection string, too

Property Sheet for a query, displaying the ODBC Connect Str property

Figure 5

As Figure 5 shows, we should remember that linked tables aren’t the only objects to have a Connect property –passthrough queries can have a Connect property that also needs to be maintained. Fortunately, those queries can also share the cached connection so there should be no reason for us to store a complete connection string for them. We only need to ensure that all passthrough queries have the minimum of three required parameters and we’re done.

Closing one more hole

There is a hole we need to close – the cached connection does not close when we close the database but do not quit Access. In other words, if a user closed your application and opened their own databases, they wouldn’t be prevented from accessing the same ODBC objects using the cached connection. Fortunately, that is fairly easy to remedy – when the last form closes, forcing Access to quit will usually ensure that the cached connection is properly disposed of at the end of your application’s session. This guarantees that users will be always required to explicitly log in when they open Access and attempt to access the ODBC sources.

When you’ve implemented an incomplete connection string, the file no longer can be simply copied around. If someone attempts to bypass the login routine, the tables and queries will not be able to connect. Double-clicking on those objects would simply give them the ODBC driver’s dialog box asking them to complete the connection. Because the password isn’t stored anywhere, they can’t just look under the doormat. Though encrypting the password is an option, it’s much more preferable not to store any password and require the user to supply it just in time. Encrypting the password and storing it in the file is analogous to putting your confidential information in a small safe and leaving it out in your front yard. Anybody can just take your small safe somewhere else and take as much time as they want to crack the password. True security comes in not having anything available for taking and blocking access rather than making access harder.

Extra reading

Note: If we create a File DSN instead of a System or User DSN, the data will be stored in a file rather than in a registry entry. However, File DSNs still store the data in plaintext, similar to what we saw in the registry. So the concerns for security apply equally to File DSNs and System/User DSNs.

–Ben Clothier

Ben Clothier has been an Access MVP since 2009. He is an independent contractor working with J Street Technology and Advisicon and was Technical Editor for the Access 2010 Programmer’s Reference.


Backup Windows 8.1: come funziona e come si usa

Backup Windows 8.1: come funziona e come si usa   Backup Windows 8.1: come funziona e come si usa

  di Michele Nasi (15/01/2015)

 Fortunatamente, le funzionalità per il backup dei dati sono cresciute molto in Windows 8.1 rispetto alle precedenti versioni del sistema operativo. Il backup di Windows 8.1 mette a disposizione degli utenti gli strumenti giusti per mettere al sicuro, periodicamente ed in maniera automatica, i propri dati più preziosi.

Stranamente, Microsoft tende a descrivere ogni singolo strumento per il backup dei dati e di sistema in Windows 8.1 come tool a sé stante quando, in realtà, sarebbe opportuno fornire agli utenti una visione globale, una guida passo-passo su come le varie componenti siano capaci di cooperare in maniera efficace.

L’obiettivo di quest’articolo è colmare la lacuna spiegando come sia possibile utilizzare le tre componenti messe a disposizione da Microsoft per effettuare il backup dei dati in Windows 8.1.

Backup in Windows 8.1: sono tre le componenti fondamentali

Backup locale dei file dell’utente con Cronologia file
Windows 8.1 utilizza un nuovo strumento, chiamato Cronologia file, per gestire i backup dei dati dell’utente in ambito locale. Per funzionare, la funzione Cronologia file necessita obbligatoriamente di un’unità disco di appoggio che verrà impiegata per la memorizzazione di documenti e file dell’utente. In alternativa, Cronologia file può salvare i dati in un’unità esterna USB oppure in un percorso di rete precedentemente specificato.
Si dovrà quindi avere a disposizione l’utilizzo di un’unità diversa da quella in cui è installato il sistema operativo. Si può quindi ricorrere, come già evidenziato, un secondo disco installato internamente, un’unità di memorizzazione USB esterna, un percorso di rete entro la LAN.

Nel caso in cui la copia originale dei file oggetto del backup dovesse risultare danneggiata oppure dovesse essere accidentalmente eliminata, Cronologia file consentirà di ripristinare il backup.Nell’articolo Recuperare file in Windows 8.1 e ripristinare le versioni precedenti con Cronologia fileabbiamo spiegato come configurare la funzionalità Cronologia file, come ordinare a Windows 8.1 la creazione dei backup e come ripristinare i file d’interesse.

Per impostazione predefinita, Cronologia file effettua il backup di tutti i contenuti presenti nelle librerie di sistema di Windows 8.1 (Documenti, Immagini, Musica e Video). È comunque in grado di effettuare il backup di altri contenuti a patto che questi vengano manualmente specificati ed aggiunti come librerie.

Come già visto nell’articolo Recuperare file in Windows 8.1 e ripristinare le versioni precedenti con Cronologia file, la configurazione della funzionalità Cronologia file si può effettuare dall’interfaccia di Windows 8.1 utilizzata dalle app in stile Windows Store oppure dal desktop tradizionale.
Per procedere, basta accedere alla charm bar del sistema operativo, scegliere l’icona Ricerca e digitarecronologia file.

Scegliendo dal menù la voce Cronologia file verrà aperta l’utilità dall’interfaccia desktop di Windows 8.1 mentre selezionando Impostazioni di cronologia file, l’interfaccia in stile Windows Store.

Backup Windows 8.1: come funziona e come si usa

Cliccando su Impostazioni di cronologia file quindi su Seleziona un’unità, sarà possibile scegliere un’altra unità disco sulla quale memorizzare i file personali dell’utente. Cliccando sul link Mostra tutti i percorsi di rete, si potrà richiedere la memorizzazione dei backup in un’unità di rete.
È ovviamente indispensabile che il sistema in uso abbia titolo per accedere alle risorse condivise in rete locale. A tal proposito, suggeriamo la lettura dei seguenti due nostri articoli:
Condividere file in rete con Windows 8.1
Condividere file e cartelle in rete locale con Windows

L’attivazione del backup con Cronologia file si concretizzerà, poi, cliccando sull’interruttore Attivato.

Backup Windows 8.1: come funziona e come si usa

Per impostazione predefinita, la funzionalità Cronologia file provvede ad effettuare un backup incrementale dei dati in Windows 8.1 ogni ora.
Lo si potrà facilmente verificare cliccando su Cronologia file nel menù della charm bar di Windows 8.1 quindi selezionando Impostazioni avanzate (colonna di sinistra).

Backup Windows 8.1: come funziona e come si usa

Il backup può essere però intensificato fino a 10 minuti.

Il backup incrementale in Windows 8.1
Il backup incrementale contiene tutti i file che sono cambiati a partire dall’ultimo backup, sia esso un backup completo od un precedente backup incrementale. Grazie all’utilizzo del backup incrementale, è possibile ridurre al minimo i tempi per l’aggiornamento delle copie di backup dal momento che Windows 8.1 aggiorna solamente i file che sono cambiati, sono stati aggiunti oppure rimossi.
Va detto, comunque, che i backup incrementali sono caratterizzati da tempi di ripristino dei dati più impegnativi dal momento che, in questo caso, la funzionalità Cronologia file deve iniziare dall’ultimo backup completo e poi aggiungere, in sequenza, tutti i successivi backup incrementali.

La medesima schermata di Cronologia file consente di stabilire non soltanto ogni quanto tempo effettuare un nuovo backup incrementale ma anche specificare le dimensioni massime che può occupare su disco (Dimensioni della cache offline) e per quanto tempo i precedenti backup vengono conservati (Mantieni versioni salvate).

Backup Windows 8.1: come funziona e come si usa

La funzionalità Cronologia file è normalmente in grado di riconoscere quando si collega l’unità rimovibile utilizzata per la memorizzazione dei backup e quando, ad esempio, si connettono allo stesso sistema unità sulle quali non devono essere salvate le copie di backup.
Ciò è possibile grazie all’utilizzo di uno speciale identificativo (Device Unique Identifier, DUID) che serve a Windows 8.1 a discernere le unità rimovibili configurate in Cronologia file per il backup automatico da quelle che non devono essere utilizzate come supporto per la memorizzazione dei backup.

Backup remoto dei dati su OneDrive
Il secondo strumento accessorio proposto da Windows 8.1 è il backup su OneDrive. Acconsentendo al backup dei propri dati sul cloud di Microsoft, si potrà evitare che un qualunque evento verificatosi in locale (danni hardware al sistema contenente i dati ed alle workstation connesse in LAN) possa portare ad una perdita dei dati.

Configurando l’utilizzo di OneDrive come supporto per il backup, una copia dei propri file sarà così sempre disponibile sul cloud e potrà essere ripristinata in qualunque momento.

Certamente vi sono altri validissimi servizi alternativi per la memorizzazione dei propri dati “sulla nuvola” ma solo OneDrive può lavorare in perfetta simbiosi con la funzionalità Cronologia file di Windows 8.1.

Senza alcuno sforzo, quindi, i propri dati potranno essere “backuppati” in due posizioni differenti: in locale (su un altro supporto di memorizzazione e sul cloud con OneDrive) oltre ad essere ovviamente conservati nelle posizioni originali, per una sicurezza praticamente totale.

Il meccanismo di backup presente in Windows 8.1 ed integrato con OneDrive si fa carico di creare una copia, sul cloud Microsoft, non soltanto dei file personali dell’utente ma anche di cinque impostazioni particolarmente importanti:
– layout del menù Start di Windows 8.1
– preferenze legate alla combinazione di colori, al tema ed agli sfondi
– cronologia del browser
– elenco dei preferiti del browser
– impostazioni delle varie app eventualmente scaricate ed installate dal Windows Store

Per ciascun file o cartella memorizzati nella libreria di Windows 8.1 denominata OneDrive, è possibile selezionare l’opzione Disponibile offline. In questo modo, una copia dei contenuti conservati su OneDrive sarà memorizzata anche in locale e, grazie alla funzionalità Cronologia file, si potrà fidare su un backup ridondante (anche la cartella OneDrive è interessata dal backup automatico di Cronologia file).

Backup Windows 8.1: come funziona e come si usa

Con quest’approccio, il sistema locale ed i server di OneDrive conterranno sempre la copia più aggiornata dei file dell’utente. La archivio di backup della funzionalità Cronologia file, invece, conterrà tante versioni precedenti dello stesso file o della stessa cartella quante ne sono state configurate (impostazioneMantieni versioni salvate).

Come spiegato in chiusura dell’articolo Recuperare file in Windows 8.1 e ripristinare le versioni precedenti con Cronologia file, la funzionalità Cronologia file consente di “navigare” tra le vecchie versioni di file e cartelle memorizzati sul sistema, negli archivi di backup: basta fare clic su Ripristina file personali.

Quanto spazio viene messo a disposizione su OneDrive per la memorizzazione dei file? Di base Microsoft offre gratuitamente, a tutti gli utenti del servizio, 15 GB di spazio che però possono passare subito a 30 GB attivando la funzionalità “Backup Rullino” su un qualsiasi dispositivo mobile (previa installazione dell’app OneDrive).
Per sapere come ottenere 30 GB di spazio OneDrive gratuiti, suggeriamo la lettura dei seguenti nostri articoli:
30 GB di spazio gratis su OneDrive: ecco come averli
Spazio aggiuntivo su OneDrive (ex SkyDrive), anche con dispositivi Android

Ulteriori 5 GB di spazio aggiuntivo su OneDrive possono essere ottenuti, poi, segnalando il servizio a colleghi ed amici. Per ciascun conoscente che si iscriverà su OneDrive, si riceveranno gratuitamente ulteriori 500 MB di spazio.

Ovviamente gli utenti hanno comunque facoltà di stipulare un abbonamento OneDrive attivando i piani tariffari che includono un quantitativo di spazio più ampio.
Gli utenti di Office 365 possono subito godere di spazio online su OneDrive virtualmente illimitato:Spazio OneDrive illimitato per gli abbonati Office 365.

Infine, una precisazione sicuramente utile: nel caso in cui si decidesse di stipulare un abbonamento OneDrive, alla scadenza dello stesso – qualora si decidesse di non rinnovarlo – Microsoft garantisce chei file dell’utente non saranno cancellati: OneDrive: abbonamento terminato. Che fine fanno i file.

Backup del sistema e della configurazione della macchina

Windows 8.1, infine, integra alcuni strumenti per il backup e il ripristino del sistema.
La procedura di Refresh (o reinizializzazione) consente ad esempio di ripristinare l’intero sistema operativo senza cancellare i file personali. Non tutte le applicazioni installate, tuttavia, sopravvivono alla procedura di Refresh del sistema (si dovrà reinstallarle manualmente).

Nell’articolo Disco di ripristino Windows 8.1, come crearlo e come usarlo, abbiamo visto nel dettaglio le differenze fra il Refresh (reinizializzazione) e la reimpostazione completa del sistema.

Al termine della procedura di Refresh viene creato, sul desktop di Windows 8.1, un file di testo contenente l’elenco delle applicazioni che non è stato possibile conservare e che dovranno eventualmente essere reinstallate a cura dell’utente.

Nel caso in cui si volessero ripristinare tutte le applicazioni si dovrà valutare il ripristino di un’immagine del contenuto del disco fisso creata in precedenza.

La reimpostazione o reset di Windows 8.1 prevede un completo azzeramento del sistema (Rimuovi tutto e reinstalla Windows) con la conseguente perdita di tutto quanto sia memorizzato nel sistema (file personali, impostazioni ed applicazioni).

Backup Windows 8.1: come funziona e come si usa

La funzionalità reset di Windows 8.1, tuttavia, anche se Microsoft non ha mai approfondito questo punto, è capace di ripristinare le librerie di sistema dell’utente con i contenuti precedentemente presenti, subito dopo la reinstallazione del sistema operativo.
Ciò può avvenire, però, solo ed esclusivamente a patto che la funzionalità Cronologia file sia stata correttamente configurata (vedere anche questa pagina).

Creare un’immagine personalizzata della configurazione di sistema in Windows 8.1

Windows 8.1 contiene un’utilità basata su riga di comando (da avviare con i diritti di amministratore) che permette, in qualunque momento, di creare un’immagine del contenuto dell’hard disk e dell’intera configurazione del sistema operativo.

Per creare un’immagine del sistema in Windows 8.1, è sufficiente utilizzare la combinazione di tastiWindows+X, scegliere Prompt dei comandi (amministratore) quindi digitare quanto segue:

recimg /createimage c:\system_images

In questo caso, nella cartella c:\system_images verrà creata una completa immagine del sistema in uso, così come è configurato, insieme con tutti i dati e le applicazioni installate.

Backup Windows 8.1: come funziona e come si usa

I file d’immagine sono generalmente molto pesanti: è importante verificare quindi, di avere sufficiente spazio disponibile (l’immagine deve essere necessariamente archiviata su un disco fisso e non su un percorso di rete).

Il file CustomRefresh.wim che verrà creato nella directory di destinazione verrà utilizzato da Windows 8.1 ogniqualvolta, successivamente, si richiederà un refresh del sistema.

Nel caso in cui, per i successivi refresh del sistema, si volesse tornare ad utilizzare l’immagine di default di Windows 8.1, basterà ricorrere al comando seguente:
recimg /deregister

Infine, nel caso in cui si volesse spostare in un’altra cartella il file CustomRefresh.wim, basterà indicare la nuova posizione e l’intenzione di utilizzarlo come “template” per i successivi refresh di Windows 8.1 con il comando che segue:
recimg /setcurrent NUOVOPERCORSO

Qualora si volesse conoscere il file d’immagine utilizzato come modello in Windows 8.1 per tutti i successivi refresh, basterà digitare recimg /showcurrent

Creare il disco di ripristino di Windows 7 e renderlo avviabile da USB


Windows 7 contiene una comoda utilità che permette, in qualsiasi momento, di creare il disco di ripristino del sistema. Purtroppo, però, tale utilità non consente di memorizzare ildisco di ripristino di Windows 7 in una chiavetta USB né di salvarlo sotto forma di file ISO. Ricorrendo ad un espediente tutto sommato anche piuttosto semplice da applicare, è possibile creare il disco di ripristino di Windows 7 e renderlo avviabile da una chiavetta USB.

I passaggi da effettuare per raggiungere l’obiettivo sono pochi. In primis è necessario, da Windows 7, cliccare sul pulsante Start quindi digitare, nella casella Cerca programmi e file, recdisc.
Si tratta dell’utilità “Crea un disco di ripristino del sistema” che, come si può constatare, permette esclusivamente di masterizzare il disco su supporto CD o DVD.

Cliccando su Crea disco senza inserire alcun supporto masterizzabile, tuttavia, pur visualizzando un messaggio d’errore, Windows 7 creerà un file ISO contenente il disco di ripristino del sistema all’interno della directory temporanea (facilmente accessibile digitando %temp% nella casella Cerca programmi e filedel menù Start).
All’interno della cartella dei file temporanei di Windows, si troverà un file con estensione .ISO denominato con una lunga serie di caratteri alfanumerici, il cui nome è racchiuso tra parentesi graffe.

Dal momento che tale file ISO è “bloccato” da parte del sistema operativo, non si potrà copiarlo altrove utilizzando gli strumenti ed i mezzi tradizionali. Per risolvere il problema, si potrà ricorrere all’utilityHobocopy nella versione a 32 o 64 bit, a seconda dell’edizione di Windows 7 che si sta usando:

Hobocopy, versione a 32 bit (x86) compatibile con Windows 2003, Windows 2008, Windows Vista e Windows 7
Hobocopy, versione a 64 bit (x64) compatibile con Windows 2003, Windows 2008, Windows Vista e Windows 7A suo tempo, nell’articolo 32 bit vs. 64 bit: le differenze tra le due architetture, avevamo evidenziato le differenze tra le architetture a 32 e 64 bit.

Dopo aver copiato il file ISO in una directory “d’appoggio” (ad esempio, C:\ISO, si potrà inserire il disco di ripristino di Windows 7 in una chiavetta USB avviabile.
Allo scopo è possibile ricorrere ad un’utilità gratuita come YUMI, prelevabile da questa pagina (è necessario scorrere la pagina quindi cliccare su “DOWNLOAD YUMI”).

Prima di avviare YUMI è necessario collegare al sistema la chiavetta USB nella quale si desidera caricare il disco di ripristino di Windows 7 ed appuntare la lettera identificativa di unità assegnata dal sistema operativo.

Il resto della procedura è molto semplice: basterà selezionare da YUMI la lettera identificativa di unità corrispondente alla chiavetta USB quindi scegliere Windows Vista/7/8 installer dal riquadro sottostante. Con un clic sul pulsante Browse, si dovrà scegliere il file .ISO (contenente il disco di ripristino di Windows 7) precedentemente salvato nella cartella C:\ISO).

Pur avendo già illustrato in precedenza la procedura da seguire (vedere l’articolo Un’unità USB avviabile contenente il disco di ripristino di Windows ed altre utilità), abbiamo deciso di preparare una videoguida che illustri tutti i passaggi da seguire per raggiungere l’obiettivo.

Il video è stato registrato a 720p: vi consigliamo di visualizzarlo a schermo intero in modo da poter seguire con maggior comodità tutti i vari passaggi.
Scusateci per le imperfezioni nella pronuncia e… siate benevoli con l’autore del video 😉

Connessione limitata o assente in Windows 7 e 8.1

Eseguire da command con privilegi elevati:

netsh int ip reset c:\resetlog.txt

Dopo aver impartito il comando netsh, bisognerà riavviare il sistema

Disabilitare il risparmio energetico sulla scheda di rete


Connessione limitata o assente in Windows 8.1: come risolvere

Dopo aver cliccato su OK, dopo un riavvio del sistema, si potrà verificare se il problema è stato risolto.

Se nessuno degli interventi si mostrasse risolutivo…

Nel caso in cui nessuno degli interventi citati risultasse risolutivo, è possibile eseguire – da prompt aperto con i diritti di amministratore – i seguenti tre comandi:

netsh int tcp set heuristics disabled
netsh int tcp set global autotuninglevel=disabled
netsh int tcp set global rss=enabled

IPv6 Static Addressing and DNSv6


Configuring IPv6 Addresses on Windows 2008 and 2008 R2 Servers, Windows 7 Workstations, and Configuring DNSv6

In this blog post on IPv6, I’m going to cover:

  • How to statically address a Windows 2008 / Windows 2008 R2 Server
  • How to statically address a Windows 7 Client System
  • How to setup DNS for IPv6 on a Windows 2008 R2 Server to do name resolution of IPv6 systems

My last blog post covered basic terminology on IPv6 addressing, so concepts around subnets, gateways, private (internal) addresses, and how to read a long IPv6 address and understand the address.  Now it’s time to roll up your sleeves, take what you’ve learned, and start configuring Windows servers and workstations with IPv6.

I’m going to assume you have your Network / Subnet architecture figured out, if anything just make your network 1 and subnet 1 so (fd00:0000:0001:0001) but you can get more creative than that since you have a quintillion numbers to choose from.  And I’m assuming you have some idea of how you will assign device addresses (again out of the 18-quintillion (18 with 18 zeros) possible addresses) for addressing your systems.  You could always start your device addressing with 0000:0000:0000:0001, and 0000:0000:0000:0002, and so forth, or you can use an addressing scheme I started using when I was playing with this stuff in the lab a while back that helped me know what type of device I was working with.  So I put a 1, 2, or 3 in the first address place to designate a router/networking device, computer, or printer.  I put a 1 or a 2 in the second address place to designate a server or workstation.  I put a 1, 2, or 3 in the third address place to designate Windows, Mac, or Linux.  I put a 1, 2, or 3 in the fourth address place if the device is a desktop, laptop, or tablet.  Etc.  So if I have a device address 2212:0000:0000:0001 I know that this is a computer, workstation, Windows, laptop.  There are variations that include domain attached or not, intended for public access or not, physical or virtual server, even the type of application the server primarily runs like Exchange, SharePoint, Global Catalog, etc.  Helped me do my inventory of devices through the IP addresses when I was coming up to speed on IPv6.

In this posting, I’ll cover static addressing of servers and client systems, my next post will cover DHCP dynamic addressing.

For this example, here are the following assumptions:

  • I’m going to be using Unique Local Addresses (ie: private IPv6 addressing), thus my prefix starts with fd
  • I’m going to use a randomly selected GlobalID (a8:06c3:ce53) and SubnetID (a890) so that all of my devices will start with fda8:06c3:ce53:a890 (again, the only thing that needs to be there is starting off with fd to make this an officially private (ULA) address, after that, the rest of the “numbers” (0-9, a-f) can be anything you want them to be (see my last post on random address generation and subnetting if you’d like more background))
  • For simplicity, I’m going to number my devices sequentially, so that the Server will be fda8:06c3:ce53:a890:0000:0000:0000:0001 and the Workstation will be fda8:06c3:ce53:a890:0000:0000:0000:0002 (remember, I can use the truncation method and get rid of extra zeros so it’ll look like fda8:6c3:ce53:a890::1 and fda8:6c3:ce53:a890::2, but I’ll write out the full address so as to not confuse everyone)
  • For the Gateway to another Subnet, I’m going to make that simply: fda8:06c3:ce53:a890:0000:0000:0000:0005
  • For the DNS address, in my case, the server we’re configuring is the DNS server, so the DNS address is fda8:06c3:ce53:a890:0000:0000:0000:0001

How to statically address a Windows 2008 / Windows 2008 R2 ServerWith the static IP address fda8:06c3:ce53:a890:0000:0000:0000:0001 selected for the server and the gateway fda8:06c3:ce53:a890:0000:0000:0000:0005, to statically address a Windows 2008 R2 server, I will do the following:

1) Logon to the server with administrator rights

2) Click on Start | Network | Network and Sharing Center | Change Adapter Setting

3) Right-click on the Local Area Connection of the network adapter I want to set IPv6 and choose Properties

4) Highlight Internet Protocol Version 6 (TCP/IPv6) and click on Properties

5) Click on “Use the following IPv6 address” and in the IPv6 Address field, type in the IP address you want to use (in my case, I typed in fda8:06c3:ce53:a890:0000:0000:0000:0001)

6) Press the Tab key and it’ll automatically populate the Subnet prefix length to 64

7) Press the Tab key and in the Default Gateway field, type in the IP address you want to use for your Gateway (in my case, I typed in fda8:06c3:ce53:a890:0000:0000:0000:0005)

8) For Preferred DNS Server, type in the IP address of your DNS server (which since I’m sitting on my DNS server, I’m going to type in the fda8:06c3:ce53:a890:0000:0000:0000:0001)

The screen will look something like the following:

9) Click OK, OK, Close to save and exit

Running IPConfig /All to see what the configuration looks like, you’ll notice the IPv6 Address, Default Gateway address, and DNS Server address have all been truncated down to the simplified format.  In my case, I disabled IPv4 so there is no IPv4 address reporting on this system.

How to statically address a Windows 7 Client SystemFor a Windows 7 client, the configuration process works exactly the same.  With the static IP address fda8:06c3:ce53:a890:0000:0000:0000:0002 selected for the workstation and the gateway fda8:06c3:ce53:a890:0000:0000:0000:0005, to statically address a Windows 7 workstation, I will do the following:

1) Logon to the workstation with administrator rights

2) Click on Start | Control Panel | Network and Internet | Network and Sharing Center | Change Adapter Setting

3) Right-click on the Local Area Connection of the network adapter I want to set IPv6 and choose Properties

4) Highlight Internet Protocol Version 6 (TCP/IPv6) and click on Properties

5) Click on “Use the following IPv6 address” and in the IPv6 Address field, type in the IP address you want to use (in my case, I typed in fda8:06c3:ce53:a890:0000:0000:0000:0002)

6) Press the Tab key and it’ll automatically populate the Subnet prefix length to 64

7) Press the Tab key and in the Default Gateway field, type in the IP address you want to use for your Gateway (in my case, I typed in fda8:06c3:ce53:a890:0000:0000:0000:0005)

8) For Preferred DNS Server, type in the IP address of your DNS server (which is the server I configured above which is fda8:06c3:ce53:a890:0000:0000:0000:0001)

The screen will look something like the following:

9) Click OK, OK, Close to save and exit

Running IPConfig /All to see what the configuration looks like, you’ll notice the IPv6 Address, Default Gateway address, and DNS Server address have all been truncated down to the simplified format.  In my case, I disabled IPv4 so there is no IPv4 address reporting on this system.

What you’ll find when you ping from the workstation to the server, just like pinging an IPv4 address (but longer) is:

This is where DNS really helps out in IPv6.  You’ll go crazy trying to remember the IPv6 addresses, so you’ll rely more and more on DNS, which I’ll cover now…

How to setup DNS for IPv6 on a Windows 2008 R2 Server to do name resolution of IPv6 systemsAs you probably know, DNS is the name resolution that translates a common server name (ie: with its IP address (ie: fda8:06c3:ce53:a890:0000:0000:0000:0001).  Obviously it is a lot easier to remember the common name than the IPv6 address, thus DNS becomes very valuable in an IPv6 environment.To setup and configure DNS, 2 major things need to be done:

1) You need to configure a Windows 2008 R2 server with an IPv6 address (like we did in the server configuration step above)

2) You need to install the Windows Server DNS role to the server (which quite frankly, if you’ve ever setup DNS in a Windows environment before, there is nothing different (other than manually creating an IPv6 reverse lookup zone).  So DNS setup is just simple DNS setup (but on a Windows 2008 R2 server to support IPv6 addressing)

For the first step, build a Windows 2008 R2 server and give it an IPv6 address like you did above.  Your DNS server should have a good IPv6 address before your proceed so that your server will be listening properly to the right IPv6 network/subnet for DNS requests, but if you already have DNS, you can still just update the IPv6 address and DNS will now start working properly for IPv6.

For the second step of making it a DNS server, do the following:

1) Logon to the server with administrator rights

2) Click on Start | Administrative Tools | Server Manager

3) Click to highlight Roles, then click on Add Roles

4) For the Before you Begin, click Next

5) Select DNS Server (so it is checkmarked), click Next

6) For the Introduction to DNS Server, click Next

7) Click Install

This will install DNS on the Server

Once DNS is installed on the system, to configure it as a DNS server (assuming it is part of an Active Directory domain), do the following:

1) Click on Start | Administrative Tools | DNS

2) Highlight the computer name and choose Action | Configure a DNS Server

3) Click Next, then choose either forward lookup zone, forward and reverse lookup zone, or root hints only

(if in doubt, choose forward lookup zone)

4) Select Yes, create a forward lookup zone now, click Next

5) Select Primary zone (if this is the first DNS server) or Secondary zone (if you already have a DNS server) or select Stub zone (if you know what you are doing and you want a stub zone configure), chose one of the 3 and then click Next

6) Choose IPv4 Reverse Lookup Zone (assuming the server is running both IPv4 and IPv6 (we’ll set the IPv6 lookup zone later), click Next

7) Enter in the IPv4 network address in the NetworkID fields (this is the start of the IPv4 address of your network adapter), click Next

8) When prompted to create a new Zone file, click Next

9) For forwarders, click on Yes and enter in the DNS address of a public DNS server that you want to resolve non-AD addresses (this would typically be provided to you by your Internet Service Provider as a DNS address of a major public DNS server on the Internet), Click Next

10) Click Finish to continue

With DNS configured on your server, you will begin to see DNS records populated on the server (either from devices (if this is a primary DNS server) or from the other DNS server (if this is a secondary DNS server).  To force devices to register to DNS, go to other workstations or servers (that have a proper IPv4 or IPv6 address) and run the command    IPConfig /RegisterDNS   from a Command Prompt on the system.  Go back to the DNS server and refresh your DNS screen to see the devices start showing up.

Note:  If you already have DNS working on an AD 2008 R2 server, and you have a proper IPv6 address configured for the server, DNS does not need to be reconfigured or rebuilt.  DNS (if it was working for IPv4) will work for IPv6 natively on a Windows 2008 R2 server with IPv6 enabled.

To create an IPv6 Reverse Lookup Zone, since the configuration wizard only allowed you to create either an IPv4 or IPv6 reverse lookup zone, and we chose to create an IPv4 since likely you’ll still be using IPv4 for a while, you have to configure the IPv6 Reverse Lookup Zone manually.  To do so, right click on the “Reverse Lookup Zones” in the DNS manager and choose New Zone.

1) Click Next to start the New Zone wizard

2) Choose Primary Zone (assuming this is the first DNS v6 server in your environment), click Next

3) Choose the option “To all DNS servers running on domain controllers in this domain” (or you can alternately choose forest if you have a single forest / single domain simple model), Click Next

4) Select IPv6 Reverse Lookup Zone, click Next

5) Enter in the IPv6 Prefix, which in our case would be fda8:06c3:ce53:a890::/64 (which will create a reverse lookup zone of, click Next

6) Assuming this is on Active Directory, choose “Allow only secure dynamic updates”, Click Next

7) Click Finish

That’s it.  You now have workstations and servers with YOU IPv6 addressing scheme setup, and you have DNS that is resolving not only your IPv4 names, but also now your IPv6 names.

In my next blog post on IPv6, I will cover:

How to setup DHCP for IPv6 to dynamically issue addresses in your block of IPv6 addresses.  This is a little trickier, while the DHCPv6 tool is the same as the normal DHCP IPv4 tool, and the setup of DHCP for IPv6 and all is basically the same, there are a couple quirks that I bet have hung up ANYONE who has ever tried to setup DHCP for IPv6 in a Windows environment, and I bet 99% of the people who tried gave up at that point with DHCP in IPv6.  I’ve written about the workarounds to getting DHCPv6 to work the way you would expect it to work.  Stay tuned for the next blog post…