tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルUSBメモリーのシリアル値取得
記事No11666
投稿日: 2016/05/17(Tue) 18:39
投稿者食う寝る走る
開発環境
 OS:Windows7(32bit)プロフェッショナル
 IDE:VS2015 コミュニティ(VB.net)


トングルのように使いたいのですが、
USBシリアル(USBメモリー)値が差し込みポートごとに異なってしまいます。



(1)特定のPCのM/B・・・製造番号
(2)USBメモリー・・・シリアル値
(3)ある期間ごとにキーの発行が必要・・・使用期限を設定

の組み合わせで制約してソフトを動かすKEYを発行して運用を考えております。

(1)〜(3)を文字列連結して文字列→16進数コード化(暗号化)したものをKEYとして、
iniファイルへ記述。

ソフト起動時に、自分のPC環境を読んで、iniファイルのKEYと参照して、OK/NG判定。

管理側のPCで 運用PCのM/B製造番号を入れて、配布するUSBとの組み合わせでKEYを発行し
配布するつもりです。

USBのシリアル値を取得は出来て、管理者用のKEY発行のキージェネレータを作りました。
が・・・

出来あがり、USBメモリーの差し込み口を変えると、USBシリアル値が変わるようなのですが・・・。
どこに刺しても、同じ値を表すようには出来ないものでしょうか?
この値はPC個体が変わる毎に変化するものなのでしょうか?

生成したKEYをポートごとに変換して複数持っておくとかの工夫で回避できれば◎なのですが。

よろしくお願いいたします。


こちらの環境下での値になります。
'ポート1にUSBメモリを指した場合
Caption = General UDisk USB Device
SerialNo.= USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\6&5A3F01E&0&_&0


’ポート2にUSBメモリを指した場合
Caption = General UDisk USB Device
SerialNo.= USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\6&D15C087&0&_&0




ボタン1つ要です。
'-------------------------------------------------------------------------------------

Imports System.Management  '要:参照設定[System.Management]

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click


        Dim l_strSQL As String = "SELECT * FROM Win32_DiskDrive where InterfaceType='USB'"
        For Each drive As ManagementObject In New ManagementObjectSearcher("root\CIMV2", l_strSQL).Get()
            Dim l_strCap As String = drive.GetPropertyValue("Caption")
            Dim l_strNo As String = drive.GetPropertyValue("PNPDeviceID")
            'MsgBox(String.Format("Caption = {0}" & vbCrLf & "SerialNo.= {1}", l_strCap, l_strNo))

            Console.WriteLine((String.Format("Caption = {0}" & vbCrLf & "SerialNo.= {1}", l_strCap, l_strNo)))


        Next
    End Sub

End Class

[ツリー表示へ]
タイトルRe: USBメモリーのシリアル値取得
記事No11667
投稿日: 2016/05/18(Wed) 14:26
投稿者魔界の仮面弁士
> トングルのように使いたいのですが、
Dongle(ドングル)ですね?


> USBシリアル(USBメモリー)値が差し込みポートごとに異なってしまいます。
USB メモリーによって、シリアルを持っている製品と持っていない製品があります。

また、現時点でシリアルをもっている製品であっても、製品ロットが変わることで
出荷時期によってはシリアルを持たなくなる可能性も無いとは言えません。
そうなった場合の対処も考慮して設計する必要があるかと思います。
(利用させる前に、USBメモリーの対応状況を事前に調べておくなど)



> 1〜3を文字列連結して文字列→16進数コード化(暗号化)したものをKEYとして、iniファイルへ記述。
復元する必要が無さそうなので、暗号化ではなくハッシュで十分な気もします。
暗号化でも良いですが、それだとキーと初期化ベクタが必要になりますし。


> USBのシリアル値を取得は出来て、
> SerialNo.= USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\6&5A3F01E&0&_&0
> SerialNo.= USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\6&D15C087&0&_&0
それは USB のハードウェアシリアルではなく、Plug and Play のデバイスID ですね。

下記の USBDeview ツールでいうと、"Instance ID" の項にあたります。
一方、USB のシリアル値というのは "Serial Number" の項です。
http://www.forest.impress.co.jp/docs/review/20150928_722897.html

