1

IP アドレス リストまたは範囲に基づいて、ローカル LAN 上のSQL Server インスタンスをスキャンして特定する必要があり、次の情報を探しています。

  1. SQL サーバーがリッスンしているポート(通常は1433/1434 ですが、変更できます)、
  2. マシンのIPアドレス
  3. SQL サーバーが実行されているマシンのホスト名、
  4. 10.5.2500.0のようなインスタンス バージョン
  5. インスタンス名情報 例: Joe\SQLExpress

WindowsまたはSQLサーバーのいずれかの資格情報にアクセスできません。賭けはWindows認証を使用していますが、私は発見ベースのアプローチを好みます. また、スキャン中に誤った警告を発したくありません。また、スキャンは邪魔にならないようにする必要があります。スキャンでは、いくつかの脆弱性テスト (後で) を実行する必要があります。これには、検査と詳細情報が含まれるため、各サーバーのアクセス資格情報は必要ありません。

さらに、一部のインスタンスではSQL Server Browser サービスが無効になっているか、SQL Server エージェント サービスが停止している可能性があります。

特定の範囲の IP アドレスについて、すべての SQL Server インスタンスに対してクエリを実行できる必要があります。ここで引数を使用しようとしています:

  1. ここ

  1. ここ

AC# ベースのソリューションは、SQL Server Browser または SQL Server エージェントが実行されているかどうかに関係なく、すべてのインスタンスを返す限り、役立ちます。

しかし、私は自分のスキャンができるだけ邪魔にならないようにしたいと思っています.

4

1 に答える 1

1

SQL Server 2005 以降については、WMI を使用して文書化され、サポートされている方法があります。 FAQ: WMI を使用した SQL Server 2005 の検出を参照してください。これにより、実行されているかどうかに関係なく、SQL Server自体への接続を開かずに、インストールされているインスタンスが検出されます。もちろん、リモートマシンのWMI を照会するには、適切なアクセス許可が必要です。

SQL 2000 の場合、唯一の方法は、サポートされていないレジストリ ハックを使用することです (特定のキーを探します)。

于 2013-01-09T20:49:34.663 に答える