0

私は現在、(とりわけ) リモート コンピューターの MAC アドレスを見つける必要があるプロジェクトに取り組んでいます。問題は、SQL クエリを使用してコンピューターにアクセスすることだけに制限されていることです。(そのため、WMI を使用できません)

リモート コンピュータは Windows Server 2000 と Ms SQL Server 2000 を実行しています。

リモート コンピューターの IP がわかっているので、管理者アカウントでログインできます。リモート コンピューターから MAC アドレス (できればすべて) を取得するにはどうすればよいですか?

答えてくれてありがとう。

4

3 に答える 3

1

ある種の外部呼び出し経由xp_cmdshellが唯一の選択肢だと思います。SQL Server でこの機能が無効になっている可能性があります (正当な理由があります)。

何かのようなもの

 Create table #results(data varchar(250))
 Insert #results
 exec master..xp_cmdshell 'ipconfig /all'

 select * from #results where data like 'physical address%'

あなたのコメントに加えて、レジストリの下の

HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}

キーですが、ハードウェア構成に依存する場合と場所は異なります。

于 2013-08-07T11:16:31.283 に答える
0

thisによると、できないようです。SQL Server 2005 以降を使用している場合は、SQLCLR で何かをコーディングして、あまり労力をかけずにこれを行うことができると思います。

于 2013-08-07T11:06:42.423 に答える
0

私は自分のコンピュータのためにそれを解決しました

//makeQuery と querySrv は気にしないでください

ResultTable res = makeQuery(querySrv,("USE Master; EXEC xp_regread 'HKEY_LOCAL_MACHINE', 'SOFTWARE\\Description\\Microsoft\\rpc\\UuidTemporaryData', 'NetworkAddress'"));
    byte[] bMac =(byte[])res.getRow(0).data[1];
    String mac = String.format("%02X:%02X:%02X:%02X:%02X:%02X", bMac[0], bMac[1], bMac[2], bMac[3], bMac[4], bMac[5]);

これは、他の Windows Server 2000 サーバーでも機能するはずです。

フォーマットとバイト/16進変換の助けを借りて@morganoに感謝します

于 2013-08-09T09:27:45.027 に答える