[ツリー表示へ]
タイトルRe^2: USBメモリーのシリアル値取得
記事No11668
投稿日: 2016/05/19(Thu) 11:11
投稿者食う寝る走る
> > トングルのように使いたいのですが、
> Dongle(ドングル)ですね?
トングルではなく"ドングル"です。


> > USBシリアル(USBメモリー)値が差し込みポートごとに異なってしまいます。
> USB メモリーによって、シリアルを持っている製品と持っていない製品があります。
>
> また、現時点でシリアルをもっている製品であっても、製品ロットが変わることで
> 出荷時期によってはシリアルを持たなくなる可能性も無いとは言えません。
> そうなった場合の対処も考慮して設計する必要があるかと思います。
> (利用させる前に、USBメモリーの対応状況を事前に調べておくなど)
確かに、KEY発行前に、複数台にソフトを導入する予定ですので、市販のUSBメモリーを調べておく必要がありますね。
同じ時期に、同じメーカーのUSBメモリーを買ったらシリアルが無かったり、全部同じだったりしたら困りますしね。


> > 1〜3を文字列連結して文字列→16進数コード化(暗号化)したものをKEYとして、iniファイルへ記述。
> 復元する必要が無さそうなので、暗号化ではなくハッシュで十分な気もします。
> 暗号化でも良いですが、それだとキーと初期化ベクタが必要になりますし。
ハッシュについて調べてみました。一方方向で、元データの復元が出来ないものなので、直接パスワードを書くよりも安心ですし確かに用途的に使えそうです。
但し、キーの中に使用期限を入れたいので、これもハッシュにしてしまうと、復元が出来なくなってしまうような・・・。


> > USBのシリアル値を取得は出来て、
> > SerialNo.= USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\6&5A3F01E&0&_&0
> > SerialNo.= USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\6&D15C087&0&_&0
> それは USB のハードウェアシリアルではなく、Plug and Play のデバイスID ですね。
>
> 下記の USBDeview ツールでいうと、"Instance ID" の項にあたります。
> 一方、USB のシリアル値というのは "Serial Number" の項です。
> http://www.forest.impress.co.jp/docs/review/20150928_722897.html


提示した、SerialNo.は、
Win7の「デバイスマネージャー」→「ユニバーサルシリアルコントローラー」→「USB大容量記憶装置(右クリック)」→「プロパティ」→「詳細タブ」→「デバイスインスタンスパス あるいは 子」で表示できる値のようです。

ご紹介の
USBDeview ツール 試してみます。

http://supermab.com/mikan.html
の「みかん」でシリアル値を確認すると「6」が帰って来ます。
大学の行事でもらった、このメモリーのシリアル値が1文字とすれば、文字列を16進数化したKEYを使うには不安かもしれません。
※ハッシュを使えば1文字だけでも問題と思います。


ちなみに、
挿入したUSBメモリーを別のPCで確認すると、
SerialNo.= USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\6&3B89FEEE&0&_&0
SerialNo.= USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\6&28D04E49&0&_&0

このメモリーで変わらないのは「6」。「6」がシリアル値ということなのかもしれません。

手元に、確認で使えるUSBメモリーが無いので、もう少し何本かのUSBのシリアル値を確認してみたいと思います。

[ツリー表示へ]
タイトルRe^3: USBメモリーのシリアル値取得
記事No11669
投稿日: 2016/05/19(Thu) 12:16
投稿者魔界の仮面弁士
> USBDeview ツールは有料のようですので、

いえ、無償で利用できますよ。
(寄付歓迎の)フリーソフトです。

》 License
》 This utility is released as freeware. You are allowed to(以下略)

http://www.nirsoft.net/utils/usb_devices_view.html
の下の方にある、
 Download USBDeview
 Download USBDeview for x64 systems
のリンクから入手できます。



> このメモリーのシリアル値が1文字とすれば、文字列を16進数化したKEYを使うには不安かもしれません。
シリアルは、ベンダーIDとプロダクトIDのペアごとにユニークな値であり、
0〜F の大文字16進数 12 桁で構成されるそうです。
12 桁以上ある場合は、末尾12桁を利用できますが、それより短い場合はダミーでしょう。


