回答:
そのインストール用のドライブが別のシステムに移動された場合、この数値は変更されるか、または同じままになると思いますか?
インストールがゴーストなどで複製された場合、この数値が変更されると思いますか?マイクロソフトの推奨事項に従って、常にクローンシステムがsysprepされることに依存できますか?インストールが複製されないことが確実であれば、SIDは問題ないはずです。
マルチブートシステム(つまり、システムにWindows 7とWindows XPがインストールされているシステム)の場合、2つのインストールを一意、または関連、または何として識別する必要がありますか?
これがWindowsのインストールの一部であり、ハードウェア、おそらくプロセッサのシリアル番号によって提示されるものではないのはなぜですか?
インベントリ目的で使用している何らかのスクリプトまたはツールについて、これについて質問していると思いますか?
ツールを初めて実行して自分の番号を生成し、それをLOCAL_MACHINEレジストリハイブに保存しないのはなぜですか。おそらく、RFC4122 Type 1番号を使用することもできます。これには、ネットワークインターフェイスのいずれかのハードウェアアドレスが含まれている必要があります。このように、UUIDを現在のネットワークアダプターと比較することで、UUIDがまだそのシステムに属しているかどうかを確認できます。
たとえば、WindowsレジストリからGUIDを取得できます。
var regpath = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography\\MachineGuid";
var oWSS = new ActiveXObject("WScript.Shell");
clientGUID = oWSS.RegRead(regpath);
WindowsプロダクトIDを使用したい。これは、一部はインストールされているプロダクトキーから、一部はハードウェア構成から生成(ハッシュ)された一意の番号で、プロセッサのシリアル番号と最初のNICからのMACアドレスが含まれます。TechNetのこの記事(多少古くなっていますが、まだ有効です)でそれについて読むことができます。製品IDは、[システム情報]画面に表示されるか、いくつかの方法でプログラムで確認できます。
それがWindowsサーバーであると仮定すると、Win2kからそれを取得する方法について説明しているナレッジベースの記事:KB224544があります。
LDP.exeがまだそのように動作するかどうかはわかりませんが、可能性はあります。
あなたが説明したようなGUID値が実際に存在するかどうかはわかりません。一般的な方法は、CPUまたはマザーボードID情報を使用することです。
これは、関連するWMIスクリプトコードを含むフォーラム投稿へのリンクです。http: //www.devnewsgroups.net/group/microsoft.public.dotnet.framework/topic59274.aspx
Windowsインストールを特定しようとしている場合は、運が悪い場合があります。企業環境では、ワークステーションはインストールされているワークステーションではなく、イメージ化されることがよくあります。このイメージから構築された各コンピューターは同一です。
説明した内容に最も近いのはマシンのSIDですが、これは2つの理由で機能しません。
この識別子は何のために必要ですか?あなたの最善の策は、可能であれば自分で生成することかもしれません。
MACアドレスを試すことができます。これは、少なくともグローバルに一意で永続的なものにすることを目的としています。これには、あまり手間をかけずにマシンのIPとホスト名を取得できるという優れた利点もあります(Windowsに限定されません)。レジストリに存在するという要件を満たしませんが、代わりにWMIを使用できます。
ここにサンプルスクリプト:http : //www.winforums.com/showthread.php?t=8842
特定のマシンのマシンSIDを確認するには、SysInternals PSGETSID%COMPUTERNAME%$を実行します。(ドメインSID)。
http://blogs.msdn.com/aaron_margosis/archive/2009/11/05/machine-sids-and-domain-sids.aspx
編集:一意ではない(または正しくない)レジストリのマシンSIDへの参照を削除しました。
私も、Windowsインストールをグローバルに一意に識別する方法を見つける必要があります。まず、バックアップイメージを適切に分類して識別し、どのマシンでどのイメージを回復するかを決定するため。次に、ファイルを同期するための同期ペアに名前を付け、同期に関与するマシンに応じて使用する同期ペアを決定します。
このWebサイトの投稿を含むいくつかの投稿を読んだ後、Windowsインストールのグローバルに一意の識別子を見つける簡単な方法はないと結論付けました。それは残念です。ハードウェアと同様に、ソフトウェアにも独自のシリアル番号が必要です。しかたがない!したがって、これが私の回避策です。単一のグローバル一意識別子を見つける代わりに、MicrosoftがWindowsでネットワークドライブに名前を付ける方法と、Virtual PCの共有フォルダーに名前を付ける方法に触発された定型文を作成しました: "[WINDOWS製品ID(変数として)] [コンピュータのシリアル番号(変数として))]。 "WindowsプロダクションID番号は、対応するプロダクトキーが一意である場合にのみ一意ですが、それでも、特に工場出荷時のWindowsを含む大量生産されたコンピューターではシリアル番号が同じであるが、シリアル番号は一意であり、マシンごとに異なります。上記の式は、目的に必要なすべてです。SIDは必要ありません(これは、セキュリティ識別子を意味すると想定しています))または他のより複雑なものです。両方の変数の組み合わせは、特定する必要があるWindowsインストールを正確に参照するためです。一方、個々の変数は、それ自体では、私にとっては役に立ちません。具体的には、最初に、Windows製品の識別情報は、同じ製造元で製造され、同じ製品ラインにあるコンピューターでも同じであり、同じマシンを複数所有しているため、目的がありません。第2に、1つのコンピューターに複数のWindowsインストールがあり、コンピューターのシリアル番号が対応していないため、シリアル番号は十分に一意に識別できません。したがって、私の方法を提案します。
また、それについて尋ねる前に、私は自分の方法をコンピューター名に基づいて選択しないことを選択しました。情報はユーザーベースであるため、インベントリを作成する必要があります。ただし、Windowsの製品IDとコンピューターのシリアル番号は既に特定され、インベントリされ、常に2つの特定の製品に接続されているため、それらを再度インベントリする必要はありません。特にドライブの容量が絶え間なく変化する状態にある場合、ハードディスクをマシン間で切り替えることができるため、Windowsインストールをハードドライブの一意の識別子で識別することも選択しません。同じトークンで、これまでShoelessによる以前の返信で提案されたように、中央処理装置またはマザーボードの識別用語をあまり使用しません。。最後に、Windowsインストールを識別する最も明白なオプションも拒否します(ただし、他の人からは言及されていませんが)。プロダクトキーを使用します。これは独特ですが、特定のバージョンのWindowsをインストールするためのライセンスにすぎません。特定のWindowsインストールに実際には接続されておらず、特定のコンピューターの購入によってライセンスが付与された場合でも、特定のマシンにインストールされているとは区別されません。