C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: パソコン固有の情報の取得方法、OS更新後の挙動


(過去ログ 177 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■101841 / inTopicNo.1)  パソコン固有の情報の取得方法、OS更新後の挙動
  
□投稿者/ 苦情処理班 (1回)-(2023/04/29(Sat) 10:47:04)

分類:[.NET 全般] 

2023/04/29(Sat) 16:54:11 編集(投稿者)
2023/04/29(Sat) 11:28:18 編集(投稿者)
2023/04/29(Sat) 11:28:16 編集(投稿者)

お世話になります

ウインドウズ、VB.NET フレームワーク4.6以降 でのWIN32アプリケーションの作成しています

●アプリケーションのライセンスキーにパソコン端末固有の情報を利用したい
●利用しているコードは下記の『参考コード』の内容
●ハードの交換は想定しないものとする
●仮想OSは対象としない


<質問>
OSの再インストールやOSのバージョンアップで
下記の『参考コード』で取得される値は変わりますか?

ハードディスクのシリアル番号
MACアドレス

が変わったというユーザーがいるのですが、
一般的に変わってしまうものなのでしょうか。





−−−−−−−−−−−−−−−−
『参考コード』
固有の情報の取得方法のイメージ
https://q.hatena.ne.jp/1151910714
−−−−−−−−−−−−−−−−

SMBIOSよりハードウェアのシリアル番号を取得
https://www.microsoft.com/japan/technet/scriptcenter/scripts/har...
http://itpro.nikkeibp.co.jp/members/ITPro/ITBASIC/20030626/1/

DMI 情報より取得
http://aopen.jp/tech/techinside/windmi.html
http://h50221.www5.hp.com/CPO_TC/pc/doc/34602.pdf#search='DMI%20...


ハードディスクのシリアル番号
http://homepage1.nifty.com/MADIA/vb/vb_bbs/200306_03060077.html

MACアドレス
http://dobon.net/vb/bbs/log3-1/319.html
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=25934&am...
http://homepage1.nifty.com/MADIA/vb/vb_bbs/200310_03100159.html


2.WIMからBIOS情報/システム情報(これオススメ)
WMI(Windows Management Instrumentation)を利用すれば、殆どのシステム情報にアクセスできます。(WSHのサンプル参照)
http://wmifun.atinfinity.net/sample/

たとえばBIOSのシリアルナンバーやマザーボードの型番なども取得できます。
http://www.microsoft.com/japan/technet/scriptcenter/scripts/hard...


3.NETBIOS経由、MACアドレス
MACアドレスは(通常は)唯一の番号となり、NETBIOS APIで取得できます。
http://www.dinop.com/vc/getmac_netbios.html









引用返信 編集キー/
■101852 / inTopicNo.2)  Re[1]: パソコン固有の情報の取得方法、OS更新後の挙動
□投稿者/ Azulean (1270回)-(2023/04/29(Sat) 18:24:08)
No101841 (苦情処理班 さん) に返信
> <質問>
> OSの再インストールやOSのバージョンアップで
> 下記の『参考コード』で取得される値は変わりますか?

自分で調査・検証し、自分たちで納得できるように進めるべきでしょう。
ここで第三者が Yes/No 言ったところで、あなた(達)の事業に影響しうる判断ができるわけではないでしょうから。


> ハードディスクのシリアル番号
> MACアドレス
>
> が変わったというユーザーがいるのですが、
> 一般的に変わってしまうものなのでしょうか。

変わるでしょう。
前者はフォーマット時に変わりますし、後者はランダム MAC アドレスという仕組みも最近ありますので。


個人的には強固なシステムを考えれば考えるほど、ユーザーサポートコストが上がるだけだと考えています。
それほどまでに守りたいものなんですか?
本当に守りたいなら、不安定な自作ではなく、USB ドングルなど、きちんとしたソリューションを買うべきでしょう。
引用返信 編集キー/
■101854 / inTopicNo.3)  Re[1]: パソコン固有の情報の取得方法、OS更新後の挙動
□投稿者/ 魔界の仮面弁士 (3629回)-(2023/04/29(Sat) 19:05:27)
2023/04/29(Sat) 19:14:16 編集(投稿者)

No101841 (苦情処理班 さん) に返信
> が変わったというユーザーがいるのですが、
> 一般的に変わってしまうものなのでしょうか。
変わらない物というわけでは無いですね。


> ハードディスクのシリアル番号
それは、コマンドラインで「DIR」コマンドを実行したときに表示される
ボリュームシリアルのことですか?
http://hanatyan.sakura.ne.jp/logbbs1/wforum.cgi?mode=allread&no=3659&page=0

それとも、コマンドラインで「WMIC.exe DiskDrive GET SerialNumber, Model」
などと入力すると表示される可能性のある HDDの製造番号の事ですか?