また手持ちの環境では、中国系大手ブランドのストレージ製品 2 種において、
いずれの製品からも "0123456789ABCDEF" という16桁の同一の固定文字列が返却される例を
確認しておりますので、USB シリアル自体に厳密な一意性を求めない方が良さそうです。

信頼のおける特定の製品に限って収集・利用されるのは良いと思いますが、
メーカー製品問わず汎用的にドングル化したいのであれば、シリアル情報は
必須データとしてではなく、オプショナルなデータとしての利用に留めておくのが無難かと。

安価な製品では、一意性を保証しない乱数が使われているケースもあるそうですし、
そもそも、ある程度の知識があれば、シリアルの偽装や書換えもできてしまうわけで。


---
追記:

ちなみに、ライセンス認証的な使い方のためには、「SSL クライアント証明書」を
用いるという手もあります。VB からは X509Certificate2UI クラスを通じて
インストール済みの X509Certificate2 証明書のインスタンスを取得できます。

SSL クライアント証明書は、「エクスポート不可」な形でのインストールも可能なので
他者に譲渡できないような認証情報として利用することもできます。

準備はいろいろと必要になりますし、今回の要件に合うかどうかは分かりませんが、一応参考情報として。

[ツリー表示へ]
タイトルRe^4: USBメモリーのシリアル値取得
記事No11670
投稿日: 2016/05/19(Thu) 14:13
投稿者食う寝る走る
> いえ、無償で利用できますよ。
> (寄付歓迎の)フリーソフトです。
>
> 》 License
> 》 This utility is released as freeware. You are allowed to(以下略)
>
> http://www.nirsoft.net/utils/usb_devices_view.html
> の下の方にある、
>  Download USBDeview
>  Download USBDeview for x64 systems
> のリンクから入手できます。
途中で気が付いて、投稿記事の方を修正しましたが、行き違いでお手間を取らさせてしまいました。
ご丁寧に、ありがとうございます。

>
> > このメモリーのシリアル値が1文字とすれば、文字列を16進数化したKEYを使うには不安かもしれません。
> シリアルは、ベンダーIDとプロダクトIDのペアごとにユニークな値であり、
> 0〜F の大文字16進数 12 桁で構成されるそうです。
> 12 桁以上ある場合は、末尾12桁を利用できますが、それより短い場合はダミーでしょう。
> また手持ちの環境では、中国系大手ブランドのストレージ製品 2 種において、
> いずれの製品からも "0123456789ABCDEF" という16桁の同一の固定文字列が返却される例を
> 確認しておりますので、USB シリアル自体に厳密な一意性を求めない方が良さそうです。
>
> 信頼のおける特定の製品に限って収集・利用されるのは良いと思いますが、
> メーカー製品問わず汎用的にドングル化したいのであれば、シリアル情報は
> 必須データとしてではなく、オプショナルなデータとしての利用に留めておくのが無難かと。
市販汎用品ではなく きちんとした、ドングルを使うか、外部委託で管理していただくサービスもありますが、予算的に問題がありますので・・・。

> 安価な製品では、一意性を保証しない乱数が使われているケースもあるそうですし、
> そもそも、ある程度の知識があれば、シリアルの偽装や書換えもできてしまうわけで。
参考として、USB購入してKEY発行前の確認はいずれにしても必要と思います。

手持ちのUSBメモリーを「USBDeview」で見ると、
VendorID :048d
ProductID :1234
Serial Number:なし
でした。


途中までですが、まとめとして、
手持ちのノーブランドUSBメモリーのシリアル値(あるいは Instance ID)は、

■「投稿コード」:PCや取り付けポートを変えてみた結果
SerialNo.= USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\6&5A3F01E&0&_&0
SerialNo.= USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\6&D15C087&0&_&0
SerialNo.= USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\6&3B89FEEE&0&_&0
SerialNo.= USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\6&28D04E49&0&_&0

■「みかん」:PCや取り付けポートを変えてみた結果
全てにおいて 6 を表示。
※投稿コードで得たInstance IDの一部に 6 を確認。
先頭から\を仕切り文字として考えた場合3つ目の &までの値が他のメモリーで確認しても変わらない値(ここでは6)ならば使えそうな気がします。

■「USBDeview」:PCや取り付けポートを変えてみた結果
全てにおいて ""(値無し) を表示。


