【作業自動化】WindowsのODBC設定をまるっと移行や配布する方法

Tips
スポンサーリンク

最近、会社のパソコンを新しいものに変えたのですが、その際にWindowsのODBC接続の設定もまるっと移行しました。
情シスのお仕事をしていると、ODBC接続情報も社内の色々なシステム用のデータベースの接続設定や、本番環境以外にもテスト環境用のデータベースの接続設定など沢山登録されているため、一件ずつ新しいPCへ登録し直していくのも面倒です。

当ブログでは、「情シス向けの作業自動化」もテーマの一つのなので、企業のパソコンだと何かと使われるODBCの接続設定を簡単に別のPCに移行したり、PCセットアップなどでODBC接続情報を一括登録する方法を紹介していきます。

 

Windowsの「ODBCデータソース」の解説

企業のシステム担当者であれば、社内のパソコンで「ODBCデータソースアドミニストレータ」を起動し、「ODBCデータソース」の設定をしたことが有るかと思います。

ただ、システム担当者のなかには、設定の意味を理解しないまま、パソコンのセットアップ手順として設定している人も居るかと思います。

折角なので「ODBCデータソース」についておさらいしておきましょう。

「ODBCデータソース」とは

皆さまは以下のような画面を見たことはありますでしょうか?

この記事にアクセスしてきている以上、大抵の人はご存知かと思います。
Windowsにおける、ODBC接続設定をするための画面ですね。

では、改めて「ODBC」とは何かについても復習しておきましょう。

Wikipediaでは以下のように記載されています。

Open Database Connectivity (ODBC) は、関係データベース管理システム (RDBMS) にアクセスするための共通インタフェース (API)である。

データへのアクセスを統一化することを目的としており、たとえばクライアント/サーバ型ではないMicrosoft Accessの管理するデータベースファイル (MDB) や、そもそもRDBMSではないCSVファイルへのアクセスなども、それに対応するODBCドライバがあれば、他の一般的なデータベースへのアクセスするのと同様な方法で利用することが可能になる。

Open Database Connectivity (ODBC) -Wikipedia-

要するに、「SQL Server」や「Oracle」など、世の中にある様々なデータベース製品や、CSV形式のデータやExcelデータなどを、ODBCと呼ぶ共通のインターフェースを介してアクセスできるようにするための仕組みです。

もしODBCが無ければ、SQL Serverと接続するときは「SQL Server Management Studio」、Oracleと接続するには「SQL Developer」というようにベンダーが提供したデータベース接続ソフトでしか使えないということにもなるかもしれません。

「ユーザーDSN」と「システムDSN」の違い

Windowsの「ODBCデータソースアドミニストレーター」の画面には、「ユーザーDSN」と「システムDSN」があります。
この違いを知らない人も結構居るので紹介しておきます。

「ユーザーDSN」はログインユーザーごとの設定で「システムDSN」は全ユーザー共通の設定

まさに見出しの内容通りなのですが、「ユーザーDSN」はWindowsにログインしているユーザーごとに適用される設定です。
同じパソコンを異なる異なるユーザー間で共有する場合に、ユーザーごとにアクセスできるODBC設定を制御したい場合に使用します。

「システムDSN」はWindowsの全ユーザー共通で適用されるODBC設定です。

一般的には、ユーザー単位で設定するのは管理が手間なので、「システムDSN」に設定を入れてあげれば良いかと思います。

ODBCデータソースの32ビットと64ビットの違い

以下の画像は「Windows10 64bit版」の「管理ツール」の画面です。

若干表記は異なりますが、ご覧の通り「ODBCデータソースアドミニストレーター」は64bitと32bitの2つ存在しています。
因みに「Windows7 64bit版」の場合、「管理ツール」には「ODBCデータソースアドミニストレーター」は1つしか表示されませんが、内部的にはやはり64bit用と32bit用がそれぞれ存在します。

ここも、使い分けかたを理解していないとどちらを登録するべきか迷うポイントなので簡単に解説しておきます。

一言で言えば以下です。

32bitアプリケーションは32bit用DSNを使い64bitアプリケーションは64bit用DSNを使う

具体的な例で言えば、MicrosoftのAccessでは、32bit版と64bit版の二種類あり、32bit版のAccessでは64bit用のDSNの設定は使用できません。
その逆の組み合わせである、64bit版Accessから32bit用のDSNの参照でも同様です。

よって、お使いのODBCを使用するアプリケーションが32bit用か64bit用かを確認した上で「ODBCデータソースアドミニストレーター」の設定先を決めてください。



ODBC接続設定の移行方法

前置きが長くなりましたが、今回の記事の主題である、「ODBC接続設定の移行方法」を紹介していきます。

当手順の概要

Windowsでは、「ODBCデータソースアドミニストレータ」に登録したODBC接続情報は「レジストリ」に書き込まれます。
レジストリの情報は簡単にエクスポートができます。
エクスポートしたレジストリ情報はファイルに出力され、そのファイルを移行先のWindowsで実行すると、エクスポートしたレジストリ情報がインポートされ、レジストリに書き込まれます。
今回のその一連の手順を紹介していきます。

移行元パソコンでレジストリエディターを開く

