0

WMI を使用して、Windows がインストールされているドライブのボリューム シリアル番号を取得するサービス (SYSTEM ユーザーとして実行) があります。ただし、WMI セキュリティの制限が厳しすぎるクライアントがあり、この方法ではボリューム シリアル番号を照会できません。

WMI セキュリティ アクセス許可の詳細を学習するのではなく、ネイティブの Win32 関数GetVolumeInformationを使用してこの情報を取得したいと考えました。ただし、この呼び出しが WMI を使用してドライブからこの情報を取得するのか、それとも通常のユーザーが変更できるレジストリ (またはその他の簡単にアクセスできる場所) に設定されているものを使用するだけなのかはわかりません (あなたが本当に方法を知っていれば、ボリュームシリアルはまだ変更できることを知っています)。

GetVolumeInformation は、WMI を回避するための実行可能な回避策ですか? そうでない場合、WMI 呼び出しを使用せずに C# でこの情報を取得する最善の方法は何ですか?

4

1 に答える 1

0

私は弾丸を噛み、Win32 API に GetVolumeInformation への呼び出しを行うだけになりました (上記の質問にリンクされています)。この関数を使用してボリューム シリアルを取得する場合、"vol" コマンドがコマンド プロンプトに表示するのと同じ値が必要な場合は、10 進数を 16 進数に変換することを忘れないでください。

于 2013-05-14T13:04:23.200 に答える