> ---
> 追記:
>
> ちなみに、ライセンス認証的な使い方のためには、「SSL クライアント証明書」を
> 用いるという手もあります。VB からは X509Certificate2UI クラスを通じて
> インストール済みの X509Certificate2 証明書のインスタンスを取得できます。
>
> SSL クライアント証明書は、「エクスポート不可」な形でのインストールも可能なので
> 他者に譲渡できないような認証情報として利用することもできます。
>
> 準備はいろいろと必要になりますし、今回の要件に合うかどうかは分かりませんが、一応参考情報として。

今回は、ここまで行ってしまうと複雑になりそうなので参考にさせていただきます。

週末、自宅にあるブランド品のUSB(?)を探して 複数台PCで確認して、報告させて頂きます。

[ツリー表示へ]
タイトルRe^5: USBメモリーのシリアル値取得
記事No11671
投稿日: 2016/05/19(Thu) 16:39
投稿者魔界の仮面弁士
> 途中で気が付いて、投稿記事の方を修正しましたが、行き違いでお手間を取らさせてしまいました。
ちなみに、日本語化の差分も同じページにあります。


> 予算的に問題がありますので・・・。
個人での利用でしょうか(シェアウェア作成など)。
それとも、業務用途での利用でしょうか?


> VendorID :048d
Integrated Technology Express, Inc. 社ですね。


> SerialNo.= USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\6&3B89FEEE&0&_&0
> SerialNo.= USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\6&28D04E49&0&_&0

これらは、レジストリの
 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\
にあるキー情報を指しています。デバイスマネージャーが見ているのも多分ココ。


以下、関連するかもしれない情報
https://msdn.microsoft.com/en-us/library/windows/hardware/jj649944.aspx
https://msdn.microsoft.com/en-us/library/windows/hardware/ff541224.aspx
https://msdn.microsoft.com/en-us/library/windows/hardware/ff546284.aspx


今回の目的で使うのであれば、USBSTR エントリーよりも
USB エントリーの方を記録した方が良いかもしれません。

USBSTOR の方だと、ベンダー情報が VEN_GENRAL などの表記となって
競合しかねないですが、USB や PCI なら VID/PID で記録されるようですので。

とはいえ、中には全デバイスに同じ PID を振ってしまう
企業もあるらしいですが…。(例: GeoLab 社 → VID_9148&PID_0004)


> Win7の「デバイスマネージャー」→「ユニバーサルシリアルコントローラー」→「USB大容量記憶装置(右クリック)」

手元にデバイスの持ち合わせが無いので、正確には確認できませんが、
USBSTOR のエントリーが現れるのは、「ディスク ドライブ」配下のようです。

「ユニバーサルシリアルコントローラー」配下に現れるのが、
USB のエントリーのようです。

USB メモリを異なるポートに挿してみて、それぞれのエントリーが
どのような値になるを確認してみてください。


なお、競合した場合には末尾に &1 などの枝番がつくらしいです。



> ■「みかん」:PCや取り付けポートを変えてみた結果
> 全てにおいて 6 を表示。
> ※投稿コードで得たInstance IDの一部に 6 を確認。

みかんは、"6&3B89FEEE&0&_&0" や "6&28D04E49&0&_&0 といった
"&" を含む文字列を正しく処理できないようです。

正しいシリアルを持つデバイスの場合、そもそも "&" の文字が
含まれることがないため、みかんでも正常に表示できると思います。


> 先頭から\を仕切り文字として考えた場合3つ目の &までの値が
モード切替によって、別デバイスとして認識されるような USB ストレージの場合
 USBSTOR\☆☆☆\◎◎◎◎&0
から
 USBSTOR\★★★\◎◎◎◎&1
に変化することもありますね。(この製品のシリアルは◎◎◎◎)



> ■「USBDeview」:PCや取り付けポートを変えてみた結果
> 全てにおいて ""(値無し) を表示。

シリアル値が得られるデバイスの場合は、
接続先が変わっても一定の値が得られる…はず。

[ツリー表示へ]
タイトルRe^6: USBメモリーのシリアル値取得(解決)
記事No11672
投稿日: 2016/05/23(Mon) 10:30
投稿者食う寝る走る
全てTranscend社のUSBメモリーになりますが 自宅に眠っていた4種類を調べました。