移行元がWindows10の場合
画面左下のWindowsのマークの「スタート」を右クリックし、「ファイル名を指定して実行」をクリックし、表示された「ファイルを指定して実行」画面にて、「regedit」と入力してEnterキーを押下します。※「ユーザーアカウント制御」の表示が出た場合は「OK」を選択して先に進みます。

移行元がWindows7の場合
画面左下のWindowsのマークの「スタート」をクリックし、真上に表示される検索欄で「regedit」と入力してEnterを押下します。※「ユーザーアカウント制御」の表示が出た場合は「OK」を選択して先に進みます。

ODBC接続情報のレジストリキーをエクスポートする

以下のように「レジストリエディター」の画面が表示されます。

「ユーザーDSN」は”HKEY_CURRENT_USER“の配下「システムDSN」は”HKEY_LOCAL_MACHINE“の配下に登録されています。
対象のキーの左側の三角をクリックすると、その配下のレジストリキーが順に表示されていくので、目的のODBC接続情報が登録されているレジストリキーまで開きます。
尚、システムDSNやユーザーDSNの32bit、64bitのレジストリキーは以下場所です。

 

システムDSN

HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI

移行元PCが64bit版のWindowsであれば、このレジストリには64bit用のODBC接続情報が登録されます。
また、移行元PCが32bit版のWindowsであれば、このレジストリには32bit用のODBC接続情報が登録されます。
移行元PCが64bit版のWindowsで、32bit用のODBC接続情報を登録している場合は以下のレジストリキーに書き込まれています。

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ODBC\ODBC.INI

尚、32bit版のWindowsにはこのレジストリキーは存在しないので注意してください。

 

ユーザーDSN

HKEY_CURRENT_USER\Software\ODBC\ODBC.INI

32bitと64bitの使われ方の違いについては、上項のシステムDSNと同様です。
また、64bit版Windowsの32bit用ODBC接続設定も上項のシステムDSNと同様です。

HKEY_CURRENT_USER\Software\WOW6432Node\ODBC\ODBC.INI

対象の「ODBC.INI」というレジストリキーを見つけたら、その上で右クリックし「エクスポート」を選択します。

ファイルの保存先とファイル名を指定するダイアログが起動し、ファイルを保存します。
これでODBCのレジストリ情報のエクスポートは完了です。

移行先パソコンでレジストリ情報をインポート

上項でエクスポートしたファイルを移行先のパソコンに移動します。
そのファイルをダブルクリックすると、「ユーザーアカウント制御」で警告が表示された後、移行元パソコンでエクスポートしたレジストリ情報がそのまま書き込まれます。

その後、移行先パソコンで「ODBCデータソースアドミニストレーター」を表示すると、移行元パソコンで設定していたODBC接続情報がまるっと移行できているのが確認できます。
尚、インポート時の注意しておくべき事項やポイントをまとめておきます。

  • 移行元Windowsが32bit版で移行先Windowsが64bit版の場合、インポートをすると64bit用のODBC接続情報のレジストリに書き込まれる。※64bitWindowsの32bit用ODBC接続情報のレジストリキーは「WOW6432Node」配下でキーのパスが異なる為。
  • レジストリ情報をエクスポートしたファイルは、メモ帳などのテキストエディタで開いて編集することが可能な為、例えば、Windowsの32bit版でエクスポートしたファイルを、64bitのWindowsの32bit用ODBC接続情報としてエクスポートしたければ、ファイルをテキストエディタで編集し、書き込み先のキーを「WOW6432Node」配下に変更する。
  • SQLServerやOracleなどのODBC接続情報を移行しただけでは、肝心のドライバは移らず使用もできない為、必ず「SQL Server Management Studio」や「Oracle Client」などを移行先パソコンにインストールすること。
  • レジストリを誤って編集すると、Windowsが起動しなくなったり、動作に異常が出ます。十分に検証を行う、くれぐれも作業は慎重に実施すること。

 

ODBC接続情報のレジストリエクスポートファイルの活用

今回の記事では、私が会社で実施した旧パソコンから新パソコンへの移行作業の一環として実施しましたが、今回の作業はパソコン入れ替え時のみに活用できるテクニックではありません。

企業の情シスであれば、社内の社員が使用するパソコンのセットアップも業務として実施するかと思いますが、社内のパソコンのセットアップ作業のなかに、「ODBCデータソースアドミニストレーター」を起動して、同じ設定を手動で毎回登録するという手順があるのであれば、今回の記事のように、予めセットアップ済みのパソコンからレジストリ情報をエクスポートしておき、セットアップ対象のパソコンでそのファイルを実行することで、手動での登録作業が無くなり、セットアップ作業が効率化されます。
是非活用してみてください。

尚、上項でも記載しましたが、レジストリは誤って編集したり削除したりすると、Windowsが起動しなくなるなどの重大な障害を発生させる恐れがあります。
必要によってバックアップも取りつつ、十分に注意して実施するようにしてください。

それでは、今回も読んでいただきましてありがとうございました。
皆さまごきげんよう。

 

併せて読んでいただきたい記事

↓レジストリを活用してセットアップ作業時のIE関連の設定を自動化する方法の記事です。

【VBScript】情シス必見!レジストリを編集してIEの設定作業を自動化
今回はVBScrptからレジストリを編集し、IEの設定を自動化する方法を紹介します。 ※レジストリをWindowsの各...