前者だとしたら、フォーマットすれば変化することがありますし、
複数の端末で同じ値になっていることもあります。

後者だとしたら、取得できる場合もあれば取得できない場合もあります。


> MACアドレス
どのデバイスの MAC アドレスですか?

たとえば LAN ポート(RJ-45) と Wi-Fi の両方を搭載しているノート PC なら
MAC アドレスを同時に 2 つ持っている…ということもあります。
また、リモートワークなどのために VPN 構成のソフトウェアが導入されている場合
仮装ネットワークポートによって別の MAC アドレスが追加されることもあります。

また、ネットワークドライバーのプロパティで任意の MAC アドレスを
設定できる機器もあります。

また、ランダムなMACアドレスを割り当てることもできます。
https://support.microsoft.com/ja-jp/windows/ac58de34-35fc-31ff-c650-823fc48eb1bc
https://www.ntt-bp.net/column/blog/2021/12/post-64.html


> SMBIOSよりハードウェアのシリアル番号を取得
> https://www.microsoft.com/japan/technet/scriptcenter/scripts/har...
> http://itpro.nikkeibp.co.jp/members/ITPro/ITBASIC/20030626/1/

いや、なんで "..." のままで転載するんですか…orz


『参考コード』として紹介された元記事に記載されていた URL は、TechNet のスクリプトセンターにあった、下記のアドレスでしたね。
https://www.microsoft.com/japan/technet/scriptcenter/scripts/hardware/basic/hwbavb09.mspx

といっても、スクリプトセンターは閉鎖されており、今となってはデッドリンクです。
https://learn.microsoft.com/ja-jp/teamblog/technet-gallery-retirement

その記事(VBScript 版)相当の内容を PowerShell で取得するための現行記事がこちら。
やっていることは WMI の各種クラスを呼び出しているだけなので、 VB.NET からであれば
System.Management を参照設定して ManagementObject クラスから呼び出せます。
https://learn.microsoft.com/ja-jp/windows-hardware/drivers/bringup/sample-powershell-script-to-query-smbios-locally


> DMI 情報より取得
> http://aopen.jp/tech/techinside/windmi.html
> http://h50221.www5.hp.com/CPO_TC/pc/doc/34602.pdf#search='DMI%20...
前者は AOpen 社の WinDMI ツールの紹介のようですね。
元が 20年以上前の情報で、現在はデッドリンク。

後者は、また URL が「...」のままになっていますが、元記事では
http://h50221.www5.hp.com/CPO_TC/pc/doc/34602.pdf#search='DMI%20BIOS'
という URL のようですが…こちらもデッドリンクで内容は不明。
2006年頃の HP 社の特定 PC に対するカスタマーサポートの PDF だとは思いますが。


> ハードディスクのシリアル番号
> http://homepage1.nifty.com/MADIA/vb/vb_bbs/200306_03060077.html
こちらは、過去ログ移転前の古いアドレスですね。現在の URL はこちら。
https://www.petitmonte.com/bbs/answers?question_id=14516


> MACアドレス
> http://dobon.net/vb/bbs/log3-1/319.html
> http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=25934&am...
> http://homepage1.nifty.com/MADIA/vb/vb_bbs/200310_03100159.html
2番目のアドレスが「...」になってますが、正しくはこちら。今でも閲覧可能なサイトです。
https://atmarkit.itmedia.co.jp/bbs/phpBB/viewtopic.php?topic=25934&forum=7

3番目のアドレスは、こちらに移動されています。
https://www.petitmonte.com/bbs/answers?question_id=14971



> 2.WIMからBIOS情報/システム情報(これオススメ)
> WMI(Windows Management Instrumentation)を利用すれば、殆どのシステム情報にアクセスできます。(WSHのサンプル参照)
> http://wmifun.atinfinity.net/sample/
大量のサンプルを掲載していた、とおさんの「WMI Fun !!」のサイトも既に閉鎖しているんですよね…。
移転先の話を聞かないのですが、どこかに残されているのかなぁ。


> たとえばBIOSのシリアルナンバーやマザーボードの型番なども取得できます。
> http://www.microsoft.com/japan/technet/scriptcenter/scripts/hard...
元記事に貼られていた URL はこちら。これもスクリプト センターの記事なので既にデッドリンクです。
https://www.microsoft.com/japan/technet/scriptcenter/scripts/hardware/basic/hwbavb10.mspx

やっていたことは WMI の Win32_BIOS クラスのプロパティを列挙しているだけなので、
やはり System.Management を参照設定して ManagementObject クラスから呼び出せます。


> 3.NETBIOS経由、MACアドレス
> MACアドレスは(通常は)唯一の番号となり、NETBIOS APIで取得できます。
> http://www.dinop.com/vc/getmac_netbios.html
そう、「通常は」という注釈が付くんですよね…。