【USBDEVIEW】
Serial Number    : S11N2IVU
Instance ID    : USB\VID_8564&PID_1000\S11N2IVU

Serial Number    : SMO9N1TV
Instance ID    : USB\VID_8564&PID_1000\SMO9N1TV

Serial Number    : 13KHHX9XCSL5Y0BY
Instance ID    : USB\VID_8564&PID_1000\13KHHX9XCSL5Y0BY


Serial Number    : 970W20N4YZFPJAEQ
Instance ID     : USB\VID_8564&PID_1000\970W20N4YZFPJAEQ

【みかん】
S11N2IVU
SMO9N1TV
13KHHX9XCSL5Y0BY
970W20N4YZFPJAEQ

【掲載コード】
Caption = JetFlash Transcend 4GB USB Device
SerialNo.= USBSTOR\DISK&VEN_JETFLASH&PROD_TRANSCEND_4GB&REV_8.07\S11N2IVU&0

Caption = JetFlash Transcend 16GB USB Device
SerialNo.= USBSTOR\DISK&VEN_JETFLASH&PROD_TRANSCEND_16GB&REV_8.07\SMO9N1TV&0

Caption = JetFlash Transcend 16GB USB Device
SerialNo.= USBSTOR\DISK&VEN_JETFLASH&PROD_TRANSCEND_16GB&REV_1100\13KHHX9XCSL5Y0BY&0

Caption = JetFlash Transcend 4GB USB Device
SerialNo.= USBSTOR\DISK&VEN_JETFLASH&PROD_TRANSCEND_4GB&REV_1100\970W20N4YZFPJAEQ&0


手持ちの4つのUSBメモリーは、【USBDEVIEW】、【みかん】、【掲載コード】で同じシリアル値を取得できました。



>ちなみに、日本語化の差分も同じページにあります。
ありがとうございます。USBメモリー確認用に使わせて頂きます。


>個人での利用でしょうか(シェアウェア作成など)。
>それとも、業務用途での利用でしょうか?
15年前にVB6で個人で作製して実務の効率化で使っていた物を.NETへ移しております。
現在は個人でVB6上 改良しながら使っておりますが、海外で複数人の方が業務上使う事も考え、盗難も想定し USBシリアル、使用期限、M/B製造ナンバーで使用制限が出来るのか試しております。
 先は長いですが、ある程度見通しがついたら、再コーディングや管理、メンテはソフトウェア会社へお願いする予定です。
自作プログラムソフトに専用ドングルを外部で組み込んで発行等の管理をしてくれる所もあるようですが、
現段階では自作キージェネ発行管理&市販USB品で行きたいと思います。


>モード切替によって、別デバイスとして認識されるような USB ストレージの場合
> USBSTOR\☆☆☆\◎◎◎◎&0
>から
> USBSTOR\★★★\◎◎◎◎&1
>に変化することもありますね。(この製品のシリアルは◎◎◎◎)


>>■「USBDeview」:PCや取り付けポートを変えてみた結果
>> 全てにおいて ""(値無し) を表示。
>シリアル値が得られるデバイスの場合は、
>接続先が変わっても一定の値が得られる…はず。

◎◎◎◎部を取得してシリアルを得ますが、市販USBメモリの値は事前に確認して使う事に致します。
今回は、初めに使ったUSBメモリー VendorID :048d Integrated Technology Express, Inc. 社 のは?でしたが、
Transcendの物はKEYとして使えると思います。

この度は、
USBのシリアル値について、非常に勉強になりました。
ありがとうございました。

[ツリー表示へ]
タイトルRe^7: USBメモリーのシリアル値取得(解決)
記事No11673
投稿日: 2016/05/23(Mon) 13:34
投稿者魔界の仮面弁士
> 手持ちの4つのUSBメモリーは、【USBDEVIEW】、【みかん】、【掲載コード】で
> 同じシリアル値を取得できました。

同じプログラムで検証したにも関わらず、USBシリアル値が変わることは無かったのですね。
確証は持てませんが、デバイス依存だったということで良いのかな…。


> Transcendの物はKEYとして使えると思います。

Transcend 社の製品は、偽物も多数出回っているので(特に高速・大容量モデル)、
製品記載のシリアルを検査できるようになっていますが、桁数からして、
USB 接続で表示される Serial Number とは別者のようですね。
http://jp.transcend-info.com/support/verification


> 15年前にVB6で個人で作製して実務の効率化で使っていた物を.NETへ移しております。

仮に、勤務時間外での無報酬開発だったとしても、「実務の効率化」を満たすには、
給与報酬を伴った実務経験があったはずで、それを前提とした開発である以上は
Community という製品の立ち位置的にはグレーゾーンな気もします。

そのソフトをオープンソースとして公開するのであれば問題ありませんが、
そうでなければ、Express や Professional を使って開発した方がよろしいかと。

http://www.buildinsider.net/hub/insidersbreak/2014112101


たとえば、Community を利用可能条件のひとつに「研修目的」がありますが、これとて、
「研修所内に限定して利用可能」「社内ツール等の開発を伴う場合には NG」のような、
幾許かの制限があったりしますし。

[ツリー表示へ]
タイトルRe^8: USBメモリーのシリアル値取得(解決)
記事No11676
投稿日: 2016/05/24(Tue) 10:13
投稿者食う寝る走る
>同じプログラムで検証したにも関わらず、USBシリアル値が変わることは無かったのですね。
>確証は持てませんが、デバイス依存だったということで良いのかな…。

USBメモリは、手元に無いので別の物になりますが、掲載コードで以下確認しました。
【Win7機】
ポート1
SerialNo.= USBSTOR\DISK&VEN_TEAM&PROD_USB_DRIVE&REV_1.00\8990000000000000632C9177&0

ポート2
SerialNo.= USBSTOR\DISK&VEN_TEAM&PROD_USB_DRIVE&REV_1.00\8990000000000000632C9177&0

ポート5(USB3.0)
SerialNo.= USBSTOR\DISK&VEN_TEAM&PROD_USB_DRIVE&REV_1.00\8990000000000000632C9177&0



【古いXp機】
ポート1
SerialNo.= USBSTOR\DISK&VEN_TEAM&PROD_USB_DRIVE&REV_1.00\8990000000000000632C9177&0

ポート4
SerialNo.= USBSTOR\DISK&VEN_TEAM&PROD_USB_DRIVE&REV_1.00\8990000000000000632C9177&0


【みかん】【掲載コード】で6を吐き出した、Integrated Technology Express, Inc. 社のものだけが、ポートを変えたり、PC変えると
一部違う値を指したり、USBDEVIEWでは 値が無かったり。それに比べTranscend社4つのメモリーと先ほど試した物ではポートを変えたりPC変えてみてもシリアル値は同じ物を指しました。


> Transcend 社の製品は、偽物も多数出回っているので(特に高速・大容量モデル)、
> 製品記載のシリアルを検査できるようになっていますが、桁数からして、
> USB 接続で表示される Serial Number とは別者のようですね。
> http://jp.transcend-info.com/support/verification
ここでいう、シリアルは、内部の情報ではなく?製品側面にレーザー印字されている番号での確認管理のようですね。


> 仮に、勤務時間外での無報酬開発だったとしても、「実務の効率化」を満たすには、
> 給与報酬を伴った実務経験があったはずで、それを前提とした開発である以上は
> Community という製品の立ち位置的にはグレーゾーンな気もします。
>
> そのソフトをオープンソースとして公開するのであれば問題ありませんが、
> そうでなければ、Express や Professional を使って開発した方がよろしいかと。
>
> http://www.buildinsider.net/hub/insidersbreak/2014112101
>
>
> たとえば、Community を利用可能条件のひとつに「研修目的」がありますが、これとて、
> 「研修所内に限定して利用可能」「社内ツール等の開発を伴う場合には NG」のような、
> 幾許かの制限があったりしますし。



コンプライアンス上、グレーな点がありますし、
https://www.microsoft.com/ja-JP/download/details.aspx?id=13350
「Visual StudioとMSDNのライセンス ホワイトペーパー」で確認しながら、
バージョンやエディション、購入形態も含め、情報システム部門に購入の相談してみます。

ありがとうございました。

[ツリー表示へ]