下記の記事には
 『RFC 7217では、「MACアドレスの再利用は、みんなが思っているよりも
  はるかに一般的であることを実世界のデータが示している」、とあります。』
という記述があります。
https://www.geekpage.jp/blog/?id=2020-6-16-1


現在は仮想マシンでの運用も増えていますし、VM の複製などにより、
意識せずに仮想 MAC アドレスを重複させてしまうこともおこりえるわけで。
(同一 VLAN で MAC アドレスが重複してしまうとフラッピング事故に繋がるので、重複させてはいけないのですが)
引用返信 編集キー/
■101859 / inTopicNo.4)  Re[2]: パソコン固有の情報の取得方法、OS更新後の挙動
□投稿者/ 苦情処理班 (2回)-(2023/04/29(Sat) 22:03:47)
No101852 (Azulean さん) に返信

ご回答ありがとうございます
例外は別として、多くの場合正常動作すればよいと考えています


>>ハードディスクのシリアル番号
> 前者はフォーマット時に変わります

多くの場合は、OSの更新をしてもシステムドライブがフォーマットされることはないと思うのですが
認識に違いはありますでしょうか



>>MACアドレス
>ランダム MAC アドレスという仕組みも最近ありますので。


ウインドウズの場合、現状でデフォルトは固定になっていると理解しています
会社で使う、ビジネス用途のパソコンでランダムになっていることは少ないと思いますが
この認識に違いはありますでしょうか




確認したところ、今回トラブルのあるユーザーはmacの仮想OSを使っているようでした
仮想OSの場合、パソコン固有の情報はどうにもならないようです。






引用返信 編集キー/
■101860 / inTopicNo.5)  Re[3]: パソコン固有の情報の取得方法、OS更新後の挙動
□投稿者/ 苦情処理班 (3回)-(2023/04/29(Sat) 22:13:01)
魔界の仮面弁士さま


ご教示ありがとうございます

中途半端なアドレスの掲載申し訳ありませんでした


>たとえば LAN ポート(RJ-45) と Wi-Fi の両方を搭載しているノート PC なら
>MAC アドレスを同時に 2 つ持っている…ということもあります。

同じ構成のパソコンで
同じ呼び出し方法で取得したMACアドレスなら
同じものが取得できると考えているのですが間違っていますか?



>現在は仮想マシンでの運用も増えていますし、VM の複製などにより、
>意識せずに仮想 MAC アドレスを重複させてしまうこともおこりえるわけで。

MACの仮想OSはユーザー対象から除外しているのですが

WIN10 や WIN11でも
パソコン固有の情報の識別をするときに
複数の仮想OSでの動作を考慮する必要があるのでしょうか

同じハードで構成されたパソコン端末でも
取得される情報に違いがあるのでしょうか





引用返信 編集キー/
■101864 / inTopicNo.6)  Re[4]: パソコン固有の情報の取得方法、OS更新後の挙動
□投稿者/ 魔界の仮面弁士 (3630回)-(2023/04/30(Sun) 12:18:28)
No101860 (苦情処理班 さん) に返信
>> たとえば LAN ポート(RJ-45) と Wi-Fi の両方を搭載しているノート PC なら
>> MAC アドレスを同時に 2 つ持っている…ということもあります。
> 同じ構成のパソコンで
> 同じ呼び出し方法で取得したMACアドレスなら
> 同じものが取得できると考えているのですが間違っていますか?

実際、複数の MAC を持つ PC にて、同様の認証機構を設けたことがあるのですが、
同じデバイスであっても、列挙順や列挙の可否が変化することがありました。それはたとえば、
機内モードの有効化/無効化の状態であったり、USB-LAN の接続ポートの変更などであったり、
PPPoE の WANミニポートドライバーの MAC であったりといった理由によるものです。

ですから、 No101845 では
>> どのデバイスの MAC アドレスですか?
とお聞きしました。当初は単純に「最初に返された MAC アドレス」を使っていたのですが、
それだと列挙順に左右されるため、アダプタ名から物理 LAN ポートと判断できるものを使い、
かつ、それが Intel 系のアドレスのものを採用する…というルールを追加するなどして対応しました。
※その時は、PC の機種も同一機で統一されていたので、汎用性はさほど重視されなかったので。


> WIN10 や WIN11でも
> パソコン固有の情報の識別をするときに
> 複数の仮想OSでの動作を考慮する必要があるのでしょうか
それはケースバイケースとしか言えないですね。
自分のパソコン(Windows 11)では、ソフトウェア的な相性ゆえに共存できないソフトを使うために、
Hyper-V クライアント上に複数の Windows 環境を構築して、そこで運用していたりもしますし。

> 同じハードで構成されたパソコン端末でも
> 取得される情報に違いがあるのでしょうか
物理的に異なる端末から、同じ情報が返される可能性はゼロでは無いですし、
同じハードウェアでも、取得情報が変化することはあります。
もちろん、取得する項目や運用形態などによって異なる話ではあるのですが。

とはいえ、そうした一意性が変化する可能性がそれほど頻繁でない場合、複数の接続デバイス情報
(CPU ID であるとか、デバイス インスタンス ID とか)に対して、一部の機器の情報が変化しても
残りの情報が同一であった場合は、その情報を複合的に判断して、一致性・不一致性を
独自のルールで判断するといった手段で回避するなどしていました。あまり詳しくは書けませんが。
引用返信 編集キー/
■101865 / inTopicNo.7)  Re[1]: パソコン固有の情報の取得方法、OS更新後の挙動
□投稿者/ 魔界の仮面弁士 (3631回)-(2023/04/30(Sun) 15:39:58)
No101841 (苦情処理班 さん) に返信
> OSの再インストールやOSのバージョンアップで
> 下記の『参考コード』で取得される値は変わりますか?
> ハードディスクのシリアル番号
> MACアドレス

「フォーマット時に設定される番号」の方のシリアルであれば、一度設定された後は、
その値は固定的となるでしょう。ただし、再フォーマットせずに変更するツールは存在します。
https://freesoftlab.com/detail/hard-disk-serial-number-changer/

意図的にそうしたツールを使ったわけでは無かったとしても、
ディスクイメージをバックアップから復元するようなツールを用いた場合、
シリアル番号が変わってしまうことはありえるかと。


MAC アドレスの方は、先に述べた通り、一つの PC につき複数搭載されている場合もあるので、
取得方法に問題があると、別のアドレスが取得されてしまう可能性が起こりえます。
無線 LAN 非搭載で、かつ、物理 LAN ポートが一つであり、さらにコマンドラインで
「IPCONFIG /ALL | FINDSTR "Physical 物理"」や「GETMAC」を実行した時に、
常に単一の MAC アドレスのみ返却される環境であれば、MAC アドレスの取り違いは起こらないかも…?

(LAN アダプターの MAC アドレスの値は、デバイスマネージャーから変更することもできます)
引用返信 編集キー/
■101866 / inTopicNo.8)  Re[3]: パソコン固有の情報の取得方法、OS更新後の挙動
□投稿者/ Azulean (1271回)-(2023/04/30(Sun) 18:34:21)
No101859 (苦情処理班 さん) に返信
> >>ハードディスクのシリアル番号
>>前者はフォーマット時に変わります
> 多くの場合は、OSの更新をしてもシステムドライブがフォーマットされることはないと思うのですが
> 認識に違いはありますでしょうか

ないかもしれませんね。
逆に言えば、OS ごとクローンされることでコピーされうるので、カジュアルコピー対策でしかないでしょう。

> ウインドウズの場合、現状でデフォルトは固定になっていると理解しています
> 会社で使う、ビジネス用途のパソコンでランダムになっていることは少ないと思いますが
> この認識に違いはありますでしょうか

多い・少ないが判断に影響すると考えているのなら、市場調査会社にでも聞いてください。
多少を言えるほど、あらゆる会社の状況に精通している一般人は幻でしょう。

調べずに決めるなら、「リスク」と捉えて、発生時の対応策の検討などをされれば良いだけです。


> 確認したところ、今回トラブルのあるユーザーはmacの仮想OSを使っているようでした
> 仮想OSの場合、パソコン固有の情報はどうにもならないようです。

まあ、無理でしょうね。
仮想マシンのイメージコピーされるとか、イメージの移動とか区別つきませんし、アクティベーションに関するトラブルは仕方ないでしょう。
Windows 自身も認証が通らないなども噂には聞きます。

サポートの手間を減らすか、被害のリスクを押さえるか、判断主体(あなた(達))で決めることでしょう。

引用返信 編集キー/
■101886 / inTopicNo.9)  Re[2]: パソコン固有の情報の取得方法、OS更新後の挙動
□投稿者/ radian (126回)-(2023/05/08(Mon) 09:26:02)
2023/05/08(Mon) 10:30:41 編集(投稿者)

> ●アプリケーションのライセンスキーにパソコン端末固有の情報を利用したい

http://bbs.wankuma.com/index.cgi?mode=al2&namber=64037&KLOG=107

過去にも似たような質問がありますが、
通常、この手の認証はドングルやWeb認証を使用すると思います。
PC上では、汎用的なデバイスの情報は変化する事が有り得ると考えるべきです。

既にリリース・販売してしまった後であれば、
まあ頑張って個別対応してくださいとしか…
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -